Add new fold for:
`(and/or (icmp ne/eq X,0),(icmp ne/eq X,NegPow2))` -> `(icmp ne/eq (and -X, ~(-NegPow2)), 0)`
This is really an extension of the generic pattern we already support:
`(and/or (icmp ne/eq X,C0),(icmp ne/eq X,C1))` -> iff `absdif(C0, C1).ispow2` `(icmp ne/eq (and (sub X, smin(C0, C1)), ~absdif(C0, C1)), 0)`
But negation can be faster than adding a constant, especially for
vectors where creating a zero constant can be meaningfully faster.