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 ...

Reply via email to