This combine transforms things like
and w8, w0, #0xfffffff0 movz w9, #5 orr w0, w8, w9
to
movz w8, #5 bfxil w0, w8, #0, #4
The combine is tuned to make sure we always reduce the number of instructions. We avoid churning code for what is expected to be performance neutral changes (e.g., converted AND+OR to OR+BFI).
Please take a look,
Chad
NotKnownZero might be a clearer name for this, or just get rid of it and use ~KnownZeroBits instead.