[InstCombine] Signed saturation patterns
[llvm-core.git] / test / Transforms / InstCombine / 2007-03-21-SignedRangeTest.ll
blobffcfe2683cf1d28875e7236c79ad4cab76d33595
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -instcombine -S | FileCheck %s
4 ; For PR1248
6 define i1 @test(i32 %tmp6) {
7 ; CHECK-LABEL: @test(
8 ; CHECK-NEXT:    [[TMP6_OFF:%.*]] = add i32 %tmp6, 83
9 ; CHECK-NEXT:    [[TMP1:%.*]] = icmp ugt i32 [[TMP6_OFF]], 11
10 ; CHECK-NEXT:    ret i1 [[TMP1]]
12   %tmp7 = sdiv i32 %tmp6, 12
13   icmp ne i32 %tmp7, -6
14   ret i1 %1
17 define <2 x i1> @test_vec(<2 x i32> %tmp6) {
18 ; CHECK-LABEL: @test_vec(
19 ; CHECK-NEXT:    [[TMP6_OFF:%.*]] = add <2 x i32> %tmp6, <i32 83, i32 83>
20 ; CHECK-NEXT:    [[TMP1:%.*]] = icmp ugt <2 x i32> [[TMP6_OFF]], <i32 11, i32 11>
21 ; CHECK-NEXT:    ret <2 x i1> [[TMP1]]
23   %tmp7 = sdiv <2 x i32> %tmp6, <i32 12, i32 12>
24   icmp ne <2 x i32> %tmp7, <i32 -6, i32 -6>
25   ret <2 x i1> %1