diff options
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr48159-1.c | 10 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr48159-2.c | 22 |
3 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5cfb9f23c6c..5fde36e00a3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2011-05-11 Jakub Jelinek <jakub@redhat.com> + + PR debug/48159 + * gcc.dg/pr48159-1.c: New test. + * gcc.dg/pr48159-2.c: New test. + 2011-05-11 Richard Guenther <rguenther@suse.de> PR middle-end/48953 diff --git a/gcc/testsuite/gcc.dg/pr48159-1.c b/gcc/testsuite/gcc.dg/pr48159-1.c new file mode 100644 index 00000000000..cd67e63852f --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr48159-1.c @@ -0,0 +1,10 @@ +/* PR debug/48159 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -fcompare-debug" } */ + +void +foo (double x, int y, double *__restrict z, double *__restrict w) +{ + while (y--) + *z++ = (*w++ = 0) * x; +} diff --git a/gcc/testsuite/gcc.dg/pr48159-2.c b/gcc/testsuite/gcc.dg/pr48159-2.c new file mode 100644 index 00000000000..25596bf6b39 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr48159-2.c @@ -0,0 +1,22 @@ +/* PR debug/48159 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -ftree-loop-distribution -fcompare-debug" } */ + +int foo (int * __restrict__ ia, int * __restrict__ ib, + int * __restrict__ oxa, int * __restrict__ oxb) +{ + int i; + int oya[52], oyb[52]; + for (i = 0; i < 52; i++) + { + int w1 = ia[i]; + int w2 = oxa[i]; + int w3 = ib[i]; + int w4 = oxb[i]; + int w5 = w1 + w2 + 5; + oya[i] = (w1 * w2) >> 10; + int w6 = w3 + w4 + 6; + oyb[i] = (w3 * w4) >> 10; + } + return oya[22] + oyb[21]; +} |