[PATCH] D105591: [AArch64][SelectionDAG] Support passing/returning scalable vectors with unusual types.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 7 13:54:13 PDT 2021


efriedma created this revision.
efriedma added reviewers: sdesmalen, paulwalker-arm, DylanFleming-arm, david-arm, craig.topper.
Herald added subscribers: ecnelises, danielkiss, hiraditya, kristof.beyls.
efriedma requested review of this revision.
Herald added a project: LLVM.

This adds handling for two cases:

1. A scalable vector where the element type is promoted.
2. A scalable vector where the element count is odd (or more generally, not divisble by the element count of the part type).

(Some element types still don't work; for example, <vscale x 2 x i128>, or <vscale x 2 x fp128>.)

The change to SplitVecRes_INSERT_SUBVECTOR needs to be considered in the context of the discussion of "widening" a scalable vector.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D105591

Files:
  llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  llvm/lib/CodeGen/TargetLoweringBase.cpp
  llvm/test/CodeGen/AArch64/sve-breakdown-scalable-vectortype.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D105591.357068.patch
Type: text/x-patch
Size: 10989 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210707/5a4592ca/attachment.bin>


More information about the llvm-commits mailing list