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 ...

Reply via email to