llvm-project/llvm/test/Verifier
Cullen Rhodes 2ba5d64a80 [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
..
AMDGPU AMDGPU: Fix missing immarg for mfma intrinsics 2019-07-16 17:22:21 +00:00
ARM ARM: Fix missing immarg for space intrinsic 2019-07-16 22:41:38 +00:00
Mips Mips: Add ImmArg to intrinsics 2019-03-13 19:07:59 +00:00
SystemZ [SystemZ] Add support for new cpu architecture - arch13 2019-07-12 18:13:16 +00:00
2002-04-13-RetTypes.ll
2002-11-05-GetelementptrPointers.ll
2004-05-21-SwitchConstantMismatch.ll
2006-07-11-StoreStruct.ll
2006-10-15-AddrLabel.ll
2006-12-12-IntrinsicDefine.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
2007-12-21-InvokeParamAttrs.ll
2008-01-11-VarargAttrs.ll
2008-03-01-AllocaSized.ll
2008-11-15-RetVoid.ll
2009-05-29-InvokeResult1.ll
2009-05-29-InvokeResult2.ll
2009-05-29-InvokeResult3.ll
2010-08-07-PointerIntrinsic.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
AmbiguousPhi.ll
DIFile.ll [DebugInfo] Unify ChecksumKind and Checksum value in DIFile 2018-02-12 19:45:54 +00:00
DILocation-parents.ll
DILocation-scope.ll Verifier: verify that a DILocation's scope is a DILocalScope. 2018-08-24 21:01:58 +00:00
DISubprogram.ll
PhiGrouping.ll
README.txt
SelfReferential.ll
alias.ll
align-md.ll
alloc-size-failedparse.ll
allocsize.ll
amdgpu-cc.ll
atomics.ll
bitcast-address-space-nested-global-cycle.ll
bitcast-address-space-nested-global.ll
bitcast-address-space-through-constant-inttoptr-inside-gep-instruction.ll
bitcast-address-space-through-constant-inttoptr.ll
bitcast-address-space-through-gep-2.ll
bitcast-address-space-through-gep.ll
bitcast-address-space-through-inttoptr.ll
bitcast-address-spaces.ll
bitcast-alias-address-space.ll
bitcast-pointer-vector-neg.ll [IR Verifier] Do not allow bitcast of pointer to vector of pointers and vice versa. 2018-08-21 04:27:07 +00:00
bitcast-vector-pointer-as-neg.ll [IR Verifier] Do not allow bitcast of pointer to vector of pointers and vice versa. 2018-08-21 04:27:07 +00:00
bitcast-vector-pointer-as.ll
bitcast-vector-pointer-neg.ll [IR Verifier] Do not allow bitcast of pointer to vector of pointers and vice versa. 2018-08-21 04:27:07 +00:00
bitcast-vector-pointer-pos.ll [IR Verifier] Do not allow bitcast of pointer to vector of pointers and vice versa. 2018-08-21 04:27:07 +00:00
blockbyref.ll Remove addBlockByrefAddress(), it is dead code as far as clang is concerned. 2018-09-08 00:21:55 +00:00
byval-1.ll
byval-4.ll
callsite-dbgloc.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
cc-flags.ll
comdat-decl1.ll
comdat-decl2.ll
comdat.ll
comdat2.ll IR: Disable verifier check for GlobalValues with private linkage named after a comdat for non-COFF. 2019-08-06 21:47:18 +00:00
comdat3.ll
commandline-meta1.ll Implement -frecord-command-line (-frecord-gcc-switches) 2018-12-14 15:38:15 +00:00
commandline-meta2.ll Implement -frecord-command-line (-frecord-gcc-switches) 2018-12-14 15:38:15 +00:00
commandline-meta3.ll Implement -frecord-command-line (-frecord-gcc-switches) 2018-12-14 15:38:15 +00:00
commandline-meta4.ll Implement -frecord-command-line (-frecord-gcc-switches) 2018-12-14 15:38:15 +00:00
cttz-undef-arg.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
dbg-difile-crash.ll
dbg-invalid-compileunit.ll
dbg-invalid-named-metadata.ll
dbg-invalid-retaintypes.ll
dbg-invalid-vector.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
dbg-line-without-file.ll
dbg-null-retained-type.ll
dbg-orphaned-compileunit.ll
dbg-typerefs.ll
dbg.ll
deoptimize-intrinsic.ll
dereferenceable-md-inttoptr.ll [IR][Verifier] Allow IntToPtrInst to be !dereferenceable 2019-07-23 17:19:56 +00:00
dereferenceable-md.ll [IR][Verifier] Allow IntToPtrInst to be !dereferenceable 2019-07-23 17:19:56 +00:00
di-subroutine-localvar.ll [Verifier] Reject invalid type for DILocalVariable. 2019-01-07 23:09:09 +00:00
diderivedtype-address-space-atomic-type.ll
diderivedtype-address-space-const-type.ll
diderivedtype-address-space-friend.ll
diderivedtype-address-space-inheritance.ll
diderivedtype-address-space-member.ll
diderivedtype-address-space-ptr-to-member-type.ll
diderivedtype-address-space-restrict-type.ll
diderivedtype-address-space-rvalue-reference-type.ll Debug Info: Support address space attributes on rvalue references. 2019-05-07 17:42:38 +00:00
diderivedtype-address-space-typedef.ll
diderivedtype-address-space-volatile-type.ll
diexpression-entry-value.ll [DWARF] Handle the DW_OP_entry_value operand 2019-06-27 13:52:34 +00:00
diexpression-swap.ll
diexpression-valid-entry-value.ll [DWARF] Handle the DW_OP_entry_value operand 2019-06-27 13:52:34 +00:00
diglobalvariable.ll
dominates.ll
element-wise-atomic-memory-intrinsics.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
fnarg-debuginfo.ll
fnarg-nodebug.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
fp-intrinsics.ll [FunctionAttrs] Annotate "willreturn" for intrinsics 2019-07-28 06:09:56 +00:00
fpmath.ll
fragment.ll
frameescape.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
func-dbg.ll
function-metadata-bad.ll
function-metadata-good.ll
gc_relocate_addrspace.ll
gc_relocate_operand.ll
gc_relocate_return.ll
gcread-ptrptr.ll
gcroot.ll Replace gcroot verifier tests 2019-02-14 22:41:01 +00:00
gcwrite-ptrptr.ll
global-ctors-2.ll [IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format 2019-05-15 02:35:32 +00:00
global-ctors.ll
guard-intrinsic.ll
ident-meta1.ll
ident-meta2.ll
ident-meta3.ll
ident-meta4.ll
immarg-param-attribute-invalid.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
inalloca-vararg.ll
inalloca1.ll
inalloca2.ll
inalloca3.ll
intrinsic-arg-overloading-struct-ret.ll Test forward references in IntrinsicEmitter on Neon LD(2|3|4) 2019-06-17 12:01:53 +00:00
intrinsic-bad-arg-type.ll [IntrinsicEmitter] Support scalable vectors in intrinsics 2019-08-27 12:57:09 +00:00
intrinsic-immarg.ll Allow prefetching from non-zero address spaces 2019-07-25 16:11:57 +00:00
invalid-disubrange-count-node.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
invalid-eh.ll Change "UNSUPPORTED: windows" to be "UNSUPPORTED: system-windows" so that test is actually skipped on Windows. 2018-02-08 18:45:16 +00:00
invalid-statepoint.ll
invalid-statepoint2.ll
invoke.ll
jumptable.ll
llvm.compiler_used-invalid-type.ll
llvm.dbg.declare-address.ll
llvm.dbg.declare-expression.ll
llvm.dbg.declare-variable.ll
llvm.dbg.intrinsic-dbg-attachment.ll Verifier: fix bug treating debug info issue as non-debug info issue 2018-01-23 16:11:15 +00:00
llvm.dbg.value-expression.ll
llvm.dbg.value-value.ll
llvm.dbg.value-variable.ll
llvm.loop.ll Add debug location verification for !llvm.loop attachments. 2019-06-18 20:09:09 +00:00
llvm.used-invalid-init.ll
llvm.used-invalid-init2.ll
llvm.used-invalid-type.ll
llvm.used-invalid-type2.ll
llvm.used-ptr-type.ll
masked-load.ll Verifier: Make sure masked load/store alignment is a power of 2 2019-03-13 19:46:34 +00:00
masked-store.ll Verifier: Make sure masked load/store alignment is a power of 2 2019-03-13 19:46:34 +00:00
mdcompositetype-templateparams-tuple.ll
mdcompositetype-templateparams.ll
memcpy.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
metadata-function-dbg.ll [IR] Add DISuprogram and DIE for a func decl 2019-06-27 06:07:41 +00:00
metadata-function-prof.ll
module-flags-1.ll
module-flags-2.ll
module-flags-3.ll
module-flags-cgprofile.ll Recommit r335794 "Add support for generating a call graph profile from Branch Frequency Info." with fix for removed functions. 2018-07-16 00:28:24 +00:00
musttail-invalid.ll Tweak an assert message in the verifier 2018-04-06 10:20:19 +00:00
musttail-valid.ll
non-integer-gep-index.ll
non-integer-gep-index.ll.bc
non-integral-pointers.ll
operand-bundles.ll
pr34325.ll
range-1.ll
range-2.ll
recursive-struct-param.ll
recursive-type-1.ll
recursive-type-2.ll
recursive-type-3.ll
resume.ll
scalable-global-vars.ll Scalable Vector IR Type with further LTO fixes 2019-07-05 12:48:16 +00:00
scatter_gather.ll
speculatable-callsite-invalid.ll
speculatable-callsite.ll
sret.ll
statepoint.ll [IRVerifier] Allow StructRet in statepoint 2018-11-16 14:28:05 +00:00
swifterror.ll
swifterror2.ll
swifterror3.ll
swiftself.ll
tbaa-allowed.ll
tbaa.ll
token1.ll
token2.ll
token3.ll
token4.ll
token5.ll
token6.ll
token7.ll
unsized-types.ll
varargs-intrinsic.ll
variant-part.ll Add DWARF for discriminated unions 2018-02-06 23:45:59 +00:00
writeonly.ll

README.txt

This directory contains testcases that the verifier is supposed to detect as
malformed LLVM code.  Testcases for situations that the verifier incorrectly
identifies as malformed should go in the test/Assembler directory.