1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/unittests/IR
Cullen Rhodes b3e8c4675d [IntrinsicEmitter] Support scalable vectors in intrinsics
Summary:
This patch adds support for scalable vectors in intrinsics, enabling
intrinsics such as the following to be defined:

    declare <vscale x 4 x i32> @llvm.something.nxv4i32(<vscale x 4 x i32>)

Support for this is implemented by defining a new type descriptor for
scalable vectors and adding mangling support for scalable vector types
in the name mangling scheme used by 'any' types in intrinsic signatures.

Tests have been added for IRBuilder to test scalable vectors work as
expected when using intrinsics through this interface. This required
implementing an intrinsic that is explicitly defined with scalable
vectors, e.g.  LLVMType<nxv4i32>, an SVE floating-point convert
intrinsic was used for this.  The behaviour of the overloaded type
LLVMScalarOrSameVectorWidth with scalable vectors is tested using the
existing masked load intrinsic. Also added an .ll test to test the
Verifier catches a bad intrinsic argument when passing a fixed-width
predicate (mask) to the masked.load intrinsic where a scalable is
expected.

Patch by Paul Walker

Reviewed By: sdesmalen

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

llvm-svn: 370053
2019-08-27 12:57:09 +00:00
..
AsmWriterTest.cpp IR: Cleanup after test to silence ASAN builds 2019-08-03 15:40:00 +00:00
AttributesTest.cpp
BasicBlockTest.cpp
CFGBuilder.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
CFGBuilder.h
CMakeLists.txt
ConstantRangeTest.cpp
ConstantsTest.cpp
DataLayoutTest.cpp [LLVM][Alignment] Introduce Alignment Type in DataLayout 2019-08-05 09:00:43 +00:00
DebugInfoTest.cpp
DebugTypeODRUniquingTest.cpp
DominatorTreeBatchUpdatesTest.cpp
DominatorTreeTest.cpp
FunctionTest.cpp [IR] Add getArg() method to Function class 2019-08-01 15:31:40 +00:00
InstructionsTest.cpp Prepare for making SwitchInstProfUpdateWrapper strict 2019-07-09 05:07:28 +00:00
IntrinsicsTest.cpp
IRBuilderTest.cpp [IntrinsicEmitter] Support scalable vectors in intrinsics 2019-08-27 12:57:09 +00:00
LegacyPassManagerTest.cpp
ManglerTest.cpp
MDBuilderTest.cpp
MetadataTest.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
ModuleTest.cpp
PassBuilderCallbacksTest.cpp
PassManagerTest.cpp
PatternMatch.cpp [IR][PatternMatch] Introduce m_NegatedPower2() matcher 2019-07-25 13:34:24 +00:00
TimePassesTest.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
TypesTest.cpp
UserTest.cpp
UseTest.cpp
ValueHandleTest.cpp
ValueMapTest.cpp Replace non-recursive sys::Mutex users with std::mutex 2019-08-07 11:59:44 +00:00
ValueTest.cpp [LLVM][Alignment] Introduce Alignment In GlobalObject 2019-08-06 09:03:21 +00:00
VectorTypesTest.cpp
VerifierTest.cpp
WaymarkTest.cpp