aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.h
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2023-01-18 10:59:52 +0100
committerRichard Biener <rguenther@suse.de>2023-04-28 14:40:48 +0200
commit6d4b59a9356ac4df7f4ae370495dc3366d0daa55 (patch)
treec4704cd661b920b5ce1b21e02287fd661b5eea36 /gcc/fold-const.h
parent24905a4bd1375ccd99c02510b9f9529015a48315 (diff)
downloadgcc-6d4b59a9356ac4df7f4ae370495dc3366d0daa55.zip
gcc-6d4b59a9356ac4df7f4ae370495dc3366d0daa55.tar.gz
gcc-6d4b59a9356ac4df7f4ae370495dc3366d0daa55.tar.bz2
Add emulated scatter capability to the vectorizer
This adds a scatter vectorization capability to the vectorizer without target support by decomposing the offset and data vectors and then performing scalar stores in the order of vector lanes. This is aimed at cases where vectorizing the rest of the loop offsets the cost of vectorizing the scatter. The offset load is still vectorized and costed as such, but like with emulated gather those will be turned back to scalar loads by forwrpop. * tree-vect-data-refs.cc (vect_analyze_data_refs): Always consider scatters. * tree-vect-stmts.cc (vect_model_store_cost): Pass in the gather-scatter info and cost emulated scatters accordingly. (get_load_store_type): Support emulated scatters. (vectorizable_store): Likewise. Emulate them by extracting scalar offsets and data, doing scalar stores. * gcc.dg/vect/pr25413a.c: Un-XFAIL everywhere. * gcc.dg/vect/vect-71.c: Likewise. * gcc.dg/vect/tsvc/vect-tsvc-s4113.c: Likewise. * gcc.dg/vect/tsvc/vect-tsvc-s491.c: Likewise. * gcc.dg/vect/tsvc/vect-tsvc-vas.c: Likewise.
Diffstat (limited to 'gcc/fold-const.h')
0 files changed, 0 insertions, 0 deletions