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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|forgets to clear the        |forgets to clear the
                   |padding bits when           |padding bits when
                   |converting a _BitInt(1) on  |converting a _BitInt(1) on
                   |x86_64                      |x86_64 at -O1+ (SRA)
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2025-08-27
     Ever confirmed|0                           |1

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Yep SRA changes:
```
  v.c = c.1_2;
  _3 = v.i;
  _4 = (int) _3;
```

into:
```
  c.1_2 = (unsigned char) c.0_1;
  v$c_11 = c.1_2;
  _3 = VIEW_CONVERT_EXPR<unsigned _BitInt(1)>(v$c_11);
```

Which is wrong for BitInt. It should have used a cast instead of a VCE.

Reply via email to