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