[PATCH] D127210: [AArch64][SME] Add load/store intrinsics
Paul Walker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 8 05:20:48 PDT 2022
paulwalker-arm added inline comments.
================
Comment at: llvm/include/llvm/IR/IntrinsicsAArch64.td:2603
+ : DefaultAttrsIntrinsic<[],
+ [llvm_nxv16i1_ty, LLVMPointerType<llvm_i128_ty>, llvm_i64_ty, llvm_i32_ty], []>;
+
----------------
david-arm wrote:
> paulwalker-arm wrote:
> > Given the transition to opaque pointers, should we be using such specific pointer types or can we just use llvm_ptr_ty instead?
> Is that the same thing as an opaque pointer though? Looking at one example here:
>
> def int_aarch64_ldxp : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_ptr_ty],
> [IntrNoFree, IntrWillReturn]>;
>
> it seems like it just means a i8* pointer, judging by the codegen tests in CodeGen/AArch64/arm64-ldxr-stxr.ll:
>
> declare %0 @llvm.aarch64.ldxp(i8*) nounwind
>
> It's also implied in the definition:
>
> Intrinsics.td:def llvm_ptr_ty : LLVMPointerType<llvm_i8_ty>; // i8*
In truth I don't know. I did look to see if there was an opaque pointer def before posting my original comment but couldn't find anything. So I'm assuming that in the future `llvm_ptr_ty` will be the canonical representation for a pointer (given it's name). For these intrinsics the important point is that we don't attach any meaning to the pointer operands and thus `llvm_ptr_ty` seems like the better fit?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D127210/new/
https://reviews.llvm.org/D127210
More information about the llvm-commits
mailing list