https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115804
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |gaius at gcc dot gnu.org Component|tree-optimization |modula2 --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- /* X == C (or X & Z == Y | C) is impossible if ~nonzero(X) & C != 0. */ (for cmp (eq ne) (simplify (cmp:c (with_possible_nonzero_bits2 @0) (with_certain_nonzero_bits2 @1)) (if (wi::bit_and_not (wi::to_wide (@1), get_nonzero_bits (@0)) != 0) { constant_boolean_node (cmp == NE_EXPR, type); }))) Seems like the return type of __builtin_isfinite is wrong ...