[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / Analysis / LazyValueAnalysis / lvi-for-ashr.ll
blobcdc27e4d0b3cc6a3148fb1c993149450f39c0307
1 ; RUN: opt -correlated-propagation -S %s | FileCheck %s
2 ; CHECK-LABEL: @test-ashr
3 ; CHECK: bb_then
4 ; CHECK:  %. = select i1 true, i32 3, i32 2
5 define i32 @test-ashr(i32 %c) {
6 chk65:
7   %cmp = icmp sgt i32 %c, 65
8   br i1 %cmp, label %return, label %chk0
10 chk0:
11   %cmp1 = icmp slt i32 %c, 0
12   br i1 %cmp, label %return, label %bb_if
14 bb_if:
15   %ashr.val = ashr exact i32 %c, 2
16   %cmp2 = icmp sgt i32 %ashr.val, 15
17   br i1 %cmp2, label %bb_then, label %return
19 bb_then:
20   %cmp3 = icmp eq i32 %ashr.val, 16
21   %. = select i1 %cmp3, i32 3, i32 2
22   br label %return
24 return:
25   %retval = phi i32 [0, %chk65], [1, %chk0], [%., %bb_then], [4, %bb_if]
26   ret i32 %retval