[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)
commit22a8f35ce0ed2b47934df458966a90509fd7f25a
treea62730092c268c2f4e3b47d4ea2828b714c548c7
parent0ecf34dde3904079dc0f7b0569494c7118d9f08d
[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

llvm-svn: 372380
llvm/include/llvm/IR/DerivedTypes.h
llvm/include/llvm/IR/Intrinsics.h
llvm/include/llvm/IR/Intrinsics.td
llvm/lib/IR/Function.cpp
llvm/utils/TableGen/IntrinsicEmitter.cpp