diff options
author | Bingfeng Mei <bmei@broadcom.com> | 2013-12-23 17:22:30 +0000 |
---|---|---|
committer | Bingfeng Mei <meibf@gcc.gnu.org> | 2013-12-23 17:22:30 +0000 |
commit | 266d276c4eb2c06d3593ddf1d828776be91f0eea (patch) | |
tree | 9ad432cb2b0d4521c49312a2c690aff03044848c /gcc | |
parent | 7c2539fc5a68eb9bd57d3b46855e419821effb23 (diff) | |
download | gcc-266d276c4eb2c06d3593ddf1d828776be91f0eea.zip gcc-266d276c4eb2c06d3593ddf1d828776be91f0eea.tar.gz gcc-266d276c4eb2c06d3593ddf1d828776be91f0eea.tar.bz2 |
vect-neg-store-1.c: New test.
2013-12-23 Bingfeng Mei <bmei@broadcom.com>
* gcc.dg/vect/vect-neg-store-1.c: New test.
* gcc.dg/vect/vect-neg-store-2.c: Ditto.
From-SVN: r206181
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-neg-store-1.c | 39 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-neg-store-2.c | 39 |
3 files changed, 83 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c4fad36..c0bba43 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2013-12-23 Bingfeng Mei <bmei@broadcom.com> + * gcc.dg/vect/vect-neg-store-1.c: New test. + * gcc.dg/vect/vect-neg-store-2.c: Ditto. + +2013-12-23 Bingfeng Mei <bmei@broadcom.com> + PR middle-end/59569 * gcc.c-torture/compile/pr59569-1.c: New test. * gcc.c-torture/compile/pr59569-2.c: Ditto. diff --git a/gcc/testsuite/gcc.dg/vect/vect-neg-store-1.c b/gcc/testsuite/gcc.dg/vect/vect-neg-store-1.c new file mode 100644 index 0000000..178f0a1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-neg-store-1.c @@ -0,0 +1,39 @@ +/* { dg-require-effective-target vect_int } */ +#include <stdlib.h> + +__attribute__((noinline, noclone)) +void test1(short x[128]) +{ + int i; + for (i=127; i>=0; i--) { + x[i] = 1234; + } +} + +int main (void) +{ + short x[128 + 32]; + int i; + + for (i = 0; i < 16; i ++) + { + asm (""); + x[i] = x[i + 144] = 5678; + } + + test1 (x + 16); + + for (i = 0; i < 128; i++) + if (x[i + 16] != 1234) + abort (); + + for (i = 0; i < 16; i++) + if (x[i] != 5678 + || x[i + 144] != 5678) + abort (); + + return 0; +} + +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-neg-store-2.c b/gcc/testsuite/gcc.dg/vect/vect-neg-store-2.c new file mode 100644 index 0000000..e97b9bf --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-neg-store-2.c @@ -0,0 +1,39 @@ +/* { dg-require-effective-target vect_int } */ +#include <stdlib.h> + +__attribute__((noinline, noclone)) +void test1(short x[128], short D) +{ + int i; + for (i=127; i>=0; i--) { + x[i] = D; + } +} + +int main (void) +{ + short x[128 + 32]; + int i; + + for (i = 0; i < 16; i ++) + { + asm (""); + x[i] = x[i + 144] = 5678; + } + + test1 (x + 16, 1234); + + for (i = 0; i < 128; i++) + if (x[i + 16] != 1234) + abort (); + + for (i = 0; i < 16; i++) + if (x[i] != 5678 + || x[i + 144] != 5678) + abort (); + + return 0; +} + +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { cleanup-tree-dump "vect" } } */ |