annotate llvm/test/TableGen/size.td @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: llvm-tblgen %s | FileCheck %s
anatofuz
parents:
diff changeset
2 // XFAIL: vg_leak
anatofuz
parents:
diff changeset
3
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
4 // Test !size of lists.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
5
150
anatofuz
parents:
diff changeset
6 // CHECK: --- Defs ---
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 // CHECK: def A1 {
anatofuz
parents:
diff changeset
9 // CHECK: int Val = 0;
anatofuz
parents:
diff changeset
10 // CHECK: }
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 // CHECK: def A2 {
anatofuz
parents:
diff changeset
13 // CHECK: int Val = 3;
anatofuz
parents:
diff changeset
14 // CHECK: }
anatofuz
parents:
diff changeset
15
anatofuz
parents:
diff changeset
16 // CHECK: def B1 {
anatofuz
parents:
diff changeset
17 // CHECK: int Val = 0;
anatofuz
parents:
diff changeset
18 // CHECK: }
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 // CHECK: def B2 {
anatofuz
parents:
diff changeset
21 // CHECK: int Val = 2;
anatofuz
parents:
diff changeset
22 // CHECK: }
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 class A<list<int> L> {
anatofuz
parents:
diff changeset
25 int Val = !size(L);
anatofuz
parents:
diff changeset
26 }
anatofuz
parents:
diff changeset
27
anatofuz
parents:
diff changeset
28 class B<list<string> L> {
anatofuz
parents:
diff changeset
29 int Val = !size(L);
anatofuz
parents:
diff changeset
30 }
anatofuz
parents:
diff changeset
31
anatofuz
parents:
diff changeset
32 def A1 : A<[]>;
anatofuz
parents:
diff changeset
33 def A2 : A<[1, 1, 2]>;
anatofuz
parents:
diff changeset
34
anatofuz
parents:
diff changeset
35 def B1 : B<[]>;
anatofuz
parents:
diff changeset
36 def B2 : B<["a", "b"]>;
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
37
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
38 // Test !size of DAGs.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
39
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
40 // CHECK: def D0 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
41 // CHECK: int Val = 0;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
42 // CHECK: }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
43
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
44 // CHECK: def D1 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
45 // CHECK: int Val = 1;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
46 // CHECK: }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
47
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
48 // CHECK: def D2 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
49 // CHECK: int Val = 2;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
50 // CHECK: }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
51
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
52 // CHECK: def D3 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
53 // CHECK: int Val = 3;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
54 // CHECK: }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
55
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
56 // CHECK: def D4 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
57 // CHECK: int Val = 4;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
58 // CHECK: }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
59
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
60 class D<dag D> {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
61 int Val = !size(D);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
62 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
63
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
64 def op;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
65
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
66 def D0 : D<(op)>;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
67 def D1 : D<(op "string")>;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
68 def D2 : D<(op "string", 42)>;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
69 def D3 : D<(op "string", 42, (op "sub-dag"))>;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
70 def D4 : D<(op "string", 42, (op "sub-dag"), D0.Val)>;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
71
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
72 // Test !size of strings.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
73
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
74 // CHECK: def S0 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
75 // CHECK: int Val = 0;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
76 // CHECK: }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
77
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
78 // CHECK: def S1 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
79 // CHECK: int Val = 1;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
80 // CHECK: }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
81
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
82 // CHECK: def S2 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
83 // CHECK: int Val = 2;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
84 // CHECK: }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
85
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
86 // CHECK: def S3 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
87 // CHECK: int Val = 3;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
88 // CHECK: }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
89
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
90 // CHECK: def S4 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
91 // CHECK: int Val = 29;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
92 // CHECK: }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
93
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
94 class S<string S> {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
95 int Val = !size(S);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
96 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
97
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
98 def S0 : S<"">;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
99 def S1 : S<"a">;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
100 def S2 : S<"ab">;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
101 def S3 : S<"abc">;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
102 def S4 : S<"This is the end of the world!">;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
103