diff options
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/TableGen/compare.td | 54 | ||||
-rw-r--r-- | llvm/test/TableGen/eq.td | 20 | ||||
-rw-r--r-- | llvm/test/TableGen/eqbit.td | 13 |
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>; |