From: Steve Ellcey Date: Wed, 13 Sep 2017 18:06:36 +0000 (+0000) Subject: re PR tree-optimization/80925 (vect peeling failures) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bce5091aa995e9faea7c6eb5b11b288bd66bcd98;p=gcc.git re PR tree-optimization/80925 (vect peeling failures) 2017-09-13 Steve Ellcey 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 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e739feafd3a..f9493be90fa 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2017-09-13 Steve Ellcey + + 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 PR c++/61135 diff --git a/gcc/testsuite/gfortran.dg/vect/vect-2.f90 b/gcc/testsuite/gfortran.dg/vect/vect-2.f90 index 24c7debcd65..956a05cc47c 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 abbdc9018c3..b8ccbdd8db2 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 7602100b345..b567cbd8644 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 4c6324eaafe..54887f9af53 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} } } } }