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

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

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

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Daniel Petrovic from comment #4)
> The following generalizatin applies:
> 
> let op = { |, ^ }
> 
> Case 1:
> 
>  (a op b) <=//> C <=> b <=//> C
> 
>   if:
>    a = 2^m-1

If op is |, it can be actually anything with [0, 2^m-1] range and then check if
(2^m-1 & C) == 2^m-1 (but don't we need C to contain at least one bit above it
too?).  I'm not sure about the xor case.

Reply via email to