================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits