1  /* { dg-do compile { target *-*-linux* } } */
       2  /* { dg-options "-O2 -fzero-call-used-regs=skip" } */
       3  
       4  extern int foo (int) __attribute__ ((zero_call_used_regs("all-gpr")));
       5  
       6  int
       7  foo (int x)
       8  {
       9    return x;
      10  }
      11  
      12  /* { dg-final { scan-assembler-not "vzeroall" } } */
      13  /* { dg-final { scan-assembler-not "%xmm" } } */
      14  /* { dg-final { scan-assembler "xorl\[\t\]+%edx, %edx" } } */
      15  /* { dg-final { scan-assembler "xorl\[\t\]+%ecx, %ecx" } } */
      16  /* { dg-final { scan-assembler "xorl\[\t\]+%esi, %esi" { target { ! ia32 } } } } */
      17  /* { dg-final { scan-assembler "xorl\[\t\]+%edi, %edi" { target { ! ia32 } } } } */
      18  /* { dg-final { scan-assembler "xorl\[\t\]+%r8d, %r8d" { target { ! ia32 } } } } */
      19  /* { dg-final { scan-assembler "xorl\[\t\]+%r9d, %r9d" { target { ! ia32 } } } } */
      20  /* { dg-final { scan-assembler "xorl\[\t\]+%r10d, %r10d" { target { ! ia32 } } } } */
      21  /* { dg-final { scan-assembler "xorl\[\t\]+%r11d, %r11d" { target { ! ia32 } } } } */