61 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc -mtriple=riscv64 < %s | FileCheck %s3 4define i64 @fold_binop_into_select_0(i1 %c, i64 %x) {5; CHECK-LABEL: fold_binop_into_select_0:6; CHECK: # %bb.0: # %entry7; CHECK-NEXT: addi a1, a1, -28; CHECK-NEXT: slli a0, a0, 639; CHECK-NEXT: srai a0, a0, 6310; CHECK-NEXT: and a0, a0, a111; CHECK-NEXT: ret12entry:13 %select_ = select i1 %c, i64 %x, i64 214 %res = sub i64 %select_, 215 ret i64 %res16}17 18define i64 @fold_binop_into_select_1(i1 %c, i64 %x) {19; CHECK-LABEL: fold_binop_into_select_1:20; CHECK: # %bb.0: # %entry21; CHECK-NEXT: andi a0, a0, 122; CHECK-NEXT: addi a1, a1, -223; CHECK-NEXT: addi a0, a0, -124; CHECK-NEXT: and a0, a0, a125; CHECK-NEXT: ret26entry:27 %select_ = select i1 %c, i64 2, i64 %x28 %res = sub i64 %select_, 229 ret i64 %res30}31 32define i64 @fold_binop_into_select_2(i1 %c, i64 %x) {33; CHECK-LABEL: fold_binop_into_select_2:34; CHECK: # %bb.0: # %entry35; CHECK-NEXT: li a2, 236; CHECK-NEXT: slli a0, a0, 6337; CHECK-NEXT: sub a2, a2, a138; CHECK-NEXT: srai a0, a0, 6339; CHECK-NEXT: and a0, a0, a240; CHECK-NEXT: ret41entry:42 %select_ = select i1 %c, i64 %x, i64 243 %res = sub i64 2, %select_44 ret i64 %res45}46 47define i64 @fold_binop_into_select_3(i1 %c, i64 %x) {48; CHECK-LABEL: fold_binop_into_select_3:49; CHECK: # %bb.0: # %entry50; CHECK-NEXT: andi a0, a0, 151; CHECK-NEXT: li a2, 252; CHECK-NEXT: sub a2, a2, a153; CHECK-NEXT: addi a0, a0, -154; CHECK-NEXT: and a0, a0, a255; CHECK-NEXT: ret56entry:57 %select_ = select i1 %c, i64 2, i64 %x58 %res = sub i64 2, %select_59 ret i64 %res60}61