diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e739feafd3ad055f6807100499cfa0facc873994..f9493be90fad43ffa58ffdb61a628578ba158cac 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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 diff --git a/gcc/testsuite/gfortran.dg/vect/vect-2.f90 b/gcc/testsuite/gfortran.dg/vect/vect-2.f90 index 24c7debcd6524e011850c0b588c7bc5892703f7e..956a05cc47cfee006c0cf3466c6f787989bd5a84 100644 --- a/gcc/testsuite/gfortran.dg/vect/vect-2.f90 +++ b/gcc/testsuite/gfortran.dg/vect/vect-2.f90 @@ -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 } } } } } } diff --git a/gcc/testsuite/gfortran.dg/vect/vect-3.f90 b/gcc/testsuite/gfortran.dg/vect/vect-3.f90 index abbdc9018c38eacb08ed2c7690454f189b0415a1..b8ccbdd8db283ec25b5ae631136cc393e448abc6 100644 --- a/gcc/testsuite/gfortran.dg/vect/vect-3.f90 +++ b/gcc/testsuite/gfortran.dg/vect/vect-3.f90 @@ -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} } } } } diff --git a/gcc/testsuite/gfortran.dg/vect/vect-4.f90 b/gcc/testsuite/gfortran.dg/vect/vect-4.f90 index 7602100b3456d910906b95e1aaff6582484982ac..b567cbd8644fc196c922f2b9e9418262cea5be91 100644 --- a/gcc/testsuite/gfortran.dg/vect/vect-4.f90 +++ b/gcc/testsuite/gfortran.dg/vect/vect-4.f90 @@ -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" } } diff --git a/gcc/testsuite/gfortran.dg/vect/vect-5.f90 b/gcc/testsuite/gfortran.dg/vect/vect-5.f90 index 4c6324eaafe52dce8056eb748a9a569e13e1411a..54887f9af53a3601218d678d4c623c96b2f9a726 100644 --- a/gcc/testsuite/gfortran.dg/vect/vect-5.f90 +++ b/gcc/testsuite/gfortran.dg/vect/vect-5.f90 @@ -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} } } } }