[PATCH] D127210: [AArch64][SME] Add load/store intrinsics

Amara Emerson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 8 09:56:45 PDT 2022


aemerson added subscribers: t.p.northover, aemerson.
aemerson 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], []>;
+
----------------
paulwalker-arm wrote:
> 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?
@t.p.northover What do you think? Are typed pointers obsolete now in tablegen?


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