This change attempts to shrink scalar AND, OR and XOR instructions which take an immediate that isn't inlineable.

It performs:

AND s0, s0, ~(1 << n) -> BITSET0 s0, n

OR s0, s0, (1 << n) -> BITSET1 s0, n

AND s0, s1, x -> ANDN2 s0, s1, ~x

OR s0, s1, x -> ORN2 s0, s1, ~x

XOR s0, s1, x -> XNOR s0, s1, ~x

In particular, this catches setting and clearing the sign bit for fabs (and x, 0x7ffffffff -> bitset0 x, 31 and or x, 0x80000000 -> bitset1 x, 31).