[PATCH] D75154: [X86] Convert vXi1 vectors to xmm/ymm/zmm types via getRegisterTypeForCallingConv rather than using CCPromoteToType in the td file

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 4 14:05:27 PST 2020


rnk accepted this revision.
rnk added a comment.
This revision is now accepted and ready to land.

In D75154#1903631 <https://reviews.llvm.org/D75154#1903631>, @RKSimon wrote:

> @rnk Any comments? It makes sense to me but I don't know a lot about this area tbh.


Honestly, the conventions for passing vectors that don't fit into XMM regs are beyond me.

I just had a suggestion for tightening up the code, but otherwise, it seems fine to me.



================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:2133
+
+    // v2i1/v4i1/v8i1/v16i1 all pass in xmm registers unless the calling
+    // convention is one that uses k registers.
----------------
Can this be factored to share the logic? It looks structurally similar, and you could do `return {MTV::vNiM, 2}` and then have the caller pick the field that matters, type or number of registers.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D75154





More information about the llvm-commits mailing list