Coverage Report

Created: 2021-06-10 10:30

/src/botan/src/lib/math/mp/mp_monty_n.cpp
Line
Count
Source
1
/*
2
* This file was automatically generated by ./src/scripts/monty.py on 2021-05-01
3
* All manual changes will be lost. Edit the script instead.
4
*
5
* Botan is released under the Simplified BSD License (see license.txt)
6
*/
7
8
#include <botan/internal/mp_core.h>
9
#include <botan/internal/ct_utils.h>
10
11
namespace Botan {
12
13
void bigint_monty_redc_4(word z[], const word p[4], word p_dash, word ws[])
14
32.6M
   {
15
32.6M
   word w2 = 0, w1 = 0, w0 = 0;
16
32.6M
   w0 = z[0];
17
32.6M
   ws[0] = w0 * p_dash;
18
32.6M
   word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
19
32.6M
   w0 = w1; w1 = w2; w2 = 0;
20
32.6M
   word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
21
32.6M
   word3_add(&w2, &w1, &w0, z[1]);
22
32.6M
   ws[1] = w0 * p_dash;
23
32.6M
   word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
24
32.6M
   w0 = w1; w1 = w2; w2 = 0;
25
32.6M
   word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
26
32.6M
   word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
27
32.6M
   word3_add(&w2, &w1, &w0, z[2]);
28
32.6M
   ws[2] = w0 * p_dash;
29
32.6M
   word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
30
32.6M
   w0 = w1; w1 = w2; w2 = 0;
31
32.6M
   word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
32
32.6M
   word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
33
32.6M
   word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
34
32.6M
   word3_add(&w2, &w1, &w0, z[3]);
35
32.6M
   ws[3] = w0 * p_dash;
36
32.6M
   word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
37
32.6M
   w0 = w1; w1 = w2; w2 = 0;
38
32.6M
   word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
39
32.6M
   word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
40
32.6M
   word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
41
32.6M
   word3_add(&w2, &w1, &w0, z[4]);
42
32.6M
   ws[0] = w0;
43
32.6M
   w0 = w1; w1 = w2; w2 = 0;
44
32.6M
   word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
45
32.6M
   word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
46
32.6M
   word3_add(&w2, &w1, &w0, z[5]);
47
32.6M
   ws[1] = w0;
48
32.6M
   w0 = w1; w1 = w2; w2 = 0;
49
32.6M
   word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
50
32.6M
   word3_add(&w2, &w1, &w0, z[6]);
51
32.6M
   ws[2] = w0;
52
32.6M
   w0 = w1; w1 = w2; w2 = 0;
53
32.6M
   word3_add(&w2, &w1, &w0, z[7]);
54
32.6M
   ws[3] = w0;
55
32.6M
   w0 = w1; w1 = w2; w2 = 0;
56
32.6M
   word3_add(&w2, &w1, &w0, z[9]);
57
32.6M
   ws[4] = w0;
58
32.6M
   ws[5] = w1;
59
32.6M
   word borrow = bigint_sub3(ws + 4 + 1, ws, 4 + 1, p, 4);
60
32.6M
   CT::conditional_copy_mem(borrow, z, ws, ws + 5, 5);
61
32.6M
   clear_mem(z + 4, 2*(4+1) - 4);
62
32.6M
   }
63
64
void bigint_monty_redc_6(word z[], const word p[6], word p_dash, word ws[])
65
5.00M
   {
66
5.00M
   word w2 = 0, w1 = 0, w0 = 0;
67
5.00M
   w0 = z[0];
68
5.00M
   ws[0] = w0 * p_dash;
69
5.00M
   word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
70
5.00M
   w0 = w1; w1 = w2; w2 = 0;
71
5.00M
   word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
72
5.00M
   word3_add(&w2, &w1, &w0, z[1]);
73
5.00M
   ws[1] = w0 * p_dash;
74
5.00M
   word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
75
5.00M
   w0 = w1; w1 = w2; w2 = 0;
76
5.00M
   word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
77
5.00M
   word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
78
5.00M
   word3_add(&w2, &w1, &w0, z[2]);
79
5.00M
   ws[2] = w0 * p_dash;
80
5.00M
   word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
81
5.00M
   w0 = w1; w1 = w2; w2 = 0;
82
5.00M
   word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
83
5.00M
   word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
84
5.00M
   word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
85
5.00M
   word3_add(&w2, &w1, &w0, z[3]);
86
5.00M
   ws[3] = w0 * p_dash;
87
5.00M
   word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
88
5.00M
   w0 = w1; w1 = w2; w2 = 0;
89
5.00M
   word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
90
5.00M
   word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
91
5.00M
   word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
92
5.00M
   word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
93
5.00M
   word3_add(&w2, &w1, &w0, z[4]);
94
5.00M
   ws[4] = w0 * p_dash;
95
5.00M
   word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
96
5.00M
   w0 = w1; w1 = w2; w2 = 0;
97
5.00M
   word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
98
5.00M
   word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
99
5.00M
   word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
100
5.00M
   word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
101
5.00M
   word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
102
5.00M
   word3_add(&w2, &w1, &w0, z[5]);
103
5.00M
   ws[5] = w0 * p_dash;
104
5.00M
   word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
105
5.00M
   w0 = w1; w1 = w2; w2 = 0;
106
5.00M
   word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
107
5.00M
   word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
108
5.00M
   word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
109
5.00M
   word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
110
5.00M
   word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
111
5.00M
   word3_add(&w2, &w1, &w0, z[6]);
112
5.00M
   ws[0] = w0;
113
5.00M
   w0 = w1; w1 = w2; w2 = 0;
114
5.00M
   word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
115
5.00M
   word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
116
5.00M
   word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
117
5.00M
   word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
118
5.00M
   word3_add(&w2, &w1, &w0, z[7]);
119
5.00M
   ws[1] = w0;
120
5.00M
   w0 = w1; w1 = w2; w2 = 0;
121
5.00M
   word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
122
5.00M
   word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
123
5.00M
   word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
124
5.00M
   word3_add(&w2, &w1, &w0, z[8]);
125
5.00M
   ws[2] = w0;
126
5.00M
   w0 = w1; w1 = w2; w2 = 0;
127
5.00M
   word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
128
5.00M
   word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
129
5.00M
   word3_add(&w2, &w1, &w0, z[9]);
130
5.00M
   ws[3] = w0;
131
5.00M
   w0 = w1; w1 = w2; w2 = 0;
132
5.00M
   word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
133
5.00M
   word3_add(&w2, &w1, &w0, z[10]);
134
5.00M
   ws[4] = w0;
135
5.00M
   w0 = w1; w1 = w2; w2 = 0;
136
5.00M
   word3_add(&w2, &w1, &w0, z[11]);
137
5.00M
   ws[5] = w0;
138
5.00M
   w0 = w1; w1 = w2; w2 = 0;
139
5.00M
   word3_add(&w2, &w1, &w0, z[13]);
140
5.00M
   ws[6] = w0;
141
5.00M
   ws[7] = w1;
142
5.00M
   word borrow = bigint_sub3(ws + 6 + 1, ws, 6 + 1, p, 6);
143
5.00M
   CT::conditional_copy_mem(borrow, z, ws, ws + 7, 7);
144
5.00M
   clear_mem(z + 6, 2*(6+1) - 6);
145
5.00M
   }
146
147
void bigint_monty_redc_8(word z[], const word p[8], word p_dash, word ws[])
148
31.3M
   {
149
31.3M
   word w2 = 0, w1 = 0, w0 = 0;
150
31.3M
   w0 = z[0];
151
31.3M
   ws[0] = w0 * p_dash;
152
31.3M
   word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
153
31.3M
   w0 = w1; w1 = w2; w2 = 0;
154
31.3M
   word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
155
31.3M
   word3_add(&w2, &w1, &w0, z[1]);
156
31.3M
   ws[1] = w0 * p_dash;
157
31.3M
   word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
158
31.3M
   w0 = w1; w1 = w2; w2 = 0;
159
31.3M
   word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
160
31.3M
   word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
161
31.3M
   word3_add(&w2, &w1, &w0, z[2]);
162
31.3M
   ws[2] = w0 * p_dash;
163
31.3M
   word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
164
31.3M
   w0 = w1; w1 = w2; w2 = 0;
165
31.3M
   word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
166
31.3M
   word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
167
31.3M
   word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
168
31.3M
   word3_add(&w2, &w1, &w0, z[3]);
169
31.3M
   ws[3] = w0 * p_dash;
170
31.3M
   word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
171
31.3M
   w0 = w1; w1 = w2; w2 = 0;
172
31.3M
   word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
173
31.3M
   word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
174
31.3M
   word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
175
31.3M
   word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
176
31.3M
   word3_add(&w2, &w1, &w0, z[4]);
177
31.3M
   ws[4] = w0 * p_dash;
178
31.3M
   word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
179
31.3M
   w0 = w1; w1 = w2; w2 = 0;
180
31.3M
   word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
181
31.3M
   word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
182
31.3M
   word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
183
31.3M
   word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
184
31.3M
   word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
185
31.3M
   word3_add(&w2, &w1, &w0, z[5]);
186
31.3M
   ws[5] = w0 * p_dash;
187
31.3M
   word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
188
31.3M
   w0 = w1; w1 = w2; w2 = 0;
189
31.3M
   word3_muladd(&w2, &w1, &w0, ws[0], p[6]);
190
31.3M
   word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
191
31.3M
   word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
192
31.3M
   word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
193
31.3M
   word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
194
31.3M
   word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
195
31.3M
   word3_add(&w2, &w1, &w0, z[6]);
196
31.3M
   ws[6] = w0 * p_dash;
197
31.3M
   word3_muladd(&w2, &w1, &w0, ws[6], p[0]);
198
31.3M
   w0 = w1; w1 = w2; w2 = 0;
199
31.3M
   word3_muladd(&w2, &w1, &w0, ws[0], p[7]);
200
31.3M
   word3_muladd(&w2, &w1, &w0, ws[1], p[6]);
201
31.3M
   word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
202
31.3M
   word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
203
31.3M
   word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
204
31.3M
   word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
205
31.3M
   word3_muladd(&w2, &w1, &w0, ws[6], p[1]);
206
31.3M
   word3_add(&w2, &w1, &w0, z[7]);
207
31.3M
   ws[7] = w0 * p_dash;
208
31.3M
   word3_muladd(&w2, &w1, &w0, ws[7], p[0]);
209
31.3M
   w0 = w1; w1 = w2; w2 = 0;
210
31.3M
   word3_muladd(&w2, &w1, &w0, ws[1], p[7]);
211
31.3M
   word3_muladd(&w2, &w1, &w0, ws[2], p[6]);
212
31.3M
   word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
213
31.3M
   word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
214
31.3M
   word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
215
31.3M
   word3_muladd(&w2, &w1, &w0, ws[6], p[2]);
216
31.3M
   word3_muladd(&w2, &w1, &w0, ws[7], p[1]);
217
31.3M
   word3_add(&w2, &w1, &w0, z[8]);
218
31.3M
   ws[0] = w0;
219
31.3M
   w0 = w1; w1 = w2; w2 = 0;
220
31.3M
   word3_muladd(&w2, &w1, &w0, ws[2], p[7]);
221
31.3M
   word3_muladd(&w2, &w1, &w0, ws[3], p[6]);
222
31.3M
   word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
223
31.3M
   word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
224
31.3M
   word3_muladd(&w2, &w1, &w0, ws[6], p[3]);
225
31.3M
   word3_muladd(&w2, &w1, &w0, ws[7], p[2]);
226
31.3M
   word3_add(&w2, &w1, &w0, z[9]);
227
31.3M
   ws[1] = w0;
228
31.3M
   w0 = w1; w1 = w2; w2 = 0;
229
31.3M
   word3_muladd(&w2, &w1, &w0, ws[3], p[7]);
230
31.3M
   word3_muladd(&w2, &w1, &w0, ws[4], p[6]);
231
31.3M
   word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
232
31.3M
   word3_muladd(&w2, &w1, &w0, ws[6], p[4]);
233
31.3M
   word3_muladd(&w2, &w1, &w0, ws[7], p[3]);
234
31.3M
   word3_add(&w2, &w1, &w0, z[10]);
235
31.3M
   ws[2] = w0;
236
31.3M
   w0 = w1; w1 = w2; w2 = 0;
237
31.3M
   word3_muladd(&w2, &w1, &w0, ws[4], p[7]);
238
31.3M
   word3_muladd(&w2, &w1, &w0, ws[5], p[6]);
239
31.3M
   word3_muladd(&w2, &w1, &w0, ws[6], p[5]);
240
31.3M
   word3_muladd(&w2, &w1, &w0, ws[7], p[4]);
241
31.3M
   word3_add(&w2, &w1, &w0, z[11]);
242
31.3M
   ws[3] = w0;
243
31.3M
   w0 = w1; w1 = w2; w2 = 0;
244
31.3M
   word3_muladd(&w2, &w1, &w0, ws[5], p[7]);
245
31.3M
   word3_muladd(&w2, &w1, &w0, ws[6], p[6]);
246
31.3M
   word3_muladd(&w2, &w1, &w0, ws[7], p[5]);
247
31.3M
   word3_add(&w2, &w1, &w0, z[12]);
248
31.3M
   ws[4] = w0;
249
31.3M
   w0 = w1; w1 = w2; w2 = 0;
250
31.3M
   word3_muladd(&w2, &w1, &w0, ws[6], p[7]);
251
31.3M
   word3_muladd(&w2, &w1, &w0, ws[7], p[6]);
252
31.3M
   word3_add(&w2, &w1, &w0, z[13]);
253
31.3M
   ws[5] = w0;
254
31.3M
   w0 = w1; w1 = w2; w2 = 0;
255
31.3M
   word3_muladd(&w2, &w1, &w0, ws[7], p[7]);
256
31.3M
   word3_add(&w2, &w1, &w0, z[14]);
257
31.3M
   ws[6] = w0;
258
31.3M
   w0 = w1; w1 = w2; w2 = 0;
259
31.3M
   word3_add(&w2, &w1, &w0, z[15]);
260
31.3M
   ws[7] = w0;
261
31.3M
   w0 = w1; w1 = w2; w2 = 0;
262
31.3M
   word3_add(&w2, &w1, &w0, z[17]);
263
31.3M
   ws[8] = w0;
264
31.3M
   ws[9] = w1;
265
31.3M
   word borrow = bigint_sub3(ws + 8 + 1, ws, 8 + 1, p, 8);
266
31.3M
   CT::conditional_copy_mem(borrow, z, ws, ws + 9, 9);
267
31.3M
   clear_mem(z + 8, 2*(8+1) - 8);
268
31.3M
   }
269
270
void bigint_monty_redc_16(word z[], const word p[16], word p_dash, word ws[])
271
99.7k
   {
272
99.7k
   word w2 = 0, w1 = 0, w0 = 0;
273
99.7k
   w0 = z[0];
274
99.7k
   ws[0] = w0 * p_dash;
275
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
276
99.7k
   w0 = w1; w1 = w2; w2 = 0;
277
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
278
99.7k
   word3_add(&w2, &w1, &w0, z[1]);
279
99.7k
   ws[1] = w0 * p_dash;
280
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
281
99.7k
   w0 = w1; w1 = w2; w2 = 0;
282
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
283
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
284
99.7k
   word3_add(&w2, &w1, &w0, z[2]);
285
99.7k
   ws[2] = w0 * p_dash;
286
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
287
99.7k
   w0 = w1; w1 = w2; w2 = 0;
288
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
289
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
290
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
291
99.7k
   word3_add(&w2, &w1, &w0, z[3]);
292
99.7k
   ws[3] = w0 * p_dash;
293
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
294
99.7k
   w0 = w1; w1 = w2; w2 = 0;
295
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
296
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
297
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
298
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
299
99.7k
   word3_add(&w2, &w1, &w0, z[4]);
300
99.7k
   ws[4] = w0 * p_dash;
301
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
302
99.7k
   w0 = w1; w1 = w2; w2 = 0;
303
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
304
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
305
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
306
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
307
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
308
99.7k
   word3_add(&w2, &w1, &w0, z[5]);
309
99.7k
   ws[5] = w0 * p_dash;
310
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
311
99.7k
   w0 = w1; w1 = w2; w2 = 0;
312
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[6]);
313
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
314
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
315
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
316
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
317
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
318
99.7k
   word3_add(&w2, &w1, &w0, z[6]);
319
99.7k
   ws[6] = w0 * p_dash;
320
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[0]);
321
99.7k
   w0 = w1; w1 = w2; w2 = 0;
322
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[7]);
323
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[6]);
324
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
325
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
326
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
327
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
328
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[1]);
329
99.7k
   word3_add(&w2, &w1, &w0, z[7]);
330
99.7k
   ws[7] = w0 * p_dash;
331
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[0]);
332
99.7k
   w0 = w1; w1 = w2; w2 = 0;
333
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[8]);
334
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[7]);
335
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[6]);
336
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
337
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
338
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
339
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[2]);
340
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[1]);
341
99.7k
   word3_add(&w2, &w1, &w0, z[8]);
342
99.7k
   ws[8] = w0 * p_dash;
343
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[0]);
344
99.7k
   w0 = w1; w1 = w2; w2 = 0;
345
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[9]);
346
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[8]);
347
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[7]);
348
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[6]);
349
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
350
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
351
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[3]);
352
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[2]);
353
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[1]);
354
99.7k
   word3_add(&w2, &w1, &w0, z[9]);
355
99.7k
   ws[9] = w0 * p_dash;
356
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[0]);
357
99.7k
   w0 = w1; w1 = w2; w2 = 0;
358
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[10]);
359
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[9]);
360
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[8]);
361
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[7]);
362
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[6]);
363
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
364
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[4]);
365
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[3]);
366
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[2]);
367
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[1]);
368
99.7k
   word3_add(&w2, &w1, &w0, z[10]);
369
99.7k
   ws[10] = w0 * p_dash;
370
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[0]);
371
99.7k
   w0 = w1; w1 = w2; w2 = 0;
372
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[11]);
373
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[10]);
374
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[9]);
375
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[8]);
376
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[7]);
377
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[6]);
378
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[5]);
379
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[4]);
380
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[3]);
381
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[2]);
382
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[1]);
383
99.7k
   word3_add(&w2, &w1, &w0, z[11]);
384
99.7k
   ws[11] = w0 * p_dash;
385
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[0]);
386
99.7k
   w0 = w1; w1 = w2; w2 = 0;
387
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[12]);
388
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[11]);
389
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[10]);
390
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[9]);
391
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[8]);
392
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[7]);
393
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[6]);
394
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[5]);
395
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[4]);
396
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[3]);
397
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[2]);
398
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[1]);
399
99.7k
   word3_add(&w2, &w1, &w0, z[12]);
400
99.7k
   ws[12] = w0 * p_dash;
401
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[0]);
402
99.7k
   w0 = w1; w1 = w2; w2 = 0;
403
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[13]);
404
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[12]);
405
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[11]);
406
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[10]);
407
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[9]);
408
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[8]);
409
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[7]);
410
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[6]);
411
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[5]);
412
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[4]);
413
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[3]);
414
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[2]);
415
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[1]);
416
99.7k
   word3_add(&w2, &w1, &w0, z[13]);
417
99.7k
   ws[13] = w0 * p_dash;
418
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[0]);
419
99.7k
   w0 = w1; w1 = w2; w2 = 0;
420
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[14]);
421
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[13]);
422
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[12]);
423
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[11]);
424
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[10]);
425
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[9]);
426
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[8]);
427
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[7]);
428
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[6]);
429
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[5]);
430
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[4]);
431
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[3]);
432
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[2]);
433
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[1]);
434
99.7k
   word3_add(&w2, &w1, &w0, z[14]);
435
99.7k
   ws[14] = w0 * p_dash;
436
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[0]);
437
99.7k
   w0 = w1; w1 = w2; w2 = 0;
438
99.7k
   word3_muladd(&w2, &w1, &w0, ws[0], p[15]);
439
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[14]);
440
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[13]);
441
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[12]);
442
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[11]);
443
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[10]);
444
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[9]);
445
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[8]);
446
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[7]);
447
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[6]);
448
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[5]);
449
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[4]);
450
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[3]);
451
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[2]);
452
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[1]);
453
99.7k
   word3_add(&w2, &w1, &w0, z[15]);
454
99.7k
   ws[15] = w0 * p_dash;
455
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[0]);
456
99.7k
   w0 = w1; w1 = w2; w2 = 0;
457
99.7k
   word3_muladd(&w2, &w1, &w0, ws[1], p[15]);
458
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[14]);
459
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[13]);
460
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[12]);
461
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[11]);
462
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[10]);
463
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[9]);
464
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[8]);
465
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[7]);
466
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[6]);
467
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[5]);
468
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[4]);
469
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[3]);
470
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[2]);
471
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[1]);
472
99.7k
   word3_add(&w2, &w1, &w0, z[16]);
473
99.7k
   ws[0] = w0;
474
99.7k
   w0 = w1; w1 = w2; w2 = 0;
475
99.7k
   word3_muladd(&w2, &w1, &w0, ws[2], p[15]);
476
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[14]);
477
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[13]);
478
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[12]);
479
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[11]);
480
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[10]);
481
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[9]);
482
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[8]);
483
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[7]);
484
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[6]);
485
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[5]);
486
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[4]);
487
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[3]);
488
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[2]);
489
99.7k
   word3_add(&w2, &w1, &w0, z[17]);
490
99.7k
   ws[1] = w0;
491
99.7k
   w0 = w1; w1 = w2; w2 = 0;
492
99.7k
   word3_muladd(&w2, &w1, &w0, ws[3], p[15]);
493
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[14]);
494
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[13]);
495
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[12]);
496
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[11]);
497
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[10]);
498
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[9]);
499
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[8]);
500
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[7]);
501
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[6]);
502
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[5]);
503
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[4]);
504
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[3]);
505
99.7k
   word3_add(&w2, &w1, &w0, z[18]);
506
99.7k
   ws[2] = w0;
507
99.7k
   w0 = w1; w1 = w2; w2 = 0;
508
99.7k
   word3_muladd(&w2, &w1, &w0, ws[4], p[15]);
509
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[14]);
510
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[13]);
511
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[12]);
512
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[11]);
513
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[10]);
514
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[9]);
515
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[8]);
516
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[7]);
517
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[6]);
518
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[5]);
519
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[4]);
520
99.7k
   word3_add(&w2, &w1, &w0, z[19]);
521
99.7k
   ws[3] = w0;
522
99.7k
   w0 = w1; w1 = w2; w2 = 0;
523
99.7k
   word3_muladd(&w2, &w1, &w0, ws[5], p[15]);
524
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[14]);
525
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[13]);
526
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[12]);
527
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[11]);
528
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[10]);
529
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[9]);
530
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[8]);
531
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[7]);
532
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[6]);
533
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[5]);
534
99.7k
   word3_add(&w2, &w1, &w0, z[20]);
535
99.7k
   ws[4] = w0;
536
99.7k
   w0 = w1; w1 = w2; w2 = 0;
537
99.7k
   word3_muladd(&w2, &w1, &w0, ws[6], p[15]);
538
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[14]);
539
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[13]);
540
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[12]);
541
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[11]);
542
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[10]);
543
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[9]);
544
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[8]);
545
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[7]);
546
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[6]);
547
99.7k
   word3_add(&w2, &w1, &w0, z[21]);
548
99.7k
   ws[5] = w0;
549
99.7k
   w0 = w1; w1 = w2; w2 = 0;
550
99.7k
   word3_muladd(&w2, &w1, &w0, ws[7], p[15]);
551
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[14]);
552
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[13]);
553
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[12]);
554
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[11]);
555
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[10]);
556
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[9]);
557
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[8]);
558
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[7]);
559
99.7k
   word3_add(&w2, &w1, &w0, z[22]);
560
99.7k
   ws[6] = w0;
561
99.7k
   w0 = w1; w1 = w2; w2 = 0;
562
99.7k
   word3_muladd(&w2, &w1, &w0, ws[8], p[15]);
563
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[14]);
564
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[13]);
565
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[12]);
566
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[11]);
567
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[10]);
568
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[9]);
569
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[8]);
570
99.7k
   word3_add(&w2, &w1, &w0, z[23]);
571
99.7k
   ws[7] = w0;
572
99.7k
   w0 = w1; w1 = w2; w2 = 0;
573
99.7k
   word3_muladd(&w2, &w1, &w0, ws[9], p[15]);
574
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[14]);
575
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[13]);
576
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[12]);
577
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[11]);
578
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[10]);
579
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[9]);
580
99.7k
   word3_add(&w2, &w1, &w0, z[24]);
581
99.7k
   ws[8] = w0;
582
99.7k
   w0 = w1; w1 = w2; w2 = 0;
583
99.7k
   word3_muladd(&w2, &w1, &w0, ws[10], p[15]);
584
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[14]);
585
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[13]);
586
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[12]);
587
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[11]);
588
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[10]);
589
99.7k
   word3_add(&w2, &w1, &w0, z[25]);
590
99.7k
   ws[9] = w0;
591
99.7k
   w0 = w1; w1 = w2; w2 = 0;
592
99.7k
   word3_muladd(&w2, &w1, &w0, ws[11], p[15]);
593
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[14]);
594
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[13]);
595
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[12]);
596
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[11]);
597
99.7k
   word3_add(&w2, &w1, &w0, z[26]);
598
99.7k
   ws[10] = w0;
599
99.7k
   w0 = w1; w1 = w2; w2 = 0;
600
99.7k
   word3_muladd(&w2, &w1, &w0, ws[12], p[15]);
601
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[14]);
602
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[13]);
603
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[12]);
604
99.7k
   word3_add(&w2, &w1, &w0, z[27]);
605
99.7k
   ws[11] = w0;
606
99.7k
   w0 = w1; w1 = w2; w2 = 0;
607
99.7k
   word3_muladd(&w2, &w1, &w0, ws[13], p[15]);
608
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[14]);
609
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[13]);
610
99.7k
   word3_add(&w2, &w1, &w0, z[28]);
611
99.7k
   ws[12] = w0;
612
99.7k
   w0 = w1; w1 = w2; w2 = 0;
613
99.7k
   word3_muladd(&w2, &w1, &w0, ws[14], p[15]);
614
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[14]);
615
99.7k
   word3_add(&w2, &w1, &w0, z[29]);
616
99.7k
   ws[13] = w0;
617
99.7k
   w0 = w1; w1 = w2; w2 = 0;
618
99.7k
   word3_muladd(&w2, &w1, &w0, ws[15], p[15]);
619
99.7k
   word3_add(&w2, &w1, &w0, z[30]);
620
99.7k
   ws[14] = w0;
621
99.7k
   w0 = w1; w1 = w2; w2 = 0;
622
99.7k
   word3_add(&w2, &w1, &w0, z[31]);
623
99.7k
   ws[15] = w0;
624
99.7k
   w0 = w1; w1 = w2; w2 = 0;
625
99.7k
   word3_add(&w2, &w1, &w0, z[33]);
626
99.7k
   ws[16] = w0;
627
99.7k
   ws[17] = w1;
628
99.7k
   word borrow = bigint_sub3(ws + 16 + 1, ws, 16 + 1, p, 16);
629
99.7k
   CT::conditional_copy_mem(borrow, z, ws, ws + 17, 17);
630
99.7k
   clear_mem(z + 16, 2*(16+1) - 16);
631
99.7k
   }
632
633
void bigint_monty_redc_24(word z[], const word p[24], word p_dash, word ws[])
634
26.2k
   {
635
26.2k
   word w2 = 0, w1 = 0, w0 = 0;
636
26.2k
   w0 = z[0];
637
26.2k
   ws[0] = w0 * p_dash;
638
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
639
26.2k
   w0 = w1; w1 = w2; w2 = 0;
640
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
641
26.2k
   word3_add(&w2, &w1, &w0, z[1]);
642
26.2k
   ws[1] = w0 * p_dash;
643
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
644
26.2k
   w0 = w1; w1 = w2; w2 = 0;
645
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
646
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
647
26.2k
   word3_add(&w2, &w1, &w0, z[2]);
648
26.2k
   ws[2] = w0 * p_dash;
649
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
650
26.2k
   w0 = w1; w1 = w2; w2 = 0;
651
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
652
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
653
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
654
26.2k
   word3_add(&w2, &w1, &w0, z[3]);
655
26.2k
   ws[3] = w0 * p_dash;
656
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
657
26.2k
   w0 = w1; w1 = w2; w2 = 0;
658
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
659
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
660
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
661
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
662
26.2k
   word3_add(&w2, &w1, &w0, z[4]);
663
26.2k
   ws[4] = w0 * p_dash;
664
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
665
26.2k
   w0 = w1; w1 = w2; w2 = 0;
666
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
667
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
668
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
669
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
670
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
671
26.2k
   word3_add(&w2, &w1, &w0, z[5]);
672
26.2k
   ws[5] = w0 * p_dash;
673
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
674
26.2k
   w0 = w1; w1 = w2; w2 = 0;
675
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[6]);
676
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
677
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
678
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
679
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
680
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
681
26.2k
   word3_add(&w2, &w1, &w0, z[6]);
682
26.2k
   ws[6] = w0 * p_dash;
683
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[0]);
684
26.2k
   w0 = w1; w1 = w2; w2 = 0;
685
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[7]);
686
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[6]);
687
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
688
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
689
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
690
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
691
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[1]);
692
26.2k
   word3_add(&w2, &w1, &w0, z[7]);
693
26.2k
   ws[7] = w0 * p_dash;
694
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[0]);
695
26.2k
   w0 = w1; w1 = w2; w2 = 0;
696
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[8]);
697
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[7]);
698
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[6]);
699
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
700
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
701
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
702
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[2]);
703
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[1]);
704
26.2k
   word3_add(&w2, &w1, &w0, z[8]);
705
26.2k
   ws[8] = w0 * p_dash;
706
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[0]);
707
26.2k
   w0 = w1; w1 = w2; w2 = 0;
708
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[9]);
709
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[8]);
710
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[7]);
711
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[6]);
712
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
713
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
714
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[3]);
715
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[2]);
716
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[1]);
717
26.2k
   word3_add(&w2, &w1, &w0, z[9]);
718
26.2k
   ws[9] = w0 * p_dash;
719
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[0]);
720
26.2k
   w0 = w1; w1 = w2; w2 = 0;
721
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[10]);
722
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[9]);
723
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[8]);
724
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[7]);
725
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[6]);
726
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
727
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[4]);
728
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[3]);
729
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[2]);
730
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[1]);
731
26.2k
   word3_add(&w2, &w1, &w0, z[10]);
732
26.2k
   ws[10] = w0 * p_dash;
733
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[0]);
734
26.2k
   w0 = w1; w1 = w2; w2 = 0;
735
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[11]);
736
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[10]);
737
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[9]);
738
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[8]);
739
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[7]);
740
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[6]);
741
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[5]);
742
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[4]);
743
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[3]);
744
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[2]);
745
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[1]);
746
26.2k
   word3_add(&w2, &w1, &w0, z[11]);
747
26.2k
   ws[11] = w0 * p_dash;
748
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[0]);
749
26.2k
   w0 = w1; w1 = w2; w2 = 0;
750
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[12]);
751
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[11]);
752
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[10]);
753
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[9]);
754
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[8]);
755
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[7]);
756
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[6]);
757
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[5]);
758
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[4]);
759
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[3]);
760
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[2]);
761
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[1]);
762
26.2k
   word3_add(&w2, &w1, &w0, z[12]);
763
26.2k
   ws[12] = w0 * p_dash;
764
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[0]);
765
26.2k
   w0 = w1; w1 = w2; w2 = 0;
766
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[13]);
767
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[12]);
768
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[11]);
769
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[10]);
770
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[9]);
771
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[8]);
772
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[7]);
773
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[6]);
774
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[5]);
775
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[4]);
776
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[3]);
777
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[2]);
778
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[1]);
779
26.2k
   word3_add(&w2, &w1, &w0, z[13]);
780
26.2k
   ws[13] = w0 * p_dash;
781
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[0]);
782
26.2k
   w0 = w1; w1 = w2; w2 = 0;
783
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[14]);
784
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[13]);
785
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[12]);
786
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[11]);
787
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[10]);
788
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[9]);
789
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[8]);
790
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[7]);
791
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[6]);
792
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[5]);
793
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[4]);
794
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[3]);
795
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[2]);
796
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[1]);
797
26.2k
   word3_add(&w2, &w1, &w0, z[14]);
798
26.2k
   ws[14] = w0 * p_dash;
799
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[0]);
800
26.2k
   w0 = w1; w1 = w2; w2 = 0;
801
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[15]);
802
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[14]);
803
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[13]);
804
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[12]);
805
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[11]);
806
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[10]);
807
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[9]);
808
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[8]);
809
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[7]);
810
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[6]);
811
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[5]);
812
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[4]);
813
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[3]);
814
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[2]);
815
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[1]);
816
26.2k
   word3_add(&w2, &w1, &w0, z[15]);
817
26.2k
   ws[15] = w0 * p_dash;
818
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[0]);
819
26.2k
   w0 = w1; w1 = w2; w2 = 0;
820
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[16]);
821
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[15]);
822
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[14]);
823
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[13]);
824
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[12]);
825
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[11]);
826
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[10]);
827
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[9]);
828
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[8]);
829
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[7]);
830
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[6]);
831
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[5]);
832
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[4]);
833
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[3]);
834
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[2]);
835
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[1]);
836
26.2k
   word3_add(&w2, &w1, &w0, z[16]);
837
26.2k
   ws[16] = w0 * p_dash;
838
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[0]);
839
26.2k
   w0 = w1; w1 = w2; w2 = 0;
840
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[17]);
841
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[16]);
842
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[15]);
843
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[14]);
844
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[13]);
845
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[12]);
846
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[11]);
847
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[10]);
848
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[9]);
849
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[8]);
850
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[7]);
851
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[6]);
852
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[5]);
853
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[4]);
854
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[3]);
855
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[2]);
856
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[1]);
857
26.2k
   word3_add(&w2, &w1, &w0, z[17]);
858
26.2k
   ws[17] = w0 * p_dash;
859
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[0]);
860
26.2k
   w0 = w1; w1 = w2; w2 = 0;
861
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[18]);
862
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[17]);
863
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[16]);
864
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[15]);
865
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[14]);
866
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[13]);
867
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[12]);
868
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[11]);
869
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[10]);
870
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[9]);
871
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[8]);
872
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[7]);
873
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[6]);
874
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[5]);
875
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[4]);
876
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[3]);
877
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[2]);
878
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[1]);
879
26.2k
   word3_add(&w2, &w1, &w0, z[18]);
880
26.2k
   ws[18] = w0 * p_dash;
881
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[0]);
882
26.2k
   w0 = w1; w1 = w2; w2 = 0;
883
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[19]);
884
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[18]);
885
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[17]);
886
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[16]);
887
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[15]);
888
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[14]);
889
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[13]);
890
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[12]);
891
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[11]);
892
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[10]);
893
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[9]);
894
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[8]);
895
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[7]);
896
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[6]);
897
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[5]);
898
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[4]);
899
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[3]);
900
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[2]);
901
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[1]);
902
26.2k
   word3_add(&w2, &w1, &w0, z[19]);
903
26.2k
   ws[19] = w0 * p_dash;
904
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[0]);
905
26.2k
   w0 = w1; w1 = w2; w2 = 0;
906
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[20]);
907
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[19]);
908
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[18]);
909
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[17]);
910
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[16]);
911
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[15]);
912
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[14]);
913
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[13]);
914
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[12]);
915
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[11]);
916
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[10]);
917
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[9]);
918
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[8]);
919
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[7]);
920
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[6]);
921
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[5]);
922
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[4]);
923
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[3]);
924
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[2]);
925
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[1]);
926
26.2k
   word3_add(&w2, &w1, &w0, z[20]);
927
26.2k
   ws[20] = w0 * p_dash;
928
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[0]);
929
26.2k
   w0 = w1; w1 = w2; w2 = 0;
930
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[21]);
931
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[20]);
932
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[19]);
933
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[18]);
934
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[17]);
935
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[16]);
936
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[15]);
937
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[14]);
938
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[13]);
939
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[12]);
940
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[11]);
941
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[10]);
942
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[9]);
943
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[8]);
944
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[7]);
945
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[6]);
946
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[5]);
947
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[4]);
948
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[3]);
949
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[2]);
950
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[1]);
951
26.2k
   word3_add(&w2, &w1, &w0, z[21]);
952
26.2k
   ws[21] = w0 * p_dash;
953
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[0]);
954
26.2k
   w0 = w1; w1 = w2; w2 = 0;
955
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[22]);
956
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[21]);
957
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[20]);
958
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[19]);
959
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[18]);
960
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[17]);
961
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[16]);
962
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[15]);
963
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[14]);
964
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[13]);
965
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[12]);
966
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[11]);
967
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[10]);
968
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[9]);
969
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[8]);
970
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[7]);
971
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[6]);
972
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[5]);
973
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[4]);
974
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[3]);
975
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[2]);
976
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[1]);
977
26.2k
   word3_add(&w2, &w1, &w0, z[22]);
978
26.2k
   ws[22] = w0 * p_dash;
979
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[0]);
980
26.2k
   w0 = w1; w1 = w2; w2 = 0;
981
26.2k
   word3_muladd(&w2, &w1, &w0, ws[0], p[23]);
982
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[22]);
983
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[21]);
984
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[20]);
985
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[19]);
986
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[18]);
987
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[17]);
988
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[16]);
989
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[15]);
990
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[14]);
991
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[13]);
992
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[12]);
993
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[11]);
994
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[10]);
995
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[9]);
996
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[8]);
997
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[7]);
998
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[6]);
999
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[5]);
1000
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[4]);
1001
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[3]);
1002
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[2]);
1003
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[1]);
1004
26.2k
   word3_add(&w2, &w1, &w0, z[23]);
1005
26.2k
   ws[23] = w0 * p_dash;
1006
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[0]);
1007
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1008
26.2k
   word3_muladd(&w2, &w1, &w0, ws[1], p[23]);
1009
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[22]);
1010
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[21]);
1011
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[20]);
1012
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[19]);
1013
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[18]);
1014
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[17]);
1015
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[16]);
1016
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[15]);
1017
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[14]);
1018
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[13]);
1019
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[12]);
1020
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[11]);
1021
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[10]);
1022
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[9]);
1023
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[8]);
1024
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[7]);
1025
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[6]);
1026
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[5]);
1027
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[4]);
1028
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[3]);
1029
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[2]);
1030
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[1]);
1031
26.2k
   word3_add(&w2, &w1, &w0, z[24]);
1032
26.2k
   ws[0] = w0;
1033
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1034
26.2k
   word3_muladd(&w2, &w1, &w0, ws[2], p[23]);
1035
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[22]);
1036
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[21]);
1037
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[20]);
1038
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[19]);
1039
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[18]);
1040
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[17]);
1041
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[16]);
1042
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[15]);
1043
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[14]);
1044
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[13]);
1045
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[12]);
1046
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[11]);
1047
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[10]);
1048
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[9]);
1049
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[8]);
1050
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[7]);
1051
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[6]);
1052
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[5]);
1053
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[4]);
1054
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[3]);
1055
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[2]);
1056
26.2k
   word3_add(&w2, &w1, &w0, z[25]);
1057
26.2k
   ws[1] = w0;
1058
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1059
26.2k
   word3_muladd(&w2, &w1, &w0, ws[3], p[23]);
1060
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[22]);
1061
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[21]);
1062
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[20]);
1063
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[19]);
1064
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[18]);
1065
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[17]);
1066
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[16]);
1067
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[15]);
1068
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[14]);
1069
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[13]);
1070
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[12]);
1071
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[11]);
1072
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[10]);
1073
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[9]);
1074
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[8]);
1075
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[7]);
1076
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[6]);
1077
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[5]);
1078
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[4]);
1079
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[3]);
1080
26.2k
   word3_add(&w2, &w1, &w0, z[26]);
1081
26.2k
   ws[2] = w0;
1082
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1083
26.2k
   word3_muladd(&w2, &w1, &w0, ws[4], p[23]);
1084
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[22]);
1085
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[21]);
1086
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[20]);
1087
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[19]);
1088
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[18]);
1089
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[17]);
1090
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[16]);
1091
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[15]);
1092
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[14]);
1093
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[13]);
1094
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[12]);
1095
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[11]);
1096
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[10]);
1097
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[9]);
1098
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[8]);
1099
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[7]);
1100
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[6]);
1101
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[5]);
1102
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[4]);
1103
26.2k
   word3_add(&w2, &w1, &w0, z[27]);
1104
26.2k
   ws[3] = w0;
1105
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1106
26.2k
   word3_muladd(&w2, &w1, &w0, ws[5], p[23]);
1107
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[22]);
1108
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[21]);
1109
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[20]);
1110
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[19]);
1111
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[18]);
1112
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[17]);
1113
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[16]);
1114
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[15]);
1115
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[14]);
1116
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[13]);
1117
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[12]);
1118
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[11]);
1119
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[10]);
1120
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[9]);
1121
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[8]);
1122
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[7]);
1123
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[6]);
1124
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[5]);
1125
26.2k
   word3_add(&w2, &w1, &w0, z[28]);
1126
26.2k
   ws[4] = w0;
1127
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1128
26.2k
   word3_muladd(&w2, &w1, &w0, ws[6], p[23]);
1129
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[22]);
1130
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[21]);
1131
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[20]);
1132
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[19]);
1133
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[18]);
1134
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[17]);
1135
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[16]);
1136
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[15]);
1137
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[14]);
1138
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[13]);
1139
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[12]);
1140
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[11]);
1141
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[10]);
1142
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[9]);
1143
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[8]);
1144
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[7]);
1145
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[6]);
1146
26.2k
   word3_add(&w2, &w1, &w0, z[29]);
1147
26.2k
   ws[5] = w0;
1148
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1149
26.2k
   word3_muladd(&w2, &w1, &w0, ws[7], p[23]);
1150
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[22]);
1151
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[21]);
1152
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[20]);
1153
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[19]);
1154
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[18]);
1155
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[17]);
1156
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[16]);
1157
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[15]);
1158
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[14]);
1159
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[13]);
1160
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[12]);
1161
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[11]);
1162
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[10]);
1163
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[9]);
1164
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[8]);
1165
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[7]);
1166
26.2k
   word3_add(&w2, &w1, &w0, z[30]);
1167
26.2k
   ws[6] = w0;
1168
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1169
26.2k
   word3_muladd(&w2, &w1, &w0, ws[8], p[23]);
1170
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[22]);
1171
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[21]);
1172
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[20]);
1173
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[19]);
1174
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[18]);
1175
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[17]);
1176
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[16]);
1177
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[15]);
1178
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[14]);
1179
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[13]);
1180
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[12]);
1181
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[11]);
1182
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[10]);
1183
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[9]);
1184
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[8]);
1185
26.2k
   word3_add(&w2, &w1, &w0, z[31]);
1186
26.2k
   ws[7] = w0;
1187
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1188
26.2k
   word3_muladd(&w2, &w1, &w0, ws[9], p[23]);
1189
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[22]);
1190
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[21]);
1191
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[20]);
1192
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[19]);
1193
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[18]);
1194
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[17]);
1195
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[16]);
1196
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[15]);
1197
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[14]);
1198
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[13]);
1199
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[12]);
1200
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[11]);
1201
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[10]);
1202
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[9]);
1203
26.2k
   word3_add(&w2, &w1, &w0, z[32]);
1204
26.2k
   ws[8] = w0;
1205
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1206
26.2k
   word3_muladd(&w2, &w1, &w0, ws[10], p[23]);
1207
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[22]);
1208
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[21]);
1209
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[20]);
1210
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[19]);
1211
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[18]);
1212
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[17]);
1213
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[16]);
1214
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[15]);
1215
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[14]);
1216
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[13]);
1217
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[12]);
1218
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[11]);
1219
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[10]);
1220
26.2k
   word3_add(&w2, &w1, &w0, z[33]);
1221
26.2k
   ws[9] = w0;
1222
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1223
26.2k
   word3_muladd(&w2, &w1, &w0, ws[11], p[23]);
1224
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[22]);
1225
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[21]);
1226
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[20]);
1227
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[19]);
1228
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[18]);
1229
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[17]);
1230
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[16]);
1231
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[15]);
1232
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[14]);
1233
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[13]);
1234
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[12]);
1235
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[11]);
1236
26.2k
   word3_add(&w2, &w1, &w0, z[34]);
1237
26.2k
   ws[10] = w0;
1238
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1239
26.2k
   word3_muladd(&w2, &w1, &w0, ws[12], p[23]);
1240
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[22]);
1241
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[21]);
1242
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[20]);
1243
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[19]);
1244
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[18]);
1245
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[17]);
1246
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[16]);
1247
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[15]);
1248
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[14]);
1249
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[13]);
1250
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[12]);
1251
26.2k
   word3_add(&w2, &w1, &w0, z[35]);
1252
26.2k
   ws[11] = w0;
1253
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1254
26.2k
   word3_muladd(&w2, &w1, &w0, ws[13], p[23]);
1255
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[22]);
1256
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[21]);
1257
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[20]);
1258
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[19]);
1259
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[18]);
1260
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[17]);
1261
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[16]);
1262
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[15]);
1263
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[14]);
1264
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[13]);
1265
26.2k
   word3_add(&w2, &w1, &w0, z[36]);
1266
26.2k
   ws[12] = w0;
1267
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1268
26.2k
   word3_muladd(&w2, &w1, &w0, ws[14], p[23]);
1269
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[22]);
1270
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[21]);
1271
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[20]);
1272
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[19]);
1273
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[18]);
1274
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[17]);
1275
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[16]);
1276
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[15]);
1277
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[14]);
1278
26.2k
   word3_add(&w2, &w1, &w0, z[37]);
1279
26.2k
   ws[13] = w0;
1280
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1281
26.2k
   word3_muladd(&w2, &w1, &w0, ws[15], p[23]);
1282
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[22]);
1283
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[21]);
1284
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[20]);
1285
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[19]);
1286
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[18]);
1287
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[17]);
1288
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[16]);
1289
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[15]);
1290
26.2k
   word3_add(&w2, &w1, &w0, z[38]);
1291
26.2k
   ws[14] = w0;
1292
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1293
26.2k
   word3_muladd(&w2, &w1, &w0, ws[16], p[23]);
1294
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[22]);
1295
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[21]);
1296
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[20]);
1297
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[19]);
1298
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[18]);
1299
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[17]);
1300
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[16]);
1301
26.2k
   word3_add(&w2, &w1, &w0, z[39]);
1302
26.2k
   ws[15] = w0;
1303
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1304
26.2k
   word3_muladd(&w2, &w1, &w0, ws[17], p[23]);
1305
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[22]);
1306
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[21]);
1307
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[20]);
1308
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[19]);
1309
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[18]);
1310
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[17]);
1311
26.2k
   word3_add(&w2, &w1, &w0, z[40]);
1312
26.2k
   ws[16] = w0;
1313
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1314
26.2k
   word3_muladd(&w2, &w1, &w0, ws[18], p[23]);
1315
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[22]);
1316
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[21]);
1317
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[20]);
1318
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[19]);
1319
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[18]);
1320
26.2k
   word3_add(&w2, &w1, &w0, z[41]);
1321
26.2k
   ws[17] = w0;
1322
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1323
26.2k
   word3_muladd(&w2, &w1, &w0, ws[19], p[23]);
1324
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[22]);
1325
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[21]);
1326
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[20]);
1327
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[19]);
1328
26.2k
   word3_add(&w2, &w1, &w0, z[42]);
1329
26.2k
   ws[18] = w0;
1330
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1331
26.2k
   word3_muladd(&w2, &w1, &w0, ws[20], p[23]);
1332
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[22]);
1333
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[21]);
1334
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[20]);
1335
26.2k
   word3_add(&w2, &w1, &w0, z[43]);
1336
26.2k
   ws[19] = w0;
1337
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1338
26.2k
   word3_muladd(&w2, &w1, &w0, ws[21], p[23]);
1339
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[22]);
1340
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[21]);
1341
26.2k
   word3_add(&w2, &w1, &w0, z[44]);
1342
26.2k
   ws[20] = w0;
1343
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1344
26.2k
   word3_muladd(&w2, &w1, &w0, ws[22], p[23]);
1345
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[22]);
1346
26.2k
   word3_add(&w2, &w1, &w0, z[45]);
1347
26.2k
   ws[21] = w0;
1348
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1349
26.2k
   word3_muladd(&w2, &w1, &w0, ws[23], p[23]);
1350
26.2k
   word3_add(&w2, &w1, &w0, z[46]);
1351
26.2k
   ws[22] = w0;
1352
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1353
26.2k
   word3_add(&w2, &w1, &w0, z[47]);
1354
26.2k
   ws[23] = w0;
1355
26.2k
   w0 = w1; w1 = w2; w2 = 0;
1356
26.2k
   word3_add(&w2, &w1, &w0, z[49]);
1357
26.2k
   ws[24] = w0;
1358
26.2k
   ws[25] = w1;
1359
26.2k
   word borrow = bigint_sub3(ws + 24 + 1, ws, 24 + 1, p, 24);
1360
26.2k
   CT::conditional_copy_mem(borrow, z, ws, ws + 25, 25);
1361
26.2k
   clear_mem(z + 24, 2*(24+1) - 24);
1362
26.2k
   }
1363
1364
void bigint_monty_redc_32(word z[], const word p[32], word p_dash, word ws[])
1365
174k
   {
1366
174k
   word w2 = 0, w1 = 0, w0 = 0;
1367
174k
   w0 = z[0];
1368
174k
   ws[0] = w0 * p_dash;
1369
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
1370
174k
   w0 = w1; w1 = w2; w2 = 0;
1371
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
1372
174k
   word3_add(&w2, &w1, &w0, z[1]);
1373
174k
   ws[1] = w0 * p_dash;
1374
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
1375
174k
   w0 = w1; w1 = w2; w2 = 0;
1376
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
1377
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
1378
174k
   word3_add(&w2, &w1, &w0, z[2]);
1379
174k
   ws[2] = w0 * p_dash;
1380
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
1381
174k
   w0 = w1; w1 = w2; w2 = 0;
1382
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
1383
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
1384
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
1385
174k
   word3_add(&w2, &w1, &w0, z[3]);
1386
174k
   ws[3] = w0 * p_dash;
1387
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
1388
174k
   w0 = w1; w1 = w2; w2 = 0;
1389
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
1390
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
1391
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
1392
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
1393
174k
   word3_add(&w2, &w1, &w0, z[4]);
1394
174k
   ws[4] = w0 * p_dash;
1395
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
1396
174k
   w0 = w1; w1 = w2; w2 = 0;
1397
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
1398
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
1399
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
1400
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
1401
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
1402
174k
   word3_add(&w2, &w1, &w0, z[5]);
1403
174k
   ws[5] = w0 * p_dash;
1404
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
1405
174k
   w0 = w1; w1 = w2; w2 = 0;
1406
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[6]);
1407
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
1408
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
1409
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
1410
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
1411
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
1412
174k
   word3_add(&w2, &w1, &w0, z[6]);
1413
174k
   ws[6] = w0 * p_dash;
1414
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[0]);
1415
174k
   w0 = w1; w1 = w2; w2 = 0;
1416
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[7]);
1417
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[6]);
1418
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
1419
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
1420
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
1421
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
1422
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[1]);
1423
174k
   word3_add(&w2, &w1, &w0, z[7]);
1424
174k
   ws[7] = w0 * p_dash;
1425
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[0]);
1426
174k
   w0 = w1; w1 = w2; w2 = 0;
1427
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[8]);
1428
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[7]);
1429
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[6]);
1430
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
1431
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
1432
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
1433
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[2]);
1434
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[1]);
1435
174k
   word3_add(&w2, &w1, &w0, z[8]);
1436
174k
   ws[8] = w0 * p_dash;
1437
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[0]);
1438
174k
   w0 = w1; w1 = w2; w2 = 0;
1439
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[9]);
1440
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[8]);
1441
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[7]);
1442
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[6]);
1443
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
1444
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
1445
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[3]);
1446
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[2]);
1447
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[1]);
1448
174k
   word3_add(&w2, &w1, &w0, z[9]);
1449
174k
   ws[9] = w0 * p_dash;
1450
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[0]);
1451
174k
   w0 = w1; w1 = w2; w2 = 0;
1452
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[10]);
1453
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[9]);
1454
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[8]);
1455
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[7]);
1456
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[6]);
1457
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
1458
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[4]);
1459
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[3]);
1460
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[2]);
1461
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[1]);
1462
174k
   word3_add(&w2, &w1, &w0, z[10]);
1463
174k
   ws[10] = w0 * p_dash;
1464
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[0]);
1465
174k
   w0 = w1; w1 = w2; w2 = 0;
1466
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[11]);
1467
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[10]);
1468
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[9]);
1469
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[8]);
1470
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[7]);
1471
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[6]);
1472
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[5]);
1473
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[4]);
1474
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[3]);
1475
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[2]);
1476
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[1]);
1477
174k
   word3_add(&w2, &w1, &w0, z[11]);
1478
174k
   ws[11] = w0 * p_dash;
1479
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[0]);
1480
174k
   w0 = w1; w1 = w2; w2 = 0;
1481
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[12]);
1482
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[11]);
1483
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[10]);
1484
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[9]);
1485
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[8]);
1486
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[7]);
1487
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[6]);
1488
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[5]);
1489
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[4]);
1490
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[3]);
1491
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[2]);
1492
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[1]);
1493
174k
   word3_add(&w2, &w1, &w0, z[12]);
1494
174k
   ws[12] = w0 * p_dash;
1495
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[0]);
1496
174k
   w0 = w1; w1 = w2; w2 = 0;
1497
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[13]);
1498
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[12]);
1499
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[11]);
1500
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[10]);
1501
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[9]);
1502
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[8]);
1503
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[7]);
1504
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[6]);
1505
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[5]);
1506
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[4]);
1507
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[3]);
1508
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[2]);
1509
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[1]);
1510
174k
   word3_add(&w2, &w1, &w0, z[13]);
1511
174k
   ws[13] = w0 * p_dash;
1512
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[0]);
1513
174k
   w0 = w1; w1 = w2; w2 = 0;
1514
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[14]);
1515
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[13]);
1516
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[12]);
1517
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[11]);
1518
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[10]);
1519
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[9]);
1520
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[8]);
1521
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[7]);
1522
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[6]);
1523
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[5]);
1524
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[4]);
1525
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[3]);
1526
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[2]);
1527
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[1]);
1528
174k
   word3_add(&w2, &w1, &w0, z[14]);
1529
174k
   ws[14] = w0 * p_dash;
1530
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[0]);
1531
174k
   w0 = w1; w1 = w2; w2 = 0;
1532
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[15]);
1533
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[14]);
1534
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[13]);
1535
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[12]);
1536
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[11]);
1537
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[10]);
1538
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[9]);
1539
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[8]);
1540
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[7]);
1541
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[6]);
1542
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[5]);
1543
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[4]);
1544
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[3]);
1545
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[2]);
1546
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[1]);
1547
174k
   word3_add(&w2, &w1, &w0, z[15]);
1548
174k
   ws[15] = w0 * p_dash;
1549
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[0]);
1550
174k
   w0 = w1; w1 = w2; w2 = 0;
1551
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[16]);
1552
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[15]);
1553
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[14]);
1554
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[13]);
1555
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[12]);
1556
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[11]);
1557
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[10]);
1558
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[9]);
1559
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[8]);
1560
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[7]);
1561
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[6]);
1562
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[5]);
1563
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[4]);
1564
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[3]);
1565
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[2]);
1566
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[1]);
1567
174k
   word3_add(&w2, &w1, &w0, z[16]);
1568
174k
   ws[16] = w0 * p_dash;
1569
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[0]);
1570
174k
   w0 = w1; w1 = w2; w2 = 0;
1571
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[17]);
1572
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[16]);
1573
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[15]);
1574
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[14]);
1575
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[13]);
1576
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[12]);
1577
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[11]);
1578
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[10]);
1579
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[9]);
1580
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[8]);
1581
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[7]);
1582
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[6]);
1583
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[5]);
1584
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[4]);
1585
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[3]);
1586
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[2]);
1587
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[1]);
1588
174k
   word3_add(&w2, &w1, &w0, z[17]);
1589
174k
   ws[17] = w0 * p_dash;
1590
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[0]);
1591
174k
   w0 = w1; w1 = w2; w2 = 0;
1592
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[18]);
1593
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[17]);
1594
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[16]);
1595
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[15]);
1596
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[14]);
1597
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[13]);
1598
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[12]);
1599
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[11]);
1600
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[10]);
1601
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[9]);
1602
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[8]);
1603
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[7]);
1604
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[6]);
1605
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[5]);
1606
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[4]);
1607
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[3]);
1608
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[2]);
1609
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[1]);
1610
174k
   word3_add(&w2, &w1, &w0, z[18]);
1611
174k
   ws[18] = w0 * p_dash;
1612
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[0]);
1613
174k
   w0 = w1; w1 = w2; w2 = 0;
1614
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[19]);
1615
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[18]);
1616
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[17]);
1617
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[16]);
1618
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[15]);
1619
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[14]);
1620
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[13]);
1621
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[12]);
1622
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[11]);
1623
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[10]);
1624
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[9]);
1625
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[8]);
1626
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[7]);
1627
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[6]);
1628
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[5]);
1629
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[4]);
1630
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[3]);
1631
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[2]);
1632
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[1]);
1633
174k
   word3_add(&w2, &w1, &w0, z[19]);
1634
174k
   ws[19] = w0 * p_dash;
1635
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[0]);
1636
174k
   w0 = w1; w1 = w2; w2 = 0;
1637
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[20]);
1638
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[19]);
1639
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[18]);
1640
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[17]);
1641
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[16]);
1642
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[15]);
1643
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[14]);
1644
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[13]);
1645
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[12]);
1646
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[11]);
1647
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[10]);
1648
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[9]);
1649
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[8]);
1650
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[7]);
1651
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[6]);
1652
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[5]);
1653
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[4]);
1654
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[3]);
1655
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[2]);
1656
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[1]);
1657
174k
   word3_add(&w2, &w1, &w0, z[20]);
1658
174k
   ws[20] = w0 * p_dash;
1659
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[0]);
1660
174k
   w0 = w1; w1 = w2; w2 = 0;
1661
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[21]);
1662
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[20]);
1663
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[19]);
1664
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[18]);
1665
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[17]);
1666
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[16]);
1667
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[15]);
1668
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[14]);
1669
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[13]);
1670
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[12]);
1671
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[11]);
1672
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[10]);
1673
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[9]);
1674
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[8]);
1675
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[7]);
1676
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[6]);
1677
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[5]);
1678
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[4]);
1679
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[3]);
1680
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[2]);
1681
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[1]);
1682
174k
   word3_add(&w2, &w1, &w0, z[21]);
1683
174k
   ws[21] = w0 * p_dash;
1684
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[0]);
1685
174k
   w0 = w1; w1 = w2; w2 = 0;
1686
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[22]);
1687
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[21]);
1688
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[20]);
1689
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[19]);
1690
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[18]);
1691
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[17]);
1692
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[16]);
1693
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[15]);
1694
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[14]);
1695
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[13]);
1696
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[12]);
1697
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[11]);
1698
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[10]);
1699
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[9]);
1700
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[8]);
1701
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[7]);
1702
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[6]);
1703
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[5]);
1704
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[4]);
1705
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[3]);
1706
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[2]);
1707
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[1]);
1708
174k
   word3_add(&w2, &w1, &w0, z[22]);
1709
174k
   ws[22] = w0 * p_dash;
1710
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[0]);
1711
174k
   w0 = w1; w1 = w2; w2 = 0;
1712
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[23]);
1713
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[22]);
1714
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[21]);
1715
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[20]);
1716
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[19]);
1717
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[18]);
1718
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[17]);
1719
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[16]);
1720
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[15]);
1721
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[14]);
1722
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[13]);
1723
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[12]);
1724
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[11]);
1725
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[10]);
1726
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[9]);
1727
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[8]);
1728
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[7]);
1729
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[6]);
1730
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[5]);
1731
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[4]);
1732
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[3]);
1733
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[2]);
1734
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[1]);
1735
174k
   word3_add(&w2, &w1, &w0, z[23]);
1736
174k
   ws[23] = w0 * p_dash;
1737
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[0]);
1738
174k
   w0 = w1; w1 = w2; w2 = 0;
1739
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[24]);
1740
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[23]);
1741
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[22]);
1742
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[21]);
1743
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[20]);
1744
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[19]);
1745
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[18]);
1746
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[17]);
1747
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[16]);
1748
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[15]);
1749
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[14]);
1750
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[13]);
1751
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[12]);
1752
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[11]);
1753
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[10]);
1754
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[9]);
1755
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[8]);
1756
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[7]);
1757
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[6]);
1758
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[5]);
1759
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[4]);
1760
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[3]);
1761
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[2]);
1762
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[1]);
1763
174k
   word3_add(&w2, &w1, &w0, z[24]);
1764
174k
   ws[24] = w0 * p_dash;
1765
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[0]);
1766
174k
   w0 = w1; w1 = w2; w2 = 0;
1767
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[25]);
1768
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[24]);
1769
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[23]);
1770
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[22]);
1771
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[21]);
1772
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[20]);
1773
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[19]);
1774
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[18]);
1775
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[17]);
1776
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[16]);
1777
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[15]);
1778
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[14]);
1779
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[13]);
1780
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[12]);
1781
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[11]);
1782
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[10]);
1783
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[9]);
1784
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[8]);
1785
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[7]);
1786
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[6]);
1787
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[5]);
1788
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[4]);
1789
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[3]);
1790
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[2]);
1791
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[1]);
1792
174k
   word3_add(&w2, &w1, &w0, z[25]);
1793
174k
   ws[25] = w0 * p_dash;
1794
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[0]);
1795
174k
   w0 = w1; w1 = w2; w2 = 0;
1796
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[26]);
1797
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[25]);
1798
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[24]);
1799
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[23]);
1800
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[22]);
1801
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[21]);
1802
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[20]);
1803
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[19]);
1804
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[18]);
1805
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[17]);
1806
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[16]);
1807
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[15]);
1808
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[14]);
1809
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[13]);
1810
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[12]);
1811
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[11]);
1812
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[10]);
1813
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[9]);
1814
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[8]);
1815
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[7]);
1816
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[6]);
1817
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[5]);
1818
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[4]);
1819
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[3]);
1820
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[2]);
1821
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[1]);
1822
174k
   word3_add(&w2, &w1, &w0, z[26]);
1823
174k
   ws[26] = w0 * p_dash;
1824
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[0]);
1825
174k
   w0 = w1; w1 = w2; w2 = 0;
1826
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[27]);
1827
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[26]);
1828
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[25]);
1829
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[24]);
1830
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[23]);
1831
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[22]);
1832
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[21]);
1833
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[20]);
1834
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[19]);
1835
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[18]);
1836
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[17]);
1837
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[16]);
1838
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[15]);
1839
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[14]);
1840
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[13]);
1841
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[12]);
1842
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[11]);
1843
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[10]);
1844
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[9]);
1845
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[8]);
1846
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[7]);
1847
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[6]);
1848
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[5]);
1849
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[4]);
1850
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[3]);
1851
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[2]);
1852
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[1]);
1853
174k
   word3_add(&w2, &w1, &w0, z[27]);
1854
174k
   ws[27] = w0 * p_dash;
1855
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[0]);
1856
174k
   w0 = w1; w1 = w2; w2 = 0;
1857
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[28]);
1858
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[27]);
1859
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[26]);
1860
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[25]);
1861
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[24]);
1862
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[23]);
1863
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[22]);
1864
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[21]);
1865
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[20]);
1866
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[19]);
1867
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[18]);
1868
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[17]);
1869
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[16]);
1870
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[15]);
1871
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[14]);
1872
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[13]);
1873
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[12]);
1874
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[11]);
1875
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[10]);
1876
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[9]);
1877
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[8]);
1878
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[7]);
1879
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[6]);
1880
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[5]);
1881
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[4]);
1882
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[3]);
1883
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[2]);
1884
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[1]);
1885
174k
   word3_add(&w2, &w1, &w0, z[28]);
1886
174k
   ws[28] = w0 * p_dash;
1887
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[0]);
1888
174k
   w0 = w1; w1 = w2; w2 = 0;
1889
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[29]);
1890
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[28]);
1891
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[27]);
1892
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[26]);
1893
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[25]);
1894
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[24]);
1895
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[23]);
1896
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[22]);
1897
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[21]);
1898
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[20]);
1899
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[19]);
1900
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[18]);
1901
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[17]);
1902
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[16]);
1903
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[15]);
1904
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[14]);
1905
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[13]);
1906
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[12]);
1907
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[11]);
1908
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[10]);
1909
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[9]);
1910
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[8]);
1911
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[7]);
1912
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[6]);
1913
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[5]);
1914
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[4]);
1915
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[3]);
1916
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[2]);
1917
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[1]);
1918
174k
   word3_add(&w2, &w1, &w0, z[29]);
1919
174k
   ws[29] = w0 * p_dash;
1920
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[0]);
1921
174k
   w0 = w1; w1 = w2; w2 = 0;
1922
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[30]);
1923
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[29]);
1924
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[28]);
1925
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[27]);
1926
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[26]);
1927
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[25]);
1928
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[24]);
1929
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[23]);
1930
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[22]);
1931
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[21]);
1932
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[20]);
1933
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[19]);
1934
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[18]);
1935
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[17]);
1936
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[16]);
1937
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[15]);
1938
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[14]);
1939
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[13]);
1940
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[12]);
1941
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[11]);
1942
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[10]);
1943
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[9]);
1944
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[8]);
1945
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[7]);
1946
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[6]);
1947
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[5]);
1948
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[4]);
1949
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[3]);
1950
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[2]);
1951
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[1]);
1952
174k
   word3_add(&w2, &w1, &w0, z[30]);
1953
174k
   ws[30] = w0 * p_dash;
1954
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[0]);
1955
174k
   w0 = w1; w1 = w2; w2 = 0;
1956
174k
   word3_muladd(&w2, &w1, &w0, ws[0], p[31]);
1957
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[30]);
1958
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[29]);
1959
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[28]);
1960
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[27]);
1961
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[26]);
1962
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[25]);
1963
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[24]);
1964
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[23]);
1965
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[22]);
1966
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[21]);
1967
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[20]);
1968
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[19]);
1969
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[18]);
1970
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[17]);
1971
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[16]);
1972
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[15]);
1973
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[14]);
1974
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[13]);
1975
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[12]);
1976
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[11]);
1977
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[10]);
1978
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[9]);
1979
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[8]);
1980
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[7]);
1981
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[6]);
1982
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[5]);
1983
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[4]);
1984
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[3]);
1985
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[2]);
1986
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[1]);
1987
174k
   word3_add(&w2, &w1, &w0, z[31]);
1988
174k
   ws[31] = w0 * p_dash;
1989
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[0]);
1990
174k
   w0 = w1; w1 = w2; w2 = 0;
1991
174k
   word3_muladd(&w2, &w1, &w0, ws[1], p[31]);
1992
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[30]);
1993
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[29]);
1994
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[28]);
1995
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[27]);
1996
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[26]);
1997
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[25]);
1998
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[24]);
1999
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[23]);
2000
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[22]);
2001
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[21]);
2002
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[20]);
2003
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[19]);
2004
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[18]);
2005
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[17]);
2006
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[16]);
2007
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[15]);
2008
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[14]);
2009
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[13]);
2010
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[12]);
2011
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[11]);
2012
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[10]);
2013
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[9]);
2014
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[8]);
2015
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[7]);
2016
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[6]);
2017
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[5]);
2018
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[4]);
2019
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[3]);
2020
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[2]);
2021
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[1]);
2022
174k
   word3_add(&w2, &w1, &w0, z[32]);
2023
174k
   ws[0] = w0;
2024
174k
   w0 = w1; w1 = w2; w2 = 0;
2025
174k
   word3_muladd(&w2, &w1, &w0, ws[2], p[31]);
2026
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[30]);
2027
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[29]);
2028
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[28]);
2029
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[27]);
2030
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[26]);
2031
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[25]);
2032
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[24]);
2033
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[23]);
2034
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[22]);
2035
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[21]);
2036
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[20]);
2037
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[19]);
2038
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[18]);
2039
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[17]);
2040
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[16]);
2041
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[15]);
2042
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[14]);
2043
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[13]);
2044
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[12]);
2045
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[11]);
2046
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[10]);
2047
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[9]);
2048
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[8]);
2049
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[7]);
2050
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[6]);
2051
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[5]);
2052
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[4]);
2053
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[3]);
2054
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[2]);
2055
174k
   word3_add(&w2, &w1, &w0, z[33]);
2056
174k
   ws[1] = w0;
2057
174k
   w0 = w1; w1 = w2; w2 = 0;
2058
174k
   word3_muladd(&w2, &w1, &w0, ws[3], p[31]);
2059
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[30]);
2060
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[29]);
2061
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[28]);
2062
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[27]);
2063
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[26]);
2064
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[25]);
2065
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[24]);
2066
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[23]);
2067
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[22]);
2068
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[21]);
2069
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[20]);
2070
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[19]);
2071
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[18]);
2072
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[17]);
2073
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[16]);
2074
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[15]);
2075
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[14]);
2076
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[13]);
2077
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[12]);
2078
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[11]);
2079
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[10]);
2080
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[9]);
2081
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[8]);
2082
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[7]);
2083
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[6]);
2084
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[5]);
2085
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[4]);
2086
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[3]);
2087
174k
   word3_add(&w2, &w1, &w0, z[34]);
2088
174k
   ws[2] = w0;
2089
174k
   w0 = w1; w1 = w2; w2 = 0;
2090
174k
   word3_muladd(&w2, &w1, &w0, ws[4], p[31]);
2091
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[30]);
2092
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[29]);
2093
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[28]);
2094
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[27]);
2095
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[26]);
2096
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[25]);
2097
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[24]);
2098
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[23]);
2099
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[22]);
2100
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[21]);
2101
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[20]);
2102
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[19]);
2103
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[18]);
2104
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[17]);
2105
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[16]);
2106
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[15]);
2107
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[14]);
2108
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[13]);
2109
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[12]);
2110
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[11]);
2111
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[10]);
2112
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[9]);
2113
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[8]);
2114
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[7]);
2115
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[6]);
2116
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[5]);
2117
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[4]);
2118
174k
   word3_add(&w2, &w1, &w0, z[35]);
2119
174k
   ws[3] = w0;
2120
174k
   w0 = w1; w1 = w2; w2 = 0;
2121
174k
   word3_muladd(&w2, &w1, &w0, ws[5], p[31]);
2122
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[30]);
2123
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[29]);
2124
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[28]);
2125
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[27]);
2126
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[26]);
2127
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[25]);
2128
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[24]);
2129
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[23]);
2130
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[22]);
2131
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[21]);
2132
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[20]);
2133
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[19]);
2134
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[18]);
2135
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[17]);
2136
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[16]);
2137
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[15]);
2138
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[14]);
2139
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[13]);
2140
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[12]);
2141
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[11]);
2142
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[10]);
2143
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[9]);
2144
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[8]);
2145
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[7]);
2146
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[6]);
2147
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[5]);
2148
174k
   word3_add(&w2, &w1, &w0, z[36]);
2149
174k
   ws[4] = w0;
2150
174k
   w0 = w1; w1 = w2; w2 = 0;
2151
174k
   word3_muladd(&w2, &w1, &w0, ws[6], p[31]);
2152
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[30]);
2153
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[29]);
2154
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[28]);
2155
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[27]);
2156
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[26]);
2157
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[25]);
2158
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[24]);
2159
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[23]);
2160
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[22]);
2161
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[21]);
2162
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[20]);
2163
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[19]);
2164
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[18]);
2165
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[17]);
2166
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[16]);
2167
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[15]);
2168
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[14]);
2169
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[13]);
2170
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[12]);
2171
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[11]);
2172
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[10]);
2173
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[9]);
2174
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[8]);
2175
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[7]);
2176
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[6]);
2177
174k
   word3_add(&w2, &w1, &w0, z[37]);
2178
174k
   ws[5] = w0;
2179
174k
   w0 = w1; w1 = w2; w2 = 0;
2180
174k
   word3_muladd(&w2, &w1, &w0, ws[7], p[31]);
2181
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[30]);
2182
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[29]);
2183
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[28]);
2184
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[27]);
2185
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[26]);
2186
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[25]);
2187
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[24]);
2188
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[23]);
2189
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[22]);
2190
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[21]);
2191
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[20]);
2192
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[19]);
2193
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[18]);
2194
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[17]);
2195
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[16]);
2196
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[15]);
2197
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[14]);
2198
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[13]);
2199
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[12]);
2200
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[11]);
2201
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[10]);
2202
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[9]);
2203
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[8]);
2204
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[7]);
2205
174k
   word3_add(&w2, &w1, &w0, z[38]);
2206
174k
   ws[6] = w0;
2207
174k
   w0 = w1; w1 = w2; w2 = 0;
2208
174k
   word3_muladd(&w2, &w1, &w0, ws[8], p[31]);
2209
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[30]);
2210
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[29]);
2211
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[28]);
2212
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[27]);
2213
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[26]);
2214
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[25]);
2215
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[24]);
2216
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[23]);
2217
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[22]);
2218
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[21]);
2219
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[20]);
2220
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[19]);
2221
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[18]);
2222
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[17]);
2223
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[16]);
2224
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[15]);
2225
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[14]);
2226
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[13]);
2227
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[12]);
2228
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[11]);
2229
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[10]);
2230
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[9]);
2231
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[8]);
2232
174k
   word3_add(&w2, &w1, &w0, z[39]);
2233
174k
   ws[7] = w0;
2234
174k
   w0 = w1; w1 = w2; w2 = 0;
2235
174k
   word3_muladd(&w2, &w1, &w0, ws[9], p[31]);
2236
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[30]);
2237
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[29]);
2238
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[28]);
2239
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[27]);
2240
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[26]);
2241
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[25]);
2242
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[24]);
2243
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[23]);
2244
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[22]);
2245
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[21]);
2246
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[20]);
2247
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[19]);
2248
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[18]);
2249
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[17]);
2250
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[16]);
2251
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[15]);
2252
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[14]);
2253
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[13]);
2254
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[12]);
2255
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[11]);
2256
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[10]);
2257
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[9]);
2258
174k
   word3_add(&w2, &w1, &w0, z[40]);
2259
174k
   ws[8] = w0;
2260
174k
   w0 = w1; w1 = w2; w2 = 0;
2261
174k
   word3_muladd(&w2, &w1, &w0, ws[10], p[31]);
2262
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[30]);
2263
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[29]);
2264
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[28]);
2265
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[27]);
2266
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[26]);
2267
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[25]);
2268
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[24]);
2269
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[23]);
2270
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[22]);
2271
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[21]);
2272
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[20]);
2273
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[19]);
2274
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[18]);
2275
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[17]);
2276
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[16]);
2277
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[15]);
2278
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[14]);
2279
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[13]);
2280
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[12]);
2281
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[11]);
2282
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[10]);
2283
174k
   word3_add(&w2, &w1, &w0, z[41]);
2284
174k
   ws[9] = w0;
2285
174k
   w0 = w1; w1 = w2; w2 = 0;
2286
174k
   word3_muladd(&w2, &w1, &w0, ws[11], p[31]);
2287
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[30]);
2288
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[29]);
2289
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[28]);
2290
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[27]);
2291
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[26]);
2292
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[25]);
2293
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[24]);
2294
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[23]);
2295
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[22]);
2296
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[21]);
2297
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[20]);
2298
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[19]);
2299
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[18]);
2300
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[17]);
2301
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[16]);
2302
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[15]);
2303
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[14]);
2304
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[13]);
2305
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[12]);
2306
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[11]);
2307
174k
   word3_add(&w2, &w1, &w0, z[42]);
2308
174k
   ws[10] = w0;
2309
174k
   w0 = w1; w1 = w2; w2 = 0;
2310
174k
   word3_muladd(&w2, &w1, &w0, ws[12], p[31]);
2311
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[30]);
2312
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[29]);
2313
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[28]);
2314
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[27]);
2315
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[26]);
2316
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[25]);
2317
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[24]);
2318
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[23]);
2319
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[22]);
2320
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[21]);
2321
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[20]);
2322
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[19]);
2323
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[18]);
2324
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[17]);
2325
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[16]);
2326
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[15]);
2327
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[14]);
2328
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[13]);
2329
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[12]);
2330
174k
   word3_add(&w2, &w1, &w0, z[43]);
2331
174k
   ws[11] = w0;
2332
174k
   w0 = w1; w1 = w2; w2 = 0;
2333
174k
   word3_muladd(&w2, &w1, &w0, ws[13], p[31]);
2334
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[30]);
2335
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[29]);
2336
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[28]);
2337
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[27]);
2338
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[26]);
2339
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[25]);
2340
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[24]);
2341
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[23]);
2342
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[22]);
2343
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[21]);
2344
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[20]);
2345
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[19]);
2346
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[18]);
2347
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[17]);
2348
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[16]);
2349
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[15]);
2350
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[14]);
2351
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[13]);
2352
174k
   word3_add(&w2, &w1, &w0, z[44]);
2353
174k
   ws[12] = w0;
2354
174k
   w0 = w1; w1 = w2; w2 = 0;
2355
174k
   word3_muladd(&w2, &w1, &w0, ws[14], p[31]);
2356
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[30]);
2357
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[29]);
2358
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[28]);
2359
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[27]);
2360
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[26]);
2361
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[25]);
2362
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[24]);
2363
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[23]);
2364
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[22]);
2365
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[21]);
2366
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[20]);
2367
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[19]);
2368
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[18]);
2369
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[17]);
2370
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[16]);
2371
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[15]);
2372
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[14]);
2373
174k
   word3_add(&w2, &w1, &w0, z[45]);
2374
174k
   ws[13] = w0;
2375
174k
   w0 = w1; w1 = w2; w2 = 0;
2376
174k
   word3_muladd(&w2, &w1, &w0, ws[15], p[31]);
2377
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[30]);
2378
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[29]);
2379
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[28]);
2380
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[27]);
2381
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[26]);
2382
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[25]);
2383
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[24]);
2384
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[23]);
2385
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[22]);
2386
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[21]);
2387
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[20]);
2388
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[19]);
2389
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[18]);
2390
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[17]);
2391
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[16]);
2392
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[15]);
2393
174k
   word3_add(&w2, &w1, &w0, z[46]);
2394
174k
   ws[14] = w0;
2395
174k
   w0 = w1; w1 = w2; w2 = 0;
2396
174k
   word3_muladd(&w2, &w1, &w0, ws[16], p[31]);
2397
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[30]);
2398
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[29]);
2399
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[28]);
2400
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[27]);
2401
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[26]);
2402
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[25]);
2403
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[24]);
2404
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[23]);
2405
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[22]);
2406
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[21]);
2407
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[20]);
2408
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[19]);
2409
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[18]);
2410
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[17]);
2411
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[16]);
2412
174k
   word3_add(&w2, &w1, &w0, z[47]);
2413
174k
   ws[15] = w0;
2414
174k
   w0 = w1; w1 = w2; w2 = 0;
2415
174k
   word3_muladd(&w2, &w1, &w0, ws[17], p[31]);
2416
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[30]);
2417
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[29]);
2418
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[28]);
2419
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[27]);
2420
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[26]);
2421
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[25]);
2422
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[24]);
2423
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[23]);
2424
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[22]);
2425
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[21]);
2426
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[20]);
2427
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[19]);
2428
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[18]);
2429
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[17]);
2430
174k
   word3_add(&w2, &w1, &w0, z[48]);
2431
174k
   ws[16] = w0;
2432
174k
   w0 = w1; w1 = w2; w2 = 0;
2433
174k
   word3_muladd(&w2, &w1, &w0, ws[18], p[31]);
2434
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[30]);
2435
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[29]);
2436
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[28]);
2437
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[27]);
2438
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[26]);
2439
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[25]);
2440
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[24]);
2441
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[23]);
2442
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[22]);
2443
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[21]);
2444
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[20]);
2445
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[19]);
2446
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[18]);
2447
174k
   word3_add(&w2, &w1, &w0, z[49]);
2448
174k
   ws[17] = w0;
2449
174k
   w0 = w1; w1 = w2; w2 = 0;
2450
174k
   word3_muladd(&w2, &w1, &w0, ws[19], p[31]);
2451
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[30]);
2452
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[29]);
2453
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[28]);
2454
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[27]);
2455
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[26]);
2456
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[25]);
2457
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[24]);
2458
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[23]);
2459
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[22]);
2460
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[21]);
2461
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[20]);
2462
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[19]);
2463
174k
   word3_add(&w2, &w1, &w0, z[50]);
2464
174k
   ws[18] = w0;
2465
174k
   w0 = w1; w1 = w2; w2 = 0;
2466
174k
   word3_muladd(&w2, &w1, &w0, ws[20], p[31]);
2467
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[30]);
2468
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[29]);
2469
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[28]);
2470
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[27]);
2471
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[26]);
2472
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[25]);
2473
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[24]);
2474
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[23]);
2475
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[22]);
2476
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[21]);
2477
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[20]);
2478
174k
   word3_add(&w2, &w1, &w0, z[51]);
2479
174k
   ws[19] = w0;
2480
174k
   w0 = w1; w1 = w2; w2 = 0;
2481
174k
   word3_muladd(&w2, &w1, &w0, ws[21], p[31]);
2482
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[30]);
2483
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[29]);
2484
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[28]);
2485
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[27]);
2486
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[26]);
2487
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[25]);
2488
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[24]);
2489
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[23]);
2490
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[22]);
2491
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[21]);
2492
174k
   word3_add(&w2, &w1, &w0, z[52]);
2493
174k
   ws[20] = w0;
2494
174k
   w0 = w1; w1 = w2; w2 = 0;
2495
174k
   word3_muladd(&w2, &w1, &w0, ws[22], p[31]);
2496
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[30]);
2497
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[29]);
2498
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[28]);
2499
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[27]);
2500
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[26]);
2501
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[25]);
2502
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[24]);
2503
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[23]);
2504
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[22]);
2505
174k
   word3_add(&w2, &w1, &w0, z[53]);
2506
174k
   ws[21] = w0;
2507
174k
   w0 = w1; w1 = w2; w2 = 0;
2508
174k
   word3_muladd(&w2, &w1, &w0, ws[23], p[31]);
2509
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[30]);
2510
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[29]);
2511
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[28]);
2512
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[27]);
2513
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[26]);
2514
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[25]);
2515
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[24]);
2516
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[23]);
2517
174k
   word3_add(&w2, &w1, &w0, z[54]);
2518
174k
   ws[22] = w0;
2519
174k
   w0 = w1; w1 = w2; w2 = 0;
2520
174k
   word3_muladd(&w2, &w1, &w0, ws[24], p[31]);
2521
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[30]);
2522
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[29]);
2523
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[28]);
2524
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[27]);
2525
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[26]);
2526
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[25]);
2527
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[24]);
2528
174k
   word3_add(&w2, &w1, &w0, z[55]);
2529
174k
   ws[23] = w0;
2530
174k
   w0 = w1; w1 = w2; w2 = 0;
2531
174k
   word3_muladd(&w2, &w1, &w0, ws[25], p[31]);
2532
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[30]);
2533
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[29]);
2534
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[28]);
2535
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[27]);
2536
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[26]);
2537
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[25]);
2538
174k
   word3_add(&w2, &w1, &w0, z[56]);
2539
174k
   ws[24] = w0;
2540
174k
   w0 = w1; w1 = w2; w2 = 0;
2541
174k
   word3_muladd(&w2, &w1, &w0, ws[26], p[31]);
2542
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[30]);
2543
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[29]);
2544
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[28]);
2545
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[27]);
2546
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[26]);
2547
174k
   word3_add(&w2, &w1, &w0, z[57]);
2548
174k
   ws[25] = w0;
2549
174k
   w0 = w1; w1 = w2; w2 = 0;
2550
174k
   word3_muladd(&w2, &w1, &w0, ws[27], p[31]);
2551
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[30]);
2552
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[29]);
2553
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[28]);
2554
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[27]);
2555
174k
   word3_add(&w2, &w1, &w0, z[58]);
2556
174k
   ws[26] = w0;
2557
174k
   w0 = w1; w1 = w2; w2 = 0;
2558
174k
   word3_muladd(&w2, &w1, &w0, ws[28], p[31]);
2559
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[30]);
2560
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[29]);
2561
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[28]);
2562
174k
   word3_add(&w2, &w1, &w0, z[59]);
2563
174k
   ws[27] = w0;
2564
174k
   w0 = w1; w1 = w2; w2 = 0;
2565
174k
   word3_muladd(&w2, &w1, &w0, ws[29], p[31]);
2566
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[30]);
2567
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[29]);
2568
174k
   word3_add(&w2, &w1, &w0, z[60]);
2569
174k
   ws[28] = w0;
2570
174k
   w0 = w1; w1 = w2; w2 = 0;
2571
174k
   word3_muladd(&w2, &w1, &w0, ws[30], p[31]);
2572
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[30]);
2573
174k
   word3_add(&w2, &w1, &w0, z[61]);
2574
174k
   ws[29] = w0;
2575
174k
   w0 = w1; w1 = w2; w2 = 0;
2576
174k
   word3_muladd(&w2, &w1, &w0, ws[31], p[31]);
2577
174k
   word3_add(&w2, &w1, &w0, z[62]);
2578
174k
   ws[30] = w0;
2579
174k
   w0 = w1; w1 = w2; w2 = 0;
2580
174k
   word3_add(&w2, &w1, &w0, z[63]);
2581
174k
   ws[31] = w0;
2582
174k
   w0 = w1; w1 = w2; w2 = 0;
2583
174k
   word3_add(&w2, &w1, &w0, z[65]);
2584
174k
   ws[32] = w0;
2585
174k
   ws[33] = w1;
2586
174k
   word borrow = bigint_sub3(ws + 32 + 1, ws, 32 + 1, p, 32);
2587
174k
   CT::conditional_copy_mem(borrow, z, ws, ws + 33, 33);
2588
174k
   clear_mem(z + 32, 2*(32+1) - 32);
2589
174k
   }
2590
2591
}