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) {
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
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
455 20: ; preds = %2, %109
456 %21 = phi i32 [ 0, %2 ], [ %110, %109 ]
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 disjoint i64 %23, 1
464 %27 = mul i64 %26, 400000
465 %28 = getelementptr i64, ptr %3, i64 %27
466 %29 = or disjoint i64 %23, 2
467 %30 = mul i64 %29, 400000
468 %31 = getelementptr i64, ptr %3, i64 %30
469 %32 = or disjoint 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
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