[Bug testsuite/80946] [8 regression] test cases gfortran.dg/vect/vect-2.f90 and gfortran.dg/vect/vect-5.f90 fail starting with r247544

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jun 2 08:30:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80946

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |powerpc64le-*-*
          Component|other                       |testsuite
   Target Milestone|---                         |8.0

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
It's interesting that those fails do not happen on x86_64 ... I'm also curious
as of what the testcase is supposed to test.

Whether we peel or not really depends on cost modeling which now changed to
not peel to align a single store if aligned stores have the same cost as
unaligned stores.  I see one issue with the patch but that has been rectified
with the rewrite I think (not using unaligned_store vs. vector_store).

Index: gcc/testsuite/gfortran.dg/vect/vect-2.f90
===================================================================
--- gcc/testsuite/gfortran.dg/vect/vect-2.f90   (revision 248814)
+++ gcc/testsuite/gfortran.dg/vect/vect-2.f90   (working copy)
@@ -8,14 +8,8 @@ A = LOG(X); B = LOG(Y); C = A + B
 PRINT*, C(500000)
 END

-! First loop (A=LOG(X)) is vectorized using peeling to align the store.
-! Same for the second loop (B=LOG(Y)).
-! Third loop (C = A + B) is vectorized using versioning (for targets that
don't
-! support unaligned loads) or using peeling to align the store (on targets
that 
-! support unaligned loads).
+! First loop (A=LOG(X)) may be vectorized using peeling to align the store
+! or using unaligned accesses or versioning.
+! Same for the second loop (B=LOG(Y)) and the third loop.

 ! { 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 } } } } } }


More information about the Gcc-bugs mailing list