https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93131

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
We are still in stage3, why not do it now?
I don't see the point in handling &/== and |/!= in the same simplification when
you do something completely different for those.
Why not e.g.
(simplify
  (bit_and:c
   (eq (bit_and @0 INTEGER_CST@1) @1)
   (eq (bit_and @0 INTEGER_CST@2) @2))
  (eq (bit_and @0 (bit_ior @1 @2)) (bit_ior @1 @2)))
and something with integer_onep@2 for the bit_ior/ne?
Also, why do you treat &/== and |/!= differently?
I mean, if ((x&7)==7)&((x&13)==13) can be optimized into (x&15)==15, why can't
you optimize ((x&7)!=7)|((x&13)!=13) into (x&15)!=15?

Reply via email to