[PATCH] D93755: [VE][isel] Map EVT vectors to vector registers.

Simon Moll via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 23 03:09:48 PST 2020


simoll created this revision.
simoll added reviewers: kaz7, k-ishizaka.
simoll added a project: VE.
Herald added a subscriber: hiraditya.
simoll requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

1. Let targets specify their own conversion for EVTs.
2. Use this to map (almost all) vector EVTs to vector register for the VE target. Also use this across function calls in the 'fastcc'.

Without this patch, isel scalarizes "weird" vector types such as `<17 x i16>`. This is not really an option for long-vector architectures such as SX-Aurora. This patch adds a custom callback to let the target decide to map also those EVTs to vector registers.

The VE part of this patch depends on D93709 <https://reviews.llvm.org/D93709> (eg, for `vNi16` promotion).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D93755

Files:
  llvm/include/llvm/CodeGen/TargetLowering.h
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  llvm/lib/CodeGen/TargetLoweringBase.cpp
  llvm/lib/Target/VE/VEISelLowering.cpp
  llvm/lib/Target/VE/VEISelLowering.h
  llvm/test/CodeGen/VE/Vector/fastcc_callee.ll
  llvm/test/CodeGen/VE/Vector/fastcc_caller.ll
  llvm/test/CodeGen/VE/Vector/vec_add.ll
  llvm/test/CodeGen/VE/Vector/vec_and.ll
  llvm/test/CodeGen/VE/Vector/vec_broadcast.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D93755.313525.patch
Type: text/x-patch
Size: 62674 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201223/291cb5c2/attachment.bin>


More information about the llvm-commits mailing list