[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / Transforms / IRNormalizer / regression-infinite-loop.ll
blob35ac0fd8c329a7589728ab3b99faf8bb9f35638f
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2 ; RUN: opt -S -passes=normalize < %s | FileCheck %s
4 define void @test(ptr, i32) {
5 ; CHECK-LABEL: define void @test(
6 ; CHECK-SAME: ptr [[A0:%.*]], i32 [[A1:%.*]]) {
7 ; CHECK-NEXT:  [[BB76951:.*]]:
8 ; CHECK-NEXT:    %"vl72693([[A1]], 1)" = add i32 [[A1]], 1
9 ; CHECK-NEXT:    br label %[[BB16110:.*]]
10 ; CHECK:       [[BB16110]]:
11 ; CHECK-NEXT:    %"op10912(op18080, vl72693)" = phi i32 [ %"op18080(op10412, op17645)", %[[BB16110]] ], [ %"vl72693([[A1]], 1)", %[[BB76951]] ]
12 ; CHECK-NEXT:    %"op10912(op17645, vl72693)" = phi i32 [ %"op17645(op10912)70", %[[BB16110]] ], [ %"vl72693([[A1]], 1)", %[[BB76951]] ]
13 ; CHECK-NEXT:    %"op15084(op10912)" = mul i32 %"op10912(op18080, vl72693)", undef
14 ; CHECK-NEXT:    %"op16562(op15084)" = xor i32 -1, %"op15084(op10912)"
15 ; CHECK-NEXT:    %"op44627(op10912, op16562)" = add i32 %"op10912(op18080, vl72693)", %"op16562(op15084)"
16 ; CHECK-NEXT:    %"op17645(op10912)" = add i32 -1, %"op10912(op17645, vl72693)"
17 ; CHECK-NEXT:    %"op18080(op17645, op44627)" = add i32 %"op17645(op10912)", %"op44627(op10912, op16562)"
18 ; CHECK-NEXT:    %"op17720(op15084, op18080)" = mul i32 %"op15084(op10912)", %"op18080(op17645, op44627)"
19 ; CHECK-NEXT:    %"op16562(op17720)" = xor i32 -1, %"op17720(op15084, op18080)"
20 ; CHECK-NEXT:    %"op17430(op16562, op18080)" = add i32 %"op16562(op17720)", %"op18080(op17645, op44627)"
21 ; CHECK-NEXT:    %"op10412(op17430)" = add i32 %"op17430(op16562, op18080)", undef
22 ; CHECK-NEXT:    %"op17720(op10412, op17720)" = mul i32 %"op10412(op17430)", %"op17720(op15084, op18080)"
23 ; CHECK-NEXT:    %"op16562(op17720)1" = xor i32 -1, %"op17720(op10412, op17720)"
24 ; CHECK-NEXT:    %"op17430(op10412, op16562)" = add i32 %"op10412(op17430)", %"op16562(op17720)1"
25 ; CHECK-NEXT:    %"op10412(op17430)2" = add i32 %"op17430(op10412, op16562)", undef
26 ; CHECK-NEXT:    %"op10412(op10412)" = add i32 %"op10412(op17430)2", undef
27 ; CHECK-NEXT:    %"op10412(op10412)3" = add i32 %"op10412(op10412)", undef
28 ; CHECK-NEXT:    %"op17720(op10412, op17720)4" = mul i32 %"op10412(op17430)2", %"op17720(op10412, op17720)"
29 ; CHECK-NEXT:    %"op17720(op10412, op17720)5" = mul i32 %"op10412(op10412)3", %"op17720(op10412, op17720)4"
30 ; CHECK-NEXT:    %"op16562(op17720)6" = xor i32 -1, %"op17720(op10412, op17720)5"
31 ; CHECK-NEXT:    %"op17430(op10412, op16562)7" = add i32 %"op10412(op10412)3", %"op16562(op17720)6"
32 ; CHECK-NEXT:    %"op10412(op17430)8" = add i32 %"op17430(op10412, op16562)7", undef
33 ; CHECK-NEXT:    %"op17720(op10412, op17720)9" = mul i32 %"op10412(op17430)8", %"op17720(op10412, op17720)5"
34 ; CHECK-NEXT:    %"op16562(op17720)10" = xor i32 -1, %"op17720(op10412, op17720)9"
35 ; CHECK-NEXT:    %"op17430(op10412, op16562)11" = add i32 %"op10412(op17430)8", %"op16562(op17720)10"
36 ; CHECK-NEXT:    %"op10412(op17430)12" = add i32 %"op17430(op10412, op16562)11", undef
37 ; CHECK-NEXT:    %"op17720(op10412, op17720)13" = mul i32 %"op10412(op17430)12", %"op17720(op10412, op17720)9"
38 ; CHECK-NEXT:    %"op16562(op17720)14" = xor i32 -1, %"op17720(op10412, op17720)13"
39 ; CHECK-NEXT:    %"op17430(op10412, op16562)15" = add i32 %"op10412(op17430)12", %"op16562(op17720)14"
40 ; CHECK-NEXT:    %"op10412(op17430)16" = add i32 %"op17430(op10412, op16562)15", undef
41 ; CHECK-NEXT:    %"op17720(op10412, op17720)17" = mul i32 %"op10412(op17430)16", %"op17720(op10412, op17720)13"
42 ; CHECK-NEXT:    %"op16562(op17720)18" = xor i32 -1, %"op17720(op10412, op17720)17"
43 ; CHECK-NEXT:    %"op17430(op10412, op16562)19" = add i32 %"op10412(op17430)16", %"op16562(op17720)18"
44 ; CHECK-NEXT:    %"op10412(op17430)20" = add i32 %"op17430(op10412, op16562)19", undef
45 ; CHECK-NEXT:    %"op17720(op10412, op17720)21" = mul i32 %"op10412(op17430)20", %"op17720(op10412, op17720)17"
46 ; CHECK-NEXT:    %"op16562(op17720)22" = xor i32 -1, %"op17720(op10412, op17720)21"
47 ; CHECK-NEXT:    %"op17430(op10412, op16562)23" = add i32 %"op10412(op17430)20", %"op16562(op17720)22"
48 ; CHECK-NEXT:    %"op17645(op10912)24" = add i32 -9, %"op10912(op17645, vl72693)"
49 ; CHECK-NEXT:    %"op18080(op17430, op17645)" = add i32 %"op17430(op10412, op16562)23", %"op17645(op10912)24"
50 ; CHECK-NEXT:    %"op17720(op17720, op18080)" = mul i32 %"op17720(op10412, op17720)21", %"op18080(op17430, op17645)"
51 ; CHECK-NEXT:    %"op16562(op17720)25" = xor i32 -1, %"op17720(op17720, op18080)"
52 ; CHECK-NEXT:    %"op17430(op16562, op18080)26" = add i32 %"op16562(op17720)25", %"op18080(op17430, op17645)"
53 ; CHECK-NEXT:    %"op10412(op17430)27" = add i32 %"op17430(op16562, op18080)26", undef
54 ; CHECK-NEXT:    %"op17720(op10412, op17720)28" = mul i32 %"op10412(op17430)27", %"op17720(op17720, op18080)"
55 ; CHECK-NEXT:    %"op16562(op17720)29" = xor i32 -1, %"op17720(op10412, op17720)28"
56 ; CHECK-NEXT:    %"op17430(op10412, op16562)30" = add i32 %"op10412(op17430)27", %"op16562(op17720)29"
57 ; CHECK-NEXT:    %"op10412(op17430)31" = add i32 %"op17430(op10412, op16562)30", undef
58 ; CHECK-NEXT:    %"op17720(op10412, op17720)32" = mul i32 %"op10412(op17430)31", %"op17720(op10412, op17720)28"
59 ; CHECK-NEXT:    %"op16562(op17720)33" = xor i32 -1, %"op17720(op10412, op17720)32"
60 ; CHECK-NEXT:    %"op17430(op10412, op16562)34" = add i32 %"op10412(op17430)31", %"op16562(op17720)33"
61 ; CHECK-NEXT:    %"op10412(op17430)35" = add i32 %"op17430(op10412, op16562)34", undef
62 ; CHECK-NEXT:    %"op17720(op10412, op17720)36" = mul i32 %"op10412(op17430)35", %"op17720(op10412, op17720)32"
63 ; CHECK-NEXT:    %"op16562(op17720)37" = xor i32 -1, %"op17720(op10412, op17720)36"
64 ; CHECK-NEXT:    %"op17430(op10412, op16562)38" = add i32 %"op10412(op17430)35", %"op16562(op17720)37"
65 ; CHECK-NEXT:    %"op10412(op17430)39" = add i32 %"op17430(op10412, op16562)38", undef
66 ; CHECK-NEXT:    %"op17720(op10412, op17720)40" = mul i32 %"op10412(op17430)39", %"op17720(op10412, op17720)36"
67 ; CHECK-NEXT:    %"op16562(op17720)41" = xor i32 -1, %"op17720(op10412, op17720)40"
68 ; CHECK-NEXT:    %"op17430(op10412, op16562)42" = add i32 %"op10412(op17430)39", %"op16562(op17720)41"
69 ; CHECK-NEXT:    %"op17645(op10912)43" = add i32 -14, %"op10912(op17645, vl72693)"
70 ; CHECK-NEXT:    %"op18080(op17430, op17645)44" = add i32 %"op17430(op10412, op16562)42", %"op17645(op10912)43"
71 ; CHECK-NEXT:    %"op17720(op17720, op18080)45" = mul i32 %"op17720(op10412, op17720)40", %"op18080(op17430, op17645)44"
72 ; CHECK-NEXT:    %"op16562(op17720)46" = xor i32 -1, %"op17720(op17720, op18080)45"
73 ; CHECK-NEXT:    %"op17430(op16562, op18080)47" = add i32 %"op16562(op17720)46", %"op18080(op17430, op17645)44"
74 ; CHECK-NEXT:    %"op10412(op17430)48" = add i32 %"op17430(op16562, op18080)47", undef
75 ; CHECK-NEXT:    %"op17720(op10412, op17720)49" = mul i32 %"op10412(op17430)48", %"op17720(op17720, op18080)45"
76 ; CHECK-NEXT:    %"op16562(op17720)50" = xor i32 -1, %"op17720(op10412, op17720)49"
77 ; CHECK-NEXT:    %"op17430(op10412, op16562)51" = add i32 %"op10412(op17430)48", %"op16562(op17720)50"
78 ; CHECK-NEXT:    %"op10412(op17430)52" = add i32 %"op17430(op10412, op16562)51", undef
79 ; CHECK-NEXT:    %"op17720(op10412, op17720)53" = mul i32 %"op10412(op17430)52", %"op17720(op10412, op17720)49"
80 ; CHECK-NEXT:    %"op16562(op17720)54" = xor i32 -1, %"op17720(op10412, op17720)53"
81 ; CHECK-NEXT:    %"op17430(op10412, op16562)55" = add i32 %"op10412(op17430)52", %"op16562(op17720)54"
82 ; CHECK-NEXT:    %"op10412(op17430)56" = add i32 %"op17430(op10412, op16562)55", undef
83 ; CHECK-NEXT:    %"op17720(op10412, op17720)57" = mul i32 %"op10412(op17430)56", %"op17720(op10412, op17720)53"
84 ; CHECK-NEXT:    %"op16562(op17720)58" = xor i32 -1, %"op17720(op10412, op17720)57"
85 ; CHECK-NEXT:    %"op17430(op10412, op16562)59" = add i32 %"op10412(op17430)56", %"op16562(op17720)58"
86 ; CHECK-NEXT:    %"op10412(op17430)60" = add i32 %"op17430(op10412, op16562)59", undef
87 ; CHECK-NEXT:    %"op17720(op10412, op17720)61" = mul i32 %"op10412(op17430)60", %"op17720(op10412, op17720)57"
88 ; CHECK-NEXT:    %"op16562(op17720)62" = xor i32 -1, %"op17720(op10412, op17720)61"
89 ; CHECK-NEXT:    %"op17430(op10412, op16562)63" = add i32 %"op10412(op17430)60", %"op16562(op17720)62"
90 ; CHECK-NEXT:    %"op10412(op17430)64" = add i32 %"op17430(op10412, op16562)63", undef
91 ; CHECK-NEXT:    %"op17720(op10412, op17720)65" = mul i32 %"op10412(op17430)64", %"op17720(op10412, op17720)61"
92 ; CHECK-NEXT:    %"op16562(op17720)66" = xor i32 -1, %"op17720(op10412, op17720)65"
93 ; CHECK-NEXT:    %"op17430(op10412, op16562)67" = add i32 %"op10412(op17430)64", %"op16562(op17720)66"
94 ; CHECK-NEXT:    %"op10412(op17430)68" = add i32 %"op17430(op10412, op16562)67", undef
95 ; CHECK-NEXT:    %"op10412(op10412)69" = add i32 %"op10412(op17430)68", undef
96 ; CHECK-NEXT:    %"op17645(op10912)70" = add i32 -21, %"op10912(op17645, vl72693)"
97 ; CHECK-NEXT:    %"op18080(op10412, op17645)" = add i32 %"op10412(op10412)69", %"op17645(op10912)70"
98 ; CHECK-NEXT:    store i32 %"op18080(op10412, op17645)", ptr [[A0]], align 4
99 ; CHECK-NEXT:    br label %[[BB16110]]
102   %a = add i32 %1, 1
103   br label %bb1
105 bb1:                                              ; preds = %bb1, %bb
106   %tmp = phi i32 [ %a, %bb ], [ %tmp87, %bb1 ]
107   %tmp2 = phi i32 [ %a, %bb ], [ %tmp86, %bb1 ]
108   %tmp3 = mul i32 %tmp, undef
109   %tmp4 = xor i32 %tmp3, -1
110   %tmp5 = add i32 %tmp, %tmp4
111   %tmp6 = add i32 %tmp2, -1
112   %tmp7 = add i32 %tmp5, %tmp6
113   %tmp8 = mul i32 %tmp7, %tmp3
114   %tmp9 = xor i32 %tmp8, -1
115   %tmp10 = add i32 %tmp7, %tmp9
116   %tmp11 = add i32 %tmp10, undef
117   %tmp12 = mul i32 %tmp11, %tmp8
118   %tmp13 = xor i32 %tmp12, -1
119   %tmp14 = add i32 %tmp11, %tmp13
120   %tmp15 = add i32 %tmp14, undef
121   %tmp16 = mul i32 %tmp15, %tmp12
122   %tmp17 = add i32 %tmp15, undef
123   %tmp18 = add i32 %tmp17, undef
124   %tmp19 = mul i32 %tmp18, %tmp16
125   %tmp20 = xor i32 %tmp19, -1
126   %tmp21 = add i32 %tmp18, %tmp20
127   %tmp22 = add i32 %tmp21, undef
128   %tmp23 = mul i32 %tmp22, %tmp19
129   %tmp24 = xor i32 %tmp23, -1
130   %tmp25 = add i32 %tmp22, %tmp24
131   %tmp26 = add i32 %tmp25, undef
132   %tmp27 = mul i32 %tmp26, %tmp23
133   %tmp28 = xor i32 %tmp27, -1
134   %tmp29 = add i32 %tmp26, %tmp28
135   %tmp30 = add i32 %tmp29, undef
136   %tmp31 = mul i32 %tmp30, %tmp27
137   %tmp32 = xor i32 %tmp31, -1
138   %tmp33 = add i32 %tmp30, %tmp32
139   %tmp34 = add i32 %tmp33, undef
140   %tmp35 = mul i32 %tmp34, %tmp31
141   %tmp36 = xor i32 %tmp35, -1
142   %tmp37 = add i32 %tmp34, %tmp36
143   %tmp38 = add i32 %tmp2, -9
144   %tmp39 = add i32 %tmp37, %tmp38
145   %tmp40 = mul i32 %tmp39, %tmp35
146   %tmp41 = xor i32 %tmp40, -1
147   %tmp42 = add i32 %tmp39, %tmp41
148   %tmp43 = add i32 %tmp42, undef
149   %tmp44 = mul i32 %tmp43, %tmp40
150   %tmp45 = xor i32 %tmp44, -1
151   %tmp46 = add i32 %tmp43, %tmp45
152   %tmp47 = add i32 %tmp46, undef
153   %tmp48 = mul i32 %tmp47, %tmp44
154   %tmp49 = xor i32 %tmp48, -1
155   %tmp50 = add i32 %tmp47, %tmp49
156   %tmp51 = add i32 %tmp50, undef
157   %tmp52 = mul i32 %tmp51, %tmp48
158   %tmp53 = xor i32 %tmp52, -1
159   %tmp54 = add i32 %tmp51, %tmp53
160   %tmp55 = add i32 %tmp54, undef
161   %tmp56 = mul i32 %tmp55, %tmp52
162   %tmp57 = xor i32 %tmp56, -1
163   %tmp58 = add i32 %tmp55, %tmp57
164   %tmp59 = add i32 %tmp2, -14
165   %tmp60 = add i32 %tmp58, %tmp59
166   %tmp61 = mul i32 %tmp60, %tmp56
167   %tmp62 = xor i32 %tmp61, -1
168   %tmp63 = add i32 %tmp60, %tmp62
169   %tmp64 = add i32 %tmp63, undef
170   %tmp65 = mul i32 %tmp64, %tmp61
171   %tmp66 = xor i32 %tmp65, -1
172   %tmp67 = add i32 %tmp64, %tmp66
173   %tmp68 = add i32 %tmp67, undef
174   %tmp69 = mul i32 %tmp68, %tmp65
175   %tmp70 = xor i32 %tmp69, -1
176   %tmp71 = add i32 %tmp68, %tmp70
177   %tmp72 = add i32 %tmp71, undef
178   %tmp73 = mul i32 %tmp72, %tmp69
179   %tmp74 = xor i32 %tmp73, -1
180   %tmp75 = add i32 %tmp72, %tmp74
181   %tmp76 = add i32 %tmp75, undef
182   %tmp77 = mul i32 %tmp76, %tmp73
183   %tmp78 = xor i32 %tmp77, -1
184   %tmp79 = add i32 %tmp76, %tmp78
185   %tmp80 = add i32 %tmp79, undef
186   %tmp81 = mul i32 %tmp80, %tmp77
187   %tmp82 = xor i32 %tmp81, -1
188   %tmp83 = add i32 %tmp80, %tmp82
189   %tmp84 = add i32 %tmp83, undef
190   %tmp85 = add i32 %tmp84, undef
191   %tmp86 = add i32 %tmp2, -21
192   %tmp87 = add i32 %tmp85, %tmp86
193   store i32 %tmp87, ptr %0
194   br label %bb1