Added users for symconst.
[libfirm] / ir / be / test / pbqpHeur2.c
1 unsigned *block;
2 unsigned *block1, *block2, *block3, *block4, *block5, *block6, *block7;
3 unsigned *block8,*block9,*block10,*block11,*block12,*block13,*block14,*block15,*block16,*block17,*block18,*block19;
4 unsigned *block20,*block21,*block22,*block23;
5 volatile unsigned arr[100];
6 unsigned ca,cb,cc,cd,ce;
7 unsigned b = 3008;
8
9 // TODO what if we use unsigned* instead of char*?
10 unsigned k3_3(char* base, unsigned i1, unsigned i2, unsigned i3, unsigned k1, unsigned k2, unsigned k3)
11 {
12         char a1, a2, a3;
13         char b1, b2, b3;
14         char c1, c2, c3;
15
16         a1 = i1 + k1;
17         a2 = base[i2 + k1];
18         a3 = base[i3 + k1];
19
20         b1 = i1 + k2;
21         b2 = base[i2 + k2];
22         b3 = base[i3 + k2];
23
24         c1 = i1 + k3;
25         c2 = base[i2 + k3];
26         c3 = base[i3 + k3];
27
28         if (a1 != a2)
29                 return a3;
30         if (b1 != b2)
31                 return b3;
32         if (c1 != c2)
33                 return c3;
34
35         return 0;
36 }
37
38 unsigned k3_3_2(char* base, int i1, int i2, int i3, int k1, int k2, int k3)
39 {
40         char a1, a2, a3;
41         char b1, b2, b3;
42         char c1, c2, c3;
43
44         a1 = base[i1 + k1];
45         a2 = base[i2 + k1];
46         a3 = base[i3 + k1];
47
48         b1 = base[i1 + k2];
49         b2 = base[i2 + k2];
50         b3 = base[i3 + k2];
51
52         c1 = base[i1 + k3];
53         c2 = base[i2 + k3];
54         c3 = base[i3 + k3];
55
56         if (a1 != a2)
57                 return a3;
58         if (b1 != b2)
59                 return b3;
60         if (c1 != c2)
61                 return c3;
62
63         return 0;
64 }
65
66 unsigned k3_3_am(char* base, unsigned i1, unsigned i2, unsigned i3, unsigned k1, unsigned k2, unsigned k3)
67 {
68         char a1, a2, a3;
69         char b1, b2, b3;
70         char c1, c2, c3;
71
72         a1 = base[i1 + k1];
73         a2 = base[i2 + k1];
74         a3 = base[i3 + k1];
75
76         b1 = base[i1 + k2];
77         b2 = base[i2 + k2];
78         b3 = base[i3 + k2];
79
80         c1 = base[i1 + k3];
81         c2 = base[i2 + k3];
82         c3 = base[i3 + k3];
83
84         if (a1 != a2)
85                 return a3;
86         if (b1 != b2)
87                 return b3;
88         if (c1 != c2)
89                 return c3;
90
91         return 0;
92 }
93
94 unsigned g1,g2,g3;
95 unsigned g4,g5,g6;
96 unsigned g7,g8,g9;
97 unsigned g10,g11,g12;
98 unsigned h1,h2,h3;
99 unsigned h4,h5,h6;
100 unsigned h7,h8,h9;
101 unsigned k1,k2,k3;
102 unsigned k4,k5,k6;
103 unsigned k7,k8,k9;
104 unsigned k10,k11,k12;
105 unsigned kb1,kb2,kb3;
106 unsigned kb4,kb5,kb6;
107 unsigned kc1,kc2,kc3;
108 unsigned kc4,kc5,kc6;
109 unsigned kd1,kd2,kd3;
110 unsigned kd4,kd5,kd6;
111 unsigned ke1,ke2,ke3;
112 unsigned ke4,ke5,ke6;
113 unsigned s1,s2,s3;
114 unsigned s4,s5,s6;
115 unsigned s7,s8,s9;
116
117 void full_am(unsigned base, int index, unsigned base2, int index2, unsigned base3, int index3, unsigned base4, int index4, unsigned base5, int index5)
118 {
119         unsigned ca = arr[index] + base;
120
121         /* users for shift const */
122         b = k3_3_am(block, h1, h2, h3, 2, 3, 4);
123         b = k3_3_am(block, h4, h5, h6, 2, 5, 6);
124         b = k3_3_am(block, h7, h8, h9, 2, 7, 8);
125
126         /* users for symconst */
127         unsigned cb = arr[index2] + base2;
128         b = k3_3(block12, cb, kb1, kb2, 101, 102, 103);
129         unsigned cc = arr[index3] + base3;
130         b = k3_3(block15, cc, kc1, kc2, 111, 112, 113);
131         unsigned cd = arr[index4] + base4;
132         b = k3_3(block18, cd, kd1, kd2, 121, 122, 123);
133         unsigned ce = arr[index5] + base5;
134         b = k3_3(block21, ce, ke1, ke2, 131, 132, 133);
135
136         /* users for offset */
137         b = k3_3_2(block1, 4 * index, g2, g3, 31, 32, 33);
138         b = k3_3_2(block2, 4 * index, g5, g6, 34, 35, 36);
139         b = k3_3_2(block6, 4 * index, g7, g8, 37, 38, 39);
140         b = k3_3_2(block7, 4 * index, g9, g10, 40, 41, 42);
141
142         /* users for computed value */
143         b = k3_3(block3, ca, k8, k9, 13, 14, 15);
144         b = k3_3(block4, ca, k11, k12, 16, 17, 18);
145         b = k3_3(block5, ca, k7, k10, 19, 20, 21);
146 }
147
148 int main(int argc, char **argv) {
149         return 0;
150 }