1 /* Test to generate output reload in asm goto on x86_64. */
2 /* { dg-do compile } */
3 /* { dg-skip-if "no O0" { { i?86-*-* x86_64-*-* } && { ! ia32 } } { "-O0" } { "" } } */
4 /* { dg-skip-if "Reload target" { hppa*-*-* } } */
13 foo (int a0
, int a1
, int a2
, int a3
, int a4
, int a5
, int a6
, int a7
, int a8
,
14 int a9
, int a10
, int a11
, int a12
, int a13
, int a14
, int a15
, int a16
)
16 register int v0
ASM ("rax") = a3
;
17 register int v1
ASM ("rbx") = a4
;
18 register int v2
ASM ("rcx") = a5
;
19 register int v3
ASM ("rdx") = a6
;
20 register int v4
ASM ("rsi") = a7
;
21 register int v5
ASM ("rdi") = a8
;
22 register int v6
ASM ("r8") = a9
;
23 register int v7
ASM ("r9") = a10
;
24 register int v8
ASM ("r10") = a11
;
25 register int v9
ASM ("r11") = a12
;
26 register int v10
ASM ("r12") = a13
;
27 register int v11
ASM ("r13") = a14
;
28 register int v12
ASM ("r14") = a15
;
29 register int v13
ASM ("r15") = a16
;
44 asm goto ("": "=r" (x
) : : : lab
);
50 v0
+= x
+ a0
+ a1
+ a2
;
55 return v0
+ v1
+ v2
+ v3
+ v4
+ v5
+ v6
+ v7
+ v8
+ v9
+ v10
+ v11
+ v12
+ v13
+ a0
+ a1
+ a2
;