[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / Transforms / CorrelatedValuePropagation / 2010-09-26-MergeConstantRange.ll
blob52d95ddbd1d11f3f64a22df5277bd921c55367c5
1 ; RUN: opt < %s -passes=jump-threading,correlated-propagation
3 %struct.S2 = type {}
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, i1 %arg) noreturn nounwind ssp {
9 entry:
10   %tobool3 = icmp eq i16 %p_82, 0
11   br label %for.cond.outer
13 for.cond.outer:                                   ; preds = %for.cond.loopexit, %entry
14   br label %for.cond
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
29   br label %lbl_133
31 for.cond.split.us:                                ; preds = %for.cond
32   br label %lbl_133.us
34 lbl_133.us:                                       ; preds = %lbl_134.us, %for.cond.split.us
35   br i1 %arg, label %if.else14.us-lcssa.us, label %if.then.us
37 lbl_134.us:                                       ; preds = %if.then.us
38   %cmp = icmp eq i16 ptrtoint (ptr @g_128 to i16), 0
39   br i1 %cmp, label %for.cond9.preheader.us-lcssa.us, label %lbl_133.us
41 if.then.us:                                       ; preds = %lbl_133.us
42   br i1 true, label %for.cond.loopexit4.us-lcssa.us, label %lbl_134.us
44 if.else14.us-lcssa.us:                            ; preds = %lbl_133.us
45   br label %if.else14
47 for.cond9.preheader.us-lcssa.us:                  ; preds = %lbl_134.us
48   br label %for.cond9.preheader
50 for.cond.loopexit4.us-lcssa.us:                   ; preds = %if.then.us
51   br label %for.cond.loopexit4
53 lbl_133:                                          ; preds = %lbl_134, %for.cond.for.cond.split_crit_edge
54   %l_109.0 = phi i16 [ 0, %for.cond.for.cond.split_crit_edge ], [ ptrtoint (ptr @g_128 to i16), %lbl_134 ]
55   %tobool = icmp eq i32 undef, 0
56   br i1 %tobool, label %if.else14.us-lcssa, label %if.then
58 if.then:                                          ; preds = %lbl_133
59   br i1 false, label %for.cond.loopexit4.us-lcssa, label %lbl_134
61 lbl_134:                                          ; preds = %if.then
62   %cmp2 = icmp eq i16 ptrtoint (ptr @g_128 to i16), 0
63   br i1 %cmp2, label %for.cond9.preheader.us-lcssa, label %lbl_133
65 for.cond9.preheader.us-lcssa:                     ; preds = %lbl_134
66   br label %for.cond9.preheader
68 for.cond9.preheader:                              ; preds = %for.cond9.preheader.us-lcssa, %for.cond9.preheader.us-lcssa.us
69   br i1 %arg, label %bb.nph, label %for.cond.loopexit
71 bb.nph:                                           ; preds = %for.cond9.preheader
72   br label %for.cond.loopexit
74 if.else14.us-lcssa:                               ; preds = %lbl_133
75   br label %if.else14
77 if.else14:                                        ; preds = %if.else14.us-lcssa, %if.else14.us-lcssa.us
78   %l_109.0.lcssa = phi i16 [ %l_109.0, %if.else14.us-lcssa ], [ 0, %if.else14.us-lcssa.us ]
79   store i16 undef, ptr @g_106, align 2
80   br label %for.cond.backedge
82 for.cond.backedge:                                ; preds = %if.else14, %for.cond.loopexit4
83   br label %for.cond