3 /* { dg-options "-Os" } */
5 #define X2(n) X1(n##0) X1(n##1)
6 #define X4(n) X2(n##0) X2(n##1)
7 #define X8(n) X4(n##0) X4(n##1)
10 #define FLOAT_REG_CONSTRAINT "f"
12 #define FLOAT_REG_CONSTRAINT "r"
17 __attribute__((noinline
)) void
20 asm volatile ("" : : : "memory");
23 __attribute__((noinline
)) void
26 asm volatile ("" : : "r" (p
) : "memory");
29 __attribute__((noinline
)) void
34 #define X1(n) int gpr##n = 0;
37 #define X1(n) "+r" (gpr##n),
38 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
39 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
40 asm volatile ("" : X8(c
) "=m" (mem
) : : "memory");
43 #define X1(n) "r" (gpr##n),
44 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
45 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
46 asm volatile ("" : : X8(c
) "m" (mem
) : "memory");
49 __attribute__((noinline
)) void
54 #define X1(n) int gpr##n = 0;
57 #define X1(n) "+r" (gpr##n),
58 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
59 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
60 asm volatile ("" : X8(c
) "=m" (mem
) : : "memory");
61 char *pp
= __builtin_alloca (ll
);
64 #define X1(n) "r" (gpr##n),
65 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
66 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
67 asm volatile ("" : : X8(c
) "m" (mem
) : "memory");
70 __attribute__((noinline
)) void
75 #define X1(n) int gpr##n = 0;
78 #define X1(n) "+r" (gpr##n),
79 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
80 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
81 asm volatile ("" : X8(c
) "=m" (mem
) : : "memory");
83 #define X1(n) "r" (gpr##n),
84 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
85 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
86 asm volatile ("" : : X8(c
) "m" (mem
) : "memory");
90 __attribute__((noinline
)) void
95 #define X1(n) int gpr##n = 0;
98 #define X1(n) double fpr##n = 0.0;
101 #define X1(n) "+r" (gpr##n),
102 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
103 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
104 asm volatile ("" : X8(c
) "=m" (mem
) : : "memory");
106 #define X1(n) "+" FLOAT_REG_CONSTRAINT (fpr##n),
107 asm volatile ("" : X4(d
) "=m" (mem
) : : "memory");
110 #define X1(n) "r" (gpr##n),
111 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
112 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
113 asm volatile ("" : : X8(c
) "m" (mem
) : "memory");
115 #define X1(n) FLOAT_REG_CONSTRAINT (fpr##n),
116 asm volatile ("" : : X4(d
) "m" (mem
) : "memory");
119 __attribute__((noinline
)) void
124 #define X1(n) int gpr##n = 0;
127 #define X1(n) double fpr##n = 0.0;
130 #define X1(n) "+r" (gpr##n),
131 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
132 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
133 asm volatile ("" : X8(c
) "=m" (mem
) : : "memory");
135 #define X1(n) "+" FLOAT_REG_CONSTRAINT (fpr##n),
136 asm volatile ("" : X4(d
) "=m" (mem
) : : "memory");
137 char *pp
= __builtin_alloca (ll
);
140 #define X1(n) "r" (gpr##n),
141 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
142 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
143 asm volatile ("" : : X8(c
) "m" (mem
) : "memory");
145 #define X1(n) FLOAT_REG_CONSTRAINT (fpr##n),
146 asm volatile ("" : : X4(d
) "m" (mem
) : "memory");
149 __attribute__((noinline
)) void
154 #define X1(n) int gpr##n = 0;
157 #define X1(n) double fpr##n = 0.0;
160 #define X1(n) "+r" (gpr##n),
161 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
162 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
163 asm volatile ("" : X8(c
) "=m" (mem
) : : "memory");
165 #define X1(n) "+" FLOAT_REG_CONSTRAINT (fpr##n),
166 asm volatile ("" : X4(d
) "=m" (mem
) : : "memory");
168 #define X1(n) "r" (gpr##n),
169 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
170 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
171 asm volatile ("" : : X8(c
) "m" (mem
) : "memory");
173 #define X1(n) FLOAT_REG_CONSTRAINT (fpr##n),
174 asm volatile ("" : : X4(d
) "m" (mem
) : "memory");
177 __attribute__((noinline
)) void
182 #define X1(n) int gpr##n = 0;
185 #define X1(n) double fpr##n = 0.0;
188 #define X1(n) "+r" (gpr##n),
189 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
190 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
191 asm volatile ("" : X8(c
) "=m" (mem
) : : "memory");
193 #define X1(n) "+" FLOAT_REG_CONSTRAINT (fpr##n),
194 asm volatile ("" : X2(d
) "=m" (mem
) : : "memory");
197 #define X1(n) "r" (gpr##n),
198 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
199 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
200 asm volatile ("" : : X8(c
) "m" (mem
) : "memory");
202 #define X1(n) FLOAT_REG_CONSTRAINT (fpr##n),
203 asm volatile ("" : : X2(d
) "m" (mem
) : "memory");
206 __attribute__((noinline
)) void
211 #define X1(n) int gpr##n = 0;
214 #define X1(n) double fpr##n = 0.0;
217 #define X1(n) "+r" (gpr##n),
218 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
219 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
220 asm volatile ("" : X8(c
) "=m" (mem
) : : "memory");
222 #define X1(n) "+" FLOAT_REG_CONSTRAINT (fpr##n),
223 asm volatile ("" : X2(d
) "=m" (mem
) : : "memory");
224 char *pp
= __builtin_alloca (ll
);
227 #define X1(n) "r" (gpr##n),
228 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
229 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
230 asm volatile ("" : : X8(c
) "m" (mem
) : "memory");
232 #define X1(n) FLOAT_REG_CONSTRAINT (fpr##n),
233 asm volatile ("" : : X2(d
) "m" (mem
) : "memory");
236 __attribute__((noinline
)) void
241 #define X1(n) int gpr##n = 0;
244 #define X1(n) double fpr##n = 0.0;
247 #define X1(n) "+r" (gpr##n),
248 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
249 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
250 asm volatile ("" : X8(c
) "=m" (mem
) : : "memory");
252 #define X1(n) "+" FLOAT_REG_CONSTRAINT (fpr##n),
253 asm volatile ("" : X2(d
) "=m" (mem
) : : "memory");
255 #define X1(n) "r" (gpr##n),
256 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
257 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
258 asm volatile ("" : : X8(c
) "m" (mem
) : "memory");
260 #define X1(n) FLOAT_REG_CONSTRAINT (fpr##n),
261 asm volatile ("" : : X2(d
) "m" (mem
) : "memory");
264 __attribute__((noinline
)) void
269 #define X1(n) int gpr##n = 0;
272 #define X1(n) double fpr##n = 0.0;
275 #define X1(n) "+r" (gpr##n),
276 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
277 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
278 asm volatile ("" : X4(c
) "=m" (mem
) : : "memory");
280 #define X1(n) "+" FLOAT_REG_CONSTRAINT (fpr##n),
281 asm volatile ("" : X1(d
) "=m" (mem
) : : "memory");
284 #define X1(n) "r" (gpr##n),
285 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
286 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
287 asm volatile ("" : : X4(c
) "m" (mem
) : "memory");
289 #define X1(n) FLOAT_REG_CONSTRAINT (fpr##n),
290 asm volatile ("" : : X1(d
) "m" (mem
) : "memory");
293 __attribute__((noinline
)) void
298 #define X1(n) int gpr##n = 0;
301 #define X1(n) double fpr##n = 0.0;
304 #define X1(n) "+r" (gpr##n),
305 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
306 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
307 asm volatile ("" : X4(c
) "=m" (mem
) : : "memory");
309 #define X1(n) "+" FLOAT_REG_CONSTRAINT (fpr##n),
310 asm volatile ("" : X1(d
) "=m" (mem
) : : "memory");
311 char *pp
= __builtin_alloca (ll
);
314 #define X1(n) "r" (gpr##n),
315 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
316 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
317 asm volatile ("" : : X4(c
) "m" (mem
) : "memory");
319 #define X1(n) FLOAT_REG_CONSTRAINT (fpr##n),
320 asm volatile ("" : : X1(d
) "m" (mem
) : "memory");
323 __attribute__((noinline
)) void
328 #define X1(n) int gpr##n = 0;
331 #define X1(n) double fpr##n = 0.0;
334 #define X1(n) "+r" (gpr##n),
335 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
336 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
337 asm volatile ("" : X4(c
) "=m" (mem
) : : "memory");
339 #define X1(n) "+" FLOAT_REG_CONSTRAINT (fpr##n),
340 asm volatile ("" : X1(d
) "=m" (mem
) : : "memory");
342 #define X1(n) "r" (gpr##n),
343 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
344 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
345 asm volatile ("" : : X4(c
) "m" (mem
) : "memory");
347 #define X1(n) FLOAT_REG_CONSTRAINT (fpr##n),
348 asm volatile ("" : : X1(d
) "m" (mem
) : "memory");
351 __attribute__((noinline
)) void
356 #define X1(n) int gpr##n = 0;
359 #define X1(n) double fpr##n = 0.0;
362 #define X1(n) "+r" (gpr##n),
363 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
364 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
365 asm volatile ("" : X2(c
) "=m" (mem
) : : "memory");
367 #define X1(n) "+" FLOAT_REG_CONSTRAINT (fpr##n),
368 asm volatile ("" : X8(d
) "=m" (mem
) : : "memory");
371 #define X1(n) "r" (gpr##n),
372 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
373 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
374 asm volatile ("" : : X2(c
) "m" (mem
) : "memory");
376 #define X1(n) FLOAT_REG_CONSTRAINT (fpr##n),
377 asm volatile ("" : : X8(d
) "m" (mem
) : "memory");
380 __attribute__((noinline
)) void
385 #define X1(n) int gpr##n = 0;
388 #define X1(n) double fpr##n = 0.0;
391 #define X1(n) "+r" (gpr##n),
392 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
393 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
394 asm volatile ("" : X2(c
) "=m" (mem
) : : "memory");
396 #define X1(n) "+" FLOAT_REG_CONSTRAINT (fpr##n),
397 asm volatile ("" : X8(d
) "=m" (mem
) : : "memory");
398 char *pp
= __builtin_alloca (ll
);
401 #define X1(n) "r" (gpr##n),
402 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
403 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
404 asm volatile ("" : : X2(c
) "m" (mem
) : "memory");
406 #define X1(n) FLOAT_REG_CONSTRAINT (fpr##n),
407 asm volatile ("" : : X8(d
) "m" (mem
) : "memory");
410 __attribute__((noinline
)) void
415 #define X1(n) int gpr##n = 0;
418 #define X1(n) double fpr##n = 0.0;
421 #define X1(n) "+r" (gpr##n),
422 asm volatile ("" : X8(a
) "=m" (mem
) : : "memory");
423 asm volatile ("" : X8(b
) "=m" (mem
) : : "memory");
424 asm volatile ("" : X2(c
) "=m" (mem
) : : "memory");
426 #define X1(n) "+" FLOAT_REG_CONSTRAINT (fpr##n),
427 asm volatile ("" : X8(d
) "=m" (mem
) : : "memory");
429 #define X1(n) "r" (gpr##n),
430 asm volatile ("" : : X8(a
) "m" (mem
) : "memory");
431 asm volatile ("" : : X8(b
) "m" (mem
) : "memory");
432 asm volatile ("" : : X2(c
) "m" (mem
) : "memory");
434 #define X1(n) FLOAT_REG_CONSTRAINT (fpr##n),
435 asm volatile ("" : : X8(d
) "m" (mem
) : "memory");