blob: d4c4ce58daa0c6eb0656859b1f3cd61aec566f48 [file] [log] [blame]
David Greened34a73b2009-04-24 16:55:41 +00001// RUN: tblgen %s | grep {zing = 4} | count 28
David Greenede444af2009-04-22 16:42:54 +00002
3class C1<int A, string B> {
4 int bar = A;
5 string thestr = B;
6 int zing;
7}
8
9def T : C1<4, "blah">;
10
David Greened34a73b2009-04-24 16:55:41 +000011multiclass t1<int a1> {
12 def S1 : C1<a1, "foo"> {
David Greenede444af2009-04-22 16:42:54 +000013 int foo = 4;
14 let bar = 1;
15 }
David Greened34a73b2009-04-24 16:55:41 +000016 def S2 : C1<a1, "bar">;
David Greenede444af2009-04-22 16:42:54 +000017}
18
David Greened34a73b2009-04-24 16:55:41 +000019multiclass t2<int a2> {
20 def S3 : C1<a2, "foo"> {
21 int foo = 4;
22 let bar = 1;
23 }
24 def S4 : C1<a2, "bar">;
25}
26
27multiclass s1<int as1, int bs1> : t1<as1> {
28 def S5 : C1<bs1, "moo"> {
David Greenede444af2009-04-22 16:42:54 +000029 int moo = 3;
30 let bar = 1;
31 }
David Greened34a73b2009-04-24 16:55:41 +000032 def S6 : C1<bs1, "baz">;
David Greenede444af2009-04-22 16:42:54 +000033}
34
David Greened34a73b2009-04-24 16:55:41 +000035multiclass s2<int as2> : t1<as2>, t2<as2>;
36
37multiclass s3<int as3, int bs3> : t1<as3>, t2<as3> {
38 def S7 : C1<bs3, "moo"> {
39 int moo = 3;
40 let bar = 1;
41 }
42 def S8 : C1<bs3, "baz">;
43}
44
45let zing = 4 in
46defm FOO1 : s1<42, 24>;
47
48let zing = 4 in
49defm FOO2 : s2<99>;
50
51let zing = 4 in
52defm FOO3 : s3<84, 48>;
David Greenede444af2009-04-22 16:42:54 +000053
54def T4 : C1<6, "foo">;
55
56let zing = 4 in
David Greened34a73b2009-04-24 16:55:41 +000057 defm BAZ1 : s1<3, 4>;
58
59let zing = 4 in
60 defm BAZ2 : s2<5>;
61
62let zing = 4 in
63 defm BAZ3 : s3<6, 7>;
64