The following intrinsics are added:
- @llvm.aarch64.sve.ldff1.gather
- @llvm.aarch64.sve.ldff1.gather.index
- @llvm.aarch64.sve.ldff1.gather_sxtw
- @llvm.aarch64.sve.ldff1.gather.uxtw
- @llvm.aarch64.sve.ldff1.gather_sxtw.index
- @llvm.aarch64.sve.ldff1.gather.uxtw.index
- @llvm.aarch64.sve.ldff1.gather.scalar.offset
Although this patch is quite substantial, the vast majority of the
implementation is just a 'copy & paste' of the implementation of regular
gather loads, including tests. There's only a handful of new
definitions:
- AArch64ISD nodes defined in AArch64ISelLowering.h (e.g. GLDFF1)
- Seleciton DAG Types in AArch64SVEInstrInfo.td (e.g. AArch64ldff1_gather)
- intrinsics in IntrinsicsAArch64.td (e.g. aarch64_sve_ldff1_gather)