2015-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+ PR rtl-optimization/67481
+ * ifcvt.c (contains_ccmode_rtx_p): New function.
+ (insn_valid_noce_process_p): Use it.
+
+2015-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
PR rtl-optimization/67456
PR rtl-optimization/67464
PR rtl-optimization/67465
return FALSE;
}
+/* Return true if X contains a conditional code mode rtx. */
+
+static bool
+contains_ccmode_rtx_p (rtx x)
+{
+ subrtx_iterator::array_type array;
+ FOR_EACH_SUBRTX (iter, array, x, ALL)
+ if (GET_MODE_CLASS (GET_MODE (*iter)) == MODE_CC)
+ return true;
+
+ return false;
+}
+
/* Helper for bb_valid_for_noce_process_p. Validate that
the rtx insn INSN is a single set that does not set
the conditional register CC and is in general valid for
/* Currently support only simple single sets in test_bb. */
if (!sset
|| !noce_operand_ok (SET_DEST (sset))
+ || contains_ccmode_rtx_p (SET_DEST (sset))
|| !noce_operand_ok (SET_SRC (sset)))
return false;