https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116093
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Last reconfirmed| |2024-07-25
Status|UNCONFIRMED |NEW
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.
Before bitlowering we have:
```
_1 = (int) c_8(D);
_2 = 5 / b_9(D);
_3 = j_10(D) | 3681934325; // Dead
_4 = (_BitInt(129)) _3; // Dead
_5 = _2;
_6 = (unsigned int) _5;
```
Which is correct.
After we get:
```
_1 = (int) c_8(D);
.DIVMODBITINT (&bitint.2, 129, 0B, 0, &*.LC0, 3, &b, -129);
_3 = j_10(D) | 3681934325;
MEM[(unsigned long *)&bitint.2] = _3;
```
Which is wrong. _4 is not used ...
Mapping SSA_NAMEs to decls:
_2 -> bitint.2
_4 -> bitint.2
b_9(D) -> b
is definitely wrong.
(2)_2 & (4)_4 [map: 0, 1] : Success -> 0
But _2 and _4 are alive at the same time well _4 is not used but it is alive at
the same time as _2 ...