summaryrefslogtreecommitdiffstats
path: root/llvm/test/TableGen/cond-usage.td
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/TableGen/cond-usage.td')
-rw-r--r--llvm/test/TableGen/cond-usage.td29
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/test/TableGen/cond-usage.td b/llvm/test/TableGen/cond-usage.td
new file mode 100644
index 00000000000..055fd6d7c69
--- /dev/null
+++ b/llvm/test/TableGen/cond-usage.td
@@ -0,0 +1,29 @@
+// RUN: llvm-tblgen %s | FileCheck %s
+// XFAIL: vg_leak
+
+// Check that !cond picks the first true value
+// CHECK: class A
+// CHECK-NEXT: string S = !cond(!eq(A:x, 10): "ten", !eq(A:x, 11): "eleven", !eq(A:x, 10): "TEN", !gt(A:x, 9): "MoreThanNine", 1: "unknown");
+// CHECK: B1
+// CHECK-NEXT: string S = "unknown"
+// CHECK: B10
+// CHECK-NEXT: string S = "ten";
+// CHECK: def B11
+// CHECK-NEXT: string S = "eleven";
+// CHECK: def B12
+// CHECK-NEXT: string S = "MoreThanNine";
+// CHECK: def B9
+// CHECK-NEXT: string S = "unknown"
+
+class A<int x> {
+ string S = !cond(!eq(x,10) : "ten",
+ !eq(x,11) : "eleven",
+ !eq(x,10) : "TEN",
+ !gt(x,9) : "MoreThanNine",
+ !eq(1,1) : "unknown");
+}
+def B1 : A<1>;
+def B9 : A<9>;
+def B10 : A<10>;
+def B11 : A<11>;
+def B12 : A<12>;
OpenPOWER on IntegriCloud