https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109676
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- 102: (value/u:V1TI 24:24 @0x49b13d8/0x49a15f0) is at (mem/c:V1TI (value/u:DI 13:4290 @0x49b1328/0x49a1438) [0 p+0 S16 A128]) 102: (reg:V1TI 20 xmm0 [orig:91 p ] [91]) evaluates to (value/u/f:V1TI 24:24 @0x49b13d8/0x49a15f0) It is this which is causing the ICE: (insn 102 110 106 6 (set (reg:V1TI 20 xmm0 [orig:91 p ] [91]) (mem/c:V1TI (plus:DI (reg/f:DI 7 sp) (const_int 32 [0x20])) [0 p+0 S16 A128])) "/app/example.cpp":26:12 1838 {movv1ti_internal} (nil)) (debug_insn 106 102 107 6 (var_location:QI D#3 (mem/c:QI (plus:DI (reg/f:DI 7 sp) (const_int 48 [0x30])) [0 p.mIsSome+0 S1 A128])) "/app/example.cpp":26:12 -1 (nil)) (debug_insn 107 106 108 6 (var_location:QI tmp$mIsSome (debug_expr:QI D#3)) "/app/example.cpp":26:12 -1 (nil)) I suspect it is doing a subreg for QI mode of a V1TI reg and simplify_subreg is ICEing out.