https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112104
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Last reconfirmed| |2023-10-27 Status|UNCONFIRMED |NEW --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. I think it should apply even to int foo(long n3, int j, int x) { for(int i=0; i<n3; i++) j=j^x; return j; } which alternates between 'j' and 'j^x', thus the result is n3&1 ? j^x : j? I wonder if there's some online symbolic calculus service that we can feed IL during compilation ;)