1 /* PR target/85593 */
2 /* { dg-do run { target { { i?86-*-linux* x86_64-*-linux* } && lp64 } } } */
3 /* { dg-options "-O2" } */
4 
5 __attribute__((naked)) void
bar(void)6 bar (void)
7 {
8   asm ("xorl %eax, %eax\n\t"
9        "xorl %edx, %edx\n\t"
10        "xorl %ecx, %ecx\n\t"
11        "xorl %esi, %esi\n\t"
12        "xorl %edi, %edi\n\t"
13        "xorl %r8d, %r8d\n\t"
14        "xorl %r9d, %r9d\n\t"
15        "xorl %r10d, %r10d\n\t"
16        "xorl %r11d, %r11d\n\t"
17        "ret");
18 }
19 
20 int
main()21 main ()
22 {
23   int a = 42;
24   asm ("" : "+r" (a));
25   bar ();
26   asm ("" : "+r" (a));
27   if (a != 42)
28     __builtin_abort ();
29   return 0;
30 }
31