[PATCH] D128665: [AArch64] Make nxv1i1 types a legal type for SVE.

Sander de Smalen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 1 08:13:06 PDT 2022


sdesmalen added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64CallingConvention.td:87-88
            CCAssignToReg<[P0, P1, P2, P3]>>,
-  CCIfType<[nxv2i1, nxv4i1, nxv8i1, nxv16i1],
+  CCIfType<[nxv1i1, nxv2i1, nxv4i1, nxv8i1, nxv16i1],
            CCPassIndirect<i64>>,
 
----------------
paulwalker-arm wrote:
> This is not relevant to this patch just observational.
> 
> For my own education do you know what this means? If I was to guess I'd say "we can pass such parameter types through memory"? If correct then I believe we only support nxv16i1 types when going throw memory.
> 
> 
Yes, that's what it means. Fortunately it's not something we'll currently hit from user code, because that will always use `<vscale x 16 x i1>` types for svbool_t, but I guess we should clean this up at some point.


================
Comment at: llvm/lib/Target/AArch64/SVEInstrFormats.td:6205
   def : SVE_1_Op_Pat<nxv2i1, op, nxv4i1,  !cast<Instruction>(NAME)>;
+  def : SVE_1_Op_Pat<nxv1i1, op, nxv2i1,  !cast<Instruction>(NAME)>;
 }
----------------
paulwalker-arm wrote:
> Do we still need this change?
Nope, good catch, I'll remove it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D128665/new/

https://reviews.llvm.org/D128665



More information about the llvm-commits mailing list