http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58158
--- Comment #14 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Richard Henderson from comment #13) > (In reply to Tom Li from comment #12) > > { > > + if (!ISA_HAS_FP_CONDMOVE && > > + GET_MODE_CLASS (GET_MODE (XEXP (operands[1], 0))) != MODE_INT) > > + FAIL; > > The patch is clearly wrong. It's attempting to look through > a subreg around operands[1], but of course that subreg will > not always exist. Actually it is correct as operands[1] will be an comparison_operator which always have two operands itself.