aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgexpand.cc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-11-13 13:56:13 +0100
committerRichard Biener <rguenth@gcc.gnu.org>2024-11-14 09:22:25 +0100
commitba192895d17c4fc4676444fe1bd4a593d20e6def (patch)
tree489b7e4351161eb730b5d3991cf5e58cfa5ce4b7 /gcc/cfgexpand.cc
parent4b4aa47ed296968507b2fde70d2e651129ff3b36 (diff)
downloadgcc-ba192895d17c4fc4676444fe1bd4a593d20e6def.zip
gcc-ba192895d17c4fc4676444fe1bd4a593d20e6def.tar.gz
gcc-ba192895d17c4fc4676444fe1bd4a593d20e6def.tar.bz2
tree-optimization/117559 - avoid hybrid SLP for masked load/store lanes
Hybrid analysis is confused by the mask_conversion pattern making a uniform mask non-uniform. As load/store lanes only uses a single lane to mask all data lanes the SLP graph doesn't cover the alternate (redundant) mask lanes and thus their pattern defs. The following adds a hack to mark them covered. Fixes gcc.target/aarch64/sve/mask_struct_store_?.c with forced SLP. PR tree-optimization/117559 * tree-vect-slp.cc (vect_mark_slp_stmts): Pass in vinfo, mark all mask defs of a load/store-lane .MASK_LOAD/STORE as pure. (vect_make_slp_decision): Adjust. (vect_slp_analyze_bb_1): Likewise.
Diffstat (limited to 'gcc/cfgexpand.cc')
0 files changed, 0 insertions, 0 deletions