https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123130
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Keywords| |missed-optimization
Blocks| |85316
Last reconfirmed| |2025-12-15
Status|UNCONFIRMED |NEW
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
We're short-cutting the loops *d && *d != ':', losing the ability to remove
the redundant != 0 test on the exit from *d == 0.
We're also CSEing the != 0 test in unfortunate ways. I'd say this is a
jump-threading / VRP issue in the end and lack of a "normalization" of
CFG vs. non-CFG jump conditions.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85316
[Bug 85316] [meta-bug] VRP range propagation missed cases