https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102285
--- Comment #25 from qinzhao at gcc dot gnu.org --- (In reply to Richard Biener from comment #22) > Hmm, my proposed patch seems to work. I've adjusted it to not regress > previously correctly handled cases and will test it fully. I guess the reason for it worked for you because you tested it after the patch for 102587? --- a/gcc/internal-fn.c +++ b/gcc/internal-fn.c @@ -3035,7 +3035,8 @@ expand_DEFERRED_INIT (internal_fn, gcall *stmt) /* Expand this memset call. */ expand_builtin_memset (m_call, NULL_RTX, TYPE_MODE (var_type)); } - else + /* ??? Deal with poly-int sized registers. */ + else if (tree_fits_uhwi_p (TYPE_SIZE_UNIT (var_type))) { /* If this variable is in a register, use expand_assignment might generate better code. */