This patch adds custom lowering support for ISD::MUL with v1i64 and v2i64
types when SVE is enabled, regardless of the minimum SVE vector length. We
do this because NEON simply does not have 64-bit vector multiplies, so we
want to take advantage of these instructions in SVE.
I've updated the 128-bit min SVE vector bits tests here:
CodeGen/AArch64/sve-fixed-length-int-arith.ll CodeGen/AArch64/sve-fixed-length-int-mulh.ll CodeGen/AArch64/sve-fixed-length-int-rem.ll
I find this quite confusing, because I would expect useSVEForFixedLengthVectorVT to return true when OverrideNEON is specified and SVE is enabled.
Personally I'd rather see you reintroducing the enum like you originally added in https://reviews.llvm.org/D117871?id=401931#inline-1127609 so that we can progressively migrate away from the OnlyIfSVEGreaterThan128Bits and replace this with Always, at which point we can do away with the function altogether. But at least it will be easier to search for cases to fix.
@paulwalker-arm do you have any strong opinions here?