1 /* { dg-do compile { target x86_64-*-* } } */
2 /* { dg-options "-fdump-rtl-dfinit" } */
4 int __RTL (startwith ("rtl-dfinit")) times_two (int i
)
10 (cnote
1 NOTE_INSN_DELETED
)
12 (edge
-from
entry (flags
"FALLTHRU"))
13 (cnote
4 [bb
2] NOTE_INSN_BASIC_BLOCK
)
14 (cinsn
2 (set (mem
/c
:SI (plus
:DI (reg
/f
:DI frame
)
15 (const_int
-4)) [1 i
+0 S4 A32
])
16 (reg
:SI di
[ i
])) "../../src/times-two.c":2)
17 (cnote
3 NOTE_INSN_FUNCTION_BEG
)
18 (cinsn
6 (set (reg
:SI
<2>)
19 (mem
/c
:SI (plus
:DI (reg
/f
:DI frame
)
20 (const_int
-4)) [1 i
+0 S4 A32
])) "../../src/times-two.c":3)
22 (set (reg
:SI
<0> [ _2
])
23 (ashift
:SI (reg
:SI
<2>)
25 (clobber (reg
:CC flags
))
26 ]) "../../src/times-two.c":3
27 (expr_list
:REG_EQUAL (ashift
:SI (mem
/c
:SI (plus
:DI (reg
/f
:DI frame
)
28 (const_int
-4)) [1 i
+0 S4 A32
])
30 (cinsn
10 (set (reg
:SI
<1> [ <retval
> ])
31 (reg
:SI
<0> [ _2
])) "../../src/times-two.c":3)
32 (cinsn
14 (set (reg
/i
:SI ax
)
33 (reg
:SI
<1> [ <retval
> ])) "../../src/times-two.c":4)
34 (cinsn
15 (use (reg
/i
:SI ax
)) "../../src/times-two.c":4)
35 (edge
-to
exit (flags
"FALLTHRU"))
43 ) ;; function
"times_two"
46 /* Verify that the dataflow information matches what cc1 would have
47 generated. In particular, in earlier versions of the RTL
48 frontend, the exit block use of reg 0 (ax) wasn't picked up
49 on, due to not setting up crtl->return_rtx based on
50 DECL_RESULT (fndecl). */
52 /* { dg-final { scan-rtl-dump ";; exit block uses.*0 .ax. 6 .bp. 7 .sp. 20 .frame." "dfinit" } } */
54 /* { dg-final { scan-rtl-dump ";; regs ever live.*0 .ax. 5 .di. 17 .flags." "dfinit" } } */