summaryrefslogtreecommitdiff
path: root/test/TableGen
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2013-10-31 17:18:11 +0000
committerAndrew Trick <atrick@apple.com>2013-10-31 17:18:11 +0000
commit2e50b8a08d40ce72ae35c73528140d3ee25209e0 (patch)
treee15491d43320ca7a059db16deb2931bbaa63822a /test/TableGen
parentcf940ceff73f567876f1a1f62d3acbf67c43ea90 (diff)
downloadllvm-2e50b8a08d40ce72ae35c73528140d3ee25209e0.tar.gz
llvm-2e50b8a08d40ce72ae35c73528140d3ee25209e0.tar.bz2
llvm-2e50b8a08d40ce72ae35c73528140d3ee25209e0.tar.xz
Enable variable arguments support for intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193766 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/TableGen')
-rw-r--r--test/TableGen/intrinsic-varargs.td29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/TableGen/intrinsic-varargs.td b/test/TableGen/intrinsic-varargs.td
new file mode 100644
index 0000000000..ec1fd35829
--- /dev/null
+++ b/test/TableGen/intrinsic-varargs.td
@@ -0,0 +1,29 @@
+// RUN: llvm-tblgen -gen-intrinsic %s | FileCheck %s
+
+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]>;