diff options
author | Richard Biener <rguenther@suse.de> | 2020-11-10 13:36:22 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2020-11-10 13:37:49 +0100 |
commit | 1693746302e4306b43cb66a0afe589137069bd8e (patch) | |
tree | 44048382cc30ae4249deb51881a1948b737f6439 /gcc/testsuite | |
parent | 960c4712c8e1e08f29af999d4198bd96fcccb93c (diff) | |
download | gcc-1693746302e4306b43cb66a0afe589137069bd8e.zip gcc-1693746302e4306b43cb66a0afe589137069bd8e.tar.gz gcc-1693746302e4306b43cb66a0afe589137069bd8e.tar.bz2 |
tree-optimization/97769 - fix assert in peeling for alignment
The following removes an assert that can not easily be adjusted to
cover the additional cases we now handle after the removal of
the same-align DRs vector.
2020-11-10 Richard Biener <rguenther@suse.de>
PR tree-optimization/97769
* tree-vect-data-refs.c (vect_update_misalignment_for_peel):
Remove assert.
* gcc.dg/vect/pr97769.c: New testcase.
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/pr97769.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/pr97769.c b/gcc/testsuite/gcc.dg/vect/pr97769.c new file mode 100644 index 0000000..127f91a --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr97769.c @@ -0,0 +1,32 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-O3" } */ + +typedef struct { + int alg; + int h1[8]; + unsigned d1[1]; +} tmp; +typedef struct { + tmp itmp; + tmp otmp; +} h1; +h1 c; + +static void +fn1(char *p1, int p2) +{ + int i = 0; + for (; i < 4; i++) + *p1++ = p2; +} + +static void +fn2(tmp *p1) +{ + char *d = (char *)p1->d1; + int *b = p1->h1; + for (int a; a; a++, d += 4) + fn1(d, *b++); +} + +void fn3() { fn2(&(&c)->otmp); } |