This patch adds vector-scalar variants to the following families of
MVE intrinsics:
- vaddq
- vsubq
- vmulq
- vqaddq
- vqsubq
- vhaddq
- vhsubq
- vqdmulhq
- vqrdmulhq
The vector-scalar variants perform a splat operation on the scalar
operand and then perform the same operations as their vector-vector
counterparts. Code generation is done accordingly (using LLVM IR 'insert'
and 'shuffle' operations which are later converted into an ARMvdup
SDNode).
Why is this running the entire -O1 pass pipeline? These tests deliberately uses a limit subset to not need adjusting with every midend llvm change. (But not be littered with clang's verbose ir output).
I'm guessing the half args are being a pain again. Is it something to do with halfs?