1 ; RUN: llc -mtriple=powerpc64-unknown-aix-xcoff -verify-machineinstrs \
2 ; RUN: -mcpu=pwr4 -mattr=-altivec -stop-after=prologepilog < %s | \
3 ; RUN: FileCheck --check-prefix=MIR64 %s
5 ; RUN: llc -mtriple=powerpc64-unknown-aix-xcoff -verify-machineinstrs \
6 ; RUN: -mcpu=pwr4 -mattr=-altivec < %s | FileCheck --check-prefix=ASM64 %s
8 ; RUN: llc -mtriple=powerpc-unknown-aix-xcoff -verify-machineinstrs \
9 ; RUN: -mcpu=pwr4 -mattr=-altivec -stop-after=prologepilog < %s | \
10 ; RUN: FileCheck --check-prefix=MIR32 %s
12 ; RUN: llc -mtriple=powerpc-unknown-aix-xcoff -verify-machineinstrs \
13 ; RUN: -mcpu=pwr4 -mattr=-altivec < %s | FileCheck --check-prefix=ASM32 %s
15 define dso_local signext i32 @gprs_only(i32 signext %i) {
17 call void asm sideeffect "", "~{r16},~{r22},~{r30}"()
21 ; MIR64: name: gprs_only
22 ; MIR64-LABEL: fixedStack:
23 ; MIR64-NEXT: - { id: 0, type: spill-slot, offset: -8, size: 8, alignment: 8, stack-id: default,
24 ; MIR64-NEXT: callee-saved-register: '$x31', callee-saved-restored: true, debug-info-variable: '',
25 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
26 ; MIR64-NEXT: - { id: 1, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default,
27 ; MIR64-NEXT: callee-saved-register: '$x30', callee-saved-restored: true, debug-info-variable: '',
28 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
29 ; MIR64-NEXT: - { id: 2, type: spill-slot, offset: -24, size: 8, alignment: 8, stack-id: default,
30 ; MIR64-NEXT: callee-saved-register: '$x29', callee-saved-restored: true, debug-info-variable: '',
31 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
32 ; MIR64-NEXT: - { id: 3, type: spill-slot, offset: -32, size: 8, alignment: 16, stack-id: default,
33 ; MIR64-NEXT: callee-saved-register: '$x28', callee-saved-restored: true, debug-info-variable: '',
34 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
35 ; MIR64-NEXT: - { id: 4, type: spill-slot, offset: -40, size: 8, alignment: 8, stack-id: default,
36 ; MIR64-NEXT: callee-saved-register: '$x27', callee-saved-restored: true, debug-info-variable: '',
37 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
38 ; MIR64-NEXT: - { id: 5, type: spill-slot, offset: -48, size: 8, alignment: 16, stack-id: default,
39 ; MIR64-NEXT: callee-saved-register: '$x26', callee-saved-restored: true, debug-info-variable: '',
40 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
41 ; MIR64-NEXT: - { id: 6, type: spill-slot, offset: -56, size: 8, alignment: 8, stack-id: default,
42 ; MIR64-NEXT: callee-saved-register: '$x25', callee-saved-restored: true, debug-info-variable: '',
43 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
44 ; MIR64-NEXT: - { id: 7, type: spill-slot, offset: -64, size: 8, alignment: 16, stack-id: default,
45 ; MIR64-NEXT: callee-saved-register: '$x24', callee-saved-restored: true, debug-info-variable: '',
46 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
47 ; MIR64-NEXT: - { id: 8, type: spill-slot, offset: -72, size: 8, alignment: 8, stack-id: default,
48 ; MIR64-NEXT: callee-saved-register: '$x23', callee-saved-restored: true, debug-info-variable: '',
49 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
50 ; MIR64-NEXT: - { id: 9, type: spill-slot, offset: -80, size: 8, alignment: 16, stack-id: default,
51 ; MIR64-NEXT: callee-saved-register: '$x22', callee-saved-restored: true, debug-info-variable: '',
52 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
53 ; MIR64-NEXT: - { id: 10, type: spill-slot, offset: -88, size: 8, alignment: 8, stack-id: default,
54 ; MIR64-NEXT: callee-saved-register: '$x21', callee-saved-restored: true, debug-info-variable: '',
55 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
56 ; MIR64-NEXT: - { id: 11, type: spill-slot, offset: -96, size: 8, alignment: 16, stack-id: default,
57 ; MIR64-NEXT: callee-saved-register: '$x20', callee-saved-restored: true, debug-info-variable: '',
58 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
59 ; MIR64-NEXT: - { id: 12, type: spill-slot, offset: -104, size: 8, alignment: 8, stack-id: default,
60 ; MIR64-NEXT: callee-saved-register: '$x19', callee-saved-restored: true, debug-info-variable: '',
61 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
62 ; MIR64-NEXT: - { id: 13, type: spill-slot, offset: -112, size: 8, alignment: 16, stack-id: default,
63 ; MIR64-NEXT: callee-saved-register: '$x18', callee-saved-restored: true, debug-info-variable: '',
64 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
65 ; MIR64-NEXT: - { id: 14, type: spill-slot, offset: -120, size: 8, alignment: 8, stack-id: default,
66 ; MIR64-NEXT: callee-saved-register: '$x17', callee-saved-restored: true, debug-info-variable: '',
67 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
68 ; MIR64-NEXT: - { id: 15, type: spill-slot, offset: -128, size: 8, alignment: 16, stack-id: default,
69 ; MIR64-NEXT: callee-saved-register: '$x16', callee-saved-restored: true, debug-info-variable: '',
70 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
71 ; MIR64-NEXT: stack: []
73 ; MIR32: name: gprs_only
74 ; MIR32-LABEL: fixedStack:
75 ; MIR32-NEXT: - { id: 0, type: spill-slot, offset: -4, size: 4, alignment: 4, stack-id: default,
76 ; MIR32-NEXT: callee-saved-register: '$r31', callee-saved-restored: true, debug-info-variable: '',
77 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
78 ; MIR32-NEXT: - { id: 1, type: spill-slot, offset: -8, size: 4, alignment: 8, stack-id: default,
79 ; MIR32-NEXT: callee-saved-register: '$r30', callee-saved-restored: true, debug-info-variable: '',
80 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
81 ; MIR32-NEXT: - { id: 2, type: spill-slot, offset: -12, size: 4, alignment: 4, stack-id: default,
82 ; MIR32-NEXT: callee-saved-register: '$r29', callee-saved-restored: true, debug-info-variable: '',
83 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
84 ; MIR32-NEXT: - { id: 3, type: spill-slot, offset: -16, size: 4, alignment: 16, stack-id: default,
85 ; MIR32-NEXT: callee-saved-register: '$r28', callee-saved-restored: true, debug-info-variable: '',
86 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
87 ; MIR32-NEXT: - { id: 4, type: spill-slot, offset: -20, size: 4, alignment: 4, stack-id: default,
88 ; MIR32-NEXT: callee-saved-register: '$r27', callee-saved-restored: true, debug-info-variable: '',
89 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
90 ; MIR32-NEXT: - { id: 5, type: spill-slot, offset: -24, size: 4, alignment: 8, stack-id: default,
91 ; MIR32-NEXT: callee-saved-register: '$r26', callee-saved-restored: true, debug-info-variable: '',
92 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
93 ; MIR32-NEXT: - { id: 6, type: spill-slot, offset: -28, size: 4, alignment: 4, stack-id: default,
94 ; MIR32-NEXT: callee-saved-register: '$r25', callee-saved-restored: true, debug-info-variable: '',
95 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
96 ; MIR32-NEXT: - { id: 7, type: spill-slot, offset: -32, size: 4, alignment: 16, stack-id: default,
97 ; MIR32-NEXT: callee-saved-register: '$r24', callee-saved-restored: true, debug-info-variable: '',
98 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
99 ; MIR32-NEXT: - { id: 8, type: spill-slot, offset: -36, size: 4, alignment: 4, stack-id: default,
100 ; MIR32-NEXT: callee-saved-register: '$r23', callee-saved-restored: true, debug-info-variable: '',
101 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
102 ; MIR32-NEXT: - { id: 9, type: spill-slot, offset: -40, size: 4, alignment: 8, stack-id: default,
103 ; MIR32-NEXT: callee-saved-register: '$r22', callee-saved-restored: true, debug-info-variable: '',
104 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
105 ; MIR32-NEXT: - { id: 10, type: spill-slot, offset: -44, size: 4, alignment: 4, stack-id: default,
106 ; MIR32-NEXT: callee-saved-register: '$r21', callee-saved-restored: true, debug-info-variable: '',
107 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
108 ; MIR32-NEXT: - { id: 11, type: spill-slot, offset: -48, size: 4, alignment: 16, stack-id: default,
109 ; MIR32-NEXT: callee-saved-register: '$r20', callee-saved-restored: true, debug-info-variable: '',
110 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
111 ; MIR32-NEXT: - { id: 12, type: spill-slot, offset: -52, size: 4, alignment: 4, stack-id: default,
112 ; MIR32-NEXT: callee-saved-register: '$r19', callee-saved-restored: true, debug-info-variable: '',
113 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
114 ; MIR32-NEXT: - { id: 13, type: spill-slot, offset: -56, size: 4, alignment: 8, stack-id: default,
115 ; MIR32-NEXT: callee-saved-register: '$r18', callee-saved-restored: true, debug-info-variable: '',
116 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
117 ; MIR32-NEXT: - { id: 14, type: spill-slot, offset: -60, size: 4, alignment: 4, stack-id: default,
118 ; MIR32-NEXT: callee-saved-register: '$r17', callee-saved-restored: true, debug-info-variable: '',
119 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
120 ; MIR32-NEXT: - { id: 15, type: spill-slot, offset: -64, size: 4, alignment: 16, stack-id: default,
121 ; MIR32-NEXT: callee-saved-register: '$r16', callee-saved-restored: true, debug-info-variable: '',
122 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
123 ; MIR32-NEXT: stack: []
126 ; MIR64: liveins: $x3, $x16, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $x29, $x30, $x31
128 ; MIR64-DAG: STD killed $x16, -128, $x1 :: (store (s64) into %fixed-stack.15, align 16)
129 ; MIR64-DAG: STD killed $x17, -120, $x1 :: (store (s64) into %fixed-stack.14)
130 ; MIR64-DAG: STD killed $x18, -112, $x1 :: (store (s64) into %fixed-stack.13, align 16)
131 ; MIR64-DAG: STD killed $x19, -104, $x1 :: (store (s64) into %fixed-stack.12)
132 ; MIR64-DAG: STD killed $x20, -96, $x1 :: (store (s64) into %fixed-stack.11, align 16)
133 ; MIR64-DAG: STD killed $x21, -88, $x1 :: (store (s64) into %fixed-stack.10)
134 ; MIR64-DAG: STD killed $x22, -80, $x1 :: (store (s64) into %fixed-stack.9, align 16)
135 ; MIR64-DAG: STD killed $x23, -72, $x1 :: (store (s64) into %fixed-stack.8)
136 ; MIR64-DAG: STD killed $x24, -64, $x1 :: (store (s64) into %fixed-stack.7, align 16)
137 ; MIR64-DAG: STD killed $x25, -56, $x1 :: (store (s64) into %fixed-stack.6)
138 ; MIR64-DAG: STD killed $x26, -48, $x1 :: (store (s64) into %fixed-stack.5, align 16)
139 ; MIR64-DAG: STD killed $x27, -40, $x1 :: (store (s64) into %fixed-stack.4)
140 ; MIR64-DAG: STD killed $x28, -32, $x1 :: (store (s64) into %fixed-stack.3, align 16)
141 ; MIR64-DAG: STD killed $x29, -24, $x1 :: (store (s64) into %fixed-stack.2)
142 ; MIR64-DAG: STD killed $x30, -16, $x1 :: (store (s64) into %fixed-stack.1, align 16)
143 ; MIR64-DAG: STD killed $x31, -8, $x1 :: (store (s64) into %fixed-stack.0)
148 ; MIR64-DAG: $x31 = LD -8, $x1 :: (load (s64) from %fixed-stack.0)
149 ; MIR64-DAG: $x30 = LD -16, $x1 :: (load (s64) from %fixed-stack.1, align 16)
150 ; MIR64-DAG: $x29 = LD -24, $x1 :: (load (s64) from %fixed-stack.2)
151 ; MIR64-DAG: $x28 = LD -32, $x1 :: (load (s64) from %fixed-stack.3, align 16)
152 ; MIR64-DAG: $x27 = LD -40, $x1 :: (load (s64) from %fixed-stack.4)
153 ; MIR64-DAG: $x26 = LD -48, $x1 :: (load (s64) from %fixed-stack.5, align 16)
154 ; MIR64-DAG: $x25 = LD -56, $x1 :: (load (s64) from %fixed-stack.6)
155 ; MIR64-DAG: $x24 = LD -64, $x1 :: (load (s64) from %fixed-stack.7, align 16)
156 ; MIR64-DAG: $x23 = LD -72, $x1 :: (load (s64) from %fixed-stack.8)
157 ; MIR64-DAG: $x22 = LD -80, $x1 :: (load (s64) from %fixed-stack.9, align 16)
158 ; MIR64-DAG: $x21 = LD -88, $x1 :: (load (s64) from %fixed-stack.10)
159 ; MIR64-DAG: $x20 = LD -96, $x1 :: (load (s64) from %fixed-stack.11, align 16)
160 ; MIR64-DAG: $x19 = LD -104, $x1 :: (load (s64) from %fixed-stack.12)
161 ; MIR64-DAG: $x18 = LD -112, $x1 :: (load (s64) from %fixed-stack.13, align 16)
162 ; MIR64-DAG: $x17 = LD -120, $x1 :: (load (s64) from %fixed-stack.14)
163 ; MIR64-DAG: $x16 = LD -128, $x1 :: (load (s64) from %fixed-stack.15, align 16)
164 ; MIR64: BLR8 implicit $lr8, implicit $rm, implicit $x3
167 ; MIR32: liveins: $r3, $r16, $r17, $r18, $r19, $r20, $r21, $r22, $r23, $r24, $r25, $r26, $r27, $r28, $r29, $r30, $r31
169 ; MIR32-DAG: STW killed $r16, -64, $r1 :: (store (s32) into %fixed-stack.15, align 16)
170 ; MIR32-DAG: STW killed $r17, -60, $r1 :: (store (s32) into %fixed-stack.14)
171 ; MIR32-DAG: STW killed $r18, -56, $r1 :: (store (s32) into %fixed-stack.13, align 8)
172 ; MIR32-DAG: STW killed $r19, -52, $r1 :: (store (s32) into %fixed-stack.12)
173 ; MIR32-DAG: STW killed $r20, -48, $r1 :: (store (s32) into %fixed-stack.11, align 16)
174 ; MIR32-DAG: STW killed $r21, -44, $r1 :: (store (s32) into %fixed-stack.10)
175 ; MIR32-DAG: STW killed $r22, -40, $r1 :: (store (s32) into %fixed-stack.9, align 8)
176 ; MIR32-DAG: STW killed $r23, -36, $r1 :: (store (s32) into %fixed-stack.8)
177 ; MIR32-DAG: STW killed $r24, -32, $r1 :: (store (s32) into %fixed-stack.7, align 16)
178 ; MIR32-DAG: STW killed $r25, -28, $r1 :: (store (s32) into %fixed-stack.6)
179 ; MIR32-DAG: STW killed $r26, -24, $r1 :: (store (s32) into %fixed-stack.5, align 8)
180 ; MIR32-DAG: STW killed $r27, -20, $r1 :: (store (s32) into %fixed-stack.4)
181 ; MIR32-DAG: STW killed $r28, -16, $r1 :: (store (s32) into %fixed-stack.3, align 16)
182 ; MIR32-DAG: STW killed $r29, -12, $r1 :: (store (s32) into %fixed-stack.2)
183 ; MIR32-DAG: STW killed $r30, -8, $r1 :: (store (s32) into %fixed-stack.1, align 8)
184 ; MIR32-DAG: STW killed $r31, -4, $r1 :: (store (s32) into %fixed-stack.0)
188 ; MIR32-DAG: $r31 = LWZ -4, $r1 :: (load (s32) from %fixed-stack.0)
189 ; MIR32-DAG: $r30 = LWZ -8, $r1 :: (load (s32) from %fixed-stack.1, align 8)
190 ; MIR32-DAG: $r29 = LWZ -12, $r1 :: (load (s32) from %fixed-stack.2)
191 ; MIR32-DAG: $r28 = LWZ -16, $r1 :: (load (s32) from %fixed-stack.3, align 16)
192 ; MIR32-DAG: $r27 = LWZ -20, $r1 :: (load (s32) from %fixed-stack.4)
193 ; MIR32-DAG: $r26 = LWZ -24, $r1 :: (load (s32) from %fixed-stack.5, align 8)
194 ; MIR32-DAG: $r25 = LWZ -28, $r1 :: (load (s32) from %fixed-stack.6)
195 ; MIR32-DAG: $r24 = LWZ -32, $r1 :: (load (s32) from %fixed-stack.7, align 16)
196 ; MIR32-DAG: $r23 = LWZ -36, $r1 :: (load (s32) from %fixed-stack.8)
197 ; MIR32-DAG: $r22 = LWZ -40, $r1 :: (load (s32) from %fixed-stack.9, align 8)
198 ; MIR32-DAG: $r21 = LWZ -44, $r1 :: (load (s32) from %fixed-stack.10)
199 ; MIR32-DAG: $r20 = LWZ -48, $r1 :: (load (s32) from %fixed-stack.11, align 16)
200 ; MIR32-DAG: $r19 = LWZ -52, $r1 :: (load (s32) from %fixed-stack.12)
201 ; MIR32-DAG: $r18 = LWZ -56, $r1 :: (load (s32) from %fixed-stack.13, align 8)
202 ; MIR32-DAG: $r17 = LWZ -60, $r1 :: (load (s32) from %fixed-stack.14)
203 ; MIR32-DAG: $r16 = LWZ -64, $r1 :: (load (s32) from %fixed-stack.15, align 16)
204 ; MIR32: BLR implicit $lr, implicit $rm, implicit $r3
207 ; ASM64-LABEL: .gprs_only:
208 ; ASM64-DAG: std 16, -128(1) # 8-byte Folded Spill
209 ; ASM64-DAG: std 17, -120(1) # 8-byte Folded Spill
210 ; ASM64-DAG: std 18, -112(1) # 8-byte Folded Spill
211 ; ASM64-DAG: std 19, -104(1) # 8-byte Folded Spill
212 ; ASM64-DAG: std 20, -96(1) # 8-byte Folded Spill
213 ; ASM64-DAG: std 21, -88(1) # 8-byte Folded Spill
214 ; ASM64-DAG: std 22, -80(1) # 8-byte Folded Spill
215 ; ASM64-DAG: std 23, -72(1) # 8-byte Folded Spill
216 ; ASM64-DAG: std 24, -64(1) # 8-byte Folded Spill
217 ; ASM64-DAG: std 25, -56(1) # 8-byte Folded Spill
218 ; ASM64-DAG: std 26, -48(1) # 8-byte Folded Spill
219 ; ASM64-DAG: std 27, -40(1) # 8-byte Folded Spill
220 ; ASM64-DAG: std 28, -32(1) # 8-byte Folded Spill
221 ; ASM64-DAG: std 29, -24(1) # 8-byte Folded Spill
222 ; ASM64-DAG: std 30, -16(1) # 8-byte Folded Spill
223 ; ASM64-DAG: std 31, -8(1) # 8-byte Folded Spill
225 ; AMS64-DAG: ld 31, -8(1) # 8-byte Folded Reload
226 ; ASM64-DAG: ld 30, -16(1) # 8-byte Folded Reload
227 ; ASM64-DAG: ld 29, -24(1) # 8-byte Folded Reload
228 ; ASM64-DAG: ld 28, -32(1) # 8-byte Folded Reload
229 ; ASM64-DAG: ld 27, -40(1) # 8-byte Folded Reload
230 ; ASM64-DAG: ld 26, -48(1) # 8-byte Folded Reload
231 ; ASM64-DAG: ld 25, -56(1) # 8-byte Folded Reload
232 ; ASM64-DAG: ld 24, -64(1) # 8-byte Folded Reload
233 ; ASM64-DAG: ld 23, -72(1) # 8-byte Folded Reload
234 ; ASM64-DAG: ld 22, -80(1) # 8-byte Folded Reload
235 ; ASM64-DAG: ld 21, -88(1) # 8-byte Folded Reload
236 ; ASM64-DAG: ld 20, -96(1) # 8-byte Folded Reload
237 ; ASM64-DAG: ld 19, -104(1) # 8-byte Folded Reload
238 ; ASM64-DAG: ld 18, -112(1) # 8-byte Folded Reload
239 ; ASM64-DAG: ld 17, -120(1) # 8-byte Folded Reload
240 ; ASM64-DAG: ld 16, -128(1) # 8-byte Folded Reload
243 ; ASM32-LABEL: .gprs_only:
244 ; ASM32-DAG: stw 16, -64(1) # 4-byte Folded Spill
245 ; ASM32-DAG: stw 17, -60(1) # 4-byte Folded Spill
246 ; ASM32-DAG: stw 18, -56(1) # 4-byte Folded Spill
247 ; ASM32-DAG: stw 19, -52(1) # 4-byte Folded Spill
248 ; ASM32-DAG: stw 20, -48(1) # 4-byte Folded Spill
249 ; ASM32-DAG: stw 21, -44(1) # 4-byte Folded Spill
250 ; ASM32-DAG: stw 22, -40(1) # 4-byte Folded Spill
251 ; ASM32-DAG: stw 23, -36(1) # 4-byte Folded Spill
252 ; ASM32-DAG: stw 24, -32(1) # 4-byte Folded Spill
253 ; ASM32-DAG: stw 25, -28(1) # 4-byte Folded Spill
254 ; ASM32-DAG: stw 26, -24(1) # 4-byte Folded Spill
255 ; ASM32-DAG: stw 27, -20(1) # 4-byte Folded Spill
256 ; ASM32-DAG: stw 28, -16(1) # 4-byte Folded Spill
257 ; ASM32-DAG: stw 29, -12(1) # 4-byte Folded Spill
258 ; ASM32-DAG: stw 30, -8(1) # 4-byte Folded Spill
259 ; ASM32-DAG: stw 31, -4(1) # 4-byte Folded Spill
261 ; ASM32-DAG: lwz 31, -4(1) # 4-byte Folded Reload
262 ; ASM32-DAG: lwz 30, -8(1) # 4-byte Folded Reload
263 ; ASM32-DAG: lwz 29, -12(1) # 4-byte Folded Reload
264 ; ASM32-DAG: lwz 28, -16(1) # 4-byte Folded Reload
265 ; ASM32-DAG: lwz 27, -20(1) # 4-byte Folded Reload
266 ; ASM32-DAG: lwz 26, -24(1) # 4-byte Folded Reload
267 ; ASM32-DAG: lwz 25, -28(1) # 4-byte Folded Reload
268 ; ASM32-DAG: lwz 24, -32(1) # 4-byte Folded Reload
269 ; ASM32-DAG: lwz 23, -36(1) # 4-byte Folded Reload
270 ; ASM32-DAG: lwz 22, -40(1) # 4-byte Folded Reload
271 ; ASM32-DAG: lwz 21, -44(1) # 4-byte Folded Reload
272 ; ASM32-DAG: lwz 20, -48(1) # 4-byte Folded Reload
273 ; ASM32-DAG: lwz 19, -52(1) # 4-byte Folded Reload
274 ; ASM32-DAG: lwz 18, -56(1) # 4-byte Folded Reload
275 ; ASM32-DAG: lwz 17, -60(1) # 4-byte Folded Reload
276 ; ASM32-DAG: lwz 16, -64(1) # 4-byte Folded Reload
280 declare double @dummy(i32 signext);
282 define dso_local double @fprs_and_gprs(i32 signext %i) {
283 call void asm sideeffect "", "~{r13},~{r14},~{r25},~{r31},~{f14},~{f19},~{f21},~{f31}"()
284 %result = call double @dummy(i32 signext %i)
288 ; MIR64: name: fprs_and_gprs
289 ; MIR64-LABEL: fixedStack:
290 ; MIR64-NEXT: - { id: 0, type: spill-slot, offset: -8, size: 8, alignment: 8, stack-id: default,
291 ; MIR64-NEXT: callee-saved-register: '$f31', callee-saved-restored: true, debug-info-variable: '',
292 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
293 ; MIR64-NEXT: - { id: 1, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default,
294 ; MIR64-NEXT: callee-saved-register: '$f30', callee-saved-restored: true, debug-info-variable: '',
295 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
296 ; MIR64-NEXT: - { id: 2, type: spill-slot, offset: -24, size: 8, alignment: 8, stack-id: default,
297 ; MIR64-NEXT: callee-saved-register: '$f29', callee-saved-restored: true, debug-info-variable: '',
298 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
299 ; MIR64-NEXT: - { id: 3, type: spill-slot, offset: -32, size: 8, alignment: 16, stack-id: default,
300 ; MIR64-NEXT: callee-saved-register: '$f28', callee-saved-restored: true, debug-info-variable: '',
301 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
302 ; MIR64-NEXT: - { id: 4, type: spill-slot, offset: -40, size: 8, alignment: 8, stack-id: default,
303 ; MIR64-NEXT: callee-saved-register: '$f27', callee-saved-restored: true, debug-info-variable: '',
304 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
305 ; MIR64-NEXT: - { id: 5, type: spill-slot, offset: -48, size: 8, alignment: 16, stack-id: default,
306 ; MIR64-NEXT: callee-saved-register: '$f26', callee-saved-restored: true, debug-info-variable: '',
307 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
308 ; MIR64-NEXT: - { id: 6, type: spill-slot, offset: -56, size: 8, alignment: 8, stack-id: default,
309 ; MIR64-NEXT: callee-saved-register: '$f25', callee-saved-restored: true, debug-info-variable: '',
310 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
311 ; MIR64-NEXT: - { id: 7, type: spill-slot, offset: -64, size: 8, alignment: 16, stack-id: default,
312 ; MIR64-NEXT: callee-saved-register: '$f24', callee-saved-restored: true, debug-info-variable: '',
313 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
314 ; MIR64-NEXT: - { id: 8, type: spill-slot, offset: -72, size: 8, alignment: 8, stack-id: default,
315 ; MIR64-NEXT: callee-saved-register: '$f23', callee-saved-restored: true, debug-info-variable: '',
316 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
317 ; MIR64-NEXT: - { id: 9, type: spill-slot, offset: -80, size: 8, alignment: 16, stack-id: default,
318 ; MIR64-NEXT: callee-saved-register: '$f22', callee-saved-restored: true, debug-info-variable: '',
319 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
320 ; MIR64-NEXT: - { id: 10, type: spill-slot, offset: -88, size: 8, alignment: 8, stack-id: default,
321 ; MIR64-NEXT: callee-saved-register: '$f21', callee-saved-restored: true, debug-info-variable: '',
322 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
323 ; MIR64-NEXT: - { id: 11, type: spill-slot, offset: -96, size: 8, alignment: 16, stack-id: default,
324 ; MIR64-NEXT: callee-saved-register: '$f20', callee-saved-restored: true, debug-info-variable: '',
325 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
326 ; MIR64-NEXT: - { id: 12, type: spill-slot, offset: -104, size: 8, alignment: 8, stack-id: default,
327 ; MIR64-NEXT: callee-saved-register: '$f19', callee-saved-restored: true, debug-info-variable: '',
328 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
329 ; MIR64-NEXT: - { id: 13, type: spill-slot, offset: -112, size: 8, alignment: 16, stack-id: default,
330 ; MIR64-NEXT: callee-saved-register: '$f18', callee-saved-restored: true, debug-info-variable: '',
331 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
332 ; MIR64-NEXT: - { id: 14, type: spill-slot, offset: -120, size: 8, alignment: 8, stack-id: default,
333 ; MIR64-NEXT: callee-saved-register: '$f17', callee-saved-restored: true, debug-info-variable: '',
334 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
335 ; MIR64-NEXT: - { id: 15, type: spill-slot, offset: -128, size: 8, alignment: 16, stack-id: default,
336 ; MIR64-NEXT: callee-saved-register: '$f16', callee-saved-restored: true, debug-info-variable: '',
337 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
338 ; MIR64-NEXT: - { id: 16, type: spill-slot, offset: -136, size: 8, alignment: 8, stack-id: default,
339 ; MIR64-NEXT: callee-saved-register: '$f15', callee-saved-restored: true, debug-info-variable: '',
340 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
341 ; MIR64-NEXT: - { id: 17, type: spill-slot, offset: -144, size: 8, alignment: 16, stack-id: default,
342 ; MIR64-NEXT: callee-saved-register: '$f14', callee-saved-restored: true, debug-info-variable: '',
343 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
344 ; MIR64-NEXT: - { id: 18, type: spill-slot, offset: -152, size: 8, alignment: 8, stack-id: default,
345 ; MIR64-NEXT: callee-saved-register: '$x31', callee-saved-restored: true, debug-info-variable: '',
346 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
347 ; MIR64-NEXT: - { id: 19, type: spill-slot, offset: -160, size: 8, alignment: 16, stack-id: default,
348 ; MIR64-NEXT: callee-saved-register: '$x30', callee-saved-restored: true, debug-info-variable: '',
349 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
350 ; MIR64-NEXT: - { id: 20, type: spill-slot, offset: -168, size: 8, alignment: 8, stack-id: default,
351 ; MIR64-NEXT: callee-saved-register: '$x29', callee-saved-restored: true, debug-info-variable: '',
352 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
353 ; MIR64-NEXT: - { id: 21, type: spill-slot, offset: -176, size: 8, alignment: 16, stack-id: default,
354 ; MIR64-NEXT: callee-saved-register: '$x28', callee-saved-restored: true, debug-info-variable: '',
355 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
356 ; MIR64-NEXT: - { id: 22, type: spill-slot, offset: -184, size: 8, alignment: 8, stack-id: default,
357 ; MIR64-NEXT: callee-saved-register: '$x27', callee-saved-restored: true, debug-info-variable: '',
358 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
359 ; MIR64-NEXT: - { id: 23, type: spill-slot, offset: -192, size: 8, alignment: 16, stack-id: default,
360 ; MIR64-NEXT: callee-saved-register: '$x26', callee-saved-restored: true, debug-info-variable: '',
361 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
362 ; MIR64-NEXT: - { id: 24, type: spill-slot, offset: -200, size: 8, alignment: 8, stack-id: default,
363 ; MIR64-NEXT: callee-saved-register: '$x25', callee-saved-restored: true, debug-info-variable: '',
364 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
365 ; MIR64-NEXT: - { id: 25, type: spill-slot, offset: -208, size: 8, alignment: 16, stack-id: default,
366 ; MIR64-NEXT: callee-saved-register: '$x24', callee-saved-restored: true, debug-info-variable: '',
367 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
368 ; MIR64-NEXT: - { id: 26, type: spill-slot, offset: -216, size: 8, alignment: 8, stack-id: default,
369 ; MIR64-NEXT: callee-saved-register: '$x23', callee-saved-restored: true, debug-info-variable: '',
370 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
371 ; MIR64-NEXT: - { id: 27, type: spill-slot, offset: -224, size: 8, alignment: 16, stack-id: default,
372 ; MIR64-NEXT: callee-saved-register: '$x22', callee-saved-restored: true, debug-info-variable: '',
373 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
374 ; MIR64-NEXT: - { id: 28, type: spill-slot, offset: -232, size: 8, alignment: 8, stack-id: default,
375 ; MIR64-NEXT: callee-saved-register: '$x21', callee-saved-restored: true, debug-info-variable: '',
376 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
377 ; MIR64-NEXT: - { id: 29, type: spill-slot, offset: -240, size: 8, alignment: 16, stack-id: default,
378 ; MIR64-NEXT: callee-saved-register: '$x20', callee-saved-restored: true, debug-info-variable: '',
379 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
380 ; MIR64-NEXT: - { id: 30, type: spill-slot, offset: -248, size: 8, alignment: 8, stack-id: default,
381 ; MIR64-NEXT: callee-saved-register: '$x19', callee-saved-restored: true, debug-info-variable: '',
382 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
383 ; MIR64-NEXT: - { id: 31, type: spill-slot, offset: -256, size: 8, alignment: 16, stack-id: default,
384 ; MIR64-NEXT: callee-saved-register: '$x18', callee-saved-restored: true, debug-info-variable: '',
385 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
386 ; MIR64-NEXT: - { id: 32, type: spill-slot, offset: -264, size: 8, alignment: 8, stack-id: default,
387 ; MIR64-NEXT: callee-saved-register: '$x17', callee-saved-restored: true, debug-info-variable: '',
388 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
389 ; MIR64-NEXT: - { id: 33, type: spill-slot, offset: -272, size: 8, alignment: 16, stack-id: default,
390 ; MIR64-NEXT: callee-saved-register: '$x16', callee-saved-restored: true, debug-info-variable: '',
391 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
392 ; MIR64-NEXT: - { id: 34, type: spill-slot, offset: -280, size: 8, alignment: 8, stack-id: default,
393 ; MIR64-NEXT: callee-saved-register: '$x15', callee-saved-restored: true, debug-info-variable: '',
394 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
395 ; MIR64-NEXT: - { id: 35, type: spill-slot, offset: -288, size: 8, alignment: 16, stack-id: default,
396 ; MIR64-NEXT: callee-saved-register: '$x14', callee-saved-restored: true, debug-info-variable: '',
397 ; MIR64-NEXT: debug-info-expression: '', debug-info-location: '' }
398 ; MIR64-NEXT: stack: []
400 ; MIR32: name: fprs_and_gprs
401 ; MIR32-LABEL: fixedStack:
402 ; MIR32-NEXT: - { id: 0, type: spill-slot, offset: -8, size: 8, alignment: 8, stack-id: default,
403 ; MIR32-NEXT: callee-saved-register: '$f31', callee-saved-restored: true, debug-info-variable: '',
404 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
405 ; MIR32-NEXT: - { id: 1, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default,
406 ; MIR32-NEXT: callee-saved-register: '$f30', callee-saved-restored: true, debug-info-variable: '',
407 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
408 ; MIR32-NEXT: - { id: 2, type: spill-slot, offset: -24, size: 8, alignment: 8, stack-id: default,
409 ; MIR32-NEXT: callee-saved-register: '$f29', callee-saved-restored: true, debug-info-variable: '',
410 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
411 ; MIR32-NEXT: - { id: 3, type: spill-slot, offset: -32, size: 8, alignment: 16, stack-id: default,
412 ; MIR32-NEXT: callee-saved-register: '$f28', callee-saved-restored: true, debug-info-variable: '',
413 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
414 ; MIR32-NEXT: - { id: 4, type: spill-slot, offset: -40, size: 8, alignment: 8, stack-id: default,
415 ; MIR32-NEXT: callee-saved-register: '$f27', callee-saved-restored: true, debug-info-variable: '',
416 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
417 ; MIR32-NEXT: - { id: 5, type: spill-slot, offset: -48, size: 8, alignment: 16, stack-id: default,
418 ; MIR32-NEXT: callee-saved-register: '$f26', callee-saved-restored: true, debug-info-variable: '',
419 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
420 ; MIR32-NEXT: - { id: 6, type: spill-slot, offset: -56, size: 8, alignment: 8, stack-id: default,
421 ; MIR32-NEXT: callee-saved-register: '$f25', callee-saved-restored: true, debug-info-variable: '',
422 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
423 ; MIR32-NEXT: - { id: 7, type: spill-slot, offset: -64, size: 8, alignment: 16, stack-id: default,
424 ; MIR32-NEXT: callee-saved-register: '$f24', callee-saved-restored: true, debug-info-variable: '',
425 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
426 ; MIR32-NEXT: - { id: 8, type: spill-slot, offset: -72, size: 8, alignment: 8, stack-id: default,
427 ; MIR32-NEXT: callee-saved-register: '$f23', callee-saved-restored: true, debug-info-variable: '',
428 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
429 ; MIR32-NEXT: - { id: 9, type: spill-slot, offset: -80, size: 8, alignment: 16, stack-id: default,
430 ; MIR32-NEXT: callee-saved-register: '$f22', callee-saved-restored: true, debug-info-variable: '',
431 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
432 ; MIR32-NEXT: - { id: 10, type: spill-slot, offset: -88, size: 8, alignment: 8, stack-id: default,
433 ; MIR32-NEXT: callee-saved-register: '$f21', callee-saved-restored: true, debug-info-variable: '',
434 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
435 ; MIR32-NEXT: - { id: 11, type: spill-slot, offset: -96, size: 8, alignment: 16, stack-id: default,
436 ; MIR32-NEXT: callee-saved-register: '$f20', callee-saved-restored: true, debug-info-variable: '',
437 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
438 ; MIR32-NEXT: - { id: 12, type: spill-slot, offset: -104, size: 8, alignment: 8, stack-id: default,
439 ; MIR32-NEXT: callee-saved-register: '$f19', callee-saved-restored: true, debug-info-variable: '',
440 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
441 ; MIR32-NEXT: - { id: 13, type: spill-slot, offset: -112, size: 8, alignment: 16, stack-id: default,
442 ; MIR32-NEXT: callee-saved-register: '$f18', callee-saved-restored: true, debug-info-variable: '',
443 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
444 ; MIR32-NEXT: - { id: 14, type: spill-slot, offset: -120, size: 8, alignment: 8, stack-id: default,
445 ; MIR32-NEXT: callee-saved-register: '$f17', callee-saved-restored: true, debug-info-variable: '',
446 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
447 ; MIR32-NEXT: - { id: 15, type: spill-slot, offset: -128, size: 8, alignment: 16, stack-id: default,
448 ; MIR32-NEXT: callee-saved-register: '$f16', callee-saved-restored: true, debug-info-variable: '',
449 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
450 ; MIR32-NEXT: - { id: 16, type: spill-slot, offset: -136, size: 8, alignment: 8, stack-id: default,
451 ; MIR32-NEXT: callee-saved-register: '$f15', callee-saved-restored: true, debug-info-variable: '',
452 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
453 ; MIR32-NEXT: - { id: 17, type: spill-slot, offset: -144, size: 8, alignment: 16, stack-id: default,
454 ; MIR32-NEXT: callee-saved-register: '$f14', callee-saved-restored: true, debug-info-variable: '',
455 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
456 ; MIR32-NEXT: - { id: 18, type: spill-slot, offset: -148, size: 4, alignment: 4, stack-id: default,
457 ; MIR32-NEXT: callee-saved-register: '$r31', callee-saved-restored: true, debug-info-variable: '',
458 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
459 ; MIR32-NEXT: - { id: 19, type: spill-slot, offset: -152, size: 4, alignment: 8, stack-id: default,
460 ; MIR32-NEXT: callee-saved-register: '$r30', callee-saved-restored: true, debug-info-variable: '',
461 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
462 ; MIR32-NEXT: - { id: 20, type: spill-slot, offset: -156, size: 4, alignment: 4, stack-id: default,
463 ; MIR32-NEXT: callee-saved-register: '$r29', callee-saved-restored: true, debug-info-variable: '',
464 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
465 ; MIR32-NEXT: - { id: 21, type: spill-slot, offset: -160, size: 4, alignment: 16, stack-id: default,
466 ; MIR32-NEXT: callee-saved-register: '$r28', callee-saved-restored: true, debug-info-variable: '',
467 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
468 ; MIR32-NEXT: - { id: 22, type: spill-slot, offset: -164, size: 4, alignment: 4, stack-id: default,
469 ; MIR32-NEXT: callee-saved-register: '$r27', callee-saved-restored: true, debug-info-variable: '',
470 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
471 ; MIR32-NEXT: - { id: 23, type: spill-slot, offset: -168, size: 4, alignment: 8, stack-id: default,
472 ; MIR32-NEXT: callee-saved-register: '$r26', callee-saved-restored: true, debug-info-variable: '',
473 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
474 ; MIR32-NEXT: - { id: 24, type: spill-slot, offset: -172, size: 4, alignment: 4, stack-id: default,
475 ; MIR32-NEXT: callee-saved-register: '$r25', callee-saved-restored: true, debug-info-variable: '',
476 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
477 ; MIR32-NEXT: - { id: 25, type: spill-slot, offset: -176, size: 4, alignment: 16, stack-id: default,
478 ; MIR32-NEXT: callee-saved-register: '$r24', callee-saved-restored: true, debug-info-variable: '',
479 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
480 ; MIR32-NEXT: - { id: 26, type: spill-slot, offset: -180, size: 4, alignment: 4, stack-id: default,
481 ; MIR32-NEXT: callee-saved-register: '$r23', callee-saved-restored: true, debug-info-variable: '',
482 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
483 ; MIR32-NEXT: - { id: 27, type: spill-slot, offset: -184, size: 4, alignment: 8, stack-id: default,
484 ; MIR32-NEXT: callee-saved-register: '$r22', callee-saved-restored: true, debug-info-variable: '',
485 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
486 ; MIR32-NEXT: - { id: 28, type: spill-slot, offset: -188, size: 4, alignment: 4, stack-id: default,
487 ; MIR32-NEXT: callee-saved-register: '$r21', callee-saved-restored: true, debug-info-variable: '',
488 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
489 ; MIR32-NEXT: - { id: 29, type: spill-slot, offset: -192, size: 4, alignment: 16, stack-id: default,
490 ; MIR32-NEXT: callee-saved-register: '$r20', callee-saved-restored: true, debug-info-variable: '',
491 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
492 ; MIR32-NEXT: - { id: 30, type: spill-slot, offset: -196, size: 4, alignment: 4, stack-id: default,
493 ; MIR32-NEXT: callee-saved-register: '$r19', callee-saved-restored: true, debug-info-variable: '',
494 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
495 ; MIR32-NEXT: - { id: 31, type: spill-slot, offset: -200, size: 4, alignment: 8, stack-id: default,
496 ; MIR32-NEXT: callee-saved-register: '$r18', callee-saved-restored: true, debug-info-variable: '',
497 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
498 ; MIR32-NEXT: - { id: 32, type: spill-slot, offset: -204, size: 4, alignment: 4, stack-id: default,
499 ; MIR32-NEXT: callee-saved-register: '$r17', callee-saved-restored: true, debug-info-variable: '',
500 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
501 ; MIR32-NEXT: - { id: 33, type: spill-slot, offset: -208, size: 4, alignment: 16, stack-id: default,
502 ; MIR32-NEXT: callee-saved-register: '$r16', callee-saved-restored: true, debug-info-variable: '',
503 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
504 ; MIR32-NEXT: - { id: 34, type: spill-slot, offset: -212, size: 4, alignment: 4, stack-id: default,
505 ; MIR32-NEXT: callee-saved-register: '$r15', callee-saved-restored: true, debug-info-variable: '',
506 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
507 ; MIR32-NEXT: - { id: 35, type: spill-slot, offset: -216, size: 4, alignment: 8, stack-id: default,
508 ; MIR32-NEXT: callee-saved-register: '$r14', callee-saved-restored: true, debug-info-variable: '',
509 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
510 ; MIR32-NEXT: - { id: 36, type: spill-slot, offset: -220, size: 4, alignment: 4, stack-id: default,
511 ; MIR32-NEXT: callee-saved-register: '$r13', callee-saved-restored: true, debug-info-variable: '',
512 ; MIR32-NEXT: debug-info-expression: '', debug-info-location: '' }
513 ; MIR32-NEXT: stack: []
516 ; MIR64: liveins: $x3, $x14, $x15, $x16, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $x29, $x30, $x31, $f14, $f15, $f16, $f17, $f18, $f19, $f20, $f21, $f22, $f23, $f24, $f25, $f26, $f27, $f28, $f29, $f30, $f31
518 ; MIR64: $x0 = MFLR8 implicit $lr8
519 ; MIR64-NEXT: $x1 = STDU $x1, -400, $x1
520 ; MIR64-NEXT: STD killed $x0, 416, $x1
521 ; MIR64-DAG: STD killed $x14, 112, $x1 :: (store (s64) into %fixed-stack.35, align 16)
522 ; MIR64-DAG: STD killed $x15, 120, $x1 :: (store (s64) into %fixed-stack.34)
523 ; MIR64-DAG: STD killed $x16, 128, $x1 :: (store (s64) into %fixed-stack.33, align 16)
524 ; MIR64-DAG: STD killed $x17, 136, $x1 :: (store (s64) into %fixed-stack.32)
525 ; MIR64-DAG: STD killed $x18, 144, $x1 :: (store (s64) into %fixed-stack.31, align 16)
526 ; MIR64-DAG: STD killed $x19, 152, $x1 :: (store (s64) into %fixed-stack.30)
527 ; MIR64-DAG: STD killed $x20, 160, $x1 :: (store (s64) into %fixed-stack.29, align 16)
528 ; MIR64-DAG: STD killed $x21, 168, $x1 :: (store (s64) into %fixed-stack.28)
529 ; MIR64-DAG: STD killed $x22, 176, $x1 :: (store (s64) into %fixed-stack.27, align 16)
530 ; MIR64-DAG: STD killed $x23, 184, $x1 :: (store (s64) into %fixed-stack.26)
531 ; MIR64-DAG: STD killed $x24, 192, $x1 :: (store (s64) into %fixed-stack.25, align 16)
532 ; MIR64-DAG: STD killed $x25, 200, $x1 :: (store (s64) into %fixed-stack.24)
533 ; MIR64-DAG: STD killed $x26, 208, $x1 :: (store (s64) into %fixed-stack.23, align 16)
534 ; MIR64-DAG: STD killed $x27, 216, $x1 :: (store (s64) into %fixed-stack.22)
535 ; MIR64-DAG: STD killed $x28, 224, $x1 :: (store (s64) into %fixed-stack.21, align 16)
536 ; MIR64-DAG: STD killed $x29, 232, $x1 :: (store (s64) into %fixed-stack.20)
537 ; MIR64-DAG: STD killed $x30, 240, $x1 :: (store (s64) into %fixed-stack.19, align 16)
538 ; MIR64-DAG: STD killed $x31, 248, $x1 :: (store (s64) into %fixed-stack.18)
539 ; MIR64-DAG: STFD killed $f14, 256, $x1 :: (store (s64) into %fixed-stack.17, align 16)
540 ; MIR64-DAG: STFD killed $f15, 264, $x1 :: (store (s64) into %fixed-stack.16)
541 ; MIR64-DAG: STFD killed $f16, 272, $x1 :: (store (s64) into %fixed-stack.15, align 16)
542 ; MIR64-DAG: STFD killed $f17, 280, $x1 :: (store (s64) into %fixed-stack.14)
543 ; MIR64-DAG: STFD killed $f18, 288, $x1 :: (store (s64) into %fixed-stack.13, align 16)
544 ; MIR64-DAG: STFD killed $f19, 296, $x1 :: (store (s64) into %fixed-stack.12)
545 ; MIR64-DAG: STFD killed $f20, 304, $x1 :: (store (s64) into %fixed-stack.11, align 16)
546 ; MIR64-DAG: STFD killed $f21, 312, $x1 :: (store (s64) into %fixed-stack.10)
547 ; MIR64-DAG: STFD killed $f22, 320, $x1 :: (store (s64) into %fixed-stack.9, align 16)
548 ; MIR64-DAG: STFD killed $f23, 328, $x1 :: (store (s64) into %fixed-stack.8)
549 ; MIR64-DAG: STFD killed $f24, 336, $x1 :: (store (s64) into %fixed-stack.7, align 16)
550 ; MIR64-DAG: STFD killed $f25, 344, $x1 :: (store (s64) into %fixed-stack.6)
551 ; MIR64-DAG: STFD killed $f26, 352, $x1 :: (store (s64) into %fixed-stack.5, align 16)
552 ; MIR64-DAG: STFD killed $f27, 360, $x1 :: (store (s64) into %fixed-stack.4)
553 ; MIR64-DAG: STFD killed $f28, 368, $x1 :: (store (s64) into %fixed-stack.3, align 16)
554 ; MIR64-DAG: STFD killed $f29, 376, $x1 :: (store (s64) into %fixed-stack.2)
555 ; MIR64-DAG: STFD killed $f30, 384, $x1 :: (store (s64) into %fixed-stack.1, align 16)
556 ; MIR64-DAG: STFD killed $f31, 392, $x1 :: (store (s64) into %fixed-stack.0)
559 ; MIR64-NEXT: BL8_NOP
561 ; MIR64-DAG: $f31 = LFD 392, $x1 :: (load (s64) from %fixed-stack.0)
562 ; MIR64-DAG: $f30 = LFD 384, $x1 :: (load (s64) from %fixed-stack.1, align 16)
563 ; MIR64-DAG: $f29 = LFD 376, $x1 :: (load (s64) from %fixed-stack.2)
564 ; MIR64-DAG: $f28 = LFD 368, $x1 :: (load (s64) from %fixed-stack.3, align 16)
565 ; MIR64-DAG: $f27 = LFD 360, $x1 :: (load (s64) from %fixed-stack.4)
566 ; MIR64-DAG: $f26 = LFD 352, $x1 :: (load (s64) from %fixed-stack.5, align 16)
567 ; MIR64-DAG: $f25 = LFD 344, $x1 :: (load (s64) from %fixed-stack.6)
568 ; MIR64-DAG: $f24 = LFD 336, $x1 :: (load (s64) from %fixed-stack.7, align 16)
569 ; MIR64-DAG: $f23 = LFD 328, $x1 :: (load (s64) from %fixed-stack.8)
570 ; MIR64-DAG: $f22 = LFD 320, $x1 :: (load (s64) from %fixed-stack.9, align 16)
571 ; MIR64-DAG: $f21 = LFD 312, $x1 :: (load (s64) from %fixed-stack.10)
572 ; MIR64-DAG: $f20 = LFD 304, $x1 :: (load (s64) from %fixed-stack.11, align 16)
573 ; MIR64-DAG: $f19 = LFD 296, $x1 :: (load (s64) from %fixed-stack.12)
574 ; MIR64-DAG: $f18 = LFD 288, $x1 :: (load (s64) from %fixed-stack.13, align 16)
575 ; MIR64-DAG: $f17 = LFD 280, $x1 :: (load (s64) from %fixed-stack.14)
576 ; MIR64-DAG: $f16 = LFD 272, $x1 :: (load (s64) from %fixed-stack.15, align 16)
577 ; MIR64-DAG: $f15 = LFD 264, $x1 :: (load (s64) from %fixed-stack.16)
578 ; MIR64-DAG: $f14 = LFD 256, $x1 :: (load (s64) from %fixed-stack.17, align 16)
579 ; MIR64-DAG: $x31 = LD 248, $x1 :: (load (s64) from %fixed-stack.18)
580 ; MIR64-DAG: $x30 = LD 240, $x1 :: (load (s64) from %fixed-stack.19, align 16)
581 ; MIR64-DAG: $x29 = LD 232, $x1 :: (load (s64) from %fixed-stack.20)
582 ; MIR64-DAG: $x28 = LD 224, $x1 :: (load (s64) from %fixed-stack.21, align 16)
583 ; MIR64-DAG: $x27 = LD 216, $x1 :: (load (s64) from %fixed-stack.22)
584 ; MIR64-DAG: $x26 = LD 208, $x1 :: (load (s64) from %fixed-stack.23, align 16)
585 ; MIR64-DAG: $x25 = LD 200, $x1 :: (load (s64) from %fixed-stack.24)
586 ; MIR64-DAG: $x24 = LD 192, $x1 :: (load (s64) from %fixed-stack.25, align 16)
587 ; MIR64-DAG: $x23 = LD 184, $x1 :: (load (s64) from %fixed-stack.26)
588 ; MIR64-DAG: $x22 = LD 176, $x1 :: (load (s64) from %fixed-stack.27, align 16)
589 ; MIR64-DAG: $x21 = LD 168, $x1 :: (load (s64) from %fixed-stack.28)
590 ; MIR64-DAG: $x20 = LD 160, $x1 :: (load (s64) from %fixed-stack.29, align 16)
591 ; MIR64-DAG: $x19 = LD 152, $x1 :: (load (s64) from %fixed-stack.30)
592 ; MIR64-DAG: $x18 = LD 144, $x1 :: (load (s64) from %fixed-stack.31, align 16)
593 ; MIR64-DAG: $x17 = LD 136, $x1 :: (load (s64) from %fixed-stack.32)
594 ; MIR64-DAG: $x16 = LD 128, $x1 :: (load (s64) from %fixed-stack.33, align 16)
595 ; MIR64-DAG: $x15 = LD 120, $x1 :: (load (s64) from %fixed-stack.34)
596 ; MIR64-DAG: $x14 = LD 112, $x1 :: (load (s64) from %fixed-stack.35, align 16)
598 ; MIR64: $x1 = ADDI8 $x1, 400
599 ; MIR64-NEXT: $x0 = LD 16, $x1
600 ; MIR64-NEXT: MTLR8 $x0, implicit-def $lr8
601 ; MIR64-NEXT: BLR8 implicit $lr8, implicit $rm, implicit $f1
603 ; MIR32: liveins: $r3, $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
605 ; MIR32: $r0 = MFLR implicit $lr
606 ; MIR32-NEXT: $r1 = STWU $r1, -288, $r1
607 ; MIR32-NEXT: STW killed $r0, 296, $r1
608 ; MIR32-DAG: STW killed $r13, 68, $r1 :: (store (s32) into %fixed-stack.36)
609 ; MIR32-DAG: STW killed $r14, 72, $r1 :: (store (s32) into %fixed-stack.35, align 8)
610 ; MIR32-DAG: STW killed $r15, 76, $r1 :: (store (s32) into %fixed-stack.34)
611 ; MIR32-DAG: STW killed $r16, 80, $r1 :: (store (s32) into %fixed-stack.33, align 16)
612 ; MIR32-DAG: STW killed $r17, 84, $r1 :: (store (s32) into %fixed-stack.32)
613 ; MIR32-DAG: STW killed $r18, 88, $r1 :: (store (s32) into %fixed-stack.31, align 8)
614 ; MIR32-DAG: STW killed $r19, 92, $r1 :: (store (s32) into %fixed-stack.30)
615 ; MIR32-DAG: STW killed $r20, 96, $r1 :: (store (s32) into %fixed-stack.29, align 16)
616 ; MIR32-DAG: STW killed $r21, 100, $r1 :: (store (s32) into %fixed-stack.28)
617 ; MIR32-DAG: STW killed $r22, 104, $r1 :: (store (s32) into %fixed-stack.27, align 8)
618 ; MIR32-DAG: STW killed $r23, 108, $r1 :: (store (s32) into %fixed-stack.26)
619 ; MIR32-DAG: STW killed $r24, 112, $r1 :: (store (s32) into %fixed-stack.25, align 16)
620 ; MIR32-DAG: STW killed $r25, 116, $r1 :: (store (s32) into %fixed-stack.24)
621 ; MIR32-DAG: STW killed $r26, 120, $r1 :: (store (s32) into %fixed-stack.23, align 8)
622 ; MIR32-DAG: STW killed $r27, 124, $r1 :: (store (s32) into %fixed-stack.22)
623 ; MIR32-DAG: STW killed $r28, 128, $r1 :: (store (s32) into %fixed-stack.21, align 16)
624 ; MIR32-DAG: STW killed $r29, 132, $r1 :: (store (s32) into %fixed-stack.20)
625 ; MIR32-DAG: STW killed $r30, 136, $r1 :: (store (s32) into %fixed-stack.19, align 8)
626 ; MIR32-DAG: STW killed $r31, 140, $r1 :: (store (s32) into %fixed-stack.18)
627 ; MIR32-DAG: STFD killed $f14, 144, $r1 :: (store (s64) into %fixed-stack.17, align 16)
628 ; MIR32-DAG: STFD killed $f15, 152, $r1 :: (store (s64) into %fixed-stack.16)
629 ; MIR32-DAG: STFD killed $f16, 160, $r1 :: (store (s64) into %fixed-stack.15, align 16)
630 ; MIR32-DAG: STFD killed $f17, 168, $r1 :: (store (s64) into %fixed-stack.14)
631 ; MIR32-DAG: STFD killed $f18, 176, $r1 :: (store (s64) into %fixed-stack.13, align 16)
632 ; MIR32-DAG: STFD killed $f19, 184, $r1 :: (store (s64) into %fixed-stack.12)
633 ; MIR32-DAG: STFD killed $f20, 192, $r1 :: (store (s64) into %fixed-stack.11, align 16)
634 ; MIR32-DAG: STFD killed $f21, 200, $r1 :: (store (s64) into %fixed-stack.10)
635 ; MIR32-DAG: STFD killed $f22, 208, $r1 :: (store (s64) into %fixed-stack.9, align 16)
636 ; MIR32-DAG: STFD killed $f23, 216, $r1 :: (store (s64) into %fixed-stack.8)
637 ; MIR32-DAG: STFD killed $f24, 224, $r1 :: (store (s64) into %fixed-stack.7, align 16)
638 ; MIR32-DAG: STFD killed $f25, 232, $r1 :: (store (s64) into %fixed-stack.6)
639 ; MIR32-DAG: STFD killed $f26, 240, $r1 :: (store (s64) into %fixed-stack.5, align 16)
640 ; MIR32-DAG: STFD killed $f27, 248, $r1 :: (store (s64) into %fixed-stack.4)
641 ; MIR32-DAG: STFD killed $f28, 256, $r1 :: (store (s64) into %fixed-stack.3, align 16)
642 ; MIR32-DAG: STFD killed $f29, 264, $r1 :: (store (s64) into %fixed-stack.2)
643 ; MIR32-DAG: STFD killed $f30, 272, $r1 :: (store (s64) into %fixed-stack.1, align 16)
644 ; MIR32-DAG: STFD killed $f31, 280, $r1 :: (store (s64) into %fixed-stack.0)
649 ; MIR32-DAG: $f31 = LFD 280, $r1 :: (load (s64) from %fixed-stack.0)
650 ; MIR32-DAG: $f30 = LFD 272, $r1 :: (load (s64) from %fixed-stack.1, align 16)
651 ; MIR32-DAG: $f29 = LFD 264, $r1 :: (load (s64) from %fixed-stack.2)
652 ; MIR32-DAG: $f28 = LFD 256, $r1 :: (load (s64) from %fixed-stack.3, align 16)
653 ; MIR32-DAG: $f27 = LFD 248, $r1 :: (load (s64) from %fixed-stack.4)
654 ; MIR32-DAG: $f26 = LFD 240, $r1 :: (load (s64) from %fixed-stack.5, align 16)
655 ; MIR32-DAG: $f25 = LFD 232, $r1 :: (load (s64) from %fixed-stack.6)
656 ; MIR32-DAG: $f24 = LFD 224, $r1 :: (load (s64) from %fixed-stack.7, align 16)
657 ; MIR32-DAG: $f23 = LFD 216, $r1 :: (load (s64) from %fixed-stack.8)
658 ; MIR32-DAG: $f22 = LFD 208, $r1 :: (load (s64) from %fixed-stack.9, align 16)
659 ; MIR32-DAG: $f21 = LFD 200, $r1 :: (load (s64) from %fixed-stack.10)
660 ; MIR32-DAG: $f20 = LFD 192, $r1 :: (load (s64) from %fixed-stack.11, align 16)
661 ; MIR32-DAG: $f19 = LFD 184, $r1 :: (load (s64) from %fixed-stack.12)
662 ; MIR32-DAG: $f18 = LFD 176, $r1 :: (load (s64) from %fixed-stack.13, align 16)
663 ; MIR32-DAG: $f17 = LFD 168, $r1 :: (load (s64) from %fixed-stack.14)
664 ; MIR32-DAG: $f16 = LFD 160, $r1 :: (load (s64) from %fixed-stack.15, align 16)
665 ; MIR32-DAG: $f15 = LFD 152, $r1 :: (load (s64) from %fixed-stack.16)
666 ; MIR32-DAG: $f14 = LFD 144, $r1 :: (load (s64) from %fixed-stack.17, align 16)
667 ; MIR32-DAG: $r31 = LWZ 140, $r1 :: (load (s32) from %fixed-stack.18)
668 ; MIR32-DAG: $r30 = LWZ 136, $r1 :: (load (s32) from %fixed-stack.19, align 8)
669 ; MIR32-DAG: $r29 = LWZ 132, $r1 :: (load (s32) from %fixed-stack.20)
670 ; MIR32-DAG: $r28 = LWZ 128, $r1 :: (load (s32) from %fixed-stack.21, align 16)
671 ; MIR32-DAG: $r27 = LWZ 124, $r1 :: (load (s32) from %fixed-stack.22)
672 ; MIR32-DAG: $r26 = LWZ 120, $r1 :: (load (s32) from %fixed-stack.23, align 8)
673 ; MIR32-DAG: $r25 = LWZ 116, $r1 :: (load (s32) from %fixed-stack.24)
674 ; MIR32-DAG: $r24 = LWZ 112, $r1 :: (load (s32) from %fixed-stack.25, align 16)
675 ; MIR32-DAG: $r23 = LWZ 108, $r1 :: (load (s32) from %fixed-stack.26)
676 ; MIR32-DAG: $r22 = LWZ 104, $r1 :: (load (s32) from %fixed-stack.27, align 8)
677 ; MIR32-DAG: $r21 = LWZ 100, $r1 :: (load (s32) from %fixed-stack.28)
678 ; MIR32-DAG: $r20 = LWZ 96, $r1 :: (load (s32) from %fixed-stack.29, align 16)
679 ; MIR32-DAG: $r19 = LWZ 92, $r1 :: (load (s32) from %fixed-stack.30)
680 ; MIR32-DAG: $r18 = LWZ 88, $r1 :: (load (s32) from %fixed-stack.31, align 8)
681 ; MIR32-DAG: $r17 = LWZ 84, $r1 :: (load (s32) from %fixed-stack.32)
682 ; MIR32-DAG: $r16 = LWZ 80, $r1 :: (load (s32) from %fixed-stack.33, align 16)
683 ; MIR32-DAG: $r15 = LWZ 76, $r1 :: (load (s32) from %fixed-stack.34)
684 ; MIR32-DAG: $r14 = LWZ 72, $r1 :: (load (s32) from %fixed-stack.35, align 8)
685 ; MIR32-DAG: $r13 = LWZ 68, $r1 :: (load (s32) from %fixed-stack.36)
686 ; MIR32: $r1 = ADDI $r1, 288
687 ; MIR32-NEXT: $r0 = LWZ 8, $r1
688 ; MIR32-NEXT: MTLR $r0, implicit-def $lr
689 ; MIR32-NEXT: BLR implicit $lr, implicit $rm, implicit $f1
691 ; ASM64-LABEL: .fprs_and_gprs:
693 ; ASM64-NEXT: stdu 1, -400(1)
694 ; ASM64-NEXT: std 0, 416(1)
695 ; ASM64-DAG: std 14, 112(1) # 8-byte Folded Spill
696 ; ASM64-DAG: std 15, 120(1) # 8-byte Folded Spill
697 ; ASM64-DAG: std 16, 128(1) # 8-byte Folded Spill
698 ; ASM64-DAG: std 17, 136(1) # 8-byte Folded Spill
699 ; ASM64-DAG: std 18, 144(1) # 8-byte Folded Spill
700 ; ASM64-DAG: std 19, 152(1) # 8-byte Folded Spill
701 ; ASM64-DAG: std 20, 160(1) # 8-byte Folded Spill
702 ; ASM64-DAG: std 21, 168(1) # 8-byte Folded Spill
703 ; ASM64-DAG: std 22, 176(1) # 8-byte Folded Spill
704 ; ASM64-DAG: std 23, 184(1) # 8-byte Folded Spill
705 ; ASM64-DAG: std 24, 192(1) # 8-byte Folded Spill
706 ; ASM64-DAG: std 25, 200(1) # 8-byte Folded Spill
707 ; ASM64-DAG: std 26, 208(1) # 8-byte Folded Spill
708 ; ASM64-DAG: std 27, 216(1) # 8-byte Folded Spill
709 ; ASM64-DAG: std 28, 224(1) # 8-byte Folded Spill
710 ; ASM64-DAG: std 29, 232(1) # 8-byte Folded Spill
711 ; ASM64-DAG: std 30, 240(1) # 8-byte Folded Spill
712 ; ASM64-DAG: std 31, 248(1) # 8-byte Folded Spill
713 ; ASM64-DAG: stfd 14, 256(1) # 8-byte Folded Spill
714 ; ASM64-DAG: stfd 15, 264(1) # 8-byte Folded Spill
715 ; ASM64-DAG: stfd 16, 272(1) # 8-byte Folded Spill
716 ; ASM64-DAG: stfd 17, 280(1) # 8-byte Folded Spill
717 ; ASM64-DAG: stfd 18, 288(1) # 8-byte Folded Spill
718 ; ASM64-DAG: stfd 19, 296(1) # 8-byte Folded Spill
719 ; ASM64-DAG: stfd 20, 304(1) # 8-byte Folded Spill
720 ; ASM64-DAG: stfd 21, 312(1) # 8-byte Folded Spill
721 ; ASM64-DAG: stfd 22, 320(1) # 8-byte Folded Spill
722 ; ASM64-DAG: stfd 23, 328(1) # 8-byte Folded Spill
723 ; ASM64-DAG: stfd 24, 336(1) # 8-byte Folded Spill
724 ; ASM64-DAG: stfd 25, 344(1) # 8-byte Folded Spill
725 ; ASM64-DAG: stfd 26, 352(1) # 8-byte Folded Spill
726 ; ASM64-DAG: stfd 27, 360(1) # 8-byte Folded Spill
727 ; ASM64-DAG: stfd 28, 368(1) # 8-byte Folded Spill
728 ; ASM64-DAG: stfd 29, 376(1) # 8-byte Folded Spill
729 ; ASM64-DAG: stfd 30, 384(1) # 8-byte Folded Spill
730 ; ASM64-DAG: stfd 31, 392(1) # 8-byte Folded Spill
733 ; ASM64-DAG: lfd 31, 392(1) # 8-byte Folded Reload
734 ; ASM64-DAG: lfd 30, 384(1) # 8-byte Folded Reload
735 ; ASM64-DAG: lfd 29, 376(1) # 8-byte Folded Reload
736 ; ASM64-DAG: lfd 28, 368(1) # 8-byte Folded Reload
737 ; ASM64-DAG: lfd 27, 360(1) # 8-byte Folded Reload
738 ; ASM64-DAG: lfd 26, 352(1) # 8-byte Folded Reload
739 ; ASM64-DAG: lfd 25, 344(1) # 8-byte Folded Reload
740 ; ASM64-DAG: lfd 24, 336(1) # 8-byte Folded Reload
741 ; ASM64-DAG: lfd 23, 328(1) # 8-byte Folded Reload
742 ; ASM64-DAG: lfd 22, 320(1) # 8-byte Folded Reload
743 ; ASM64-DAG: lfd 21, 312(1) # 8-byte Folded Reload
744 ; ASM64-DAG: lfd 20, 304(1) # 8-byte Folded Reload
745 ; ASM64-DAG: lfd 19, 296(1) # 8-byte Folded Reload
746 ; ASM64-DAG: lfd 18, 288(1) # 8-byte Folded Reload
747 ; ASM64-DAG: lfd 17, 280(1) # 8-byte Folded Reload
748 ; ASM64-DAG: lfd 16, 272(1) # 8-byte Folded Reload
749 ; ASM64-DAG: lfd 15, 264(1) # 8-byte Folded Reload
750 ; ASM64-DAG: lfd 14, 256(1) # 8-byte Folded Reload
751 ; ASM64-DAG: ld 31, 248(1) # 8-byte Folded Reload
752 ; ASM64-DAG: ld 30, 240(1) # 8-byte Folded Reload
753 ; ASM64-DAG: ld 29, 232(1) # 8-byte Folded Reload
754 ; ASM64-DAG: ld 28, 224(1) # 8-byte Folded Reload
755 ; ASM64-DAG: ld 27, 216(1) # 8-byte Folded Reload
756 ; ASM64-DAG: ld 26, 208(1) # 8-byte Folded Reload
757 ; ASM64-DAG: ld 25, 200(1) # 8-byte Folded Reload
758 ; ASM64-DAG: ld 24, 192(1) # 8-byte Folded Reload
759 ; ASM64-DAG: ld 23, 184(1) # 8-byte Folded Reload
760 ; ASM64-DAG: ld 22, 176(1) # 8-byte Folded Reload
761 ; ASM64-DAG: ld 21, 168(1) # 8-byte Folded Reload
762 ; ASM64-DAG: ld 20, 160(1) # 8-byte Folded Reload
763 ; ASM64-DAG: ld 19, 152(1) # 8-byte Folded Reload
764 ; ASM64-DAG: ld 18, 144(1) # 8-byte Folded Reload
765 ; ASM64-DAG: ld 17, 136(1) # 8-byte Folded Reload
766 ; ASM64-DAG: ld 16, 128(1) # 8-byte Folded Reload
767 ; ASM64-DAG: ld 15, 120(1) # 8-byte Folded Reload
768 ; ASM64-DAG: ld 14, 112(1) # 8-byte Folded Reload
770 ; ASM64: addi 1, 1, 400
771 ; ASM64-NEXT: ld 0, 16(1)
775 ; ASM32-LABEL: .fprs_and_gprs:
777 ; ASM32-NEXT: stwu 1, -288(1)
778 ; ASM32-NEXT: stw 0, 296(1)
779 ; ASM32-DAG: stw 13, 68(1) # 4-byte Folded Spill
780 ; ASM32-DAG: stw 14, 72(1) # 4-byte Folded Spill
781 ; ASM32-DAG: stw 25, 116(1) # 4-byte Folded Spill
782 ; ASM32-DAG: stw 31, 140(1) # 4-byte Folded Spill
783 ; ASM32-DAG: stfd 14, 144(1) # 8-byte Folded Spill
784 ; ASM32-DAG: stfd 19, 184(1) # 8-byte Folded Spill
785 ; ASM32-DAG: stfd 21, 200(1) # 8-byte Folded Spill
786 ; ASM32-DAG: stfd 31, 280(1) # 8-byte Folded Spill
788 ; ASM32-DAG: bl .dummy
790 ; ASM32-DAG: lfd 31, 280(1) # 8-byte Folded Reload
791 ; ASM32-DAG: lfd 21, 200(1) # 8-byte Folded Reload
792 ; ASM32-DAG: lfd 19, 184(1) # 8-byte Folded Reload
793 ; ASM32-DAG: lfd 14, 144(1) # 8-byte Folded Reload
794 ; ASM32-DAG: lwz 31, 140(1) # 4-byte Folded Reload
795 ; ASM32-DAG: lwz 25, 116(1) # 4-byte Folded Reload
796 ; ASM32-DAG: lwz 14, 72(1) # 4-byte Folded Reload
797 ; ASM32-DAG: lwz 13, 68(1) # 4-byte Folded Reload
798 ; ASM32: addi 1, 1, 288
799 ; ASM32-NEXT: lwz 0, 8(1)