1 /* { dg-do compile { target x86_64-*-* } } */
3 extern double sqrt(double x
);
17 double __RTL
test (struct foo
*f
, const struct bar
*b
)
20 /* Result of "expand" on this C code, compiled for x86_64 with -Os. */
23 return sqrt (f
->x
* f
->x
+ f
->y
* f
->y
);
27 (cnote
1 NOTE_INSN_DELETED
)
29 (edge
-from
entry (flags
"FALLTHRU"))
30 (cnote
5 [bb
2] NOTE_INSN_BASIC_BLOCK
)
31 (cinsn
2 (set (reg
/v
/f
:DI
<10> [ f
])
32 (reg
:DI di
[ f
])) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":18)
33 (cinsn
3 (set (reg
/v
/f
:DI
<11> [ b
])
34 (reg
:DI si
[ b
])) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":18)
35 (cnote
4 NOTE_INSN_FUNCTION_BEG
)
36 (cinsn
7 (set (reg
:DF
<12>)
37 (mem
:DF (reg
/v
/f
:DI
<10> [ f
]) [2 f_11(D
)->x
+0 S8 A64
])) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":21)
38 (cinsn
8 (set (reg
:DF
<2> [ _3
])
39 (plus
:DF (reg
:DF
<12>)
40 (mem
:DF (reg
/v
/f
:DI
<11> [ b
]) [2 b_12(D
)->x
+0 S8 A64
]))) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":21)
41 (cinsn
9 (set (mem
:DF (reg
/v
/f
:DI
<10> [ f
]) [2 f_11(D
)->x
+0 S8 A64
])
42 (reg
:DF
<2> [ _3
])) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":21)
43 (cinsn
10 (set (reg
:DF
<13>)
44 (mem
:DF (plus
:DI (reg
/v
/f
:DI
<10> [ f
])
45 (const_int
8)) [2 f_11(D
)->y
+0 S8 A64
])) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":22)
46 (cinsn
11 (set (reg
:DF
<5> [ _6
])
47 (plus
:DF (reg
:DF
<13>)
48 (mem
:DF (plus
:DI (reg
/v
/f
:DI
<11> [ b
])
49 (const_int
8)) [2 b_12(D
)->y
+0 S8 A64
]))) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":22)
50 (cinsn
12 (set (mem
:DF (plus
:DI (reg
/v
/f
:DI
<10> [ f
])
51 (const_int
8)) [2 f_11(D
)->y
+0 S8 A64
])
52 (reg
:DF
<5> [ _6
])) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":22)
53 (cinsn
13 (set (reg
:DF
<14>)
54 (mult
:DF (reg
:DF
<2> [ _3
])
55 (reg
:DF
<2> [ _3
]))) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":23)
56 (cinsn
14 (set (reg
:DF
<15>)
57 (mult
:DF (reg
:DF
<5> [ _6
])
58 (reg
:DF
<5> [ _6
]))) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":23)
59 (cinsn
15 (set (reg
:DF
<16>)
60 (plus
:DF (reg
:DF
<14>)
61 (reg
:DF
<15>))) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":23)
62 (cinsn
16 (set (reg
:DF xmm0
)
63 (reg
:DF
<16>)) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":23)
64 (ccall_insn
/j
17 (set (reg
:DF xmm0
)
65 (call (mem
:QI (symbol_ref
:DI ("sqrt") [flags
0x41] <function_decl
0x7fa24e331d00 sqrt
>) [0 __builtin_sqrt S1 A8
])
66 (const_int
0))) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":23
67 (expr_list
:REG_CALL_DECL (symbol_ref
:DI ("sqrt") [flags
0x41] <function_decl
0x7fa24e331d00 sqrt
>)
68 (expr_list
:REG_EH_REGION (const_int
0)))
69 (expr_list
:DF (use (reg
:DF xmm0
))))
70 (edge
-to
exit (flags
"ABNORMAL | SIBCALL"))