1
; RUN: opt < %s -jump-threading -correlated-propagation
5
@g_128 = external global %struct.S2, align 1
6
@g_106 = external global i16, align 2
8
define void @int328(i16 signext %p_82) noreturn nounwind ssp {
10
%tobool3 = icmp eq i16 %p_82, 0
11
br label %for.cond.outer
13
for.cond.outer: ; preds = %for.cond.loopexit, %entry
16
for.cond.loopexit: ; preds = %bb.nph, %for.cond9.preheader
17
br label %for.cond.outer
19
for.cond.loopexit4.us-lcssa: ; preds = %if.then
20
br label %for.cond.loopexit4
22
for.cond.loopexit4: ; preds = %for.cond.loopexit4.us-lcssa.us, %for.cond.loopexit4.us-lcssa
23
br label %for.cond.backedge
25
for.cond: ; preds = %for.cond.backedge, %for.cond.outer
26
br i1 %tobool3, label %for.cond.split.us, label %for.cond.for.cond.split_crit_edge
28
for.cond.for.cond.split_crit_edge: ; preds = %for.cond
31
for.cond.split.us: ; preds = %for.cond
34
lbl_133.us: ; preds = %lbl_134.us, %for.cond.split.us
35
br i1 undef, label %if.else14.us-lcssa.us, label %if.then.us
37
lbl_134.us: ; preds = %if.then.us
38
br i1 icmp eq (i16 ptrtoint (%struct.S2* @g_128 to i16), i16 0), label %for.cond9.preheader.us-lcssa.us, label %lbl_133.us
40
if.then.us: ; preds = %lbl_133.us
41
br i1 true, label %for.cond.loopexit4.us-lcssa.us, label %lbl_134.us
43
if.else14.us-lcssa.us: ; preds = %lbl_133.us
46
for.cond9.preheader.us-lcssa.us: ; preds = %lbl_134.us
47
br label %for.cond9.preheader
49
for.cond.loopexit4.us-lcssa.us: ; preds = %if.then.us
50
br label %for.cond.loopexit4
52
lbl_133: ; preds = %lbl_134, %for.cond.for.cond.split_crit_edge
53
%l_109.0 = phi i16 [ 0, %for.cond.for.cond.split_crit_edge ], [ ptrtoint (%struct.S2* @g_128 to i16), %lbl_134 ]
54
%tobool = icmp eq i32 undef, 0
55
br i1 %tobool, label %if.else14.us-lcssa, label %if.then
57
if.then: ; preds = %lbl_133
58
br i1 false, label %for.cond.loopexit4.us-lcssa, label %lbl_134
60
lbl_134: ; preds = %if.then
61
br i1 icmp eq (i16 ptrtoint (%struct.S2* @g_128 to i16), i16 0), label %for.cond9.preheader.us-lcssa, label %lbl_133
63
for.cond9.preheader.us-lcssa: ; preds = %lbl_134
64
br label %for.cond9.preheader
66
for.cond9.preheader: ; preds = %for.cond9.preheader.us-lcssa, %for.cond9.preheader.us-lcssa.us
67
br i1 undef, label %bb.nph, label %for.cond.loopexit
69
bb.nph: ; preds = %for.cond9.preheader
70
br label %for.cond.loopexit
72
if.else14.us-lcssa: ; preds = %lbl_133
75
if.else14: ; preds = %if.else14.us-lcssa, %if.else14.us-lcssa.us
76
%l_109.0.lcssa = phi i16 [ %l_109.0, %if.else14.us-lcssa ], [ 0, %if.else14.us-lcssa.us ]
77
store i16 undef, i16* @g_106, align 2
78
br label %for.cond.backedge
80
for.cond.backedge: ; preds = %if.else14, %for.cond.loopexit4