1 /* { dg-do compile } */
2
3 void __attribute__ ((aarch64_vector_pcs))
f(void)4 f (void)
5 {
6 /* Clobber some fp/simd regs and verify that only those are saved
7 and restored in the prologue and epilogue of a SIMD function. */
8 __asm__ __volatile__ ("" ::: "q8", "q9", "q11");
9 }
10
11 /* { dg-final { scan-assembler {\sstp\tq8, q9} } } */
12 /* { dg-final { scan-assembler {\sstr\tq11} } } */
13 /* { dg-final { scan-assembler-not {\sstp\tq[034567]} } } */
14 /* { dg-final { scan-assembler-not {\sldp\tq[034567]} } } */
15 /* { dg-final { scan-assembler-not {\sstp\tq1[0123456789]} } } */
16 /* { dg-final { scan-assembler-not {\sldp\tq1[0123456789]} } } */
17 /* { dg-final { scan-assembler-not {\sstp\tq2[456789]} } } */
18 /* { dg-final { scan-assembler-not {\sldp\tq2[456789]} } } */
19 /* { dg-final { scan-assembler-not {\sstp\td} } } */
20 /* { dg-final { scan-assembler-not {\sldp\td} } } */
21 /* { dg-final { scan-assembler-not {\sstr\tq[023456789]} } } */
22 /* { dg-final { scan-assembler-not {\sldr\tq[023456789]} } } */
23 /* { dg-final { scan-assembler-not {\sstr\tq1[023456789]} } } */
24 /* { dg-final { scan-assembler-not {\sldr\tq1[023456789]} } } */
25