aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/Wstrict-flex-arrays.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2023-10-19 10:33:01 +0200
committerRichard Biener <rguenther@suse.de>2023-10-19 14:25:36 +0200
commitbeab5b95c581452adeb26efd59ae84a61fb3b429 (patch)
treeb0140dcd2b7498d1ca1ce58ca6d128a84489bae9 /gcc/testsuite/c-c++-common/Wstrict-flex-arrays.c
parentb068886dcd7eb4a88dd82643a7a6176215471889 (diff)
downloadgcc-beab5b95c581452adeb26efd59ae84a61fb3b429.zip
gcc-beab5b95c581452adeb26efd59ae84a61fb3b429.tar.gz
gcc-beab5b95c581452adeb26efd59ae84a61fb3b429.tar.bz2
tree-optimization/111131 - SLP for non-IFN gathers
The following implements SLP vectorization support for gathers without relying on IFNs being pattern detected (and supported by the target). That includes support for emulated gathers but also the legacy x86 builtin path. PR tree-optimization/111131 * tree-vect-loop.cc (update_epilogue_loop_vinfo): Make sure to update all gather/scatter stmt DRs, not only those that eventually got VMAT_GATHER_SCATTER set. * tree-vect-slp.cc (_slp_oprnd_info::first_gs_info): Add. (vect_get_and_check_slp_defs): Handle gathers/scatters, adding the offset as SLP operand and comparing base and scale. (vect_build_slp_tree_1): Handle gathers. (vect_build_slp_tree_2): Likewise. * gcc.dg/vect/vect-gather-1.c: Now expected to vectorize everywhere. * gcc.dg/vect/vect-gather-2.c: Expected to not SLP anywhere. Massage the scale case to more reliably produce a different one. Scan for the specific messages. * gcc.dg/vect/vect-gather-3.c: Masked gather is also supported for AVX2, but not emulated. * gcc.dg/vect/vect-gather-4.c: Expected to not SLP anywhere. Massage to more properly ensure this. * gcc.dg/vect/tsvc/vect-tsvc-s353.c: Expect to vectorize everywhere.
Diffstat (limited to 'gcc/testsuite/c-c++-common/Wstrict-flex-arrays.c')
0 files changed, 0 insertions, 0 deletions