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

--- Comment #4 from Daniel Petrovic <daniel-dev at hotmail dot de> ---
The following generalizatin applies:

let op = { |, ^ }

Case 1:

 (a op b) <=//> C <=> b <=//> C

  if:
   a = 2^m-1
   a & C = a (all lower m bits are set in C)


Case 2:

 (a op b) <//>= C <=> b <//>= C

 if:
  a = 2^m-1
  a & C == 0 (all lower m bits are cleared in C)

Reply via email to