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.