https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111743
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 CC| |pinskia at gcc dot gnu.org Severity|normal |enhancement Last reconfirmed| |2023-10-09 Status|UNCONFIRMED |NEW --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- RTL wise we have: Trying 6, 8 -> 9: 6: {r108:DI=r105:DI 0>>0x20;clobber flags:CC;} REG_UNUSED flags:CC 8: {r110:SI=r108:DI#0&0x3ff;clobber flags:CC;} REG_UNUSED flags:CC REG_DEAD r108:DI 9: {r111:SI=r110:SI<<0x14;clobber flags:CC;} REG_DEAD r110:SI REG_UNUSED flags:CC Failed to match this instruction: (parallel [ (set (reg:SI 111) (and:SI (ashift:SI (subreg:SI (zero_extract:DI (reg/v:DI 105 [ bf ]) (const_int 32 [0x20]) (const_int 32 [0x20])) 0) (const_int 20 [0x14])) (const_int 1072693248 [0x3ff00000]))) (clobber (reg:CC 17 flags)) ]) This should have been simplified. Anyways bitfields have issues even on the gimple level as they are not lowered until expand ...