diff options
author | Richard Biener <rguenther@suse.de> | 2020-06-25 11:21:20 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2020-06-25 12:29:52 +0200 |
commit | 86ce59b4f05d8f68ec4d9a14a7732acb370412db (patch) | |
tree | eb7c81a823bc2aaef6319c4cf91d561847bab2d7 /gcc/fortran/trans-openmp.c | |
parent | 88891c5ff0e3e20d3dd743c4eb6cc45399ee5c33 (diff) | |
download | gcc-86ce59b4f05d8f68ec4d9a14a7732acb370412db.zip gcc-86ce59b4f05d8f68ec4d9a14a7732acb370412db.tar.gz gcc-86ce59b4f05d8f68ec4d9a14a7732acb370412db.tar.bz2 |
tree-optimization/95866 - avoid using scalar ops for vectorized shift
This avoids using the original scalar SSA operand when vectorizing
a shift with a vectorized shift operand where we know all vector
components have the same value and thus we can use a vector by
scalar shift. Using the scalar SSA operand causes a possibly
long chain of scalar computation to be retained so it's better
to simply extract lane zero from the available vectorized shift
operand.
2020-06-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/95866
* tree-vect-stmts.c (vectorizable_shift): Reject incompatible
vectorized shift operands. For scalar shifts use lane zero
of a vectorized shift operand.
* gcc.dg/vect/bb-slp-pr95866.c: New testcase.
Diffstat (limited to 'gcc/fortran/trans-openmp.c')
0 files changed, 0 insertions, 0 deletions