[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / PowerPC / rematerializable-instruction-machine-licm.ll
blob82a50d6ac1746c49bf3dd2d467504b86f4dec99f
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -verify-machineinstrs -mcpu=pwr9 < %s | FileCheck %s
3 target datalayout = "e-m:e-i64:64-n32:64"
4 target triple = "powerpc64le-unknown-linux-gnu"
6 define zeroext i32 @test1(i64 %0, ptr %1) {
7 ; CHECK-LABEL: test1:
8 ; CHECK:       # %bb.0:
9 ; CHECK-NEXT:    stdu 1, -720(1)
10 ; CHECK-NEXT:    .cfi_def_cfa_offset 720
11 ; CHECK-NEXT:    .cfi_offset r14, -144
12 ; CHECK-NEXT:    .cfi_offset r15, -136
13 ; CHECK-NEXT:    .cfi_offset r16, -128
14 ; CHECK-NEXT:    .cfi_offset r17, -120
15 ; CHECK-NEXT:    .cfi_offset r18, -112
16 ; CHECK-NEXT:    .cfi_offset r19, -104
17 ; CHECK-NEXT:    .cfi_offset r20, -96
18 ; CHECK-NEXT:    .cfi_offset r21, -88
19 ; CHECK-NEXT:    .cfi_offset r22, -80
20 ; CHECK-NEXT:    .cfi_offset r23, -72
21 ; CHECK-NEXT:    .cfi_offset r24, -64
22 ; CHECK-NEXT:    .cfi_offset r25, -56
23 ; CHECK-NEXT:    .cfi_offset r26, -48
24 ; CHECK-NEXT:    .cfi_offset r27, -40
25 ; CHECK-NEXT:    .cfi_offset r28, -32
26 ; CHECK-NEXT:    .cfi_offset r29, -24
27 ; CHECK-NEXT:    .cfi_offset r30, -16
28 ; CHECK-NEXT:    .cfi_offset r31, -8
29 ; CHECK-NEXT:    .cfi_offset r2, -152
30 ; CHECK-NEXT:    lis 5, 1
31 ; CHECK-NEXT:    std 30, 704(1) # 8-byte Folded Spill
32 ; CHECK-NEXT:    std 29, 696(1) # 8-byte Folded Spill
33 ; CHECK-NEXT:    ori 5, 5, 1573
34 ; CHECK-NEXT:    std 28, 688(1) # 8-byte Folded Spill
35 ; CHECK-NEXT:    std 27, 680(1) # 8-byte Folded Spill
36 ; CHECK-NEXT:    std 26, 672(1) # 8-byte Folded Spill
37 ; CHECK-NEXT:    std 14, 576(1) # 8-byte Folded Spill
38 ; CHECK-NEXT:    rldic 5, 5, 34, 13
39 ; CHECK-NEXT:    std 15, 584(1) # 8-byte Folded Spill
40 ; CHECK-NEXT:    std 16, 592(1) # 8-byte Folded Spill
41 ; CHECK-NEXT:    std 17, 600(1) # 8-byte Folded Spill
42 ; CHECK-NEXT:    oris 6, 5, 13030
43 ; CHECK-NEXT:    oris 7, 5, 13066
44 ; CHECK-NEXT:    oris 8, 5, 13054
45 ; CHECK-NEXT:    oris 9, 5, 13042
46 ; CHECK-NEXT:    oris 10, 5, 13078
47 ; CHECK-NEXT:    oris 11, 5, 13115
48 ; CHECK-NEXT:    oris 12, 5, 13103
49 ; CHECK-NEXT:    oris 0, 5, 13091
50 ; CHECK-NEXT:    oris 30, 5, 13127
51 ; CHECK-NEXT:    oris 29, 5, 13164
52 ; CHECK-NEXT:    oris 28, 5, 13152
53 ; CHECK-NEXT:    oris 27, 5, 13139
54 ; CHECK-NEXT:    oris 26, 5, 13176
55 ; CHECK-NEXT:    ori 6, 6, 3704
56 ; CHECK-NEXT:    ori 7, 7, 44408
57 ; CHECK-NEXT:    ori 8, 8, 30840
58 ; CHECK-NEXT:    ori 9, 9, 17272
59 ; CHECK-NEXT:    ori 10, 10, 57976
60 ; CHECK-NEXT:    ori 11, 11, 33144
61 ; CHECK-NEXT:    ori 12, 12, 19576
62 ; CHECK-NEXT:    ori 0, 0, 6008
63 ; CHECK-NEXT:    ori 30, 30, 46712
64 ; CHECK-NEXT:    ori 29, 29, 21880
65 ; CHECK-NEXT:    ori 28, 28, 8312
66 ; CHECK-NEXT:    ori 27, 27, 60280
67 ; CHECK-NEXT:    ori 26, 26, 35448
68 ; CHECK-NEXT:    std 18, 608(1) # 8-byte Folded Spill
69 ; CHECK-NEXT:    add 6, 4, 6
70 ; CHECK-NEXT:    std 19, 616(1) # 8-byte Folded Spill
71 ; CHECK-NEXT:    std 20, 624(1) # 8-byte Folded Spill
72 ; CHECK-NEXT:    std 21, 632(1) # 8-byte Folded Spill
73 ; CHECK-NEXT:    std 22, 640(1) # 8-byte Folded Spill
74 ; CHECK-NEXT:    std 23, 648(1) # 8-byte Folded Spill
75 ; CHECK-NEXT:    std 24, 656(1) # 8-byte Folded Spill
76 ; CHECK-NEXT:    std 25, 664(1) # 8-byte Folded Spill
77 ; CHECK-NEXT:    std 31, 712(1) # 8-byte Folded Spill
78 ; CHECK-NEXT:    std 2, 568(1) # 8-byte Folded Spill
79 ; CHECK-NEXT:    std 6, 384(1) # 8-byte Folded Spill
80 ; CHECK-NEXT:    add 6, 4, 7
81 ; CHECK-NEXT:    lis 7, 354
82 ; CHECK-NEXT:    std 6, 376(1) # 8-byte Folded Spill
83 ; CHECK-NEXT:    add 6, 4, 8
84 ; CHECK-NEXT:    lis 8, 402
85 ; CHECK-NEXT:    std 6, 368(1) # 8-byte Folded Spill
86 ; CHECK-NEXT:    add 6, 4, 9
87 ; CHECK-NEXT:    lis 9, 451
88 ; CHECK-NEXT:    std 6, 360(1) # 8-byte Folded Spill
89 ; CHECK-NEXT:    add 6, 4, 10
90 ; CHECK-NEXT:    lis 10, 500
91 ; CHECK-NEXT:    std 6, 352(1) # 8-byte Folded Spill
92 ; CHECK-NEXT:    add 6, 4, 11
93 ; CHECK-NEXT:    lis 11, 549
94 ; CHECK-NEXT:    std 6, 344(1) # 8-byte Folded Spill
95 ; CHECK-NEXT:    add 6, 4, 12
96 ; CHECK-NEXT:    std 6, 336(1) # 8-byte Folded Spill
97 ; CHECK-NEXT:    add 6, 4, 0
98 ; CHECK-NEXT:    std 6, 328(1) # 8-byte Folded Spill
99 ; CHECK-NEXT:    add 6, 4, 30
100 ; CHECK-NEXT:    std 6, 320(1) # 8-byte Folded Spill
101 ; CHECK-NEXT:    add 6, 4, 29
102 ; CHECK-NEXT:    std 6, 312(1) # 8-byte Folded Spill
103 ; CHECK-NEXT:    add 6, 4, 28
104 ; CHECK-NEXT:    std 6, 304(1) # 8-byte Folded Spill
105 ; CHECK-NEXT:    add 6, 4, 27
106 ; CHECK-NEXT:    std 6, 296(1) # 8-byte Folded Spill
107 ; CHECK-NEXT:    add 6, 4, 26
108 ; CHECK-NEXT:    std 6, 288(1) # 8-byte Folded Spill
109 ; CHECK-NEXT:    oris 6, 5, 13213
110 ; CHECK-NEXT:    ori 6, 6, 10616
111 ; CHECK-NEXT:    add 6, 4, 6
112 ; CHECK-NEXT:    std 6, 280(1) # 8-byte Folded Spill
113 ; CHECK-NEXT:    oris 6, 5, 13200
114 ; CHECK-NEXT:    oris 5, 5, 13188
115 ; CHECK-NEXT:    ori 5, 5, 49016
116 ; CHECK-NEXT:    ori 6, 6, 62584
117 ; CHECK-NEXT:    add 5, 4, 5
118 ; CHECK-NEXT:    add 6, 4, 6
119 ; CHECK-NEXT:    std 5, 264(1) # 8-byte Folded Spill
120 ; CHECK-NEXT:    lis 5, 4
121 ; CHECK-NEXT:    std 6, 272(1) # 8-byte Folded Spill
122 ; CHECK-NEXT:    lis 6, 305
123 ; CHECK-NEXT:    ori 5, 5, 6291
124 ; CHECK-NEXT:    rldic 5, 5, 32, 13
125 ; CHECK-NEXT:    oris 5, 5, 29347
126 ; CHECK-NEXT:    ori 5, 5, 20088
127 ; CHECK-NEXT:    add 4, 4, 5
128 ; CHECK-NEXT:    lis 5, 268
129 ; CHECK-NEXT:    std 4, 256(1) # 8-byte Folded Spill
130 ; CHECK-NEXT:    lis 4, 585
131 ; CHECK-NEXT:    ori 4, 4, 61440
132 ; CHECK-NEXT:    std 4, 560(1) # 8-byte Folded Spill
133 ; CHECK-NEXT:    lis 4, 48
134 ; CHECK-NEXT:    ori 4, 4, 54272
135 ; CHECK-NEXT:    std 4, 552(1) # 8-byte Folded Spill
136 ; CHECK-NEXT:    lis 4, 97
137 ; CHECK-NEXT:    ori 4, 4, 43008
138 ; CHECK-NEXT:    std 4, 544(1) # 8-byte Folded Spill
139 ; CHECK-NEXT:    lis 4, 146
140 ; CHECK-NEXT:    ori 4, 4, 31744
141 ; CHECK-NEXT:    std 4, 536(1) # 8-byte Folded Spill
142 ; CHECK-NEXT:    lis 4, 195
143 ; CHECK-NEXT:    ori 4, 4, 20480
144 ; CHECK-NEXT:    std 4, 528(1) # 8-byte Folded Spill
145 ; CHECK-NEXT:    lis 4, 244
146 ; CHECK-NEXT:    ori 4, 4, 9216
147 ; CHECK-NEXT:    std 4, 520(1) # 8-byte Folded Spill
148 ; CHECK-NEXT:    lis 4, 292
149 ; CHECK-NEXT:    ori 4, 4, 63488
150 ; CHECK-NEXT:    std 4, 512(1) # 8-byte Folded Spill
151 ; CHECK-NEXT:    lis 4, 341
152 ; CHECK-NEXT:    ori 4, 4, 52224
153 ; CHECK-NEXT:    std 4, 504(1) # 8-byte Folded Spill
154 ; CHECK-NEXT:    lis 4, 390
155 ; CHECK-NEXT:    ori 4, 4, 40960
156 ; CHECK-NEXT:    std 4, 496(1) # 8-byte Folded Spill
157 ; CHECK-NEXT:    lis 4, 439
158 ; CHECK-NEXT:    ori 4, 4, 29696
159 ; CHECK-NEXT:    std 4, 488(1) # 8-byte Folded Spill
160 ; CHECK-NEXT:    lis 4, 488
161 ; CHECK-NEXT:    ori 4, 4, 18432
162 ; CHECK-NEXT:    std 4, 480(1) # 8-byte Folded Spill
163 ; CHECK-NEXT:    lis 4, 537
164 ; CHECK-NEXT:    ori 4, 4, 7168
165 ; CHECK-NEXT:    std 4, 472(1) # 8-byte Folded Spill
166 ; CHECK-NEXT:    lis 4, 36
167 ; CHECK-NEXT:    ori 4, 4, 40704
168 ; CHECK-NEXT:    std 4, 464(1) # 8-byte Folded Spill
169 ; CHECK-NEXT:    lis 4, 85
170 ; CHECK-NEXT:    ori 4, 4, 29440
171 ; CHECK-NEXT:    std 4, 456(1) # 8-byte Folded Spill
172 ; CHECK-NEXT:    lis 4, 134
173 ; CHECK-NEXT:    ori 4, 4, 18176
174 ; CHECK-NEXT:    std 4, 448(1) # 8-byte Folded Spill
175 ; CHECK-NEXT:    lis 4, 183
176 ; CHECK-NEXT:    ori 4, 4, 6912
177 ; CHECK-NEXT:    std 4, 440(1) # 8-byte Folded Spill
178 ; CHECK-NEXT:    lis 4, 231
179 ; CHECK-NEXT:    ori 4, 4, 61184
180 ; CHECK-NEXT:    std 4, 432(1) # 8-byte Folded Spill
181 ; CHECK-NEXT:    lis 4, 280
182 ; CHECK-NEXT:    ori 4, 4, 49920
183 ; CHECK-NEXT:    std 4, 424(1) # 8-byte Folded Spill
184 ; CHECK-NEXT:    lis 4, 329
185 ; CHECK-NEXT:    ori 4, 4, 38656
186 ; CHECK-NEXT:    std 4, 416(1) # 8-byte Folded Spill
187 ; CHECK-NEXT:    lis 4, 378
188 ; CHECK-NEXT:    ori 4, 4, 27392
189 ; CHECK-NEXT:    std 4, 408(1) # 8-byte Folded Spill
190 ; CHECK-NEXT:    lis 4, 427
191 ; CHECK-NEXT:    ori 4, 4, 16128
192 ; CHECK-NEXT:    std 4, 400(1) # 8-byte Folded Spill
193 ; CHECK-NEXT:    lis 4, 476
194 ; CHECK-NEXT:    ori 4, 4, 4864
195 ; CHECK-NEXT:    std 4, 248(1) # 8-byte Folded Spill
196 ; CHECK-NEXT:    lis 4, 524
197 ; CHECK-NEXT:    ori 4, 4, 59136
198 ; CHECK-NEXT:    std 4, 240(1) # 8-byte Folded Spill
199 ; CHECK-NEXT:    lis 4, 573
200 ; CHECK-NEXT:    ori 4, 4, 47872
201 ; CHECK-NEXT:    std 4, 232(1) # 8-byte Folded Spill
202 ; CHECK-NEXT:    lis 4, 24
203 ; CHECK-NEXT:    ori 4, 4, 27136
204 ; CHECK-NEXT:    std 4, 224(1) # 8-byte Folded Spill
205 ; CHECK-NEXT:    lis 4, 73
206 ; CHECK-NEXT:    ori 4, 4, 15872
207 ; CHECK-NEXT:    std 4, 216(1) # 8-byte Folded Spill
208 ; CHECK-NEXT:    lis 4, 122
209 ; CHECK-NEXT:    ori 4, 4, 4608
210 ; CHECK-NEXT:    std 4, 208(1) # 8-byte Folded Spill
211 ; CHECK-NEXT:    lis 4, 170
212 ; CHECK-NEXT:    ori 4, 4, 58880
213 ; CHECK-NEXT:    std 4, 200(1) # 8-byte Folded Spill
214 ; CHECK-NEXT:    lis 4, 219
215 ; CHECK-NEXT:    ori 4, 4, 47616
216 ; CHECK-NEXT:    std 4, 192(1) # 8-byte Folded Spill
217 ; CHECK-NEXT:    ori 4, 5, 36352
218 ; CHECK-NEXT:    lis 5, 317
219 ; CHECK-NEXT:    ld 30, 192(1) # 8-byte Folded Reload
220 ; CHECK-NEXT:    std 4, 184(1) # 8-byte Folded Spill
221 ; CHECK-NEXT:    ori 4, 5, 25088
222 ; CHECK-NEXT:    lis 5, 366
223 ; CHECK-NEXT:    ld 29, 184(1) # 8-byte Folded Reload
224 ; CHECK-NEXT:    std 4, 176(1) # 8-byte Folded Spill
225 ; CHECK-NEXT:    ori 4, 5, 13824
226 ; CHECK-NEXT:    lis 5, 415
227 ; CHECK-NEXT:    ld 28, 176(1) # 8-byte Folded Reload
228 ; CHECK-NEXT:    std 4, 168(1) # 8-byte Folded Spill
229 ; CHECK-NEXT:    ori 4, 5, 2560
230 ; CHECK-NEXT:    lis 5, 463
231 ; CHECK-NEXT:    ld 27, 168(1) # 8-byte Folded Reload
232 ; CHECK-NEXT:    std 4, 160(1) # 8-byte Folded Spill
233 ; CHECK-NEXT:    ori 4, 5, 56832
234 ; CHECK-NEXT:    lis 5, 512
235 ; CHECK-NEXT:    ld 26, 160(1) # 8-byte Folded Reload
236 ; CHECK-NEXT:    std 4, 152(1) # 8-byte Folded Spill
237 ; CHECK-NEXT:    ori 4, 5, 45568
238 ; CHECK-NEXT:    lis 5, 561
239 ; CHECK-NEXT:    ld 25, 152(1) # 8-byte Folded Reload
240 ; CHECK-NEXT:    std 4, 144(1) # 8-byte Folded Spill
241 ; CHECK-NEXT:    ori 4, 5, 34304
242 ; CHECK-NEXT:    lis 5, 12
243 ; CHECK-NEXT:    ld 24, 144(1) # 8-byte Folded Reload
244 ; CHECK-NEXT:    std 4, 136(1) # 8-byte Folded Spill
245 ; CHECK-NEXT:    ori 4, 5, 13568
246 ; CHECK-NEXT:    lis 5, 61
247 ; CHECK-NEXT:    ld 23, 136(1) # 8-byte Folded Reload
248 ; CHECK-NEXT:    std 4, 128(1) # 8-byte Folded Spill
249 ; CHECK-NEXT:    ori 4, 5, 2304
250 ; CHECK-NEXT:    lis 5, 109
251 ; CHECK-NEXT:    std 4, 120(1) # 8-byte Folded Spill
252 ; CHECK-NEXT:    ori 4, 5, 56576
253 ; CHECK-NEXT:    lis 5, 158
254 ; CHECK-NEXT:    ld 0, 120(1) # 8-byte Folded Reload
255 ; CHECK-NEXT:    std 4, 112(1) # 8-byte Folded Spill
256 ; CHECK-NEXT:    ori 4, 5, 45312
257 ; CHECK-NEXT:    lis 5, 207
258 ; CHECK-NEXT:    ld 22, 112(1) # 8-byte Folded Reload
259 ; CHECK-NEXT:    std 4, 104(1) # 8-byte Folded Spill
260 ; CHECK-NEXT:    ori 4, 5, 34048
261 ; CHECK-NEXT:    lis 5, 256
262 ; CHECK-NEXT:    ld 21, 104(1) # 8-byte Folded Reload
263 ; CHECK-NEXT:    std 4, 96(1) # 8-byte Folded Spill
264 ; CHECK-NEXT:    ori 4, 5, 22784
265 ; CHECK-NEXT:    ld 5, 248(1) # 8-byte Folded Reload
266 ; CHECK-NEXT:    ld 20, 96(1) # 8-byte Folded Reload
267 ; CHECK-NEXT:    std 4, 88(1) # 8-byte Folded Spill
268 ; CHECK-NEXT:    ori 4, 6, 11520
269 ; CHECK-NEXT:    ld 6, 240(1) # 8-byte Folded Reload
270 ; CHECK-NEXT:    ld 19, 88(1) # 8-byte Folded Reload
271 ; CHECK-NEXT:    std 4, 80(1) # 8-byte Folded Spill
272 ; CHECK-NEXT:    ori 4, 7, 256
273 ; CHECK-NEXT:    ld 7, 232(1) # 8-byte Folded Reload
274 ; CHECK-NEXT:    ld 18, 80(1) # 8-byte Folded Reload
275 ; CHECK-NEXT:    std 4, 72(1) # 8-byte Folded Spill
276 ; CHECK-NEXT:    ori 4, 8, 54528
277 ; CHECK-NEXT:    ld 8, 224(1) # 8-byte Folded Reload
278 ; CHECK-NEXT:    ld 17, 72(1) # 8-byte Folded Reload
279 ; CHECK-NEXT:    std 4, 64(1) # 8-byte Folded Spill
280 ; CHECK-NEXT:    ori 4, 9, 43264
281 ; CHECK-NEXT:    ld 9, 216(1) # 8-byte Folded Reload
282 ; CHECK-NEXT:    ld 16, 64(1) # 8-byte Folded Reload
283 ; CHECK-NEXT:    std 4, 56(1) # 8-byte Folded Spill
284 ; CHECK-NEXT:    ori 4, 10, 32000
285 ; CHECK-NEXT:    ld 10, 208(1) # 8-byte Folded Reload
286 ; CHECK-NEXT:    ld 15, 56(1) # 8-byte Folded Reload
287 ; CHECK-NEXT:    std 4, 48(1) # 8-byte Folded Spill
288 ; CHECK-NEXT:    ori 4, 11, 20736
289 ; CHECK-NEXT:    ld 11, 200(1) # 8-byte Folded Reload
290 ; CHECK-NEXT:    ld 14, 48(1) # 8-byte Folded Reload
291 ; CHECK-NEXT:    std 4, 40(1) # 8-byte Folded Spill
292 ; CHECK-NEXT:    li 4, 0
293 ; CHECK-NEXT:    ld 31, 40(1) # 8-byte Folded Reload
294 ; CHECK-NEXT:    .p2align 4
295 ; CHECK-NEXT:  .LBB0_1: # =>This Loop Header: Depth=1
296 ; CHECK-NEXT:    # Child Loop BB0_2 Depth 2
297 ; CHECK-NEXT:    stw 4, 396(1) # 4-byte Folded Spill
298 ; CHECK-NEXT:    li 4, 83
299 ; CHECK-NEXT:    mtctr 4
300 ; CHECK-NEXT:    ld 12, 256(1) # 8-byte Folded Reload
301 ; CHECK-NEXT:    ld 4, 128(1) # 8-byte Folded Reload
302 ; CHECK-NEXT:    .p2align 5
303 ; CHECK-NEXT:  .LBB0_2: # Parent Loop BB0_1 Depth=1
304 ; CHECK-NEXT:    # => This Inner Loop Header: Depth=2
305 ; CHECK-NEXT:    ld 2, 560(1) # 8-byte Folded Reload
306 ; CHECK-NEXT:    stdux 3, 12, 2
307 ; CHECK-NEXT:    ld 2, 552(1) # 8-byte Folded Reload
308 ; CHECK-NEXT:    stdx 3, 12, 5
309 ; CHECK-NEXT:    stdx 3, 12, 6
310 ; CHECK-NEXT:    stdx 3, 12, 7
311 ; CHECK-NEXT:    stdx 3, 12, 8
312 ; CHECK-NEXT:    stdx 3, 12, 9
313 ; CHECK-NEXT:    stdx 3, 12, 10
314 ; CHECK-NEXT:    stdx 3, 12, 11
315 ; CHECK-NEXT:    stdx 3, 12, 30
316 ; CHECK-NEXT:    stdx 3, 12, 29
317 ; CHECK-NEXT:    stdx 3, 12, 28
318 ; CHECK-NEXT:    stdx 3, 12, 27
319 ; CHECK-NEXT:    stdx 3, 12, 26
320 ; CHECK-NEXT:    stdx 3, 12, 25
321 ; CHECK-NEXT:    stdx 3, 12, 24
322 ; CHECK-NEXT:    stdx 3, 12, 23
323 ; CHECK-NEXT:    stdx 3, 12, 4
324 ; CHECK-NEXT:    stdx 3, 12, 0
325 ; CHECK-NEXT:    stdx 3, 12, 22
326 ; CHECK-NEXT:    stdx 3, 12, 21
327 ; CHECK-NEXT:    stdx 3, 12, 20
328 ; CHECK-NEXT:    stdx 3, 12, 19
329 ; CHECK-NEXT:    stdx 3, 12, 18
330 ; CHECK-NEXT:    stdx 3, 12, 17
331 ; CHECK-NEXT:    stdx 3, 12, 16
332 ; CHECK-NEXT:    stdx 3, 12, 15
333 ; CHECK-NEXT:    stdx 3, 12, 14
334 ; CHECK-NEXT:    stdx 3, 12, 31
335 ; CHECK-NEXT:    stdx 3, 12, 2
336 ; CHECK-NEXT:    ld 2, 544(1) # 8-byte Folded Reload
337 ; CHECK-NEXT:    stdx 3, 12, 2
338 ; CHECK-NEXT:    ld 2, 536(1) # 8-byte Folded Reload
339 ; CHECK-NEXT:    stdx 3, 12, 2
340 ; CHECK-NEXT:    ld 2, 528(1) # 8-byte Folded Reload
341 ; CHECK-NEXT:    stdx 3, 12, 2
342 ; CHECK-NEXT:    ld 2, 520(1) # 8-byte Folded Reload
343 ; CHECK-NEXT:    stdx 3, 12, 2
344 ; CHECK-NEXT:    ld 2, 512(1) # 8-byte Folded Reload
345 ; CHECK-NEXT:    stdx 3, 12, 2
346 ; CHECK-NEXT:    ld 2, 504(1) # 8-byte Folded Reload
347 ; CHECK-NEXT:    stdx 3, 12, 2
348 ; CHECK-NEXT:    ld 2, 496(1) # 8-byte Folded Reload
349 ; CHECK-NEXT:    stdx 3, 12, 2
350 ; CHECK-NEXT:    ld 2, 488(1) # 8-byte Folded Reload
351 ; CHECK-NEXT:    stdx 3, 12, 2
352 ; CHECK-NEXT:    ld 2, 480(1) # 8-byte Folded Reload
353 ; CHECK-NEXT:    stdx 3, 12, 2
354 ; CHECK-NEXT:    ld 2, 472(1) # 8-byte Folded Reload
355 ; CHECK-NEXT:    stdx 3, 12, 2
356 ; CHECK-NEXT:    ld 2, 464(1) # 8-byte Folded Reload
357 ; CHECK-NEXT:    stdx 3, 12, 2
358 ; CHECK-NEXT:    ld 2, 456(1) # 8-byte Folded Reload
359 ; CHECK-NEXT:    stdx 3, 12, 2
360 ; CHECK-NEXT:    ld 2, 448(1) # 8-byte Folded Reload
361 ; CHECK-NEXT:    stdx 3, 12, 2
362 ; CHECK-NEXT:    ld 2, 440(1) # 8-byte Folded Reload
363 ; CHECK-NEXT:    stdx 3, 12, 2
364 ; CHECK-NEXT:    ld 2, 432(1) # 8-byte Folded Reload
365 ; CHECK-NEXT:    stdx 3, 12, 2
366 ; CHECK-NEXT:    ld 2, 424(1) # 8-byte Folded Reload
367 ; CHECK-NEXT:    stdx 3, 12, 2
368 ; CHECK-NEXT:    ld 2, 416(1) # 8-byte Folded Reload
369 ; CHECK-NEXT:    stdx 3, 12, 2
370 ; CHECK-NEXT:    ld 2, 408(1) # 8-byte Folded Reload
371 ; CHECK-NEXT:    stdx 3, 12, 2
372 ; CHECK-NEXT:    ld 2, 400(1) # 8-byte Folded Reload
373 ; CHECK-NEXT:    stdx 3, 12, 2
374 ; CHECK-NEXT:    bdnz .LBB0_2
375 ; CHECK-NEXT:  # %bb.3:
376 ; CHECK-NEXT:    ld 12, 384(1) # 8-byte Folded Reload
377 ; CHECK-NEXT:    lwz 4, 396(1) # 4-byte Folded Reload
378 ; CHECK-NEXT:    std 3, 0(12)
379 ; CHECK-NEXT:    ld 12, 376(1) # 8-byte Folded Reload
380 ; CHECK-NEXT:    addi 4, 4, 1
381 ; CHECK-NEXT:    std 3, 0(12)
382 ; CHECK-NEXT:    ld 12, 368(1) # 8-byte Folded Reload
383 ; CHECK-NEXT:    std 3, 0(12)
384 ; CHECK-NEXT:    ld 12, 360(1) # 8-byte Folded Reload
385 ; CHECK-NEXT:    std 3, 0(12)
386 ; CHECK-NEXT:    ld 12, 352(1) # 8-byte Folded Reload
387 ; CHECK-NEXT:    std 3, 0(12)
388 ; CHECK-NEXT:    ld 12, 344(1) # 8-byte Folded Reload
389 ; CHECK-NEXT:    std 3, 0(12)
390 ; CHECK-NEXT:    ld 12, 336(1) # 8-byte Folded Reload
391 ; CHECK-NEXT:    std 3, 0(12)
392 ; CHECK-NEXT:    ld 12, 328(1) # 8-byte Folded Reload
393 ; CHECK-NEXT:    std 3, 0(12)
394 ; CHECK-NEXT:    ld 12, 320(1) # 8-byte Folded Reload
395 ; CHECK-NEXT:    std 3, 0(12)
396 ; CHECK-NEXT:    ld 12, 312(1) # 8-byte Folded Reload
397 ; CHECK-NEXT:    std 3, 0(12)
398 ; CHECK-NEXT:    ld 12, 304(1) # 8-byte Folded Reload
399 ; CHECK-NEXT:    std 3, 0(12)
400 ; CHECK-NEXT:    ld 12, 296(1) # 8-byte Folded Reload
401 ; CHECK-NEXT:    std 3, 0(12)
402 ; CHECK-NEXT:    ld 12, 288(1) # 8-byte Folded Reload
403 ; CHECK-NEXT:    std 3, 0(12)
404 ; CHECK-NEXT:    ld 12, 280(1) # 8-byte Folded Reload
405 ; CHECK-NEXT:    std 3, 0(12)
406 ; CHECK-NEXT:    ld 12, 272(1) # 8-byte Folded Reload
407 ; CHECK-NEXT:    std 3, 0(12)
408 ; CHECK-NEXT:    xoris 12, 4, 6
409 ; CHECK-NEXT:    cmplwi 12, 6784
410 ; CHECK-NEXT:    ld 12, 264(1) # 8-byte Folded Reload
411 ; CHECK-NEXT:    std 3, 0(12)
412 ; CHECK-NEXT:    bne 0, .LBB0_1
413 ; CHECK-NEXT:  # %bb.4:
414 ; CHECK-NEXT:    ld 2, 568(1) # 8-byte Folded Reload
415 ; CHECK-NEXT:    ld 31, 712(1) # 8-byte Folded Reload
416 ; CHECK-NEXT:    ld 30, 704(1) # 8-byte Folded Reload
417 ; CHECK-NEXT:    ld 29, 696(1) # 8-byte Folded Reload
418 ; CHECK-NEXT:    li 3, 0
419 ; CHECK-NEXT:    ld 28, 688(1) # 8-byte Folded Reload
420 ; CHECK-NEXT:    ld 27, 680(1) # 8-byte Folded Reload
421 ; CHECK-NEXT:    ld 26, 672(1) # 8-byte Folded Reload
422 ; CHECK-NEXT:    ld 25, 664(1) # 8-byte Folded Reload
423 ; CHECK-NEXT:    ld 24, 656(1) # 8-byte Folded Reload
424 ; CHECK-NEXT:    ld 23, 648(1) # 8-byte Folded Reload
425 ; CHECK-NEXT:    ld 22, 640(1) # 8-byte Folded Reload
426 ; CHECK-NEXT:    ld 21, 632(1) # 8-byte Folded Reload
427 ; CHECK-NEXT:    ld 20, 624(1) # 8-byte Folded Reload
428 ; CHECK-NEXT:    ld 19, 616(1) # 8-byte Folded Reload
429 ; CHECK-NEXT:    ld 18, 608(1) # 8-byte Folded Reload
430 ; CHECK-NEXT:    ld 17, 600(1) # 8-byte Folded Reload
431 ; CHECK-NEXT:    ld 16, 592(1) # 8-byte Folded Reload
432 ; CHECK-NEXT:    ld 15, 584(1) # 8-byte Folded Reload
433 ; CHECK-NEXT:    ld 14, 576(1) # 8-byte Folded Reload
434 ; CHECK-NEXT:    addi 1, 1, 720
435 ; CHECK-NEXT:    blr
436   %3 = getelementptr inbounds i64, ptr %1, i64 144115188075855
437   %4 = getelementptr i64, ptr %1, i64 144115586875855
438   %5 = getelementptr i64, ptr %1, i64 144115587175855
439   %6 = getelementptr i64, ptr %1, i64 144115587075855
440   %7 = getelementptr i64, ptr %1, i64 144115586975855
441   %8 = getelementptr i64, ptr %1, i64 144115587275855
442   %9 = getelementptr i64, ptr %1, i64 144115587575855
443   %10 = getelementptr i64, ptr %1, i64 144115587475855
444   %11 = getelementptr i64, ptr %1, i64 144115587375855
445   %12 = getelementptr i64, ptr %1, i64 144115587675855
446   %13 = getelementptr i64, ptr %1, i64 144115587975855
447   %14 = getelementptr i64, ptr %1, i64 144115587875855
448   %15 = getelementptr i64, ptr %1, i64 144115587775855
449   %16 = getelementptr i64, ptr %1, i64 144115588075855
450   %17 = getelementptr i64, ptr %1, i64 144115588375855
451   %18 = getelementptr i64, ptr %1, i64 144115588275855
452   %19 = getelementptr i64, ptr %1, i64 144115588175855
453   br label %20
455 20:                                               ; preds = %2, %109
456   %21 = phi i32 [ 0, %2 ], [ %110, %109 ]
457   br label %22
459 22:                                               ; preds = %22, %20
460   %23 = phi i64 [ 0, %20 ], [ %107, %22 ]
461   %24 = mul i64 %23, 400000
462   %25 = getelementptr i64, ptr %3, i64 %24
463   %26 = or i64 %23, 1
464   %27 = mul i64 %26, 400000
465   %28 = getelementptr i64, ptr %3, i64 %27
466   %29 = or i64 %23, 2
467   %30 = mul i64 %29, 400000
468   %31 = getelementptr i64, ptr %3, i64 %30
469   %32 = or i64 %23, 3
470   %33 = mul i64 %32, 400000
471   %34 = getelementptr i64, ptr %3, i64 %33
472   %35 = mul i64 %23, 400000
473   %36 = add i64 %35, 1600000
474   %37 = getelementptr i64, ptr %3, i64 %36
475   %38 = mul i64 %23, 400000
476   %39 = add i64 %38, 2000000
477   %40 = getelementptr i64, ptr %3, i64 %39
478   %41 = mul i64 %23, 400000
479   %42 = add i64 %41, 2400000
480   %43 = getelementptr i64, ptr %3, i64 %42
481   %44 = mul i64 %23, 400000
482   %45 = add i64 %44, 2800000
483   %46 = getelementptr i64, ptr %3, i64 %45
484   %47 = mul i64 %23, 400000
485   %48 = add i64 %47, 3200000
486   %49 = getelementptr i64, ptr %3, i64 %48
487   %50 = mul i64 %23, 400000
488   %51 = add i64 %50, 3600000
489   %52 = getelementptr i64, ptr %3, i64 %51
490   %53 = mul i64 %23, 400000
491   %54 = add i64 %53, 4000000
492   %55 = getelementptr i64, ptr %3, i64 %54
493   %56 = mul i64 %23, 400000
494   %57 = add i64 %56, 4400000
495   %58 = getelementptr i64, ptr %3, i64 %57
496   %59 = getelementptr inbounds i64, ptr %25, i64 400000
497   %60 = getelementptr inbounds i64, ptr %28, i64 400000
498   %61 = getelementptr inbounds i64, ptr %31, i64 400000
499   %62 = getelementptr inbounds i64, ptr %34, i64 400000
500   %63 = getelementptr inbounds i64, ptr %37, i64 400000
501   %64 = getelementptr inbounds i64, ptr %40, i64 400000
502   %65 = getelementptr inbounds i64, ptr %43, i64 400000
503   %66 = getelementptr inbounds i64, ptr %46, i64 400000
504   %67 = getelementptr inbounds i64, ptr %49, i64 400000
505   %68 = getelementptr inbounds i64, ptr %52, i64 400000
506   %69 = getelementptr inbounds i64, ptr %55, i64 400000
507   %70 = getelementptr inbounds i64, ptr %58, i64 400000
508   store i64 %0, ptr %59, align 8
509   store i64 %0, ptr %60, align 8
510   store i64 %0, ptr %61, align 8
511   store i64 %0, ptr %62, align 8
512   store i64 %0, ptr %63, align 8
513   store i64 %0, ptr %64, align 8
514   store i64 %0, ptr %65, align 8
515   store i64 %0, ptr %66, align 8
516   store i64 %0, ptr %67, align 8
517   store i64 %0, ptr %68, align 8
518   store i64 %0, ptr %69, align 8
519   store i64 %0, ptr %70, align 8
520   %71 = getelementptr inbounds i64, ptr %25, i64 700000
521   %72 = getelementptr inbounds i64, ptr %28, i64 700000
522   %73 = getelementptr inbounds i64, ptr %31, i64 700000
523   %74 = getelementptr inbounds i64, ptr %34, i64 700000
524   %75 = getelementptr inbounds i64, ptr %37, i64 700000
525   %76 = getelementptr inbounds i64, ptr %40, i64 700000
526   %77 = getelementptr inbounds i64, ptr %43, i64 700000
527   %78 = getelementptr inbounds i64, ptr %46, i64 700000
528   %79 = getelementptr inbounds i64, ptr %49, i64 700000
529   %80 = getelementptr inbounds i64, ptr %52, i64 700000
530   %81 = getelementptr inbounds i64, ptr %55, i64 700000
531   %82 = getelementptr inbounds i64, ptr %58, i64 700000
532   store i64 %0, ptr %71, align 8
533   store i64 %0, ptr %72, align 8
534   store i64 %0, ptr %73, align 8
535   store i64 %0, ptr %74, align 8
536   store i64 %0, ptr %75, align 8
537   store i64 %0, ptr %76, align 8
538   store i64 %0, ptr %77, align 8
539   store i64 %0, ptr %78, align 8
540   store i64 %0, ptr %79, align 8
541   store i64 %0, ptr %80, align 8
542   store i64 %0, ptr %81, align 8
543   store i64 %0, ptr %82, align 8
544   %83 = getelementptr inbounds i64, ptr %25, i64 600000
545   %84 = getelementptr inbounds i64, ptr %28, i64 600000
546   %85 = getelementptr inbounds i64, ptr %31, i64 600000
547   %86 = getelementptr inbounds i64, ptr %34, i64 600000
548   %87 = getelementptr inbounds i64, ptr %37, i64 600000
549   %88 = getelementptr inbounds i64, ptr %40, i64 600000
550   %89 = getelementptr inbounds i64, ptr %43, i64 600000
551   %90 = getelementptr inbounds i64, ptr %46, i64 600000
552   %91 = getelementptr inbounds i64, ptr %49, i64 600000
553   %92 = getelementptr inbounds i64, ptr %52, i64 600000
554   %93 = getelementptr inbounds i64, ptr %55, i64 600000
555   %94 = getelementptr inbounds i64, ptr %58, i64 600000
556   store i64 %0, ptr %83, align 8
557   store i64 %0, ptr %84, align 8
558   store i64 %0, ptr %85, align 8
559   store i64 %0, ptr %86, align 8
560   store i64 %0, ptr %87, align 8
561   store i64 %0, ptr %88, align 8
562   store i64 %0, ptr %89, align 8
563   store i64 %0, ptr %90, align 8
564   store i64 %0, ptr %91, align 8
565   store i64 %0, ptr %92, align 8
566   store i64 %0, ptr %93, align 8
567   store i64 %0, ptr %94, align 8
568   %95 = getelementptr inbounds i64, ptr %25, i64 500000
569   %96 = getelementptr inbounds i64, ptr %28, i64 500000
570   %97 = getelementptr inbounds i64, ptr %31, i64 500000
571   %98 = getelementptr inbounds i64, ptr %34, i64 500000
572   %99 = getelementptr inbounds i64, ptr %37, i64 500000
573   %100 = getelementptr inbounds i64, ptr %40, i64 500000
574   %101 = getelementptr inbounds i64, ptr %43, i64 500000
575   %102 = getelementptr inbounds i64, ptr %46, i64 500000
576   %103 = getelementptr inbounds i64, ptr %49, i64 500000
577   %104 = getelementptr inbounds i64, ptr %52, i64 500000
578   %105 = getelementptr inbounds i64, ptr %55, i64 500000
579   %106 = getelementptr inbounds i64, ptr %58, i64 500000
580   store i64 %0, ptr %95, align 8
581   store i64 %0, ptr %96, align 8
582   store i64 %0, ptr %97, align 8
583   store i64 %0, ptr %98, align 8
584   store i64 %0, ptr %99, align 8
585   store i64 %0, ptr %100, align 8
586   store i64 %0, ptr %101, align 8
587   store i64 %0, ptr %102, align 8
588   store i64 %0, ptr %103, align 8
589   store i64 %0, ptr %104, align 8
590   store i64 %0, ptr %105, align 8
591   store i64 %0, ptr %106, align 8
592   %107 = add i64 %23, 12
593   %108 = icmp eq i64 %107, 996
594   br i1 %108, label %109, label %22
596 109:                                              ; preds = %22
597   store i64 %0, ptr %4, align 8
598   store i64 %0, ptr %5, align 8
599   store i64 %0, ptr %6, align 8
600   store i64 %0, ptr %7, align 8
601   store i64 %0, ptr %8, align 8
602   store i64 %0, ptr %9, align 8
603   store i64 %0, ptr %10, align 8
604   store i64 %0, ptr %11, align 8
605   store i64 %0, ptr %12, align 8
606   store i64 %0, ptr %13, align 8
607   store i64 %0, ptr %14, align 8
608   store i64 %0, ptr %15, align 8
609   store i64 %0, ptr %16, align 8
610   store i64 %0, ptr %17, align 8
611   store i64 %0, ptr %18, align 8
612   store i64 %0, ptr %19, align 8
613   %110 = add nuw nsw i32 %21, 1
614   %111 = icmp eq i32 %110, 400000
615   br i1 %111, label %112, label %20
617 112:                                              ; preds = %109
618   ret i32 0