diff options
Diffstat (limited to 'test/TableGen/intrinsic-varargs.td')
-rw-r--r-- | test/TableGen/intrinsic-varargs.td | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/TableGen/intrinsic-varargs.td b/test/TableGen/intrinsic-varargs.td new file mode 100644 index 000000000000..3e48f8da33bf --- /dev/null +++ b/test/TableGen/intrinsic-varargs.td @@ -0,0 +1,30 @@ +// RUN: llvm-tblgen -gen-intrinsic %s | FileCheck %s +// XFAIL: vg_leak + +class IntrinsicProperty; + +class ValueType<int size, int value> { + string Namespace = "MVT"; + int Size = size; + int Value = value; +} + +class LLVMType<ValueType vt> { + ValueType VT = vt; +} + +class Intrinsic<string name, list<LLVMType> param_types = []> { + string LLVMName = name; + bit isTarget = 0; + string TargetPrefix = ""; + list<LLVMType> RetTypes = []; + list<LLVMType> ParamTypes = param_types; + list<IntrinsicProperty> Properties = []; +} + +// isVoid needs to match the definition in ValueTypes.td +def isVoid : ValueType<0, 56>; // Produces no value +def llvm_vararg_ty : LLVMType<isVoid>; // this means vararg here + +// CHECK: /* 0 */ 0, 27, 0, +def int_foo : Intrinsic<"llvm.foo", [llvm_vararg_ty]>; |