* gcc.dg/vect/vect-align-3.c: New test.

From-SVN: r204259
This commit is contained in:
Jakub Jelinek 2013-10-31 14:59:07 +01:00 committed by Jakub Jelinek
parent 1e99c6e044
commit b63cb15373
2 changed files with 56 additions and 0 deletions

View File

@ -1,5 +1,7 @@
2013-10-31 Jakub Jelinek <jakub@redhat.com>
* gcc.dg/vect/vect-align-3.c: New test.
* g++.dg/warn/pr33738.C (main): Initialize a2 again to make sure
we warn about it already during VRP1 pass.

View File

@ -0,0 +1,54 @@
/* { dg-do compile } */
/* { dg-require-effective-target vect_int } */
int a[2048];
void
f1 (int x, int y)
{
int i;
x &= -256;
y &= -256;
for (i = x + 256; i < y; i++)
a[i]++;
}
void
f2 (int x, int y)
{
int i;
if (x & 31)
__builtin_unreachable ();
if (y & 31)
__builtin_unreachable ();
for (i = x + 256; i < x + y; i++)
a[i]++;
}
void
f3 (int x, int y)
{
int i;
if (x % 256)
__builtin_unreachable ();
if (y % 256)
__builtin_unreachable ();
for (i = x + 256; i < x + y; i++)
a[i]++;
}
void
f4 (int x, int y)
{
int i;
if ((x % 256) != 0)
__builtin_unreachable ();
if ((y % 256) != 0)
__builtin_unreachable ();
for (i = x + 256; i < x + y; i++)
a[i]++;
}
/* { dg-final { scan-tree-dump-not "vect_do_peeling_for_loop_bound" "vect" } } */
/* { dg-final { scan-tree-dump-not "loop peeled for vectorization" "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */