]> granicus.if.org Git - llvm/commit
[IntrinsicEmitter] Add overloaded types for SVE intrinsics (Subdivide2 & Subdivide4)
authorKerry McLaughlin <kerry.mclaughlin@arm.com>
Fri, 20 Sep 2019 09:48:21 +0000 (09:48 +0000)
committerKerry McLaughlin <kerry.mclaughlin@arm.com>
Fri, 20 Sep 2019 09:48:21 +0000 (09:48 +0000)
commitee9acd39001112574e3656c66921a26671a85dd1
tree0186d8453a4eac8bf02f68376d74a27eac52f64a
parent61ae041759fb05200b78a740fd1215bd9ee43b58
[IntrinsicEmitter] Add overloaded types for SVE intrinsics (Subdivide2 & Subdivide4)

Summary:
Both match the type of another intrinsic parameter of a vector type, but where each element is subdivided to form a vector with more elements of a smaller type.

Subdivide2Argument allows intrinsics such as the following to be defined:
 - declare <vscale x 4 x i32> @llvm.something.nxv4i32(<vscale x 8 x i16>)

Subdivide4Argument allows intrinsics such as:
 - declare <vscale x 4 x i32> @llvm.something.nxv4i32(<vscale x 16 x i8>)

Tests are included in follow up patches which add intrinsics using these types.

Reviewers: sdesmalen, SjoerdMeijer, greened, rovka

Reviewed By: sdesmalen

Subscribers: rovka, tschuett, jdoerfert, cfe-commits, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@372380 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/DerivedTypes.h
include/llvm/IR/Intrinsics.h
include/llvm/IR/Intrinsics.td
lib/IR/Function.cpp
utils/TableGen/IntrinsicEmitter.cpp