From 506eb1ff5ca27cd8d741ddf1894a32645919f773 Mon Sep 17 00:00:00 2001 From: vchernon Date: Sun, 17 Dec 2023 01:47:02 +0800 Subject: [PATCH] [rtl-ifcvt][BugFix] change def selection logic in noce_arith --- gcc/ifcvt.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 04086c560..a55ac16f3 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -1985,11 +1985,10 @@ bbs_ok_for_cmove_arith (basic_block bb_a, if (!sset_a) goto end_cmove_arith_check_and_fail; - if (a_insn == last_a) - continue; /* Record all registers that BB_A sets. */ FOR_EACH_INSN_DEF (def, a_insn) - bitmap_set_bit (bba_sets, DF_REF_REGNO (def)); + if (!(to_rename && DF_REF_REG (def) == to_rename && a_insn == last_a)) + bitmap_set_bit (bba_sets, DF_REF_REGNO (def)); } bitmap_and (intersections, df_get_live_in (bb_b), bba_sets); -- 2.33.0