On Tue, 16 Apr 2024, Tamar Christina wrote: > Hi all, > > The testcase seems to fail vectorization on -m32 since the access pattern is > determined as too complex. This skips the vectorization check on ilp32 > systems > as I couldn't find a better proxy for being able to do strided 64-bit loads > and > I suspect it would fail on all 32-bit targets.
You could try having Val aligned to 64bits in the structure (likely 32bit targets have it not aligned). > Regtested on x86_64-pc-linux-gnu with -m32 and no issues. > > Ok for master? > > Thanks, > Tamar > > gcc/testsuite/ChangeLog: > > PR tree-optimization/114403 > * gcc.dg/vect/vect-early-break_124-pr114403.c: Skip in ilp32. > > --- > diff --git a/gcc/testsuite/gcc.dg/vect/vect-early-break_124-pr114403.c > b/gcc/testsuite/gcc.dg/vect/vect-early-break_124-pr114403.c > index > 1751296ab813fe85eaab1f58dc674bac10f6eb7a..db8e00556f116ca81c5a6558ec6ecd3b222ec93d > 100644 > --- a/gcc/testsuite/gcc.dg/vect/vect-early-break_124-pr114403.c > +++ b/gcc/testsuite/gcc.dg/vect/vect-early-break_124-pr114403.c > @@ -2,11 +2,11 @@ > /* { dg-require-effective-target vect_early_break_hw } */ > /* { dg-require-effective-target vect_long_long } */ > > -/* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" } } */ > +/* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { target { ! ilp32 } > } } } */ > > #include "tree-vect.h" > > -typedef unsigned long PV; > +typedef unsigned long long PV; > typedef struct _buff_t { > int foo; > PV Val; > > > > > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)