diff options
author | David Greene <greened@obbligato.org> | 2009-05-14 23:26:46 +0000 |
---|---|---|
committer | David Greene <greened@obbligato.org> | 2009-05-14 23:26:46 +0000 |
commit | 3587eed2c4abe5ab8a1b838d156512de5510e8a5 (patch) | |
tree | 4f0f394b739b677c117bdfe4588f4bc460db7769 /llvm/test/TableGen | |
parent | b4850465b77f98dce508201c938b7222ed878331 (diff) | |
download | bcm5719-llvm-3587eed2c4abe5ab8a1b838d156512de5510e8a5.tar.gz bcm5719-llvm-3587eed2c4abe5ab8a1b838d156512de5510e8a5.zip |
Implement !if, analogous to $(if) in GNU make.
llvm-svn: 71815
Diffstat (limited to 'llvm/test/TableGen')
-rw-r--r-- | llvm/test/TableGen/if.td | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/TableGen/if.td b/llvm/test/TableGen/if.td new file mode 100644 index 00000000000..3c45d95eb20 --- /dev/null +++ b/llvm/test/TableGen/if.td @@ -0,0 +1,20 @@ +// RUN: tblgen %s | grep {1, 2, 3} | count 4 +// RUN: tblgen %s | grep {4, 5, 6} | count 2 + +class A<list<list<int>> vals> { + list<int> first = vals[0]; + list<int> rest = !if(!null(!cdr(vals)), vals[0], vals[1]); +} + +def One : A<[[1,2,3]]>; +def Two : A<[[1,2,3],[4,5,6]]>; + +class B<list<int> v> { + list<int> vals = v; +} + +class BB<list<list<int>> vals> : B<!if(!null(!cdr(vals)), vals[0], vals[1])>; +class BBB<list<list<int>> vals> : BB<vals>; + +def OneB : BBB<[[1,2,3]]>; +def TwoB : BBB<[[1,2,3],[4,5,6]]>; |