[Bug rtl-optimization/69291] [6 Regression] wrong code at -O1 for ruby-2.3.0/regcomp.c:985:compile_length_quantifier_node()

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Feb 10 12:42:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69291

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
Testing

Index: gcc/ifcvt.c
===================================================================
--- gcc/ifcvt.c (revision 233262)
+++ gcc/ifcvt.c (working copy)
@@ -1381,10 +1381,11 @@ noce_try_store_flag_constants (struct no

       /* If we have x := test ? x + 3 : x + 4 then move the original
         x out of the way while we store flags.  */
-      if (common && rtx_equal_p (common, if_info->x))
+      if (common && reg_mentioned_p (if_info->x, common))
        {
-         common = gen_reg_rtx (mode);
-         noce_emit_move_insn (common, if_info->x);
+         rtx tem = gen_reg_rtx (mode);
+         noce_emit_move_insn (tem, common);
+         common = tem;
        }

       target = noce_emit_store_flag (if_info, if_info->x, reversep,
normalize);


More information about the Gcc-bugs mailing list