https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83682
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> --- Line numbers are wrong for some reason, the compilation crashes in rtx simplify_subreg (machine_mode outermode, rtx op, machine_mode innermode, poly_uint64 byte) { /* Little bit of sanity checking. */ gcc_assert (innermode != VOIDmode); gcc_assert (outermode != VOIDmode); gcc_assert (innermode != BLKmode); gcc_assert (outermode != BLKmode); > gcc_assert (GET_MODE (op) == innermode || GET_MODE (op) == VOIDmode); where: 5877 temp = simplify_subreg (mode, SUBREG_REG (x), op0_mode, (gdb) p op0_mode $3 = E_SFmode (gdb) p debug_rtx (x) (subreg:SI (float_truncate:V2SF (mem/c:V2DF (symbol_ref:DI ("c") [flags 0x2] <var_decl 0x7ffff7ff4ea0 c>) [1 c+0 S16 A128])) 0) So, SFmode != V2SFmode.