COMPRESS is good for cases where we construct a vector by picking
monotonically strictly increasing element indices from a source vector.
Due to the overhead of constructing the constant mask (mov
gpr,immediates + kmov k,gpr), we should prefer shuffle instruction with immediates over
COMRPESS (and possibly even shuffles which take the indices in a register
operand).
The pattern for shuffles is:
(shuffle (extract_subvector V, 0), (extract_subvector V, 4) <1, 3, 5, 7>)
-->
COMPRESS V, b01010101
and similarly:
build_vector (extractelt V, 1), (extractelt V, 3), (extractelt V, 5), extractelt (V, 7)
-->
COMPRESS V, b01010101