1 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
2 /* { dg-options "-O2 -fdump-rtl-loop2_invariant" } */
3 /* NOTE: The target list above could be extended to other targets that have
4 conditional moves, but don't have zero registers. */
19 struct type_node
*referring
;
24 struct test_node
*next
;
27 int iterate (struct test_node
*, unsigned, struct test_ref
**);
30 loop_invar (struct test_node
*node
)
34 for (unsigned i
= 0; iterate (node
, i
, &ref
); i
++)
35 if (loop_invar ((ref
->referring
&& ref
->referring
->type
== TYPE0
)
36 ? ((struct test_node
*) (ref
->referring
)) : 0))
42 /* { dg-final { scan-rtl-dump "Decided to move invariant" "loop2_invariant" } } */