Hi, In gcc.dg/vect/slp-3.c and gcc.dg/vect/no-vfa-pr29145.c vectorization is expected to fail on targets vect_no_align. But no realignment is necessary here except for having the array bases aligned. This patch removes xfail for vect_no_align (and increases a loop bound in slp-3.c to prevent complete unrolling). It is supposed to fix the XPASSes on SPARC, I also checked it with a cross-compiler on ia64-linux-gnu, and tested on x86_64-suse-linux.
vect_no_align is true for if { [istarget mipsisa64*-*-*] || [istarget sparc*-*-*] || [istarget ia64-*-*] || [check_effective_target_arm_vect_no_misalign] || ([istarget mips*-*-*] && [check_effective_target_mips_loongson]) } { set et_vect_no_align_saved 1 } so I'd appreciate testing on these targets. Thanks, Ira testsuite/ChangeLog PR testsuite/48498 * gcc.dg/vect/slp-3.c: Increase loop bound. Don't expect to fail on vect_no_align targets. * gcc.dg/vect/no-vfa-pr29145.c: Don't expect to fail on vect_no_align targets. Index: testsuite/gcc.dg/vect/slp-3.c =================================================================== --- testsuite/gcc.dg/vect/slp-3.c (revision 172765) +++ testsuite/gcc.dg/vect/slp-3.c (working copy) @@ -4,9 +4,9 @@ #include <stdarg.h> #include "tree-vect.h" -#define N 8 +#define N 12 -unsigned short in[N*8] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63}; +unsigned short in[N*8] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}; int main1 () @@ -142,7 +142,7 @@ return 0; } -/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_align } } } */ -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: testsuite/gcc.dg/vect/no-vfa-pr29145.c =================================================================== --- testsuite/gcc.dg/vect/no-vfa-pr29145.c (revision 172765) +++ testsuite/gcc.dg/vect/no-vfa-pr29145.c (working copy) @@ -48,6 +48,6 @@ return 0; } -/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 2 "vect" { xfail vect_no_align } } } */ -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 2 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ /* { dg-final { cleanup-tree-dump "vect" } } */