[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