(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
torture/
simd-abi-2.c
       1  /* { dg-do compile } */
       2  
       3  void
       4  f (void)
       5  {
       6    /* Clobber all fp/simd regs and verify that the correct ones are saved
       7       and restored in the prologue and epilogue of a normal non-SIMD function. */
       8    __asm__ __volatile__ ("" :::  "q0",  "q1",  "q2",  "q3");
       9    __asm__ __volatile__ ("" :::  "q4",  "q5",  "q6",  "q7");
      10    __asm__ __volatile__ ("" :::  "q8",  "q9", "q10", "q11");
      11    __asm__ __volatile__ ("" ::: "q12", "q13", "q14", "q15");
      12    __asm__ __volatile__ ("" ::: "q16", "q17", "q18", "q19");
      13    __asm__ __volatile__ ("" ::: "q20", "q21", "q22", "q23");
      14    __asm__ __volatile__ ("" ::: "q24", "q25", "q26", "q27");
      15    __asm__ __volatile__ ("" ::: "q28", "q29", "q30", "q31");
      16  }
      17  
      18  /* { dg-final { scan-assembler {\sstp\td8, d9} } } */
      19  /* { dg-final { scan-assembler {\sstp\td10, d11} } } */
      20  /* { dg-final { scan-assembler {\sstp\td12, d13} } } */
      21  /* { dg-final { scan-assembler {\sstp\td14, d15} } } */
      22  /* { dg-final { scan-assembler {\sldp\td8, d9} } } */
      23  /* { dg-final { scan-assembler {\sldp\td10, d11} } } */
      24  /* { dg-final { scan-assembler {\sldp\td12, d13} } } */
      25  /* { dg-final { scan-assembler {\sldp\td14, d15} } } */
      26  /* { dg-final { scan-assembler-not {\sstp\tq} } } */
      27  /* { dg-final { scan-assembler-not {\sldp\tq} } } */
      28  /* { dg-final { scan-assembler-not {\sstp\tq[01234567]} } } */
      29  /* { dg-final { scan-assembler-not {\sldp\tq[01234567]} } } */
      30  /* { dg-final { scan-assembler-not {\sstp\tq1[6789]} } } */
      31  /* { dg-final { scan-assembler-not {\sldp\tq1[6789]} } } */
      32  /* { dg-final { scan-assembler-not {\sstr\t} } } */
      33  /* { dg-final { scan-assembler-not {\sldr\t} } } */