https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70547
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- /* (m1 CMP m2) * d -> (m1 CMP m2) ? d : 0 */ (for cmp (gt lt ge le) (simplify (mult (convert (cmp @0 @1)) @2) (cond (cmp @0 @1) @2 { build_zero_cst (type); }))) Should have caught that ... NOTE I think that might have been broken for floating point ....