https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97887
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Uroš Bizjak from comment #3) > (In reply to Richard Biener from comment #2) > > combine first makes recog pick negsf2_i387_1: > > This should have the following insn constraint: > > "TARGET_80387 && !(SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH)" > > to hide it from combine in cases where relevant SSE mode is available. Hmm, it is ;; Changing of sign for FP values is doable using integer unit too. (define_insn "*<code><mode>2_i387_1" [(set (match_operand:X87MODEF 0 "register_operand" "=f,!r") (absneg:X87MODEF (match_operand:X87MODEF 1 "register_operand" "0,0"))) (clobber (reg:CC FLAGS_REG))] "TARGET_80387" "#") that is not guarded in this way?