http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51693
Bug #: 51693 Summary: New XPASSes in vectorizer testsuite on powerpc64-suse-linux Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: testsuite AssignedTo: unassig...@gcc.gnu.org ReportedBy: i...@il.ibm.com CC: michael.v.zolotuk...@gmail.com Host: powerpc64-suse-linux Target: powerpc64-suse-linux Build: powerpc64-suse-linux Revision 182583 http://gcc.gnu.org/viewcvs?view=revision&revision=182583 caused several XPASSes on powerpc64-suse-linux: XPASS: gcc.dg/vect/vect-multitypes-1.c scan-tree-dump-times vect "Alignment of access forced using peeling" 2 XPASS: gcc.dg/vect/vect-multitypes-1.c scan-tree-dump-times vect "Vectorizing an unaligned access" 4 XPASS: gcc.dg/vect/vect-peel-3.c scan-tree-dump-times vect "Vectorizing an unaligned access" 1 XPASS: gcc.dg/vect/vect-peel-3.c scan-tree-dump-times vect "Alignment of access forced using peeling" 1 XPASS: gcc.dg/vect/vect-multitypes-1.c -flto scan-tree-dump-times vect "Alignment of access forced using peeling" 2 XPASS: gcc.dg/vect/vect-multitypes-1.c -flto scan-tree-dump-times vect "Vectorizing an unaligned access" 4 XPASS: gcc.dg/vect/vect-peel-3.c -flto scan-tree-dump-times vect "Vectorizing an unaligned access" 1 XPASS: gcc.dg/vect/vect-peel-3.c -flto scan-tree-dump-times vect "Alignment of access forced using peeling" 1 XPASS: gcc.dg/vect/no-section-anchors-vect-69.c scan-tree-dump-times vect "Alignment of access forced using peeling" 2 The reason is that {!vect_aligned_arrays} was added to xfail of the above checks, while vect_aligned_arrays is false for power. Changing that, i.e.: Index: ../../lib/target-supports.exp =================================================================== --- ../../lib/target-supports.exp (revision 182703) +++ ../../lib/target-supports.exp (working copy) @@ -3222,7 +3222,8 @@ proc check_effective_target_vect_aligned_arrays { set et_vect_aligned_arrays_saved 1 } } - if [istarget spu-*-*] { + if {[istarget spu-*-*] + || [istarget powerpc*-*-*] } { set et_vect_aligned_arrays_saved 1 } } fixes the XPASSes and doesn't cause any problems (on powerpc64-suse-linux), but AFAIU arrays are not always vector aligned on power, so this is not a good idea, unless we change the definition of check_effective_target_vect_aligned_arrays. What was the purpose of adding {!vect_aligned_arrays} to these tests? If peeling is impossible on AVX because arrays are never vector aligned, maybe we need a new target check instead of vect_aligned_arrays?