(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
asm-y-constraint-1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O" } */
       3  
       4  void
       5  f (void)
       6  {
       7    register float s0 asm ("s0");
       8    register float s7 asm ("s7");
       9    register float s8 asm ("s8");
      10    register float s15 asm ("s15");
      11    register float s16 asm ("s16");
      12    register float s31 asm ("s31");
      13    asm volatile ("// s0 out: %s0" : "=w" (s0));
      14    asm volatile ("// s0 in: %s0" :: "y" (s0));
      15    asm volatile ("// s7 out: %s0" : "=w" (s7));
      16    asm volatile ("// s7 in: %s0" :: "y" (s7));
      17    asm volatile ("// s8 out: %s0" : "=w" (s8));
      18    asm volatile ("// s8 in: %s0" :: "y" (s8));
      19    asm volatile ("// s15 out: %s0" : "=w" (s15));
      20    asm volatile ("// s15 in: %s0" :: "y" (s15));
      21    asm volatile ("// s16 out: %s0" : "=w" (s16));
      22    asm volatile ("// s16 in: %s0" :: "y" (s16));
      23    asm volatile ("// s31 out: %s0" : "=w" (s31));
      24    asm volatile ("// s31 in: %s0" :: "y" (s31));
      25  }
      26  
      27  /* { dg-final { scan-assembler {\t// s0 out: s0\n.*[/]/ s0 in: s0\n} } } */
      28  /* { dg-final { scan-assembler {\t// s7 out: s7\n.*[/]/ s7 in: s7\n} } } */
      29  /* { dg-final { scan-assembler {\t// s8 out: s8\n.*\tfmov\t(s[0-7]), s8\n.*[/]/ s8 in: \1\n} } } */
      30  /* { dg-final { scan-assembler {\t// s15 out: s15\n.*\tfmov\t(s[0-7]), s15\n.*[/]/ s15 in: \1\n} } } */
      31  /* { dg-final { scan-assembler {\t// s16 out: s16\n.*\tfmov\t(s[0-7]), s16\n.*[/]/ s16 in: \1\n} } } */
      32  /* { dg-final { scan-assembler {\t// s31 out: s31\n.*\tfmov\t(s[0-7]), s31\n.*[/]/ s31 in: \1\n} } } */
      33  /* { dg-final { scan-assembler-not {\t// s8 in: s8\n} } } */
      34  /* { dg-final { scan-assembler-not {\t// s15 in: s15\n} } } */
      35  /* { dg-final { scan-assembler-not {\t// s16 in: s16\n} } } */
      36  /* { dg-final { scan-assembler-not {\t// s31 in: s31\n} } } */