| /* { dg-do compile { target ia64-*-* } } */ |
| /* { dg-options "-O2" } */ |
| |
| int |
| foo (int x, int y) |
| { |
| if (y == 0) |
| { |
| register long r8 asm ("r8"); |
| register long r15 asm ("r15") = 1; |
| long retval; |
| __asm __volatile ("foo" : "=r" (r8), "=r" (r15) : "1" (r15)); |
| retval = r8; |
| y = retval; |
| } |
| |
| { |
| register long r8 asm ("r8"); |
| register long r15 asm ("r15") = 2; |
| long retval; |
| register long _out1 asm ("out1") = x; |
| register long _out0 asm ("out0") = y; |
| __asm __volatile ("foo" |
| : "=r" (r8), "=r" (r15) , "=r" (_out0), "=r" (_out1) |
| : "1" (r15) , "2" (_out0), "3" (_out1)); |
| retval = r8; |
| return retval; |
| } |
| } |