[clang] [llvm] [AArch64][clang][llvm] Add ACLE Armv9.7 lookup table intrinsics (PR #187046)
Jonathan Thackray via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 12 04:31:08 PDT 2026
================
@@ -1371,13 +1370,28 @@ let TargetPrefix = "aarch64" in { // All intrinsics start with "llvm.aarch64.".
LLVMVectorOfBitcastsToInt<0>],
!listconcat(Attrs, [IntrNoMem])>;
- class SVE2_LUTI_Inrinsic<list<IntrinsicProperty> Attrs = []>
+ class SVE2_LUTI_Intrinsic<list<IntrinsicProperty> Attrs = []>
: DefaultAttrsIntrinsic<[llvm_anyvector_ty],
[LLVMMatchType<0>,
llvm_nxv16i8_ty,
llvm_i32_ty],
!listconcat(Attrs, [IntrNoMem, ImmArg<ArgIndex<2>>])>;
+ class SVE2_LUTI_X2_Intrinsic<list<IntrinsicProperty> Attrs = []>
+ : DefaultAttrsIntrinsic<[llvm_anyvector_ty],
+ [LLVMMatchType<0>,
+ LLVMMatchType<0>,
+ llvm_nxv16i8_ty,
+ llvm_i32_ty],
+ !listconcat(Attrs, [IntrNoMem, ImmArg<ArgIndex<3>>])>;
----------------
jthackray wrote:
The other `SVE_LUTI*_Intrinsic*`s nearby also use `!listconcat`, so we're following the same pattern. They all pass `IntrSpeculatable` (as do **loads** of other intrinsics). So I think to change this would require a much larger refactor of code. We're consistent here with other code, but it could be changed in future.
https://github.com/llvm/llvm-project/pull/187046
More information about the cfe-commits
mailing list