https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102133
--- Comment #8 from Hongtao.liu <crazylht at gmail dot com> --- (In reply to Hongtao.liu from comment #7) > Since we also allow something like (concat:(subreg) (subreg)), should we > also allow subreg outside? > > gcc_checking_assert (!x > || !(TREE_CODE (t) == SSA_NAME || is_gimple_reg (t)) > || (use_register_for_decl (t) > - ? (REG_P (x) > + ? (REG_P (x) || SUBREG_P (x) > || (GET_CODE (x) == CONCAT > && (REG_P (XEXP (x, 0)) > || SUBREG_P (XEXP (x, 0))) > > It can also fix FAIL: gcc.dg/torture/builtin-attr-1.c -O1 (internal compiler error) for builtin-attr-1.c assembly is the same as the one built without my, but for for __muldc3, there's a little bit difference caused by rtl optimization.