https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121952
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2025-09-15
Ever confirmed|0 |1
Status|RESOLVED |NEW
Resolution|INVALID |---
Target Milestone|10.0 |---
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
<bb 3> [local count: 955630224]:
# ivtmp.11_30 = PHI <ivtmp.11_11(8), ivtmp.11_9(7)>
_3 = 1 - t.0_1;
_4 = (bool) _3;
_5 = (unsigned long) ∾
_21 = (bool) _5;
_2 = _4 - _21;
_31 = (bool) ivtmp.11_30;
_32 = _2 + _31;
_6 = _32;
_33 = (void *) ivtmp.11_30;
MEM[(bool *)_33 + 1B] = _6;
ivtmp.11_11 = ivtmp.11_30 + 1;
if (ivtmp.11_11 != _39)
goto <bb 8>; [89.00%]
else
goto <bb 9>; [11.00%]
I am going to reopen this because IV-OPTS does something interesting to the IR.
_2 = _4 - _21;
Where _2 and _4 are boolean types.
I think is is trying to do ((n - i + 1) % 2) in a boolean way.