46 lines · plain
1; RUN: llc -O3 -mcpu=mips64 -mtriple=mips64el-unknown-linux-gnuabi64 < %s -o - | FileCheck %s2 3define noundef signext i32 @xor_and(i32 noundef signext %a, i32 noundef signext %b) local_unnamed_addr {4; CHECK-LABEL: xor_and:5; CHECK: # %bb.0: # %entry6; CHECK-NEXT: and $1, $5, $47; CHECK-NEXT: daddiu $2, $zero, -18; CHECK-NEXT: jr $ra9; CHECK-NEXT: xor $2, $1, $210 11entry:12 %0 = and i32 %b, %a13 %or1 = xor i32 %0, -114 ret i32 %or115}16 17define noundef signext i32 @input_i16(i16 noundef signext %a, i16 noundef signext %b) local_unnamed_addr {18; CHECK-LABEL: input_i16:19; CHECK: # %bb.0: # %entry20; CHECK-NEXT: and $1, $5, $421; CHECK-NEXT: daddiu $2, $zero, -122; CHECK-NEXT: jr $ra23; CHECK-NEXT: xor $2, $1, $224 25entry:26 %0 = and i16 %b, %a27 %1 = xor i16 %0, -128 %or4 = sext i16 %1 to i3229 ret i32 %or430}31 32define i64 @return_i64(i32 noundef signext %a, i32 noundef signext %b) local_unnamed_addr {33; CHECK-LABEL: return_i64:34; CHECK: # %bb.0: # %entry35; CHECK-NEXT: and $1, $5, $436; CHECK-NEXT: daddiu $2, $zero, -137; CHECK-NEXT: jr $ra38; CHECK-NEXT: xor $2, $1, $239 40entry:41 %0 = and i32 %b, %a42 %or1 = xor i32 %0, -143 %conv = sext i32 %or1 to i6444 ret i64 %conv45}46