https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114120
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-02-27 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- I think I've seen a duplicate for this. We lack a pass replacing an IV (a PHI) based on how that is used outside of the loop. Basically we fail to treat PHIs transparently when folding conversions. This _might_ be sth for IVCANON since I think it doesn't really fit any other pass. It also came up in the context of int f (unsigned *src) { int sum = 0; for (int y = 0; y < 8; y++) { sum += src[y]; } return sum; } which we handle fine in vectorization but still the reduction could be done in 'unsigned' all the way through (and that conversion handling in the vectorizer reduction code is somewhat ugly).