https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109025

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note using &, | or ^ causes the ICE. Using + or - or * does not.

Here is more simplified testcase:
```
int func_4(int t, int b) {
  for (int tt1 = 0; tt1 < 128 ; tt1 ++)
  {
    for (int tt = 0; tt < 128; tt ++)
      if (b)
        t |= 3;
    t |= 3;
  }
  return t;
}
```
The above should just optimized to `return t | 3;` really.
The ^/& case should be optimized too but it depends on if the number of loops
is even or odd and if b was non-zero or not.

Reply via email to