[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / PowerPC / ppc64-rop-protection.ll
blob5d108b313f8f0baea0f59a038182339e7fecfbe3
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
3 ; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
4 ; RUN:   -mattr=+rop-protect < %s | FileCheck %s --check-prefix LE-P10
5 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
6 ; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
7 ; RUN:   -mattr=+rop-protect < %s | FileCheck %s --check-prefix LE-P9
8 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
9 ; RUN:   -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
10 ; RUN:   -mattr=+rop-protect < %s | FileCheck %s --check-prefix LE-P8
11 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
12 ; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
13 ; RUN:   -mattr=+rop-protect -O0 < %s | FileCheck %s --check-prefix LE-P10-O0
14 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
15 ; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
16 ; RUN:   -mattr=+rop-protect -O0 < %s | FileCheck %s --check-prefix LE-P9-O0
17 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
18 ; RUN:   -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
19 ; RUN:   -mattr=+rop-protect -O0 < %s | FileCheck %s --check-prefix LE-P8-O0
20 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
21 ; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
22 ; RUN:   -mattr=+rop-protect < %s | FileCheck %s --check-prefix BE-P10
23 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
24 ; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
25 ; RUN:   -mattr=+rop-protect < %s | FileCheck %s --check-prefix BE-P9
26 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
27 ; RUN:   -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
28 ; RUN:   -mattr=+rop-protect < %s | FileCheck %s --check-prefix BE-P8
29 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
30 ; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
31 ; RUN:   -mattr=+rop-protect -mattr=+privileged < %s | FileCheck %s --check-prefix LE-P10-PRIV
32 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
33 ; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
34 ; RUN:   -mattr=+rop-protect -mattr=+privileged < %s | FileCheck %s --check-prefix LE-P9-PRIV
35 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
36 ; RUN:   -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
37 ; RUN:   -mattr=+rop-protect -mattr=+privileged < %s | FileCheck %s --check-prefix LE-P8-PRIV
38 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
39 ; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
40 ; RUN:   -mattr=+rop-protect -mattr=+privileged < %s | FileCheck %s --check-prefix BE-P10-PRIV
41 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
42 ; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
43 ; RUN:   -mattr=+rop-protect -mattr=+privileged < %s | FileCheck %s --check-prefix BE-P9-PRIV
44 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
45 ; RUN:   -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
46 ; RUN:   -mattr=+rop-protect -mattr=+privileged < %s | FileCheck %s --check-prefix BE-P8-PRIV
50 ;; This test checks that the ROP protect instructions have been correctly
51 ;; added when the ROP protect option has been specified. The hashst
52 ;; instruction should be added to the prologue and the hashchk should be added
53 ;; to the epilogue.
55 define dso_local zeroext i32 @caller(i32 zeroext %in, i32 zeroext %add_after) #0 {
56 ; LE-P10-LABEL: caller:
57 ; LE-P10:       # %bb.0: # %entry
58 ; LE-P10-NEXT:    mflr r0
59 ; LE-P10-NEXT:    std r30, -16(r1) # 8-byte Folded Spill
60 ; LE-P10-NEXT:    std r0, 16(r1)
61 ; LE-P10-NEXT:    hashst r0, -24(r1)
62 ; LE-P10-NEXT:    stdu r1, -64(r1)
63 ; LE-P10-NEXT:    mr r30, r4
64 ; LE-P10-NEXT:    bl callee@notoc
65 ; LE-P10-NEXT:    add r3, r3, r30
66 ; LE-P10-NEXT:    clrldi r3, r3, 32
67 ; LE-P10-NEXT:    addi r1, r1, 64
68 ; LE-P10-NEXT:    ld r0, 16(r1)
69 ; LE-P10-NEXT:    mtlr r0
70 ; LE-P10-NEXT:    hashchk r0, -24(r1)
71 ; LE-P10-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload
72 ; LE-P10-NEXT:    blr
74 ; LE-P9-LABEL: caller:
75 ; LE-P9:       # %bb.0: # %entry
76 ; LE-P9-NEXT:    mflr r0
77 ; LE-P9-NEXT:    std r30, -16(r1) # 8-byte Folded Spill
78 ; LE-P9-NEXT:    std r0, 16(r1)
79 ; LE-P9-NEXT:    hashst r0, -24(r1)
80 ; LE-P9-NEXT:    stdu r1, -64(r1)
81 ; LE-P9-NEXT:    mr r30, r4
82 ; LE-P9-NEXT:    bl callee
83 ; LE-P9-NEXT:    nop
84 ; LE-P9-NEXT:    add r3, r3, r30
85 ; LE-P9-NEXT:    clrldi r3, r3, 32
86 ; LE-P9-NEXT:    addi r1, r1, 64
87 ; LE-P9-NEXT:    ld r0, 16(r1)
88 ; LE-P9-NEXT:    mtlr r0
89 ; LE-P9-NEXT:    hashchk r0, -24(r1)
90 ; LE-P9-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload
91 ; LE-P9-NEXT:    blr
93 ; LE-P8-LABEL: caller:
94 ; LE-P8:       # %bb.0: # %entry
95 ; LE-P8-NEXT:    mflr r0
96 ; LE-P8-NEXT:    std r30, -16(r1) # 8-byte Folded Spill
97 ; LE-P8-NEXT:    std r0, 16(r1)
98 ; LE-P8-NEXT:    hashst r0, -24(r1)
99 ; LE-P8-NEXT:    stdu r1, -64(r1)
100 ; LE-P8-NEXT:    mr r30, r4
101 ; LE-P8-NEXT:    bl callee
102 ; LE-P8-NEXT:    nop
103 ; LE-P8-NEXT:    add r3, r3, r30
104 ; LE-P8-NEXT:    clrldi r3, r3, 32
105 ; LE-P8-NEXT:    addi r1, r1, 64
106 ; LE-P8-NEXT:    ld r0, 16(r1)
107 ; LE-P8-NEXT:    hashchk r0, -24(r1)
108 ; LE-P8-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload
109 ; LE-P8-NEXT:    mtlr r0
110 ; LE-P8-NEXT:    blr
112 ; LE-P10-O0-LABEL: caller:
113 ; LE-P10-O0:       # %bb.0: # %entry
114 ; LE-P10-O0-NEXT:    mflr r0
115 ; LE-P10-O0-NEXT:    std r0, 16(r1)
116 ; LE-P10-O0-NEXT:    hashst r0, -8(r1)
117 ; LE-P10-O0-NEXT:    stdu r1, -48(r1)
118 ; LE-P10-O0-NEXT:    # kill: def $r4 killed $r4 killed $x4
119 ; LE-P10-O0-NEXT:    stw r4, 36(r1) # 4-byte Folded Spill
120 ; LE-P10-O0-NEXT:    mr r4, r3
121 ; LE-P10-O0-NEXT:    # implicit-def: $x3
122 ; LE-P10-O0-NEXT:    mr r3, r4
123 ; LE-P10-O0-NEXT:    clrldi r3, r3, 32
124 ; LE-P10-O0-NEXT:    bl callee@notoc
125 ; LE-P10-O0-NEXT:    lwz r4, 36(r1) # 4-byte Folded Reload
126 ; LE-P10-O0-NEXT:    # kill: def $r3 killed $r3 killed $x3
127 ; LE-P10-O0-NEXT:    add r3, r3, r4
128 ; LE-P10-O0-NEXT:    clrldi r3, r3, 32
129 ; LE-P10-O0-NEXT:    addi r1, r1, 48
130 ; LE-P10-O0-NEXT:    ld r0, 16(r1)
131 ; LE-P10-O0-NEXT:    hashchk r0, -8(r1)
132 ; LE-P10-O0-NEXT:    mtlr r0
133 ; LE-P10-O0-NEXT:    blr
135 ; LE-P9-O0-LABEL: caller:
136 ; LE-P9-O0:       # %bb.0: # %entry
137 ; LE-P9-O0-NEXT:    mflr r0
138 ; LE-P9-O0-NEXT:    std r0, 16(r1)
139 ; LE-P9-O0-NEXT:    hashst r0, -8(r1)
140 ; LE-P9-O0-NEXT:    stdu r1, -112(r1)
141 ; LE-P9-O0-NEXT:    # kill: def $r4 killed $r4 killed $x4
142 ; LE-P9-O0-NEXT:    stw r4, 100(r1) # 4-byte Folded Spill
143 ; LE-P9-O0-NEXT:    # kill: def $r3 killed $r3 killed $x3
144 ; LE-P9-O0-NEXT:    clrldi r3, r3, 32
145 ; LE-P9-O0-NEXT:    bl callee
146 ; LE-P9-O0-NEXT:    nop
147 ; LE-P9-O0-NEXT:    lwz r4, 100(r1) # 4-byte Folded Reload
148 ; LE-P9-O0-NEXT:    add r3, r3, r4
149 ; LE-P9-O0-NEXT:    clrldi r3, r3, 32
150 ; LE-P9-O0-NEXT:    addi r1, r1, 112
151 ; LE-P9-O0-NEXT:    ld r0, 16(r1)
152 ; LE-P9-O0-NEXT:    hashchk r0, -8(r1)
153 ; LE-P9-O0-NEXT:    mtlr r0
154 ; LE-P9-O0-NEXT:    blr
156 ; LE-P8-O0-LABEL: caller:
157 ; LE-P8-O0:       # %bb.0: # %entry
158 ; LE-P8-O0-NEXT:    mflr r0
159 ; LE-P8-O0-NEXT:    std r0, 16(r1)
160 ; LE-P8-O0-NEXT:    hashst r0, -8(r1)
161 ; LE-P8-O0-NEXT:    stdu r1, -112(r1)
162 ; LE-P8-O0-NEXT:    # kill: def $r4 killed $r4 killed $x4
163 ; LE-P8-O0-NEXT:    stw r4, 100(r1) # 4-byte Folded Spill
164 ; LE-P8-O0-NEXT:    # kill: def $r3 killed $r3 killed $x3
165 ; LE-P8-O0-NEXT:    clrldi r3, r3, 32
166 ; LE-P8-O0-NEXT:    bl callee
167 ; LE-P8-O0-NEXT:    nop
168 ; LE-P8-O0-NEXT:    lwz r4, 100(r1) # 4-byte Folded Reload
169 ; LE-P8-O0-NEXT:    add r3, r3, r4
170 ; LE-P8-O0-NEXT:    clrldi r3, r3, 32
171 ; LE-P8-O0-NEXT:    addi r1, r1, 112
172 ; LE-P8-O0-NEXT:    ld r0, 16(r1)
173 ; LE-P8-O0-NEXT:    hashchk r0, -8(r1)
174 ; LE-P8-O0-NEXT:    mtlr r0
175 ; LE-P8-O0-NEXT:    blr
177 ; BE-P10-LABEL: caller:
178 ; BE-P10:       # %bb.0: # %entry
179 ; BE-P10-NEXT:    mflr r0
180 ; BE-P10-NEXT:    std r0, 16(r1)
181 ; BE-P10-NEXT:    hashst r0, -24(r1)
182 ; BE-P10-NEXT:    stdu r1, -144(r1)
183 ; BE-P10-NEXT:    std r30, 128(r1) # 8-byte Folded Spill
184 ; BE-P10-NEXT:    mr r30, r4
185 ; BE-P10-NEXT:    bl callee
186 ; BE-P10-NEXT:    nop
187 ; BE-P10-NEXT:    add r3, r3, r30
188 ; BE-P10-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload
189 ; BE-P10-NEXT:    clrldi r3, r3, 32
190 ; BE-P10-NEXT:    addi r1, r1, 144
191 ; BE-P10-NEXT:    ld r0, 16(r1)
192 ; BE-P10-NEXT:    mtlr r0
193 ; BE-P10-NEXT:    hashchk r0, -24(r1)
194 ; BE-P10-NEXT:    blr
196 ; BE-P9-LABEL: caller:
197 ; BE-P9:       # %bb.0: # %entry
198 ; BE-P9-NEXT:    mflr r0
199 ; BE-P9-NEXT:    std r0, 16(r1)
200 ; BE-P9-NEXT:    hashst r0, -24(r1)
201 ; BE-P9-NEXT:    stdu r1, -144(r1)
202 ; BE-P9-NEXT:    std r30, 128(r1) # 8-byte Folded Spill
203 ; BE-P9-NEXT:    mr r30, r4
204 ; BE-P9-NEXT:    bl callee
205 ; BE-P9-NEXT:    nop
206 ; BE-P9-NEXT:    add r3, r3, r30
207 ; BE-P9-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload
208 ; BE-P9-NEXT:    clrldi r3, r3, 32
209 ; BE-P9-NEXT:    addi r1, r1, 144
210 ; BE-P9-NEXT:    ld r0, 16(r1)
211 ; BE-P9-NEXT:    mtlr r0
212 ; BE-P9-NEXT:    hashchk r0, -24(r1)
213 ; BE-P9-NEXT:    blr
215 ; BE-P8-LABEL: caller:
216 ; BE-P8:       # %bb.0: # %entry
217 ; BE-P8-NEXT:    mflr r0
218 ; BE-P8-NEXT:    std r0, 16(r1)
219 ; BE-P8-NEXT:    hashst r0, -24(r1)
220 ; BE-P8-NEXT:    stdu r1, -144(r1)
221 ; BE-P8-NEXT:    std r30, 128(r1) # 8-byte Folded Spill
222 ; BE-P8-NEXT:    mr r30, r4
223 ; BE-P8-NEXT:    bl callee
224 ; BE-P8-NEXT:    nop
225 ; BE-P8-NEXT:    add r3, r3, r30
226 ; BE-P8-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload
227 ; BE-P8-NEXT:    clrldi r3, r3, 32
228 ; BE-P8-NEXT:    addi r1, r1, 144
229 ; BE-P8-NEXT:    ld r0, 16(r1)
230 ; BE-P8-NEXT:    hashchk r0, -24(r1)
231 ; BE-P8-NEXT:    mtlr r0
232 ; BE-P8-NEXT:    blr
234 ; LE-P10-PRIV-LABEL: caller:
235 ; LE-P10-PRIV:       # %bb.0: # %entry
236 ; LE-P10-PRIV-NEXT:    mflr r0
237 ; LE-P10-PRIV-NEXT:    std r30, -16(r1) # 8-byte Folded Spill
238 ; LE-P10-PRIV-NEXT:    std r0, 16(r1)
239 ; LE-P10-PRIV-NEXT:    hashstp r0, -24(r1)
240 ; LE-P10-PRIV-NEXT:    stdu r1, -64(r1)
241 ; LE-P10-PRIV-NEXT:    mr r30, r4
242 ; LE-P10-PRIV-NEXT:    bl callee@notoc
243 ; LE-P10-PRIV-NEXT:    add r3, r3, r30
244 ; LE-P10-PRIV-NEXT:    clrldi r3, r3, 32
245 ; LE-P10-PRIV-NEXT:    addi r1, r1, 64
246 ; LE-P10-PRIV-NEXT:    ld r0, 16(r1)
247 ; LE-P10-PRIV-NEXT:    mtlr r0
248 ; LE-P10-PRIV-NEXT:    hashchkp r0, -24(r1)
249 ; LE-P10-PRIV-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload
250 ; LE-P10-PRIV-NEXT:    blr
252 ; LE-P9-PRIV-LABEL: caller:
253 ; LE-P9-PRIV:       # %bb.0: # %entry
254 ; LE-P9-PRIV-NEXT:    mflr r0
255 ; LE-P9-PRIV-NEXT:    std r30, -16(r1) # 8-byte Folded Spill
256 ; LE-P9-PRIV-NEXT:    std r0, 16(r1)
257 ; LE-P9-PRIV-NEXT:    hashstp r0, -24(r1)
258 ; LE-P9-PRIV-NEXT:    stdu r1, -64(r1)
259 ; LE-P9-PRIV-NEXT:    mr r30, r4
260 ; LE-P9-PRIV-NEXT:    bl callee
261 ; LE-P9-PRIV-NEXT:    nop
262 ; LE-P9-PRIV-NEXT:    add r3, r3, r30
263 ; LE-P9-PRIV-NEXT:    clrldi r3, r3, 32
264 ; LE-P9-PRIV-NEXT:    addi r1, r1, 64
265 ; LE-P9-PRIV-NEXT:    ld r0, 16(r1)
266 ; LE-P9-PRIV-NEXT:    mtlr r0
267 ; LE-P9-PRIV-NEXT:    hashchkp r0, -24(r1)
268 ; LE-P9-PRIV-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload
269 ; LE-P9-PRIV-NEXT:    blr
271 ; LE-P8-PRIV-LABEL: caller:
272 ; LE-P8-PRIV:       # %bb.0: # %entry
273 ; LE-P8-PRIV-NEXT:    mflr r0
274 ; LE-P8-PRIV-NEXT:    std r30, -16(r1) # 8-byte Folded Spill
275 ; LE-P8-PRIV-NEXT:    std r0, 16(r1)
276 ; LE-P8-PRIV-NEXT:    hashstp r0, -24(r1)
277 ; LE-P8-PRIV-NEXT:    stdu r1, -64(r1)
278 ; LE-P8-PRIV-NEXT:    mr r30, r4
279 ; LE-P8-PRIV-NEXT:    bl callee
280 ; LE-P8-PRIV-NEXT:    nop
281 ; LE-P8-PRIV-NEXT:    add r3, r3, r30
282 ; LE-P8-PRIV-NEXT:    clrldi r3, r3, 32
283 ; LE-P8-PRIV-NEXT:    addi r1, r1, 64
284 ; LE-P8-PRIV-NEXT:    ld r0, 16(r1)
285 ; LE-P8-PRIV-NEXT:    hashchkp r0, -24(r1)
286 ; LE-P8-PRIV-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload
287 ; LE-P8-PRIV-NEXT:    mtlr r0
288 ; LE-P8-PRIV-NEXT:    blr
290 ; BE-P10-PRIV-LABEL: caller:
291 ; BE-P10-PRIV:       # %bb.0: # %entry
292 ; BE-P10-PRIV-NEXT:    mflr r0
293 ; BE-P10-PRIV-NEXT:    std r0, 16(r1)
294 ; BE-P10-PRIV-NEXT:    hashstp r0, -24(r1)
295 ; BE-P10-PRIV-NEXT:    stdu r1, -144(r1)
296 ; BE-P10-PRIV-NEXT:    std r30, 128(r1) # 8-byte Folded Spill
297 ; BE-P10-PRIV-NEXT:    mr r30, r4
298 ; BE-P10-PRIV-NEXT:    bl callee
299 ; BE-P10-PRIV-NEXT:    nop
300 ; BE-P10-PRIV-NEXT:    add r3, r3, r30
301 ; BE-P10-PRIV-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload
302 ; BE-P10-PRIV-NEXT:    clrldi r3, r3, 32
303 ; BE-P10-PRIV-NEXT:    addi r1, r1, 144
304 ; BE-P10-PRIV-NEXT:    ld r0, 16(r1)
305 ; BE-P10-PRIV-NEXT:    mtlr r0
306 ; BE-P10-PRIV-NEXT:    hashchkp r0, -24(r1)
307 ; BE-P10-PRIV-NEXT:    blr
309 ; BE-P9-PRIV-LABEL: caller:
310 ; BE-P9-PRIV:       # %bb.0: # %entry
311 ; BE-P9-PRIV-NEXT:    mflr r0
312 ; BE-P9-PRIV-NEXT:    std r0, 16(r1)
313 ; BE-P9-PRIV-NEXT:    hashstp r0, -24(r1)
314 ; BE-P9-PRIV-NEXT:    stdu r1, -144(r1)
315 ; BE-P9-PRIV-NEXT:    std r30, 128(r1) # 8-byte Folded Spill
316 ; BE-P9-PRIV-NEXT:    mr r30, r4
317 ; BE-P9-PRIV-NEXT:    bl callee
318 ; BE-P9-PRIV-NEXT:    nop
319 ; BE-P9-PRIV-NEXT:    add r3, r3, r30
320 ; BE-P9-PRIV-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload
321 ; BE-P9-PRIV-NEXT:    clrldi r3, r3, 32
322 ; BE-P9-PRIV-NEXT:    addi r1, r1, 144
323 ; BE-P9-PRIV-NEXT:    ld r0, 16(r1)
324 ; BE-P9-PRIV-NEXT:    mtlr r0
325 ; BE-P9-PRIV-NEXT:    hashchkp r0, -24(r1)
326 ; BE-P9-PRIV-NEXT:    blr
328 ; BE-P8-PRIV-LABEL: caller:
329 ; BE-P8-PRIV:       # %bb.0: # %entry
330 ; BE-P8-PRIV-NEXT:    mflr r0
331 ; BE-P8-PRIV-NEXT:    std r0, 16(r1)
332 ; BE-P8-PRIV-NEXT:    hashstp r0, -24(r1)
333 ; BE-P8-PRIV-NEXT:    stdu r1, -144(r1)
334 ; BE-P8-PRIV-NEXT:    std r30, 128(r1) # 8-byte Folded Spill
335 ; BE-P8-PRIV-NEXT:    mr r30, r4
336 ; BE-P8-PRIV-NEXT:    bl callee
337 ; BE-P8-PRIV-NEXT:    nop
338 ; BE-P8-PRIV-NEXT:    add r3, r3, r30
339 ; BE-P8-PRIV-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload
340 ; BE-P8-PRIV-NEXT:    clrldi r3, r3, 32
341 ; BE-P8-PRIV-NEXT:    addi r1, r1, 144
342 ; BE-P8-PRIV-NEXT:    ld r0, 16(r1)
343 ; BE-P8-PRIV-NEXT:    hashchkp r0, -24(r1)
344 ; BE-P8-PRIV-NEXT:    mtlr r0
345 ; BE-P8-PRIV-NEXT:    blr
346 entry:
347   %call = tail call zeroext i32 @callee(i32 zeroext %in)
348   %add = add i32 %call, %add_after
349   ret i32 %add
352 ;; NOTE: This test is technically a violation of the ABI. The hash is saved
353 ;; outside of the initial 288 byte volatile program storage region in the
354 ;; Protected Zone. However, this restriction will be removed in an upcoming
355 ;; revision of the ABI.
356 define dso_local zeroext i32 @spill(i32* nocapture readonly %in) #0 {
357 ; LE-P10-LABEL: spill:
358 ; LE-P10:       # %bb.0: # %entry
359 ; LE-P10-NEXT:    mflr r0
360 ; LE-P10-NEXT:    mfcr r12
361 ; LE-P10-NEXT:    std r0, 16(r1)
362 ; LE-P10-NEXT:    hashst r0, -488(r1)
363 ; LE-P10-NEXT:    stw r12, 8(r1)
364 ; LE-P10-NEXT:    stdu r1, -544(r1)
365 ; LE-P10-NEXT:    lwz r4, 12(r3)
366 ; LE-P10-NEXT:    std r14, 256(r1) # 8-byte Folded Spill
367 ; LE-P10-NEXT:    std r15, 264(r1) # 8-byte Folded Spill
368 ; LE-P10-NEXT:    stxv v20, 64(r1) # 16-byte Folded Spill
369 ; LE-P10-NEXT:    stxv v21, 80(r1) # 16-byte Folded Spill
370 ; LE-P10-NEXT:    stxv v22, 96(r1) # 16-byte Folded Spill
371 ; LE-P10-NEXT:    std r16, 272(r1) # 8-byte Folded Spill
372 ; LE-P10-NEXT:    std r17, 280(r1) # 8-byte Folded Spill
373 ; LE-P10-NEXT:    stxv v23, 112(r1) # 16-byte Folded Spill
374 ; LE-P10-NEXT:    std r18, 288(r1) # 8-byte Folded Spill
375 ; LE-P10-NEXT:    std r19, 296(r1) # 8-byte Folded Spill
376 ; LE-P10-NEXT:    stxv v24, 128(r1) # 16-byte Folded Spill
377 ; LE-P10-NEXT:    stxv v25, 144(r1) # 16-byte Folded Spill
378 ; LE-P10-NEXT:    std r20, 304(r1) # 8-byte Folded Spill
379 ; LE-P10-NEXT:    std r21, 312(r1) # 8-byte Folded Spill
380 ; LE-P10-NEXT:    stxv v26, 160(r1) # 16-byte Folded Spill
381 ; LE-P10-NEXT:    std r22, 320(r1) # 8-byte Folded Spill
382 ; LE-P10-NEXT:    std r23, 328(r1) # 8-byte Folded Spill
383 ; LE-P10-NEXT:    stxv v27, 176(r1) # 16-byte Folded Spill
384 ; LE-P10-NEXT:    stxv v28, 192(r1) # 16-byte Folded Spill
385 ; LE-P10-NEXT:    std r24, 336(r1) # 8-byte Folded Spill
386 ; LE-P10-NEXT:    std r25, 344(r1) # 8-byte Folded Spill
387 ; LE-P10-NEXT:    stxv v29, 208(r1) # 16-byte Folded Spill
388 ; LE-P10-NEXT:    std r26, 352(r1) # 8-byte Folded Spill
389 ; LE-P10-NEXT:    std r27, 360(r1) # 8-byte Folded Spill
390 ; LE-P10-NEXT:    stxv v30, 224(r1) # 16-byte Folded Spill
391 ; LE-P10-NEXT:    stxv v31, 240(r1) # 16-byte Folded Spill
392 ; LE-P10-NEXT:    std r28, 368(r1) # 8-byte Folded Spill
393 ; LE-P10-NEXT:    std r29, 376(r1) # 8-byte Folded Spill
394 ; LE-P10-NEXT:    std r30, 384(r1) # 8-byte Folded Spill
395 ; LE-P10-NEXT:    std r31, 392(r1) # 8-byte Folded Spill
396 ; LE-P10-NEXT:    stfd f14, 400(r1) # 8-byte Folded Spill
397 ; LE-P10-NEXT:    stfd f15, 408(r1) # 8-byte Folded Spill
398 ; LE-P10-NEXT:    stfd f16, 416(r1) # 8-byte Folded Spill
399 ; LE-P10-NEXT:    stfd f17, 424(r1) # 8-byte Folded Spill
400 ; LE-P10-NEXT:    stfd f18, 432(r1) # 8-byte Folded Spill
401 ; LE-P10-NEXT:    stfd f19, 440(r1) # 8-byte Folded Spill
402 ; LE-P10-NEXT:    stfd f20, 448(r1) # 8-byte Folded Spill
403 ; LE-P10-NEXT:    stfd f21, 456(r1) # 8-byte Folded Spill
404 ; LE-P10-NEXT:    stfd f22, 464(r1) # 8-byte Folded Spill
405 ; LE-P10-NEXT:    stfd f23, 472(r1) # 8-byte Folded Spill
406 ; LE-P10-NEXT:    stfd f24, 480(r1) # 8-byte Folded Spill
407 ; LE-P10-NEXT:    stfd f25, 488(r1) # 8-byte Folded Spill
408 ; LE-P10-NEXT:    stfd f26, 496(r1) # 8-byte Folded Spill
409 ; LE-P10-NEXT:    stfd f27, 504(r1) # 8-byte Folded Spill
410 ; LE-P10-NEXT:    stfd f28, 512(r1) # 8-byte Folded Spill
411 ; LE-P10-NEXT:    stfd f29, 520(r1) # 8-byte Folded Spill
412 ; LE-P10-NEXT:    stfd f30, 528(r1) # 8-byte Folded Spill
413 ; LE-P10-NEXT:    stfd f31, 536(r1) # 8-byte Folded Spill
414 ; LE-P10-NEXT:    std r3, 40(r1) # 8-byte Folded Spill
415 ; LE-P10-NEXT:    stw r4, 52(r1)
416 ; LE-P10-NEXT:    #APP
417 ; LE-P10-NEXT:    nop
418 ; LE-P10-NEXT:    #NO_APP
419 ; LE-P10-NEXT:    addi r3, r1, 52
420 ; LE-P10-NEXT:    bl callee2@notoc
421 ; LE-P10-NEXT:    ld r4, 40(r1) # 8-byte Folded Reload
422 ; LE-P10-NEXT:    lxv v31, 240(r1) # 16-byte Folded Reload
423 ; LE-P10-NEXT:    lxv v30, 224(r1) # 16-byte Folded Reload
424 ; LE-P10-NEXT:    lxv v29, 208(r1) # 16-byte Folded Reload
425 ; LE-P10-NEXT:    lxv v28, 192(r1) # 16-byte Folded Reload
426 ; LE-P10-NEXT:    lxv v27, 176(r1) # 16-byte Folded Reload
427 ; LE-P10-NEXT:    lxv v26, 160(r1) # 16-byte Folded Reload
428 ; LE-P10-NEXT:    lxv v25, 144(r1) # 16-byte Folded Reload
429 ; LE-P10-NEXT:    lxv v24, 128(r1) # 16-byte Folded Reload
430 ; LE-P10-NEXT:    lxv v23, 112(r1) # 16-byte Folded Reload
431 ; LE-P10-NEXT:    lxv v22, 96(r1) # 16-byte Folded Reload
432 ; LE-P10-NEXT:    lxv v21, 80(r1) # 16-byte Folded Reload
433 ; LE-P10-NEXT:    lxv v20, 64(r1) # 16-byte Folded Reload
434 ; LE-P10-NEXT:    lfd f31, 536(r1) # 8-byte Folded Reload
435 ; LE-P10-NEXT:    lfd f30, 528(r1) # 8-byte Folded Reload
436 ; LE-P10-NEXT:    lfd f29, 520(r1) # 8-byte Folded Reload
437 ; LE-P10-NEXT:    lfd f28, 512(r1) # 8-byte Folded Reload
438 ; LE-P10-NEXT:    lfd f27, 504(r1) # 8-byte Folded Reload
439 ; LE-P10-NEXT:    ld r31, 392(r1) # 8-byte Folded Reload
440 ; LE-P10-NEXT:    ld r30, 384(r1) # 8-byte Folded Reload
441 ; LE-P10-NEXT:    ld r29, 376(r1) # 8-byte Folded Reload
442 ; LE-P10-NEXT:    lfd f26, 496(r1) # 8-byte Folded Reload
443 ; LE-P10-NEXT:    ld r28, 368(r1) # 8-byte Folded Reload
444 ; LE-P10-NEXT:    ld r27, 360(r1) # 8-byte Folded Reload
445 ; LE-P10-NEXT:    ld r26, 352(r1) # 8-byte Folded Reload
446 ; LE-P10-NEXT:    lfd f25, 488(r1) # 8-byte Folded Reload
447 ; LE-P10-NEXT:    ld r25, 344(r1) # 8-byte Folded Reload
448 ; LE-P10-NEXT:    ld r24, 336(r1) # 8-byte Folded Reload
449 ; LE-P10-NEXT:    ld r23, 328(r1) # 8-byte Folded Reload
450 ; LE-P10-NEXT:    lfd f24, 480(r1) # 8-byte Folded Reload
451 ; LE-P10-NEXT:    ld r22, 320(r1) # 8-byte Folded Reload
452 ; LE-P10-NEXT:    ld r21, 312(r1) # 8-byte Folded Reload
453 ; LE-P10-NEXT:    lwz r4, 16(r4)
454 ; LE-P10-NEXT:    add r3, r4, r3
455 ; LE-P10-NEXT:    lfd f23, 472(r1) # 8-byte Folded Reload
456 ; LE-P10-NEXT:    lfd f22, 464(r1) # 8-byte Folded Reload
457 ; LE-P10-NEXT:    ld r20, 304(r1) # 8-byte Folded Reload
458 ; LE-P10-NEXT:    ld r19, 296(r1) # 8-byte Folded Reload
459 ; LE-P10-NEXT:    ld r18, 288(r1) # 8-byte Folded Reload
460 ; LE-P10-NEXT:    ld r17, 280(r1) # 8-byte Folded Reload
461 ; LE-P10-NEXT:    ld r16, 272(r1) # 8-byte Folded Reload
462 ; LE-P10-NEXT:    ld r15, 264(r1) # 8-byte Folded Reload
463 ; LE-P10-NEXT:    ld r14, 256(r1) # 8-byte Folded Reload
464 ; LE-P10-NEXT:    lfd f21, 456(r1) # 8-byte Folded Reload
465 ; LE-P10-NEXT:    lfd f20, 448(r1) # 8-byte Folded Reload
466 ; LE-P10-NEXT:    lfd f19, 440(r1) # 8-byte Folded Reload
467 ; LE-P10-NEXT:    lfd f18, 432(r1) # 8-byte Folded Reload
468 ; LE-P10-NEXT:    lfd f17, 424(r1) # 8-byte Folded Reload
469 ; LE-P10-NEXT:    lfd f16, 416(r1) # 8-byte Folded Reload
470 ; LE-P10-NEXT:    lfd f15, 408(r1) # 8-byte Folded Reload
471 ; LE-P10-NEXT:    lfd f14, 400(r1) # 8-byte Folded Reload
472 ; LE-P10-NEXT:    clrldi r3, r3, 32
473 ; LE-P10-NEXT:    addi r1, r1, 544
474 ; LE-P10-NEXT:    ld r0, 16(r1)
475 ; LE-P10-NEXT:    lwz r12, 8(r1)
476 ; LE-P10-NEXT:    mtlr r0
477 ; LE-P10-NEXT:    hashchk r0, -488(r1)
478 ; LE-P10-NEXT:    mtocrf 32, r12
479 ; LE-P10-NEXT:    mtocrf 16, r12
480 ; LE-P10-NEXT:    mtocrf 8, r12
481 ; LE-P10-NEXT:    blr
483 ; LE-P9-LABEL: spill:
484 ; LE-P9:       # %bb.0: # %entry
485 ; LE-P9-NEXT:    mflr r0
486 ; LE-P9-NEXT:    mfcr r12
487 ; LE-P9-NEXT:    std r0, 16(r1)
488 ; LE-P9-NEXT:    hashst r0, -488(r1)
489 ; LE-P9-NEXT:    stw r12, 8(r1)
490 ; LE-P9-NEXT:    stdu r1, -544(r1)
491 ; LE-P9-NEXT:    lwz r4, 12(r3)
492 ; LE-P9-NEXT:    std r14, 256(r1) # 8-byte Folded Spill
493 ; LE-P9-NEXT:    std r15, 264(r1) # 8-byte Folded Spill
494 ; LE-P9-NEXT:    stxv v20, 64(r1) # 16-byte Folded Spill
495 ; LE-P9-NEXT:    stxv v21, 80(r1) # 16-byte Folded Spill
496 ; LE-P9-NEXT:    stxv v22, 96(r1) # 16-byte Folded Spill
497 ; LE-P9-NEXT:    std r16, 272(r1) # 8-byte Folded Spill
498 ; LE-P9-NEXT:    std r17, 280(r1) # 8-byte Folded Spill
499 ; LE-P9-NEXT:    stxv v23, 112(r1) # 16-byte Folded Spill
500 ; LE-P9-NEXT:    std r18, 288(r1) # 8-byte Folded Spill
501 ; LE-P9-NEXT:    stxv v24, 128(r1) # 16-byte Folded Spill
502 ; LE-P9-NEXT:    std r19, 296(r1) # 8-byte Folded Spill
503 ; LE-P9-NEXT:    stxv v25, 144(r1) # 16-byte Folded Spill
504 ; LE-P9-NEXT:    std r20, 304(r1) # 8-byte Folded Spill
505 ; LE-P9-NEXT:    std r21, 312(r1) # 8-byte Folded Spill
506 ; LE-P9-NEXT:    stxv v26, 160(r1) # 16-byte Folded Spill
507 ; LE-P9-NEXT:    std r22, 320(r1) # 8-byte Folded Spill
508 ; LE-P9-NEXT:    stxv v27, 176(r1) # 16-byte Folded Spill
509 ; LE-P9-NEXT:    std r23, 328(r1) # 8-byte Folded Spill
510 ; LE-P9-NEXT:    stxv v28, 192(r1) # 16-byte Folded Spill
511 ; LE-P9-NEXT:    std r24, 336(r1) # 8-byte Folded Spill
512 ; LE-P9-NEXT:    std r25, 344(r1) # 8-byte Folded Spill
513 ; LE-P9-NEXT:    stxv v29, 208(r1) # 16-byte Folded Spill
514 ; LE-P9-NEXT:    std r26, 352(r1) # 8-byte Folded Spill
515 ; LE-P9-NEXT:    stxv v30, 224(r1) # 16-byte Folded Spill
516 ; LE-P9-NEXT:    std r27, 360(r1) # 8-byte Folded Spill
517 ; LE-P9-NEXT:    stxv v31, 240(r1) # 16-byte Folded Spill
518 ; LE-P9-NEXT:    std r28, 368(r1) # 8-byte Folded Spill
519 ; LE-P9-NEXT:    std r29, 376(r1) # 8-byte Folded Spill
520 ; LE-P9-NEXT:    std r30, 384(r1) # 8-byte Folded Spill
521 ; LE-P9-NEXT:    std r31, 392(r1) # 8-byte Folded Spill
522 ; LE-P9-NEXT:    stfd f14, 400(r1) # 8-byte Folded Spill
523 ; LE-P9-NEXT:    stfd f15, 408(r1) # 8-byte Folded Spill
524 ; LE-P9-NEXT:    stfd f16, 416(r1) # 8-byte Folded Spill
525 ; LE-P9-NEXT:    stfd f17, 424(r1) # 8-byte Folded Spill
526 ; LE-P9-NEXT:    stfd f18, 432(r1) # 8-byte Folded Spill
527 ; LE-P9-NEXT:    stfd f19, 440(r1) # 8-byte Folded Spill
528 ; LE-P9-NEXT:    stfd f20, 448(r1) # 8-byte Folded Spill
529 ; LE-P9-NEXT:    stfd f21, 456(r1) # 8-byte Folded Spill
530 ; LE-P9-NEXT:    stfd f22, 464(r1) # 8-byte Folded Spill
531 ; LE-P9-NEXT:    stfd f23, 472(r1) # 8-byte Folded Spill
532 ; LE-P9-NEXT:    stfd f24, 480(r1) # 8-byte Folded Spill
533 ; LE-P9-NEXT:    stfd f25, 488(r1) # 8-byte Folded Spill
534 ; LE-P9-NEXT:    stfd f26, 496(r1) # 8-byte Folded Spill
535 ; LE-P9-NEXT:    stfd f27, 504(r1) # 8-byte Folded Spill
536 ; LE-P9-NEXT:    stfd f28, 512(r1) # 8-byte Folded Spill
537 ; LE-P9-NEXT:    stfd f29, 520(r1) # 8-byte Folded Spill
538 ; LE-P9-NEXT:    stfd f30, 528(r1) # 8-byte Folded Spill
539 ; LE-P9-NEXT:    stfd f31, 536(r1) # 8-byte Folded Spill
540 ; LE-P9-NEXT:    std r3, 40(r1) # 8-byte Folded Spill
541 ; LE-P9-NEXT:    stw r4, 52(r1)
542 ; LE-P9-NEXT:    #APP
543 ; LE-P9-NEXT:    nop
544 ; LE-P9-NEXT:    #NO_APP
545 ; LE-P9-NEXT:    addi r3, r1, 52
546 ; LE-P9-NEXT:    bl callee2
547 ; LE-P9-NEXT:    nop
548 ; LE-P9-NEXT:    ld r4, 40(r1) # 8-byte Folded Reload
549 ; LE-P9-NEXT:    lxv v31, 240(r1) # 16-byte Folded Reload
550 ; LE-P9-NEXT:    lxv v30, 224(r1) # 16-byte Folded Reload
551 ; LE-P9-NEXT:    lxv v29, 208(r1) # 16-byte Folded Reload
552 ; LE-P9-NEXT:    lxv v28, 192(r1) # 16-byte Folded Reload
553 ; LE-P9-NEXT:    lxv v27, 176(r1) # 16-byte Folded Reload
554 ; LE-P9-NEXT:    lxv v26, 160(r1) # 16-byte Folded Reload
555 ; LE-P9-NEXT:    lxv v25, 144(r1) # 16-byte Folded Reload
556 ; LE-P9-NEXT:    lxv v24, 128(r1) # 16-byte Folded Reload
557 ; LE-P9-NEXT:    lxv v23, 112(r1) # 16-byte Folded Reload
558 ; LE-P9-NEXT:    lxv v22, 96(r1) # 16-byte Folded Reload
559 ; LE-P9-NEXT:    lxv v21, 80(r1) # 16-byte Folded Reload
560 ; LE-P9-NEXT:    lxv v20, 64(r1) # 16-byte Folded Reload
561 ; LE-P9-NEXT:    lfd f31, 536(r1) # 8-byte Folded Reload
562 ; LE-P9-NEXT:    lfd f30, 528(r1) # 8-byte Folded Reload
563 ; LE-P9-NEXT:    lfd f29, 520(r1) # 8-byte Folded Reload
564 ; LE-P9-NEXT:    lfd f28, 512(r1) # 8-byte Folded Reload
565 ; LE-P9-NEXT:    lfd f27, 504(r1) # 8-byte Folded Reload
566 ; LE-P9-NEXT:    ld r31, 392(r1) # 8-byte Folded Reload
567 ; LE-P9-NEXT:    ld r30, 384(r1) # 8-byte Folded Reload
568 ; LE-P9-NEXT:    ld r29, 376(r1) # 8-byte Folded Reload
569 ; LE-P9-NEXT:    lfd f26, 496(r1) # 8-byte Folded Reload
570 ; LE-P9-NEXT:    ld r28, 368(r1) # 8-byte Folded Reload
571 ; LE-P9-NEXT:    ld r27, 360(r1) # 8-byte Folded Reload
572 ; LE-P9-NEXT:    ld r26, 352(r1) # 8-byte Folded Reload
573 ; LE-P9-NEXT:    lfd f25, 488(r1) # 8-byte Folded Reload
574 ; LE-P9-NEXT:    ld r25, 344(r1) # 8-byte Folded Reload
575 ; LE-P9-NEXT:    ld r24, 336(r1) # 8-byte Folded Reload
576 ; LE-P9-NEXT:    ld r23, 328(r1) # 8-byte Folded Reload
577 ; LE-P9-NEXT:    lfd f24, 480(r1) # 8-byte Folded Reload
578 ; LE-P9-NEXT:    ld r22, 320(r1) # 8-byte Folded Reload
579 ; LE-P9-NEXT:    ld r21, 312(r1) # 8-byte Folded Reload
580 ; LE-P9-NEXT:    lwz r4, 16(r4)
581 ; LE-P9-NEXT:    add r3, r4, r3
582 ; LE-P9-NEXT:    lfd f23, 472(r1) # 8-byte Folded Reload
583 ; LE-P9-NEXT:    lfd f22, 464(r1) # 8-byte Folded Reload
584 ; LE-P9-NEXT:    ld r20, 304(r1) # 8-byte Folded Reload
585 ; LE-P9-NEXT:    ld r19, 296(r1) # 8-byte Folded Reload
586 ; LE-P9-NEXT:    ld r18, 288(r1) # 8-byte Folded Reload
587 ; LE-P9-NEXT:    ld r17, 280(r1) # 8-byte Folded Reload
588 ; LE-P9-NEXT:    ld r16, 272(r1) # 8-byte Folded Reload
589 ; LE-P9-NEXT:    ld r15, 264(r1) # 8-byte Folded Reload
590 ; LE-P9-NEXT:    ld r14, 256(r1) # 8-byte Folded Reload
591 ; LE-P9-NEXT:    lfd f21, 456(r1) # 8-byte Folded Reload
592 ; LE-P9-NEXT:    lfd f20, 448(r1) # 8-byte Folded Reload
593 ; LE-P9-NEXT:    lfd f19, 440(r1) # 8-byte Folded Reload
594 ; LE-P9-NEXT:    lfd f18, 432(r1) # 8-byte Folded Reload
595 ; LE-P9-NEXT:    lfd f17, 424(r1) # 8-byte Folded Reload
596 ; LE-P9-NEXT:    lfd f16, 416(r1) # 8-byte Folded Reload
597 ; LE-P9-NEXT:    lfd f15, 408(r1) # 8-byte Folded Reload
598 ; LE-P9-NEXT:    lfd f14, 400(r1) # 8-byte Folded Reload
599 ; LE-P9-NEXT:    clrldi r3, r3, 32
600 ; LE-P9-NEXT:    addi r1, r1, 544
601 ; LE-P9-NEXT:    ld r0, 16(r1)
602 ; LE-P9-NEXT:    lwz r12, 8(r1)
603 ; LE-P9-NEXT:    mtlr r0
604 ; LE-P9-NEXT:    hashchk r0, -488(r1)
605 ; LE-P9-NEXT:    mtocrf 32, r12
606 ; LE-P9-NEXT:    mtocrf 16, r12
607 ; LE-P9-NEXT:    mtocrf 8, r12
608 ; LE-P9-NEXT:    blr
610 ; LE-P8-LABEL: spill:
611 ; LE-P8:       # %bb.0: # %entry
612 ; LE-P8-NEXT:    mfcr r12
613 ; LE-P8-NEXT:    mflr r0
614 ; LE-P8-NEXT:    std r0, 16(r1)
615 ; LE-P8-NEXT:    hashst r0, -488(r1)
616 ; LE-P8-NEXT:    stw r12, 8(r1)
617 ; LE-P8-NEXT:    stdu r1, -544(r1)
618 ; LE-P8-NEXT:    li r4, 64
619 ; LE-P8-NEXT:    std r14, 256(r1) # 8-byte Folded Spill
620 ; LE-P8-NEXT:    std r15, 264(r1) # 8-byte Folded Spill
621 ; LE-P8-NEXT:    std r16, 272(r1) # 8-byte Folded Spill
622 ; LE-P8-NEXT:    std r17, 280(r1) # 8-byte Folded Spill
623 ; LE-P8-NEXT:    stxvd2x v20, r1, r4 # 16-byte Folded Spill
624 ; LE-P8-NEXT:    li r4, 80
625 ; LE-P8-NEXT:    std r18, 288(r1) # 8-byte Folded Spill
626 ; LE-P8-NEXT:    std r19, 296(r1) # 8-byte Folded Spill
627 ; LE-P8-NEXT:    std r20, 304(r1) # 8-byte Folded Spill
628 ; LE-P8-NEXT:    std r21, 312(r1) # 8-byte Folded Spill
629 ; LE-P8-NEXT:    stxvd2x v21, r1, r4 # 16-byte Folded Spill
630 ; LE-P8-NEXT:    li r4, 96
631 ; LE-P8-NEXT:    std r22, 320(r1) # 8-byte Folded Spill
632 ; LE-P8-NEXT:    std r23, 328(r1) # 8-byte Folded Spill
633 ; LE-P8-NEXT:    std r24, 336(r1) # 8-byte Folded Spill
634 ; LE-P8-NEXT:    std r25, 344(r1) # 8-byte Folded Spill
635 ; LE-P8-NEXT:    std r26, 352(r1) # 8-byte Folded Spill
636 ; LE-P8-NEXT:    std r27, 360(r1) # 8-byte Folded Spill
637 ; LE-P8-NEXT:    std r28, 368(r1) # 8-byte Folded Spill
638 ; LE-P8-NEXT:    std r29, 376(r1) # 8-byte Folded Spill
639 ; LE-P8-NEXT:    std r30, 384(r1) # 8-byte Folded Spill
640 ; LE-P8-NEXT:    std r31, 392(r1) # 8-byte Folded Spill
641 ; LE-P8-NEXT:    std r3, 40(r1) # 8-byte Folded Spill
642 ; LE-P8-NEXT:    stxvd2x v22, r1, r4 # 16-byte Folded Spill
643 ; LE-P8-NEXT:    li r4, 112
644 ; LE-P8-NEXT:    stxvd2x v23, r1, r4 # 16-byte Folded Spill
645 ; LE-P8-NEXT:    li r4, 128
646 ; LE-P8-NEXT:    stfd f14, 400(r1) # 8-byte Folded Spill
647 ; LE-P8-NEXT:    stxvd2x v24, r1, r4 # 16-byte Folded Spill
648 ; LE-P8-NEXT:    li r4, 144
649 ; LE-P8-NEXT:    stfd f15, 408(r1) # 8-byte Folded Spill
650 ; LE-P8-NEXT:    stxvd2x v25, r1, r4 # 16-byte Folded Spill
651 ; LE-P8-NEXT:    li r4, 160
652 ; LE-P8-NEXT:    stfd f16, 416(r1) # 8-byte Folded Spill
653 ; LE-P8-NEXT:    stxvd2x v26, r1, r4 # 16-byte Folded Spill
654 ; LE-P8-NEXT:    li r4, 176
655 ; LE-P8-NEXT:    stfd f17, 424(r1) # 8-byte Folded Spill
656 ; LE-P8-NEXT:    stxvd2x v27, r1, r4 # 16-byte Folded Spill
657 ; LE-P8-NEXT:    li r4, 192
658 ; LE-P8-NEXT:    stfd f18, 432(r1) # 8-byte Folded Spill
659 ; LE-P8-NEXT:    stxvd2x v28, r1, r4 # 16-byte Folded Spill
660 ; LE-P8-NEXT:    li r4, 208
661 ; LE-P8-NEXT:    stfd f19, 440(r1) # 8-byte Folded Spill
662 ; LE-P8-NEXT:    stxvd2x v29, r1, r4 # 16-byte Folded Spill
663 ; LE-P8-NEXT:    li r4, 224
664 ; LE-P8-NEXT:    stfd f20, 448(r1) # 8-byte Folded Spill
665 ; LE-P8-NEXT:    stxvd2x v30, r1, r4 # 16-byte Folded Spill
666 ; LE-P8-NEXT:    li r4, 240
667 ; LE-P8-NEXT:    stfd f21, 456(r1) # 8-byte Folded Spill
668 ; LE-P8-NEXT:    stxvd2x v31, r1, r4 # 16-byte Folded Spill
669 ; LE-P8-NEXT:    lwz r4, 12(r3)
670 ; LE-P8-NEXT:    stfd f22, 464(r1) # 8-byte Folded Spill
671 ; LE-P8-NEXT:    stfd f23, 472(r1) # 8-byte Folded Spill
672 ; LE-P8-NEXT:    stfd f24, 480(r1) # 8-byte Folded Spill
673 ; LE-P8-NEXT:    stfd f25, 488(r1) # 8-byte Folded Spill
674 ; LE-P8-NEXT:    stfd f26, 496(r1) # 8-byte Folded Spill
675 ; LE-P8-NEXT:    stfd f27, 504(r1) # 8-byte Folded Spill
676 ; LE-P8-NEXT:    stfd f28, 512(r1) # 8-byte Folded Spill
677 ; LE-P8-NEXT:    stfd f29, 520(r1) # 8-byte Folded Spill
678 ; LE-P8-NEXT:    stfd f30, 528(r1) # 8-byte Folded Spill
679 ; LE-P8-NEXT:    stfd f31, 536(r1) # 8-byte Folded Spill
680 ; LE-P8-NEXT:    stw r4, 52(r1)
681 ; LE-P8-NEXT:    #APP
682 ; LE-P8-NEXT:    nop
683 ; LE-P8-NEXT:    #NO_APP
684 ; LE-P8-NEXT:    addi r3, r1, 52
685 ; LE-P8-NEXT:    bl callee2
686 ; LE-P8-NEXT:    nop
687 ; LE-P8-NEXT:    ld r4, 40(r1) # 8-byte Folded Reload
688 ; LE-P8-NEXT:    lfd f31, 536(r1) # 8-byte Folded Reload
689 ; LE-P8-NEXT:    lfd f30, 528(r1) # 8-byte Folded Reload
690 ; LE-P8-NEXT:    ld r31, 392(r1) # 8-byte Folded Reload
691 ; LE-P8-NEXT:    lfd f29, 520(r1) # 8-byte Folded Reload
692 ; LE-P8-NEXT:    lfd f28, 512(r1) # 8-byte Folded Reload
693 ; LE-P8-NEXT:    ld r30, 384(r1) # 8-byte Folded Reload
694 ; LE-P8-NEXT:    ld r29, 376(r1) # 8-byte Folded Reload
695 ; LE-P8-NEXT:    lwz r4, 16(r4)
696 ; LE-P8-NEXT:    lfd f27, 504(r1) # 8-byte Folded Reload
697 ; LE-P8-NEXT:    lfd f26, 496(r1) # 8-byte Folded Reload
698 ; LE-P8-NEXT:    ld r28, 368(r1) # 8-byte Folded Reload
699 ; LE-P8-NEXT:    lfd f25, 488(r1) # 8-byte Folded Reload
700 ; LE-P8-NEXT:    lfd f24, 480(r1) # 8-byte Folded Reload
701 ; LE-P8-NEXT:    ld r27, 360(r1) # 8-byte Folded Reload
702 ; LE-P8-NEXT:    ld r26, 352(r1) # 8-byte Folded Reload
703 ; LE-P8-NEXT:    add r3, r4, r3
704 ; LE-P8-NEXT:    li r4, 240
705 ; LE-P8-NEXT:    lfd f23, 472(r1) # 8-byte Folded Reload
706 ; LE-P8-NEXT:    lfd f22, 464(r1) # 8-byte Folded Reload
707 ; LE-P8-NEXT:    ld r25, 344(r1) # 8-byte Folded Reload
708 ; LE-P8-NEXT:    ld r24, 336(r1) # 8-byte Folded Reload
709 ; LE-P8-NEXT:    lxvd2x v31, r1, r4 # 16-byte Folded Reload
710 ; LE-P8-NEXT:    li r4, 224
711 ; LE-P8-NEXT:    lfd f21, 456(r1) # 8-byte Folded Reload
712 ; LE-P8-NEXT:    ld r23, 328(r1) # 8-byte Folded Reload
713 ; LE-P8-NEXT:    ld r22, 320(r1) # 8-byte Folded Reload
714 ; LE-P8-NEXT:    clrldi r3, r3, 32
715 ; LE-P8-NEXT:    lxvd2x v30, r1, r4 # 16-byte Folded Reload
716 ; LE-P8-NEXT:    li r4, 208
717 ; LE-P8-NEXT:    lfd f20, 448(r1) # 8-byte Folded Reload
718 ; LE-P8-NEXT:    ld r21, 312(r1) # 8-byte Folded Reload
719 ; LE-P8-NEXT:    ld r20, 304(r1) # 8-byte Folded Reload
720 ; LE-P8-NEXT:    lxvd2x v29, r1, r4 # 16-byte Folded Reload
721 ; LE-P8-NEXT:    li r4, 192
722 ; LE-P8-NEXT:    lfd f19, 440(r1) # 8-byte Folded Reload
723 ; LE-P8-NEXT:    ld r19, 296(r1) # 8-byte Folded Reload
724 ; LE-P8-NEXT:    ld r18, 288(r1) # 8-byte Folded Reload
725 ; LE-P8-NEXT:    lxvd2x v28, r1, r4 # 16-byte Folded Reload
726 ; LE-P8-NEXT:    li r4, 176
727 ; LE-P8-NEXT:    lfd f18, 432(r1) # 8-byte Folded Reload
728 ; LE-P8-NEXT:    ld r17, 280(r1) # 8-byte Folded Reload
729 ; LE-P8-NEXT:    ld r16, 272(r1) # 8-byte Folded Reload
730 ; LE-P8-NEXT:    lxvd2x v27, r1, r4 # 16-byte Folded Reload
731 ; LE-P8-NEXT:    li r4, 160
732 ; LE-P8-NEXT:    lfd f17, 424(r1) # 8-byte Folded Reload
733 ; LE-P8-NEXT:    ld r15, 264(r1) # 8-byte Folded Reload
734 ; LE-P8-NEXT:    ld r14, 256(r1) # 8-byte Folded Reload
735 ; LE-P8-NEXT:    lxvd2x v26, r1, r4 # 16-byte Folded Reload
736 ; LE-P8-NEXT:    li r4, 144
737 ; LE-P8-NEXT:    lfd f16, 416(r1) # 8-byte Folded Reload
738 ; LE-P8-NEXT:    lxvd2x v25, r1, r4 # 16-byte Folded Reload
739 ; LE-P8-NEXT:    li r4, 128
740 ; LE-P8-NEXT:    lfd f15, 408(r1) # 8-byte Folded Reload
741 ; LE-P8-NEXT:    lxvd2x v24, r1, r4 # 16-byte Folded Reload
742 ; LE-P8-NEXT:    li r4, 112
743 ; LE-P8-NEXT:    lfd f14, 400(r1) # 8-byte Folded Reload
744 ; LE-P8-NEXT:    lxvd2x v23, r1, r4 # 16-byte Folded Reload
745 ; LE-P8-NEXT:    li r4, 96
746 ; LE-P8-NEXT:    lxvd2x v22, r1, r4 # 16-byte Folded Reload
747 ; LE-P8-NEXT:    li r4, 80
748 ; LE-P8-NEXT:    lxvd2x v21, r1, r4 # 16-byte Folded Reload
749 ; LE-P8-NEXT:    li r4, 64
750 ; LE-P8-NEXT:    lxvd2x v20, r1, r4 # 16-byte Folded Reload
751 ; LE-P8-NEXT:    addi r1, r1, 544
752 ; LE-P8-NEXT:    ld r0, 16(r1)
753 ; LE-P8-NEXT:    lwz r12, 8(r1)
754 ; LE-P8-NEXT:    mtocrf 32, r12
755 ; LE-P8-NEXT:    hashchk r0, -488(r1)
756 ; LE-P8-NEXT:    mtlr r0
757 ; LE-P8-NEXT:    mtocrf 16, r12
758 ; LE-P8-NEXT:    mtocrf 8, r12
759 ; LE-P8-NEXT:    blr
761 ; LE-P10-O0-LABEL: spill:
762 ; LE-P10-O0:       # %bb.0: # %entry
763 ; LE-P10-O0-NEXT:    mflr r0
764 ; LE-P10-O0-NEXT:    mfcr r12
765 ; LE-P10-O0-NEXT:    std r0, 16(r1)
766 ; LE-P10-O0-NEXT:    hashst r0, -488(r1)
767 ; LE-P10-O0-NEXT:    stw r12, 8(r1)
768 ; LE-P10-O0-NEXT:    stdu r1, -544(r1)
769 ; LE-P10-O0-NEXT:    std r14, 256(r1) # 8-byte Folded Spill
770 ; LE-P10-O0-NEXT:    std r15, 264(r1) # 8-byte Folded Spill
771 ; LE-P10-O0-NEXT:    std r16, 272(r1) # 8-byte Folded Spill
772 ; LE-P10-O0-NEXT:    std r17, 280(r1) # 8-byte Folded Spill
773 ; LE-P10-O0-NEXT:    std r18, 288(r1) # 8-byte Folded Spill
774 ; LE-P10-O0-NEXT:    std r19, 296(r1) # 8-byte Folded Spill
775 ; LE-P10-O0-NEXT:    std r20, 304(r1) # 8-byte Folded Spill
776 ; LE-P10-O0-NEXT:    std r21, 312(r1) # 8-byte Folded Spill
777 ; LE-P10-O0-NEXT:    std r22, 320(r1) # 8-byte Folded Spill
778 ; LE-P10-O0-NEXT:    std r23, 328(r1) # 8-byte Folded Spill
779 ; LE-P10-O0-NEXT:    std r24, 336(r1) # 8-byte Folded Spill
780 ; LE-P10-O0-NEXT:    std r25, 344(r1) # 8-byte Folded Spill
781 ; LE-P10-O0-NEXT:    std r26, 352(r1) # 8-byte Folded Spill
782 ; LE-P10-O0-NEXT:    std r27, 360(r1) # 8-byte Folded Spill
783 ; LE-P10-O0-NEXT:    std r28, 368(r1) # 8-byte Folded Spill
784 ; LE-P10-O0-NEXT:    std r29, 376(r1) # 8-byte Folded Spill
785 ; LE-P10-O0-NEXT:    std r30, 384(r1) # 8-byte Folded Spill
786 ; LE-P10-O0-NEXT:    std r31, 392(r1) # 8-byte Folded Spill
787 ; LE-P10-O0-NEXT:    stfd f14, 400(r1) # 8-byte Folded Spill
788 ; LE-P10-O0-NEXT:    stfd f15, 408(r1) # 8-byte Folded Spill
789 ; LE-P10-O0-NEXT:    stfd f16, 416(r1) # 8-byte Folded Spill
790 ; LE-P10-O0-NEXT:    stfd f17, 424(r1) # 8-byte Folded Spill
791 ; LE-P10-O0-NEXT:    stfd f18, 432(r1) # 8-byte Folded Spill
792 ; LE-P10-O0-NEXT:    stfd f19, 440(r1) # 8-byte Folded Spill
793 ; LE-P10-O0-NEXT:    stfd f20, 448(r1) # 8-byte Folded Spill
794 ; LE-P10-O0-NEXT:    stfd f21, 456(r1) # 8-byte Folded Spill
795 ; LE-P10-O0-NEXT:    stfd f22, 464(r1) # 8-byte Folded Spill
796 ; LE-P10-O0-NEXT:    stfd f23, 472(r1) # 8-byte Folded Spill
797 ; LE-P10-O0-NEXT:    stfd f24, 480(r1) # 8-byte Folded Spill
798 ; LE-P10-O0-NEXT:    stfd f25, 488(r1) # 8-byte Folded Spill
799 ; LE-P10-O0-NEXT:    stfd f26, 496(r1) # 8-byte Folded Spill
800 ; LE-P10-O0-NEXT:    stfd f27, 504(r1) # 8-byte Folded Spill
801 ; LE-P10-O0-NEXT:    stfd f28, 512(r1) # 8-byte Folded Spill
802 ; LE-P10-O0-NEXT:    stfd f29, 520(r1) # 8-byte Folded Spill
803 ; LE-P10-O0-NEXT:    stfd f30, 528(r1) # 8-byte Folded Spill
804 ; LE-P10-O0-NEXT:    stfd f31, 536(r1) # 8-byte Folded Spill
805 ; LE-P10-O0-NEXT:    stxv v20, 64(r1) # 16-byte Folded Spill
806 ; LE-P10-O0-NEXT:    stxv v21, 80(r1) # 16-byte Folded Spill
807 ; LE-P10-O0-NEXT:    stxv v22, 96(r1) # 16-byte Folded Spill
808 ; LE-P10-O0-NEXT:    stxv v23, 112(r1) # 16-byte Folded Spill
809 ; LE-P10-O0-NEXT:    stxv v24, 128(r1) # 16-byte Folded Spill
810 ; LE-P10-O0-NEXT:    stxv v25, 144(r1) # 16-byte Folded Spill
811 ; LE-P10-O0-NEXT:    stxv v26, 160(r1) # 16-byte Folded Spill
812 ; LE-P10-O0-NEXT:    stxv v27, 176(r1) # 16-byte Folded Spill
813 ; LE-P10-O0-NEXT:    stxv v28, 192(r1) # 16-byte Folded Spill
814 ; LE-P10-O0-NEXT:    stxv v29, 208(r1) # 16-byte Folded Spill
815 ; LE-P10-O0-NEXT:    stxv v30, 224(r1) # 16-byte Folded Spill
816 ; LE-P10-O0-NEXT:    stxv v31, 240(r1) # 16-byte Folded Spill
817 ; LE-P10-O0-NEXT:    std r3, 40(r1) # 8-byte Folded Spill
818 ; LE-P10-O0-NEXT:    lwz r3, 12(r3)
819 ; LE-P10-O0-NEXT:    stw r3, 52(r1)
820 ; LE-P10-O0-NEXT:    #APP
821 ; LE-P10-O0-NEXT:    nop
822 ; LE-P10-O0-NEXT:    #NO_APP
823 ; LE-P10-O0-NEXT:    addi r3, r1, 52
824 ; LE-P10-O0-NEXT:    bl callee2@notoc
825 ; LE-P10-O0-NEXT:    mr r4, r3
826 ; LE-P10-O0-NEXT:    ld r3, 40(r1) # 8-byte Folded Reload
827 ; LE-P10-O0-NEXT:    # kill: def $r4 killed $r4 killed $x4
828 ; LE-P10-O0-NEXT:    lwz r3, 16(r3)
829 ; LE-P10-O0-NEXT:    add r3, r3, r4
830 ; LE-P10-O0-NEXT:    clrldi r3, r3, 32
831 ; LE-P10-O0-NEXT:    lxv v31, 240(r1) # 16-byte Folded Reload
832 ; LE-P10-O0-NEXT:    lxv v30, 224(r1) # 16-byte Folded Reload
833 ; LE-P10-O0-NEXT:    lxv v29, 208(r1) # 16-byte Folded Reload
834 ; LE-P10-O0-NEXT:    lxv v28, 192(r1) # 16-byte Folded Reload
835 ; LE-P10-O0-NEXT:    lxv v27, 176(r1) # 16-byte Folded Reload
836 ; LE-P10-O0-NEXT:    lxv v26, 160(r1) # 16-byte Folded Reload
837 ; LE-P10-O0-NEXT:    lxv v25, 144(r1) # 16-byte Folded Reload
838 ; LE-P10-O0-NEXT:    lxv v24, 128(r1) # 16-byte Folded Reload
839 ; LE-P10-O0-NEXT:    lxv v23, 112(r1) # 16-byte Folded Reload
840 ; LE-P10-O0-NEXT:    lxv v22, 96(r1) # 16-byte Folded Reload
841 ; LE-P10-O0-NEXT:    lxv v21, 80(r1) # 16-byte Folded Reload
842 ; LE-P10-O0-NEXT:    lxv v20, 64(r1) # 16-byte Folded Reload
843 ; LE-P10-O0-NEXT:    lfd f31, 536(r1) # 8-byte Folded Reload
844 ; LE-P10-O0-NEXT:    lfd f30, 528(r1) # 8-byte Folded Reload
845 ; LE-P10-O0-NEXT:    lfd f29, 520(r1) # 8-byte Folded Reload
846 ; LE-P10-O0-NEXT:    lfd f28, 512(r1) # 8-byte Folded Reload
847 ; LE-P10-O0-NEXT:    lfd f27, 504(r1) # 8-byte Folded Reload
848 ; LE-P10-O0-NEXT:    lfd f26, 496(r1) # 8-byte Folded Reload
849 ; LE-P10-O0-NEXT:    lfd f25, 488(r1) # 8-byte Folded Reload
850 ; LE-P10-O0-NEXT:    lfd f24, 480(r1) # 8-byte Folded Reload
851 ; LE-P10-O0-NEXT:    lfd f23, 472(r1) # 8-byte Folded Reload
852 ; LE-P10-O0-NEXT:    lfd f22, 464(r1) # 8-byte Folded Reload
853 ; LE-P10-O0-NEXT:    lfd f21, 456(r1) # 8-byte Folded Reload
854 ; LE-P10-O0-NEXT:    lfd f20, 448(r1) # 8-byte Folded Reload
855 ; LE-P10-O0-NEXT:    lfd f19, 440(r1) # 8-byte Folded Reload
856 ; LE-P10-O0-NEXT:    lfd f18, 432(r1) # 8-byte Folded Reload
857 ; LE-P10-O0-NEXT:    lfd f17, 424(r1) # 8-byte Folded Reload
858 ; LE-P10-O0-NEXT:    lfd f16, 416(r1) # 8-byte Folded Reload
859 ; LE-P10-O0-NEXT:    lfd f15, 408(r1) # 8-byte Folded Reload
860 ; LE-P10-O0-NEXT:    lfd f14, 400(r1) # 8-byte Folded Reload
861 ; LE-P10-O0-NEXT:    ld r31, 392(r1) # 8-byte Folded Reload
862 ; LE-P10-O0-NEXT:    ld r30, 384(r1) # 8-byte Folded Reload
863 ; LE-P10-O0-NEXT:    ld r29, 376(r1) # 8-byte Folded Reload
864 ; LE-P10-O0-NEXT:    ld r28, 368(r1) # 8-byte Folded Reload
865 ; LE-P10-O0-NEXT:    ld r27, 360(r1) # 8-byte Folded Reload
866 ; LE-P10-O0-NEXT:    ld r26, 352(r1) # 8-byte Folded Reload
867 ; LE-P10-O0-NEXT:    ld r25, 344(r1) # 8-byte Folded Reload
868 ; LE-P10-O0-NEXT:    ld r24, 336(r1) # 8-byte Folded Reload
869 ; LE-P10-O0-NEXT:    ld r23, 328(r1) # 8-byte Folded Reload
870 ; LE-P10-O0-NEXT:    ld r22, 320(r1) # 8-byte Folded Reload
871 ; LE-P10-O0-NEXT:    ld r21, 312(r1) # 8-byte Folded Reload
872 ; LE-P10-O0-NEXT:    ld r20, 304(r1) # 8-byte Folded Reload
873 ; LE-P10-O0-NEXT:    ld r19, 296(r1) # 8-byte Folded Reload
874 ; LE-P10-O0-NEXT:    ld r18, 288(r1) # 8-byte Folded Reload
875 ; LE-P10-O0-NEXT:    ld r17, 280(r1) # 8-byte Folded Reload
876 ; LE-P10-O0-NEXT:    ld r16, 272(r1) # 8-byte Folded Reload
877 ; LE-P10-O0-NEXT:    ld r15, 264(r1) # 8-byte Folded Reload
878 ; LE-P10-O0-NEXT:    ld r14, 256(r1) # 8-byte Folded Reload
879 ; LE-P10-O0-NEXT:    addi r1, r1, 544
880 ; LE-P10-O0-NEXT:    ld r0, 16(r1)
881 ; LE-P10-O0-NEXT:    lwz r12, 8(r1)
882 ; LE-P10-O0-NEXT:    mtocrf 32, r12
883 ; LE-P10-O0-NEXT:    mtocrf 16, r12
884 ; LE-P10-O0-NEXT:    mtocrf 8, r12
885 ; LE-P10-O0-NEXT:    hashchk r0, -488(r1)
886 ; LE-P10-O0-NEXT:    mtlr r0
887 ; LE-P10-O0-NEXT:    blr
889 ; LE-P9-O0-LABEL: spill:
890 ; LE-P9-O0:       # %bb.0: # %entry
891 ; LE-P9-O0-NEXT:    mflr r0
892 ; LE-P9-O0-NEXT:    mfcr r12
893 ; LE-P9-O0-NEXT:    std r0, 16(r1)
894 ; LE-P9-O0-NEXT:    hashst r0, -488(r1)
895 ; LE-P9-O0-NEXT:    stw r12, 8(r1)
896 ; LE-P9-O0-NEXT:    stdu r1, -608(r1)
897 ; LE-P9-O0-NEXT:    std r14, 320(r1) # 8-byte Folded Spill
898 ; LE-P9-O0-NEXT:    std r15, 328(r1) # 8-byte Folded Spill
899 ; LE-P9-O0-NEXT:    std r16, 336(r1) # 8-byte Folded Spill
900 ; LE-P9-O0-NEXT:    std r17, 344(r1) # 8-byte Folded Spill
901 ; LE-P9-O0-NEXT:    std r18, 352(r1) # 8-byte Folded Spill
902 ; LE-P9-O0-NEXT:    std r19, 360(r1) # 8-byte Folded Spill
903 ; LE-P9-O0-NEXT:    std r20, 368(r1) # 8-byte Folded Spill
904 ; LE-P9-O0-NEXT:    std r21, 376(r1) # 8-byte Folded Spill
905 ; LE-P9-O0-NEXT:    std r22, 384(r1) # 8-byte Folded Spill
906 ; LE-P9-O0-NEXT:    std r23, 392(r1) # 8-byte Folded Spill
907 ; LE-P9-O0-NEXT:    std r24, 400(r1) # 8-byte Folded Spill
908 ; LE-P9-O0-NEXT:    std r25, 408(r1) # 8-byte Folded Spill
909 ; LE-P9-O0-NEXT:    std r26, 416(r1) # 8-byte Folded Spill
910 ; LE-P9-O0-NEXT:    std r27, 424(r1) # 8-byte Folded Spill
911 ; LE-P9-O0-NEXT:    std r28, 432(r1) # 8-byte Folded Spill
912 ; LE-P9-O0-NEXT:    std r29, 440(r1) # 8-byte Folded Spill
913 ; LE-P9-O0-NEXT:    std r30, 448(r1) # 8-byte Folded Spill
914 ; LE-P9-O0-NEXT:    std r31, 456(r1) # 8-byte Folded Spill
915 ; LE-P9-O0-NEXT:    stfd f14, 464(r1) # 8-byte Folded Spill
916 ; LE-P9-O0-NEXT:    stfd f15, 472(r1) # 8-byte Folded Spill
917 ; LE-P9-O0-NEXT:    stfd f16, 480(r1) # 8-byte Folded Spill
918 ; LE-P9-O0-NEXT:    stfd f17, 488(r1) # 8-byte Folded Spill
919 ; LE-P9-O0-NEXT:    stfd f18, 496(r1) # 8-byte Folded Spill
920 ; LE-P9-O0-NEXT:    stfd f19, 504(r1) # 8-byte Folded Spill
921 ; LE-P9-O0-NEXT:    stfd f20, 512(r1) # 8-byte Folded Spill
922 ; LE-P9-O0-NEXT:    stfd f21, 520(r1) # 8-byte Folded Spill
923 ; LE-P9-O0-NEXT:    stfd f22, 528(r1) # 8-byte Folded Spill
924 ; LE-P9-O0-NEXT:    stfd f23, 536(r1) # 8-byte Folded Spill
925 ; LE-P9-O0-NEXT:    stfd f24, 544(r1) # 8-byte Folded Spill
926 ; LE-P9-O0-NEXT:    stfd f25, 552(r1) # 8-byte Folded Spill
927 ; LE-P9-O0-NEXT:    stfd f26, 560(r1) # 8-byte Folded Spill
928 ; LE-P9-O0-NEXT:    stfd f27, 568(r1) # 8-byte Folded Spill
929 ; LE-P9-O0-NEXT:    stfd f28, 576(r1) # 8-byte Folded Spill
930 ; LE-P9-O0-NEXT:    stfd f29, 584(r1) # 8-byte Folded Spill
931 ; LE-P9-O0-NEXT:    stfd f30, 592(r1) # 8-byte Folded Spill
932 ; LE-P9-O0-NEXT:    stfd f31, 600(r1) # 8-byte Folded Spill
933 ; LE-P9-O0-NEXT:    stxv v20, 128(r1) # 16-byte Folded Spill
934 ; LE-P9-O0-NEXT:    stxv v21, 144(r1) # 16-byte Folded Spill
935 ; LE-P9-O0-NEXT:    stxv v22, 160(r1) # 16-byte Folded Spill
936 ; LE-P9-O0-NEXT:    stxv v23, 176(r1) # 16-byte Folded Spill
937 ; LE-P9-O0-NEXT:    stxv v24, 192(r1) # 16-byte Folded Spill
938 ; LE-P9-O0-NEXT:    stxv v25, 208(r1) # 16-byte Folded Spill
939 ; LE-P9-O0-NEXT:    stxv v26, 224(r1) # 16-byte Folded Spill
940 ; LE-P9-O0-NEXT:    stxv v27, 240(r1) # 16-byte Folded Spill
941 ; LE-P9-O0-NEXT:    stxv v28, 256(r1) # 16-byte Folded Spill
942 ; LE-P9-O0-NEXT:    stxv v29, 272(r1) # 16-byte Folded Spill
943 ; LE-P9-O0-NEXT:    stxv v30, 288(r1) # 16-byte Folded Spill
944 ; LE-P9-O0-NEXT:    stxv v31, 304(r1) # 16-byte Folded Spill
945 ; LE-P9-O0-NEXT:    std r3, 104(r1) # 8-byte Folded Spill
946 ; LE-P9-O0-NEXT:    lwz r3, 12(r3)
947 ; LE-P9-O0-NEXT:    stw r3, 116(r1)
948 ; LE-P9-O0-NEXT:    #APP
949 ; LE-P9-O0-NEXT:    nop
950 ; LE-P9-O0-NEXT:    #NO_APP
951 ; LE-P9-O0-NEXT:    addi r3, r1, 116
952 ; LE-P9-O0-NEXT:    bl callee2
953 ; LE-P9-O0-NEXT:    nop
954 ; LE-P9-O0-NEXT:    mr r4, r3
955 ; LE-P9-O0-NEXT:    ld r3, 104(r1) # 8-byte Folded Reload
956 ; LE-P9-O0-NEXT:    lwz r3, 16(r3)
957 ; LE-P9-O0-NEXT:    add r3, r3, r4
958 ; LE-P9-O0-NEXT:    clrldi r3, r3, 32
959 ; LE-P9-O0-NEXT:    lxv v31, 304(r1) # 16-byte Folded Reload
960 ; LE-P9-O0-NEXT:    lxv v30, 288(r1) # 16-byte Folded Reload
961 ; LE-P9-O0-NEXT:    lxv v29, 272(r1) # 16-byte Folded Reload
962 ; LE-P9-O0-NEXT:    lxv v28, 256(r1) # 16-byte Folded Reload
963 ; LE-P9-O0-NEXT:    lxv v27, 240(r1) # 16-byte Folded Reload
964 ; LE-P9-O0-NEXT:    lxv v26, 224(r1) # 16-byte Folded Reload
965 ; LE-P9-O0-NEXT:    lxv v25, 208(r1) # 16-byte Folded Reload
966 ; LE-P9-O0-NEXT:    lxv v24, 192(r1) # 16-byte Folded Reload
967 ; LE-P9-O0-NEXT:    lxv v23, 176(r1) # 16-byte Folded Reload
968 ; LE-P9-O0-NEXT:    lxv v22, 160(r1) # 16-byte Folded Reload
969 ; LE-P9-O0-NEXT:    lxv v21, 144(r1) # 16-byte Folded Reload
970 ; LE-P9-O0-NEXT:    lxv v20, 128(r1) # 16-byte Folded Reload
971 ; LE-P9-O0-NEXT:    lfd f31, 600(r1) # 8-byte Folded Reload
972 ; LE-P9-O0-NEXT:    lfd f30, 592(r1) # 8-byte Folded Reload
973 ; LE-P9-O0-NEXT:    lfd f29, 584(r1) # 8-byte Folded Reload
974 ; LE-P9-O0-NEXT:    lfd f28, 576(r1) # 8-byte Folded Reload
975 ; LE-P9-O0-NEXT:    lfd f27, 568(r1) # 8-byte Folded Reload
976 ; LE-P9-O0-NEXT:    lfd f26, 560(r1) # 8-byte Folded Reload
977 ; LE-P9-O0-NEXT:    lfd f25, 552(r1) # 8-byte Folded Reload
978 ; LE-P9-O0-NEXT:    lfd f24, 544(r1) # 8-byte Folded Reload
979 ; LE-P9-O0-NEXT:    lfd f23, 536(r1) # 8-byte Folded Reload
980 ; LE-P9-O0-NEXT:    lfd f22, 528(r1) # 8-byte Folded Reload
981 ; LE-P9-O0-NEXT:    lfd f21, 520(r1) # 8-byte Folded Reload
982 ; LE-P9-O0-NEXT:    lfd f20, 512(r1) # 8-byte Folded Reload
983 ; LE-P9-O0-NEXT:    lfd f19, 504(r1) # 8-byte Folded Reload
984 ; LE-P9-O0-NEXT:    lfd f18, 496(r1) # 8-byte Folded Reload
985 ; LE-P9-O0-NEXT:    lfd f17, 488(r1) # 8-byte Folded Reload
986 ; LE-P9-O0-NEXT:    lfd f16, 480(r1) # 8-byte Folded Reload
987 ; LE-P9-O0-NEXT:    lfd f15, 472(r1) # 8-byte Folded Reload
988 ; LE-P9-O0-NEXT:    lfd f14, 464(r1) # 8-byte Folded Reload
989 ; LE-P9-O0-NEXT:    ld r31, 456(r1) # 8-byte Folded Reload
990 ; LE-P9-O0-NEXT:    ld r30, 448(r1) # 8-byte Folded Reload
991 ; LE-P9-O0-NEXT:    ld r29, 440(r1) # 8-byte Folded Reload
992 ; LE-P9-O0-NEXT:    ld r28, 432(r1) # 8-byte Folded Reload
993 ; LE-P9-O0-NEXT:    ld r27, 424(r1) # 8-byte Folded Reload
994 ; LE-P9-O0-NEXT:    ld r26, 416(r1) # 8-byte Folded Reload
995 ; LE-P9-O0-NEXT:    ld r25, 408(r1) # 8-byte Folded Reload
996 ; LE-P9-O0-NEXT:    ld r24, 400(r1) # 8-byte Folded Reload
997 ; LE-P9-O0-NEXT:    ld r23, 392(r1) # 8-byte Folded Reload
998 ; LE-P9-O0-NEXT:    ld r22, 384(r1) # 8-byte Folded Reload
999 ; LE-P9-O0-NEXT:    ld r21, 376(r1) # 8-byte Folded Reload
1000 ; LE-P9-O0-NEXT:    ld r20, 368(r1) # 8-byte Folded Reload
1001 ; LE-P9-O0-NEXT:    ld r19, 360(r1) # 8-byte Folded Reload
1002 ; LE-P9-O0-NEXT:    ld r18, 352(r1) # 8-byte Folded Reload
1003 ; LE-P9-O0-NEXT:    ld r17, 344(r1) # 8-byte Folded Reload
1004 ; LE-P9-O0-NEXT:    ld r16, 336(r1) # 8-byte Folded Reload
1005 ; LE-P9-O0-NEXT:    ld r15, 328(r1) # 8-byte Folded Reload
1006 ; LE-P9-O0-NEXT:    ld r14, 320(r1) # 8-byte Folded Reload
1007 ; LE-P9-O0-NEXT:    addi r1, r1, 608
1008 ; LE-P9-O0-NEXT:    ld r0, 16(r1)
1009 ; LE-P9-O0-NEXT:    lwz r12, 8(r1)
1010 ; LE-P9-O0-NEXT:    mtocrf 32, r12
1011 ; LE-P9-O0-NEXT:    mtocrf 16, r12
1012 ; LE-P9-O0-NEXT:    mtocrf 8, r12
1013 ; LE-P9-O0-NEXT:    hashchk r0, -488(r1)
1014 ; LE-P9-O0-NEXT:    mtlr r0
1015 ; LE-P9-O0-NEXT:    blr
1017 ; LE-P8-O0-LABEL: spill:
1018 ; LE-P8-O0:       # %bb.0: # %entry
1019 ; LE-P8-O0-NEXT:    mflr r0
1020 ; LE-P8-O0-NEXT:    mfcr r12
1021 ; LE-P8-O0-NEXT:    std r0, 16(r1)
1022 ; LE-P8-O0-NEXT:    hashst r0, -488(r1)
1023 ; LE-P8-O0-NEXT:    stw r12, 8(r1)
1024 ; LE-P8-O0-NEXT:    stdu r1, -608(r1)
1025 ; LE-P8-O0-NEXT:    std r14, 320(r1) # 8-byte Folded Spill
1026 ; LE-P8-O0-NEXT:    std r15, 328(r1) # 8-byte Folded Spill
1027 ; LE-P8-O0-NEXT:    std r16, 336(r1) # 8-byte Folded Spill
1028 ; LE-P8-O0-NEXT:    std r17, 344(r1) # 8-byte Folded Spill
1029 ; LE-P8-O0-NEXT:    std r18, 352(r1) # 8-byte Folded Spill
1030 ; LE-P8-O0-NEXT:    std r19, 360(r1) # 8-byte Folded Spill
1031 ; LE-P8-O0-NEXT:    std r20, 368(r1) # 8-byte Folded Spill
1032 ; LE-P8-O0-NEXT:    std r21, 376(r1) # 8-byte Folded Spill
1033 ; LE-P8-O0-NEXT:    std r22, 384(r1) # 8-byte Folded Spill
1034 ; LE-P8-O0-NEXT:    std r23, 392(r1) # 8-byte Folded Spill
1035 ; LE-P8-O0-NEXT:    std r24, 400(r1) # 8-byte Folded Spill
1036 ; LE-P8-O0-NEXT:    std r25, 408(r1) # 8-byte Folded Spill
1037 ; LE-P8-O0-NEXT:    std r26, 416(r1) # 8-byte Folded Spill
1038 ; LE-P8-O0-NEXT:    std r27, 424(r1) # 8-byte Folded Spill
1039 ; LE-P8-O0-NEXT:    std r28, 432(r1) # 8-byte Folded Spill
1040 ; LE-P8-O0-NEXT:    std r29, 440(r1) # 8-byte Folded Spill
1041 ; LE-P8-O0-NEXT:    std r30, 448(r1) # 8-byte Folded Spill
1042 ; LE-P8-O0-NEXT:    std r31, 456(r1) # 8-byte Folded Spill
1043 ; LE-P8-O0-NEXT:    stfd f14, 464(r1) # 8-byte Folded Spill
1044 ; LE-P8-O0-NEXT:    stfd f15, 472(r1) # 8-byte Folded Spill
1045 ; LE-P8-O0-NEXT:    stfd f16, 480(r1) # 8-byte Folded Spill
1046 ; LE-P8-O0-NEXT:    stfd f17, 488(r1) # 8-byte Folded Spill
1047 ; LE-P8-O0-NEXT:    stfd f18, 496(r1) # 8-byte Folded Spill
1048 ; LE-P8-O0-NEXT:    stfd f19, 504(r1) # 8-byte Folded Spill
1049 ; LE-P8-O0-NEXT:    stfd f20, 512(r1) # 8-byte Folded Spill
1050 ; LE-P8-O0-NEXT:    stfd f21, 520(r1) # 8-byte Folded Spill
1051 ; LE-P8-O0-NEXT:    stfd f22, 528(r1) # 8-byte Folded Spill
1052 ; LE-P8-O0-NEXT:    stfd f23, 536(r1) # 8-byte Folded Spill
1053 ; LE-P8-O0-NEXT:    stfd f24, 544(r1) # 8-byte Folded Spill
1054 ; LE-P8-O0-NEXT:    stfd f25, 552(r1) # 8-byte Folded Spill
1055 ; LE-P8-O0-NEXT:    stfd f26, 560(r1) # 8-byte Folded Spill
1056 ; LE-P8-O0-NEXT:    stfd f27, 568(r1) # 8-byte Folded Spill
1057 ; LE-P8-O0-NEXT:    stfd f28, 576(r1) # 8-byte Folded Spill
1058 ; LE-P8-O0-NEXT:    stfd f29, 584(r1) # 8-byte Folded Spill
1059 ; LE-P8-O0-NEXT:    stfd f30, 592(r1) # 8-byte Folded Spill
1060 ; LE-P8-O0-NEXT:    stfd f31, 600(r1) # 8-byte Folded Spill
1061 ; LE-P8-O0-NEXT:    li r4, 128
1062 ; LE-P8-O0-NEXT:    stxvd2x v20, r1, r4 # 16-byte Folded Spill
1063 ; LE-P8-O0-NEXT:    li r4, 144
1064 ; LE-P8-O0-NEXT:    stxvd2x v21, r1, r4 # 16-byte Folded Spill
1065 ; LE-P8-O0-NEXT:    li r4, 160
1066 ; LE-P8-O0-NEXT:    stxvd2x v22, r1, r4 # 16-byte Folded Spill
1067 ; LE-P8-O0-NEXT:    li r4, 176
1068 ; LE-P8-O0-NEXT:    stxvd2x v23, r1, r4 # 16-byte Folded Spill
1069 ; LE-P8-O0-NEXT:    li r4, 192
1070 ; LE-P8-O0-NEXT:    stxvd2x v24, r1, r4 # 16-byte Folded Spill
1071 ; LE-P8-O0-NEXT:    li r4, 208
1072 ; LE-P8-O0-NEXT:    stxvd2x v25, r1, r4 # 16-byte Folded Spill
1073 ; LE-P8-O0-NEXT:    li r4, 224
1074 ; LE-P8-O0-NEXT:    stxvd2x v26, r1, r4 # 16-byte Folded Spill
1075 ; LE-P8-O0-NEXT:    li r4, 240
1076 ; LE-P8-O0-NEXT:    stxvd2x v27, r1, r4 # 16-byte Folded Spill
1077 ; LE-P8-O0-NEXT:    li r4, 256
1078 ; LE-P8-O0-NEXT:    stxvd2x v28, r1, r4 # 16-byte Folded Spill
1079 ; LE-P8-O0-NEXT:    li r4, 272
1080 ; LE-P8-O0-NEXT:    stxvd2x v29, r1, r4 # 16-byte Folded Spill
1081 ; LE-P8-O0-NEXT:    li r4, 288
1082 ; LE-P8-O0-NEXT:    stxvd2x v30, r1, r4 # 16-byte Folded Spill
1083 ; LE-P8-O0-NEXT:    li r4, 304
1084 ; LE-P8-O0-NEXT:    stxvd2x v31, r1, r4 # 16-byte Folded Spill
1085 ; LE-P8-O0-NEXT:    std r3, 104(r1) # 8-byte Folded Spill
1086 ; LE-P8-O0-NEXT:    lwz r3, 12(r3)
1087 ; LE-P8-O0-NEXT:    stw r3, 116(r1)
1088 ; LE-P8-O0-NEXT:    #APP
1089 ; LE-P8-O0-NEXT:    nop
1090 ; LE-P8-O0-NEXT:    #NO_APP
1091 ; LE-P8-O0-NEXT:    addi r3, r1, 116
1092 ; LE-P8-O0-NEXT:    bl callee2
1093 ; LE-P8-O0-NEXT:    nop
1094 ; LE-P8-O0-NEXT:    mr r4, r3
1095 ; LE-P8-O0-NEXT:    ld r3, 104(r1) # 8-byte Folded Reload
1096 ; LE-P8-O0-NEXT:    lwz r3, 16(r3)
1097 ; LE-P8-O0-NEXT:    add r3, r3, r4
1098 ; LE-P8-O0-NEXT:    clrldi r3, r3, 32
1099 ; LE-P8-O0-NEXT:    li r4, 304
1100 ; LE-P8-O0-NEXT:    lxvd2x v31, r1, r4 # 16-byte Folded Reload
1101 ; LE-P8-O0-NEXT:    li r4, 288
1102 ; LE-P8-O0-NEXT:    lxvd2x v30, r1, r4 # 16-byte Folded Reload
1103 ; LE-P8-O0-NEXT:    li r4, 272
1104 ; LE-P8-O0-NEXT:    lxvd2x v29, r1, r4 # 16-byte Folded Reload
1105 ; LE-P8-O0-NEXT:    li r4, 256
1106 ; LE-P8-O0-NEXT:    lxvd2x v28, r1, r4 # 16-byte Folded Reload
1107 ; LE-P8-O0-NEXT:    li r4, 240
1108 ; LE-P8-O0-NEXT:    lxvd2x v27, r1, r4 # 16-byte Folded Reload
1109 ; LE-P8-O0-NEXT:    li r4, 224
1110 ; LE-P8-O0-NEXT:    lxvd2x v26, r1, r4 # 16-byte Folded Reload
1111 ; LE-P8-O0-NEXT:    li r4, 208
1112 ; LE-P8-O0-NEXT:    lxvd2x v25, r1, r4 # 16-byte Folded Reload
1113 ; LE-P8-O0-NEXT:    li r4, 192
1114 ; LE-P8-O0-NEXT:    lxvd2x v24, r1, r4 # 16-byte Folded Reload
1115 ; LE-P8-O0-NEXT:    li r4, 176
1116 ; LE-P8-O0-NEXT:    lxvd2x v23, r1, r4 # 16-byte Folded Reload
1117 ; LE-P8-O0-NEXT:    li r4, 160
1118 ; LE-P8-O0-NEXT:    lxvd2x v22, r1, r4 # 16-byte Folded Reload
1119 ; LE-P8-O0-NEXT:    li r4, 144
1120 ; LE-P8-O0-NEXT:    lxvd2x v21, r1, r4 # 16-byte Folded Reload
1121 ; LE-P8-O0-NEXT:    li r4, 128
1122 ; LE-P8-O0-NEXT:    lxvd2x v20, r1, r4 # 16-byte Folded Reload
1123 ; LE-P8-O0-NEXT:    lfd f31, 600(r1) # 8-byte Folded Reload
1124 ; LE-P8-O0-NEXT:    lfd f30, 592(r1) # 8-byte Folded Reload
1125 ; LE-P8-O0-NEXT:    lfd f29, 584(r1) # 8-byte Folded Reload
1126 ; LE-P8-O0-NEXT:    lfd f28, 576(r1) # 8-byte Folded Reload
1127 ; LE-P8-O0-NEXT:    lfd f27, 568(r1) # 8-byte Folded Reload
1128 ; LE-P8-O0-NEXT:    lfd f26, 560(r1) # 8-byte Folded Reload
1129 ; LE-P8-O0-NEXT:    lfd f25, 552(r1) # 8-byte Folded Reload
1130 ; LE-P8-O0-NEXT:    lfd f24, 544(r1) # 8-byte Folded Reload
1131 ; LE-P8-O0-NEXT:    lfd f23, 536(r1) # 8-byte Folded Reload
1132 ; LE-P8-O0-NEXT:    lfd f22, 528(r1) # 8-byte Folded Reload
1133 ; LE-P8-O0-NEXT:    lfd f21, 520(r1) # 8-byte Folded Reload
1134 ; LE-P8-O0-NEXT:    lfd f20, 512(r1) # 8-byte Folded Reload
1135 ; LE-P8-O0-NEXT:    lfd f19, 504(r1) # 8-byte Folded Reload
1136 ; LE-P8-O0-NEXT:    lfd f18, 496(r1) # 8-byte Folded Reload
1137 ; LE-P8-O0-NEXT:    lfd f17, 488(r1) # 8-byte Folded Reload
1138 ; LE-P8-O0-NEXT:    lfd f16, 480(r1) # 8-byte Folded Reload
1139 ; LE-P8-O0-NEXT:    lfd f15, 472(r1) # 8-byte Folded Reload
1140 ; LE-P8-O0-NEXT:    lfd f14, 464(r1) # 8-byte Folded Reload
1141 ; LE-P8-O0-NEXT:    ld r31, 456(r1) # 8-byte Folded Reload
1142 ; LE-P8-O0-NEXT:    ld r30, 448(r1) # 8-byte Folded Reload
1143 ; LE-P8-O0-NEXT:    ld r29, 440(r1) # 8-byte Folded Reload
1144 ; LE-P8-O0-NEXT:    ld r28, 432(r1) # 8-byte Folded Reload
1145 ; LE-P8-O0-NEXT:    ld r27, 424(r1) # 8-byte Folded Reload
1146 ; LE-P8-O0-NEXT:    ld r26, 416(r1) # 8-byte Folded Reload
1147 ; LE-P8-O0-NEXT:    ld r25, 408(r1) # 8-byte Folded Reload
1148 ; LE-P8-O0-NEXT:    ld r24, 400(r1) # 8-byte Folded Reload
1149 ; LE-P8-O0-NEXT:    ld r23, 392(r1) # 8-byte Folded Reload
1150 ; LE-P8-O0-NEXT:    ld r22, 384(r1) # 8-byte Folded Reload
1151 ; LE-P8-O0-NEXT:    ld r21, 376(r1) # 8-byte Folded Reload
1152 ; LE-P8-O0-NEXT:    ld r20, 368(r1) # 8-byte Folded Reload
1153 ; LE-P8-O0-NEXT:    ld r19, 360(r1) # 8-byte Folded Reload
1154 ; LE-P8-O0-NEXT:    ld r18, 352(r1) # 8-byte Folded Reload
1155 ; LE-P8-O0-NEXT:    ld r17, 344(r1) # 8-byte Folded Reload
1156 ; LE-P8-O0-NEXT:    ld r16, 336(r1) # 8-byte Folded Reload
1157 ; LE-P8-O0-NEXT:    ld r15, 328(r1) # 8-byte Folded Reload
1158 ; LE-P8-O0-NEXT:    ld r14, 320(r1) # 8-byte Folded Reload
1159 ; LE-P8-O0-NEXT:    addi r1, r1, 608
1160 ; LE-P8-O0-NEXT:    ld r0, 16(r1)
1161 ; LE-P8-O0-NEXT:    lwz r12, 8(r1)
1162 ; LE-P8-O0-NEXT:    mtocrf 32, r12
1163 ; LE-P8-O0-NEXT:    mtocrf 16, r12
1164 ; LE-P8-O0-NEXT:    mtocrf 8, r12
1165 ; LE-P8-O0-NEXT:    hashchk r0, -488(r1)
1166 ; LE-P8-O0-NEXT:    mtlr r0
1167 ; LE-P8-O0-NEXT:    blr
1169 ; BE-P10-LABEL: spill:
1170 ; BE-P10:       # %bb.0: # %entry
1171 ; BE-P10-NEXT:    mflr r0
1172 ; BE-P10-NEXT:    mfcr r12
1173 ; BE-P10-NEXT:    std r0, 16(r1)
1174 ; BE-P10-NEXT:    hashst r0, -488(r1)
1175 ; BE-P10-NEXT:    stw r12, 8(r1)
1176 ; BE-P10-NEXT:    stdu r1, -624(r1)
1177 ; BE-P10-NEXT:    lwz r4, 12(r3)
1178 ; BE-P10-NEXT:    std r14, 336(r1) # 8-byte Folded Spill
1179 ; BE-P10-NEXT:    std r15, 344(r1) # 8-byte Folded Spill
1180 ; BE-P10-NEXT:    stxv v20, 144(r1) # 16-byte Folded Spill
1181 ; BE-P10-NEXT:    stxv v21, 160(r1) # 16-byte Folded Spill
1182 ; BE-P10-NEXT:    stxv v22, 176(r1) # 16-byte Folded Spill
1183 ; BE-P10-NEXT:    std r16, 352(r1) # 8-byte Folded Spill
1184 ; BE-P10-NEXT:    std r17, 360(r1) # 8-byte Folded Spill
1185 ; BE-P10-NEXT:    stxv v23, 192(r1) # 16-byte Folded Spill
1186 ; BE-P10-NEXT:    std r18, 368(r1) # 8-byte Folded Spill
1187 ; BE-P10-NEXT:    std r19, 376(r1) # 8-byte Folded Spill
1188 ; BE-P10-NEXT:    stxv v24, 208(r1) # 16-byte Folded Spill
1189 ; BE-P10-NEXT:    stxv v25, 224(r1) # 16-byte Folded Spill
1190 ; BE-P10-NEXT:    std r20, 384(r1) # 8-byte Folded Spill
1191 ; BE-P10-NEXT:    std r21, 392(r1) # 8-byte Folded Spill
1192 ; BE-P10-NEXT:    stxv v26, 240(r1) # 16-byte Folded Spill
1193 ; BE-P10-NEXT:    std r22, 400(r1) # 8-byte Folded Spill
1194 ; BE-P10-NEXT:    std r23, 408(r1) # 8-byte Folded Spill
1195 ; BE-P10-NEXT:    stxv v27, 256(r1) # 16-byte Folded Spill
1196 ; BE-P10-NEXT:    stxv v28, 272(r1) # 16-byte Folded Spill
1197 ; BE-P10-NEXT:    std r24, 416(r1) # 8-byte Folded Spill
1198 ; BE-P10-NEXT:    std r25, 424(r1) # 8-byte Folded Spill
1199 ; BE-P10-NEXT:    stxv v29, 288(r1) # 16-byte Folded Spill
1200 ; BE-P10-NEXT:    std r26, 432(r1) # 8-byte Folded Spill
1201 ; BE-P10-NEXT:    std r27, 440(r1) # 8-byte Folded Spill
1202 ; BE-P10-NEXT:    stxv v30, 304(r1) # 16-byte Folded Spill
1203 ; BE-P10-NEXT:    stxv v31, 320(r1) # 16-byte Folded Spill
1204 ; BE-P10-NEXT:    std r28, 448(r1) # 8-byte Folded Spill
1205 ; BE-P10-NEXT:    std r29, 456(r1) # 8-byte Folded Spill
1206 ; BE-P10-NEXT:    std r30, 464(r1) # 8-byte Folded Spill
1207 ; BE-P10-NEXT:    std r31, 472(r1) # 8-byte Folded Spill
1208 ; BE-P10-NEXT:    stfd f14, 480(r1) # 8-byte Folded Spill
1209 ; BE-P10-NEXT:    stfd f15, 488(r1) # 8-byte Folded Spill
1210 ; BE-P10-NEXT:    stfd f16, 496(r1) # 8-byte Folded Spill
1211 ; BE-P10-NEXT:    stfd f17, 504(r1) # 8-byte Folded Spill
1212 ; BE-P10-NEXT:    stfd f18, 512(r1) # 8-byte Folded Spill
1213 ; BE-P10-NEXT:    stfd f19, 520(r1) # 8-byte Folded Spill
1214 ; BE-P10-NEXT:    stfd f20, 528(r1) # 8-byte Folded Spill
1215 ; BE-P10-NEXT:    stfd f21, 536(r1) # 8-byte Folded Spill
1216 ; BE-P10-NEXT:    stfd f22, 544(r1) # 8-byte Folded Spill
1217 ; BE-P10-NEXT:    stfd f23, 552(r1) # 8-byte Folded Spill
1218 ; BE-P10-NEXT:    stfd f24, 560(r1) # 8-byte Folded Spill
1219 ; BE-P10-NEXT:    stfd f25, 568(r1) # 8-byte Folded Spill
1220 ; BE-P10-NEXT:    stfd f26, 576(r1) # 8-byte Folded Spill
1221 ; BE-P10-NEXT:    stfd f27, 584(r1) # 8-byte Folded Spill
1222 ; BE-P10-NEXT:    stfd f28, 592(r1) # 8-byte Folded Spill
1223 ; BE-P10-NEXT:    stfd f29, 600(r1) # 8-byte Folded Spill
1224 ; BE-P10-NEXT:    stfd f30, 608(r1) # 8-byte Folded Spill
1225 ; BE-P10-NEXT:    stfd f31, 616(r1) # 8-byte Folded Spill
1226 ; BE-P10-NEXT:    std r3, 120(r1) # 8-byte Folded Spill
1227 ; BE-P10-NEXT:    stw r4, 132(r1)
1228 ; BE-P10-NEXT:    #APP
1229 ; BE-P10-NEXT:    nop
1230 ; BE-P10-NEXT:    #NO_APP
1231 ; BE-P10-NEXT:    addi r3, r1, 132
1232 ; BE-P10-NEXT:    bl callee2
1233 ; BE-P10-NEXT:    nop
1234 ; BE-P10-NEXT:    ld r4, 120(r1) # 8-byte Folded Reload
1235 ; BE-P10-NEXT:    lxv v31, 320(r1) # 16-byte Folded Reload
1236 ; BE-P10-NEXT:    lxv v30, 304(r1) # 16-byte Folded Reload
1237 ; BE-P10-NEXT:    lxv v29, 288(r1) # 16-byte Folded Reload
1238 ; BE-P10-NEXT:    lxv v28, 272(r1) # 16-byte Folded Reload
1239 ; BE-P10-NEXT:    lxv v27, 256(r1) # 16-byte Folded Reload
1240 ; BE-P10-NEXT:    lxv v26, 240(r1) # 16-byte Folded Reload
1241 ; BE-P10-NEXT:    lxv v25, 224(r1) # 16-byte Folded Reload
1242 ; BE-P10-NEXT:    lxv v24, 208(r1) # 16-byte Folded Reload
1243 ; BE-P10-NEXT:    lxv v23, 192(r1) # 16-byte Folded Reload
1244 ; BE-P10-NEXT:    lxv v22, 176(r1) # 16-byte Folded Reload
1245 ; BE-P10-NEXT:    lxv v21, 160(r1) # 16-byte Folded Reload
1246 ; BE-P10-NEXT:    lxv v20, 144(r1) # 16-byte Folded Reload
1247 ; BE-P10-NEXT:    lfd f31, 616(r1) # 8-byte Folded Reload
1248 ; BE-P10-NEXT:    lfd f30, 608(r1) # 8-byte Folded Reload
1249 ; BE-P10-NEXT:    lfd f29, 600(r1) # 8-byte Folded Reload
1250 ; BE-P10-NEXT:    lfd f28, 592(r1) # 8-byte Folded Reload
1251 ; BE-P10-NEXT:    lfd f27, 584(r1) # 8-byte Folded Reload
1252 ; BE-P10-NEXT:    ld r31, 472(r1) # 8-byte Folded Reload
1253 ; BE-P10-NEXT:    ld r30, 464(r1) # 8-byte Folded Reload
1254 ; BE-P10-NEXT:    ld r29, 456(r1) # 8-byte Folded Reload
1255 ; BE-P10-NEXT:    lfd f26, 576(r1) # 8-byte Folded Reload
1256 ; BE-P10-NEXT:    ld r28, 448(r1) # 8-byte Folded Reload
1257 ; BE-P10-NEXT:    ld r27, 440(r1) # 8-byte Folded Reload
1258 ; BE-P10-NEXT:    ld r26, 432(r1) # 8-byte Folded Reload
1259 ; BE-P10-NEXT:    lfd f25, 568(r1) # 8-byte Folded Reload
1260 ; BE-P10-NEXT:    ld r25, 424(r1) # 8-byte Folded Reload
1261 ; BE-P10-NEXT:    ld r24, 416(r1) # 8-byte Folded Reload
1262 ; BE-P10-NEXT:    ld r23, 408(r1) # 8-byte Folded Reload
1263 ; BE-P10-NEXT:    lfd f24, 560(r1) # 8-byte Folded Reload
1264 ; BE-P10-NEXT:    ld r22, 400(r1) # 8-byte Folded Reload
1265 ; BE-P10-NEXT:    ld r21, 392(r1) # 8-byte Folded Reload
1266 ; BE-P10-NEXT:    lwz r4, 16(r4)
1267 ; BE-P10-NEXT:    add r3, r4, r3
1268 ; BE-P10-NEXT:    lfd f23, 552(r1) # 8-byte Folded Reload
1269 ; BE-P10-NEXT:    lfd f22, 544(r1) # 8-byte Folded Reload
1270 ; BE-P10-NEXT:    ld r20, 384(r1) # 8-byte Folded Reload
1271 ; BE-P10-NEXT:    ld r19, 376(r1) # 8-byte Folded Reload
1272 ; BE-P10-NEXT:    ld r18, 368(r1) # 8-byte Folded Reload
1273 ; BE-P10-NEXT:    ld r17, 360(r1) # 8-byte Folded Reload
1274 ; BE-P10-NEXT:    ld r16, 352(r1) # 8-byte Folded Reload
1275 ; BE-P10-NEXT:    ld r15, 344(r1) # 8-byte Folded Reload
1276 ; BE-P10-NEXT:    ld r14, 336(r1) # 8-byte Folded Reload
1277 ; BE-P10-NEXT:    lfd f21, 536(r1) # 8-byte Folded Reload
1278 ; BE-P10-NEXT:    lfd f20, 528(r1) # 8-byte Folded Reload
1279 ; BE-P10-NEXT:    lfd f19, 520(r1) # 8-byte Folded Reload
1280 ; BE-P10-NEXT:    lfd f18, 512(r1) # 8-byte Folded Reload
1281 ; BE-P10-NEXT:    lfd f17, 504(r1) # 8-byte Folded Reload
1282 ; BE-P10-NEXT:    lfd f16, 496(r1) # 8-byte Folded Reload
1283 ; BE-P10-NEXT:    lfd f15, 488(r1) # 8-byte Folded Reload
1284 ; BE-P10-NEXT:    lfd f14, 480(r1) # 8-byte Folded Reload
1285 ; BE-P10-NEXT:    clrldi r3, r3, 32
1286 ; BE-P10-NEXT:    addi r1, r1, 624
1287 ; BE-P10-NEXT:    ld r0, 16(r1)
1288 ; BE-P10-NEXT:    lwz r12, 8(r1)
1289 ; BE-P10-NEXT:    mtlr r0
1290 ; BE-P10-NEXT:    hashchk r0, -488(r1)
1291 ; BE-P10-NEXT:    mtocrf 32, r12
1292 ; BE-P10-NEXT:    mtocrf 16, r12
1293 ; BE-P10-NEXT:    mtocrf 8, r12
1294 ; BE-P10-NEXT:    blr
1296 ; BE-P9-LABEL: spill:
1297 ; BE-P9:       # %bb.0: # %entry
1298 ; BE-P9-NEXT:    mflr r0
1299 ; BE-P9-NEXT:    mfcr r12
1300 ; BE-P9-NEXT:    std r0, 16(r1)
1301 ; BE-P9-NEXT:    hashst r0, -488(r1)
1302 ; BE-P9-NEXT:    stw r12, 8(r1)
1303 ; BE-P9-NEXT:    stdu r1, -624(r1)
1304 ; BE-P9-NEXT:    lwz r4, 12(r3)
1305 ; BE-P9-NEXT:    std r14, 336(r1) # 8-byte Folded Spill
1306 ; BE-P9-NEXT:    std r15, 344(r1) # 8-byte Folded Spill
1307 ; BE-P9-NEXT:    stxv v20, 144(r1) # 16-byte Folded Spill
1308 ; BE-P9-NEXT:    stxv v21, 160(r1) # 16-byte Folded Spill
1309 ; BE-P9-NEXT:    stxv v22, 176(r1) # 16-byte Folded Spill
1310 ; BE-P9-NEXT:    std r16, 352(r1) # 8-byte Folded Spill
1311 ; BE-P9-NEXT:    std r17, 360(r1) # 8-byte Folded Spill
1312 ; BE-P9-NEXT:    stxv v23, 192(r1) # 16-byte Folded Spill
1313 ; BE-P9-NEXT:    std r18, 368(r1) # 8-byte Folded Spill
1314 ; BE-P9-NEXT:    stxv v24, 208(r1) # 16-byte Folded Spill
1315 ; BE-P9-NEXT:    std r19, 376(r1) # 8-byte Folded Spill
1316 ; BE-P9-NEXT:    stxv v25, 224(r1) # 16-byte Folded Spill
1317 ; BE-P9-NEXT:    std r20, 384(r1) # 8-byte Folded Spill
1318 ; BE-P9-NEXT:    std r21, 392(r1) # 8-byte Folded Spill
1319 ; BE-P9-NEXT:    stxv v26, 240(r1) # 16-byte Folded Spill
1320 ; BE-P9-NEXT:    std r22, 400(r1) # 8-byte Folded Spill
1321 ; BE-P9-NEXT:    stxv v27, 256(r1) # 16-byte Folded Spill
1322 ; BE-P9-NEXT:    std r23, 408(r1) # 8-byte Folded Spill
1323 ; BE-P9-NEXT:    stxv v28, 272(r1) # 16-byte Folded Spill
1324 ; BE-P9-NEXT:    std r24, 416(r1) # 8-byte Folded Spill
1325 ; BE-P9-NEXT:    std r25, 424(r1) # 8-byte Folded Spill
1326 ; BE-P9-NEXT:    stxv v29, 288(r1) # 16-byte Folded Spill
1327 ; BE-P9-NEXT:    std r26, 432(r1) # 8-byte Folded Spill
1328 ; BE-P9-NEXT:    stxv v30, 304(r1) # 16-byte Folded Spill
1329 ; BE-P9-NEXT:    std r27, 440(r1) # 8-byte Folded Spill
1330 ; BE-P9-NEXT:    stxv v31, 320(r1) # 16-byte Folded Spill
1331 ; BE-P9-NEXT:    std r28, 448(r1) # 8-byte Folded Spill
1332 ; BE-P9-NEXT:    std r29, 456(r1) # 8-byte Folded Spill
1333 ; BE-P9-NEXT:    std r30, 464(r1) # 8-byte Folded Spill
1334 ; BE-P9-NEXT:    std r31, 472(r1) # 8-byte Folded Spill
1335 ; BE-P9-NEXT:    stfd f14, 480(r1) # 8-byte Folded Spill
1336 ; BE-P9-NEXT:    stfd f15, 488(r1) # 8-byte Folded Spill
1337 ; BE-P9-NEXT:    stfd f16, 496(r1) # 8-byte Folded Spill
1338 ; BE-P9-NEXT:    stfd f17, 504(r1) # 8-byte Folded Spill
1339 ; BE-P9-NEXT:    stfd f18, 512(r1) # 8-byte Folded Spill
1340 ; BE-P9-NEXT:    stfd f19, 520(r1) # 8-byte Folded Spill
1341 ; BE-P9-NEXT:    stfd f20, 528(r1) # 8-byte Folded Spill
1342 ; BE-P9-NEXT:    stfd f21, 536(r1) # 8-byte Folded Spill
1343 ; BE-P9-NEXT:    stfd f22, 544(r1) # 8-byte Folded Spill
1344 ; BE-P9-NEXT:    stfd f23, 552(r1) # 8-byte Folded Spill
1345 ; BE-P9-NEXT:    stfd f24, 560(r1) # 8-byte Folded Spill
1346 ; BE-P9-NEXT:    stfd f25, 568(r1) # 8-byte Folded Spill
1347 ; BE-P9-NEXT:    stfd f26, 576(r1) # 8-byte Folded Spill
1348 ; BE-P9-NEXT:    stfd f27, 584(r1) # 8-byte Folded Spill
1349 ; BE-P9-NEXT:    stfd f28, 592(r1) # 8-byte Folded Spill
1350 ; BE-P9-NEXT:    stfd f29, 600(r1) # 8-byte Folded Spill
1351 ; BE-P9-NEXT:    stfd f30, 608(r1) # 8-byte Folded Spill
1352 ; BE-P9-NEXT:    stfd f31, 616(r1) # 8-byte Folded Spill
1353 ; BE-P9-NEXT:    std r3, 120(r1) # 8-byte Folded Spill
1354 ; BE-P9-NEXT:    stw r4, 132(r1)
1355 ; BE-P9-NEXT:    #APP
1356 ; BE-P9-NEXT:    nop
1357 ; BE-P9-NEXT:    #NO_APP
1358 ; BE-P9-NEXT:    addi r3, r1, 132
1359 ; BE-P9-NEXT:    bl callee2
1360 ; BE-P9-NEXT:    nop
1361 ; BE-P9-NEXT:    ld r4, 120(r1) # 8-byte Folded Reload
1362 ; BE-P9-NEXT:    lxv v31, 320(r1) # 16-byte Folded Reload
1363 ; BE-P9-NEXT:    lxv v30, 304(r1) # 16-byte Folded Reload
1364 ; BE-P9-NEXT:    lxv v29, 288(r1) # 16-byte Folded Reload
1365 ; BE-P9-NEXT:    lxv v28, 272(r1) # 16-byte Folded Reload
1366 ; BE-P9-NEXT:    lxv v27, 256(r1) # 16-byte Folded Reload
1367 ; BE-P9-NEXT:    lxv v26, 240(r1) # 16-byte Folded Reload
1368 ; BE-P9-NEXT:    lxv v25, 224(r1) # 16-byte Folded Reload
1369 ; BE-P9-NEXT:    lxv v24, 208(r1) # 16-byte Folded Reload
1370 ; BE-P9-NEXT:    lxv v23, 192(r1) # 16-byte Folded Reload
1371 ; BE-P9-NEXT:    lxv v22, 176(r1) # 16-byte Folded Reload
1372 ; BE-P9-NEXT:    lxv v21, 160(r1) # 16-byte Folded Reload
1373 ; BE-P9-NEXT:    lxv v20, 144(r1) # 16-byte Folded Reload
1374 ; BE-P9-NEXT:    lfd f31, 616(r1) # 8-byte Folded Reload
1375 ; BE-P9-NEXT:    lfd f30, 608(r1) # 8-byte Folded Reload
1376 ; BE-P9-NEXT:    lfd f29, 600(r1) # 8-byte Folded Reload
1377 ; BE-P9-NEXT:    lfd f28, 592(r1) # 8-byte Folded Reload
1378 ; BE-P9-NEXT:    lfd f27, 584(r1) # 8-byte Folded Reload
1379 ; BE-P9-NEXT:    ld r31, 472(r1) # 8-byte Folded Reload
1380 ; BE-P9-NEXT:    ld r30, 464(r1) # 8-byte Folded Reload
1381 ; BE-P9-NEXT:    ld r29, 456(r1) # 8-byte Folded Reload
1382 ; BE-P9-NEXT:    lfd f26, 576(r1) # 8-byte Folded Reload
1383 ; BE-P9-NEXT:    ld r28, 448(r1) # 8-byte Folded Reload
1384 ; BE-P9-NEXT:    ld r27, 440(r1) # 8-byte Folded Reload
1385 ; BE-P9-NEXT:    ld r26, 432(r1) # 8-byte Folded Reload
1386 ; BE-P9-NEXT:    lfd f25, 568(r1) # 8-byte Folded Reload
1387 ; BE-P9-NEXT:    ld r25, 424(r1) # 8-byte Folded Reload
1388 ; BE-P9-NEXT:    ld r24, 416(r1) # 8-byte Folded Reload
1389 ; BE-P9-NEXT:    ld r23, 408(r1) # 8-byte Folded Reload
1390 ; BE-P9-NEXT:    lfd f24, 560(r1) # 8-byte Folded Reload
1391 ; BE-P9-NEXT:    ld r22, 400(r1) # 8-byte Folded Reload
1392 ; BE-P9-NEXT:    ld r21, 392(r1) # 8-byte Folded Reload
1393 ; BE-P9-NEXT:    lwz r4, 16(r4)
1394 ; BE-P9-NEXT:    add r3, r4, r3
1395 ; BE-P9-NEXT:    lfd f23, 552(r1) # 8-byte Folded Reload
1396 ; BE-P9-NEXT:    lfd f22, 544(r1) # 8-byte Folded Reload
1397 ; BE-P9-NEXT:    ld r20, 384(r1) # 8-byte Folded Reload
1398 ; BE-P9-NEXT:    ld r19, 376(r1) # 8-byte Folded Reload
1399 ; BE-P9-NEXT:    ld r18, 368(r1) # 8-byte Folded Reload
1400 ; BE-P9-NEXT:    ld r17, 360(r1) # 8-byte Folded Reload
1401 ; BE-P9-NEXT:    ld r16, 352(r1) # 8-byte Folded Reload
1402 ; BE-P9-NEXT:    ld r15, 344(r1) # 8-byte Folded Reload
1403 ; BE-P9-NEXT:    ld r14, 336(r1) # 8-byte Folded Reload
1404 ; BE-P9-NEXT:    lfd f21, 536(r1) # 8-byte Folded Reload
1405 ; BE-P9-NEXT:    lfd f20, 528(r1) # 8-byte Folded Reload
1406 ; BE-P9-NEXT:    lfd f19, 520(r1) # 8-byte Folded Reload
1407 ; BE-P9-NEXT:    lfd f18, 512(r1) # 8-byte Folded Reload
1408 ; BE-P9-NEXT:    lfd f17, 504(r1) # 8-byte Folded Reload
1409 ; BE-P9-NEXT:    lfd f16, 496(r1) # 8-byte Folded Reload
1410 ; BE-P9-NEXT:    lfd f15, 488(r1) # 8-byte Folded Reload
1411 ; BE-P9-NEXT:    lfd f14, 480(r1) # 8-byte Folded Reload
1412 ; BE-P9-NEXT:    clrldi r3, r3, 32
1413 ; BE-P9-NEXT:    addi r1, r1, 624
1414 ; BE-P9-NEXT:    ld r0, 16(r1)
1415 ; BE-P9-NEXT:    lwz r12, 8(r1)
1416 ; BE-P9-NEXT:    mtlr r0
1417 ; BE-P9-NEXT:    hashchk r0, -488(r1)
1418 ; BE-P9-NEXT:    mtocrf 32, r12
1419 ; BE-P9-NEXT:    mtocrf 16, r12
1420 ; BE-P9-NEXT:    mtocrf 8, r12
1421 ; BE-P9-NEXT:    blr
1423 ; BE-P8-LABEL: spill:
1424 ; BE-P8:       # %bb.0: # %entry
1425 ; BE-P8-NEXT:    mfcr r12
1426 ; BE-P8-NEXT:    mflr r0
1427 ; BE-P8-NEXT:    std r0, 16(r1)
1428 ; BE-P8-NEXT:    hashst r0, -488(r1)
1429 ; BE-P8-NEXT:    stw r12, 8(r1)
1430 ; BE-P8-NEXT:    stdu r1, -624(r1)
1431 ; BE-P8-NEXT:    li r4, 144
1432 ; BE-P8-NEXT:    std r14, 336(r1) # 8-byte Folded Spill
1433 ; BE-P8-NEXT:    std r15, 344(r1) # 8-byte Folded Spill
1434 ; BE-P8-NEXT:    std r16, 352(r1) # 8-byte Folded Spill
1435 ; BE-P8-NEXT:    std r17, 360(r1) # 8-byte Folded Spill
1436 ; BE-P8-NEXT:    stxvd2x v20, r1, r4 # 16-byte Folded Spill
1437 ; BE-P8-NEXT:    li r4, 160
1438 ; BE-P8-NEXT:    std r18, 368(r1) # 8-byte Folded Spill
1439 ; BE-P8-NEXT:    std r19, 376(r1) # 8-byte Folded Spill
1440 ; BE-P8-NEXT:    std r20, 384(r1) # 8-byte Folded Spill
1441 ; BE-P8-NEXT:    std r21, 392(r1) # 8-byte Folded Spill
1442 ; BE-P8-NEXT:    stxvd2x v21, r1, r4 # 16-byte Folded Spill
1443 ; BE-P8-NEXT:    li r4, 176
1444 ; BE-P8-NEXT:    std r22, 400(r1) # 8-byte Folded Spill
1445 ; BE-P8-NEXT:    std r23, 408(r1) # 8-byte Folded Spill
1446 ; BE-P8-NEXT:    std r24, 416(r1) # 8-byte Folded Spill
1447 ; BE-P8-NEXT:    std r25, 424(r1) # 8-byte Folded Spill
1448 ; BE-P8-NEXT:    std r26, 432(r1) # 8-byte Folded Spill
1449 ; BE-P8-NEXT:    std r27, 440(r1) # 8-byte Folded Spill
1450 ; BE-P8-NEXT:    std r28, 448(r1) # 8-byte Folded Spill
1451 ; BE-P8-NEXT:    std r29, 456(r1) # 8-byte Folded Spill
1452 ; BE-P8-NEXT:    std r30, 464(r1) # 8-byte Folded Spill
1453 ; BE-P8-NEXT:    std r31, 472(r1) # 8-byte Folded Spill
1454 ; BE-P8-NEXT:    std r3, 120(r1) # 8-byte Folded Spill
1455 ; BE-P8-NEXT:    stxvd2x v22, r1, r4 # 16-byte Folded Spill
1456 ; BE-P8-NEXT:    li r4, 192
1457 ; BE-P8-NEXT:    stxvd2x v23, r1, r4 # 16-byte Folded Spill
1458 ; BE-P8-NEXT:    li r4, 208
1459 ; BE-P8-NEXT:    stfd f14, 480(r1) # 8-byte Folded Spill
1460 ; BE-P8-NEXT:    stxvd2x v24, r1, r4 # 16-byte Folded Spill
1461 ; BE-P8-NEXT:    li r4, 224
1462 ; BE-P8-NEXT:    stfd f15, 488(r1) # 8-byte Folded Spill
1463 ; BE-P8-NEXT:    stxvd2x v25, r1, r4 # 16-byte Folded Spill
1464 ; BE-P8-NEXT:    li r4, 240
1465 ; BE-P8-NEXT:    stfd f16, 496(r1) # 8-byte Folded Spill
1466 ; BE-P8-NEXT:    stxvd2x v26, r1, r4 # 16-byte Folded Spill
1467 ; BE-P8-NEXT:    li r4, 256
1468 ; BE-P8-NEXT:    stfd f17, 504(r1) # 8-byte Folded Spill
1469 ; BE-P8-NEXT:    stxvd2x v27, r1, r4 # 16-byte Folded Spill
1470 ; BE-P8-NEXT:    li r4, 272
1471 ; BE-P8-NEXT:    stfd f18, 512(r1) # 8-byte Folded Spill
1472 ; BE-P8-NEXT:    stxvd2x v28, r1, r4 # 16-byte Folded Spill
1473 ; BE-P8-NEXT:    li r4, 288
1474 ; BE-P8-NEXT:    stfd f19, 520(r1) # 8-byte Folded Spill
1475 ; BE-P8-NEXT:    stxvd2x v29, r1, r4 # 16-byte Folded Spill
1476 ; BE-P8-NEXT:    li r4, 304
1477 ; BE-P8-NEXT:    stfd f20, 528(r1) # 8-byte Folded Spill
1478 ; BE-P8-NEXT:    stxvd2x v30, r1, r4 # 16-byte Folded Spill
1479 ; BE-P8-NEXT:    li r4, 320
1480 ; BE-P8-NEXT:    stfd f21, 536(r1) # 8-byte Folded Spill
1481 ; BE-P8-NEXT:    stxvd2x v31, r1, r4 # 16-byte Folded Spill
1482 ; BE-P8-NEXT:    lwz r4, 12(r3)
1483 ; BE-P8-NEXT:    stfd f22, 544(r1) # 8-byte Folded Spill
1484 ; BE-P8-NEXT:    stfd f23, 552(r1) # 8-byte Folded Spill
1485 ; BE-P8-NEXT:    stfd f24, 560(r1) # 8-byte Folded Spill
1486 ; BE-P8-NEXT:    stfd f25, 568(r1) # 8-byte Folded Spill
1487 ; BE-P8-NEXT:    stfd f26, 576(r1) # 8-byte Folded Spill
1488 ; BE-P8-NEXT:    stfd f27, 584(r1) # 8-byte Folded Spill
1489 ; BE-P8-NEXT:    stfd f28, 592(r1) # 8-byte Folded Spill
1490 ; BE-P8-NEXT:    stfd f29, 600(r1) # 8-byte Folded Spill
1491 ; BE-P8-NEXT:    stfd f30, 608(r1) # 8-byte Folded Spill
1492 ; BE-P8-NEXT:    stfd f31, 616(r1) # 8-byte Folded Spill
1493 ; BE-P8-NEXT:    stw r4, 132(r1)
1494 ; BE-P8-NEXT:    #APP
1495 ; BE-P8-NEXT:    nop
1496 ; BE-P8-NEXT:    #NO_APP
1497 ; BE-P8-NEXT:    addi r3, r1, 132
1498 ; BE-P8-NEXT:    bl callee2
1499 ; BE-P8-NEXT:    nop
1500 ; BE-P8-NEXT:    ld r4, 120(r1) # 8-byte Folded Reload
1501 ; BE-P8-NEXT:    lfd f31, 616(r1) # 8-byte Folded Reload
1502 ; BE-P8-NEXT:    lfd f30, 608(r1) # 8-byte Folded Reload
1503 ; BE-P8-NEXT:    ld r31, 472(r1) # 8-byte Folded Reload
1504 ; BE-P8-NEXT:    lfd f29, 600(r1) # 8-byte Folded Reload
1505 ; BE-P8-NEXT:    lfd f28, 592(r1) # 8-byte Folded Reload
1506 ; BE-P8-NEXT:    ld r30, 464(r1) # 8-byte Folded Reload
1507 ; BE-P8-NEXT:    ld r29, 456(r1) # 8-byte Folded Reload
1508 ; BE-P8-NEXT:    lwz r4, 16(r4)
1509 ; BE-P8-NEXT:    lfd f27, 584(r1) # 8-byte Folded Reload
1510 ; BE-P8-NEXT:    lfd f26, 576(r1) # 8-byte Folded Reload
1511 ; BE-P8-NEXT:    ld r28, 448(r1) # 8-byte Folded Reload
1512 ; BE-P8-NEXT:    lfd f25, 568(r1) # 8-byte Folded Reload
1513 ; BE-P8-NEXT:    lfd f24, 560(r1) # 8-byte Folded Reload
1514 ; BE-P8-NEXT:    ld r27, 440(r1) # 8-byte Folded Reload
1515 ; BE-P8-NEXT:    ld r26, 432(r1) # 8-byte Folded Reload
1516 ; BE-P8-NEXT:    add r3, r4, r3
1517 ; BE-P8-NEXT:    li r4, 320
1518 ; BE-P8-NEXT:    lfd f23, 552(r1) # 8-byte Folded Reload
1519 ; BE-P8-NEXT:    lfd f22, 544(r1) # 8-byte Folded Reload
1520 ; BE-P8-NEXT:    ld r25, 424(r1) # 8-byte Folded Reload
1521 ; BE-P8-NEXT:    ld r24, 416(r1) # 8-byte Folded Reload
1522 ; BE-P8-NEXT:    lxvd2x v31, r1, r4 # 16-byte Folded Reload
1523 ; BE-P8-NEXT:    li r4, 304
1524 ; BE-P8-NEXT:    lfd f21, 536(r1) # 8-byte Folded Reload
1525 ; BE-P8-NEXT:    ld r23, 408(r1) # 8-byte Folded Reload
1526 ; BE-P8-NEXT:    ld r22, 400(r1) # 8-byte Folded Reload
1527 ; BE-P8-NEXT:    clrldi r3, r3, 32
1528 ; BE-P8-NEXT:    lxvd2x v30, r1, r4 # 16-byte Folded Reload
1529 ; BE-P8-NEXT:    li r4, 288
1530 ; BE-P8-NEXT:    lfd f20, 528(r1) # 8-byte Folded Reload
1531 ; BE-P8-NEXT:    ld r21, 392(r1) # 8-byte Folded Reload
1532 ; BE-P8-NEXT:    ld r20, 384(r1) # 8-byte Folded Reload
1533 ; BE-P8-NEXT:    lxvd2x v29, r1, r4 # 16-byte Folded Reload
1534 ; BE-P8-NEXT:    li r4, 272
1535 ; BE-P8-NEXT:    lfd f19, 520(r1) # 8-byte Folded Reload
1536 ; BE-P8-NEXT:    ld r19, 376(r1) # 8-byte Folded Reload
1537 ; BE-P8-NEXT:    ld r18, 368(r1) # 8-byte Folded Reload
1538 ; BE-P8-NEXT:    lxvd2x v28, r1, r4 # 16-byte Folded Reload
1539 ; BE-P8-NEXT:    li r4, 256
1540 ; BE-P8-NEXT:    lfd f18, 512(r1) # 8-byte Folded Reload
1541 ; BE-P8-NEXT:    ld r17, 360(r1) # 8-byte Folded Reload
1542 ; BE-P8-NEXT:    ld r16, 352(r1) # 8-byte Folded Reload
1543 ; BE-P8-NEXT:    lxvd2x v27, r1, r4 # 16-byte Folded Reload
1544 ; BE-P8-NEXT:    li r4, 240
1545 ; BE-P8-NEXT:    lfd f17, 504(r1) # 8-byte Folded Reload
1546 ; BE-P8-NEXT:    ld r15, 344(r1) # 8-byte Folded Reload
1547 ; BE-P8-NEXT:    ld r14, 336(r1) # 8-byte Folded Reload
1548 ; BE-P8-NEXT:    lxvd2x v26, r1, r4 # 16-byte Folded Reload
1549 ; BE-P8-NEXT:    li r4, 224
1550 ; BE-P8-NEXT:    lfd f16, 496(r1) # 8-byte Folded Reload
1551 ; BE-P8-NEXT:    lxvd2x v25, r1, r4 # 16-byte Folded Reload
1552 ; BE-P8-NEXT:    li r4, 208
1553 ; BE-P8-NEXT:    lfd f15, 488(r1) # 8-byte Folded Reload
1554 ; BE-P8-NEXT:    lxvd2x v24, r1, r4 # 16-byte Folded Reload
1555 ; BE-P8-NEXT:    li r4, 192
1556 ; BE-P8-NEXT:    lfd f14, 480(r1) # 8-byte Folded Reload
1557 ; BE-P8-NEXT:    lxvd2x v23, r1, r4 # 16-byte Folded Reload
1558 ; BE-P8-NEXT:    li r4, 176
1559 ; BE-P8-NEXT:    lxvd2x v22, r1, r4 # 16-byte Folded Reload
1560 ; BE-P8-NEXT:    li r4, 160
1561 ; BE-P8-NEXT:    lxvd2x v21, r1, r4 # 16-byte Folded Reload
1562 ; BE-P8-NEXT:    li r4, 144
1563 ; BE-P8-NEXT:    lxvd2x v20, r1, r4 # 16-byte Folded Reload
1564 ; BE-P8-NEXT:    addi r1, r1, 624
1565 ; BE-P8-NEXT:    ld r0, 16(r1)
1566 ; BE-P8-NEXT:    lwz r12, 8(r1)
1567 ; BE-P8-NEXT:    mtocrf 32, r12
1568 ; BE-P8-NEXT:    hashchk r0, -488(r1)
1569 ; BE-P8-NEXT:    mtlr r0
1570 ; BE-P8-NEXT:    mtocrf 16, r12
1571 ; BE-P8-NEXT:    mtocrf 8, r12
1572 ; BE-P8-NEXT:    blr
1574 ; LE-P10-PRIV-LABEL: spill:
1575 ; LE-P10-PRIV:       # %bb.0: # %entry
1576 ; LE-P10-PRIV-NEXT:    mflr r0
1577 ; LE-P10-PRIV-NEXT:    mfcr r12
1578 ; LE-P10-PRIV-NEXT:    std r0, 16(r1)
1579 ; LE-P10-PRIV-NEXT:    hashstp r0, -488(r1)
1580 ; LE-P10-PRIV-NEXT:    stw r12, 8(r1)
1581 ; LE-P10-PRIV-NEXT:    stdu r1, -544(r1)
1582 ; LE-P10-PRIV-NEXT:    lwz r4, 12(r3)
1583 ; LE-P10-PRIV-NEXT:    std r14, 256(r1) # 8-byte Folded Spill
1584 ; LE-P10-PRIV-NEXT:    std r15, 264(r1) # 8-byte Folded Spill
1585 ; LE-P10-PRIV-NEXT:    stxv v20, 64(r1) # 16-byte Folded Spill
1586 ; LE-P10-PRIV-NEXT:    stxv v21, 80(r1) # 16-byte Folded Spill
1587 ; LE-P10-PRIV-NEXT:    stxv v22, 96(r1) # 16-byte Folded Spill
1588 ; LE-P10-PRIV-NEXT:    std r16, 272(r1) # 8-byte Folded Spill
1589 ; LE-P10-PRIV-NEXT:    std r17, 280(r1) # 8-byte Folded Spill
1590 ; LE-P10-PRIV-NEXT:    stxv v23, 112(r1) # 16-byte Folded Spill
1591 ; LE-P10-PRIV-NEXT:    std r18, 288(r1) # 8-byte Folded Spill
1592 ; LE-P10-PRIV-NEXT:    std r19, 296(r1) # 8-byte Folded Spill
1593 ; LE-P10-PRIV-NEXT:    stxv v24, 128(r1) # 16-byte Folded Spill
1594 ; LE-P10-PRIV-NEXT:    stxv v25, 144(r1) # 16-byte Folded Spill
1595 ; LE-P10-PRIV-NEXT:    std r20, 304(r1) # 8-byte Folded Spill
1596 ; LE-P10-PRIV-NEXT:    std r21, 312(r1) # 8-byte Folded Spill
1597 ; LE-P10-PRIV-NEXT:    stxv v26, 160(r1) # 16-byte Folded Spill
1598 ; LE-P10-PRIV-NEXT:    std r22, 320(r1) # 8-byte Folded Spill
1599 ; LE-P10-PRIV-NEXT:    std r23, 328(r1) # 8-byte Folded Spill
1600 ; LE-P10-PRIV-NEXT:    stxv v27, 176(r1) # 16-byte Folded Spill
1601 ; LE-P10-PRIV-NEXT:    stxv v28, 192(r1) # 16-byte Folded Spill
1602 ; LE-P10-PRIV-NEXT:    std r24, 336(r1) # 8-byte Folded Spill
1603 ; LE-P10-PRIV-NEXT:    std r25, 344(r1) # 8-byte Folded Spill
1604 ; LE-P10-PRIV-NEXT:    stxv v29, 208(r1) # 16-byte Folded Spill
1605 ; LE-P10-PRIV-NEXT:    std r26, 352(r1) # 8-byte Folded Spill
1606 ; LE-P10-PRIV-NEXT:    std r27, 360(r1) # 8-byte Folded Spill
1607 ; LE-P10-PRIV-NEXT:    stxv v30, 224(r1) # 16-byte Folded Spill
1608 ; LE-P10-PRIV-NEXT:    stxv v31, 240(r1) # 16-byte Folded Spill
1609 ; LE-P10-PRIV-NEXT:    std r28, 368(r1) # 8-byte Folded Spill
1610 ; LE-P10-PRIV-NEXT:    std r29, 376(r1) # 8-byte Folded Spill
1611 ; LE-P10-PRIV-NEXT:    std r30, 384(r1) # 8-byte Folded Spill
1612 ; LE-P10-PRIV-NEXT:    std r31, 392(r1) # 8-byte Folded Spill
1613 ; LE-P10-PRIV-NEXT:    stfd f14, 400(r1) # 8-byte Folded Spill
1614 ; LE-P10-PRIV-NEXT:    stfd f15, 408(r1) # 8-byte Folded Spill
1615 ; LE-P10-PRIV-NEXT:    stfd f16, 416(r1) # 8-byte Folded Spill
1616 ; LE-P10-PRIV-NEXT:    stfd f17, 424(r1) # 8-byte Folded Spill
1617 ; LE-P10-PRIV-NEXT:    stfd f18, 432(r1) # 8-byte Folded Spill
1618 ; LE-P10-PRIV-NEXT:    stfd f19, 440(r1) # 8-byte Folded Spill
1619 ; LE-P10-PRIV-NEXT:    stfd f20, 448(r1) # 8-byte Folded Spill
1620 ; LE-P10-PRIV-NEXT:    stfd f21, 456(r1) # 8-byte Folded Spill
1621 ; LE-P10-PRIV-NEXT:    stfd f22, 464(r1) # 8-byte Folded Spill
1622 ; LE-P10-PRIV-NEXT:    stfd f23, 472(r1) # 8-byte Folded Spill
1623 ; LE-P10-PRIV-NEXT:    stfd f24, 480(r1) # 8-byte Folded Spill
1624 ; LE-P10-PRIV-NEXT:    stfd f25, 488(r1) # 8-byte Folded Spill
1625 ; LE-P10-PRIV-NEXT:    stfd f26, 496(r1) # 8-byte Folded Spill
1626 ; LE-P10-PRIV-NEXT:    stfd f27, 504(r1) # 8-byte Folded Spill
1627 ; LE-P10-PRIV-NEXT:    stfd f28, 512(r1) # 8-byte Folded Spill
1628 ; LE-P10-PRIV-NEXT:    stfd f29, 520(r1) # 8-byte Folded Spill
1629 ; LE-P10-PRIV-NEXT:    stfd f30, 528(r1) # 8-byte Folded Spill
1630 ; LE-P10-PRIV-NEXT:    stfd f31, 536(r1) # 8-byte Folded Spill
1631 ; LE-P10-PRIV-NEXT:    std r3, 40(r1) # 8-byte Folded Spill
1632 ; LE-P10-PRIV-NEXT:    stw r4, 52(r1)
1633 ; LE-P10-PRIV-NEXT:    #APP
1634 ; LE-P10-PRIV-NEXT:    nop
1635 ; LE-P10-PRIV-NEXT:    #NO_APP
1636 ; LE-P10-PRIV-NEXT:    addi r3, r1, 52
1637 ; LE-P10-PRIV-NEXT:    bl callee2@notoc
1638 ; LE-P10-PRIV-NEXT:    ld r4, 40(r1) # 8-byte Folded Reload
1639 ; LE-P10-PRIV-NEXT:    lxv v31, 240(r1) # 16-byte Folded Reload
1640 ; LE-P10-PRIV-NEXT:    lxv v30, 224(r1) # 16-byte Folded Reload
1641 ; LE-P10-PRIV-NEXT:    lxv v29, 208(r1) # 16-byte Folded Reload
1642 ; LE-P10-PRIV-NEXT:    lxv v28, 192(r1) # 16-byte Folded Reload
1643 ; LE-P10-PRIV-NEXT:    lxv v27, 176(r1) # 16-byte Folded Reload
1644 ; LE-P10-PRIV-NEXT:    lxv v26, 160(r1) # 16-byte Folded Reload
1645 ; LE-P10-PRIV-NEXT:    lxv v25, 144(r1) # 16-byte Folded Reload
1646 ; LE-P10-PRIV-NEXT:    lxv v24, 128(r1) # 16-byte Folded Reload
1647 ; LE-P10-PRIV-NEXT:    lxv v23, 112(r1) # 16-byte Folded Reload
1648 ; LE-P10-PRIV-NEXT:    lxv v22, 96(r1) # 16-byte Folded Reload
1649 ; LE-P10-PRIV-NEXT:    lxv v21, 80(r1) # 16-byte Folded Reload
1650 ; LE-P10-PRIV-NEXT:    lxv v20, 64(r1) # 16-byte Folded Reload
1651 ; LE-P10-PRIV-NEXT:    lfd f31, 536(r1) # 8-byte Folded Reload
1652 ; LE-P10-PRIV-NEXT:    lfd f30, 528(r1) # 8-byte Folded Reload
1653 ; LE-P10-PRIV-NEXT:    lfd f29, 520(r1) # 8-byte Folded Reload
1654 ; LE-P10-PRIV-NEXT:    lfd f28, 512(r1) # 8-byte Folded Reload
1655 ; LE-P10-PRIV-NEXT:    lfd f27, 504(r1) # 8-byte Folded Reload
1656 ; LE-P10-PRIV-NEXT:    ld r31, 392(r1) # 8-byte Folded Reload
1657 ; LE-P10-PRIV-NEXT:    ld r30, 384(r1) # 8-byte Folded Reload
1658 ; LE-P10-PRIV-NEXT:    ld r29, 376(r1) # 8-byte Folded Reload
1659 ; LE-P10-PRIV-NEXT:    lfd f26, 496(r1) # 8-byte Folded Reload
1660 ; LE-P10-PRIV-NEXT:    ld r28, 368(r1) # 8-byte Folded Reload
1661 ; LE-P10-PRIV-NEXT:    ld r27, 360(r1) # 8-byte Folded Reload
1662 ; LE-P10-PRIV-NEXT:    ld r26, 352(r1) # 8-byte Folded Reload
1663 ; LE-P10-PRIV-NEXT:    lfd f25, 488(r1) # 8-byte Folded Reload
1664 ; LE-P10-PRIV-NEXT:    ld r25, 344(r1) # 8-byte Folded Reload
1665 ; LE-P10-PRIV-NEXT:    ld r24, 336(r1) # 8-byte Folded Reload
1666 ; LE-P10-PRIV-NEXT:    ld r23, 328(r1) # 8-byte Folded Reload
1667 ; LE-P10-PRIV-NEXT:    lfd f24, 480(r1) # 8-byte Folded Reload
1668 ; LE-P10-PRIV-NEXT:    ld r22, 320(r1) # 8-byte Folded Reload
1669 ; LE-P10-PRIV-NEXT:    ld r21, 312(r1) # 8-byte Folded Reload
1670 ; LE-P10-PRIV-NEXT:    lwz r4, 16(r4)
1671 ; LE-P10-PRIV-NEXT:    add r3, r4, r3
1672 ; LE-P10-PRIV-NEXT:    lfd f23, 472(r1) # 8-byte Folded Reload
1673 ; LE-P10-PRIV-NEXT:    lfd f22, 464(r1) # 8-byte Folded Reload
1674 ; LE-P10-PRIV-NEXT:    ld r20, 304(r1) # 8-byte Folded Reload
1675 ; LE-P10-PRIV-NEXT:    ld r19, 296(r1) # 8-byte Folded Reload
1676 ; LE-P10-PRIV-NEXT:    ld r18, 288(r1) # 8-byte Folded Reload
1677 ; LE-P10-PRIV-NEXT:    ld r17, 280(r1) # 8-byte Folded Reload
1678 ; LE-P10-PRIV-NEXT:    ld r16, 272(r1) # 8-byte Folded Reload
1679 ; LE-P10-PRIV-NEXT:    ld r15, 264(r1) # 8-byte Folded Reload
1680 ; LE-P10-PRIV-NEXT:    ld r14, 256(r1) # 8-byte Folded Reload
1681 ; LE-P10-PRIV-NEXT:    lfd f21, 456(r1) # 8-byte Folded Reload
1682 ; LE-P10-PRIV-NEXT:    lfd f20, 448(r1) # 8-byte Folded Reload
1683 ; LE-P10-PRIV-NEXT:    lfd f19, 440(r1) # 8-byte Folded Reload
1684 ; LE-P10-PRIV-NEXT:    lfd f18, 432(r1) # 8-byte Folded Reload
1685 ; LE-P10-PRIV-NEXT:    lfd f17, 424(r1) # 8-byte Folded Reload
1686 ; LE-P10-PRIV-NEXT:    lfd f16, 416(r1) # 8-byte Folded Reload
1687 ; LE-P10-PRIV-NEXT:    lfd f15, 408(r1) # 8-byte Folded Reload
1688 ; LE-P10-PRIV-NEXT:    lfd f14, 400(r1) # 8-byte Folded Reload
1689 ; LE-P10-PRIV-NEXT:    clrldi r3, r3, 32
1690 ; LE-P10-PRIV-NEXT:    addi r1, r1, 544
1691 ; LE-P10-PRIV-NEXT:    ld r0, 16(r1)
1692 ; LE-P10-PRIV-NEXT:    lwz r12, 8(r1)
1693 ; LE-P10-PRIV-NEXT:    mtlr r0
1694 ; LE-P10-PRIV-NEXT:    hashchkp r0, -488(r1)
1695 ; LE-P10-PRIV-NEXT:    mtocrf 32, r12
1696 ; LE-P10-PRIV-NEXT:    mtocrf 16, r12
1697 ; LE-P10-PRIV-NEXT:    mtocrf 8, r12
1698 ; LE-P10-PRIV-NEXT:    blr
1700 ; LE-P9-PRIV-LABEL: spill:
1701 ; LE-P9-PRIV:       # %bb.0: # %entry
1702 ; LE-P9-PRIV-NEXT:    mflr r0
1703 ; LE-P9-PRIV-NEXT:    mfcr r12
1704 ; LE-P9-PRIV-NEXT:    std r0, 16(r1)
1705 ; LE-P9-PRIV-NEXT:    hashstp r0, -488(r1)
1706 ; LE-P9-PRIV-NEXT:    stw r12, 8(r1)
1707 ; LE-P9-PRIV-NEXT:    stdu r1, -544(r1)
1708 ; LE-P9-PRIV-NEXT:    lwz r4, 12(r3)
1709 ; LE-P9-PRIV-NEXT:    std r14, 256(r1) # 8-byte Folded Spill
1710 ; LE-P9-PRIV-NEXT:    std r15, 264(r1) # 8-byte Folded Spill
1711 ; LE-P9-PRIV-NEXT:    stxv v20, 64(r1) # 16-byte Folded Spill
1712 ; LE-P9-PRIV-NEXT:    stxv v21, 80(r1) # 16-byte Folded Spill
1713 ; LE-P9-PRIV-NEXT:    stxv v22, 96(r1) # 16-byte Folded Spill
1714 ; LE-P9-PRIV-NEXT:    std r16, 272(r1) # 8-byte Folded Spill
1715 ; LE-P9-PRIV-NEXT:    std r17, 280(r1) # 8-byte Folded Spill
1716 ; LE-P9-PRIV-NEXT:    stxv v23, 112(r1) # 16-byte Folded Spill
1717 ; LE-P9-PRIV-NEXT:    std r18, 288(r1) # 8-byte Folded Spill
1718 ; LE-P9-PRIV-NEXT:    stxv v24, 128(r1) # 16-byte Folded Spill
1719 ; LE-P9-PRIV-NEXT:    std r19, 296(r1) # 8-byte Folded Spill
1720 ; LE-P9-PRIV-NEXT:    stxv v25, 144(r1) # 16-byte Folded Spill
1721 ; LE-P9-PRIV-NEXT:    std r20, 304(r1) # 8-byte Folded Spill
1722 ; LE-P9-PRIV-NEXT:    std r21, 312(r1) # 8-byte Folded Spill
1723 ; LE-P9-PRIV-NEXT:    stxv v26, 160(r1) # 16-byte Folded Spill
1724 ; LE-P9-PRIV-NEXT:    std r22, 320(r1) # 8-byte Folded Spill
1725 ; LE-P9-PRIV-NEXT:    stxv v27, 176(r1) # 16-byte Folded Spill
1726 ; LE-P9-PRIV-NEXT:    std r23, 328(r1) # 8-byte Folded Spill
1727 ; LE-P9-PRIV-NEXT:    stxv v28, 192(r1) # 16-byte Folded Spill
1728 ; LE-P9-PRIV-NEXT:    std r24, 336(r1) # 8-byte Folded Spill
1729 ; LE-P9-PRIV-NEXT:    std r25, 344(r1) # 8-byte Folded Spill
1730 ; LE-P9-PRIV-NEXT:    stxv v29, 208(r1) # 16-byte Folded Spill
1731 ; LE-P9-PRIV-NEXT:    std r26, 352(r1) # 8-byte Folded Spill
1732 ; LE-P9-PRIV-NEXT:    stxv v30, 224(r1) # 16-byte Folded Spill
1733 ; LE-P9-PRIV-NEXT:    std r27, 360(r1) # 8-byte Folded Spill
1734 ; LE-P9-PRIV-NEXT:    stxv v31, 240(r1) # 16-byte Folded Spill
1735 ; LE-P9-PRIV-NEXT:    std r28, 368(r1) # 8-byte Folded Spill
1736 ; LE-P9-PRIV-NEXT:    std r29, 376(r1) # 8-byte Folded Spill
1737 ; LE-P9-PRIV-NEXT:    std r30, 384(r1) # 8-byte Folded Spill
1738 ; LE-P9-PRIV-NEXT:    std r31, 392(r1) # 8-byte Folded Spill
1739 ; LE-P9-PRIV-NEXT:    stfd f14, 400(r1) # 8-byte Folded Spill
1740 ; LE-P9-PRIV-NEXT:    stfd f15, 408(r1) # 8-byte Folded Spill
1741 ; LE-P9-PRIV-NEXT:    stfd f16, 416(r1) # 8-byte Folded Spill
1742 ; LE-P9-PRIV-NEXT:    stfd f17, 424(r1) # 8-byte Folded Spill
1743 ; LE-P9-PRIV-NEXT:    stfd f18, 432(r1) # 8-byte Folded Spill
1744 ; LE-P9-PRIV-NEXT:    stfd f19, 440(r1) # 8-byte Folded Spill
1745 ; LE-P9-PRIV-NEXT:    stfd f20, 448(r1) # 8-byte Folded Spill
1746 ; LE-P9-PRIV-NEXT:    stfd f21, 456(r1) # 8-byte Folded Spill
1747 ; LE-P9-PRIV-NEXT:    stfd f22, 464(r1) # 8-byte Folded Spill
1748 ; LE-P9-PRIV-NEXT:    stfd f23, 472(r1) # 8-byte Folded Spill
1749 ; LE-P9-PRIV-NEXT:    stfd f24, 480(r1) # 8-byte Folded Spill
1750 ; LE-P9-PRIV-NEXT:    stfd f25, 488(r1) # 8-byte Folded Spill
1751 ; LE-P9-PRIV-NEXT:    stfd f26, 496(r1) # 8-byte Folded Spill
1752 ; LE-P9-PRIV-NEXT:    stfd f27, 504(r1) # 8-byte Folded Spill
1753 ; LE-P9-PRIV-NEXT:    stfd f28, 512(r1) # 8-byte Folded Spill
1754 ; LE-P9-PRIV-NEXT:    stfd f29, 520(r1) # 8-byte Folded Spill
1755 ; LE-P9-PRIV-NEXT:    stfd f30, 528(r1) # 8-byte Folded Spill
1756 ; LE-P9-PRIV-NEXT:    stfd f31, 536(r1) # 8-byte Folded Spill
1757 ; LE-P9-PRIV-NEXT:    std r3, 40(r1) # 8-byte Folded Spill
1758 ; LE-P9-PRIV-NEXT:    stw r4, 52(r1)
1759 ; LE-P9-PRIV-NEXT:    #APP
1760 ; LE-P9-PRIV-NEXT:    nop
1761 ; LE-P9-PRIV-NEXT:    #NO_APP
1762 ; LE-P9-PRIV-NEXT:    addi r3, r1, 52
1763 ; LE-P9-PRIV-NEXT:    bl callee2
1764 ; LE-P9-PRIV-NEXT:    nop
1765 ; LE-P9-PRIV-NEXT:    ld r4, 40(r1) # 8-byte Folded Reload
1766 ; LE-P9-PRIV-NEXT:    lxv v31, 240(r1) # 16-byte Folded Reload
1767 ; LE-P9-PRIV-NEXT:    lxv v30, 224(r1) # 16-byte Folded Reload
1768 ; LE-P9-PRIV-NEXT:    lxv v29, 208(r1) # 16-byte Folded Reload
1769 ; LE-P9-PRIV-NEXT:    lxv v28, 192(r1) # 16-byte Folded Reload
1770 ; LE-P9-PRIV-NEXT:    lxv v27, 176(r1) # 16-byte Folded Reload
1771 ; LE-P9-PRIV-NEXT:    lxv v26, 160(r1) # 16-byte Folded Reload
1772 ; LE-P9-PRIV-NEXT:    lxv v25, 144(r1) # 16-byte Folded Reload
1773 ; LE-P9-PRIV-NEXT:    lxv v24, 128(r1) # 16-byte Folded Reload
1774 ; LE-P9-PRIV-NEXT:    lxv v23, 112(r1) # 16-byte Folded Reload
1775 ; LE-P9-PRIV-NEXT:    lxv v22, 96(r1) # 16-byte Folded Reload
1776 ; LE-P9-PRIV-NEXT:    lxv v21, 80(r1) # 16-byte Folded Reload
1777 ; LE-P9-PRIV-NEXT:    lxv v20, 64(r1) # 16-byte Folded Reload
1778 ; LE-P9-PRIV-NEXT:    lfd f31, 536(r1) # 8-byte Folded Reload
1779 ; LE-P9-PRIV-NEXT:    lfd f30, 528(r1) # 8-byte Folded Reload
1780 ; LE-P9-PRIV-NEXT:    lfd f29, 520(r1) # 8-byte Folded Reload
1781 ; LE-P9-PRIV-NEXT:    lfd f28, 512(r1) # 8-byte Folded Reload
1782 ; LE-P9-PRIV-NEXT:    lfd f27, 504(r1) # 8-byte Folded Reload
1783 ; LE-P9-PRIV-NEXT:    ld r31, 392(r1) # 8-byte Folded Reload
1784 ; LE-P9-PRIV-NEXT:    ld r30, 384(r1) # 8-byte Folded Reload
1785 ; LE-P9-PRIV-NEXT:    ld r29, 376(r1) # 8-byte Folded Reload
1786 ; LE-P9-PRIV-NEXT:    lfd f26, 496(r1) # 8-byte Folded Reload
1787 ; LE-P9-PRIV-NEXT:    ld r28, 368(r1) # 8-byte Folded Reload
1788 ; LE-P9-PRIV-NEXT:    ld r27, 360(r1) # 8-byte Folded Reload
1789 ; LE-P9-PRIV-NEXT:    ld r26, 352(r1) # 8-byte Folded Reload
1790 ; LE-P9-PRIV-NEXT:    lfd f25, 488(r1) # 8-byte Folded Reload
1791 ; LE-P9-PRIV-NEXT:    ld r25, 344(r1) # 8-byte Folded Reload
1792 ; LE-P9-PRIV-NEXT:    ld r24, 336(r1) # 8-byte Folded Reload
1793 ; LE-P9-PRIV-NEXT:    ld r23, 328(r1) # 8-byte Folded Reload
1794 ; LE-P9-PRIV-NEXT:    lfd f24, 480(r1) # 8-byte Folded Reload
1795 ; LE-P9-PRIV-NEXT:    ld r22, 320(r1) # 8-byte Folded Reload
1796 ; LE-P9-PRIV-NEXT:    ld r21, 312(r1) # 8-byte Folded Reload
1797 ; LE-P9-PRIV-NEXT:    lwz r4, 16(r4)
1798 ; LE-P9-PRIV-NEXT:    add r3, r4, r3
1799 ; LE-P9-PRIV-NEXT:    lfd f23, 472(r1) # 8-byte Folded Reload
1800 ; LE-P9-PRIV-NEXT:    lfd f22, 464(r1) # 8-byte Folded Reload
1801 ; LE-P9-PRIV-NEXT:    ld r20, 304(r1) # 8-byte Folded Reload
1802 ; LE-P9-PRIV-NEXT:    ld r19, 296(r1) # 8-byte Folded Reload
1803 ; LE-P9-PRIV-NEXT:    ld r18, 288(r1) # 8-byte Folded Reload
1804 ; LE-P9-PRIV-NEXT:    ld r17, 280(r1) # 8-byte Folded Reload
1805 ; LE-P9-PRIV-NEXT:    ld r16, 272(r1) # 8-byte Folded Reload
1806 ; LE-P9-PRIV-NEXT:    ld r15, 264(r1) # 8-byte Folded Reload
1807 ; LE-P9-PRIV-NEXT:    ld r14, 256(r1) # 8-byte Folded Reload
1808 ; LE-P9-PRIV-NEXT:    lfd f21, 456(r1) # 8-byte Folded Reload
1809 ; LE-P9-PRIV-NEXT:    lfd f20, 448(r1) # 8-byte Folded Reload
1810 ; LE-P9-PRIV-NEXT:    lfd f19, 440(r1) # 8-byte Folded Reload
1811 ; LE-P9-PRIV-NEXT:    lfd f18, 432(r1) # 8-byte Folded Reload
1812 ; LE-P9-PRIV-NEXT:    lfd f17, 424(r1) # 8-byte Folded Reload
1813 ; LE-P9-PRIV-NEXT:    lfd f16, 416(r1) # 8-byte Folded Reload
1814 ; LE-P9-PRIV-NEXT:    lfd f15, 408(r1) # 8-byte Folded Reload
1815 ; LE-P9-PRIV-NEXT:    lfd f14, 400(r1) # 8-byte Folded Reload
1816 ; LE-P9-PRIV-NEXT:    clrldi r3, r3, 32
1817 ; LE-P9-PRIV-NEXT:    addi r1, r1, 544
1818 ; LE-P9-PRIV-NEXT:    ld r0, 16(r1)
1819 ; LE-P9-PRIV-NEXT:    lwz r12, 8(r1)
1820 ; LE-P9-PRIV-NEXT:    mtlr r0
1821 ; LE-P9-PRIV-NEXT:    hashchkp r0, -488(r1)
1822 ; LE-P9-PRIV-NEXT:    mtocrf 32, r12
1823 ; LE-P9-PRIV-NEXT:    mtocrf 16, r12
1824 ; LE-P9-PRIV-NEXT:    mtocrf 8, r12
1825 ; LE-P9-PRIV-NEXT:    blr
1827 ; LE-P8-PRIV-LABEL: spill:
1828 ; LE-P8-PRIV:       # %bb.0: # %entry
1829 ; LE-P8-PRIV-NEXT:    mfcr r12
1830 ; LE-P8-PRIV-NEXT:    mflr r0
1831 ; LE-P8-PRIV-NEXT:    std r0, 16(r1)
1832 ; LE-P8-PRIV-NEXT:    hashstp r0, -488(r1)
1833 ; LE-P8-PRIV-NEXT:    stw r12, 8(r1)
1834 ; LE-P8-PRIV-NEXT:    stdu r1, -544(r1)
1835 ; LE-P8-PRIV-NEXT:    li r4, 64
1836 ; LE-P8-PRIV-NEXT:    std r14, 256(r1) # 8-byte Folded Spill
1837 ; LE-P8-PRIV-NEXT:    std r15, 264(r1) # 8-byte Folded Spill
1838 ; LE-P8-PRIV-NEXT:    std r16, 272(r1) # 8-byte Folded Spill
1839 ; LE-P8-PRIV-NEXT:    std r17, 280(r1) # 8-byte Folded Spill
1840 ; LE-P8-PRIV-NEXT:    stxvd2x v20, r1, r4 # 16-byte Folded Spill
1841 ; LE-P8-PRIV-NEXT:    li r4, 80
1842 ; LE-P8-PRIV-NEXT:    std r18, 288(r1) # 8-byte Folded Spill
1843 ; LE-P8-PRIV-NEXT:    std r19, 296(r1) # 8-byte Folded Spill
1844 ; LE-P8-PRIV-NEXT:    std r20, 304(r1) # 8-byte Folded Spill
1845 ; LE-P8-PRIV-NEXT:    std r21, 312(r1) # 8-byte Folded Spill
1846 ; LE-P8-PRIV-NEXT:    stxvd2x v21, r1, r4 # 16-byte Folded Spill
1847 ; LE-P8-PRIV-NEXT:    li r4, 96
1848 ; LE-P8-PRIV-NEXT:    std r22, 320(r1) # 8-byte Folded Spill
1849 ; LE-P8-PRIV-NEXT:    std r23, 328(r1) # 8-byte Folded Spill
1850 ; LE-P8-PRIV-NEXT:    std r24, 336(r1) # 8-byte Folded Spill
1851 ; LE-P8-PRIV-NEXT:    std r25, 344(r1) # 8-byte Folded Spill
1852 ; LE-P8-PRIV-NEXT:    std r26, 352(r1) # 8-byte Folded Spill
1853 ; LE-P8-PRIV-NEXT:    std r27, 360(r1) # 8-byte Folded Spill
1854 ; LE-P8-PRIV-NEXT:    std r28, 368(r1) # 8-byte Folded Spill
1855 ; LE-P8-PRIV-NEXT:    std r29, 376(r1) # 8-byte Folded Spill
1856 ; LE-P8-PRIV-NEXT:    std r30, 384(r1) # 8-byte Folded Spill
1857 ; LE-P8-PRIV-NEXT:    std r31, 392(r1) # 8-byte Folded Spill
1858 ; LE-P8-PRIV-NEXT:    std r3, 40(r1) # 8-byte Folded Spill
1859 ; LE-P8-PRIV-NEXT:    stxvd2x v22, r1, r4 # 16-byte Folded Spill
1860 ; LE-P8-PRIV-NEXT:    li r4, 112
1861 ; LE-P8-PRIV-NEXT:    stxvd2x v23, r1, r4 # 16-byte Folded Spill
1862 ; LE-P8-PRIV-NEXT:    li r4, 128
1863 ; LE-P8-PRIV-NEXT:    stfd f14, 400(r1) # 8-byte Folded Spill
1864 ; LE-P8-PRIV-NEXT:    stxvd2x v24, r1, r4 # 16-byte Folded Spill
1865 ; LE-P8-PRIV-NEXT:    li r4, 144
1866 ; LE-P8-PRIV-NEXT:    stfd f15, 408(r1) # 8-byte Folded Spill
1867 ; LE-P8-PRIV-NEXT:    stxvd2x v25, r1, r4 # 16-byte Folded Spill
1868 ; LE-P8-PRIV-NEXT:    li r4, 160
1869 ; LE-P8-PRIV-NEXT:    stfd f16, 416(r1) # 8-byte Folded Spill
1870 ; LE-P8-PRIV-NEXT:    stxvd2x v26, r1, r4 # 16-byte Folded Spill
1871 ; LE-P8-PRIV-NEXT:    li r4, 176
1872 ; LE-P8-PRIV-NEXT:    stfd f17, 424(r1) # 8-byte Folded Spill
1873 ; LE-P8-PRIV-NEXT:    stxvd2x v27, r1, r4 # 16-byte Folded Spill
1874 ; LE-P8-PRIV-NEXT:    li r4, 192
1875 ; LE-P8-PRIV-NEXT:    stfd f18, 432(r1) # 8-byte Folded Spill
1876 ; LE-P8-PRIV-NEXT:    stxvd2x v28, r1, r4 # 16-byte Folded Spill
1877 ; LE-P8-PRIV-NEXT:    li r4, 208
1878 ; LE-P8-PRIV-NEXT:    stfd f19, 440(r1) # 8-byte Folded Spill
1879 ; LE-P8-PRIV-NEXT:    stxvd2x v29, r1, r4 # 16-byte Folded Spill
1880 ; LE-P8-PRIV-NEXT:    li r4, 224
1881 ; LE-P8-PRIV-NEXT:    stfd f20, 448(r1) # 8-byte Folded Spill
1882 ; LE-P8-PRIV-NEXT:    stxvd2x v30, r1, r4 # 16-byte Folded Spill
1883 ; LE-P8-PRIV-NEXT:    li r4, 240
1884 ; LE-P8-PRIV-NEXT:    stfd f21, 456(r1) # 8-byte Folded Spill
1885 ; LE-P8-PRIV-NEXT:    stxvd2x v31, r1, r4 # 16-byte Folded Spill
1886 ; LE-P8-PRIV-NEXT:    lwz r4, 12(r3)
1887 ; LE-P8-PRIV-NEXT:    stfd f22, 464(r1) # 8-byte Folded Spill
1888 ; LE-P8-PRIV-NEXT:    stfd f23, 472(r1) # 8-byte Folded Spill
1889 ; LE-P8-PRIV-NEXT:    stfd f24, 480(r1) # 8-byte Folded Spill
1890 ; LE-P8-PRIV-NEXT:    stfd f25, 488(r1) # 8-byte Folded Spill
1891 ; LE-P8-PRIV-NEXT:    stfd f26, 496(r1) # 8-byte Folded Spill
1892 ; LE-P8-PRIV-NEXT:    stfd f27, 504(r1) # 8-byte Folded Spill
1893 ; LE-P8-PRIV-NEXT:    stfd f28, 512(r1) # 8-byte Folded Spill
1894 ; LE-P8-PRIV-NEXT:    stfd f29, 520(r1) # 8-byte Folded Spill
1895 ; LE-P8-PRIV-NEXT:    stfd f30, 528(r1) # 8-byte Folded Spill
1896 ; LE-P8-PRIV-NEXT:    stfd f31, 536(r1) # 8-byte Folded Spill
1897 ; LE-P8-PRIV-NEXT:    stw r4, 52(r1)
1898 ; LE-P8-PRIV-NEXT:    #APP
1899 ; LE-P8-PRIV-NEXT:    nop
1900 ; LE-P8-PRIV-NEXT:    #NO_APP
1901 ; LE-P8-PRIV-NEXT:    addi r3, r1, 52
1902 ; LE-P8-PRIV-NEXT:    bl callee2
1903 ; LE-P8-PRIV-NEXT:    nop
1904 ; LE-P8-PRIV-NEXT:    ld r4, 40(r1) # 8-byte Folded Reload
1905 ; LE-P8-PRIV-NEXT:    lfd f31, 536(r1) # 8-byte Folded Reload
1906 ; LE-P8-PRIV-NEXT:    lfd f30, 528(r1) # 8-byte Folded Reload
1907 ; LE-P8-PRIV-NEXT:    ld r31, 392(r1) # 8-byte Folded Reload
1908 ; LE-P8-PRIV-NEXT:    lfd f29, 520(r1) # 8-byte Folded Reload
1909 ; LE-P8-PRIV-NEXT:    lfd f28, 512(r1) # 8-byte Folded Reload
1910 ; LE-P8-PRIV-NEXT:    ld r30, 384(r1) # 8-byte Folded Reload
1911 ; LE-P8-PRIV-NEXT:    ld r29, 376(r1) # 8-byte Folded Reload
1912 ; LE-P8-PRIV-NEXT:    lwz r4, 16(r4)
1913 ; LE-P8-PRIV-NEXT:    lfd f27, 504(r1) # 8-byte Folded Reload
1914 ; LE-P8-PRIV-NEXT:    lfd f26, 496(r1) # 8-byte Folded Reload
1915 ; LE-P8-PRIV-NEXT:    ld r28, 368(r1) # 8-byte Folded Reload
1916 ; LE-P8-PRIV-NEXT:    lfd f25, 488(r1) # 8-byte Folded Reload
1917 ; LE-P8-PRIV-NEXT:    lfd f24, 480(r1) # 8-byte Folded Reload
1918 ; LE-P8-PRIV-NEXT:    ld r27, 360(r1) # 8-byte Folded Reload
1919 ; LE-P8-PRIV-NEXT:    ld r26, 352(r1) # 8-byte Folded Reload
1920 ; LE-P8-PRIV-NEXT:    add r3, r4, r3
1921 ; LE-P8-PRIV-NEXT:    li r4, 240
1922 ; LE-P8-PRIV-NEXT:    lfd f23, 472(r1) # 8-byte Folded Reload
1923 ; LE-P8-PRIV-NEXT:    lfd f22, 464(r1) # 8-byte Folded Reload
1924 ; LE-P8-PRIV-NEXT:    ld r25, 344(r1) # 8-byte Folded Reload
1925 ; LE-P8-PRIV-NEXT:    ld r24, 336(r1) # 8-byte Folded Reload
1926 ; LE-P8-PRIV-NEXT:    lxvd2x v31, r1, r4 # 16-byte Folded Reload
1927 ; LE-P8-PRIV-NEXT:    li r4, 224
1928 ; LE-P8-PRIV-NEXT:    lfd f21, 456(r1) # 8-byte Folded Reload
1929 ; LE-P8-PRIV-NEXT:    ld r23, 328(r1) # 8-byte Folded Reload
1930 ; LE-P8-PRIV-NEXT:    ld r22, 320(r1) # 8-byte Folded Reload
1931 ; LE-P8-PRIV-NEXT:    clrldi r3, r3, 32
1932 ; LE-P8-PRIV-NEXT:    lxvd2x v30, r1, r4 # 16-byte Folded Reload
1933 ; LE-P8-PRIV-NEXT:    li r4, 208
1934 ; LE-P8-PRIV-NEXT:    lfd f20, 448(r1) # 8-byte Folded Reload
1935 ; LE-P8-PRIV-NEXT:    ld r21, 312(r1) # 8-byte Folded Reload
1936 ; LE-P8-PRIV-NEXT:    ld r20, 304(r1) # 8-byte Folded Reload
1937 ; LE-P8-PRIV-NEXT:    lxvd2x v29, r1, r4 # 16-byte Folded Reload
1938 ; LE-P8-PRIV-NEXT:    li r4, 192
1939 ; LE-P8-PRIV-NEXT:    lfd f19, 440(r1) # 8-byte Folded Reload
1940 ; LE-P8-PRIV-NEXT:    ld r19, 296(r1) # 8-byte Folded Reload
1941 ; LE-P8-PRIV-NEXT:    ld r18, 288(r1) # 8-byte Folded Reload
1942 ; LE-P8-PRIV-NEXT:    lxvd2x v28, r1, r4 # 16-byte Folded Reload
1943 ; LE-P8-PRIV-NEXT:    li r4, 176
1944 ; LE-P8-PRIV-NEXT:    lfd f18, 432(r1) # 8-byte Folded Reload
1945 ; LE-P8-PRIV-NEXT:    ld r17, 280(r1) # 8-byte Folded Reload
1946 ; LE-P8-PRIV-NEXT:    ld r16, 272(r1) # 8-byte Folded Reload
1947 ; LE-P8-PRIV-NEXT:    lxvd2x v27, r1, r4 # 16-byte Folded Reload
1948 ; LE-P8-PRIV-NEXT:    li r4, 160
1949 ; LE-P8-PRIV-NEXT:    lfd f17, 424(r1) # 8-byte Folded Reload
1950 ; LE-P8-PRIV-NEXT:    ld r15, 264(r1) # 8-byte Folded Reload
1951 ; LE-P8-PRIV-NEXT:    ld r14, 256(r1) # 8-byte Folded Reload
1952 ; LE-P8-PRIV-NEXT:    lxvd2x v26, r1, r4 # 16-byte Folded Reload
1953 ; LE-P8-PRIV-NEXT:    li r4, 144
1954 ; LE-P8-PRIV-NEXT:    lfd f16, 416(r1) # 8-byte Folded Reload
1955 ; LE-P8-PRIV-NEXT:    lxvd2x v25, r1, r4 # 16-byte Folded Reload
1956 ; LE-P8-PRIV-NEXT:    li r4, 128
1957 ; LE-P8-PRIV-NEXT:    lfd f15, 408(r1) # 8-byte Folded Reload
1958 ; LE-P8-PRIV-NEXT:    lxvd2x v24, r1, r4 # 16-byte Folded Reload
1959 ; LE-P8-PRIV-NEXT:    li r4, 112
1960 ; LE-P8-PRIV-NEXT:    lfd f14, 400(r1) # 8-byte Folded Reload
1961 ; LE-P8-PRIV-NEXT:    lxvd2x v23, r1, r4 # 16-byte Folded Reload
1962 ; LE-P8-PRIV-NEXT:    li r4, 96
1963 ; LE-P8-PRIV-NEXT:    lxvd2x v22, r1, r4 # 16-byte Folded Reload
1964 ; LE-P8-PRIV-NEXT:    li r4, 80
1965 ; LE-P8-PRIV-NEXT:    lxvd2x v21, r1, r4 # 16-byte Folded Reload
1966 ; LE-P8-PRIV-NEXT:    li r4, 64
1967 ; LE-P8-PRIV-NEXT:    lxvd2x v20, r1, r4 # 16-byte Folded Reload
1968 ; LE-P8-PRIV-NEXT:    addi r1, r1, 544
1969 ; LE-P8-PRIV-NEXT:    ld r0, 16(r1)
1970 ; LE-P8-PRIV-NEXT:    lwz r12, 8(r1)
1971 ; LE-P8-PRIV-NEXT:    mtocrf 32, r12
1972 ; LE-P8-PRIV-NEXT:    hashchkp r0, -488(r1)
1973 ; LE-P8-PRIV-NEXT:    mtlr r0
1974 ; LE-P8-PRIV-NEXT:    mtocrf 16, r12
1975 ; LE-P8-PRIV-NEXT:    mtocrf 8, r12
1976 ; LE-P8-PRIV-NEXT:    blr
1978 ; BE-P10-PRIV-LABEL: spill:
1979 ; BE-P10-PRIV:       # %bb.0: # %entry
1980 ; BE-P10-PRIV-NEXT:    mflr r0
1981 ; BE-P10-PRIV-NEXT:    mfcr r12
1982 ; BE-P10-PRIV-NEXT:    std r0, 16(r1)
1983 ; BE-P10-PRIV-NEXT:    hashstp r0, -488(r1)
1984 ; BE-P10-PRIV-NEXT:    stw r12, 8(r1)
1985 ; BE-P10-PRIV-NEXT:    stdu r1, -624(r1)
1986 ; BE-P10-PRIV-NEXT:    lwz r4, 12(r3)
1987 ; BE-P10-PRIV-NEXT:    std r14, 336(r1) # 8-byte Folded Spill
1988 ; BE-P10-PRIV-NEXT:    std r15, 344(r1) # 8-byte Folded Spill
1989 ; BE-P10-PRIV-NEXT:    stxv v20, 144(r1) # 16-byte Folded Spill
1990 ; BE-P10-PRIV-NEXT:    stxv v21, 160(r1) # 16-byte Folded Spill
1991 ; BE-P10-PRIV-NEXT:    stxv v22, 176(r1) # 16-byte Folded Spill
1992 ; BE-P10-PRIV-NEXT:    std r16, 352(r1) # 8-byte Folded Spill
1993 ; BE-P10-PRIV-NEXT:    std r17, 360(r1) # 8-byte Folded Spill
1994 ; BE-P10-PRIV-NEXT:    stxv v23, 192(r1) # 16-byte Folded Spill
1995 ; BE-P10-PRIV-NEXT:    std r18, 368(r1) # 8-byte Folded Spill
1996 ; BE-P10-PRIV-NEXT:    std r19, 376(r1) # 8-byte Folded Spill
1997 ; BE-P10-PRIV-NEXT:    stxv v24, 208(r1) # 16-byte Folded Spill
1998 ; BE-P10-PRIV-NEXT:    stxv v25, 224(r1) # 16-byte Folded Spill
1999 ; BE-P10-PRIV-NEXT:    std r20, 384(r1) # 8-byte Folded Spill
2000 ; BE-P10-PRIV-NEXT:    std r21, 392(r1) # 8-byte Folded Spill
2001 ; BE-P10-PRIV-NEXT:    stxv v26, 240(r1) # 16-byte Folded Spill
2002 ; BE-P10-PRIV-NEXT:    std r22, 400(r1) # 8-byte Folded Spill
2003 ; BE-P10-PRIV-NEXT:    std r23, 408(r1) # 8-byte Folded Spill
2004 ; BE-P10-PRIV-NEXT:    stxv v27, 256(r1) # 16-byte Folded Spill
2005 ; BE-P10-PRIV-NEXT:    stxv v28, 272(r1) # 16-byte Folded Spill
2006 ; BE-P10-PRIV-NEXT:    std r24, 416(r1) # 8-byte Folded Spill
2007 ; BE-P10-PRIV-NEXT:    std r25, 424(r1) # 8-byte Folded Spill
2008 ; BE-P10-PRIV-NEXT:    stxv v29, 288(r1) # 16-byte Folded Spill
2009 ; BE-P10-PRIV-NEXT:    std r26, 432(r1) # 8-byte Folded Spill
2010 ; BE-P10-PRIV-NEXT:    std r27, 440(r1) # 8-byte Folded Spill
2011 ; BE-P10-PRIV-NEXT:    stxv v30, 304(r1) # 16-byte Folded Spill
2012 ; BE-P10-PRIV-NEXT:    stxv v31, 320(r1) # 16-byte Folded Spill
2013 ; BE-P10-PRIV-NEXT:    std r28, 448(r1) # 8-byte Folded Spill
2014 ; BE-P10-PRIV-NEXT:    std r29, 456(r1) # 8-byte Folded Spill
2015 ; BE-P10-PRIV-NEXT:    std r30, 464(r1) # 8-byte Folded Spill
2016 ; BE-P10-PRIV-NEXT:    std r31, 472(r1) # 8-byte Folded Spill
2017 ; BE-P10-PRIV-NEXT:    stfd f14, 480(r1) # 8-byte Folded Spill
2018 ; BE-P10-PRIV-NEXT:    stfd f15, 488(r1) # 8-byte Folded Spill
2019 ; BE-P10-PRIV-NEXT:    stfd f16, 496(r1) # 8-byte Folded Spill
2020 ; BE-P10-PRIV-NEXT:    stfd f17, 504(r1) # 8-byte Folded Spill
2021 ; BE-P10-PRIV-NEXT:    stfd f18, 512(r1) # 8-byte Folded Spill
2022 ; BE-P10-PRIV-NEXT:    stfd f19, 520(r1) # 8-byte Folded Spill
2023 ; BE-P10-PRIV-NEXT:    stfd f20, 528(r1) # 8-byte Folded Spill
2024 ; BE-P10-PRIV-NEXT:    stfd f21, 536(r1) # 8-byte Folded Spill
2025 ; BE-P10-PRIV-NEXT:    stfd f22, 544(r1) # 8-byte Folded Spill
2026 ; BE-P10-PRIV-NEXT:    stfd f23, 552(r1) # 8-byte Folded Spill
2027 ; BE-P10-PRIV-NEXT:    stfd f24, 560(r1) # 8-byte Folded Spill
2028 ; BE-P10-PRIV-NEXT:    stfd f25, 568(r1) # 8-byte Folded Spill
2029 ; BE-P10-PRIV-NEXT:    stfd f26, 576(r1) # 8-byte Folded Spill
2030 ; BE-P10-PRIV-NEXT:    stfd f27, 584(r1) # 8-byte Folded Spill
2031 ; BE-P10-PRIV-NEXT:    stfd f28, 592(r1) # 8-byte Folded Spill
2032 ; BE-P10-PRIV-NEXT:    stfd f29, 600(r1) # 8-byte Folded Spill
2033 ; BE-P10-PRIV-NEXT:    stfd f30, 608(r1) # 8-byte Folded Spill
2034 ; BE-P10-PRIV-NEXT:    stfd f31, 616(r1) # 8-byte Folded Spill
2035 ; BE-P10-PRIV-NEXT:    std r3, 120(r1) # 8-byte Folded Spill
2036 ; BE-P10-PRIV-NEXT:    stw r4, 132(r1)
2037 ; BE-P10-PRIV-NEXT:    #APP
2038 ; BE-P10-PRIV-NEXT:    nop
2039 ; BE-P10-PRIV-NEXT:    #NO_APP
2040 ; BE-P10-PRIV-NEXT:    addi r3, r1, 132
2041 ; BE-P10-PRIV-NEXT:    bl callee2
2042 ; BE-P10-PRIV-NEXT:    nop
2043 ; BE-P10-PRIV-NEXT:    ld r4, 120(r1) # 8-byte Folded Reload
2044 ; BE-P10-PRIV-NEXT:    lxv v31, 320(r1) # 16-byte Folded Reload
2045 ; BE-P10-PRIV-NEXT:    lxv v30, 304(r1) # 16-byte Folded Reload
2046 ; BE-P10-PRIV-NEXT:    lxv v29, 288(r1) # 16-byte Folded Reload
2047 ; BE-P10-PRIV-NEXT:    lxv v28, 272(r1) # 16-byte Folded Reload
2048 ; BE-P10-PRIV-NEXT:    lxv v27, 256(r1) # 16-byte Folded Reload
2049 ; BE-P10-PRIV-NEXT:    lxv v26, 240(r1) # 16-byte Folded Reload
2050 ; BE-P10-PRIV-NEXT:    lxv v25, 224(r1) # 16-byte Folded Reload
2051 ; BE-P10-PRIV-NEXT:    lxv v24, 208(r1) # 16-byte Folded Reload
2052 ; BE-P10-PRIV-NEXT:    lxv v23, 192(r1) # 16-byte Folded Reload
2053 ; BE-P10-PRIV-NEXT:    lxv v22, 176(r1) # 16-byte Folded Reload
2054 ; BE-P10-PRIV-NEXT:    lxv v21, 160(r1) # 16-byte Folded Reload
2055 ; BE-P10-PRIV-NEXT:    lxv v20, 144(r1) # 16-byte Folded Reload
2056 ; BE-P10-PRIV-NEXT:    lfd f31, 616(r1) # 8-byte Folded Reload
2057 ; BE-P10-PRIV-NEXT:    lfd f30, 608(r1) # 8-byte Folded Reload
2058 ; BE-P10-PRIV-NEXT:    lfd f29, 600(r1) # 8-byte Folded Reload
2059 ; BE-P10-PRIV-NEXT:    lfd f28, 592(r1) # 8-byte Folded Reload
2060 ; BE-P10-PRIV-NEXT:    lfd f27, 584(r1) # 8-byte Folded Reload
2061 ; BE-P10-PRIV-NEXT:    ld r31, 472(r1) # 8-byte Folded Reload
2062 ; BE-P10-PRIV-NEXT:    ld r30, 464(r1) # 8-byte Folded Reload
2063 ; BE-P10-PRIV-NEXT:    ld r29, 456(r1) # 8-byte Folded Reload
2064 ; BE-P10-PRIV-NEXT:    lfd f26, 576(r1) # 8-byte Folded Reload
2065 ; BE-P10-PRIV-NEXT:    ld r28, 448(r1) # 8-byte Folded Reload
2066 ; BE-P10-PRIV-NEXT:    ld r27, 440(r1) # 8-byte Folded Reload
2067 ; BE-P10-PRIV-NEXT:    ld r26, 432(r1) # 8-byte Folded Reload
2068 ; BE-P10-PRIV-NEXT:    lfd f25, 568(r1) # 8-byte Folded Reload
2069 ; BE-P10-PRIV-NEXT:    ld r25, 424(r1) # 8-byte Folded Reload
2070 ; BE-P10-PRIV-NEXT:    ld r24, 416(r1) # 8-byte Folded Reload
2071 ; BE-P10-PRIV-NEXT:    ld r23, 408(r1) # 8-byte Folded Reload
2072 ; BE-P10-PRIV-NEXT:    lfd f24, 560(r1) # 8-byte Folded Reload
2073 ; BE-P10-PRIV-NEXT:    ld r22, 400(r1) # 8-byte Folded Reload
2074 ; BE-P10-PRIV-NEXT:    ld r21, 392(r1) # 8-byte Folded Reload
2075 ; BE-P10-PRIV-NEXT:    lwz r4, 16(r4)
2076 ; BE-P10-PRIV-NEXT:    add r3, r4, r3
2077 ; BE-P10-PRIV-NEXT:    lfd f23, 552(r1) # 8-byte Folded Reload
2078 ; BE-P10-PRIV-NEXT:    lfd f22, 544(r1) # 8-byte Folded Reload
2079 ; BE-P10-PRIV-NEXT:    ld r20, 384(r1) # 8-byte Folded Reload
2080 ; BE-P10-PRIV-NEXT:    ld r19, 376(r1) # 8-byte Folded Reload
2081 ; BE-P10-PRIV-NEXT:    ld r18, 368(r1) # 8-byte Folded Reload
2082 ; BE-P10-PRIV-NEXT:    ld r17, 360(r1) # 8-byte Folded Reload
2083 ; BE-P10-PRIV-NEXT:    ld r16, 352(r1) # 8-byte Folded Reload
2084 ; BE-P10-PRIV-NEXT:    ld r15, 344(r1) # 8-byte Folded Reload
2085 ; BE-P10-PRIV-NEXT:    ld r14, 336(r1) # 8-byte Folded Reload
2086 ; BE-P10-PRIV-NEXT:    lfd f21, 536(r1) # 8-byte Folded Reload
2087 ; BE-P10-PRIV-NEXT:    lfd f20, 528(r1) # 8-byte Folded Reload
2088 ; BE-P10-PRIV-NEXT:    lfd f19, 520(r1) # 8-byte Folded Reload
2089 ; BE-P10-PRIV-NEXT:    lfd f18, 512(r1) # 8-byte Folded Reload
2090 ; BE-P10-PRIV-NEXT:    lfd f17, 504(r1) # 8-byte Folded Reload
2091 ; BE-P10-PRIV-NEXT:    lfd f16, 496(r1) # 8-byte Folded Reload
2092 ; BE-P10-PRIV-NEXT:    lfd f15, 488(r1) # 8-byte Folded Reload
2093 ; BE-P10-PRIV-NEXT:    lfd f14, 480(r1) # 8-byte Folded Reload
2094 ; BE-P10-PRIV-NEXT:    clrldi r3, r3, 32
2095 ; BE-P10-PRIV-NEXT:    addi r1, r1, 624
2096 ; BE-P10-PRIV-NEXT:    ld r0, 16(r1)
2097 ; BE-P10-PRIV-NEXT:    lwz r12, 8(r1)
2098 ; BE-P10-PRIV-NEXT:    mtlr r0
2099 ; BE-P10-PRIV-NEXT:    hashchkp r0, -488(r1)
2100 ; BE-P10-PRIV-NEXT:    mtocrf 32, r12
2101 ; BE-P10-PRIV-NEXT:    mtocrf 16, r12
2102 ; BE-P10-PRIV-NEXT:    mtocrf 8, r12
2103 ; BE-P10-PRIV-NEXT:    blr
2105 ; BE-P9-PRIV-LABEL: spill:
2106 ; BE-P9-PRIV:       # %bb.0: # %entry
2107 ; BE-P9-PRIV-NEXT:    mflr r0
2108 ; BE-P9-PRIV-NEXT:    mfcr r12
2109 ; BE-P9-PRIV-NEXT:    std r0, 16(r1)
2110 ; BE-P9-PRIV-NEXT:    hashstp r0, -488(r1)
2111 ; BE-P9-PRIV-NEXT:    stw r12, 8(r1)
2112 ; BE-P9-PRIV-NEXT:    stdu r1, -624(r1)
2113 ; BE-P9-PRIV-NEXT:    lwz r4, 12(r3)
2114 ; BE-P9-PRIV-NEXT:    std r14, 336(r1) # 8-byte Folded Spill
2115 ; BE-P9-PRIV-NEXT:    std r15, 344(r1) # 8-byte Folded Spill
2116 ; BE-P9-PRIV-NEXT:    stxv v20, 144(r1) # 16-byte Folded Spill
2117 ; BE-P9-PRIV-NEXT:    stxv v21, 160(r1) # 16-byte Folded Spill
2118 ; BE-P9-PRIV-NEXT:    stxv v22, 176(r1) # 16-byte Folded Spill
2119 ; BE-P9-PRIV-NEXT:    std r16, 352(r1) # 8-byte Folded Spill
2120 ; BE-P9-PRIV-NEXT:    std r17, 360(r1) # 8-byte Folded Spill
2121 ; BE-P9-PRIV-NEXT:    stxv v23, 192(r1) # 16-byte Folded Spill
2122 ; BE-P9-PRIV-NEXT:    std r18, 368(r1) # 8-byte Folded Spill
2123 ; BE-P9-PRIV-NEXT:    stxv v24, 208(r1) # 16-byte Folded Spill
2124 ; BE-P9-PRIV-NEXT:    std r19, 376(r1) # 8-byte Folded Spill
2125 ; BE-P9-PRIV-NEXT:    stxv v25, 224(r1) # 16-byte Folded Spill
2126 ; BE-P9-PRIV-NEXT:    std r20, 384(r1) # 8-byte Folded Spill
2127 ; BE-P9-PRIV-NEXT:    std r21, 392(r1) # 8-byte Folded Spill
2128 ; BE-P9-PRIV-NEXT:    stxv v26, 240(r1) # 16-byte Folded Spill
2129 ; BE-P9-PRIV-NEXT:    std r22, 400(r1) # 8-byte Folded Spill
2130 ; BE-P9-PRIV-NEXT:    stxv v27, 256(r1) # 16-byte Folded Spill
2131 ; BE-P9-PRIV-NEXT:    std r23, 408(r1) # 8-byte Folded Spill
2132 ; BE-P9-PRIV-NEXT:    stxv v28, 272(r1) # 16-byte Folded Spill
2133 ; BE-P9-PRIV-NEXT:    std r24, 416(r1) # 8-byte Folded Spill
2134 ; BE-P9-PRIV-NEXT:    std r25, 424(r1) # 8-byte Folded Spill
2135 ; BE-P9-PRIV-NEXT:    stxv v29, 288(r1) # 16-byte Folded Spill
2136 ; BE-P9-PRIV-NEXT:    std r26, 432(r1) # 8-byte Folded Spill
2137 ; BE-P9-PRIV-NEXT:    stxv v30, 304(r1) # 16-byte Folded Spill
2138 ; BE-P9-PRIV-NEXT:    std r27, 440(r1) # 8-byte Folded Spill
2139 ; BE-P9-PRIV-NEXT:    stxv v31, 320(r1) # 16-byte Folded Spill
2140 ; BE-P9-PRIV-NEXT:    std r28, 448(r1) # 8-byte Folded Spill
2141 ; BE-P9-PRIV-NEXT:    std r29, 456(r1) # 8-byte Folded Spill
2142 ; BE-P9-PRIV-NEXT:    std r30, 464(r1) # 8-byte Folded Spill
2143 ; BE-P9-PRIV-NEXT:    std r31, 472(r1) # 8-byte Folded Spill
2144 ; BE-P9-PRIV-NEXT:    stfd f14, 480(r1) # 8-byte Folded Spill
2145 ; BE-P9-PRIV-NEXT:    stfd f15, 488(r1) # 8-byte Folded Spill
2146 ; BE-P9-PRIV-NEXT:    stfd f16, 496(r1) # 8-byte Folded Spill
2147 ; BE-P9-PRIV-NEXT:    stfd f17, 504(r1) # 8-byte Folded Spill
2148 ; BE-P9-PRIV-NEXT:    stfd f18, 512(r1) # 8-byte Folded Spill
2149 ; BE-P9-PRIV-NEXT:    stfd f19, 520(r1) # 8-byte Folded Spill
2150 ; BE-P9-PRIV-NEXT:    stfd f20, 528(r1) # 8-byte Folded Spill
2151 ; BE-P9-PRIV-NEXT:    stfd f21, 536(r1) # 8-byte Folded Spill
2152 ; BE-P9-PRIV-NEXT:    stfd f22, 544(r1) # 8-byte Folded Spill
2153 ; BE-P9-PRIV-NEXT:    stfd f23, 552(r1) # 8-byte Folded Spill
2154 ; BE-P9-PRIV-NEXT:    stfd f24, 560(r1) # 8-byte Folded Spill
2155 ; BE-P9-PRIV-NEXT:    stfd f25, 568(r1) # 8-byte Folded Spill
2156 ; BE-P9-PRIV-NEXT:    stfd f26, 576(r1) # 8-byte Folded Spill
2157 ; BE-P9-PRIV-NEXT:    stfd f27, 584(r1) # 8-byte Folded Spill
2158 ; BE-P9-PRIV-NEXT:    stfd f28, 592(r1) # 8-byte Folded Spill
2159 ; BE-P9-PRIV-NEXT:    stfd f29, 600(r1) # 8-byte Folded Spill
2160 ; BE-P9-PRIV-NEXT:    stfd f30, 608(r1) # 8-byte Folded Spill
2161 ; BE-P9-PRIV-NEXT:    stfd f31, 616(r1) # 8-byte Folded Spill
2162 ; BE-P9-PRIV-NEXT:    std r3, 120(r1) # 8-byte Folded Spill
2163 ; BE-P9-PRIV-NEXT:    stw r4, 132(r1)
2164 ; BE-P9-PRIV-NEXT:    #APP
2165 ; BE-P9-PRIV-NEXT:    nop
2166 ; BE-P9-PRIV-NEXT:    #NO_APP
2167 ; BE-P9-PRIV-NEXT:    addi r3, r1, 132
2168 ; BE-P9-PRIV-NEXT:    bl callee2
2169 ; BE-P9-PRIV-NEXT:    nop
2170 ; BE-P9-PRIV-NEXT:    ld r4, 120(r1) # 8-byte Folded Reload
2171 ; BE-P9-PRIV-NEXT:    lxv v31, 320(r1) # 16-byte Folded Reload
2172 ; BE-P9-PRIV-NEXT:    lxv v30, 304(r1) # 16-byte Folded Reload
2173 ; BE-P9-PRIV-NEXT:    lxv v29, 288(r1) # 16-byte Folded Reload
2174 ; BE-P9-PRIV-NEXT:    lxv v28, 272(r1) # 16-byte Folded Reload
2175 ; BE-P9-PRIV-NEXT:    lxv v27, 256(r1) # 16-byte Folded Reload
2176 ; BE-P9-PRIV-NEXT:    lxv v26, 240(r1) # 16-byte Folded Reload
2177 ; BE-P9-PRIV-NEXT:    lxv v25, 224(r1) # 16-byte Folded Reload
2178 ; BE-P9-PRIV-NEXT:    lxv v24, 208(r1) # 16-byte Folded Reload
2179 ; BE-P9-PRIV-NEXT:    lxv v23, 192(r1) # 16-byte Folded Reload
2180 ; BE-P9-PRIV-NEXT:    lxv v22, 176(r1) # 16-byte Folded Reload
2181 ; BE-P9-PRIV-NEXT:    lxv v21, 160(r1) # 16-byte Folded Reload
2182 ; BE-P9-PRIV-NEXT:    lxv v20, 144(r1) # 16-byte Folded Reload
2183 ; BE-P9-PRIV-NEXT:    lfd f31, 616(r1) # 8-byte Folded Reload
2184 ; BE-P9-PRIV-NEXT:    lfd f30, 608(r1) # 8-byte Folded Reload
2185 ; BE-P9-PRIV-NEXT:    lfd f29, 600(r1) # 8-byte Folded Reload
2186 ; BE-P9-PRIV-NEXT:    lfd f28, 592(r1) # 8-byte Folded Reload
2187 ; BE-P9-PRIV-NEXT:    lfd f27, 584(r1) # 8-byte Folded Reload
2188 ; BE-P9-PRIV-NEXT:    ld r31, 472(r1) # 8-byte Folded Reload
2189 ; BE-P9-PRIV-NEXT:    ld r30, 464(r1) # 8-byte Folded Reload
2190 ; BE-P9-PRIV-NEXT:    ld r29, 456(r1) # 8-byte Folded Reload
2191 ; BE-P9-PRIV-NEXT:    lfd f26, 576(r1) # 8-byte Folded Reload
2192 ; BE-P9-PRIV-NEXT:    ld r28, 448(r1) # 8-byte Folded Reload
2193 ; BE-P9-PRIV-NEXT:    ld r27, 440(r1) # 8-byte Folded Reload
2194 ; BE-P9-PRIV-NEXT:    ld r26, 432(r1) # 8-byte Folded Reload
2195 ; BE-P9-PRIV-NEXT:    lfd f25, 568(r1) # 8-byte Folded Reload
2196 ; BE-P9-PRIV-NEXT:    ld r25, 424(r1) # 8-byte Folded Reload
2197 ; BE-P9-PRIV-NEXT:    ld r24, 416(r1) # 8-byte Folded Reload
2198 ; BE-P9-PRIV-NEXT:    ld r23, 408(r1) # 8-byte Folded Reload
2199 ; BE-P9-PRIV-NEXT:    lfd f24, 560(r1) # 8-byte Folded Reload
2200 ; BE-P9-PRIV-NEXT:    ld r22, 400(r1) # 8-byte Folded Reload
2201 ; BE-P9-PRIV-NEXT:    ld r21, 392(r1) # 8-byte Folded Reload
2202 ; BE-P9-PRIV-NEXT:    lwz r4, 16(r4)
2203 ; BE-P9-PRIV-NEXT:    add r3, r4, r3
2204 ; BE-P9-PRIV-NEXT:    lfd f23, 552(r1) # 8-byte Folded Reload
2205 ; BE-P9-PRIV-NEXT:    lfd f22, 544(r1) # 8-byte Folded Reload
2206 ; BE-P9-PRIV-NEXT:    ld r20, 384(r1) # 8-byte Folded Reload
2207 ; BE-P9-PRIV-NEXT:    ld r19, 376(r1) # 8-byte Folded Reload
2208 ; BE-P9-PRIV-NEXT:    ld r18, 368(r1) # 8-byte Folded Reload
2209 ; BE-P9-PRIV-NEXT:    ld r17, 360(r1) # 8-byte Folded Reload
2210 ; BE-P9-PRIV-NEXT:    ld r16, 352(r1) # 8-byte Folded Reload
2211 ; BE-P9-PRIV-NEXT:    ld r15, 344(r1) # 8-byte Folded Reload
2212 ; BE-P9-PRIV-NEXT:    ld r14, 336(r1) # 8-byte Folded Reload
2213 ; BE-P9-PRIV-NEXT:    lfd f21, 536(r1) # 8-byte Folded Reload
2214 ; BE-P9-PRIV-NEXT:    lfd f20, 528(r1) # 8-byte Folded Reload
2215 ; BE-P9-PRIV-NEXT:    lfd f19, 520(r1) # 8-byte Folded Reload
2216 ; BE-P9-PRIV-NEXT:    lfd f18, 512(r1) # 8-byte Folded Reload
2217 ; BE-P9-PRIV-NEXT:    lfd f17, 504(r1) # 8-byte Folded Reload
2218 ; BE-P9-PRIV-NEXT:    lfd f16, 496(r1) # 8-byte Folded Reload
2219 ; BE-P9-PRIV-NEXT:    lfd f15, 488(r1) # 8-byte Folded Reload
2220 ; BE-P9-PRIV-NEXT:    lfd f14, 480(r1) # 8-byte Folded Reload
2221 ; BE-P9-PRIV-NEXT:    clrldi r3, r3, 32
2222 ; BE-P9-PRIV-NEXT:    addi r1, r1, 624
2223 ; BE-P9-PRIV-NEXT:    ld r0, 16(r1)
2224 ; BE-P9-PRIV-NEXT:    lwz r12, 8(r1)
2225 ; BE-P9-PRIV-NEXT:    mtlr r0
2226 ; BE-P9-PRIV-NEXT:    hashchkp r0, -488(r1)
2227 ; BE-P9-PRIV-NEXT:    mtocrf 32, r12
2228 ; BE-P9-PRIV-NEXT:    mtocrf 16, r12
2229 ; BE-P9-PRIV-NEXT:    mtocrf 8, r12
2230 ; BE-P9-PRIV-NEXT:    blr
2232 ; BE-P8-PRIV-LABEL: spill:
2233 ; BE-P8-PRIV:       # %bb.0: # %entry
2234 ; BE-P8-PRIV-NEXT:    mfcr r12
2235 ; BE-P8-PRIV-NEXT:    mflr r0
2236 ; BE-P8-PRIV-NEXT:    std r0, 16(r1)
2237 ; BE-P8-PRIV-NEXT:    hashstp r0, -488(r1)
2238 ; BE-P8-PRIV-NEXT:    stw r12, 8(r1)
2239 ; BE-P8-PRIV-NEXT:    stdu r1, -624(r1)
2240 ; BE-P8-PRIV-NEXT:    li r4, 144
2241 ; BE-P8-PRIV-NEXT:    std r14, 336(r1) # 8-byte Folded Spill
2242 ; BE-P8-PRIV-NEXT:    std r15, 344(r1) # 8-byte Folded Spill
2243 ; BE-P8-PRIV-NEXT:    std r16, 352(r1) # 8-byte Folded Spill
2244 ; BE-P8-PRIV-NEXT:    std r17, 360(r1) # 8-byte Folded Spill
2245 ; BE-P8-PRIV-NEXT:    stxvd2x v20, r1, r4 # 16-byte Folded Spill
2246 ; BE-P8-PRIV-NEXT:    li r4, 160
2247 ; BE-P8-PRIV-NEXT:    std r18, 368(r1) # 8-byte Folded Spill
2248 ; BE-P8-PRIV-NEXT:    std r19, 376(r1) # 8-byte Folded Spill
2249 ; BE-P8-PRIV-NEXT:    std r20, 384(r1) # 8-byte Folded Spill
2250 ; BE-P8-PRIV-NEXT:    std r21, 392(r1) # 8-byte Folded Spill
2251 ; BE-P8-PRIV-NEXT:    stxvd2x v21, r1, r4 # 16-byte Folded Spill
2252 ; BE-P8-PRIV-NEXT:    li r4, 176
2253 ; BE-P8-PRIV-NEXT:    std r22, 400(r1) # 8-byte Folded Spill
2254 ; BE-P8-PRIV-NEXT:    std r23, 408(r1) # 8-byte Folded Spill
2255 ; BE-P8-PRIV-NEXT:    std r24, 416(r1) # 8-byte Folded Spill
2256 ; BE-P8-PRIV-NEXT:    std r25, 424(r1) # 8-byte Folded Spill
2257 ; BE-P8-PRIV-NEXT:    std r26, 432(r1) # 8-byte Folded Spill
2258 ; BE-P8-PRIV-NEXT:    std r27, 440(r1) # 8-byte Folded Spill
2259 ; BE-P8-PRIV-NEXT:    std r28, 448(r1) # 8-byte Folded Spill
2260 ; BE-P8-PRIV-NEXT:    std r29, 456(r1) # 8-byte Folded Spill
2261 ; BE-P8-PRIV-NEXT:    std r30, 464(r1) # 8-byte Folded Spill
2262 ; BE-P8-PRIV-NEXT:    std r31, 472(r1) # 8-byte Folded Spill
2263 ; BE-P8-PRIV-NEXT:    std r3, 120(r1) # 8-byte Folded Spill
2264 ; BE-P8-PRIV-NEXT:    stxvd2x v22, r1, r4 # 16-byte Folded Spill
2265 ; BE-P8-PRIV-NEXT:    li r4, 192
2266 ; BE-P8-PRIV-NEXT:    stxvd2x v23, r1, r4 # 16-byte Folded Spill
2267 ; BE-P8-PRIV-NEXT:    li r4, 208
2268 ; BE-P8-PRIV-NEXT:    stfd f14, 480(r1) # 8-byte Folded Spill
2269 ; BE-P8-PRIV-NEXT:    stxvd2x v24, r1, r4 # 16-byte Folded Spill
2270 ; BE-P8-PRIV-NEXT:    li r4, 224
2271 ; BE-P8-PRIV-NEXT:    stfd f15, 488(r1) # 8-byte Folded Spill
2272 ; BE-P8-PRIV-NEXT:    stxvd2x v25, r1, r4 # 16-byte Folded Spill
2273 ; BE-P8-PRIV-NEXT:    li r4, 240
2274 ; BE-P8-PRIV-NEXT:    stfd f16, 496(r1) # 8-byte Folded Spill
2275 ; BE-P8-PRIV-NEXT:    stxvd2x v26, r1, r4 # 16-byte Folded Spill
2276 ; BE-P8-PRIV-NEXT:    li r4, 256
2277 ; BE-P8-PRIV-NEXT:    stfd f17, 504(r1) # 8-byte Folded Spill
2278 ; BE-P8-PRIV-NEXT:    stxvd2x v27, r1, r4 # 16-byte Folded Spill
2279 ; BE-P8-PRIV-NEXT:    li r4, 272
2280 ; BE-P8-PRIV-NEXT:    stfd f18, 512(r1) # 8-byte Folded Spill
2281 ; BE-P8-PRIV-NEXT:    stxvd2x v28, r1, r4 # 16-byte Folded Spill
2282 ; BE-P8-PRIV-NEXT:    li r4, 288
2283 ; BE-P8-PRIV-NEXT:    stfd f19, 520(r1) # 8-byte Folded Spill
2284 ; BE-P8-PRIV-NEXT:    stxvd2x v29, r1, r4 # 16-byte Folded Spill
2285 ; BE-P8-PRIV-NEXT:    li r4, 304
2286 ; BE-P8-PRIV-NEXT:    stfd f20, 528(r1) # 8-byte Folded Spill
2287 ; BE-P8-PRIV-NEXT:    stxvd2x v30, r1, r4 # 16-byte Folded Spill
2288 ; BE-P8-PRIV-NEXT:    li r4, 320
2289 ; BE-P8-PRIV-NEXT:    stfd f21, 536(r1) # 8-byte Folded Spill
2290 ; BE-P8-PRIV-NEXT:    stxvd2x v31, r1, r4 # 16-byte Folded Spill
2291 ; BE-P8-PRIV-NEXT:    lwz r4, 12(r3)
2292 ; BE-P8-PRIV-NEXT:    stfd f22, 544(r1) # 8-byte Folded Spill
2293 ; BE-P8-PRIV-NEXT:    stfd f23, 552(r1) # 8-byte Folded Spill
2294 ; BE-P8-PRIV-NEXT:    stfd f24, 560(r1) # 8-byte Folded Spill
2295 ; BE-P8-PRIV-NEXT:    stfd f25, 568(r1) # 8-byte Folded Spill
2296 ; BE-P8-PRIV-NEXT:    stfd f26, 576(r1) # 8-byte Folded Spill
2297 ; BE-P8-PRIV-NEXT:    stfd f27, 584(r1) # 8-byte Folded Spill
2298 ; BE-P8-PRIV-NEXT:    stfd f28, 592(r1) # 8-byte Folded Spill
2299 ; BE-P8-PRIV-NEXT:    stfd f29, 600(r1) # 8-byte Folded Spill
2300 ; BE-P8-PRIV-NEXT:    stfd f30, 608(r1) # 8-byte Folded Spill
2301 ; BE-P8-PRIV-NEXT:    stfd f31, 616(r1) # 8-byte Folded Spill
2302 ; BE-P8-PRIV-NEXT:    stw r4, 132(r1)
2303 ; BE-P8-PRIV-NEXT:    #APP
2304 ; BE-P8-PRIV-NEXT:    nop
2305 ; BE-P8-PRIV-NEXT:    #NO_APP
2306 ; BE-P8-PRIV-NEXT:    addi r3, r1, 132
2307 ; BE-P8-PRIV-NEXT:    bl callee2
2308 ; BE-P8-PRIV-NEXT:    nop
2309 ; BE-P8-PRIV-NEXT:    ld r4, 120(r1) # 8-byte Folded Reload
2310 ; BE-P8-PRIV-NEXT:    lfd f31, 616(r1) # 8-byte Folded Reload
2311 ; BE-P8-PRIV-NEXT:    lfd f30, 608(r1) # 8-byte Folded Reload
2312 ; BE-P8-PRIV-NEXT:    ld r31, 472(r1) # 8-byte Folded Reload
2313 ; BE-P8-PRIV-NEXT:    lfd f29, 600(r1) # 8-byte Folded Reload
2314 ; BE-P8-PRIV-NEXT:    lfd f28, 592(r1) # 8-byte Folded Reload
2315 ; BE-P8-PRIV-NEXT:    ld r30, 464(r1) # 8-byte Folded Reload
2316 ; BE-P8-PRIV-NEXT:    ld r29, 456(r1) # 8-byte Folded Reload
2317 ; BE-P8-PRIV-NEXT:    lwz r4, 16(r4)
2318 ; BE-P8-PRIV-NEXT:    lfd f27, 584(r1) # 8-byte Folded Reload
2319 ; BE-P8-PRIV-NEXT:    lfd f26, 576(r1) # 8-byte Folded Reload
2320 ; BE-P8-PRIV-NEXT:    ld r28, 448(r1) # 8-byte Folded Reload
2321 ; BE-P8-PRIV-NEXT:    lfd f25, 568(r1) # 8-byte Folded Reload
2322 ; BE-P8-PRIV-NEXT:    lfd f24, 560(r1) # 8-byte Folded Reload
2323 ; BE-P8-PRIV-NEXT:    ld r27, 440(r1) # 8-byte Folded Reload
2324 ; BE-P8-PRIV-NEXT:    ld r26, 432(r1) # 8-byte Folded Reload
2325 ; BE-P8-PRIV-NEXT:    add r3, r4, r3
2326 ; BE-P8-PRIV-NEXT:    li r4, 320
2327 ; BE-P8-PRIV-NEXT:    lfd f23, 552(r1) # 8-byte Folded Reload
2328 ; BE-P8-PRIV-NEXT:    lfd f22, 544(r1) # 8-byte Folded Reload
2329 ; BE-P8-PRIV-NEXT:    ld r25, 424(r1) # 8-byte Folded Reload
2330 ; BE-P8-PRIV-NEXT:    ld r24, 416(r1) # 8-byte Folded Reload
2331 ; BE-P8-PRIV-NEXT:    lxvd2x v31, r1, r4 # 16-byte Folded Reload
2332 ; BE-P8-PRIV-NEXT:    li r4, 304
2333 ; BE-P8-PRIV-NEXT:    lfd f21, 536(r1) # 8-byte Folded Reload
2334 ; BE-P8-PRIV-NEXT:    ld r23, 408(r1) # 8-byte Folded Reload
2335 ; BE-P8-PRIV-NEXT:    ld r22, 400(r1) # 8-byte Folded Reload
2336 ; BE-P8-PRIV-NEXT:    clrldi r3, r3, 32
2337 ; BE-P8-PRIV-NEXT:    lxvd2x v30, r1, r4 # 16-byte Folded Reload
2338 ; BE-P8-PRIV-NEXT:    li r4, 288
2339 ; BE-P8-PRIV-NEXT:    lfd f20, 528(r1) # 8-byte Folded Reload
2340 ; BE-P8-PRIV-NEXT:    ld r21, 392(r1) # 8-byte Folded Reload
2341 ; BE-P8-PRIV-NEXT:    ld r20, 384(r1) # 8-byte Folded Reload
2342 ; BE-P8-PRIV-NEXT:    lxvd2x v29, r1, r4 # 16-byte Folded Reload
2343 ; BE-P8-PRIV-NEXT:    li r4, 272
2344 ; BE-P8-PRIV-NEXT:    lfd f19, 520(r1) # 8-byte Folded Reload
2345 ; BE-P8-PRIV-NEXT:    ld r19, 376(r1) # 8-byte Folded Reload
2346 ; BE-P8-PRIV-NEXT:    ld r18, 368(r1) # 8-byte Folded Reload
2347 ; BE-P8-PRIV-NEXT:    lxvd2x v28, r1, r4 # 16-byte Folded Reload
2348 ; BE-P8-PRIV-NEXT:    li r4, 256
2349 ; BE-P8-PRIV-NEXT:    lfd f18, 512(r1) # 8-byte Folded Reload
2350 ; BE-P8-PRIV-NEXT:    ld r17, 360(r1) # 8-byte Folded Reload
2351 ; BE-P8-PRIV-NEXT:    ld r16, 352(r1) # 8-byte Folded Reload
2352 ; BE-P8-PRIV-NEXT:    lxvd2x v27, r1, r4 # 16-byte Folded Reload
2353 ; BE-P8-PRIV-NEXT:    li r4, 240
2354 ; BE-P8-PRIV-NEXT:    lfd f17, 504(r1) # 8-byte Folded Reload
2355 ; BE-P8-PRIV-NEXT:    ld r15, 344(r1) # 8-byte Folded Reload
2356 ; BE-P8-PRIV-NEXT:    ld r14, 336(r1) # 8-byte Folded Reload
2357 ; BE-P8-PRIV-NEXT:    lxvd2x v26, r1, r4 # 16-byte Folded Reload
2358 ; BE-P8-PRIV-NEXT:    li r4, 224
2359 ; BE-P8-PRIV-NEXT:    lfd f16, 496(r1) # 8-byte Folded Reload
2360 ; BE-P8-PRIV-NEXT:    lxvd2x v25, r1, r4 # 16-byte Folded Reload
2361 ; BE-P8-PRIV-NEXT:    li r4, 208
2362 ; BE-P8-PRIV-NEXT:    lfd f15, 488(r1) # 8-byte Folded Reload
2363 ; BE-P8-PRIV-NEXT:    lxvd2x v24, r1, r4 # 16-byte Folded Reload
2364 ; BE-P8-PRIV-NEXT:    li r4, 192
2365 ; BE-P8-PRIV-NEXT:    lfd f14, 480(r1) # 8-byte Folded Reload
2366 ; BE-P8-PRIV-NEXT:    lxvd2x v23, r1, r4 # 16-byte Folded Reload
2367 ; BE-P8-PRIV-NEXT:    li r4, 176
2368 ; BE-P8-PRIV-NEXT:    lxvd2x v22, r1, r4 # 16-byte Folded Reload
2369 ; BE-P8-PRIV-NEXT:    li r4, 160
2370 ; BE-P8-PRIV-NEXT:    lxvd2x v21, r1, r4 # 16-byte Folded Reload
2371 ; BE-P8-PRIV-NEXT:    li r4, 144
2372 ; BE-P8-PRIV-NEXT:    lxvd2x v20, r1, r4 # 16-byte Folded Reload
2373 ; BE-P8-PRIV-NEXT:    addi r1, r1, 624
2374 ; BE-P8-PRIV-NEXT:    ld r0, 16(r1)
2375 ; BE-P8-PRIV-NEXT:    lwz r12, 8(r1)
2376 ; BE-P8-PRIV-NEXT:    mtocrf 32, r12
2377 ; BE-P8-PRIV-NEXT:    hashchkp r0, -488(r1)
2378 ; BE-P8-PRIV-NEXT:    mtlr r0
2379 ; BE-P8-PRIV-NEXT:    mtocrf 16, r12
2380 ; BE-P8-PRIV-NEXT:    mtocrf 8, r12
2381 ; BE-P8-PRIV-NEXT:    blr
2382 entry:
2383   %local = alloca i32, align 4
2384   %0 = bitcast i32* %local to i8*
2385   call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0)
2386   %arrayidx = getelementptr inbounds i32, i32* %in, i64 3
2387   %1 = load i32, i32* %arrayidx, align 4
2388   store i32 %1, i32* %local, align 4
2389   tail call void asm sideeffect "nop", "~{cr2},~{cr3},~{cr4},~{r0},~{r1},~{r2},~{r3},~{r4},~{r5},~{r6},~{r7},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15},~{r16},~{r17},~{r18},~{r19},~{r20},~{r21},~{r22},~{r23},~{r24},~{r25},~{r26},~{r27},~{r28},~{r29},~{r30},~{r31},~{f14},~{f15},~{f16},~{f17},~{f18},~{f19},~{f20},~{f21},~{f22},~{f23},~{f24},~{f25},~{f26},~{f27},~{f28},~{f29},~{f30},~{f31},~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"()
2390   %call = call zeroext i32 @callee2(i32* nonnull %local)
2391   %arrayidx1 = getelementptr inbounds i32, i32* %in, i64 4
2392   %2 = load i32, i32* %arrayidx1, align 4
2393   %add = add i32 %2, %call
2394   call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0)
2395   ret i32 %add
2398 define dso_local zeroext i32 @shrinkwrap(i32* readonly %in) #0 {
2399 ; LE-P10-LABEL: shrinkwrap:
2400 ; LE-P10:       # %bb.0: # %entry
2401 ; LE-P10-NEXT:    cmpldi r3, 0
2402 ; LE-P10-NEXT:    beq cr0, .LBB2_2
2403 ; LE-P10-NEXT:  # %bb.1: # %if.end
2404 ; LE-P10-NEXT:    mflr r0
2405 ; LE-P10-NEXT:    std r30, -16(r1) # 8-byte Folded Spill
2406 ; LE-P10-NEXT:    std r0, 16(r1)
2407 ; LE-P10-NEXT:    hashst r0, -24(r1)
2408 ; LE-P10-NEXT:    stdu r1, -64(r1)
2409 ; LE-P10-NEXT:    mr r30, r3
2410 ; LE-P10-NEXT:    lwz r3, 12(r3)
2411 ; LE-P10-NEXT:    stw r3, 36(r1)
2412 ; LE-P10-NEXT:    addi r3, r1, 36
2413 ; LE-P10-NEXT:    bl callee2@notoc
2414 ; LE-P10-NEXT:    lwz r4, 16(r30)
2415 ; LE-P10-NEXT:    add r3, r4, r3
2416 ; LE-P10-NEXT:    addi r1, r1, 64
2417 ; LE-P10-NEXT:    ld r0, 16(r1)
2418 ; LE-P10-NEXT:    clrldi r3, r3, 32
2419 ; LE-P10-NEXT:    mtlr r0
2420 ; LE-P10-NEXT:    hashchk r0, -24(r1)
2421 ; LE-P10-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload
2422 ; LE-P10-NEXT:    blr
2423 ; LE-P10-NEXT:  .LBB2_2:
2424 ; LE-P10-NEXT:    li r3, 0
2425 ; LE-P10-NEXT:    blr
2427 ; LE-P9-LABEL: shrinkwrap:
2428 ; LE-P9:       # %bb.0: # %entry
2429 ; LE-P9-NEXT:    cmpldi r3, 0
2430 ; LE-P9-NEXT:    beq cr0, .LBB2_2
2431 ; LE-P9-NEXT:  # %bb.1: # %if.end
2432 ; LE-P9-NEXT:    mflr r0
2433 ; LE-P9-NEXT:    std r30, -16(r1) # 8-byte Folded Spill
2434 ; LE-P9-NEXT:    std r0, 16(r1)
2435 ; LE-P9-NEXT:    hashst r0, -24(r1)
2436 ; LE-P9-NEXT:    stdu r1, -64(r1)
2437 ; LE-P9-NEXT:    mr r30, r3
2438 ; LE-P9-NEXT:    lwz r3, 12(r3)
2439 ; LE-P9-NEXT:    stw r3, 36(r1)
2440 ; LE-P9-NEXT:    addi r3, r1, 36
2441 ; LE-P9-NEXT:    bl callee2
2442 ; LE-P9-NEXT:    nop
2443 ; LE-P9-NEXT:    lwz r4, 16(r30)
2444 ; LE-P9-NEXT:    add r3, r4, r3
2445 ; LE-P9-NEXT:    addi r1, r1, 64
2446 ; LE-P9-NEXT:    ld r0, 16(r1)
2447 ; LE-P9-NEXT:    clrldi r3, r3, 32
2448 ; LE-P9-NEXT:    mtlr r0
2449 ; LE-P9-NEXT:    hashchk r0, -24(r1)
2450 ; LE-P9-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload
2451 ; LE-P9-NEXT:    blr
2452 ; LE-P9-NEXT:  .LBB2_2:
2453 ; LE-P9-NEXT:    li r3, 0
2454 ; LE-P9-NEXT:    blr
2456 ; LE-P8-LABEL: shrinkwrap:
2457 ; LE-P8:       # %bb.0: # %entry
2458 ; LE-P8-NEXT:    cmpldi r3, 0
2459 ; LE-P8-NEXT:    beq cr0, .LBB2_2
2460 ; LE-P8-NEXT:  # %bb.1: # %if.end
2461 ; LE-P8-NEXT:    mflr r0
2462 ; LE-P8-NEXT:    std r30, -16(r1) # 8-byte Folded Spill
2463 ; LE-P8-NEXT:    std r0, 16(r1)
2464 ; LE-P8-NEXT:    hashst r0, -24(r1)
2465 ; LE-P8-NEXT:    stdu r1, -64(r1)
2466 ; LE-P8-NEXT:    mr r30, r3
2467 ; LE-P8-NEXT:    lwz r3, 12(r3)
2468 ; LE-P8-NEXT:    stw r3, 36(r1)
2469 ; LE-P8-NEXT:    addi r3, r1, 36
2470 ; LE-P8-NEXT:    bl callee2
2471 ; LE-P8-NEXT:    nop
2472 ; LE-P8-NEXT:    lwz r4, 16(r30)
2473 ; LE-P8-NEXT:    add r3, r4, r3
2474 ; LE-P8-NEXT:    addi r1, r1, 64
2475 ; LE-P8-NEXT:    ld r0, 16(r1)
2476 ; LE-P8-NEXT:    clrldi r3, r3, 32
2477 ; LE-P8-NEXT:    hashchk r0, -24(r1)
2478 ; LE-P8-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload
2479 ; LE-P8-NEXT:    mtlr r0
2480 ; LE-P8-NEXT:    blr
2481 ; LE-P8-NEXT:  .LBB2_2:
2482 ; LE-P8-NEXT:    li r3, 0
2483 ; LE-P8-NEXT:    blr
2485 ; LE-P10-O0-LABEL: shrinkwrap:
2486 ; LE-P10-O0:       # %bb.0: # %entry
2487 ; LE-P10-O0-NEXT:    mflr r0
2488 ; LE-P10-O0-NEXT:    std r0, 16(r1)
2489 ; LE-P10-O0-NEXT:    hashst r0, -8(r1)
2490 ; LE-P10-O0-NEXT:    stdu r1, -64(r1)
2491 ; LE-P10-O0-NEXT:    mr r4, r3
2492 ; LE-P10-O0-NEXT:    std r4, 40(r1) # 8-byte Folded Spill
2493 ; LE-P10-O0-NEXT:    li r3, 0
2494 ; LE-P10-O0-NEXT:    cmpdi r4, 0
2495 ; LE-P10-O0-NEXT:    stw r3, 48(r1) # 4-byte Folded Spill
2496 ; LE-P10-O0-NEXT:    beq cr0, .LBB2_2
2497 ; LE-P10-O0-NEXT:  # %bb.1: # %if.end
2498 ; LE-P10-O0-NEXT:    ld r3, 40(r1) # 8-byte Folded Reload
2499 ; LE-P10-O0-NEXT:    lwz r3, 12(r3)
2500 ; LE-P10-O0-NEXT:    stw r3, 52(r1)
2501 ; LE-P10-O0-NEXT:    addi r3, r1, 52
2502 ; LE-P10-O0-NEXT:    bl callee2@notoc
2503 ; LE-P10-O0-NEXT:    mr r4, r3
2504 ; LE-P10-O0-NEXT:    ld r3, 40(r1) # 8-byte Folded Reload
2505 ; LE-P10-O0-NEXT:    # kill: def $r4 killed $r4 killed $x4
2506 ; LE-P10-O0-NEXT:    lwz r3, 16(r3)
2507 ; LE-P10-O0-NEXT:    add r3, r3, r4
2508 ; LE-P10-O0-NEXT:    stw r3, 48(r1) # 4-byte Folded Spill
2509 ; LE-P10-O0-NEXT:  .LBB2_2: # %return
2510 ; LE-P10-O0-NEXT:    lwz r3, 48(r1) # 4-byte Folded Reload
2511 ; LE-P10-O0-NEXT:    clrldi r3, r3, 32
2512 ; LE-P10-O0-NEXT:    addi r1, r1, 64
2513 ; LE-P10-O0-NEXT:    ld r0, 16(r1)
2514 ; LE-P10-O0-NEXT:    hashchk r0, -8(r1)
2515 ; LE-P10-O0-NEXT:    mtlr r0
2516 ; LE-P10-O0-NEXT:    blr
2518 ; LE-P9-O0-LABEL: shrinkwrap:
2519 ; LE-P9-O0:       # %bb.0: # %entry
2520 ; LE-P9-O0-NEXT:    mflr r0
2521 ; LE-P9-O0-NEXT:    std r0, 16(r1)
2522 ; LE-P9-O0-NEXT:    hashst r0, -8(r1)
2523 ; LE-P9-O0-NEXT:    stdu r1, -128(r1)
2524 ; LE-P9-O0-NEXT:    mr r4, r3
2525 ; LE-P9-O0-NEXT:    std r4, 104(r1) # 8-byte Folded Spill
2526 ; LE-P9-O0-NEXT:    li r3, 0
2527 ; LE-P9-O0-NEXT:    cmpdi r4, 0
2528 ; LE-P9-O0-NEXT:    stw r3, 112(r1) # 4-byte Folded Spill
2529 ; LE-P9-O0-NEXT:    beq cr0, .LBB2_2
2530 ; LE-P9-O0-NEXT:  # %bb.1: # %if.end
2531 ; LE-P9-O0-NEXT:    ld r3, 104(r1) # 8-byte Folded Reload
2532 ; LE-P9-O0-NEXT:    lwz r3, 12(r3)
2533 ; LE-P9-O0-NEXT:    stw r3, 116(r1)
2534 ; LE-P9-O0-NEXT:    addi r3, r1, 116
2535 ; LE-P9-O0-NEXT:    bl callee2
2536 ; LE-P9-O0-NEXT:    nop
2537 ; LE-P9-O0-NEXT:    mr r4, r3
2538 ; LE-P9-O0-NEXT:    ld r3, 104(r1) # 8-byte Folded Reload
2539 ; LE-P9-O0-NEXT:    lwz r3, 16(r3)
2540 ; LE-P9-O0-NEXT:    add r3, r3, r4
2541 ; LE-P9-O0-NEXT:    stw r3, 112(r1) # 4-byte Folded Spill
2542 ; LE-P9-O0-NEXT:  .LBB2_2: # %return
2543 ; LE-P9-O0-NEXT:    lwz r3, 112(r1) # 4-byte Folded Reload
2544 ; LE-P9-O0-NEXT:    clrldi r3, r3, 32
2545 ; LE-P9-O0-NEXT:    addi r1, r1, 128
2546 ; LE-P9-O0-NEXT:    ld r0, 16(r1)
2547 ; LE-P9-O0-NEXT:    hashchk r0, -8(r1)
2548 ; LE-P9-O0-NEXT:    mtlr r0
2549 ; LE-P9-O0-NEXT:    blr
2551 ; LE-P8-O0-LABEL: shrinkwrap:
2552 ; LE-P8-O0:       # %bb.0: # %entry
2553 ; LE-P8-O0-NEXT:    mflr r0
2554 ; LE-P8-O0-NEXT:    std r0, 16(r1)
2555 ; LE-P8-O0-NEXT:    hashst r0, -8(r1)
2556 ; LE-P8-O0-NEXT:    stdu r1, -128(r1)
2557 ; LE-P8-O0-NEXT:    mr r4, r3
2558 ; LE-P8-O0-NEXT:    std r4, 104(r1) # 8-byte Folded Spill
2559 ; LE-P8-O0-NEXT:    li r3, 0
2560 ; LE-P8-O0-NEXT:    cmpdi r4, 0
2561 ; LE-P8-O0-NEXT:    stw r3, 112(r1) # 4-byte Folded Spill
2562 ; LE-P8-O0-NEXT:    beq cr0, .LBB2_2
2563 ; LE-P8-O0-NEXT:  # %bb.1: # %if.end
2564 ; LE-P8-O0-NEXT:    ld r3, 104(r1) # 8-byte Folded Reload
2565 ; LE-P8-O0-NEXT:    lwz r3, 12(r3)
2566 ; LE-P8-O0-NEXT:    stw r3, 116(r1)
2567 ; LE-P8-O0-NEXT:    addi r3, r1, 116
2568 ; LE-P8-O0-NEXT:    bl callee2
2569 ; LE-P8-O0-NEXT:    nop
2570 ; LE-P8-O0-NEXT:    mr r4, r3
2571 ; LE-P8-O0-NEXT:    ld r3, 104(r1) # 8-byte Folded Reload
2572 ; LE-P8-O0-NEXT:    lwz r3, 16(r3)
2573 ; LE-P8-O0-NEXT:    add r3, r3, r4
2574 ; LE-P8-O0-NEXT:    stw r3, 112(r1) # 4-byte Folded Spill
2575 ; LE-P8-O0-NEXT:  .LBB2_2: # %return
2576 ; LE-P8-O0-NEXT:    lwz r3, 112(r1) # 4-byte Folded Reload
2577 ; LE-P8-O0-NEXT:    clrldi r3, r3, 32
2578 ; LE-P8-O0-NEXT:    addi r1, r1, 128
2579 ; LE-P8-O0-NEXT:    ld r0, 16(r1)
2580 ; LE-P8-O0-NEXT:    hashchk r0, -8(r1)
2581 ; LE-P8-O0-NEXT:    mtlr r0
2582 ; LE-P8-O0-NEXT:    blr
2584 ; BE-P10-LABEL: shrinkwrap:
2585 ; BE-P10:       # %bb.0: # %entry
2586 ; BE-P10-NEXT:    cmpldi r3, 0
2587 ; BE-P10-NEXT:    beq cr0, .LBB2_2
2588 ; BE-P10-NEXT:  # %bb.1: # %if.end
2589 ; BE-P10-NEXT:    mflr r0
2590 ; BE-P10-NEXT:    std r0, 16(r1)
2591 ; BE-P10-NEXT:    hashst r0, -24(r1)
2592 ; BE-P10-NEXT:    stdu r1, -144(r1)
2593 ; BE-P10-NEXT:    std r30, 128(r1) # 8-byte Folded Spill
2594 ; BE-P10-NEXT:    mr r30, r3
2595 ; BE-P10-NEXT:    lwz r3, 12(r3)
2596 ; BE-P10-NEXT:    stw r3, 116(r1)
2597 ; BE-P10-NEXT:    addi r3, r1, 116
2598 ; BE-P10-NEXT:    bl callee2
2599 ; BE-P10-NEXT:    nop
2600 ; BE-P10-NEXT:    lwz r4, 16(r30)
2601 ; BE-P10-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload
2602 ; BE-P10-NEXT:    add r3, r4, r3
2603 ; BE-P10-NEXT:    addi r1, r1, 144
2604 ; BE-P10-NEXT:    ld r0, 16(r1)
2605 ; BE-P10-NEXT:    clrldi r3, r3, 32
2606 ; BE-P10-NEXT:    mtlr r0
2607 ; BE-P10-NEXT:    hashchk r0, -24(r1)
2608 ; BE-P10-NEXT:    blr
2609 ; BE-P10-NEXT:  .LBB2_2:
2610 ; BE-P10-NEXT:    li r3, 0
2611 ; BE-P10-NEXT:    blr
2613 ; BE-P9-LABEL: shrinkwrap:
2614 ; BE-P9:       # %bb.0: # %entry
2615 ; BE-P9-NEXT:    cmpldi r3, 0
2616 ; BE-P9-NEXT:    beq cr0, .LBB2_2
2617 ; BE-P9-NEXT:  # %bb.1: # %if.end
2618 ; BE-P9-NEXT:    mflr r0
2619 ; BE-P9-NEXT:    std r0, 16(r1)
2620 ; BE-P9-NEXT:    hashst r0, -24(r1)
2621 ; BE-P9-NEXT:    stdu r1, -144(r1)
2622 ; BE-P9-NEXT:    std r30, 128(r1) # 8-byte Folded Spill
2623 ; BE-P9-NEXT:    mr r30, r3
2624 ; BE-P9-NEXT:    lwz r3, 12(r3)
2625 ; BE-P9-NEXT:    stw r3, 116(r1)
2626 ; BE-P9-NEXT:    addi r3, r1, 116
2627 ; BE-P9-NEXT:    bl callee2
2628 ; BE-P9-NEXT:    nop
2629 ; BE-P9-NEXT:    lwz r4, 16(r30)
2630 ; BE-P9-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload
2631 ; BE-P9-NEXT:    add r3, r4, r3
2632 ; BE-P9-NEXT:    addi r1, r1, 144
2633 ; BE-P9-NEXT:    ld r0, 16(r1)
2634 ; BE-P9-NEXT:    clrldi r3, r3, 32
2635 ; BE-P9-NEXT:    mtlr r0
2636 ; BE-P9-NEXT:    hashchk r0, -24(r1)
2637 ; BE-P9-NEXT:    blr
2638 ; BE-P9-NEXT:  .LBB2_2:
2639 ; BE-P9-NEXT:    li r3, 0
2640 ; BE-P9-NEXT:    blr
2642 ; BE-P8-LABEL: shrinkwrap:
2643 ; BE-P8:       # %bb.0: # %entry
2644 ; BE-P8-NEXT:    cmpldi r3, 0
2645 ; BE-P8-NEXT:    beq cr0, .LBB2_2
2646 ; BE-P8-NEXT:  # %bb.1: # %if.end
2647 ; BE-P8-NEXT:    mflr r0
2648 ; BE-P8-NEXT:    std r0, 16(r1)
2649 ; BE-P8-NEXT:    hashst r0, -24(r1)
2650 ; BE-P8-NEXT:    stdu r1, -144(r1)
2651 ; BE-P8-NEXT:    std r30, 128(r1) # 8-byte Folded Spill
2652 ; BE-P8-NEXT:    mr r30, r3
2653 ; BE-P8-NEXT:    lwz r3, 12(r3)
2654 ; BE-P8-NEXT:    stw r3, 116(r1)
2655 ; BE-P8-NEXT:    addi r3, r1, 116
2656 ; BE-P8-NEXT:    bl callee2
2657 ; BE-P8-NEXT:    nop
2658 ; BE-P8-NEXT:    lwz r4, 16(r30)
2659 ; BE-P8-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload
2660 ; BE-P8-NEXT:    add r3, r4, r3
2661 ; BE-P8-NEXT:    addi r1, r1, 144
2662 ; BE-P8-NEXT:    ld r0, 16(r1)
2663 ; BE-P8-NEXT:    clrldi r3, r3, 32
2664 ; BE-P8-NEXT:    hashchk r0, -24(r1)
2665 ; BE-P8-NEXT:    mtlr r0
2666 ; BE-P8-NEXT:    blr
2667 ; BE-P8-NEXT:  .LBB2_2:
2668 ; BE-P8-NEXT:    li r3, 0
2669 ; BE-P8-NEXT:    blr
2671 ; LE-P10-PRIV-LABEL: shrinkwrap:
2672 ; LE-P10-PRIV:       # %bb.0: # %entry
2673 ; LE-P10-PRIV-NEXT:    cmpldi r3, 0
2674 ; LE-P10-PRIV-NEXT:    beq cr0, .LBB2_2
2675 ; LE-P10-PRIV-NEXT:  # %bb.1: # %if.end
2676 ; LE-P10-PRIV-NEXT:    mflr r0
2677 ; LE-P10-PRIV-NEXT:    std r30, -16(r1) # 8-byte Folded Spill
2678 ; LE-P10-PRIV-NEXT:    std r0, 16(r1)
2679 ; LE-P10-PRIV-NEXT:    hashstp r0, -24(r1)
2680 ; LE-P10-PRIV-NEXT:    stdu r1, -64(r1)
2681 ; LE-P10-PRIV-NEXT:    mr r30, r3
2682 ; LE-P10-PRIV-NEXT:    lwz r3, 12(r3)
2683 ; LE-P10-PRIV-NEXT:    stw r3, 36(r1)
2684 ; LE-P10-PRIV-NEXT:    addi r3, r1, 36
2685 ; LE-P10-PRIV-NEXT:    bl callee2@notoc
2686 ; LE-P10-PRIV-NEXT:    lwz r4, 16(r30)
2687 ; LE-P10-PRIV-NEXT:    add r3, r4, r3
2688 ; LE-P10-PRIV-NEXT:    addi r1, r1, 64
2689 ; LE-P10-PRIV-NEXT:    ld r0, 16(r1)
2690 ; LE-P10-PRIV-NEXT:    clrldi r3, r3, 32
2691 ; LE-P10-PRIV-NEXT:    mtlr r0
2692 ; LE-P10-PRIV-NEXT:    hashchkp r0, -24(r1)
2693 ; LE-P10-PRIV-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload
2694 ; LE-P10-PRIV-NEXT:    blr
2695 ; LE-P10-PRIV-NEXT:  .LBB2_2:
2696 ; LE-P10-PRIV-NEXT:    li r3, 0
2697 ; LE-P10-PRIV-NEXT:    blr
2699 ; LE-P9-PRIV-LABEL: shrinkwrap:
2700 ; LE-P9-PRIV:       # %bb.0: # %entry
2701 ; LE-P9-PRIV-NEXT:    cmpldi r3, 0
2702 ; LE-P9-PRIV-NEXT:    beq cr0, .LBB2_2
2703 ; LE-P9-PRIV-NEXT:  # %bb.1: # %if.end
2704 ; LE-P9-PRIV-NEXT:    mflr r0
2705 ; LE-P9-PRIV-NEXT:    std r30, -16(r1) # 8-byte Folded Spill
2706 ; LE-P9-PRIV-NEXT:    std r0, 16(r1)
2707 ; LE-P9-PRIV-NEXT:    hashstp r0, -24(r1)
2708 ; LE-P9-PRIV-NEXT:    stdu r1, -64(r1)
2709 ; LE-P9-PRIV-NEXT:    mr r30, r3
2710 ; LE-P9-PRIV-NEXT:    lwz r3, 12(r3)
2711 ; LE-P9-PRIV-NEXT:    stw r3, 36(r1)
2712 ; LE-P9-PRIV-NEXT:    addi r3, r1, 36
2713 ; LE-P9-PRIV-NEXT:    bl callee2
2714 ; LE-P9-PRIV-NEXT:    nop
2715 ; LE-P9-PRIV-NEXT:    lwz r4, 16(r30)
2716 ; LE-P9-PRIV-NEXT:    add r3, r4, r3
2717 ; LE-P9-PRIV-NEXT:    addi r1, r1, 64
2718 ; LE-P9-PRIV-NEXT:    ld r0, 16(r1)
2719 ; LE-P9-PRIV-NEXT:    clrldi r3, r3, 32
2720 ; LE-P9-PRIV-NEXT:    mtlr r0
2721 ; LE-P9-PRIV-NEXT:    hashchkp r0, -24(r1)
2722 ; LE-P9-PRIV-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload
2723 ; LE-P9-PRIV-NEXT:    blr
2724 ; LE-P9-PRIV-NEXT:  .LBB2_2:
2725 ; LE-P9-PRIV-NEXT:    li r3, 0
2726 ; LE-P9-PRIV-NEXT:    blr
2728 ; LE-P8-PRIV-LABEL: shrinkwrap:
2729 ; LE-P8-PRIV:       # %bb.0: # %entry
2730 ; LE-P8-PRIV-NEXT:    cmpldi r3, 0
2731 ; LE-P8-PRIV-NEXT:    beq cr0, .LBB2_2
2732 ; LE-P8-PRIV-NEXT:  # %bb.1: # %if.end
2733 ; LE-P8-PRIV-NEXT:    mflr r0
2734 ; LE-P8-PRIV-NEXT:    std r30, -16(r1) # 8-byte Folded Spill
2735 ; LE-P8-PRIV-NEXT:    std r0, 16(r1)
2736 ; LE-P8-PRIV-NEXT:    hashstp r0, -24(r1)
2737 ; LE-P8-PRIV-NEXT:    stdu r1, -64(r1)
2738 ; LE-P8-PRIV-NEXT:    mr r30, r3
2739 ; LE-P8-PRIV-NEXT:    lwz r3, 12(r3)
2740 ; LE-P8-PRIV-NEXT:    stw r3, 36(r1)
2741 ; LE-P8-PRIV-NEXT:    addi r3, r1, 36
2742 ; LE-P8-PRIV-NEXT:    bl callee2
2743 ; LE-P8-PRIV-NEXT:    nop
2744 ; LE-P8-PRIV-NEXT:    lwz r4, 16(r30)
2745 ; LE-P8-PRIV-NEXT:    add r3, r4, r3
2746 ; LE-P8-PRIV-NEXT:    addi r1, r1, 64
2747 ; LE-P8-PRIV-NEXT:    ld r0, 16(r1)
2748 ; LE-P8-PRIV-NEXT:    clrldi r3, r3, 32
2749 ; LE-P8-PRIV-NEXT:    hashchkp r0, -24(r1)
2750 ; LE-P8-PRIV-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload
2751 ; LE-P8-PRIV-NEXT:    mtlr r0
2752 ; LE-P8-PRIV-NEXT:    blr
2753 ; LE-P8-PRIV-NEXT:  .LBB2_2:
2754 ; LE-P8-PRIV-NEXT:    li r3, 0
2755 ; LE-P8-PRIV-NEXT:    blr
2757 ; BE-P10-PRIV-LABEL: shrinkwrap:
2758 ; BE-P10-PRIV:       # %bb.0: # %entry
2759 ; BE-P10-PRIV-NEXT:    cmpldi r3, 0
2760 ; BE-P10-PRIV-NEXT:    beq cr0, .LBB2_2
2761 ; BE-P10-PRIV-NEXT:  # %bb.1: # %if.end
2762 ; BE-P10-PRIV-NEXT:    mflr r0
2763 ; BE-P10-PRIV-NEXT:    std r0, 16(r1)
2764 ; BE-P10-PRIV-NEXT:    hashstp r0, -24(r1)
2765 ; BE-P10-PRIV-NEXT:    stdu r1, -144(r1)
2766 ; BE-P10-PRIV-NEXT:    std r30, 128(r1) # 8-byte Folded Spill
2767 ; BE-P10-PRIV-NEXT:    mr r30, r3
2768 ; BE-P10-PRIV-NEXT:    lwz r3, 12(r3)
2769 ; BE-P10-PRIV-NEXT:    stw r3, 116(r1)
2770 ; BE-P10-PRIV-NEXT:    addi r3, r1, 116
2771 ; BE-P10-PRIV-NEXT:    bl callee2
2772 ; BE-P10-PRIV-NEXT:    nop
2773 ; BE-P10-PRIV-NEXT:    lwz r4, 16(r30)
2774 ; BE-P10-PRIV-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload
2775 ; BE-P10-PRIV-NEXT:    add r3, r4, r3
2776 ; BE-P10-PRIV-NEXT:    addi r1, r1, 144
2777 ; BE-P10-PRIV-NEXT:    ld r0, 16(r1)
2778 ; BE-P10-PRIV-NEXT:    clrldi r3, r3, 32
2779 ; BE-P10-PRIV-NEXT:    mtlr r0
2780 ; BE-P10-PRIV-NEXT:    hashchkp r0, -24(r1)
2781 ; BE-P10-PRIV-NEXT:    blr
2782 ; BE-P10-PRIV-NEXT:  .LBB2_2:
2783 ; BE-P10-PRIV-NEXT:    li r3, 0
2784 ; BE-P10-PRIV-NEXT:    blr
2786 ; BE-P9-PRIV-LABEL: shrinkwrap:
2787 ; BE-P9-PRIV:       # %bb.0: # %entry
2788 ; BE-P9-PRIV-NEXT:    cmpldi r3, 0
2789 ; BE-P9-PRIV-NEXT:    beq cr0, .LBB2_2
2790 ; BE-P9-PRIV-NEXT:  # %bb.1: # %if.end
2791 ; BE-P9-PRIV-NEXT:    mflr r0
2792 ; BE-P9-PRIV-NEXT:    std r0, 16(r1)
2793 ; BE-P9-PRIV-NEXT:    hashstp r0, -24(r1)
2794 ; BE-P9-PRIV-NEXT:    stdu r1, -144(r1)
2795 ; BE-P9-PRIV-NEXT:    std r30, 128(r1) # 8-byte Folded Spill
2796 ; BE-P9-PRIV-NEXT:    mr r30, r3
2797 ; BE-P9-PRIV-NEXT:    lwz r3, 12(r3)
2798 ; BE-P9-PRIV-NEXT:    stw r3, 116(r1)
2799 ; BE-P9-PRIV-NEXT:    addi r3, r1, 116
2800 ; BE-P9-PRIV-NEXT:    bl callee2
2801 ; BE-P9-PRIV-NEXT:    nop
2802 ; BE-P9-PRIV-NEXT:    lwz r4, 16(r30)
2803 ; BE-P9-PRIV-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload
2804 ; BE-P9-PRIV-NEXT:    add r3, r4, r3
2805 ; BE-P9-PRIV-NEXT:    addi r1, r1, 144
2806 ; BE-P9-PRIV-NEXT:    ld r0, 16(r1)
2807 ; BE-P9-PRIV-NEXT:    clrldi r3, r3, 32
2808 ; BE-P9-PRIV-NEXT:    mtlr r0
2809 ; BE-P9-PRIV-NEXT:    hashchkp r0, -24(r1)
2810 ; BE-P9-PRIV-NEXT:    blr
2811 ; BE-P9-PRIV-NEXT:  .LBB2_2:
2812 ; BE-P9-PRIV-NEXT:    li r3, 0
2813 ; BE-P9-PRIV-NEXT:    blr
2815 ; BE-P8-PRIV-LABEL: shrinkwrap:
2816 ; BE-P8-PRIV:       # %bb.0: # %entry
2817 ; BE-P8-PRIV-NEXT:    cmpldi r3, 0
2818 ; BE-P8-PRIV-NEXT:    beq cr0, .LBB2_2
2819 ; BE-P8-PRIV-NEXT:  # %bb.1: # %if.end
2820 ; BE-P8-PRIV-NEXT:    mflr r0
2821 ; BE-P8-PRIV-NEXT:    std r0, 16(r1)
2822 ; BE-P8-PRIV-NEXT:    hashstp r0, -24(r1)
2823 ; BE-P8-PRIV-NEXT:    stdu r1, -144(r1)
2824 ; BE-P8-PRIV-NEXT:    std r30, 128(r1) # 8-byte Folded Spill
2825 ; BE-P8-PRIV-NEXT:    mr r30, r3
2826 ; BE-P8-PRIV-NEXT:    lwz r3, 12(r3)
2827 ; BE-P8-PRIV-NEXT:    stw r3, 116(r1)
2828 ; BE-P8-PRIV-NEXT:    addi r3, r1, 116
2829 ; BE-P8-PRIV-NEXT:    bl callee2
2830 ; BE-P8-PRIV-NEXT:    nop
2831 ; BE-P8-PRIV-NEXT:    lwz r4, 16(r30)
2832 ; BE-P8-PRIV-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload
2833 ; BE-P8-PRIV-NEXT:    add r3, r4, r3
2834 ; BE-P8-PRIV-NEXT:    addi r1, r1, 144
2835 ; BE-P8-PRIV-NEXT:    ld r0, 16(r1)
2836 ; BE-P8-PRIV-NEXT:    clrldi r3, r3, 32
2837 ; BE-P8-PRIV-NEXT:    hashchkp r0, -24(r1)
2838 ; BE-P8-PRIV-NEXT:    mtlr r0
2839 ; BE-P8-PRIV-NEXT:    blr
2840 ; BE-P8-PRIV-NEXT:  .LBB2_2:
2841 ; BE-P8-PRIV-NEXT:    li r3, 0
2842 ; BE-P8-PRIV-NEXT:    blr
2843 entry:
2844   %local = alloca i32, align 4
2845   %tobool.not = icmp eq i32* %in, null
2846   br i1 %tobool.not, label %return, label %if.end
2848 if.end:                                           ; preds = %entry
2849   %0 = bitcast i32* %local to i8*
2850   call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0)
2851   %arrayidx = getelementptr inbounds i32, i32* %in, i64 3
2852   %1 = load i32, i32* %arrayidx, align 4
2853   store i32 %1, i32* %local, align 4
2854   %call = call zeroext i32 @callee2(i32* nonnull %local)
2855   %arrayidx1 = getelementptr inbounds i32, i32* %in, i64 4
2856   %2 = load i32, i32* %arrayidx1, align 4
2857   %add = add i32 %2, %call
2858   call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0)
2859   br label %return
2861 return:                                           ; preds = %entry, %if.end
2862   %retval.0 = phi i32 [ %add, %if.end ], [ 0, %entry ]
2863   ret i32 %retval.0
2866 define dso_local zeroext i32 @aligned(i32* nocapture readonly %in) #0 {
2867 ; LE-P10-LABEL: aligned:
2868 ; LE-P10:       # %bb.0: # %entry
2869 ; LE-P10-NEXT:    mflr r0
2870 ; LE-P10-NEXT:    lis r12, -1
2871 ; LE-P10-NEXT:    std r30, -16(r1)
2872 ; LE-P10-NEXT:    mr r30, r1
2873 ; LE-P10-NEXT:    ori r12, r12, 0
2874 ; LE-P10-NEXT:    std r0, 16(r1)
2875 ; LE-P10-NEXT:    hashst r0, -32(r1)
2876 ; LE-P10-NEXT:    clrldi r0, r1, 49
2877 ; LE-P10-NEXT:    subc r0, r12, r0
2878 ; LE-P10-NEXT:    stdux r1, r1, r0
2879 ; LE-P10-NEXT:    std r29, -24(r30) # 8-byte Folded Spill
2880 ; LE-P10-NEXT:    mr r29, r3
2881 ; LE-P10-NEXT:    lwz r3, 4(r3)
2882 ; LE-P10-NEXT:    lis r4, 0
2883 ; LE-P10-NEXT:    addi r5, r1, 32764
2884 ; LE-P10-NEXT:    ori r4, r4, 65500
2885 ; LE-P10-NEXT:    stwx r3, r1, r4
2886 ; LE-P10-NEXT:    lwz r3, 12(r29)
2887 ; LE-P10-NEXT:    lis r4, 0
2888 ; LE-P10-NEXT:    ori r4, r4, 32768
2889 ; LE-P10-NEXT:    stwx r3, r1, r4
2890 ; LE-P10-NEXT:    lwz r3, 20(r29)
2891 ; LE-P10-NEXT:    lis r4, 0
2892 ; LE-P10-NEXT:    ori r4, r4, 65500
2893 ; LE-P10-NEXT:    stw r3, 32764(r1)
2894 ; LE-P10-NEXT:    lis r3, 0
2895 ; LE-P10-NEXT:    add r4, r1, r4
2896 ; LE-P10-NEXT:    ori r3, r3, 32768
2897 ; LE-P10-NEXT:    add r3, r1, r3
2898 ; LE-P10-NEXT:    bl callee3@notoc
2899 ; LE-P10-NEXT:    lwz r4, 16(r29)
2900 ; LE-P10-NEXT:    ld r29, -24(r30) # 8-byte Folded Reload
2901 ; LE-P10-NEXT:    add r3, r4, r3
2902 ; LE-P10-NEXT:    clrldi r3, r3, 32
2903 ; LE-P10-NEXT:    mr r1, r30
2904 ; LE-P10-NEXT:    ld r0, 16(r1)
2905 ; LE-P10-NEXT:    ld r30, -16(r1)
2906 ; LE-P10-NEXT:    mtlr r0
2907 ; LE-P10-NEXT:    hashchk r0, -32(r1)
2908 ; LE-P10-NEXT:    blr
2910 ; LE-P9-LABEL: aligned:
2911 ; LE-P9:       # %bb.0: # %entry
2912 ; LE-P9-NEXT:    mflr r0
2913 ; LE-P9-NEXT:    lis r12, -1
2914 ; LE-P9-NEXT:    std r30, -16(r1)
2915 ; LE-P9-NEXT:    mr r30, r1
2916 ; LE-P9-NEXT:    ori r12, r12, 0
2917 ; LE-P9-NEXT:    std r0, 16(r1)
2918 ; LE-P9-NEXT:    hashst r0, -32(r1)
2919 ; LE-P9-NEXT:    clrldi r0, r1, 49
2920 ; LE-P9-NEXT:    subc r0, r12, r0
2921 ; LE-P9-NEXT:    stdux r1, r1, r0
2922 ; LE-P9-NEXT:    std r29, -24(r30) # 8-byte Folded Spill
2923 ; LE-P9-NEXT:    mr r29, r3
2924 ; LE-P9-NEXT:    lwz r3, 4(r3)
2925 ; LE-P9-NEXT:    lis r4, 0
2926 ; LE-P9-NEXT:    addi r5, r1, 32764
2927 ; LE-P9-NEXT:    ori r4, r4, 65500
2928 ; LE-P9-NEXT:    stwx r3, r1, r4
2929 ; LE-P9-NEXT:    lwz r3, 12(r29)
2930 ; LE-P9-NEXT:    lis r4, 0
2931 ; LE-P9-NEXT:    ori r4, r4, 32768
2932 ; LE-P9-NEXT:    stwx r3, r1, r4
2933 ; LE-P9-NEXT:    lwz r3, 20(r29)
2934 ; LE-P9-NEXT:    lis r4, 0
2935 ; LE-P9-NEXT:    ori r4, r4, 65500
2936 ; LE-P9-NEXT:    stw r3, 32764(r1)
2937 ; LE-P9-NEXT:    lis r3, 0
2938 ; LE-P9-NEXT:    add r4, r1, r4
2939 ; LE-P9-NEXT:    ori r3, r3, 32768
2940 ; LE-P9-NEXT:    add r3, r1, r3
2941 ; LE-P9-NEXT:    bl callee3
2942 ; LE-P9-NEXT:    nop
2943 ; LE-P9-NEXT:    lwz r4, 16(r29)
2944 ; LE-P9-NEXT:    ld r29, -24(r30) # 8-byte Folded Reload
2945 ; LE-P9-NEXT:    add r3, r4, r3
2946 ; LE-P9-NEXT:    clrldi r3, r3, 32
2947 ; LE-P9-NEXT:    mr r1, r30
2948 ; LE-P9-NEXT:    ld r0, 16(r1)
2949 ; LE-P9-NEXT:    ld r30, -16(r1)
2950 ; LE-P9-NEXT:    mtlr r0
2951 ; LE-P9-NEXT:    hashchk r0, -32(r1)
2952 ; LE-P9-NEXT:    blr
2954 ; LE-P8-LABEL: aligned:
2955 ; LE-P8:       # %bb.0: # %entry
2956 ; LE-P8-NEXT:    mflr r0
2957 ; LE-P8-NEXT:    lis r12, -1
2958 ; LE-P8-NEXT:    std r30, -16(r1)
2959 ; LE-P8-NEXT:    mr r30, r1
2960 ; LE-P8-NEXT:    std r0, 16(r1)
2961 ; LE-P8-NEXT:    hashst r0, -32(r1)
2962 ; LE-P8-NEXT:    clrldi r0, r1, 49
2963 ; LE-P8-NEXT:    ori r12, r12, 0
2964 ; LE-P8-NEXT:    subc r0, r12, r0
2965 ; LE-P8-NEXT:    stdux r1, r1, r0
2966 ; LE-P8-NEXT:    std r29, -24(r30) # 8-byte Folded Spill
2967 ; LE-P8-NEXT:    mr r29, r3
2968 ; LE-P8-NEXT:    lwz r3, 4(r3)
2969 ; LE-P8-NEXT:    lis r6, 0
2970 ; LE-P8-NEXT:    ori r6, r6, 65500
2971 ; LE-P8-NEXT:    lwz r4, 12(r29)
2972 ; LE-P8-NEXT:    lwz r5, 20(r29)
2973 ; LE-P8-NEXT:    stwx r3, r1, r6
2974 ; LE-P8-NEXT:    lis r3, 0
2975 ; LE-P8-NEXT:    ori r3, r3, 32768
2976 ; LE-P8-NEXT:    stw r5, 32764(r1)
2977 ; LE-P8-NEXT:    addi r5, r1, 32764
2978 ; LE-P8-NEXT:    stwx r4, r1, r3
2979 ; LE-P8-NEXT:    lis r3, 0
2980 ; LE-P8-NEXT:    lis r4, 0
2981 ; LE-P8-NEXT:    ori r3, r3, 32768
2982 ; LE-P8-NEXT:    ori r4, r4, 65500
2983 ; LE-P8-NEXT:    add r3, r1, r3
2984 ; LE-P8-NEXT:    add r4, r1, r4
2985 ; LE-P8-NEXT:    bl callee3
2986 ; LE-P8-NEXT:    nop
2987 ; LE-P8-NEXT:    lwz r4, 16(r29)
2988 ; LE-P8-NEXT:    ld r29, -24(r30) # 8-byte Folded Reload
2989 ; LE-P8-NEXT:    add r3, r4, r3
2990 ; LE-P8-NEXT:    clrldi r3, r3, 32
2991 ; LE-P8-NEXT:    mr r1, r30
2992 ; LE-P8-NEXT:    ld r0, 16(r1)
2993 ; LE-P8-NEXT:    ld r30, -16(r1)
2994 ; LE-P8-NEXT:    hashchk r0, -32(r1)
2995 ; LE-P8-NEXT:    mtlr r0
2996 ; LE-P8-NEXT:    blr
2998 ; LE-P10-O0-LABEL: aligned:
2999 ; LE-P10-O0:       # %bb.0: # %entry
3000 ; LE-P10-O0-NEXT:    mflr r0
3001 ; LE-P10-O0-NEXT:    std r30, -16(r1)
3002 ; LE-P10-O0-NEXT:    std r0, 16(r1)
3003 ; LE-P10-O0-NEXT:    hashst r0, -24(r1)
3004 ; LE-P10-O0-NEXT:    mr r30, r1
3005 ; LE-P10-O0-NEXT:    clrldi r0, r1, 49
3006 ; LE-P10-O0-NEXT:    lis r12, -1
3007 ; LE-P10-O0-NEXT:    ori r12, r12, 0
3008 ; LE-P10-O0-NEXT:    subc r0, r12, r0
3009 ; LE-P10-O0-NEXT:    stdux r1, r1, r0
3010 ; LE-P10-O0-NEXT:    std r3, 32752(r1) # 8-byte Folded Spill
3011 ; LE-P10-O0-NEXT:    lwz r4, 4(r3)
3012 ; LE-P10-O0-NEXT:    lis r5, 0
3013 ; LE-P10-O0-NEXT:    ori r5, r5, 65508
3014 ; LE-P10-O0-NEXT:    stwx r4, r1, r5
3015 ; LE-P10-O0-NEXT:    lwz r4, 12(r3)
3016 ; LE-P10-O0-NEXT:    lis r5, 0
3017 ; LE-P10-O0-NEXT:    ori r5, r5, 32768
3018 ; LE-P10-O0-NEXT:    stwx r4, r1, r5
3019 ; LE-P10-O0-NEXT:    lwz r3, 20(r3)
3020 ; LE-P10-O0-NEXT:    stw r3, 32764(r1)
3021 ; LE-P10-O0-NEXT:    lis r3, 0
3022 ; LE-P10-O0-NEXT:    ori r3, r3, 32768
3023 ; LE-P10-O0-NEXT:    add r3, r1, r3
3024 ; LE-P10-O0-NEXT:    lis r4, 0
3025 ; LE-P10-O0-NEXT:    ori r4, r4, 65508
3026 ; LE-P10-O0-NEXT:    add r4, r1, r4
3027 ; LE-P10-O0-NEXT:    addi r5, r1, 32764
3028 ; LE-P10-O0-NEXT:    bl callee3@notoc
3029 ; LE-P10-O0-NEXT:    mr r4, r3
3030 ; LE-P10-O0-NEXT:    ld r3, 32752(r1) # 8-byte Folded Reload
3031 ; LE-P10-O0-NEXT:    # kill: def $r4 killed $r4 killed $x4
3032 ; LE-P10-O0-NEXT:    lwz r3, 16(r3)
3033 ; LE-P10-O0-NEXT:    add r3, r3, r4
3034 ; LE-P10-O0-NEXT:    clrldi r3, r3, 32
3035 ; LE-P10-O0-NEXT:    mr r1, r30
3036 ; LE-P10-O0-NEXT:    ld r0, 16(r1)
3037 ; LE-P10-O0-NEXT:    ld r30, -16(r1)
3038 ; LE-P10-O0-NEXT:    hashchk r0, -24(r1)
3039 ; LE-P10-O0-NEXT:    mtlr r0
3040 ; LE-P10-O0-NEXT:    blr
3042 ; LE-P9-O0-LABEL: aligned:
3043 ; LE-P9-O0:       # %bb.0: # %entry
3044 ; LE-P9-O0-NEXT:    mflr r0
3045 ; LE-P9-O0-NEXT:    std r30, -16(r1)
3046 ; LE-P9-O0-NEXT:    std r0, 16(r1)
3047 ; LE-P9-O0-NEXT:    hashst r0, -24(r1)
3048 ; LE-P9-O0-NEXT:    mr r30, r1
3049 ; LE-P9-O0-NEXT:    clrldi r0, r1, 49
3050 ; LE-P9-O0-NEXT:    lis r12, -1
3051 ; LE-P9-O0-NEXT:    ori r12, r12, 0
3052 ; LE-P9-O0-NEXT:    subc r0, r12, r0
3053 ; LE-P9-O0-NEXT:    stdux r1, r1, r0
3054 ; LE-P9-O0-NEXT:    std r3, 32752(r1) # 8-byte Folded Spill
3055 ; LE-P9-O0-NEXT:    lwz r4, 4(r3)
3056 ; LE-P9-O0-NEXT:    lis r5, 0
3057 ; LE-P9-O0-NEXT:    ori r5, r5, 65508
3058 ; LE-P9-O0-NEXT:    stwx r4, r1, r5
3059 ; LE-P9-O0-NEXT:    lwz r4, 12(r3)
3060 ; LE-P9-O0-NEXT:    lis r5, 0
3061 ; LE-P9-O0-NEXT:    ori r5, r5, 32768
3062 ; LE-P9-O0-NEXT:    stwx r4, r1, r5
3063 ; LE-P9-O0-NEXT:    lwz r3, 20(r3)
3064 ; LE-P9-O0-NEXT:    stw r3, 32764(r1)
3065 ; LE-P9-O0-NEXT:    lis r3, 0
3066 ; LE-P9-O0-NEXT:    ori r3, r3, 32768
3067 ; LE-P9-O0-NEXT:    add r3, r1, r3
3068 ; LE-P9-O0-NEXT:    lis r4, 0
3069 ; LE-P9-O0-NEXT:    ori r4, r4, 65508
3070 ; LE-P9-O0-NEXT:    add r4, r1, r4
3071 ; LE-P9-O0-NEXT:    addi r5, r1, 32764
3072 ; LE-P9-O0-NEXT:    bl callee3
3073 ; LE-P9-O0-NEXT:    nop
3074 ; LE-P9-O0-NEXT:    mr r4, r3
3075 ; LE-P9-O0-NEXT:    ld r3, 32752(r1) # 8-byte Folded Reload
3076 ; LE-P9-O0-NEXT:    lwz r3, 16(r3)
3077 ; LE-P9-O0-NEXT:    add r3, r3, r4
3078 ; LE-P9-O0-NEXT:    clrldi r3, r3, 32
3079 ; LE-P9-O0-NEXT:    mr r1, r30
3080 ; LE-P9-O0-NEXT:    ld r0, 16(r1)
3081 ; LE-P9-O0-NEXT:    ld r30, -16(r1)
3082 ; LE-P9-O0-NEXT:    hashchk r0, -24(r1)
3083 ; LE-P9-O0-NEXT:    mtlr r0
3084 ; LE-P9-O0-NEXT:    blr
3086 ; LE-P8-O0-LABEL: aligned:
3087 ; LE-P8-O0:       # %bb.0: # %entry
3088 ; LE-P8-O0-NEXT:    mflr r0
3089 ; LE-P8-O0-NEXT:    std r30, -16(r1)
3090 ; LE-P8-O0-NEXT:    std r0, 16(r1)
3091 ; LE-P8-O0-NEXT:    hashst r0, -24(r1)
3092 ; LE-P8-O0-NEXT:    mr r30, r1
3093 ; LE-P8-O0-NEXT:    clrldi r0, r1, 49
3094 ; LE-P8-O0-NEXT:    lis r12, -1
3095 ; LE-P8-O0-NEXT:    ori r12, r12, 0
3096 ; LE-P8-O0-NEXT:    subc r0, r12, r0
3097 ; LE-P8-O0-NEXT:    stdux r1, r1, r0
3098 ; LE-P8-O0-NEXT:    std r3, 32752(r1) # 8-byte Folded Spill
3099 ; LE-P8-O0-NEXT:    lwz r4, 4(r3)
3100 ; LE-P8-O0-NEXT:    lis r5, 0
3101 ; LE-P8-O0-NEXT:    ori r5, r5, 65508
3102 ; LE-P8-O0-NEXT:    stwx r4, r1, r5
3103 ; LE-P8-O0-NEXT:    lwz r4, 12(r3)
3104 ; LE-P8-O0-NEXT:    lis r5, 0
3105 ; LE-P8-O0-NEXT:    ori r5, r5, 32768
3106 ; LE-P8-O0-NEXT:    stwx r4, r1, r5
3107 ; LE-P8-O0-NEXT:    lwz r3, 20(r3)
3108 ; LE-P8-O0-NEXT:    stw r3, 32764(r1)
3109 ; LE-P8-O0-NEXT:    lis r3, 0
3110 ; LE-P8-O0-NEXT:    ori r3, r3, 32768
3111 ; LE-P8-O0-NEXT:    add r3, r1, r3
3112 ; LE-P8-O0-NEXT:    lis r4, 0
3113 ; LE-P8-O0-NEXT:    ori r4, r4, 65508
3114 ; LE-P8-O0-NEXT:    add r4, r1, r4
3115 ; LE-P8-O0-NEXT:    addi r5, r1, 32764
3116 ; LE-P8-O0-NEXT:    bl callee3
3117 ; LE-P8-O0-NEXT:    nop
3118 ; LE-P8-O0-NEXT:    mr r4, r3
3119 ; LE-P8-O0-NEXT:    ld r3, 32752(r1) # 8-byte Folded Reload
3120 ; LE-P8-O0-NEXT:    lwz r3, 16(r3)
3121 ; LE-P8-O0-NEXT:    add r3, r3, r4
3122 ; LE-P8-O0-NEXT:    clrldi r3, r3, 32
3123 ; LE-P8-O0-NEXT:    mr r1, r30
3124 ; LE-P8-O0-NEXT:    ld r0, 16(r1)
3125 ; LE-P8-O0-NEXT:    ld r30, -16(r1)
3126 ; LE-P8-O0-NEXT:    hashchk r0, -24(r1)
3127 ; LE-P8-O0-NEXT:    mtlr r0
3128 ; LE-P8-O0-NEXT:    blr
3130 ; BE-P10-LABEL: aligned:
3131 ; BE-P10:       # %bb.0: # %entry
3132 ; BE-P10-NEXT:    mflr r0
3133 ; BE-P10-NEXT:    lis r12, -1
3134 ; BE-P10-NEXT:    std r30, -16(r1)
3135 ; BE-P10-NEXT:    mr r30, r1
3136 ; BE-P10-NEXT:    ori r12, r12, 0
3137 ; BE-P10-NEXT:    std r0, 16(r1)
3138 ; BE-P10-NEXT:    hashst r0, -32(r1)
3139 ; BE-P10-NEXT:    clrldi r0, r1, 49
3140 ; BE-P10-NEXT:    subc r0, r12, r0
3141 ; BE-P10-NEXT:    stdux r1, r1, r0
3142 ; BE-P10-NEXT:    std r29, -24(r30) # 8-byte Folded Spill
3143 ; BE-P10-NEXT:    mr r29, r3
3144 ; BE-P10-NEXT:    lwz r3, 4(r3)
3145 ; BE-P10-NEXT:    lis r4, 0
3146 ; BE-P10-NEXT:    addi r5, r1, 32764
3147 ; BE-P10-NEXT:    ori r4, r4, 65500
3148 ; BE-P10-NEXT:    stwx r3, r1, r4
3149 ; BE-P10-NEXT:    lwz r3, 12(r29)
3150 ; BE-P10-NEXT:    lis r4, 0
3151 ; BE-P10-NEXT:    ori r4, r4, 32768
3152 ; BE-P10-NEXT:    stwx r3, r1, r4
3153 ; BE-P10-NEXT:    lwz r3, 20(r29)
3154 ; BE-P10-NEXT:    lis r4, 0
3155 ; BE-P10-NEXT:    ori r4, r4, 65500
3156 ; BE-P10-NEXT:    stw r3, 32764(r1)
3157 ; BE-P10-NEXT:    lis r3, 0
3158 ; BE-P10-NEXT:    add r4, r1, r4
3159 ; BE-P10-NEXT:    ori r3, r3, 32768
3160 ; BE-P10-NEXT:    add r3, r1, r3
3161 ; BE-P10-NEXT:    bl callee3
3162 ; BE-P10-NEXT:    nop
3163 ; BE-P10-NEXT:    lwz r4, 16(r29)
3164 ; BE-P10-NEXT:    ld r29, -24(r30) # 8-byte Folded Reload
3165 ; BE-P10-NEXT:    add r3, r4, r3
3166 ; BE-P10-NEXT:    clrldi r3, r3, 32
3167 ; BE-P10-NEXT:    mr r1, r30
3168 ; BE-P10-NEXT:    ld r0, 16(r1)
3169 ; BE-P10-NEXT:    ld r30, -16(r1)
3170 ; BE-P10-NEXT:    mtlr r0
3171 ; BE-P10-NEXT:    hashchk r0, -32(r1)
3172 ; BE-P10-NEXT:    blr
3174 ; BE-P9-LABEL: aligned:
3175 ; BE-P9:       # %bb.0: # %entry
3176 ; BE-P9-NEXT:    mflr r0
3177 ; BE-P9-NEXT:    lis r12, -1
3178 ; BE-P9-NEXT:    std r30, -16(r1)
3179 ; BE-P9-NEXT:    mr r30, r1
3180 ; BE-P9-NEXT:    ori r12, r12, 0
3181 ; BE-P9-NEXT:    std r0, 16(r1)
3182 ; BE-P9-NEXT:    hashst r0, -32(r1)
3183 ; BE-P9-NEXT:    clrldi r0, r1, 49
3184 ; BE-P9-NEXT:    subc r0, r12, r0
3185 ; BE-P9-NEXT:    stdux r1, r1, r0
3186 ; BE-P9-NEXT:    std r29, -24(r30) # 8-byte Folded Spill
3187 ; BE-P9-NEXT:    mr r29, r3
3188 ; BE-P9-NEXT:    lwz r3, 4(r3)
3189 ; BE-P9-NEXT:    lis r4, 0
3190 ; BE-P9-NEXT:    addi r5, r1, 32764
3191 ; BE-P9-NEXT:    ori r4, r4, 65500
3192 ; BE-P9-NEXT:    stwx r3, r1, r4
3193 ; BE-P9-NEXT:    lwz r3, 12(r29)
3194 ; BE-P9-NEXT:    lis r4, 0
3195 ; BE-P9-NEXT:    ori r4, r4, 32768
3196 ; BE-P9-NEXT:    stwx r3, r1, r4
3197 ; BE-P9-NEXT:    lwz r3, 20(r29)
3198 ; BE-P9-NEXT:    lis r4, 0
3199 ; BE-P9-NEXT:    ori r4, r4, 65500
3200 ; BE-P9-NEXT:    stw r3, 32764(r1)
3201 ; BE-P9-NEXT:    lis r3, 0
3202 ; BE-P9-NEXT:    add r4, r1, r4
3203 ; BE-P9-NEXT:    ori r3, r3, 32768
3204 ; BE-P9-NEXT:    add r3, r1, r3
3205 ; BE-P9-NEXT:    bl callee3
3206 ; BE-P9-NEXT:    nop
3207 ; BE-P9-NEXT:    lwz r4, 16(r29)
3208 ; BE-P9-NEXT:    ld r29, -24(r30) # 8-byte Folded Reload
3209 ; BE-P9-NEXT:    add r3, r4, r3
3210 ; BE-P9-NEXT:    clrldi r3, r3, 32
3211 ; BE-P9-NEXT:    mr r1, r30
3212 ; BE-P9-NEXT:    ld r0, 16(r1)
3213 ; BE-P9-NEXT:    ld r30, -16(r1)
3214 ; BE-P9-NEXT:    mtlr r0
3215 ; BE-P9-NEXT:    hashchk r0, -32(r1)
3216 ; BE-P9-NEXT:    blr
3218 ; BE-P8-LABEL: aligned:
3219 ; BE-P8:       # %bb.0: # %entry
3220 ; BE-P8-NEXT:    mflr r0
3221 ; BE-P8-NEXT:    lis r12, -1
3222 ; BE-P8-NEXT:    std r30, -16(r1)
3223 ; BE-P8-NEXT:    mr r30, r1
3224 ; BE-P8-NEXT:    std r0, 16(r1)
3225 ; BE-P8-NEXT:    hashst r0, -32(r1)
3226 ; BE-P8-NEXT:    clrldi r0, r1, 49
3227 ; BE-P8-NEXT:    ori r12, r12, 0
3228 ; BE-P8-NEXT:    subc r0, r12, r0
3229 ; BE-P8-NEXT:    stdux r1, r1, r0
3230 ; BE-P8-NEXT:    std r29, -24(r30) # 8-byte Folded Spill
3231 ; BE-P8-NEXT:    mr r29, r3
3232 ; BE-P8-NEXT:    lwz r3, 4(r3)
3233 ; BE-P8-NEXT:    lis r6, 0
3234 ; BE-P8-NEXT:    ori r6, r6, 65500
3235 ; BE-P8-NEXT:    lwz r4, 12(r29)
3236 ; BE-P8-NEXT:    lwz r5, 20(r29)
3237 ; BE-P8-NEXT:    stwx r3, r1, r6
3238 ; BE-P8-NEXT:    lis r3, 0
3239 ; BE-P8-NEXT:    ori r3, r3, 32768
3240 ; BE-P8-NEXT:    stw r5, 32764(r1)
3241 ; BE-P8-NEXT:    addi r5, r1, 32764
3242 ; BE-P8-NEXT:    stwx r4, r1, r3
3243 ; BE-P8-NEXT:    lis r3, 0
3244 ; BE-P8-NEXT:    lis r4, 0
3245 ; BE-P8-NEXT:    ori r3, r3, 32768
3246 ; BE-P8-NEXT:    ori r4, r4, 65500
3247 ; BE-P8-NEXT:    add r3, r1, r3
3248 ; BE-P8-NEXT:    add r4, r1, r4
3249 ; BE-P8-NEXT:    bl callee3
3250 ; BE-P8-NEXT:    nop
3251 ; BE-P8-NEXT:    lwz r4, 16(r29)
3252 ; BE-P8-NEXT:    ld r29, -24(r30) # 8-byte Folded Reload
3253 ; BE-P8-NEXT:    add r3, r4, r3
3254 ; BE-P8-NEXT:    clrldi r3, r3, 32
3255 ; BE-P8-NEXT:    mr r1, r30
3256 ; BE-P8-NEXT:    ld r0, 16(r1)
3257 ; BE-P8-NEXT:    ld r30, -16(r1)
3258 ; BE-P8-NEXT:    hashchk r0, -32(r1)
3259 ; BE-P8-NEXT:    mtlr r0
3260 ; BE-P8-NEXT:    blr
3262 ; LE-P10-PRIV-LABEL: aligned:
3263 ; LE-P10-PRIV:       # %bb.0: # %entry
3264 ; LE-P10-PRIV-NEXT:    mflr r0
3265 ; LE-P10-PRIV-NEXT:    lis r12, -1
3266 ; LE-P10-PRIV-NEXT:    std r30, -16(r1)
3267 ; LE-P10-PRIV-NEXT:    mr r30, r1
3268 ; LE-P10-PRIV-NEXT:    ori r12, r12, 0
3269 ; LE-P10-PRIV-NEXT:    std r0, 16(r1)
3270 ; LE-P10-PRIV-NEXT:    hashstp r0, -32(r1)
3271 ; LE-P10-PRIV-NEXT:    clrldi r0, r1, 49
3272 ; LE-P10-PRIV-NEXT:    subc r0, r12, r0
3273 ; LE-P10-PRIV-NEXT:    stdux r1, r1, r0
3274 ; LE-P10-PRIV-NEXT:    std r29, -24(r30) # 8-byte Folded Spill
3275 ; LE-P10-PRIV-NEXT:    mr r29, r3
3276 ; LE-P10-PRIV-NEXT:    lwz r3, 4(r3)
3277 ; LE-P10-PRIV-NEXT:    lis r4, 0
3278 ; LE-P10-PRIV-NEXT:    addi r5, r1, 32764
3279 ; LE-P10-PRIV-NEXT:    ori r4, r4, 65500
3280 ; LE-P10-PRIV-NEXT:    stwx r3, r1, r4
3281 ; LE-P10-PRIV-NEXT:    lwz r3, 12(r29)
3282 ; LE-P10-PRIV-NEXT:    lis r4, 0
3283 ; LE-P10-PRIV-NEXT:    ori r4, r4, 32768
3284 ; LE-P10-PRIV-NEXT:    stwx r3, r1, r4
3285 ; LE-P10-PRIV-NEXT:    lwz r3, 20(r29)
3286 ; LE-P10-PRIV-NEXT:    lis r4, 0
3287 ; LE-P10-PRIV-NEXT:    ori r4, r4, 65500
3288 ; LE-P10-PRIV-NEXT:    stw r3, 32764(r1)
3289 ; LE-P10-PRIV-NEXT:    lis r3, 0
3290 ; LE-P10-PRIV-NEXT:    add r4, r1, r4
3291 ; LE-P10-PRIV-NEXT:    ori r3, r3, 32768
3292 ; LE-P10-PRIV-NEXT:    add r3, r1, r3
3293 ; LE-P10-PRIV-NEXT:    bl callee3@notoc
3294 ; LE-P10-PRIV-NEXT:    lwz r4, 16(r29)
3295 ; LE-P10-PRIV-NEXT:    ld r29, -24(r30) # 8-byte Folded Reload
3296 ; LE-P10-PRIV-NEXT:    add r3, r4, r3
3297 ; LE-P10-PRIV-NEXT:    clrldi r3, r3, 32
3298 ; LE-P10-PRIV-NEXT:    mr r1, r30
3299 ; LE-P10-PRIV-NEXT:    ld r0, 16(r1)
3300 ; LE-P10-PRIV-NEXT:    ld r30, -16(r1)
3301 ; LE-P10-PRIV-NEXT:    mtlr r0
3302 ; LE-P10-PRIV-NEXT:    hashchkp r0, -32(r1)
3303 ; LE-P10-PRIV-NEXT:    blr
3305 ; LE-P9-PRIV-LABEL: aligned:
3306 ; LE-P9-PRIV:       # %bb.0: # %entry
3307 ; LE-P9-PRIV-NEXT:    mflr r0
3308 ; LE-P9-PRIV-NEXT:    lis r12, -1
3309 ; LE-P9-PRIV-NEXT:    std r30, -16(r1)
3310 ; LE-P9-PRIV-NEXT:    mr r30, r1
3311 ; LE-P9-PRIV-NEXT:    ori r12, r12, 0
3312 ; LE-P9-PRIV-NEXT:    std r0, 16(r1)
3313 ; LE-P9-PRIV-NEXT:    hashstp r0, -32(r1)
3314 ; LE-P9-PRIV-NEXT:    clrldi r0, r1, 49
3315 ; LE-P9-PRIV-NEXT:    subc r0, r12, r0
3316 ; LE-P9-PRIV-NEXT:    stdux r1, r1, r0
3317 ; LE-P9-PRIV-NEXT:    std r29, -24(r30) # 8-byte Folded Spill
3318 ; LE-P9-PRIV-NEXT:    mr r29, r3
3319 ; LE-P9-PRIV-NEXT:    lwz r3, 4(r3)
3320 ; LE-P9-PRIV-NEXT:    lis r4, 0
3321 ; LE-P9-PRIV-NEXT:    addi r5, r1, 32764
3322 ; LE-P9-PRIV-NEXT:    ori r4, r4, 65500
3323 ; LE-P9-PRIV-NEXT:    stwx r3, r1, r4
3324 ; LE-P9-PRIV-NEXT:    lwz r3, 12(r29)
3325 ; LE-P9-PRIV-NEXT:    lis r4, 0
3326 ; LE-P9-PRIV-NEXT:    ori r4, r4, 32768
3327 ; LE-P9-PRIV-NEXT:    stwx r3, r1, r4
3328 ; LE-P9-PRIV-NEXT:    lwz r3, 20(r29)
3329 ; LE-P9-PRIV-NEXT:    lis r4, 0
3330 ; LE-P9-PRIV-NEXT:    ori r4, r4, 65500
3331 ; LE-P9-PRIV-NEXT:    stw r3, 32764(r1)
3332 ; LE-P9-PRIV-NEXT:    lis r3, 0
3333 ; LE-P9-PRIV-NEXT:    add r4, r1, r4
3334 ; LE-P9-PRIV-NEXT:    ori r3, r3, 32768
3335 ; LE-P9-PRIV-NEXT:    add r3, r1, r3
3336 ; LE-P9-PRIV-NEXT:    bl callee3
3337 ; LE-P9-PRIV-NEXT:    nop
3338 ; LE-P9-PRIV-NEXT:    lwz r4, 16(r29)
3339 ; LE-P9-PRIV-NEXT:    ld r29, -24(r30) # 8-byte Folded Reload
3340 ; LE-P9-PRIV-NEXT:    add r3, r4, r3
3341 ; LE-P9-PRIV-NEXT:    clrldi r3, r3, 32
3342 ; LE-P9-PRIV-NEXT:    mr r1, r30
3343 ; LE-P9-PRIV-NEXT:    ld r0, 16(r1)
3344 ; LE-P9-PRIV-NEXT:    ld r30, -16(r1)
3345 ; LE-P9-PRIV-NEXT:    mtlr r0
3346 ; LE-P9-PRIV-NEXT:    hashchkp r0, -32(r1)
3347 ; LE-P9-PRIV-NEXT:    blr
3349 ; LE-P8-PRIV-LABEL: aligned:
3350 ; LE-P8-PRIV:       # %bb.0: # %entry
3351 ; LE-P8-PRIV-NEXT:    mflr r0
3352 ; LE-P8-PRIV-NEXT:    lis r12, -1
3353 ; LE-P8-PRIV-NEXT:    std r30, -16(r1)
3354 ; LE-P8-PRIV-NEXT:    mr r30, r1
3355 ; LE-P8-PRIV-NEXT:    std r0, 16(r1)
3356 ; LE-P8-PRIV-NEXT:    hashstp r0, -32(r1)
3357 ; LE-P8-PRIV-NEXT:    clrldi r0, r1, 49
3358 ; LE-P8-PRIV-NEXT:    ori r12, r12, 0
3359 ; LE-P8-PRIV-NEXT:    subc r0, r12, r0
3360 ; LE-P8-PRIV-NEXT:    stdux r1, r1, r0
3361 ; LE-P8-PRIV-NEXT:    std r29, -24(r30) # 8-byte Folded Spill
3362 ; LE-P8-PRIV-NEXT:    mr r29, r3
3363 ; LE-P8-PRIV-NEXT:    lwz r3, 4(r3)
3364 ; LE-P8-PRIV-NEXT:    lis r6, 0
3365 ; LE-P8-PRIV-NEXT:    ori r6, r6, 65500
3366 ; LE-P8-PRIV-NEXT:    lwz r4, 12(r29)
3367 ; LE-P8-PRIV-NEXT:    lwz r5, 20(r29)
3368 ; LE-P8-PRIV-NEXT:    stwx r3, r1, r6
3369 ; LE-P8-PRIV-NEXT:    lis r3, 0
3370 ; LE-P8-PRIV-NEXT:    ori r3, r3, 32768
3371 ; LE-P8-PRIV-NEXT:    stw r5, 32764(r1)
3372 ; LE-P8-PRIV-NEXT:    addi r5, r1, 32764
3373 ; LE-P8-PRIV-NEXT:    stwx r4, r1, r3
3374 ; LE-P8-PRIV-NEXT:    lis r3, 0
3375 ; LE-P8-PRIV-NEXT:    lis r4, 0
3376 ; LE-P8-PRIV-NEXT:    ori r3, r3, 32768
3377 ; LE-P8-PRIV-NEXT:    ori r4, r4, 65500
3378 ; LE-P8-PRIV-NEXT:    add r3, r1, r3
3379 ; LE-P8-PRIV-NEXT:    add r4, r1, r4
3380 ; LE-P8-PRIV-NEXT:    bl callee3
3381 ; LE-P8-PRIV-NEXT:    nop
3382 ; LE-P8-PRIV-NEXT:    lwz r4, 16(r29)
3383 ; LE-P8-PRIV-NEXT:    ld r29, -24(r30) # 8-byte Folded Reload
3384 ; LE-P8-PRIV-NEXT:    add r3, r4, r3
3385 ; LE-P8-PRIV-NEXT:    clrldi r3, r3, 32
3386 ; LE-P8-PRIV-NEXT:    mr r1, r30
3387 ; LE-P8-PRIV-NEXT:    ld r0, 16(r1)
3388 ; LE-P8-PRIV-NEXT:    ld r30, -16(r1)
3389 ; LE-P8-PRIV-NEXT:    hashchkp r0, -32(r1)
3390 ; LE-P8-PRIV-NEXT:    mtlr r0
3391 ; LE-P8-PRIV-NEXT:    blr
3393 ; BE-P10-PRIV-LABEL: aligned:
3394 ; BE-P10-PRIV:       # %bb.0: # %entry
3395 ; BE-P10-PRIV-NEXT:    mflr r0
3396 ; BE-P10-PRIV-NEXT:    lis r12, -1
3397 ; BE-P10-PRIV-NEXT:    std r30, -16(r1)
3398 ; BE-P10-PRIV-NEXT:    mr r30, r1
3399 ; BE-P10-PRIV-NEXT:    ori r12, r12, 0
3400 ; BE-P10-PRIV-NEXT:    std r0, 16(r1)
3401 ; BE-P10-PRIV-NEXT:    hashstp r0, -32(r1)
3402 ; BE-P10-PRIV-NEXT:    clrldi r0, r1, 49
3403 ; BE-P10-PRIV-NEXT:    subc r0, r12, r0
3404 ; BE-P10-PRIV-NEXT:    stdux r1, r1, r0
3405 ; BE-P10-PRIV-NEXT:    std r29, -24(r30) # 8-byte Folded Spill
3406 ; BE-P10-PRIV-NEXT:    mr r29, r3
3407 ; BE-P10-PRIV-NEXT:    lwz r3, 4(r3)
3408 ; BE-P10-PRIV-NEXT:    lis r4, 0
3409 ; BE-P10-PRIV-NEXT:    addi r5, r1, 32764
3410 ; BE-P10-PRIV-NEXT:    ori r4, r4, 65500
3411 ; BE-P10-PRIV-NEXT:    stwx r3, r1, r4
3412 ; BE-P10-PRIV-NEXT:    lwz r3, 12(r29)
3413 ; BE-P10-PRIV-NEXT:    lis r4, 0
3414 ; BE-P10-PRIV-NEXT:    ori r4, r4, 32768
3415 ; BE-P10-PRIV-NEXT:    stwx r3, r1, r4
3416 ; BE-P10-PRIV-NEXT:    lwz r3, 20(r29)
3417 ; BE-P10-PRIV-NEXT:    lis r4, 0
3418 ; BE-P10-PRIV-NEXT:    ori r4, r4, 65500
3419 ; BE-P10-PRIV-NEXT:    stw r3, 32764(r1)
3420 ; BE-P10-PRIV-NEXT:    lis r3, 0
3421 ; BE-P10-PRIV-NEXT:    add r4, r1, r4
3422 ; BE-P10-PRIV-NEXT:    ori r3, r3, 32768
3423 ; BE-P10-PRIV-NEXT:    add r3, r1, r3
3424 ; BE-P10-PRIV-NEXT:    bl callee3
3425 ; BE-P10-PRIV-NEXT:    nop
3426 ; BE-P10-PRIV-NEXT:    lwz r4, 16(r29)
3427 ; BE-P10-PRIV-NEXT:    ld r29, -24(r30) # 8-byte Folded Reload
3428 ; BE-P10-PRIV-NEXT:    add r3, r4, r3
3429 ; BE-P10-PRIV-NEXT:    clrldi r3, r3, 32
3430 ; BE-P10-PRIV-NEXT:    mr r1, r30
3431 ; BE-P10-PRIV-NEXT:    ld r0, 16(r1)
3432 ; BE-P10-PRIV-NEXT:    ld r30, -16(r1)
3433 ; BE-P10-PRIV-NEXT:    mtlr r0
3434 ; BE-P10-PRIV-NEXT:    hashchkp r0, -32(r1)
3435 ; BE-P10-PRIV-NEXT:    blr
3437 ; BE-P9-PRIV-LABEL: aligned:
3438 ; BE-P9-PRIV:       # %bb.0: # %entry
3439 ; BE-P9-PRIV-NEXT:    mflr r0
3440 ; BE-P9-PRIV-NEXT:    lis r12, -1
3441 ; BE-P9-PRIV-NEXT:    std r30, -16(r1)
3442 ; BE-P9-PRIV-NEXT:    mr r30, r1
3443 ; BE-P9-PRIV-NEXT:    ori r12, r12, 0
3444 ; BE-P9-PRIV-NEXT:    std r0, 16(r1)
3445 ; BE-P9-PRIV-NEXT:    hashstp r0, -32(r1)
3446 ; BE-P9-PRIV-NEXT:    clrldi r0, r1, 49
3447 ; BE-P9-PRIV-NEXT:    subc r0, r12, r0
3448 ; BE-P9-PRIV-NEXT:    stdux r1, r1, r0
3449 ; BE-P9-PRIV-NEXT:    std r29, -24(r30) # 8-byte Folded Spill
3450 ; BE-P9-PRIV-NEXT:    mr r29, r3
3451 ; BE-P9-PRIV-NEXT:    lwz r3, 4(r3)
3452 ; BE-P9-PRIV-NEXT:    lis r4, 0
3453 ; BE-P9-PRIV-NEXT:    addi r5, r1, 32764
3454 ; BE-P9-PRIV-NEXT:    ori r4, r4, 65500
3455 ; BE-P9-PRIV-NEXT:    stwx r3, r1, r4
3456 ; BE-P9-PRIV-NEXT:    lwz r3, 12(r29)
3457 ; BE-P9-PRIV-NEXT:    lis r4, 0
3458 ; BE-P9-PRIV-NEXT:    ori r4, r4, 32768
3459 ; BE-P9-PRIV-NEXT:    stwx r3, r1, r4
3460 ; BE-P9-PRIV-NEXT:    lwz r3, 20(r29)
3461 ; BE-P9-PRIV-NEXT:    lis r4, 0
3462 ; BE-P9-PRIV-NEXT:    ori r4, r4, 65500
3463 ; BE-P9-PRIV-NEXT:    stw r3, 32764(r1)
3464 ; BE-P9-PRIV-NEXT:    lis r3, 0
3465 ; BE-P9-PRIV-NEXT:    add r4, r1, r4
3466 ; BE-P9-PRIV-NEXT:    ori r3, r3, 32768
3467 ; BE-P9-PRIV-NEXT:    add r3, r1, r3
3468 ; BE-P9-PRIV-NEXT:    bl callee3
3469 ; BE-P9-PRIV-NEXT:    nop
3470 ; BE-P9-PRIV-NEXT:    lwz r4, 16(r29)
3471 ; BE-P9-PRIV-NEXT:    ld r29, -24(r30) # 8-byte Folded Reload
3472 ; BE-P9-PRIV-NEXT:    add r3, r4, r3
3473 ; BE-P9-PRIV-NEXT:    clrldi r3, r3, 32
3474 ; BE-P9-PRIV-NEXT:    mr r1, r30
3475 ; BE-P9-PRIV-NEXT:    ld r0, 16(r1)
3476 ; BE-P9-PRIV-NEXT:    ld r30, -16(r1)
3477 ; BE-P9-PRIV-NEXT:    mtlr r0
3478 ; BE-P9-PRIV-NEXT:    hashchkp r0, -32(r1)
3479 ; BE-P9-PRIV-NEXT:    blr
3481 ; BE-P8-PRIV-LABEL: aligned:
3482 ; BE-P8-PRIV:       # %bb.0: # %entry
3483 ; BE-P8-PRIV-NEXT:    mflr r0
3484 ; BE-P8-PRIV-NEXT:    lis r12, -1
3485 ; BE-P8-PRIV-NEXT:    std r30, -16(r1)
3486 ; BE-P8-PRIV-NEXT:    mr r30, r1
3487 ; BE-P8-PRIV-NEXT:    std r0, 16(r1)
3488 ; BE-P8-PRIV-NEXT:    hashstp r0, -32(r1)
3489 ; BE-P8-PRIV-NEXT:    clrldi r0, r1, 49
3490 ; BE-P8-PRIV-NEXT:    ori r12, r12, 0
3491 ; BE-P8-PRIV-NEXT:    subc r0, r12, r0
3492 ; BE-P8-PRIV-NEXT:    stdux r1, r1, r0
3493 ; BE-P8-PRIV-NEXT:    std r29, -24(r30) # 8-byte Folded Spill
3494 ; BE-P8-PRIV-NEXT:    mr r29, r3
3495 ; BE-P8-PRIV-NEXT:    lwz r3, 4(r3)
3496 ; BE-P8-PRIV-NEXT:    lis r6, 0
3497 ; BE-P8-PRIV-NEXT:    ori r6, r6, 65500
3498 ; BE-P8-PRIV-NEXT:    lwz r4, 12(r29)
3499 ; BE-P8-PRIV-NEXT:    lwz r5, 20(r29)
3500 ; BE-P8-PRIV-NEXT:    stwx r3, r1, r6
3501 ; BE-P8-PRIV-NEXT:    lis r3, 0
3502 ; BE-P8-PRIV-NEXT:    ori r3, r3, 32768
3503 ; BE-P8-PRIV-NEXT:    stw r5, 32764(r1)
3504 ; BE-P8-PRIV-NEXT:    addi r5, r1, 32764
3505 ; BE-P8-PRIV-NEXT:    stwx r4, r1, r3
3506 ; BE-P8-PRIV-NEXT:    lis r3, 0
3507 ; BE-P8-PRIV-NEXT:    lis r4, 0
3508 ; BE-P8-PRIV-NEXT:    ori r3, r3, 32768
3509 ; BE-P8-PRIV-NEXT:    ori r4, r4, 65500
3510 ; BE-P8-PRIV-NEXT:    add r3, r1, r3
3511 ; BE-P8-PRIV-NEXT:    add r4, r1, r4
3512 ; BE-P8-PRIV-NEXT:    bl callee3
3513 ; BE-P8-PRIV-NEXT:    nop
3514 ; BE-P8-PRIV-NEXT:    lwz r4, 16(r29)
3515 ; BE-P8-PRIV-NEXT:    ld r29, -24(r30) # 8-byte Folded Reload
3516 ; BE-P8-PRIV-NEXT:    add r3, r4, r3
3517 ; BE-P8-PRIV-NEXT:    clrldi r3, r3, 32
3518 ; BE-P8-PRIV-NEXT:    mr r1, r30
3519 ; BE-P8-PRIV-NEXT:    ld r0, 16(r1)
3520 ; BE-P8-PRIV-NEXT:    ld r30, -16(r1)
3521 ; BE-P8-PRIV-NEXT:    hashchkp r0, -32(r1)
3522 ; BE-P8-PRIV-NEXT:    mtlr r0
3523 ; BE-P8-PRIV-NEXT:    blr
3524 entry:
3525   %beforeLocal = alloca i32, align 4
3526   %local = alloca i32, align 32768
3527   %afterLocal = alloca i32, align 4
3528   %0 = bitcast i32* %beforeLocal to i8*
3529   call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0)
3530   %arrayidx = getelementptr inbounds i32, i32* %in, i64 1
3531   %1 = load i32, i32* %arrayidx, align 4
3532   store i32 %1, i32* %beforeLocal, align 4
3533   %2 = bitcast i32* %local to i8*
3534   call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %2)
3535   %arrayidx1 = getelementptr inbounds i32, i32* %in, i64 3
3536   %3 = load i32, i32* %arrayidx1, align 4
3537   store i32 %3, i32* %local, align 32768
3538   %4 = bitcast i32* %afterLocal to i8*
3539   call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %4)
3540   %arrayidx2 = getelementptr inbounds i32, i32* %in, i64 5
3541   %5 = load i32, i32* %arrayidx2, align 4
3542   store i32 %5, i32* %afterLocal, align 4
3543   %call = call zeroext i32 @callee3(i32* nonnull %local, i32* nonnull %beforeLocal, i32* nonnull %afterLocal)
3544   %arrayidx3 = getelementptr inbounds i32, i32* %in, i64 4
3545   %6 = load i32, i32* %arrayidx3, align 4
3546   %add = add i32 %6, %call
3547   call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %4)
3548   call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %2)
3549   call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0)
3550   ret i32 %add
3553 declare zeroext i32 @callee(i32 zeroext) local_unnamed_addr
3554 declare zeroext i32 @callee2(i32*) local_unnamed_addr
3555 declare zeroext i32 @callee3(i32*, i32*, i32*) local_unnamed_addr
3556 declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture)
3557 declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture)
3559 attributes #0 = { nounwind }