diff options
author | Nicolai Haehnle <nhaehnle@gmail.com> | 2018-03-14 11:00:57 +0000 |
---|---|---|
committer | Nicolai Haehnle <nhaehnle@gmail.com> | 2018-03-14 11:00:57 +0000 |
commit | aa9ca691cde9d650ec92049ca851a311baf6d15c (patch) | |
tree | 49aa182b2f58d71b004fbf4014fe8ecfb7fcba57 /llvm/test/TableGen | |
parent | b61c26e6140caa8ba4d2e2329dcbdb18333f47a6 (diff) | |
download | bcm5719-llvm-aa9ca691cde9d650ec92049ca851a311baf6d15c.tar.gz bcm5719-llvm-aa9ca691cde9d650ec92049ca851a311baf6d15c.zip |
TableGen: Add !ne, !le, !lt, !ge, and !gt comparisons
Change-Id: I8e2ece677268972d578a787467f7ef52a1f33a71
Differential revision: https://reviews.llvm.org/D44114
llvm-svn: 327496
Diffstat (limited to 'llvm/test/TableGen')
-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>; |