This patch adds the LLVM IR intrinsics for the following:
- zip (2 and 4 vectors, 8 to 64-bit elements) - aarch64.sve.zip.*
- zip (2 and 4 vectors, 128-bit elements) - aarch64.sve.zipq.*
- uzp (2 and 4 vectors, 8 to 64-bit elements) - aarch64.sve.uzp.*
- uzp (2 and 4 vectors, 128-bit elements) - aarch64.sve.uzpq.*
I have created separate intrinsics for the 128-bit variants
in a similar way to what was done for int_aarch64_sme_readq_horiz.
This permits us to use any vector type (<vscale x 16 x i8>, etc.)
for the 128-bit versions.
I have also named the tests sve2p1-intrinsics-* because although
the instructions are added as part of the SME2 feature they only
operate on SVE vectors.
NOTE: These intrinsics are still in development and are subject to future changes.
Can you please add an %unused argument to these tests, to make sure the lists start at multiples of 4?