https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118012
--- Comment #12 from Georg-Johann Lay <gjl at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #9) > match patterns should almost never be conditional unless The pattern in question was introdiced as optimization, not as canonicalization. I don't think that optimizations should implicitly assume that code that's good on x86_64 is good on all other 50 targates that GCC supports. And with a canonical form you have the problem that you'll have to support is in 2 different places and have to keep them in sync: In match.pd and then in RTL lowering. When somebody comes around with "hey, lets introduce this smart representation to tweak benchark xyz on platform abc by a whopping 0.001%", then the change will happen only to match.pd and the rest probably forgotten, or it's unknown that it needs adjustments, too.