diff options
author | Richard Biener <rguenther@suse.de> | 2021-07-30 11:06:50 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-08-04 12:38:03 +0200 |
commit | 2724d1bba6b36451404811fba3244f8897717ef3 (patch) | |
tree | 82eaab401387f80c8bc760e0c1bf01d0b57102c1 /gcc/tree-vect-patterns.c | |
parent | 87a0b607e40f8122c7fc45d496ef48799fe11550 (diff) | |
download | gcc-2724d1bba6b36451404811fba3244f8897717ef3.zip gcc-2724d1bba6b36451404811fba3244f8897717ef3.tar.gz gcc-2724d1bba6b36451404811fba3244f8897717ef3.tar.bz2 |
Rewrite more vector loads to scalar loads
This teaches forwprop to rewrite more vector loads that are only
used in BIT_FIELD_REFs as scalar loads. This provides the
remaining uplift to SPEC CPU 2017 510.parest_r on Zen 2 which
has CPU gathers disabled.
In particular vector load + vec_unpack + bit-field-ref is turned
into (extending) scalar loads which avoids costly XMM/GPR
transitions. To not conflict with vector load + bit-field-ref
+ vector constructor matching to vector load + shuffle the
extended transform is only done after vector lowering.
2021-07-30 Richard Biener <rguenther@suse.de>
* tree-ssa-forwprop.c (pass_forwprop::execute): Split
out code to decompose vector loads ...
(optimize_vector_load): ... here. Generalize it to
handle intermediate widening and TARGET_MEM_REF loads
and apply it to loads with a supported vector mode as well.
Diffstat (limited to 'gcc/tree-vect-patterns.c')
0 files changed, 0 insertions, 0 deletions