79 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=riscv64 -mattr=+m | FileCheck %s3 4define i32 @f(i1 %0, i32 %1, ptr %2) {5; CHECK-LABEL: f:6; CHECK: # %bb.0: # %BB7; CHECK-NEXT: slli a0, a0, 638; CHECK-NEXT: lui a3, 40979; CHECK-NEXT: srai a0, a0, 6310; CHECK-NEXT: addi a3, a3, -204711; CHECK-NEXT: or a0, a0, a312; CHECK-NEXT: mul a1, a1, a313; CHECK-NEXT: sw a1, 0(a2)14; CHECK-NEXT: ret15BB:16 %I = select i1 %0, i32 -1, i32 017 %I1 = mul i32 %1, 1677926518 %I2 = or i32 16779265, %I19 store i32 %I1, ptr %220 ret i32 %I221}22 23define i32 @g(i1 %0, i32 %1, ptr %2) {24; CHECK-LABEL: g:25; CHECK: # %bb.0: # %BB26; CHECK-NEXT: andi a0, a0, 127; CHECK-NEXT: lui a3, 409728; CHECK-NEXT: addi a0, a0, -129; CHECK-NEXT: addi a3, a3, -204730; CHECK-NEXT: or a0, a0, a331; CHECK-NEXT: mul a1, a1, a332; CHECK-NEXT: sw a1, 0(a2)33; CHECK-NEXT: ret34BB:35 %I = select i1 %0, i32 0, i32 -136 %I1 = mul i32 %1, 1677926537 %I2 = or i32 16779265, %I38 store i32 %I1, ptr %239 ret i32 %I240}41 42define i32 @h(i1 %0, i32 %1, ptr %2) {43; CHECK-LABEL: h:44; CHECK: # %bb.0: # %BB45; CHECK-NEXT: lui a3, 409746; CHECK-NEXT: slli a0, a0, 6347; CHECK-NEXT: addi a3, a3, -204748; CHECK-NEXT: srai a0, a0, 6349; CHECK-NEXT: mul a1, a1, a350; CHECK-NEXT: and a0, a0, a351; CHECK-NEXT: sw a1, 0(a2)52; CHECK-NEXT: ret53BB:54 %I = select i1 %0, i32 -1, i32 055 %I1 = mul i32 %1, 1677926556 %I2 = and i32 16779265, %I57 store i32 %I1, ptr %258 ret i32 %I259}60 61define i32 @i(i1 %0, i32 %1, ptr %2) {62; CHECK-LABEL: i:63; CHECK: # %bb.0: # %BB64; CHECK-NEXT: andi a0, a0, 165; CHECK-NEXT: lui a3, 409766; CHECK-NEXT: addi a3, a3, -204767; CHECK-NEXT: addi a0, a0, -168; CHECK-NEXT: mul a1, a1, a369; CHECK-NEXT: and a0, a0, a370; CHECK-NEXT: sw a1, 0(a2)71; CHECK-NEXT: ret72BB:73 %I = select i1 %0, i32 0, i32 -174 %I1 = mul i32 %1, 1677926575 %I2 = and i32 16779265, %I76 store i32 %I1, ptr %277 ret i32 %I278}79