aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-07-30 11:06:50 +0200
committerRichard Biener <rguenther@suse.de>2021-08-04 12:38:03 +0200
commit2724d1bba6b36451404811fba3244f8897717ef3 (patch)
tree82eaab401387f80c8bc760e0c1bf01d0b57102c1 /gcc/expr.c
parent87a0b607e40f8122c7fc45d496ef48799fe11550 (diff)
downloadgcc-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/expr.c')
0 files changed, 0 insertions, 0 deletions