aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-10-10 14:00:11 +0200
committerRichard Biener <rguenth@gcc.gnu.org>2024-10-11 07:59:27 +0200
commit36b9c5e6f3301d3d0165f578d020dcd350cd516d (patch)
treec4993f6c7fb3af02a9d1640c6e048c05eebb78f2 /gcc/fortran
parent9f2f108a8a68c7b7b2de5350439a8ab8e17a54da (diff)
downloadgcc-36b9c5e6f3301d3d0165f578d020dcd350cd516d.zip
gcc-36b9c5e6f3301d3d0165f578d020dcd350cd516d.tar.gz
gcc-36b9c5e6f3301d3d0165f578d020dcd350cd516d.tar.bz2
Fix possible wrong-code with masked store-lanes
When we're doing masked store-lanes one mask element applies to all loads of one struct element. This requires uniform masks for all of the SLP lanes, something we already compute into STMT_VINFO_SLP_VECT_ONLY but fail to check when doing SLP store-lanes. The following corrects this. The following also adjusts the store-lane heuristic to properly check for masked or non-masked optab support. * tree-vect-slp.cc (vect_slp_prefer_store_lanes_p): Allow passing in of vectype, pass in whether the stores are masked and query the correct optab. (vect_build_slp_instance): Guard store-lanes query with ! STMT_VINFO_SLP_VECT_ONLY, guaranteeing an uniform mask.
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions