https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116571
--- Comment #6 from Andrew Stubbs <ams at gcc dot gnu.org> --- (In reply to Richard Biener from comment #5) > (In reply to Thomas Schwinge from comment #4) > > The GCN target FAILs that I originally had reported here: > > > > > [-PASS:-]{+FAIL:+} gcc.dg/vect/slp-11a.c scan-tree-dump-times vect > > > "vectorizing stmts using SLP" [-0-]{+1+} > > > > > [-PASS:-]{+FAIL:+} gcc.dg/vect/slp-12a.c scan-tree-dump-times vect > > > "vectorizing stmts using SLP" [-0-]{+1+} > > > > ... are back to PASS as of recently; should we close this PR? > > I'd say so. > > > > > Andrew, anything to be done anyway, regarding the following? > > > > (In reply to Richard Biener from comment #3) > > > Possibly for GCN the issue is the vect_strided8 which is implemented as > > > > > > foreach N {2 3 4 5 6 7 8} { > > > eval [string map [list N $N] { > > > # Return 1 if the target supports 2-vector interleaving > > > proc check_effective_target_vect_stridedN { } { > > > return [check_cached_effective_target_indexed vect_stridedN { > > > if { (N & -N) == N > > > && [check_effective_target_vect_interleave] > > > && [check_effective_target_vect_extract_even_odd] } { > > > return 1 > > > } > > > if { ([istarget arm*-*-*] > > > || [istarget aarch64*-*-*]) && N >= 2 && N <= 4 } { > > > return 1 > > > } > > > if { ([istarget riscv*-*-*]) && N >= 2 && N <= 8 } { > > > return 1 > > > } > > > if [check_effective_target_vect_fully_masked] { > > > return 1 > > > } > > > > > > not sure if gcn really supports a load/store-lane with 8 elements. > > Note I might have misunderstood the vect_stridedN effective target, but > the last line looks odd (x86 also can do fully masked loops with AVX512 > but definitely cannot do arbitrary interleaving schemes just because of > that). OK, but unless I'm missing something x86 is not one of the targets where check_effective_target_vect_fully_masked is true. > I'd remove that last line, it was added by you, Andrew, in > r9-5484-g674931d2b7bd88 ... I will switch it to test for GCN specifically. As far as I know, GCN is fine with 8 element vectors and can load store them from any arbitrary pattern you can generate.