https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102133
--- Comment #3 from Hongtao.liu <crazylht at gmail dot com> --- static inline void set_rtl (tree t, rtx x) { gcc_checking_assert (!x || !(TREE_CODE (t) == SSA_NAME || is_gimple_reg (t)) || (use_register_for_decl (t) ? (REG_P (x) || (GET_CODE (x) == CONCAT && (REG_P (XEXP (x, 0)) || SUBREG_P (XEXP (x, 0))) && (REG_P (XEXP (x, 1)) || SUBREG_P (XEXP (x, 1)))) /* We need to accept PARALLELs for RESUT_DECLs because of vector types with BLKmode returned in multiple registers, but they are supposed to be uncoalesced. */ || (GET_CODE (x) == PARALLEL && SSAVAR (t) && TREE_CODE (SSAVAR (t)) == RESULT_DECL && (GET_MODE (x) == BLKmode || !flag_tree_coalesce_vars))) : (MEM_P (x) || x == pc_rtx || (GET_CODE (x) == CONCAT && MEM_P (XEXP (x, 0)) && MEM_P (XEXP (x, 1)))))); x is (subreg:DF (reg:DI 154) 0), t is <ssa_name 0x7fffea4a9a68 type <real_type 0x7fffea48b1f8 DFtype sizes-gimplified DF size <integer_cst 0x7fffea2e2e10 constant 64> unit-size <integer_cst 0x7fffea2e2e28 constant 8> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffea2f9498 precision:64 context <translation_unit_decl 0x7fffea49c078 /scratch/jmyers/glibc/many12/src/gcc/libgcc/libgcc2.c>> visited var <parm_decl 0x7fffea497b00 d> def_stmt GIMPLE_NOP version:62> and it hit REG_P (XEXP (x, 1)), XEXP (x, 1) is invalid for subreg, so set_rtl here doesn't accept subreg?