diff options
author | Richard Biener <rguenther@suse.de> | 2018-02-08 10:52:00 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-02-08 10:52:00 +0000 |
commit | 3b263f5af20f4ebb92fad0b8797fe59e3cebf828 (patch) | |
tree | a07c0f840ba19e8f942956635f39a7a6b1f43070 /gcc | |
parent | 66a90e86694bdcfc674bfa5951d10088fc5b41a8 (diff) | |
download | gcc-3b263f5af20f4ebb92fad0b8797fe59e3cebf828.zip gcc-3b263f5af20f4ebb92fad0b8797fe59e3cebf828.tar.gz gcc-3b263f5af20f4ebb92fad0b8797fe59e3cebf828.tar.bz2 |
slp-pr56812.cc: Allow either basic-block or loop vectorization to happen.
2018-02-08 Richard Biener <rguenther@suse.de>
* g++.dg/vect/slp-pr56812.cc: Allow either basic-block or
loop vectorization to happen.
From-SVN: r257479
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/vect/slp-pr56812.cc | 41 |
2 files changed, 24 insertions, 22 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 16f2b1a..7179728 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-02-08 Richard Biener <rguenther@suse.de> + + * g++.dg/vect/slp-pr56812.cc: Allow either basic-block or + loop vectorization to happen. + 2018-02-08 Paolo Carlini <paolo.carlini@oracle.com> PR c++/83204 diff --git a/gcc/testsuite/g++.dg/vect/slp-pr56812.cc b/gcc/testsuite/g++.dg/vect/slp-pr56812.cc index 8b24b33..08b0981 100644 --- a/gcc/testsuite/g++.dg/vect/slp-pr56812.cc +++ b/gcc/testsuite/g++.dg/vect/slp-pr56812.cc @@ -1,22 +1,19 @@ -/* { dg-do compile } */
-/* { dg-require-effective-target vect_float } */
-/* { dg-require-effective-target vect_hw_misalign } */
-/* { dg-additional-options "-O3 -funroll-loops -fvect-cost-model=dynamic" } */
-
-class mydata {
-public:
- mydata() {Set(-1.0);}
- void Set (float);
- static int upper() {return 8;}
- float data[8];
-};
-
-void mydata::Set (float x)
-{
- for (int i=0; i<upper(); i++)
- data[i] = x;
-}
-
-/* For targets without vector loop peeling the loop becomes cheap
- enough to be vectorized. */
-/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp1" { xfail { ! vect_peeling_profitable } } } } */
+/* { dg-do compile } */ +/* { dg-require-effective-target vect_float } */ +/* { dg-require-effective-target vect_hw_misalign } */ +/* { dg-additional-options "-O3 -funroll-loops -fvect-cost-model=dynamic -fopt-info-vec" } */ + +class mydata { +public: + mydata() {Set(-1.0);} + void Set (float); + static int upper() {return 8;} + float data[8]; +}; + +void mydata::Set (float x) +{ + /* We want to vectorize this either as loop or basic-block. */ + for (int i=0; i<upper(); i++) /* { dg-message "note: \[^\n\]* vectorized" } */ + data[i] = x; +} |