diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2023-03-02 16:39:50 +0000 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2023-03-02 16:39:50 +0000 |
commit | 076d309e36c682176e9f85dc8593e6f2c9e6e75f (patch) | |
tree | c49d151b052b7ca152dd38b20b3927d5fe2def20 /gcc/cp/constexpr.cc | |
parent | 71afd0628419c5d670701cb35bc9860380c7d9fb (diff) | |
download | gcc-076d309e36c682176e9f85dc8593e6f2c9e6e75f.zip gcc-076d309e36c682176e9f85dc8593e6f2c9e6e75f.tar.gz gcc-076d309e36c682176e9f85dc8593e6f2c9e6e75f.tar.bz2 |
vect: Don't apply masks to operations on invariants [PR108979]
The loop body in the testcase contains an operation on invariants.
SLP detects this and can hoist/schedule the operation outside of
the loop. However, after the fix for PR96373, we would try to
apply a loop mask to this operation, even though the mask is
defined in the loop.
The patch does what Richi suggested in the PR: suppress the
masking for externs and constants.
gcc/
PR tree-optimization/108979
* tree-vect-stmts.cc (vectorizable_operation): Don't mask
operations on invariants.
gcc/testsuite/
PR tree-optimization/108979
* gfortran.dg/vect/pr108979.f90: New test.
Diffstat (limited to 'gcc/cp/constexpr.cc')
0 files changed, 0 insertions, 0 deletions