Lines Matching +full:- +full:le
2 ; RUN: llc -ppc-asm-full-reg-names -verify-machineinstrs \
3 ; RUN: -mtriple=powerpc64le-linux-gnu < %s | FileCheck \
4 ; RUN: -check-prefix=CHECK-LE %s
5 ; RUN: llc -ppc-asm-full-reg-names -verify-machineinstrs \
6 ; RUN: -mtriple=powerpc64-linux-gnu < %s | FileCheck \
7 ; RUN: -check-prefix=CHECK-BE %s
8 ; RUN: llc -ppc-asm-full-reg-names -verify-machineinstrs \
9 ; RUN: -mtriple=powerpc-linux-gnu < %s | FileCheck \
10 ; RUN: -check-prefix=CHECK-32 %s
14 ; CHECK-LE-LABEL: f0:
15 ; CHECK-LE: # %bb.0: # %entry
16 ; CHECK-LE-NEXT: li r3, 3
17 ; CHECK-LE-NEXT: stb r3, -64(r1)
18 ; CHECK-LE-NEXT: lbz r3, -64(r1)
19 ; CHECK-LE-NEXT: blr
21 ; CHECK-BE-LABEL: f0:
22 ; CHECK-BE: # %bb.0: # %entry
23 ; CHECK-BE-NEXT: li r3, 3
24 ; CHECK-BE-NEXT: stb r3, -64(r1)
25 ; CHECK-BE-NEXT: lbz r3, -64(r1)
26 ; CHECK-BE-NEXT: blr
28 ; CHECK-32-LABEL: f0:
29 ; CHECK-32: # %bb.0: # %entry
30 ; CHECK-32-NEXT: stwu r1, -80(r1)
31 ; CHECK-32-NEXT: li r3, 3
32 ; CHECK-32-NEXT: stb r3, 16(r1)
33 ; CHECK-32-NEXT: lbz r3, 16(r1)
34 ; CHECK-32-NEXT: addi r1, r1, 80
35 ; CHECK-32-NEXT: blr
44 define i8 @f1() #0 "stack-probe-size"="0" {
45 ; CHECK-LE-LABEL: f1:
46 ; CHECK-LE: # %bb.0: # %entry
47 ; CHECK-LE-NEXT: mr r12, r1
48 ; CHECK-LE-NEXT: .cfi_def_cfa r12, 0
49 ; CHECK-LE-NEXT: li r0, 259
50 ; CHECK-LE-NEXT: mtctr r0
51 ; CHECK-LE-NEXT: .LBB1_1: # %entry
52 ; CHECK-LE-NEXT: #
53 ; CHECK-LE-NEXT: stdu r12, -16(r1)
54 ; CHECK-LE-NEXT: bdnz .LBB1_1
55 ; CHECK-LE-NEXT: # %bb.2: # %entry
56 ; CHECK-LE-NEXT: .cfi_def_cfa_register r1
57 ; CHECK-LE-NEXT: .cfi_def_cfa_offset 4144
58 ; CHECK-LE-NEXT: li r3, 3
59 ; CHECK-LE-NEXT: stb r3, 48(r1)
60 ; CHECK-LE-NEXT: lbz r3, 48(r1)
61 ; CHECK-LE-NEXT: addi r1, r1, 4144
62 ; CHECK-LE-NEXT: blr
64 ; CHECK-BE-LABEL: f1:
65 ; CHECK-BE: # %bb.0: # %entry
66 ; CHECK-BE-NEXT: mr r12, r1
67 ; CHECK-BE-NEXT: .cfi_def_cfa r12, 0
68 ; CHECK-BE-NEXT: li r0, 260
69 ; CHECK-BE-NEXT: mtctr r0
70 ; CHECK-BE-NEXT: .LBB1_1: # %entry
71 ; CHECK-BE-NEXT: #
72 ; CHECK-BE-NEXT: stdu r12, -16(r1)
73 ; CHECK-BE-NEXT: bdnz .LBB1_1
74 ; CHECK-BE-NEXT: # %bb.2: # %entry
75 ; CHECK-BE-NEXT: .cfi_def_cfa_register r1
76 ; CHECK-BE-NEXT: .cfi_def_cfa_offset 4160
77 ; CHECK-BE-NEXT: li r3, 3
78 ; CHECK-BE-NEXT: stb r3, 64(r1)
79 ; CHECK-BE-NEXT: lbz r3, 64(r1)
80 ; CHECK-BE-NEXT: addi r1, r1, 4160
81 ; CHECK-BE-NEXT: blr
83 ; CHECK-32-LABEL: f1:
84 ; CHECK-32: # %bb.0: # %entry
85 ; CHECK-32-NEXT: mr r12, r1
86 ; CHECK-32-NEXT: .cfi_def_cfa r12, 0
87 ; CHECK-32-NEXT: li r0, 257
88 ; CHECK-32-NEXT: mtctr r0
89 ; CHECK-32-NEXT: .LBB1_1: # %entry
90 ; CHECK-32-NEXT: #
91 ; CHECK-32-NEXT: stwu r12, -16(r1)
92 ; CHECK-32-NEXT: bdnz .LBB1_1
93 ; CHECK-32-NEXT: # %bb.2: # %entry
94 ; CHECK-32-NEXT: .cfi_def_cfa_register r1
95 ; CHECK-32-NEXT: sub r0, r1, r12
96 ; CHECK-32-NEXT: sub r0, r1, r0
97 ; CHECK-32-NEXT: .cfi_def_cfa_offset 4112
98 ; CHECK-32-NEXT: li r3, 3
99 ; CHECK-32-NEXT: stb r3, 16(r1)
100 ; CHECK-32-NEXT: lbz r3, 16(r1)
101 ; CHECK-32-NEXT: addi r1, r1, 4112
102 ; CHECK-32-NEXT: blr
112 ; CHECK-LE-LABEL: f2:
113 ; CHECK-LE: # %bb.0: # %entry
114 ; CHECK-LE-NEXT: mr r12, r1
115 ; CHECK-LE-NEXT: .cfi_def_cfa r12, 0
116 ; CHECK-LE-NEXT: stdu r12, -48(r1)
117 ; CHECK-LE-NEXT: li r0, 16
118 ; CHECK-LE-NEXT: mtctr r0
119 ; CHECK-LE-NEXT: .LBB2_1: # %entry
120 ; CHECK-LE-NEXT: #
121 ; CHECK-LE-NEXT: stdu r12, -4096(r1)
122 ; CHECK-LE-NEXT: bdnz .LBB2_1
123 ; CHECK-LE-NEXT: # %bb.2: # %entry
124 ; CHECK-LE-NEXT: .cfi_def_cfa_register r1
125 ; CHECK-LE-NEXT: .cfi_def_cfa_offset 65584
126 ; CHECK-LE-NEXT: li r3, 3
127 ; CHECK-LE-NEXT: stb r3, 48(r1)
128 ; CHECK-LE-NEXT: lbz r3, 48(r1)
129 ; CHECK-LE-NEXT: ld r1, 0(r1)
130 ; CHECK-LE-NEXT: blr
132 ; CHECK-BE-LABEL: f2:
133 ; CHECK-BE: # %bb.0: # %entry
134 ; CHECK-BE-NEXT: mr r12, r1
135 ; CHECK-BE-NEXT: .cfi_def_cfa r12, 0
136 ; CHECK-BE-NEXT: stdu r12, -64(r1)
137 ; CHECK-BE-NEXT: li r0, 16
138 ; CHECK-BE-NEXT: mtctr r0
139 ; CHECK-BE-NEXT: .LBB2_1: # %entry
140 ; CHECK-BE-NEXT: #
141 ; CHECK-BE-NEXT: stdu r12, -4096(r1)
142 ; CHECK-BE-NEXT: bdnz .LBB2_1
143 ; CHECK-BE-NEXT: # %bb.2: # %entry
144 ; CHECK-BE-NEXT: .cfi_def_cfa_register r1
145 ; CHECK-BE-NEXT: .cfi_def_cfa_offset 65600
146 ; CHECK-BE-NEXT: li r3, 3
147 ; CHECK-BE-NEXT: stb r3, 64(r1)
148 ; CHECK-BE-NEXT: lbz r3, 64(r1)
149 ; CHECK-BE-NEXT: ld r1, 0(r1)
150 ; CHECK-BE-NEXT: blr
152 ; CHECK-32-LABEL: f2:
153 ; CHECK-32: # %bb.0: # %entry
154 ; CHECK-32-NEXT: mr r12, r1
155 ; CHECK-32-NEXT: .cfi_def_cfa r12, 0
156 ; CHECK-32-NEXT: stwu r12, -16(r1)
157 ; CHECK-32-NEXT: li r0, 16
158 ; CHECK-32-NEXT: mtctr r0
159 ; CHECK-32-NEXT: .LBB2_1: # %entry
160 ; CHECK-32-NEXT: #
161 ; CHECK-32-NEXT: stwu r12, -4096(r1)
162 ; CHECK-32-NEXT: bdnz .LBB2_1
163 ; CHECK-32-NEXT: # %bb.2: # %entry
164 ; CHECK-32-NEXT: .cfi_def_cfa_register r1
165 ; CHECK-32-NEXT: sub r0, r1, r12
166 ; CHECK-32-NEXT: sub r0, r1, r0
167 ; CHECK-32-NEXT: .cfi_def_cfa_offset 65552
168 ; CHECK-32-NEXT: li r3, 3
169 ; CHECK-32-NEXT: stb r3, 16(r1)
170 ; CHECK-32-NEXT: mr r0, r31
171 ; CHECK-32-NEXT: lbz r3, 16(r1)
172 ; CHECK-32-NEXT: lwz r31, 0(r1)
173 ; CHECK-32-NEXT: mr r1, r31
174 ; CHECK-32-NEXT: mr r31, r0
175 ; CHECK-32-NEXT: blr
184 define i8 @f3() #0 "stack-probe-size"="32768" {
185 ; CHECK-LE-LABEL: f3:
186 ; CHECK-LE: # %bb.0: # %entry
187 ; CHECK-LE-NEXT: mr r12, r1
188 ; CHECK-LE-NEXT: .cfi_def_cfa r12, 0
189 ; CHECK-LE-NEXT: stdu r12, -48(r1)
190 ; CHECK-LE-NEXT: stdu r12, -32768(r1)
191 ; CHECK-LE-NEXT: stdu r12, -32768(r1)
192 ; CHECK-LE-NEXT: .cfi_def_cfa_register r1
193 ; CHECK-LE-NEXT: .cfi_def_cfa_offset 65584
194 ; CHECK-LE-NEXT: li r3, 3
195 ; CHECK-LE-NEXT: stb r3, 48(r1)
196 ; CHECK-LE-NEXT: lbz r3, 48(r1)
197 ; CHECK-LE-NEXT: ld r1, 0(r1)
198 ; CHECK-LE-NEXT: blr
200 ; CHECK-BE-LABEL: f3:
201 ; CHECK-BE: # %bb.0: # %entry
202 ; CHECK-BE-NEXT: mr r12, r1
203 ; CHECK-BE-NEXT: .cfi_def_cfa r12, 0
204 ; CHECK-BE-NEXT: stdu r12, -64(r1)
205 ; CHECK-BE-NEXT: stdu r12, -32768(r1)
206 ; CHECK-BE-NEXT: stdu r12, -32768(r1)
207 ; CHECK-BE-NEXT: .cfi_def_cfa_register r1
208 ; CHECK-BE-NEXT: .cfi_def_cfa_offset 65600
209 ; CHECK-BE-NEXT: li r3, 3
210 ; CHECK-BE-NEXT: stb r3, 64(r1)
211 ; CHECK-BE-NEXT: lbz r3, 64(r1)
212 ; CHECK-BE-NEXT: ld r1, 0(r1)
213 ; CHECK-BE-NEXT: blr
215 ; CHECK-32-LABEL: f3:
216 ; CHECK-32: # %bb.0: # %entry
217 ; CHECK-32-NEXT: mr r12, r1
218 ; CHECK-32-NEXT: .cfi_def_cfa r12, 0
219 ; CHECK-32-NEXT: stwu r12, -16(r1)
220 ; CHECK-32-NEXT: stwu r12, -32768(r1)
221 ; CHECK-32-NEXT: stwu r12, -32768(r1)
222 ; CHECK-32-NEXT: .cfi_def_cfa_register r1
223 ; CHECK-32-NEXT: sub r0, r1, r12
224 ; CHECK-32-NEXT: sub r0, r1, r0
225 ; CHECK-32-NEXT: .cfi_def_cfa_offset 65552
226 ; CHECK-32-NEXT: li r3, 3
227 ; CHECK-32-NEXT: stb r3, 16(r1)
228 ; CHECK-32-NEXT: mr r0, r31
229 ; CHECK-32-NEXT: lbz r3, 16(r1)
230 ; CHECK-32-NEXT: lwz r31, 0(r1)
231 ; CHECK-32-NEXT: mr r1, r31
232 ; CHECK-32-NEXT: mr r31, r0
233 ; CHECK-32-NEXT: blr
244 ; CHECK-LE-LABEL: f4:
245 ; CHECK-LE: # %bb.0: # %entry
246 ; CHECK-LE-NEXT: lis r0, -2
247 ; CHECK-LE-NEXT: ori r0, r0, 65488
248 ; CHECK-LE-NEXT: stdux r1, r1, r0
249 ; CHECK-LE-NEXT: .cfi_def_cfa_offset 65584
250 ; CHECK-LE-NEXT: li r3, 3
251 ; CHECK-LE-NEXT: stb r3, 48(r1)
252 ; CHECK-LE-NEXT: lbz r3, 48(r1)
253 ; CHECK-LE-NEXT: ld r1, 0(r1)
254 ; CHECK-LE-NEXT: blr
256 ; CHECK-BE-LABEL: f4:
257 ; CHECK-BE: # %bb.0: # %entry
258 ; CHECK-BE-NEXT: lis r0, -2
259 ; CHECK-BE-NEXT: ori r0, r0, 65472
260 ; CHECK-BE-NEXT: stdux r1, r1, r0
261 ; CHECK-BE-NEXT: .cfi_def_cfa_offset 65600
262 ; CHECK-BE-NEXT: li r3, 3
263 ; CHECK-BE-NEXT: stb r3, 64(r1)
264 ; CHECK-BE-NEXT: lbz r3, 64(r1)
265 ; CHECK-BE-NEXT: ld r1, 0(r1)
266 ; CHECK-BE-NEXT: blr
268 ; CHECK-32-LABEL: f4:
269 ; CHECK-32: # %bb.0: # %entry
270 ; CHECK-32-NEXT: lis r0, -2
271 ; CHECK-32-NEXT: ori r0, r0, 65520
272 ; CHECK-32-NEXT: stwux r1, r1, r0
273 ; CHECK-32-NEXT: sub r0, r1, r0
274 ; CHECK-32-NEXT: .cfi_def_cfa_offset 65552
275 ; CHECK-32-NEXT: li r3, 3
276 ; CHECK-32-NEXT: stb r3, 16(r1)
277 ; CHECK-32-NEXT: mr r0, r31
278 ; CHECK-32-NEXT: lbz r3, 16(r1)
279 ; CHECK-32-NEXT: lwz r31, 0(r1)
280 ; CHECK-32-NEXT: mr r1, r31
281 ; CHECK-32-NEXT: mr r31, r0
282 ; CHECK-32-NEXT: blr
291 define i8 @f5() #0 "stack-probe-size"="65536" {
292 ; CHECK-LE-LABEL: f5:
293 ; CHECK-LE: # %bb.0: # %entry
294 ; CHECK-LE-NEXT: mr r12, r1
295 ; CHECK-LE-NEXT: .cfi_def_cfa r12, 0
296 ; CHECK-LE-NEXT: stdu r12, -48(r1)
297 ; CHECK-LE-NEXT: li r0, 16
298 ; CHECK-LE-NEXT: mtctr r0
299 ; CHECK-LE-NEXT: lis r0, -1
300 ; CHECK-LE-NEXT: nop
301 ; CHECK-LE-NEXT: .LBB5_1: # %entry
302 ; CHECK-LE-NEXT: #
303 ; CHECK-LE-NEXT: stdux r12, r1, r0
304 ; CHECK-LE-NEXT: bdnz .LBB5_1
305 ; CHECK-LE-NEXT: # %bb.2: # %entry
306 ; CHECK-LE-NEXT: .cfi_def_cfa_register r1
307 ; CHECK-LE-NEXT: .cfi_def_cfa_offset 1048624
308 ; CHECK-LE-NEXT: li r3, 3
309 ; CHECK-LE-NEXT: stb r3, 48(r1)
310 ; CHECK-LE-NEXT: lbz r3, 48(r1)
311 ; CHECK-LE-NEXT: ld r1, 0(r1)
312 ; CHECK-LE-NEXT: blr
314 ; CHECK-BE-LABEL: f5:
315 ; CHECK-BE: # %bb.0: # %entry
316 ; CHECK-BE-NEXT: mr r12, r1
317 ; CHECK-BE-NEXT: .cfi_def_cfa r12, 0
318 ; CHECK-BE-NEXT: stdu r12, -64(r1)
319 ; CHECK-BE-NEXT: li r0, 16
320 ; CHECK-BE-NEXT: mtctr r0
321 ; CHECK-BE-NEXT: lis r0, -1
322 ; CHECK-BE-NEXT: nop
323 ; CHECK-BE-NEXT: .LBB5_1: # %entry
324 ; CHECK-BE-NEXT: #
325 ; CHECK-BE-NEXT: stdux r12, r1, r0
326 ; CHECK-BE-NEXT: bdnz .LBB5_1
327 ; CHECK-BE-NEXT: # %bb.2: # %entry
328 ; CHECK-BE-NEXT: .cfi_def_cfa_register r1
329 ; CHECK-BE-NEXT: .cfi_def_cfa_offset 1048640
330 ; CHECK-BE-NEXT: li r3, 3
331 ; CHECK-BE-NEXT: stb r3, 64(r1)
332 ; CHECK-BE-NEXT: lbz r3, 64(r1)
333 ; CHECK-BE-NEXT: ld r1, 0(r1)
334 ; CHECK-BE-NEXT: blr
336 ; CHECK-32-LABEL: f5:
337 ; CHECK-32: # %bb.0: # %entry
338 ; CHECK-32-NEXT: mr r12, r1
339 ; CHECK-32-NEXT: .cfi_def_cfa r12, 0
340 ; CHECK-32-NEXT: stwu r12, -16(r1)
341 ; CHECK-32-NEXT: li r0, 16
342 ; CHECK-32-NEXT: mtctr r0
343 ; CHECK-32-NEXT: lis r0, -1
344 ; CHECK-32-NEXT: nop
345 ; CHECK-32-NEXT: .LBB5_1: # %entry
346 ; CHECK-32-NEXT: #
347 ; CHECK-32-NEXT: stwux r12, r1, r0
348 ; CHECK-32-NEXT: bdnz .LBB5_1
349 ; CHECK-32-NEXT: # %bb.2: # %entry
350 ; CHECK-32-NEXT: .cfi_def_cfa_register r1
351 ; CHECK-32-NEXT: sub r0, r1, r12
352 ; CHECK-32-NEXT: sub r0, r1, r0
353 ; CHECK-32-NEXT: .cfi_def_cfa_offset 1048592
354 ; CHECK-32-NEXT: li r3, 3
355 ; CHECK-32-NEXT: stb r3, 16(r1)
356 ; CHECK-32-NEXT: mr r0, r31
357 ; CHECK-32-NEXT: lbz r3, 16(r1)
358 ; CHECK-32-NEXT: lwz r31, 0(r1)
359 ; CHECK-32-NEXT: mr r1, r31
360 ; CHECK-32-NEXT: mr r31, r0
361 ; CHECK-32-NEXT: blr
371 ; CHECK-LE-LABEL: f6:
372 ; CHECK-LE: # %bb.0: # %entry
373 ; CHECK-LE-NEXT: mr r12, r1
374 ; CHECK-LE-NEXT: .cfi_def_cfa r12, 0
375 ; CHECK-LE-NEXT: stdu r12, -48(r1)
376 ; CHECK-LE-NEXT: lis r0, 4
377 ; CHECK-LE-NEXT: nop
378 ; CHECK-LE-NEXT: mtctr r0
379 ; CHECK-LE-NEXT: .LBB6_1: # %entry
380 ; CHECK-LE-NEXT: #
381 ; CHECK-LE-NEXT: stdu r12, -4096(r1)
382 ; CHECK-LE-NEXT: bdnz .LBB6_1
383 ; CHECK-LE-NEXT: # %bb.2: # %entry
384 ; CHECK-LE-NEXT: .cfi_def_cfa_register r1
385 ; CHECK-LE-NEXT: .cfi_def_cfa_offset 1073741872
386 ; CHECK-LE-NEXT: li r3, 3
387 ; CHECK-LE-NEXT: stb r3, 48(r1)
388 ; CHECK-LE-NEXT: lbz r3, 48(r1)
389 ; CHECK-LE-NEXT: ld r1, 0(r1)
390 ; CHECK-LE-NEXT: blr
392 ; CHECK-BE-LABEL: f6:
393 ; CHECK-BE: # %bb.0: # %entry
394 ; CHECK-BE-NEXT: mr r12, r1
395 ; CHECK-BE-NEXT: .cfi_def_cfa r12, 0
396 ; CHECK-BE-NEXT: stdu r12, -64(r1)
397 ; CHECK-BE-NEXT: lis r0, 4
398 ; CHECK-BE-NEXT: nop
399 ; CHECK-BE-NEXT: mtctr r0
400 ; CHECK-BE-NEXT: .LBB6_1: # %entry
401 ; CHECK-BE-NEXT: #
402 ; CHECK-BE-NEXT: stdu r12, -4096(r1)
403 ; CHECK-BE-NEXT: bdnz .LBB6_1
404 ; CHECK-BE-NEXT: # %bb.2: # %entry
405 ; CHECK-BE-NEXT: .cfi_def_cfa_register r1
406 ; CHECK-BE-NEXT: .cfi_def_cfa_offset 1073741888
407 ; CHECK-BE-NEXT: li r3, 3
408 ; CHECK-BE-NEXT: stb r3, 64(r1)
409 ; CHECK-BE-NEXT: lbz r3, 64(r1)
410 ; CHECK-BE-NEXT: ld r1, 0(r1)
411 ; CHECK-BE-NEXT: blr
413 ; CHECK-32-LABEL: f6:
414 ; CHECK-32: # %bb.0: # %entry
415 ; CHECK-32-NEXT: mr r12, r1
416 ; CHECK-32-NEXT: .cfi_def_cfa r12, 0
417 ; CHECK-32-NEXT: stwu r12, -16(r1)
418 ; CHECK-32-NEXT: lis r0, 4
419 ; CHECK-32-NEXT: nop
420 ; CHECK-32-NEXT: mtctr r0
421 ; CHECK-32-NEXT: .LBB6_1: # %entry
422 ; CHECK-32-NEXT: #
423 ; CHECK-32-NEXT: stwu r12, -4096(r1)
424 ; CHECK-32-NEXT: bdnz .LBB6_1
425 ; CHECK-32-NEXT: # %bb.2: # %entry
426 ; CHECK-32-NEXT: .cfi_def_cfa_register r1
427 ; CHECK-32-NEXT: sub r0, r1, r12
428 ; CHECK-32-NEXT: sub r0, r1, r0
429 ; CHECK-32-NEXT: .cfi_def_cfa_offset 1073741840
430 ; CHECK-32-NEXT: li r3, 3
431 ; CHECK-32-NEXT: stb r3, 16(r1)
432 ; CHECK-32-NEXT: mr r0, r31
433 ; CHECK-32-NEXT: lbz r3, 16(r1)
434 ; CHECK-32-NEXT: lwz r31, 0(r1)
435 ; CHECK-32-NEXT: mr r1, r31
436 ; CHECK-32-NEXT: mr r31, r0
437 ; CHECK-32-NEXT: blr
446 define i8 @f7() #0 "stack-probe-size"="65536" {
447 ; CHECK-LE-LABEL: f7:
448 ; CHECK-LE: # %bb.0: # %entry
449 ; CHECK-LE-NEXT: mr r12, r1
450 ; CHECK-LE-NEXT: .cfi_def_cfa r12, 0
451 ; CHECK-LE-NEXT: lis r0, -1
452 ; CHECK-LE-NEXT: ori r0, r0, 13776
453 ; CHECK-LE-NEXT: stdux r12, r1, r0
454 ; CHECK-LE-NEXT: li r0, 15258
455 ; CHECK-LE-NEXT: mtctr r0
456 ; CHECK-LE-NEXT: lis r0, -1
457 ; CHECK-LE-NEXT: nop
458 ; CHECK-LE-NEXT: .LBB7_1: # %entry
459 ; CHECK-LE-NEXT: #
460 ; CHECK-LE-NEXT: stdux r12, r1, r0
461 ; CHECK-LE-NEXT: bdnz .LBB7_1
462 ; CHECK-LE-NEXT: # %bb.2: # %entry
463 ; CHECK-LE-NEXT: .cfi_def_cfa_register r1
464 ; CHECK-LE-NEXT: .cfi_def_cfa_offset 1000000048
465 ; CHECK-LE-NEXT: li r3, 3
466 ; CHECK-LE-NEXT: stb r3, 41(r1)
467 ; CHECK-LE-NEXT: lbz r3, 41(r1)
468 ; CHECK-LE-NEXT: ld r1, 0(r1)
469 ; CHECK-LE-NEXT: blr
471 ; CHECK-BE-LABEL: f7:
472 ; CHECK-BE: # %bb.0: # %entry
473 ; CHECK-BE-NEXT: mr r12, r1
474 ; CHECK-BE-NEXT: .cfi_def_cfa r12, 0
475 ; CHECK-BE-NEXT: lis r0, -1
476 ; CHECK-BE-NEXT: ori r0, r0, 13760
477 ; CHECK-BE-NEXT: stdux r12, r1, r0
478 ; CHECK-BE-NEXT: li r0, 15258
479 ; CHECK-BE-NEXT: mtctr r0
480 ; CHECK-BE-NEXT: lis r0, -1
481 ; CHECK-BE-NEXT: nop
482 ; CHECK-BE-NEXT: .LBB7_1: # %entry
483 ; CHECK-BE-NEXT: #
484 ; CHECK-BE-NEXT: stdux r12, r1, r0
485 ; CHECK-BE-NEXT: bdnz .LBB7_1
486 ; CHECK-BE-NEXT: # %bb.2: # %entry
487 ; CHECK-BE-NEXT: .cfi_def_cfa_register r1
488 ; CHECK-BE-NEXT: .cfi_def_cfa_offset 1000000064
489 ; CHECK-BE-NEXT: li r3, 3
490 ; CHECK-BE-NEXT: stb r3, 57(r1)
491 ; CHECK-BE-NEXT: lbz r3, 57(r1)
492 ; CHECK-BE-NEXT: ld r1, 0(r1)
493 ; CHECK-BE-NEXT: blr
495 ; CHECK-32-LABEL: f7:
496 ; CHECK-32: # %bb.0: # %entry
497 ; CHECK-32-NEXT: mr r12, r1
498 ; CHECK-32-NEXT: .cfi_def_cfa r12, 0
499 ; CHECK-32-NEXT: lis r0, -1
500 ; CHECK-32-NEXT: ori r0, r0, 13808
501 ; CHECK-32-NEXT: stwux r12, r1, r0
502 ; CHECK-32-NEXT: li r0, 15258
503 ; CHECK-32-NEXT: mtctr r0
504 ; CHECK-32-NEXT: lis r0, -1
505 ; CHECK-32-NEXT: nop
506 ; CHECK-32-NEXT: .LBB7_1: # %entry
507 ; CHECK-32-NEXT: #
508 ; CHECK-32-NEXT: stwux r12, r1, r0
509 ; CHECK-32-NEXT: bdnz .LBB7_1
510 ; CHECK-32-NEXT: # %bb.2: # %entry
511 ; CHECK-32-NEXT: .cfi_def_cfa_register r1
512 ; CHECK-32-NEXT: sub r0, r1, r12
513 ; CHECK-32-NEXT: sub r0, r1, r0
514 ; CHECK-32-NEXT: .cfi_def_cfa_offset 1000000016
515 ; CHECK-32-NEXT: li r3, 3
516 ; CHECK-32-NEXT: stb r3, 9(r1)
517 ; CHECK-32-NEXT: mr r0, r31
518 ; CHECK-32-NEXT: lbz r3, 9(r1)
519 ; CHECK-32-NEXT: lwz r31, 0(r1)
520 ; CHECK-32-NEXT: mr r1, r31
521 ; CHECK-32-NEXT: mr r31, r0
522 ; CHECK-32-NEXT: blr
533 ; CHECK-LE-LABEL: f8:
534 ; CHECK-LE: # %bb.0:
535 ; CHECK-LE-NEXT: clrldi r0, r1, 58
536 ; CHECK-LE-NEXT: std r30, -16(r1)
537 ; CHECK-LE-NEXT: mr r30, r1
538 ; CHECK-LE-NEXT: subfic r0, r0, -896
539 ; CHECK-LE-NEXT: stdux r1, r1, r0
540 ; CHECK-LE-NEXT: .cfi_def_cfa_register r30
541 ; CHECK-LE-NEXT: .cfi_offset r30, -16
542 ; CHECK-LE-NEXT: addi r4, r1, 64
543 ; CHECK-LE-NEXT: sldi r3, r3, 2
544 ; CHECK-LE-NEXT: li r5, 1
545 ; CHECK-LE-NEXT: stwx r5, r4, r3
546 ; CHECK-LE-NEXT: lwz r3, 64(r1)
547 ; CHECK-LE-NEXT: ld r1, 0(r1)
548 ; CHECK-LE-NEXT: ld r30, -16(r1)
549 ; CHECK-LE-NEXT: blr
551 ; CHECK-BE-LABEL: f8:
552 ; CHECK-BE: # %bb.0:
553 ; CHECK-BE-NEXT: clrldi r0, r1, 58
554 ; CHECK-BE-NEXT: std r30, -16(r1)
555 ; CHECK-BE-NEXT: mr r30, r1
556 ; CHECK-BE-NEXT: subfic r0, r0, -896
557 ; CHECK-BE-NEXT: stdux r1, r1, r0
558 ; CHECK-BE-NEXT: .cfi_def_cfa_register r30
559 ; CHECK-BE-NEXT: .cfi_offset r30, -16
560 ; CHECK-BE-NEXT: addi r4, r1, 64
561 ; CHECK-BE-NEXT: li r5, 1
562 ; CHECK-BE-NEXT: sldi r3, r3, 2
563 ; CHECK-BE-NEXT: stwx r5, r4, r3
564 ; CHECK-BE-NEXT: lwz r3, 64(r1)
565 ; CHECK-BE-NEXT: ld r1, 0(r1)
566 ; CHECK-BE-NEXT: ld r30, -16(r1)
567 ; CHECK-BE-NEXT: blr
569 ; CHECK-32-LABEL: f8:
570 ; CHECK-32: # %bb.0:
571 ; CHECK-32-NEXT: clrlwi r0, r1, 26
572 ; CHECK-32-NEXT: subfic r0, r0, -896
573 ; CHECK-32-NEXT: stwux r1, r1, r0
574 ; CHECK-32-NEXT: sub r0, r1, r0
575 ; CHECK-32-NEXT: addic r0, r0, -8
576 ; CHECK-32-NEXT: stwx r30, 0, r0
577 ; CHECK-32-NEXT: addic r30, r0, 8
578 ; CHECK-32-NEXT: .cfi_def_cfa_register r30
579 ; CHECK-32-NEXT: .cfi_offset r30, -8
580 ; CHECK-32-NEXT: addi r3, r1, 64
581 ; CHECK-32-NEXT: li r5, 1
582 ; CHECK-32-NEXT: slwi r4, r4, 2
583 ; CHECK-32-NEXT: stwx r5, r3, r4
584 ; CHECK-32-NEXT: mr r0, r31
585 ; CHECK-32-NEXT: lwz r3, 64(r1)
586 ; CHECK-32-NEXT: lwz r31, 0(r1)
587 ; CHECK-32-NEXT: lwz r30, -8(r31)
588 ; CHECK-32-NEXT: mr r1, r31
589 ; CHECK-32-NEXT: mr r31, r0
590 ; CHECK-32-NEXT: blr
600 ; CHECK-LE-LABEL: f9:
601 ; CHECK-LE: # %bb.0:
602 ; CHECK-LE-NEXT: std r30, -16(r1)
603 ; CHECK-LE-NEXT: mr r30, r1
604 ; CHECK-LE-NEXT: .cfi_def_cfa r30, 0
605 ; CHECK-LE-NEXT: clrldi r0, r30, 53
606 ; CHECK-LE-NEXT: subc r12, r30, r0
607 ; CHECK-LE-NEXT: clrldi r0, r0, 52
608 ; CHECK-LE-NEXT: cmpdi r0, 0
609 ; CHECK-LE-NEXT: beq cr0, .LBB9_2
610 ; CHECK-LE-NEXT: # %bb.1:
611 ; CHECK-LE-NEXT: neg r0, r0
612 ; CHECK-LE-NEXT: stdux r30, r1, r0
613 ; CHECK-LE-NEXT: .LBB9_2:
614 ; CHECK-LE-NEXT: li r0, -4096
615 ; CHECK-LE-NEXT: cmpd r1, r12
616 ; CHECK-LE-NEXT: beq cr0, .LBB9_4
617 ; CHECK-LE-NEXT: .LBB9_3:
618 ; CHECK-LE-NEXT: stdux r30, r1, r0
619 ; CHECK-LE-NEXT: cmpd r1, r12
620 ; CHECK-LE-NEXT: bne cr0, .LBB9_3
621 ; CHECK-LE-NEXT: .LBB9_4:
622 ; CHECK-LE-NEXT: mr r12, r30
623 ; CHECK-LE-NEXT: stdu r12, -2048(r1)
624 ; CHECK-LE-NEXT: stdu r12, -4096(r1)
625 ; CHECK-LE-NEXT: stdu r12, -4096(r1)
626 ; CHECK-LE-NEXT: .cfi_def_cfa_register r1
627 ; CHECK-LE-NEXT: .cfi_def_cfa_register r30
628 ; CHECK-LE-NEXT: .cfi_offset r30, -16
629 ; CHECK-LE-NEXT: addi r4, r1, 2048
630 ; CHECK-LE-NEXT: sldi r3, r3, 2
631 ; CHECK-LE-NEXT: li r5, 1
632 ; CHECK-LE-NEXT: stwx r5, r4, r3
633 ; CHECK-LE-NEXT: lwz r3, 2048(r1)
634 ; CHECK-LE-NEXT: ld r1, 0(r1)
635 ; CHECK-LE-NEXT: ld r30, -16(r1)
636 ; CHECK-LE-NEXT: blr
638 ; CHECK-BE-LABEL: f9:
639 ; CHECK-BE: # %bb.0:
640 ; CHECK-BE-NEXT: std r30, -16(r1)
641 ; CHECK-BE-NEXT: mr r30, r1
642 ; CHECK-BE-NEXT: .cfi_def_cfa r30, 0
643 ; CHECK-BE-NEXT: clrldi r0, r30, 53
644 ; CHECK-BE-NEXT: subc r12, r30, r0
645 ; CHECK-BE-NEXT: clrldi r0, r0, 52
646 ; CHECK-BE-NEXT: cmpdi r0, 0
647 ; CHECK-BE-NEXT: beq cr0, .LBB9_2
648 ; CHECK-BE-NEXT: # %bb.1:
649 ; CHECK-BE-NEXT: neg r0, r0
650 ; CHECK-BE-NEXT: stdux r30, r1, r0
651 ; CHECK-BE-NEXT: .LBB9_2:
652 ; CHECK-BE-NEXT: li r0, -4096
653 ; CHECK-BE-NEXT: cmpd r1, r12
654 ; CHECK-BE-NEXT: beq cr0, .LBB9_4
655 ; CHECK-BE-NEXT: .LBB9_3:
656 ; CHECK-BE-NEXT: stdux r30, r1, r0
657 ; CHECK-BE-NEXT: cmpd r1, r12
658 ; CHECK-BE-NEXT: bne cr0, .LBB9_3
659 ; CHECK-BE-NEXT: .LBB9_4:
660 ; CHECK-BE-NEXT: mr r12, r30
661 ; CHECK-BE-NEXT: stdu r12, -2048(r1)
662 ; CHECK-BE-NEXT: stdu r12, -4096(r1)
663 ; CHECK-BE-NEXT: stdu r12, -4096(r1)
664 ; CHECK-BE-NEXT: .cfi_def_cfa_register r1
665 ; CHECK-BE-NEXT: .cfi_def_cfa_register r30
666 ; CHECK-BE-NEXT: .cfi_offset r30, -16
667 ; CHECK-BE-NEXT: addi r4, r1, 2048
668 ; CHECK-BE-NEXT: li r5, 1
669 ; CHECK-BE-NEXT: sldi r3, r3, 2
670 ; CHECK-BE-NEXT: stwx r5, r4, r3
671 ; CHECK-BE-NEXT: lwz r3, 2048(r1)
672 ; CHECK-BE-NEXT: ld r1, 0(r1)
673 ; CHECK-BE-NEXT: ld r30, -16(r1)
674 ; CHECK-BE-NEXT: blr
676 ; CHECK-32-LABEL: f9:
677 ; CHECK-32: # %bb.0:
678 ; CHECK-32-NEXT: mr r12, r1
679 ; CHECK-32-NEXT: .cfi_def_cfa r12, 0
680 ; CHECK-32-NEXT: clrlwi r0, r12, 21
681 ; CHECK-32-NEXT: subc r1, r1, r0
682 ; CHECK-32-NEXT: stwu r12, -2048(r1)
683 ; CHECK-32-NEXT: stwu r12, -4096(r1)
684 ; CHECK-32-NEXT: stwu r12, -4096(r1)
685 ; CHECK-32-NEXT: .cfi_def_cfa_register r1
686 ; CHECK-32-NEXT: sub r0, r1, r12
687 ; CHECK-32-NEXT: sub r0, r1, r0
688 ; CHECK-32-NEXT: addic r0, r0, -8
689 ; CHECK-32-NEXT: stwx r30, 0, r0
690 ; CHECK-32-NEXT: addic r30, r0, 8
691 ; CHECK-32-NEXT: .cfi_def_cfa_register r30
692 ; CHECK-32-NEXT: .cfi_offset r30, -8
693 ; CHECK-32-NEXT: addi r3, r1, 2048
694 ; CHECK-32-NEXT: li r5, 1
695 ; CHECK-32-NEXT: slwi r4, r4, 2
696 ; CHECK-32-NEXT: stwx r5, r3, r4
697 ; CHECK-32-NEXT: mr r0, r31
698 ; CHECK-32-NEXT: lwz r3, 2048(r1)
699 ; CHECK-32-NEXT: lwz r31, 0(r1)
700 ; CHECK-32-NEXT: lwz r30, -8(r31)
701 ; CHECK-32-NEXT: mr r1, r31
702 ; CHECK-32-NEXT: mr r31, r0
703 ; CHECK-32-NEXT: blr
713 ; CHECK-LE-LABEL: f10:
714 ; CHECK-LE: # %bb.0:
715 ; CHECK-LE-NEXT: std r30, -16(r1)
716 ; CHECK-LE-NEXT: mr r30, r1
717 ; CHECK-LE-NEXT: .cfi_def_cfa r30, 0
718 ; CHECK-LE-NEXT: clrldi r0, r30, 54
719 ; CHECK-LE-NEXT: subc r12, r30, r0
720 ; CHECK-LE-NEXT: clrldi r0, r0, 52
721 ; CHECK-LE-NEXT: cmpdi r0, 0
722 ; CHECK-LE-NEXT: beq cr0, .LBB10_2
723 ; CHECK-LE-NEXT: # %bb.1:
724 ; CHECK-LE-NEXT: neg r0, r0
725 ; CHECK-LE-NEXT: stdux r30, r1, r0
726 ; CHECK-LE-NEXT: .LBB10_2:
727 ; CHECK-LE-NEXT: li r0, -4096
728 ; CHECK-LE-NEXT: cmpd r1, r12
729 ; CHECK-LE-NEXT: beq cr0, .LBB10_4
730 ; CHECK-LE-NEXT: .LBB10_3:
731 ; CHECK-LE-NEXT: stdux r30, r1, r0
732 ; CHECK-LE-NEXT: cmpd r1, r12
733 ; CHECK-LE-NEXT: bne cr0, .LBB10_3
734 ; CHECK-LE-NEXT: .LBB10_4:
735 ; CHECK-LE-NEXT: mr r12, r30
736 ; CHECK-LE-NEXT: stdu r12, -1024(r1)
737 ; CHECK-LE-NEXT: stdu r12, -4096(r1)
738 ; CHECK-LE-NEXT: .cfi_def_cfa_register r1
739 ; CHECK-LE-NEXT: .cfi_def_cfa_register r30
740 ; CHECK-LE-NEXT: .cfi_offset r30, -16
741 ; CHECK-LE-NEXT: addi r4, r1, 1024
742 ; CHECK-LE-NEXT: sldi r3, r3, 2
743 ; CHECK-LE-NEXT: li r5, 1
744 ; CHECK-LE-NEXT: stwx r5, r4, r3
745 ; CHECK-LE-NEXT: lwz r3, 1024(r1)
746 ; CHECK-LE-NEXT: ld r1, 0(r1)
747 ; CHECK-LE-NEXT: ld r30, -16(r1)
748 ; CHECK-LE-NEXT: blr
750 ; CHECK-BE-LABEL: f10:
751 ; CHECK-BE: # %bb.0:
752 ; CHECK-BE-NEXT: std r30, -16(r1)
753 ; CHECK-BE-NEXT: mr r30, r1
754 ; CHECK-BE-NEXT: .cfi_def_cfa r30, 0
755 ; CHECK-BE-NEXT: clrldi r0, r30, 54
756 ; CHECK-BE-NEXT: subc r12, r30, r0
757 ; CHECK-BE-NEXT: clrldi r0, r0, 52
758 ; CHECK-BE-NEXT: cmpdi r0, 0
759 ; CHECK-BE-NEXT: beq cr0, .LBB10_2
760 ; CHECK-BE-NEXT: # %bb.1:
761 ; CHECK-BE-NEXT: neg r0, r0
762 ; CHECK-BE-NEXT: stdux r30, r1, r0
763 ; CHECK-BE-NEXT: .LBB10_2:
764 ; CHECK-BE-NEXT: li r0, -4096
765 ; CHECK-BE-NEXT: cmpd r1, r12
766 ; CHECK-BE-NEXT: beq cr0, .LBB10_4
767 ; CHECK-BE-NEXT: .LBB10_3:
768 ; CHECK-BE-NEXT: stdux r30, r1, r0
769 ; CHECK-BE-NEXT: cmpd r1, r12
770 ; CHECK-BE-NEXT: bne cr0, .LBB10_3
771 ; CHECK-BE-NEXT: .LBB10_4:
772 ; CHECK-BE-NEXT: mr r12, r30
773 ; CHECK-BE-NEXT: stdu r12, -1024(r1)
774 ; CHECK-BE-NEXT: stdu r12, -4096(r1)
775 ; CHECK-BE-NEXT: .cfi_def_cfa_register r1
776 ; CHECK-BE-NEXT: .cfi_def_cfa_register r30
777 ; CHECK-BE-NEXT: .cfi_offset r30, -16
778 ; CHECK-BE-NEXT: addi r4, r1, 1024
779 ; CHECK-BE-NEXT: li r5, 1
780 ; CHECK-BE-NEXT: sldi r3, r3, 2
781 ; CHECK-BE-NEXT: stwx r5, r4, r3
782 ; CHECK-BE-NEXT: lwz r3, 1024(r1)
783 ; CHECK-BE-NEXT: ld r1, 0(r1)
784 ; CHECK-BE-NEXT: ld r30, -16(r1)
785 ; CHECK-BE-NEXT: blr
787 ; CHECK-32-LABEL: f10:
788 ; CHECK-32: # %bb.0:
789 ; CHECK-32-NEXT: mr r12, r1
790 ; CHECK-32-NEXT: .cfi_def_cfa r12, 0
791 ; CHECK-32-NEXT: clrlwi r0, r12, 22
792 ; CHECK-32-NEXT: subc r1, r1, r0
793 ; CHECK-32-NEXT: stwu r12, -1024(r1)
794 ; CHECK-32-NEXT: stwu r12, -4096(r1)
795 ; CHECK-32-NEXT: .cfi_def_cfa_register r1
796 ; CHECK-32-NEXT: sub r0, r1, r12
797 ; CHECK-32-NEXT: sub r0, r1, r0
798 ; CHECK-32-NEXT: addic r0, r0, -8
799 ; CHECK-32-NEXT: stwx r30, 0, r0
800 ; CHECK-32-NEXT: addic r30, r0, 8
801 ; CHECK-32-NEXT: .cfi_def_cfa_register r30
802 ; CHECK-32-NEXT: .cfi_offset r30, -8
803 ; CHECK-32-NEXT: addi r3, r1, 1024
804 ; CHECK-32-NEXT: li r5, 1
805 ; CHECK-32-NEXT: slwi r4, r4, 2
806 ; CHECK-32-NEXT: stwx r5, r3, r4
807 ; CHECK-32-NEXT: mr r0, r31
808 ; CHECK-32-NEXT: lwz r3, 1024(r1)
809 ; CHECK-32-NEXT: lwz r31, 0(r1)
810 ; CHECK-32-NEXT: lwz r30, -8(r31)
811 ; CHECK-32-NEXT: mr r1, r31
812 ; CHECK-32-NEXT: mr r31, r0
813 ; CHECK-32-NEXT: blr
822 ; CHECK-LE-LABEL: f11:
823 ; CHECK-LE: # %bb.0:
824 ; CHECK-LE-NEXT: std r31, -8(r1)
825 ; CHECK-LE-NEXT: std r30, -16(r1)
826 ; CHECK-LE-NEXT: mr r30, r1
827 ; CHECK-LE-NEXT: .cfi_def_cfa r30, 0
828 ; CHECK-LE-NEXT: clrldi r0, r30, 49
829 ; CHECK-LE-NEXT: subc r12, r30, r0
830 ; CHECK-LE-NEXT: clrldi r0, r0, 52
831 ; CHECK-LE-NEXT: cmpdi r0, 0
832 ; CHECK-LE-NEXT: beq cr0, .LBB11_2
833 ; CHECK-LE-NEXT: # %bb.1:
834 ; CHECK-LE-NEXT: neg r0, r0
835 ; CHECK-LE-NEXT: stdux r30, r1, r0
836 ; CHECK-LE-NEXT: .LBB11_2:
837 ; CHECK-LE-NEXT: li r0, -4096
838 ; CHECK-LE-NEXT: cmpd r1, r12
839 ; CHECK-LE-NEXT: beq cr0, .LBB11_4
840 ; CHECK-LE-NEXT: .LBB11_3:
841 ; CHECK-LE-NEXT: stdux r30, r1, r0
842 ; CHECK-LE-NEXT: cmpd r1, r12
843 ; CHECK-LE-NEXT: bne cr0, .LBB11_3
844 ; CHECK-LE-NEXT: .LBB11_4:
845 ; CHECK-LE-NEXT: mr r12, r30
846 ; CHECK-LE-NEXT: li r0, 24
847 ; CHECK-LE-NEXT: mtctr r0
848 ; CHECK-LE-NEXT: .LBB11_5:
849 ; CHECK-LE-NEXT: stdu r12, -4096(r1)
850 ; CHECK-LE-NEXT: bdnz .LBB11_5
851 ; CHECK-LE-NEXT: # %bb.6:
852 ; CHECK-LE-NEXT: .cfi_def_cfa_register r1
853 ; CHECK-LE-NEXT: .cfi_def_cfa_register r30
854 ; CHECK-LE-NEXT: .cfi_offset r31, -8
855 ; CHECK-LE-NEXT: .cfi_offset r30, -16
856 ; CHECK-LE-NEXT: clrldi r3, r3, 32
857 ; CHECK-LE-NEXT: lis r5, 1
858 ; CHECK-LE-NEXT: mr r31, r1
859 ; CHECK-LE-NEXT: li r6, 1
860 ; CHECK-LE-NEXT: addi r3, r3, 15
861 ; CHECK-LE-NEXT: ori r5, r5, 0
862 ; CHECK-LE-NEXT: rldicl r3, r3, 60, 4
863 ; CHECK-LE-NEXT: sldi r4, r4, 2
864 ; CHECK-LE-NEXT: add r5, r31, r5
865 ; CHECK-LE-NEXT: rldicl r3, r3, 4, 31
866 ; CHECK-LE-NEXT: stwx r6, r5, r4
867 ; CHECK-LE-NEXT: li r4, -32768
868 ; CHECK-LE-NEXT: neg r7, r3
869 ; CHECK-LE-NEXT: ld r3, 0(r1)
870 ; CHECK-LE-NEXT: and r4, r7, r4
871 ; CHECK-LE-NEXT: mr r7, r4
872 ; CHECK-LE-NEXT: li r4, -4096
873 ; CHECK-LE-NEXT: divd r5, r7, r4
874 ; CHECK-LE-NEXT: mulld r4, r5, r4
875 ; CHECK-LE-NEXT: sub r5, r7, r4
876 ; CHECK-LE-NEXT: add r4, r1, r7
877 ; CHECK-LE-NEXT: stdux r3, r1, r5
878 ; CHECK-LE-NEXT: cmpd r1, r4
879 ; CHECK-LE-NEXT: beq cr0, .LBB11_8
880 ; CHECK-LE-NEXT: .LBB11_7:
881 ; CHECK-LE-NEXT: stdu r3, -4096(r1)
882 ; CHECK-LE-NEXT: cmpd r1, r4
883 ; CHECK-LE-NEXT: bne cr0, .LBB11_7
884 ; CHECK-LE-NEXT: .LBB11_8:
885 ; CHECK-LE-NEXT: addi r3, r1, -32768
886 ; CHECK-LE-NEXT: lbz r3, 0(r3)
887 ; CHECK-LE-NEXT: ld r1, 0(r1)
888 ; CHECK-LE-NEXT: ld r31, -8(r1)
889 ; CHECK-LE-NEXT: ld r30, -16(r1)
890 ; CHECK-LE-NEXT: blr
892 ; CHECK-BE-LABEL: f11:
893 ; CHECK-BE: # %bb.0:
894 ; CHECK-BE-NEXT: std r31, -8(r1)
895 ; CHECK-BE-NEXT: std r30, -16(r1)
896 ; CHECK-BE-NEXT: mr r30, r1
897 ; CHECK-BE-NEXT: .cfi_def_cfa r30, 0
898 ; CHECK-BE-NEXT: clrldi r0, r30, 49
899 ; CHECK-BE-NEXT: subc r12, r30, r0
900 ; CHECK-BE-NEXT: clrldi r0, r0, 52
901 ; CHECK-BE-NEXT: cmpdi r0, 0
902 ; CHECK-BE-NEXT: beq cr0, .LBB11_2
903 ; CHECK-BE-NEXT: # %bb.1:
904 ; CHECK-BE-NEXT: neg r0, r0
905 ; CHECK-BE-NEXT: stdux r30, r1, r0
906 ; CHECK-BE-NEXT: .LBB11_2:
907 ; CHECK-BE-NEXT: li r0, -4096
908 ; CHECK-BE-NEXT: cmpd r1, r12
909 ; CHECK-BE-NEXT: beq cr0, .LBB11_4
910 ; CHECK-BE-NEXT: .LBB11_3:
911 ; CHECK-BE-NEXT: stdux r30, r1, r0
912 ; CHECK-BE-NEXT: cmpd r1, r12
913 ; CHECK-BE-NEXT: bne cr0, .LBB11_3
914 ; CHECK-BE-NEXT: .LBB11_4:
915 ; CHECK-BE-NEXT: mr r12, r30
916 ; CHECK-BE-NEXT: li r0, 24
917 ; CHECK-BE-NEXT: mtctr r0
918 ; CHECK-BE-NEXT: .LBB11_5:
919 ; CHECK-BE-NEXT: stdu r12, -4096(r1)
920 ; CHECK-BE-NEXT: bdnz .LBB11_5
921 ; CHECK-BE-NEXT: # %bb.6:
922 ; CHECK-BE-NEXT: .cfi_def_cfa_register r1
923 ; CHECK-BE-NEXT: .cfi_def_cfa_register r30
924 ; CHECK-BE-NEXT: .cfi_offset r31, -8
925 ; CHECK-BE-NEXT: .cfi_offset r30, -16
926 ; CHECK-BE-NEXT: clrldi r3, r3, 32
927 ; CHECK-BE-NEXT: lis r5, 1
928 ; CHECK-BE-NEXT: addi r3, r3, 15
929 ; CHECK-BE-NEXT: mr r31, r1
930 ; CHECK-BE-NEXT: ori r5, r5, 0
931 ; CHECK-BE-NEXT: rldicl r3, r3, 60, 4
932 ; CHECK-BE-NEXT: add r5, r31, r5
933 ; CHECK-BE-NEXT: sldi r4, r4, 2
934 ; CHECK-BE-NEXT: li r6, 1
935 ; CHECK-BE-NEXT: rldicl r3, r3, 4, 31
936 ; CHECK-BE-NEXT: stwx r6, r5, r4
937 ; CHECK-BE-NEXT: neg r7, r3
938 ; CHECK-BE-NEXT: li r4, -32768
939 ; CHECK-BE-NEXT: and r4, r7, r4
940 ; CHECK-BE-NEXT: ld r3, 0(r1)
941 ; CHECK-BE-NEXT: mr r7, r4
942 ; CHECK-BE-NEXT: li r4, -4096
943 ; CHECK-BE-NEXT: divd r5, r7, r4
944 ; CHECK-BE-NEXT: mulld r4, r5, r4
945 ; CHECK-BE-NEXT: sub r5, r7, r4
946 ; CHECK-BE-NEXT: add r4, r1, r7
947 ; CHECK-BE-NEXT: stdux r3, r1, r5
948 ; CHECK-BE-NEXT: cmpd r1, r4
949 ; CHECK-BE-NEXT: beq cr0, .LBB11_8
950 ; CHECK-BE-NEXT: .LBB11_7:
951 ; CHECK-BE-NEXT: stdu r3, -4096(r1)
952 ; CHECK-BE-NEXT: cmpd r1, r4
953 ; CHECK-BE-NEXT: bne cr0, .LBB11_7
954 ; CHECK-BE-NEXT: .LBB11_8:
955 ; CHECK-BE-NEXT: addi r3, r1, -32768
956 ; CHECK-BE-NEXT: lbz r3, 0(r3)
957 ; CHECK-BE-NEXT: ld r1, 0(r1)
958 ; CHECK-BE-NEXT: ld r31, -8(r1)
959 ; CHECK-BE-NEXT: ld r30, -16(r1)
960 ; CHECK-BE-NEXT: blr
962 ; CHECK-32-LABEL: f11:
963 ; CHECK-32: # %bb.0:
964 ; CHECK-32-NEXT: mr r12, r1
965 ; CHECK-32-NEXT: .cfi_def_cfa r12, 0
966 ; CHECK-32-NEXT: clrlwi r0, r12, 17
967 ; CHECK-32-NEXT: subc r1, r1, r0
968 ; CHECK-32-NEXT: li r0, 24
969 ; CHECK-32-NEXT: mtctr r0
970 ; CHECK-32-NEXT: .LBB11_1:
971 ; CHECK-32-NEXT: stwu r12, -4096(r1)
972 ; CHECK-32-NEXT: bdnz .LBB11_1
973 ; CHECK-32-NEXT: # %bb.2:
974 ; CHECK-32-NEXT: .cfi_def_cfa_register r1
975 ; CHECK-32-NEXT: sub r0, r1, r12
976 ; CHECK-32-NEXT: sub r0, r1, r0
977 ; CHECK-32-NEXT: addic r0, r0, -4
978 ; CHECK-32-NEXT: stwx r31, 0, r0
979 ; CHECK-32-NEXT: addic r0, r0, -4
980 ; CHECK-32-NEXT: stwx r30, 0, r0
981 ; CHECK-32-NEXT: addic r30, r0, 8
982 ; CHECK-32-NEXT: .cfi_def_cfa_register r30
983 ; CHECK-32-NEXT: .cfi_offset r31, -4
984 ; CHECK-32-NEXT: .cfi_offset r30, -8
985 ; CHECK-32-NEXT: lis r4, 1
986 ; CHECK-32-NEXT: mr r31, r1
987 ; CHECK-32-NEXT: ori r4, r4, 0
988 ; CHECK-32-NEXT: addi r3, r3, 15
989 ; CHECK-32-NEXT: add r4, r31, r4
990 ; CHECK-32-NEXT: li r5, 1
991 ; CHECK-32-NEXT: slwi r6, r6, 2
992 ; CHECK-32-NEXT: rlwinm r3, r3, 0, 0, 27
993 ; CHECK-32-NEXT: neg r7, r3
994 ; CHECK-32-NEXT: stwx r5, r4, r6
995 ; CHECK-32-NEXT: li r4, -32768
996 ; CHECK-32-NEXT: and r4, r7, r4
997 ; CHECK-32-NEXT: lwz r3, 0(r1)
998 ; CHECK-32-NEXT: mr r7, r4
999 ; CHECK-32-NEXT: li r4, -4096
1000 ; CHECK-32-NEXT: divw r5, r7, r4
1001 ; CHECK-32-NEXT: mullw r4, r5, r4
1002 ; CHECK-32-NEXT: sub r5, r7, r4
1003 ; CHECK-32-NEXT: add r4, r1, r7
1004 ; CHECK-32-NEXT: stwux r3, r1, r5
1005 ; CHECK-32-NEXT: cmpw r1, r4
1006 ; CHECK-32-NEXT: beq cr0, .LBB11_4
1007 ; CHECK-32-NEXT: .LBB11_3:
1008 ; CHECK-32-NEXT: stwu r3, -4096(r1)
1009 ; CHECK-32-NEXT: cmpw r1, r4
1010 ; CHECK-32-NEXT: bne cr0, .LBB11_3
1011 ; CHECK-32-NEXT: .LBB11_4:
1012 ; CHECK-32-NEXT: addi r3, r1, -32768
1013 ; CHECK-32-NEXT: lbz r3, 0(r3)
1014 ; CHECK-32-NEXT: lwz r31, 0(r1)
1015 ; CHECK-32-NEXT: lwz r0, -4(r31)
1016 ; CHECK-32-NEXT: lwz r30, -8(r31)
1017 ; CHECK-32-NEXT: mr r1, r31
1018 ; CHECK-32-NEXT: mr r31, r0
1019 ; CHECK-32-NEXT: blr
1029 attributes #0 = { "probe-stack"="inline-asm" }