diff options
author | Tamar Christina <tamar.christina@arm.com> | 2025-07-09 08:39:35 +0100 |
---|---|---|
committer | Tamar Christina <tamar.christina@arm.com> | 2025-07-09 08:40:49 +0100 |
commit | 6c8d221b74869f2760ded2d67f95dd9d275bc1a2 (patch) | |
tree | bd0f3f246c69403291691977923e21377a3881f3 /libcpp/include/cpplib.h | |
parent | c7baa61a583b49df63d3df8c6336f8405e24f012 (diff) | |
download | gcc-6c8d221b74869f2760ded2d67f95dd9d275bc1a2.zip gcc-6c8d221b74869f2760ded2d67f95dd9d275bc1a2.tar.gz gcc-6c8d221b74869f2760ded2d67f95dd9d275bc1a2.tar.bz2 |
middle-end: don't set range on partial vectors [PR120922]
Before the change in g:309dbcea2cabb31bde1a65cdfd30bb7f87b170a2 we would never
set a range for constant VF and requires partial vector loops.
I think a range could be set, since I think the number of latch executions is a
ceiling division of TYPE_MAX_VALUE / vf. To account for the partial iteration.
This would also then deal with the ICE cause in the PR where the chosen VF was
much higher than TYPE_MAX_VALUE and that a mask is relied upon to make it safe.
Since the patch was supposed to not change behavior I've added an additional
partial vector check on the const_vf > 0 check to make it explicit that we only
set it on non-partial vectors (alternative would have been to swap the order of
the vf.constant(&const_vf)) check, but that would have hidden the requirement
sneakily.
The second patch adds support for ranges for partial masks.
gcc/ChangeLog:
PR tree-optimization/120922
* tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Don't set range
for partial vectors.
gcc/testsuite/ChangeLog:
PR tree-optimization/120922
* gcc.dg/vect/pr120922.c: New test.
Diffstat (limited to 'libcpp/include/cpplib.h')
0 files changed, 0 insertions, 0 deletions