diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 93aa08ae7a7d2667c10a11e945388c983d4cdfe8..5a99e5a8b3004118d3a6fbd2d1c3e523a16283c9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2006-09-24 Zdenek Dvorak <dvorakz@suse.cz> + Adam Nemet <anemet@caviumnetworks.com> + + * gcc.dg/tree-ssa/ivopts-1.c: New test. + * gcc.dg/tree-ssa/ivopts-2.c: New test. + 2006-09-24 Kazu Hirata <kazu@codesourcery.com> PR target/28911 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-1.c b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-1.c new file mode 100644 index 0000000000000000000000000000000000000000..5ee87b033b11ad85447057801b97385e20832677 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-1.c @@ -0,0 +1,26 @@ +/* { dg-do compile } */ + +/* Not all platforms support TImode integers. */ +#if defined(__LP64__) && !defined(__hppa__) +typedef int TItype __attribute__ ((mode (TI))); +#else +typedef long TItype; +#endif + +TItype last_data_offset ; +int store; +char *data; + +f () +{ + + TItype data_offset = last_data_offset; + char *p; + + for (p = data; *p; p++) + { + data_offset++; + g (data_offset); + store = data_offset + 1; + } +} diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-2.c b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-2.c new file mode 100644 index 0000000000000000000000000000000000000000..05c62bdc659db03ebc105ce8d1c3b02c3c298894 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-2.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-ivopts-details" } */ + +long last_data_offset; +int store; +char *data; + +f () +{ + + long data_offset = last_data_offset; + char *p; + + for (p = data; *p; p++) + { + data_offset++; + g (data_offset); + store = data_offset + 1; + } +} + +/* We should only have two IVs. */ +/* { dg-final { scan-tree-dump-not "\\n candidates .*,.*,.*\\n\[^\\n\]*\\nFinal cost" "ivopts" } } */ +/* { dg-final { cleanup-tree-dump "ivopts" } } */