[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / Transforms / JumpThreading / pr22086.ll
blob35d9aa5b1841e355fa706e19e95032d9a8e5fd0d
1 ; RUN: opt -S -jump-threading < %s | FileCheck %s
4 ; CHECK-LABEL: @f(
5 ; CHECK-LABEL: entry:
6 ; CHECK-NEXT:  br label %[[loop:.*]]
7 ; CHECK:       [[loop]]:
8 ; CHECK-NEXT:  br label %[[loop]]
10 define void @f() {
11 entry:
12   br label %for.cond1
14 if.end16:
15   %phi1 = phi i32 [ undef, %for.cond1 ]
16   %g.3 = phi i32 [ %g.1, %for.cond1 ]
17   %sext = shl i32 %g.3, 16
18   %conv20 = ashr exact i32 %sext, 16
19   %tobool21 = icmp eq i32 %phi1, 0
20   br i1 %tobool21, label %lor.rhs, label %for.cond1
22 for.cond1:
23   %g.1 = phi i32 [ 0, %entry ], [ 0, %lor.rhs ], [ %g.3, %if.end16 ]
24   br i1 undef, label %lor.rhs, label %if.end16
26 lor.rhs:
27   br label %for.cond1