https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112545
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=110932 --- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Jeffrey A. Law from comment #5) > So I've been pondering this a bit and I think there's a reasonable path > forward here. > > Given something like A eq/ne (A relop C) we ought to be able to cobble > together a match.pd pattern which tests the possibilities and simplifies the > code. > > If we think about the EQ case. We just need to test 0 EQ (0 relop C) and 1 > EQ (1 relop C). If both are false, then the entire condition is false. If > only one of them is true, then we can simplify to A == 0 or A == 1 depending > on which was true. If both are true, then it simplifies to (unsigned) A <= > 1. > > We can construct something roughtly similar for NE. That is basically what I mentioned in PR 110932 and also recorded in PR 110293 :).