blob: cc11f41c29c40fbb9efca43dc5dfda6730a38039 [file] [log] [blame]
/* { dg-do run { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
/* Verify that we can have multiple __RTL functions in one test case.
Each of these __RTL functions returns a const, dumped immediately after
expand. */
extern void abort (void);
int __RTL (startwith ("vregs")) test_return_42 (void)
{
/* C code:
return 42; */
(function "test_return_42"
(insn-chain
(cnote 1 NOTE_INSN_DELETED)
(block 2
(edge-from entry (flags "FALLTHRU"))
(cnote 3 [bb 2] NOTE_INSN_BASIC_BLOCK)
(cnote 2 NOTE_INSN_FUNCTION_BEG)
(cinsn 5 (set (reg:SI <0> [ _1 ])
(const_int 42)) "../../src/test-return-const.c":3)
(cinsn 8 (set (reg:SI <1> [ <retval> ])
(reg:SI <0> [ _1 ])) "../../src/test-return-const.c":3)
(cinsn 12 (set (reg/i:SI ax)
(reg:SI <1> [ <retval> ])) "../../src/test-return-const.c":4)
(cinsn 13 (use (reg/i:SI ax)) "../../src/test-return-const.c":4)
(edge-to exit (flags "FALLTHRU"))
) ;; block 2
) ;; insn-chain
(crtl
(return_rtx
(reg/i:SI ax)
) ;; return_rtx
) ;; crtl
) ;; function "test_return_42"
}
int __RTL (startwith ("vregs")) test_return_43 (void)
{
/* C code:
return 43; */
(function "test_return_43"
(insn-chain
(cnote 1 NOTE_INSN_DELETED)
(block 2
(edge-from entry (flags "FALLTHRU"))
(cnote 3 [bb 2] NOTE_INSN_BASIC_BLOCK)
(cnote 2 NOTE_INSN_FUNCTION_BEG)
(cinsn 5 (set (reg:SI <0> [ _1 ])
(const_int 43)) "../../src/test-return-const.c":3)
(cinsn 8 (set (reg:SI <1> [ <retval> ])
(reg:SI <0> [ _1 ])) "../../src/test-return-const.c":3)
(cinsn 12 (set (reg/i:SI ax)
(reg:SI <1> [ <retval> ])) "../../src/test-return-const.c":4)
(cinsn 13 (use (reg/i:SI ax)) "../../src/test-return-const.c":4)
(edge-to exit (flags "FALLTHRU"))
) ;; block 2
) ;; insn-chain
(crtl
(return_rtx
(reg/i:SI ax)
) ;; return_rtx
) ;; crtl
) ;; function "test_return_43"
}
int __RTL (startwith ("vregs")) test_return_44 (void)
{
/* C code:
return 44; */
(function "test_return_44"
(insn-chain
(cnote 1 NOTE_INSN_DELETED)
(block 2
(edge-from entry (flags "FALLTHRU"))
(cnote 3 [bb 2] NOTE_INSN_BASIC_BLOCK)
(cnote 2 NOTE_INSN_FUNCTION_BEG)
(cinsn 5 (set (reg:SI <0> [ _1 ])
(const_int 44)) "../../src/test-return-const.c":3)
(cinsn 8 (set (reg:SI <1> [ <retval> ])
(reg:SI <0> [ _1 ])) "../../src/test-return-const.c":3)
(cinsn 12 (set (reg/i:SI ax)
(reg:SI <1> [ <retval> ])) "../../src/test-return-const.c":4)
(cinsn 13 (use (reg/i:SI ax)) "../../src/test-return-const.c":4)
(edge-to exit (flags "FALLTHRU"))
) ;; block 2
) ;; insn-chain
(crtl
(return_rtx
(reg/i:SI ax)
) ;; return_rtx
) ;; crtl
) ;; function "test_return_44"
}
int main (void)
{
if (test_return_42 () != 42)
abort ();
if (test_return_43 () != 43)
abort ();
if (test_return_44 () != 44)
abort ();
return 0;
}