Mercurial > hg > CbC > CbC_llvm
comparison llvm/test/TableGen/listconcat.td @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 // RUN: llvm-tblgen %s | FileCheck %s | |
2 | |
3 // CHECK: class X<list<int> X:a = ?, list<int> X:b = ?, list<int> X:c = ?> { | |
4 // CHECK: list<int> x = !listconcat(!listconcat(X:a, X:b), !listconcat(X:b, X:c)); | |
5 // CHECK: } | |
6 | |
7 // CHECK: class Y<list<string> Y:S = ?> { | |
8 // CHECK: list<string> T1 = !listconcat(Y:S, ["foo"]); | |
9 // CHECK: list<string> T2 = !listconcat(Y:S, !listconcat(["foo"], !listconcat(Y:S, ["bar", "baz"]))); | |
10 // CHECK: } | |
11 | |
12 // CHECK: def A0 { | |
13 // CHECK: list<int> lst = [4]; | |
14 // CHECK: } | |
15 | |
16 // CHECK: def A1 { | |
17 // CHECK: list<int> lst = []; | |
18 // CHECK: } | |
19 | |
20 // CHECK: def DX { | |
21 // CHECK: list<int> x = [0, 1, 1, 2] | |
22 // CHECK: } | |
23 | |
24 // CHECK: def Z { | |
25 // CHECK: list<string> T1 = ["fu", "foo"]; | |
26 // CHECK: list<string> T2 = ["fu", "foo", "fu", "bar", "baz"]; | |
27 // CHECK: } | |
28 | |
29 class A<bit x> { | |
30 // The empty lists type-check without issues. | |
31 list<int> lst = !listconcat([], !if(x, [], [4])); | |
32 } | |
33 | |
34 def A0 : A<0>; | |
35 def A1 : A<1>; | |
36 | |
37 class X<list<int> a, list<int> b, list<int> c> { | |
38 list<int> x = !listconcat(!listconcat(a, b), !listconcat(b, c)); | |
39 } | |
40 | |
41 class Y<list<string> S> { | |
42 list<string> T1 = !listconcat(S, ["foo"]); | |
43 list<string> T2 = !listconcat(S, ["foo"], S, ["bar", "baz"]); | |
44 } | |
45 | |
46 def DX : X<[0], [1], [2]>; | |
47 | |
48 def Z : Y<["fu"]>; |