Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2016-02-16  Richard Biener  <rguent...@suse.de>

        PR rtl-optimization/69291
        * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
        noce_operand_ok check.

Index: gcc/ifcvt.c
===================================================================
--- gcc/ifcvt.c (revision 233443)
+++ gcc/ifcvt.c (working copy)
@@ -1277,7 +1277,8 @@ noce_try_store_flag_constants (struct no
       /* Allow expressions that are not using the result or plain
          registers where we handle overlap below.  */
       && (REG_P (XEXP (a, 0))
-         || ! reg_overlap_mentioned_p (if_info->x, XEXP (a, 0)))
+         || (noce_operand_ok (XEXP (a, 0))
+             && ! reg_overlap_mentioned_p (if_info->x, XEXP (a, 0))))
       && if_info->branch_cost >= 2)
     {
       common = XEXP (a, 0);

Reply via email to