1; RUN: opt -S -jump-threading < %s | FileCheck %s
2
3
4; CHECK-LABEL: @f(
5; CHECK-LABEL: entry:
6; CHECK-NEXT:  br label %[[loop:.*]]
7; CHECK:       [[loop]]:
8; CHECK-NEXT:  br label %[[loop]]
9
10define void @f() {
11entry:
12  br label %for.cond1
13
14if.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
21
22for.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
25
26lor.rhs:
27  br label %for.cond1
28}
29