]> granicus.if.org Git - llvm/commit
[AArch64][SVE] Implement unpack intrinsics
authorKerry McLaughlin <kerry.mclaughlin@arm.com>
Fri, 18 Oct 2019 09:40:16 +0000 (09:40 +0000)
committerKerry McLaughlin <kerry.mclaughlin@arm.com>
Fri, 18 Oct 2019 09:40:16 +0000 (09:40 +0000)
commit9d9055cfe2e0e8a48be86cf935b1d8399e043586
tree8eea2e4df618d1fe3567dbf76c4feb845f2af0c5
parentc395575313286953895f32bddfe2ef35cd2fb51a
[AArch64][SVE] Implement unpack intrinsics

Summary:
Implements the following intrinsics:
  - int_aarch64_sve_sunpkhi
  - int_aarch64_sve_sunpklo
  - int_aarch64_sve_uunpkhi
  - int_aarch64_sve_uunpklo

This patch also adds AArch64ISD nodes for UNPK instead of implementing
the intrinsics directly, as they are required for a future patch which
implements the sign/zero extension of legal vectors.

This patch includes tests for the Subdivide2Argument type added by D67549

Reviewers: sdesmalen, SjoerdMeijer, greened, rengolin, rovka

Reviewed By: greened

Subscribers: tschuett, kristof.beyls, rkruppe, psnobl, cfe-commits, llvm-commits

Differential Revision: https://reviews.llvm.org/D67550

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@375210 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/IntrinsicsAArch64.td
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/AArch64/AArch64ISelLowering.h
lib/Target/AArch64/AArch64InstrInfo.td
lib/Target/AArch64/AArch64SVEInstrInfo.td
lib/Target/AArch64/SVEInstrFormats.td
test/CodeGen/AArch64/sve-intrinsics-perm-select.ll [new file with mode: 0644]