xref: /llvm-project/llvm/test/CodeGen/PowerPC/rematerializable-instruction-machine-licm.ll (revision eecb99c5f66c8491766628a2925587e20f3b1dbd)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -verify-machineinstrs -mcpu=pwr9 < %s | FileCheck %s
3target datalayout = "e-m:e-i64:64-n32:64"
4target triple = "powerpc64le-unknown-linux-gnu"
5
6define 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
454
45520:                                               ; preds = %2, %109
456  %21 = phi i32 [ 0, %2 ], [ %110, %109 ]
457  br label %22
458
45922:                                               ; 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
595
596109:                                              ; 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
616
617112:                                              ; preds = %109
618  ret i32 0
619}
620