diff options
Diffstat (limited to 'llvm/test/Transforms/InstCombine/pr27236.ll')
-rw-r--r-- | llvm/test/Transforms/InstCombine/pr27236.ll | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/pr27236.ll b/llvm/test/Transforms/InstCombine/pr27236.ll new file mode 100644 index 00000000000..f55ee0bffd8 --- /dev/null +++ b/llvm/test/Transforms/InstCombine/pr27236.ll @@ -0,0 +1,17 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; RUN: opt -S -instcombine < %s | FileCheck %s + +define float @test1(i32 %scale) { +; CHECK-LABEL: @test1( +; CHECK-NEXT: [[TMP1:%.*]] = icmp sgt i32 [[SCALE:%.*]], 1 +; CHECK-NEXT: [[TMP2:%.*]] = select i1 [[TMP1]], i32 [[SCALE]], i32 1 +; CHECK-NEXT: [[TMP3:%.*]] = sitofp i32 [[TMP2]] to float +; CHECK-NEXT: ret float [[TMP3]] +; + %1 = icmp sgt i32 1, %scale + %2 = select i1 %1, i32 1, i32 %scale + %3 = sitofp i32 %2 to float + %4 = icmp sgt i32 %2, 0 + %sel = select i1 %4, float %3, float 0.000000e+00 + ret float %sel +} |