https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98996
--- Comment #1 from YunQiang Su <syq at debian dot org> --- 96=64+32, so the rtl should be a ldl/ldr + lwl/lwr It should be: (insn 377 376 378 16 (set (reg:SI 499) (unspec:SI [ (mem:BLK (plus:DI (reg/f:DI 216 [ _65 ]) (const_int 8 [0x8])) [0 +8 S4 A8]) (mem:QI (plus:DI (reg/f:DI 216 [ _65 ]) (const_int 11 [0xb])) [0 +11 S1 A8]) ] UNSPEC_LOAD_LEFT)) "s-pack96.adb":160:23 -1 (nil))