This transforms:
select((C0 & C1), a, b) -> select(C0, select(C1, a, b), b)
select((C0 | C1), a, b) -> select(C0, a, select(C1, a, b))
The result is better on most targets as C0 and C1 do not need to be
materialized into an integer register but can stay flags.