------- Comment #8 from nemet at gcc dot gnu dot org 2008-09-11 21:46 -------
It's caused by this http://gcc.gnu.org/ml/gcc-patches/2008-08/msg02376.html.
In this hunk:
@@ -1901,7 +1904,8 @@ noce_try_sign_mask (struct noce_if_info
INSN_B which can happen for e.g. conditional stores to memory. */
b_unconditional = (if_info->insn_b == NULL_RTX
|| BLOCK_FOR_INSN (if_info->insn_b) == if_info->test_bb);
- if (rtx_cost (t, SET) >= COSTS_N_INSNS (2)
+ if (rtx_cost (t, SET, optimize_bb_for_speed_p (BLOCK_FOR_INSN
(if_info->insn_b)))
+ >= COSTS_N_INSNS (2)
&& (!b_unconditional
|| t != if_info->b))
return FALSE;
if_info->insn_b is allowed to be null.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37395