https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89474
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> --- For the former issue, I'd go with: --- gcc/config/i386/i386.c.jj 2019-02-22 23:02:47.805117610 +0100 +++ gcc/config/i386/i386.c 2019-02-25 12:57:18.238284322 +0100 @@ -2835,7 +2835,14 @@ remove_partial_avx_dependency (void) continue; if (!v4sf_const0) - v4sf_const0 = gen_reg_rtx (V4SFmode); + { + calculate_dominance_info (CDI_DOMINATORS); + df_set_flags (DF_DEFER_INSN_RESCAN); + df_chain_add_problem (DF_DU_CHAIN | DF_UD_CHAIN); + df_md_add_problem (); + df_analyze (); + v4sf_const0 = gen_reg_rtx (V4SFmode); + } /* Convert PARTIAL_XMM_UPDATE_TRUE insns, DF -> SF, SF -> DF, SI -> SF, SI -> DF, DI -> SF, DI -> DF, to vec_dup and @@ -2883,12 +2890,6 @@ remove_partial_avx_dependency (void) if (v4sf_const0) { - calculate_dominance_info (CDI_DOMINATORS); - df_set_flags (DF_DEFER_INSN_RESCAN); - df_chain_add_problem (DF_DU_CHAIN | DF_UD_CHAIN); - df_md_add_problem (); - df_analyze (); - /* (Re-)discover loops so that bb->loop_father can be used in the analysis below. */ loop_optimizer_init (AVOID_CFG_MODIFICATIONS);