re PR tree-optimization/80925 (vect peeling failures)
authorSteve Ellcey <sellcey@cavium.com>
Wed, 13 Sep 2017 18:06:36 +0000 (18:06 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Wed, 13 Sep 2017 18:06:36 +0000 (18:06 +0000)
2017-09-13  Steve Ellcey  <sellcey@cavium.com>

PR tree-optimization/80925
* gfortran.dg/vect/vect-2.f90: Add
--param vect-max-peeling-for-alignment=0 option.
Remove unaligned access and peeling checks.
* gfortran.dg/vect/vect-3.f90: Ditto.
* gfortran.dg/vect/vect-4.f90: Ditto.
* gfortran.dg/vect/vect-5.f90: Ditto.

From-SVN: r252723

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/vect/vect-2.f90
gcc/testsuite/gfortran.dg/vect/vect-3.f90
gcc/testsuite/gfortran.dg/vect/vect-4.f90
gcc/testsuite/gfortran.dg/vect/vect-5.f90

index e739feafd3ad055f6807100499cfa0facc873994..f9493be90fad43ffa58ffdb61a628578ba158cac 100644 (file)
@@ -1,3 +1,13 @@
+2017-09-13  Steve Ellcey  <sellcey@cavium.com>
+
+       PR tree-optimization/80925
+       * gfortran.dg/vect/vect-2.f90: Add
+       --param vect-max-peeling-for-alignment=0 option.
+       Remove unaligned access and peeling checks.
+       * gfortran.dg/vect/vect-3.f90: Ditto.
+       * gfortran.dg/vect/vect-4.f90: Ditto.
+       * gfortran.dg/vect/vect-5.f90: Ditto.
+
 2017-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/61135
index 24c7debcd6524e011850c0b588c7bc5892703f7e..956a05cc47cfee006c0cf3466c6f787989bd5a84 100644 (file)
@@ -1,5 +1,6 @@
 ! { dg-do compile }
 ! { dg-require-effective-target vect_float }
+! { dg-additional-options "--param vect-max-peeling-for-alignment=0" }
 
 SUBROUTINE FOO(A, B, C)
 DIMENSION A(1000000), B(1000000), C(1000000)
@@ -15,7 +16,4 @@ END
 ! support unaligned loads).
 
 ! { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } }
-! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" { xfail { { vect_no_align && { ! vect_hw_misalign } } || { ! vector_alignment_reachable } } } } }
-! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { target { { vect_no_align && { ! vect_hw_misalign } } && { ! vector_alignment_reachable } } } } }
-! { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } }
 ! { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 3 "vect" {target { { vect_no_align && { ! vect_hw_misalign } } || { { ! vector_alignment_reachable  } && { ! vect_hw_misalign } } } } } }
index abbdc9018c38eacb08ed2c7690454f189b0415a1..b8ccbdd8db283ec25b5ae631136cc393e448abc6 100644 (file)
@@ -1,5 +1,6 @@
 ! { dg-do compile }
 ! { dg-require-effective-target vect_float }
+! { dg-additional-options "--param vect-max-peeling-for-alignment=0" }
 
 SUBROUTINE SAXPY(X, Y, A, N)
 DIMENSION X(N), Y(N)
@@ -8,7 +9,4 @@ END
 
 ! { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 3 "vect" { target { vect_no_align && { ! vect_hw_misalign } } } } }
 ! { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" { target { {! vect_no_align} && { {! vector_alignment_reachable} && {! vect_hw_misalign} } } } } }
-! { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { target { {! vect_no_align} && { {! vector_alignment_reachable} && {! vect_hw_misalign} } } } } }
-! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { { vect_no_align && { ! vect_hw_misalign } } || {! vector_alignment_reachable}} } } }
-! { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { { vect_no_align && { ! vect_hw_misalign } } || { ! vector_alignment_reachable} } } } }
 
index 7602100b3456d910906b95e1aaff6582484982ac..b567cbd8644fc196c922f2b9e9418262cea5be91 100644 (file)
@@ -1,5 +1,6 @@
 ! { dg-do compile }
 ! { dg-require-effective-target vect_float }
+! { dg-additional-options "--param vect-max-peeling-for-alignment=0" }
 
 ! Peeling to align the store to Y will also align the load from Y.
 ! The load from X may still be misaligned.
@@ -10,7 +11,4 @@ Y = Y + A * X
 END
 
 ! { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } 
-! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { { vect_no_align && { ! vect_hw_misalign } } || {! vector_alignment_reachable} } } } }
-! { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { { vect_no_align && { ! vect_hw_misalign } } || {! vector_alignment_reachable} } } } }
-! { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { target { {! vector_alignment_reachable} && {! vect_hw_misalign} } } } }
 ! { dg-final { scan-tree-dump-times "accesses have the same alignment." 1 "vect" } }
index 4c6324eaafe52dce8056eb748a9a569e13e1411a..54887f9af53a3601218d678d4c623c96b2f9a726 100644 (file)
@@ -1,4 +1,5 @@
 ! { dg-require-effective-target vect_int }
+! { dg-additional-options "--param vect-max-peeling-for-alignment=0" }
 
         Subroutine foo (N, M)
         Integer N
@@ -36,7 +37,5 @@
         end
 
 ! { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } }
-! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { { vect_no_align && { ! vect_hw_misalign } } || {! vector_alignment_reachable} } } } }
-! { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } }
 ! { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 2 "vect" { target { vect_no_align && { ! vect_hw_misalign } } } } }
 ! { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 1 "vect" { target { {! vector_alignment_reachable} && {! vect_hw_misalign} } } } }