https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120722
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> --- Fails for: Breakpoint 1, gen_highpart (mode=E_SImode, x=0x7ffff7195378) at /home/tob/repos/gcc/gcc/emit-rtl.cc:1674 1674 gcc_assert (result && !MEM_P (result)); (gdb) p result $1 = (rtx) 0x0 (gdb) p debug_rtx(x) (reg:DI 106 vcc_lo [orig:693 loop_mask_26 ] [693]) with: 1670 result = simplify_gen_subreg (mode, x, GET_MODE (x), 1671 subreg_highpart_offset (mode, GET_MODE (x))); Caller: #1 0x0000000000cb7376 in gen_highpart_mode (outermode=E_SImode, innermode=E_DImode, exp=0x7ffff7195348) called in #1 0x0000000000cb7376 in gen_highpart_mode (outermode=E_SImode, innermode=E_DImode, exp=0x7ffff7195348) 668 [RM ,v ;flat ,12,* ,* ] global_store_dwordx2\t%A0, %1%O0%g0 669 [RM ,a ;flat ,12,cdna2,* ] ^ 670 } 671 "reload_completed 672 && ((!MEM_P (operands[0]) && !MEM_P (operands[1]) 673 && !gcn_sgpr_move_p (operands[0], operands[1])) 674 || (GET_CODE (operands[1]) == CONST_INT (gdb) 675 && !gcn_constant64_p (operands[1])))" 676 [(set (match_dup 0) (match_dup 1)) 677 (set (match_dup 2) (match_dup 3))] 678 { 679 rtx inlo = gen_lowpart (SImode, operands[1]); 680 rtx inhi = gen_highpart_mode (SImode, <MODE>mode, operands[1]); 681 rtx outlo = gen_lowpart (SImode, operands[0]); 682 >>>> rtx outhi = gen_highpart_mode (SImode, <MODE>mode, operands[0]); 683 684 /* Ensure that overlapping registers aren't corrupted. */