a & 1 is always a, if a is boolean. a | 1 is always 1, if a is boolean, but it can only be optimized out if a is side effect-free.
a & 1 is always a, if a is boolean. a | 1 is always 1, if a is boolean, but it can only be optimized out if a is side effect-free.