1 |
268 |
lampret |
.file "imdct_or32.s"
|
2 |
|
|
|
3 |
|
|
#define X0 0x00
|
4 |
|
|
#define X1 0x04
|
5 |
|
|
#define X2 0x08
|
6 |
|
|
#define X3 0x0C
|
7 |
|
|
#define X4 0x10
|
8 |
|
|
#define X5 0x14
|
9 |
|
|
#define X6 0x18
|
10 |
|
|
#define X7 0x1c
|
11 |
|
|
#define X8 0x20
|
12 |
|
|
#define X9 0x24
|
13 |
|
|
#define X10 0x28
|
14 |
|
|
#define X11 0x2c
|
15 |
|
|
#define X12 0x30
|
16 |
|
|
#define X13 0x34
|
17 |
|
|
#define X14 0x38
|
18 |
|
|
#define X15 0x3c
|
19 |
|
|
#define X16 0x40
|
20 |
|
|
#define X17 0x44
|
21 |
|
|
|
22 |
|
|
#define x0 0x00
|
23 |
|
|
#define x1 0x04
|
24 |
|
|
#define x2 0x08
|
25 |
|
|
#define x3 0x0C
|
26 |
|
|
#define x4 0x10
|
27 |
|
|
#define x5 0x14
|
28 |
|
|
#define x6 0x18
|
29 |
|
|
#define x7 0x1c
|
30 |
|
|
#define x8 0x20
|
31 |
|
|
#define x9 0x24
|
32 |
|
|
#define x10 0x28
|
33 |
|
|
#define x11 0x2c
|
34 |
|
|
#define x12 0x30
|
35 |
|
|
#define x13 0x34
|
36 |
|
|
#define x14 0x38
|
37 |
|
|
#define x15 0x3c
|
38 |
|
|
#define x16 0x40
|
39 |
|
|
#define x17 0x44
|
40 |
|
|
|
41 |
|
|
.data
|
42 |
|
|
K00: .word 0x0ffc19fd
|
43 |
|
|
K01: .word 0x00b2aa3e
|
44 |
|
|
K02: .word 0x0fdcf549
|
45 |
|
|
K03: .word 0x0216a2a2
|
46 |
|
|
K04: .word 0x0f9ee890
|
47 |
|
|
K05: .word 0x03768962
|
48 |
|
|
K06: .word 0x0f426cb5
|
49 |
|
|
K07: .word 0x04cfb0e2
|
50 |
|
|
K08: .word 0x0ec835e8
|
51 |
|
|
K09: .word 0x061f78aa
|
52 |
|
|
K10: .word 0x0e313245
|
53 |
|
|
K11: .word 0x07635284
|
54 |
|
|
K12: .word 0x0d7e8807
|
55 |
|
|
K13: .word 0x0898c779
|
56 |
|
|
K14: .word 0x0cb19346
|
57 |
|
|
K15: .word 0x09bd7ca0
|
58 |
|
|
K16: .word 0x0bcbe352
|
59 |
|
|
K17: .word 0x0acf37ad
|
60 |
|
|
|
61 |
|
|
#define WL0 0x00b2aa3e
|
62 |
|
|
#define WL1 0x0216a2a2
|
63 |
|
|
#define WL2 0x03768962
|
64 |
|
|
#define WL3 0x04cfb0e2
|
65 |
|
|
#define WL4 0x061f78aa
|
66 |
|
|
#define WL5 0x07635284
|
67 |
|
|
#define WL6 0x0898c779
|
68 |
|
|
#define WL7 0x09bd7ca0
|
69 |
|
|
#define WL8 0x0acf37ad
|
70 |
|
|
#define WL9 0x0bcbe352
|
71 |
|
|
#define WL10 0x0cb19346
|
72 |
|
|
#define WL11 0x0d7e8807
|
73 |
|
|
#define WL12 0x0e313245
|
74 |
|
|
#define WL13 0x0ec835e8
|
75 |
|
|
#define WL14 0x0f426cb5
|
76 |
|
|
#define WL15 0x0f9ee890
|
77 |
|
|
#define WL16 0x0fdcf549
|
78 |
|
|
#define WL17 0x0ffc19fd
|
79 |
|
|
|
80 |
|
|
#define MACLO 0x2800
|
81 |
|
|
#define MACHI 0x2801
|
82 |
|
|
|
83 |
|
|
# On entry:
|
84 |
|
|
# r3 = pointer to 18 element input array
|
85 |
|
|
# r4 = pointer to 36 element output array
|
86 |
|
|
|
87 |
|
|
.text
|
88 |
|
|
.proc imdct36
|
89 |
|
|
l.mtspr MACLO, 0
|
90 |
|
|
l.mtspr MACHI, 0
|
91 |
|
|
|
92 |
|
|
# MAD_F_ML0(hi, lo, X[4], MAD_F(0x0ec835e8));
|
93 |
|
|
l.lwz r5, X4(r3)
|
94 |
|
|
l.lwz r6, K08
|
95 |
|
|
l.mac r5, r6
|
96 |
|
|
|
97 |
|
|
# MAD_F_MLA(hi, lo, X[13], MAD_F(0x061f78aa));
|
98 |
|
|
l.lwz r5, X13(r3)
|
99 |
|
|
l.lwz r7, K09
|
100 |
|
|
l.mac r5, r7
|
101 |
|
|
# t6 = MAD_F_MLZ(hi, lo);
|
102 |
|
|
|
103 |
|
|
MAD_F_MLA(hi, lo, (t14 = X[1] - X[10]), -MAD_F(0x061f78aa));
|
104 |
|
|
MAD_F_MLA(hi, lo, (t15 = X[7] + X[16]), -MAD_F(0x0ec835e8));
|
105 |
|
|
|
106 |
|
|
t0 = MAD_F_MLZ(hi, lo);
|
107 |
|
|
|
108 |
|
|
MAD_F_MLA(hi, lo, (t8 = X[0] - X[11] - X[12]), MAD_F(0x0216a2a2));
|
109 |
|
|
MAD_F_MLA(hi, lo, (t9 = X[2] - X[9] - X[14]), MAD_F(0x09bd7ca0));
|
110 |
|
|
MAD_F_MLA(hi, lo, (t10 = X[3] - X[8] - X[15]), -MAD_F(0x0cb19346));
|
111 |
|
|
MAD_F_MLA(hi, lo, (t11 = X[5] - X[6] - X[17]), -MAD_F(0x0fdcf549));
|
112 |
|
|
|
113 |
|
|
x[7] = MAD_F_MLZ(hi, lo);
|
114 |
|
|
x[10] = -x[7];
|
115 |
|
|
|
116 |
|
|
MAD_F_ML0(hi, lo, t8, -MAD_F(0x0cb19346));
|
117 |
|
|
MAD_F_MLA(hi, lo, t9, MAD_F(0x0fdcf549));
|
118 |
|
|
MAD_F_MLA(hi, lo, t10, MAD_F(0x0216a2a2));
|
119 |
|
|
MAD_F_MLA(hi, lo, t11, -MAD_F(0x09bd7ca0));
|
120 |
|
|
|
121 |
|
|
x[19] = x[34] = MAD_F_MLZ(hi, lo) - t0;
|
122 |
|
|
|
123 |
|
|
t12 = X[0] - X[3] + X[8] - X[11] - X[12] + X[15];
|
124 |
|
|
t13 = X[2] + X[5] - X[6] - X[9] - X[14] - X[17];
|
125 |
|
|
|
126 |
|
|
MAD_F_ML0(hi, lo, t12, -MAD_F(0x0ec835e8));
|
127 |
|
|
MAD_F_MLA(hi, lo, t13, MAD_F(0x061f78aa));
|
128 |
|
|
|
129 |
|
|
x[22] = x[31] = MAD_F_MLZ(hi, lo) + t0;
|
130 |
|
|
|
131 |
|
|
MAD_F_ML0(hi, lo, X[1], -MAD_F(0x09bd7ca0));
|
132 |
|
|
MAD_F_MLA(hi, lo, X[7], MAD_F(0x0216a2a2));
|
133 |
|
|
MAD_F_MLA(hi, lo, X[10], -MAD_F(0x0fdcf549));
|
134 |
|
|
MAD_F_MLA(hi, lo, X[16], MAD_F(0x0cb19346));
|
135 |
|
|
|
136 |
|
|
t1 = MAD_F_MLZ(hi, lo) + t6;
|
137 |
|
|
|
138 |
|
|
MAD_F_ML0(hi, lo, X[0], MAD_F(0x03768962));
|
139 |
|
|
MAD_F_MLA(hi, lo, X[2], MAD_F(0x0e313245));
|
140 |
|
|
MAD_F_MLA(hi, lo, X[3], -MAD_F(0x0ffc19fd));
|
141 |
|
|
MAD_F_MLA(hi, lo, X[5], -MAD_F(0x0acf37ad));
|
142 |
|
|
MAD_F_MLA(hi, lo, X[6], MAD_F(0x04cfb0e2));
|
143 |
|
|
MAD_F_MLA(hi, lo, X[8], -MAD_F(0x0898c779));
|
144 |
|
|
MAD_F_MLA(hi, lo, X[9], MAD_F(0x0d7e8807));
|
145 |
|
|
MAD_F_MLA(hi, lo, X[11], MAD_F(0x0f426cb5));
|
146 |
|
|
MAD_F_MLA(hi, lo, X[12], -MAD_F(0x0bcbe352));
|
147 |
|
|
MAD_F_MLA(hi, lo, X[14], MAD_F(0x00b2aa3e));
|
148 |
|
|
MAD_F_MLA(hi, lo, X[15], -MAD_F(0x07635284));
|
149 |
|
|
MAD_F_MLA(hi, lo, X[17], -MAD_F(0x0f9ee890));
|
150 |
|
|
|
151 |
|
|
x[6] = MAD_F_MLZ(hi, lo) + t1;
|
152 |
|
|
x[11] = -x[6];
|
153 |
|
|
|
154 |
|
|
MAD_F_ML0(hi, lo, X[0], -MAD_F(0x0f426cb5));
|
155 |
|
|
MAD_F_MLA(hi, lo, X[2], -MAD_F(0x00b2aa3e));
|
156 |
|
|
MAD_F_MLA(hi, lo, X[3], MAD_F(0x0898c779));
|
157 |
|
|
MAD_F_MLA(hi, lo, X[5], MAD_F(0x0f9ee890));
|
158 |
|
|
MAD_F_MLA(hi, lo, X[6], MAD_F(0x0acf37ad));
|
159 |
|
|
MAD_F_MLA(hi, lo, X[8], -MAD_F(0x07635284));
|
160 |
|
|
MAD_F_MLA(hi, lo, X[9], -MAD_F(0x0e313245));
|
161 |
|
|
MAD_F_MLA(hi, lo, X[11], -MAD_F(0x0bcbe352));
|
162 |
|
|
MAD_F_MLA(hi, lo, X[12], -MAD_F(0x03768962));
|
163 |
|
|
MAD_F_MLA(hi, lo, X[14], MAD_F(0x0d7e8807));
|
164 |
|
|
MAD_F_MLA(hi, lo, X[15], MAD_F(0x0ffc19fd));
|
165 |
|
|
MAD_F_MLA(hi, lo, X[17], MAD_F(0x04cfb0e2));
|
166 |
|
|
|
167 |
|
|
x[23] = x[30] = MAD_F_MLZ(hi, lo) + t1;
|
168 |
|
|
|
169 |
|
|
MAD_F_ML0(hi, lo, X[0], -MAD_F(0x0bcbe352));
|
170 |
|
|
MAD_F_MLA(hi, lo, X[2], MAD_F(0x0d7e8807));
|
171 |
|
|
MAD_F_MLA(hi, lo, X[3], -MAD_F(0x07635284));
|
172 |
|
|
MAD_F_MLA(hi, lo, X[5], MAD_F(0x04cfb0e2));
|
173 |
|
|
MAD_F_MLA(hi, lo, X[6], MAD_F(0x0f9ee890));
|
174 |
|
|
MAD_F_MLA(hi, lo, X[8], -MAD_F(0x0ffc19fd));
|
175 |
|
|
MAD_F_MLA(hi, lo, X[9], -MAD_F(0x00b2aa3e));
|
176 |
|
|
MAD_F_MLA(hi, lo, X[11], MAD_F(0x03768962));
|
177 |
|
|
MAD_F_MLA(hi, lo, X[12], -MAD_F(0x0f426cb5));
|
178 |
|
|
MAD_F_MLA(hi, lo, X[14], MAD_F(0x0e313245));
|
179 |
|
|
MAD_F_MLA(hi, lo, X[15], MAD_F(0x0898c779));
|
180 |
|
|
MAD_F_MLA(hi, lo, X[17], -MAD_F(0x0acf37ad));
|
181 |
|
|
|
182 |
|
|
x[18] = x[35] = MAD_F_MLZ(hi, lo) - t1;
|
183 |
|
|
|
184 |
|
|
MAD_F_ML0(hi, lo, X[4], MAD_F(0x061f78aa));
|
185 |
|
|
MAD_F_MLA(hi, lo, X[13], -MAD_F(0x0ec835e8));
|
186 |
|
|
|
187 |
|
|
t7 = MAD_F_MLZ(hi, lo);
|
188 |
|
|
|
189 |
|
|
MAD_F_MLA(hi, lo, X[1], -MAD_F(0x0cb19346));
|
190 |
|
|
MAD_F_MLA(hi, lo, X[7], MAD_F(0x0fdcf549));
|
191 |
|
|
MAD_F_MLA(hi, lo, X[10], MAD_F(0x0216a2a2));
|
192 |
|
|
MAD_F_MLA(hi, lo, X[16], -MAD_F(0x09bd7ca0));
|
193 |
|
|
|
194 |
|
|
t2 = MAD_F_MLZ(hi, lo);
|
195 |
|
|
|
196 |
|
|
MAD_F_MLA(hi, lo, X[0], MAD_F(0x04cfb0e2));
|
197 |
|
|
MAD_F_MLA(hi, lo, X[2], MAD_F(0x0ffc19fd));
|
198 |
|
|
MAD_F_MLA(hi, lo, X[3], -MAD_F(0x0d7e8807));
|
199 |
|
|
MAD_F_MLA(hi, lo, X[5], MAD_F(0x03768962));
|
200 |
|
|
MAD_F_MLA(hi, lo, X[6], -MAD_F(0x0bcbe352));
|
201 |
|
|
MAD_F_MLA(hi, lo, X[8], -MAD_F(0x0e313245));
|
202 |
|
|
MAD_F_MLA(hi, lo, X[9], MAD_F(0x07635284));
|
203 |
|
|
MAD_F_MLA(hi, lo, X[11], -MAD_F(0x0acf37ad));
|
204 |
|
|
MAD_F_MLA(hi, lo, X[12], MAD_F(0x0f9ee890));
|
205 |
|
|
MAD_F_MLA(hi, lo, X[14], MAD_F(0x0898c779));
|
206 |
|
|
MAD_F_MLA(hi, lo, X[15], MAD_F(0x00b2aa3e));
|
207 |
|
|
MAD_F_MLA(hi, lo, X[17], MAD_F(0x0f426cb5));
|
208 |
|
|
|
209 |
|
|
x[5] = MAD_F_MLZ(hi, lo);
|
210 |
|
|
x[12] = -x[5];
|
211 |
|
|
|
212 |
|
|
MAD_F_ML0(hi, lo, X[0], MAD_F(0x0acf37ad));
|
213 |
|
|
MAD_F_MLA(hi, lo, X[2], -MAD_F(0x0898c779));
|
214 |
|
|
MAD_F_MLA(hi, lo, X[3], MAD_F(0x0e313245));
|
215 |
|
|
MAD_F_MLA(hi, lo, X[5], -MAD_F(0x0f426cb5));
|
216 |
|
|
MAD_F_MLA(hi, lo, X[6], -MAD_F(0x03768962));
|
217 |
|
|
MAD_F_MLA(hi, lo, X[8], MAD_F(0x00b2aa3e));
|
218 |
|
|
MAD_F_MLA(hi, lo, X[9], -MAD_F(0x0ffc19fd));
|
219 |
|
|
MAD_F_MLA(hi, lo, X[11], MAD_F(0x0f9ee890));
|
220 |
|
|
MAD_F_MLA(hi, lo, X[12], -MAD_F(0x04cfb0e2));
|
221 |
|
|
MAD_F_MLA(hi, lo, X[14], MAD_F(0x07635284));
|
222 |
|
|
MAD_F_MLA(hi, lo, X[15], MAD_F(0x0d7e8807));
|
223 |
|
|
MAD_F_MLA(hi, lo, X[17], -MAD_F(0x0bcbe352));
|
224 |
|
|
|
225 |
|
|
x[0] = MAD_F_MLZ(hi, lo) + t2;
|
226 |
|
|
x[17] = -x[0];
|
227 |
|
|
|
228 |
|
|
MAD_F_ML0(hi, lo, X[0], -MAD_F(0x0f9ee890));
|
229 |
|
|
MAD_F_MLA(hi, lo, X[2], -MAD_F(0x07635284));
|
230 |
|
|
MAD_F_MLA(hi, lo, X[3], -MAD_F(0x00b2aa3e));
|
231 |
|
|
MAD_F_MLA(hi, lo, X[5], MAD_F(0x0bcbe352));
|
232 |
|
|
MAD_F_MLA(hi, lo, X[6], MAD_F(0x0f426cb5));
|
233 |
|
|
MAD_F_MLA(hi, lo, X[8], MAD_F(0x0d7e8807));
|
234 |
|
|
MAD_F_MLA(hi, lo, X[9], MAD_F(0x0898c779));
|
235 |
|
|
MAD_F_MLA(hi, lo, X[11], -MAD_F(0x04cfb0e2));
|
236 |
|
|
MAD_F_MLA(hi, lo, X[12], -MAD_F(0x0acf37ad));
|
237 |
|
|
MAD_F_MLA(hi, lo, X[14], -MAD_F(0x0ffc19fd));
|
238 |
|
|
MAD_F_MLA(hi, lo, X[15], -MAD_F(0x0e313245));
|
239 |
|
|
MAD_F_MLA(hi, lo, X[17], -MAD_F(0x03768962));
|
240 |
|
|
|
241 |
|
|
x[24] = x[29] = MAD_F_MLZ(hi, lo) + t2;
|
242 |
|
|
|
243 |
|
|
MAD_F_ML0(hi, lo, X[1], -MAD_F(0x0216a2a2));
|
244 |
|
|
MAD_F_MLA(hi, lo, X[7], -MAD_F(0x09bd7ca0));
|
245 |
|
|
MAD_F_MLA(hi, lo, X[10], MAD_F(0x0cb19346));
|
246 |
|
|
MAD_F_MLA(hi, lo, X[16], MAD_F(0x0fdcf549));
|
247 |
|
|
|
248 |
|
|
t3 = MAD_F_MLZ(hi, lo) + t7;
|
249 |
|
|
|
250 |
|
|
MAD_F_ML0(hi, lo, X[0], MAD_F(0x00b2aa3e));
|
251 |
|
|
MAD_F_MLA(hi, lo, X[2], MAD_F(0x03768962));
|
252 |
|
|
MAD_F_MLA(hi, lo, X[3], -MAD_F(0x04cfb0e2));
|
253 |
|
|
MAD_F_MLA(hi, lo, X[5], -MAD_F(0x07635284));
|
254 |
|
|
MAD_F_MLA(hi, lo, X[6], MAD_F(0x0898c779));
|
255 |
|
|
MAD_F_MLA(hi, lo, X[8], MAD_F(0x0acf37ad));
|
256 |
|
|
MAD_F_MLA(hi, lo, X[9], -MAD_F(0x0bcbe352));
|
257 |
|
|
MAD_F_MLA(hi, lo, X[11], -MAD_F(0x0d7e8807));
|
258 |
|
|
MAD_F_MLA(hi, lo, X[12], MAD_F(0x0e313245));
|
259 |
|
|
MAD_F_MLA(hi, lo, X[14], MAD_F(0x0f426cb5));
|
260 |
|
|
MAD_F_MLA(hi, lo, X[15], -MAD_F(0x0f9ee890));
|
261 |
|
|
MAD_F_MLA(hi, lo, X[17], -MAD_F(0x0ffc19fd));
|
262 |
|
|
|
263 |
|
|
x[8] = MAD_F_MLZ(hi, lo) + t3;
|
264 |
|
|
x[9] = -x[8];
|
265 |
|
|
|
266 |
|
|
MAD_F_ML0(hi, lo, X[0], -MAD_F(0x0e313245));
|
267 |
|
|
MAD_F_MLA(hi, lo, X[2], MAD_F(0x0bcbe352));
|
268 |
|
|
MAD_F_MLA(hi, lo, X[3], MAD_F(0x0f9ee890));
|
269 |
|
|
MAD_F_MLA(hi, lo, X[5], -MAD_F(0x0898c779));
|
270 |
|
|
MAD_F_MLA(hi, lo, X[6], -MAD_F(0x0ffc19fd));
|
271 |
|
|
MAD_F_MLA(hi, lo, X[8], MAD_F(0x04cfb0e2));
|
272 |
|
|
MAD_F_MLA(hi, lo, X[9], MAD_F(0x0f426cb5));
|
273 |
|
|
MAD_F_MLA(hi, lo, X[11], -MAD_F(0x00b2aa3e));
|
274 |
|
|
MAD_F_MLA(hi, lo, X[12], -MAD_F(0x0d7e8807));
|
275 |
|
|
MAD_F_MLA(hi, lo, X[14], -MAD_F(0x03768962));
|
276 |
|
|
MAD_F_MLA(hi, lo, X[15], MAD_F(0x0acf37ad));
|
277 |
|
|
MAD_F_MLA(hi, lo, X[17], MAD_F(0x07635284));
|
278 |
|
|
|
279 |
|
|
x[21] = x[32] = MAD_F_MLZ(hi, lo) + t3;
|
280 |
|
|
|
281 |
|
|
MAD_F_ML0(hi, lo, X[0], -MAD_F(0x0d7e8807));
|
282 |
|
|
MAD_F_MLA(hi, lo, X[2], MAD_F(0x0f426cb5));
|
283 |
|
|
MAD_F_MLA(hi, lo, X[3], MAD_F(0x0acf37ad));
|
284 |
|
|
MAD_F_MLA(hi, lo, X[5], -MAD_F(0x0ffc19fd));
|
285 |
|
|
MAD_F_MLA(hi, lo, X[6], -MAD_F(0x07635284));
|
286 |
|
|
MAD_F_MLA(hi, lo, X[8], MAD_F(0x0f9ee890));
|
287 |
|
|
MAD_F_MLA(hi, lo, X[9], MAD_F(0x03768962));
|
288 |
|
|
MAD_F_MLA(hi, lo, X[11], -MAD_F(0x0e313245));
|
289 |
|
|
MAD_F_MLA(hi, lo, X[12], MAD_F(0x00b2aa3e));
|
290 |
|
|
MAD_F_MLA(hi, lo, X[14], MAD_F(0x0bcbe352));
|
291 |
|
|
MAD_F_MLA(hi, lo, X[15], -MAD_F(0x04cfb0e2));
|
292 |
|
|
MAD_F_MLA(hi, lo, X[17], -MAD_F(0x0898c779));
|
293 |
|
|
|
294 |
|
|
x[20] = x[33] = MAD_F_MLZ(hi, lo) - t3;
|
295 |
|
|
|
296 |
|
|
MAD_F_ML0(hi, lo, t14, -MAD_F(0x0ec835e8));
|
297 |
|
|
MAD_F_MLA(hi, lo, t15, MAD_F(0x061f78aa));
|
298 |
|
|
|
299 |
|
|
t4 = MAD_F_MLZ(hi, lo) - t7;
|
300 |
|
|
|
301 |
|
|
MAD_F_ML0(hi, lo, t12, MAD_F(0x061f78aa));
|
302 |
|
|
MAD_F_MLA(hi, lo, t13, MAD_F(0x0ec835e8));
|
303 |
|
|
|
304 |
|
|
x[4] = MAD_F_MLZ(hi, lo) + t4;
|
305 |
|
|
x[13] = -x[4];
|
306 |
|
|
|
307 |
|
|
MAD_F_ML0(hi, lo, t8, MAD_F(0x09bd7ca0));
|
308 |
|
|
MAD_F_MLA(hi, lo, t9, -MAD_F(0x0216a2a2));
|
309 |
|
|
MAD_F_MLA(hi, lo, t10, MAD_F(0x0fdcf549));
|
310 |
|
|
MAD_F_MLA(hi, lo, t11, -MAD_F(0x0cb19346));
|
311 |
|
|
|
312 |
|
|
x[1] = MAD_F_MLZ(hi, lo) + t4;
|
313 |
|
|
x[16] = -x[1];
|
314 |
|
|
|
315 |
|
|
MAD_F_ML0(hi, lo, t8, -MAD_F(0x0fdcf549));
|
316 |
|
|
MAD_F_MLA(hi, lo, t9, -MAD_F(0x0cb19346));
|
317 |
|
|
MAD_F_MLA(hi, lo, t10, -MAD_F(0x09bd7ca0));
|
318 |
|
|
MAD_F_MLA(hi, lo, t11, -MAD_F(0x0216a2a2));
|
319 |
|
|
|
320 |
|
|
x[25] = x[28] = MAD_F_MLZ(hi, lo) + t4;
|
321 |
|
|
|
322 |
|
|
MAD_F_ML0(hi, lo, X[1], -MAD_F(0x0fdcf549));
|
323 |
|
|
MAD_F_MLA(hi, lo, X[7], -MAD_F(0x0cb19346));
|
324 |
|
|
MAD_F_MLA(hi, lo, X[10], -MAD_F(0x09bd7ca0));
|
325 |
|
|
MAD_F_MLA(hi, lo, X[16], -MAD_F(0x0216a2a2));
|
326 |
|
|
|
327 |
|
|
t5 = MAD_F_MLZ(hi, lo) - t6;
|
328 |
|
|
|
329 |
|
|
MAD_F_ML0(hi, lo, X[0], MAD_F(0x0898c779));
|
330 |
|
|
MAD_F_MLA(hi, lo, X[2], MAD_F(0x04cfb0e2));
|
331 |
|
|
MAD_F_MLA(hi, lo, X[3], MAD_F(0x0bcbe352));
|
332 |
|
|
MAD_F_MLA(hi, lo, X[5], MAD_F(0x00b2aa3e));
|
333 |
|
|
MAD_F_MLA(hi, lo, X[6], MAD_F(0x0e313245));
|
334 |
|
|
MAD_F_MLA(hi, lo, X[8], -MAD_F(0x03768962));
|
335 |
|
|
MAD_F_MLA(hi, lo, X[9], MAD_F(0x0f9ee890));
|
336 |
|
|
MAD_F_MLA(hi, lo, X[11], -MAD_F(0x07635284));
|
337 |
|
|
MAD_F_MLA(hi, lo, X[12], MAD_F(0x0ffc19fd));
|
338 |
|
|
MAD_F_MLA(hi, lo, X[14], -MAD_F(0x0acf37ad));
|
339 |
|
|
MAD_F_MLA(hi, lo, X[15], MAD_F(0x0f426cb5));
|
340 |
|
|
MAD_F_MLA(hi, lo, X[17], -MAD_F(0x0d7e8807));
|
341 |
|
|
|
342 |
|
|
x[2] = MAD_F_MLZ(hi, lo) + t5;
|
343 |
|
|
x[15] = -x[2];
|
344 |
|
|
|
345 |
|
|
MAD_F_ML0(hi, lo, X[0], MAD_F(0x07635284));
|
346 |
|
|
MAD_F_MLA(hi, lo, X[2], MAD_F(0x0acf37ad));
|
347 |
|
|
MAD_F_MLA(hi, lo, X[3], MAD_F(0x03768962));
|
348 |
|
|
MAD_F_MLA(hi, lo, X[5], MAD_F(0x0d7e8807));
|
349 |
|
|
MAD_F_MLA(hi, lo, X[6], -MAD_F(0x00b2aa3e));
|
350 |
|
|
MAD_F_MLA(hi, lo, X[8], MAD_F(0x0f426cb5));
|
351 |
|
|
MAD_F_MLA(hi, lo, X[9], -MAD_F(0x04cfb0e2));
|
352 |
|
|
MAD_F_MLA(hi, lo, X[11], MAD_F(0x0ffc19fd));
|
353 |
|
|
MAD_F_MLA(hi, lo, X[12], -MAD_F(0x0898c779));
|
354 |
|
|
MAD_F_MLA(hi, lo, X[14], MAD_F(0x0f9ee890));
|
355 |
|
|
MAD_F_MLA(hi, lo, X[15], -MAD_F(0x0bcbe352));
|
356 |
|
|
MAD_F_MLA(hi, lo, X[17], MAD_F(0x0e313245));
|
357 |
|
|
|
358 |
|
|
x[3] = MAD_F_MLZ(hi, lo) + t5;
|
359 |
|
|
x[14] = -x[3];
|
360 |
|
|
|
361 |
|
|
MAD_F_ML0(hi, lo, X[0], -MAD_F(0x0ffc19fd));
|
362 |
|
|
MAD_F_MLA(hi, lo, X[2], -MAD_F(0x0f9ee890));
|
363 |
|
|
MAD_F_MLA(hi, lo, X[3], -MAD_F(0x0f426cb5));
|
364 |
|
|
MAD_F_MLA(hi, lo, X[5], -MAD_F(0x0e313245));
|
365 |
|
|
MAD_F_MLA(hi, lo, X[6], -MAD_F(0x0d7e8807));
|
366 |
|
|
MAD_F_MLA(hi, lo, X[8], -MAD_F(0x0bcbe352));
|
367 |
|
|
MAD_F_MLA(hi, lo, X[9], -MAD_F(0x0acf37ad));
|
368 |
|
|
MAD_F_MLA(hi, lo, X[11], -MAD_F(0x0898c779));
|
369 |
|
|
MAD_F_MLA(hi, lo, X[12], -MAD_F(0x07635284));
|
370 |
|
|
MAD_F_MLA(hi, lo, X[14], -MAD_F(0x04cfb0e2));
|
371 |
|
|
MAD_F_MLA(hi, lo, X[15], -MAD_F(0x03768962));
|
372 |
|
|
MAD_F_MLA(hi, lo, X[17], -MAD_F(0x00b2aa3e));
|
373 |
|
|
|
374 |
|
|
x[26] = x[27] = MAD_F_MLZ(hi, lo) + t5;
|