summaryrefslogtreecommitdiffstats
path: root/llvm/test/TableGen
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/TableGen')
-rw-r--r--llvm/test/TableGen/compare.td54
-rw-r--r--llvm/test/TableGen/eq.td20
-rw-r--r--llvm/test/TableGen/eqbit.td13
3 files changed, 83 insertions, 4 deletions
diff --git a/llvm/test/TableGen/compare.td b/llvm/test/TableGen/compare.td
new file mode 100644
index 00000000000..e54d853b9a6
--- /dev/null
+++ b/llvm/test/TableGen/compare.td
@@ -0,0 +1,54 @@
+// RUN: llvm-tblgen %s | FileCheck %s
+// XFAIL: vg_leak
+
+// CHECK: --- Defs ---
+
+// CHECK: def A0 {
+// CHECK: bit eq = 1;
+// CHECK: bit ne = 0;
+// CHECK: bit le = 1;
+// CHECK: bit lt = 0;
+// CHECK: bit ge = 1;
+// CHECK: bit gt = 0;
+// CHECK: }
+
+// CHECK: def A1 {
+// CHECK: bit eq = 0;
+// CHECK: bit ne = 1;
+// CHECK: bit le = 1;
+// CHECK: bit lt = 1;
+// CHECK: bit ge = 0;
+// CHECK: bit gt = 0;
+// CHECK: }
+
+// CHECK: def A2 {
+// CHECK: bit eq = 0;
+// CHECK: bit ne = 1;
+// CHECK: bit le = 0;
+// CHECK: bit lt = 0;
+// CHECK: bit ge = 1;
+// CHECK: bit gt = 1;
+// CHECK: }
+
+// CHECK: def A3 {
+// CHECK: bit eq = 0;
+// CHECK: bit ne = 1;
+// CHECK: bit le = 0;
+// CHECK: bit lt = 0;
+// CHECK: bit ge = 1;
+// CHECK: bit gt = 1;
+// CHECK: }
+
+class A<int x, int y> {
+ bit eq = !eq(x, y);
+ bit ne = !ne(x, y);
+ bit le = !le(x, y);
+ bit lt = !lt(x, y);
+ bit ge = !ge(x, y);
+ bit gt = !gt(x, y);
+}
+
+def A0 : A<-3, -3>;
+def A1 : A<-1, 4>;
+def A2 : A<3, -2>;
+def A3 : A<4, 2>;
diff --git a/llvm/test/TableGen/eq.td b/llvm/test/TableGen/eq.td
index f8daf880b9e..0cbbc8270a0 100644
--- a/llvm/test/TableGen/eq.td
+++ b/llvm/test/TableGen/eq.td
@@ -1,7 +1,18 @@
// RUN: llvm-tblgen %s | FileCheck %s
// XFAIL: vg_leak
-// CHECK: Value = 0
-// CHECK: Value = 1
+
+// CHECK-LABEL: def FALSE {
+// CHECK: int Value = 0;
+// CHECK: }
+
+// CHECK-LABEL: def TRUE {
+// CHECK: int Value = 1;
+// CHECK: }
+
+// CHECK-LABEL: def X_NE {
+// CHECK: bit a = 1;
+// CHECK: bit b = 0;
+// CHECK: }
class Base<int V> {
int Value = V;
@@ -12,3 +23,8 @@ class Derived<string Truth> :
def TRUE : Derived<"true">;
def FALSE : Derived<"false">;
+
+def X_NE {
+ bit a = !ne("true", "false");
+ bit b = !ne("foo", "foo");
+}
diff --git a/llvm/test/TableGen/eqbit.td b/llvm/test/TableGen/eqbit.td
index 1d58fa0c191..5749b27e26c 100644
--- a/llvm/test/TableGen/eqbit.td
+++ b/llvm/test/TableGen/eqbit.td
@@ -1,10 +1,19 @@
// RUN: llvm-tblgen %s | FileCheck %s
// XFAIL: vg_leak
-// CHECK: a = 6
-// CHECK: a = 5
+
+// CHECK-LABEL: def X {
+// CHECK: int a = 6;
+// CHECK: int c = 5;
+// CHECK: }
+
+// CHECK-LABEL: def Y {
+// CHECK: int a = 5;
+// CHECK: int c = 6;
+// CHECK: }
class A<bit b = 1> {
int a = !if(!eq(b, 1), 5, 6);
+ int c = !if(!ne(b, 1), 5, 6);
}
def X : A<0>;
OpenPOWER on IntegriCloud