diff options
author | Richard Biener <rguenther@suse.de> | 2025-08-29 12:15:09 +0200 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2025-09-04 10:14:26 +0200 |
commit | cba74d2cde528af210e37a06652493b2ca38079c (patch) | |
tree | e5fa40e42e19eac3fb24c2867057a48136476356 /libstdc++-v3/testsuite/20_util | |
parent | 95afbe4c7633459b59d434550888decc41b4d44f (diff) | |
download | gcc-master.zip gcc-master.tar.gz gcc-master.tar.bz2 |
The following handles SCEV analysis of a peeled converted IV if
that IV is known to not overflow. For
# _15 = PHI <_4(6), 0(5)>
# i_18 = PHI <i_11(6), 0(5)>
i_11 = i_18 + 1;
_4 = (long unsigned int) i_11;
we cannot analyze _15 directly since the SCC has a widening
conversion. But we can analyze _4 to (long unsigned int) {1, +, 1}_1
which is "peeled" (it's from after the first iteration of _15).
If the un-peeled IV {0, +, 1}_1 has the same initial value as _15
and it does not overflow then _15 can be analyzed as
{0ul, +, 1ul}_1.
The following implements this in simplify_peeled_chrec.
PR tree-optimization/61247
* tree-scalar-evolution.cc (simplify_peeled_chrec):
Handle the case of a converted peeled chrec.
* gcc.dg/vect/vect-pr61247.c: New testcase.
Diffstat (limited to 'libstdc++-v3/testsuite/20_util')
0 files changed, 0 insertions, 0 deletions