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.

Reply via email to