https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119808
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Last reconfirmed| |2025-04-14
Status|UNCONFIRMED |NEW
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Partition 1: size 24 align 16
bitint.4 bitint.3
This is definitely wrong but it is correct based on the IR:
MEM[(unsigned long *)&bitint.4] = 0;
MEM[(unsigned long *)&bitint.4 + 8B] = 0;
MEM[(unsigned long *)&bitint.4 + 16B] = 0;
_100 = MEM[(unsigned long *)&bitint.4];
MEM[(unsigned long *)&bitint.4] = _100;
_101 = MEM[(unsigned long *)&bitint.4 + 8B];
MEM[(unsigned long *)&bitint.4 + 8B] = _101;
_102 = MEM[(unsigned long *)&bitint.4 + 16B];
_103 = (<unnamed-signed:1>) _102;
_104 = (unsigned long) _103;
MEM[(unsigned long *)&bitint.4 + 16B] = _104;
_94 = MEM[(unsigned long *)&bitint.4];
MEM[(unsigned long *)&bitint.2] = _94;
_95 = MEM[(unsigned long *)&bitint.4 + 8B];
MEM[(unsigned long *)&bitint.2 + 8B] = _95;
_96 = MEM[(unsigned long *)&bitint.4 + 16B];
_97 = (<unnamed-signed:1>) _96;
_98 = (<unnamed-unsigned:1>) _97;
_99 = (unsigned long) _98;
MEM[(unsigned long *)&bitint.2 + 16B] = _99;
bitint.4 ={v} {CLOBBER(eos)};
So the bug is in bitlowering.
b_5 = 0;
b.0_6 = b_5;
b_5 -> bitint.4
b.0_6 -> bitint.4