https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92475
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Known to work| |7.4.0 Keywords| |wrong-code Last reconfirmed| |2019-11-12 CC| |glisse at gcc dot gnu.org Ever confirmed|0 |1 Summary|incorrect code with |[8/9/10 Regression] |optimization |incorrect code with | |optimization Known to fail| |10.0, 8.3.0, 9.2.0 --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- Started with r248447: Move "(A & C) == D is false when D & ~C != 0" to match.pd 2017-05-25 Marc Glisse * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation. * match.pd (X == C): Rewrite it here. (with_possible_nonzero_bits, with_possible_nonzero_bits2, with_certain_nonzero_bits2): New predicates. * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.