To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

The primary repository for this project is hosted at https://github.com/sonic-visualiser/sv-dependency-builds .
This repository is a read-only copy which is updated automatically every hour.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / src / fftw-3.3.8 / dft / scalar / codelets / q1_5.c @ 167:bd3cc4d1df30

History | View | Annotate | Download (27.1 KB)

1
/*
2
 * Copyright (c) 2003, 2007-14 Matteo Frigo
3
 * Copyright (c) 2003, 2007-14 Massachusetts Institute of Technology
4
 *
5
 * This program is free software; you can redistribute it and/or modify
6
 * it under the terms of the GNU General Public License as published by
7
 * the Free Software Foundation; either version 2 of the License, or
8
 * (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18
 *
19
 */
20

    
21
/* This file was automatically generated --- DO NOT EDIT */
22
/* Generated on Thu May 24 08:04:30 EDT 2018 */
23

    
24
#include "dft/codelet-dft.h"
25

    
26
#if defined(ARCH_PREFERS_FMA) || defined(ISA_EXTENSION_PREFERS_FMA)
27

    
28
/* Generated by: ../../../genfft/gen_twidsq.native -fma -compact -variables 4 -pipeline-latency 4 -reload-twiddle -dif -n 5 -name q1_5 -include dft/scalar/q.h */
29

    
30
/*
31
 * This function contains 200 FP additions, 170 FP multiplications,
32
 * (or, 70 additions, 40 multiplications, 130 fused multiply/add),
33
 * 75 stack variables, 4 constants, and 100 memory accesses
34
 */
35
#include "dft/scalar/q.h"
36

    
37
static void q1_5(R *rio, R *iio, const R *W, stride rs, stride vs, INT mb, INT me, INT ms)
38
{
39
     DK(KP951056516, +0.951056516295153572116439333379382143405698634);
40
     DK(KP559016994, +0.559016994374947424102293417182819058860154590);
41
     DK(KP250000000, +0.250000000000000000000000000000000000000000000);
42
     DK(KP618033988, +0.618033988749894848204586834365638117720309180);
43
     {
44
          INT m;
45
          for (m = mb, W = W + (mb * 8); m < me; m = m + 1, rio = rio + ms, iio = iio + ms, W = W + 8, MAKE_VOLATILE_STRIDE(10, rs), MAKE_VOLATILE_STRIDE(0, vs)) {
46
               E T1, Tb, TM, Tw, T8, Ta, Tn, Tj, TH, Ts, Tq, Tr, TV, T15, T1G;
47
               E T1q, T12, T14, T1h, T1d, T1B, T1m, T1k, T1l, T1P, T1Z, T2A, T2k, T1W, T1Y;
48
               E T2b, T27, T2v, T2g, T2e, T2f, T3Z, T3V, T4j, T44, T42, T43, T3D, T3N, T4o;
49
               E T48, T3K, T3M, T2J, T2T, T3u, T3e, T2Q, T2S, T35, T31, T3p, T3a, T38, T39;
50
               {
51
                    E T7, Tv, T4, Tu;
52
                    T1 = rio[0];
53
                    {
54
                         E T5, T6, T2, T3;
55
                         T5 = rio[WS(rs, 2)];
56
                         T6 = rio[WS(rs, 3)];
57
                         T7 = T5 + T6;
58
                         Tv = T5 - T6;
59
                         T2 = rio[WS(rs, 1)];
60
                         T3 = rio[WS(rs, 4)];
61
                         T4 = T2 + T3;
62
                         Tu = T2 - T3;
63
                    }
64
                    Tb = T4 - T7;
65
                    TM = FNMS(KP618033988, Tu, Tv);
66
                    Tw = FMA(KP618033988, Tv, Tu);
67
                    T8 = T4 + T7;
68
                    Ta = FNMS(KP250000000, T8, T1);
69
               }
70
               {
71
                    E Ti, Tp, Tf, To;
72
                    Tn = iio[0];
73
                    {
74
                         E Tg, Th, Td, Te;
75
                         Tg = iio[WS(rs, 2)];
76
                         Th = iio[WS(rs, 3)];
77
                         Ti = Tg - Th;
78
                         Tp = Tg + Th;
79
                         Td = iio[WS(rs, 1)];
80
                         Te = iio[WS(rs, 4)];
81
                         Tf = Td - Te;
82
                         To = Td + Te;
83
                    }
84
                    Tj = FMA(KP618033988, Ti, Tf);
85
                    TH = FNMS(KP618033988, Tf, Ti);
86
                    Ts = To - Tp;
87
                    Tq = To + Tp;
88
                    Tr = FNMS(KP250000000, Tq, Tn);
89
               }
90
               {
91
                    E T11, T1p, TY, T1o;
92
                    TV = rio[WS(vs, 1)];
93
                    {
94
                         E TZ, T10, TW, TX;
95
                         TZ = rio[WS(vs, 1) + WS(rs, 2)];
96
                         T10 = rio[WS(vs, 1) + WS(rs, 3)];
97
                         T11 = TZ + T10;
98
                         T1p = TZ - T10;
99
                         TW = rio[WS(vs, 1) + WS(rs, 1)];
100
                         TX = rio[WS(vs, 1) + WS(rs, 4)];
101
                         TY = TW + TX;
102
                         T1o = TW - TX;
103
                    }
104
                    T15 = TY - T11;
105
                    T1G = FNMS(KP618033988, T1o, T1p);
106
                    T1q = FMA(KP618033988, T1p, T1o);
107
                    T12 = TY + T11;
108
                    T14 = FNMS(KP250000000, T12, TV);
109
               }
110
               {
111
                    E T1c, T1j, T19, T1i;
112
                    T1h = iio[WS(vs, 1)];
113
                    {
114
                         E T1a, T1b, T17, T18;
115
                         T1a = iio[WS(vs, 1) + WS(rs, 2)];
116
                         T1b = iio[WS(vs, 1) + WS(rs, 3)];
117
                         T1c = T1a - T1b;
118
                         T1j = T1a + T1b;
119
                         T17 = iio[WS(vs, 1) + WS(rs, 1)];
120
                         T18 = iio[WS(vs, 1) + WS(rs, 4)];
121
                         T19 = T17 - T18;
122
                         T1i = T17 + T18;
123
                    }
124
                    T1d = FMA(KP618033988, T1c, T19);
125
                    T1B = FNMS(KP618033988, T19, T1c);
126
                    T1m = T1i - T1j;
127
                    T1k = T1i + T1j;
128
                    T1l = FNMS(KP250000000, T1k, T1h);
129
               }
130
               {
131
                    E T1V, T2j, T1S, T2i;
132
                    T1P = rio[WS(vs, 2)];
133
                    {
134
                         E T1T, T1U, T1Q, T1R;
135
                         T1T = rio[WS(vs, 2) + WS(rs, 2)];
136
                         T1U = rio[WS(vs, 2) + WS(rs, 3)];
137
                         T1V = T1T + T1U;
138
                         T2j = T1T - T1U;
139
                         T1Q = rio[WS(vs, 2) + WS(rs, 1)];
140
                         T1R = rio[WS(vs, 2) + WS(rs, 4)];
141
                         T1S = T1Q + T1R;
142
                         T2i = T1Q - T1R;
143
                    }
144
                    T1Z = T1S - T1V;
145
                    T2A = FNMS(KP618033988, T2i, T2j);
146
                    T2k = FMA(KP618033988, T2j, T2i);
147
                    T1W = T1S + T1V;
148
                    T1Y = FNMS(KP250000000, T1W, T1P);
149
               }
150
               {
151
                    E T26, T2d, T23, T2c;
152
                    T2b = iio[WS(vs, 2)];
153
                    {
154
                         E T24, T25, T21, T22;
155
                         T24 = iio[WS(vs, 2) + WS(rs, 2)];
156
                         T25 = iio[WS(vs, 2) + WS(rs, 3)];
157
                         T26 = T24 - T25;
158
                         T2d = T24 + T25;
159
                         T21 = iio[WS(vs, 2) + WS(rs, 1)];
160
                         T22 = iio[WS(vs, 2) + WS(rs, 4)];
161
                         T23 = T21 - T22;
162
                         T2c = T21 + T22;
163
                    }
164
                    T27 = FMA(KP618033988, T26, T23);
165
                    T2v = FNMS(KP618033988, T23, T26);
166
                    T2g = T2c - T2d;
167
                    T2e = T2c + T2d;
168
                    T2f = FNMS(KP250000000, T2e, T2b);
169
               }
170
               {
171
                    E T3U, T41, T3R, T40;
172
                    T3Z = iio[WS(vs, 4)];
173
                    {
174
                         E T3S, T3T, T3P, T3Q;
175
                         T3S = iio[WS(vs, 4) + WS(rs, 2)];
176
                         T3T = iio[WS(vs, 4) + WS(rs, 3)];
177
                         T3U = T3S - T3T;
178
                         T41 = T3S + T3T;
179
                         T3P = iio[WS(vs, 4) + WS(rs, 1)];
180
                         T3Q = iio[WS(vs, 4) + WS(rs, 4)];
181
                         T3R = T3P - T3Q;
182
                         T40 = T3P + T3Q;
183
                    }
184
                    T3V = FMA(KP618033988, T3U, T3R);
185
                    T4j = FNMS(KP618033988, T3R, T3U);
186
                    T44 = T40 - T41;
187
                    T42 = T40 + T41;
188
                    T43 = FNMS(KP250000000, T42, T3Z);
189
               }
190
               {
191
                    E T3J, T47, T3G, T46;
192
                    T3D = rio[WS(vs, 4)];
193
                    {
194
                         E T3H, T3I, T3E, T3F;
195
                         T3H = rio[WS(vs, 4) + WS(rs, 2)];
196
                         T3I = rio[WS(vs, 4) + WS(rs, 3)];
197
                         T3J = T3H + T3I;
198
                         T47 = T3H - T3I;
199
                         T3E = rio[WS(vs, 4) + WS(rs, 1)];
200
                         T3F = rio[WS(vs, 4) + WS(rs, 4)];
201
                         T3G = T3E + T3F;
202
                         T46 = T3E - T3F;
203
                    }
204
                    T3N = T3G - T3J;
205
                    T4o = FNMS(KP618033988, T46, T47);
206
                    T48 = FMA(KP618033988, T47, T46);
207
                    T3K = T3G + T3J;
208
                    T3M = FNMS(KP250000000, T3K, T3D);
209
               }
210
               {
211
                    E T2P, T3d, T2M, T3c;
212
                    T2J = rio[WS(vs, 3)];
213
                    {
214
                         E T2N, T2O, T2K, T2L;
215
                         T2N = rio[WS(vs, 3) + WS(rs, 2)];
216
                         T2O = rio[WS(vs, 3) + WS(rs, 3)];
217
                         T2P = T2N + T2O;
218
                         T3d = T2N - T2O;
219
                         T2K = rio[WS(vs, 3) + WS(rs, 1)];
220
                         T2L = rio[WS(vs, 3) + WS(rs, 4)];
221
                         T2M = T2K + T2L;
222
                         T3c = T2K - T2L;
223
                    }
224
                    T2T = T2M - T2P;
225
                    T3u = FNMS(KP618033988, T3c, T3d);
226
                    T3e = FMA(KP618033988, T3d, T3c);
227
                    T2Q = T2M + T2P;
228
                    T2S = FNMS(KP250000000, T2Q, T2J);
229
               }
230
               {
231
                    E T30, T37, T2X, T36;
232
                    T35 = iio[WS(vs, 3)];
233
                    {
234
                         E T2Y, T2Z, T2V, T2W;
235
                         T2Y = iio[WS(vs, 3) + WS(rs, 2)];
236
                         T2Z = iio[WS(vs, 3) + WS(rs, 3)];
237
                         T30 = T2Y - T2Z;
238
                         T37 = T2Y + T2Z;
239
                         T2V = iio[WS(vs, 3) + WS(rs, 1)];
240
                         T2W = iio[WS(vs, 3) + WS(rs, 4)];
241
                         T2X = T2V - T2W;
242
                         T36 = T2V + T2W;
243
                    }
244
                    T31 = FMA(KP618033988, T30, T2X);
245
                    T3p = FNMS(KP618033988, T2X, T30);
246
                    T3a = T36 - T37;
247
                    T38 = T36 + T37;
248
                    T39 = FNMS(KP250000000, T38, T35);
249
               }
250
               rio[0] = T1 + T8;
251
               iio[0] = Tn + Tq;
252
               rio[WS(rs, 1)] = TV + T12;
253
               iio[WS(rs, 1)] = T1h + T1k;
254
               rio[WS(rs, 2)] = T1P + T1W;
255
               iio[WS(rs, 2)] = T2b + T2e;
256
               iio[WS(rs, 4)] = T3Z + T42;
257
               rio[WS(rs, 4)] = T3D + T3K;
258
               rio[WS(rs, 3)] = T2J + T2Q;
259
               iio[WS(rs, 3)] = T35 + T38;
260
               {
261
                    E Tk, TA, Tx, TD, Tc, Tt;
262
                    Tc = FMA(KP559016994, Tb, Ta);
263
                    Tk = FMA(KP951056516, Tj, Tc);
264
                    TA = FNMS(KP951056516, Tj, Tc);
265
                    Tt = FMA(KP559016994, Ts, Tr);
266
                    Tx = FNMS(KP951056516, Tw, Tt);
267
                    TD = FMA(KP951056516, Tw, Tt);
268
                    {
269
                         E Tl, Ty, T9, Tm;
270
                         T9 = W[0];
271
                         Tl = T9 * Tk;
272
                         Ty = T9 * Tx;
273
                         Tm = W[1];
274
                         rio[WS(vs, 1)] = FMA(Tm, Tx, Tl);
275
                         iio[WS(vs, 1)] = FNMS(Tm, Tk, Ty);
276
                    }
277
                    {
278
                         E TB, TE, Tz, TC;
279
                         Tz = W[6];
280
                         TB = Tz * TA;
281
                         TE = Tz * TD;
282
                         TC = W[7];
283
                         rio[WS(vs, 4)] = FMA(TC, TD, TB);
284
                         iio[WS(vs, 4)] = FNMS(TC, TA, TE);
285
                    }
286
               }
287
               {
288
                    E TI, TQ, TN, TT, TG, TL;
289
                    TG = FNMS(KP559016994, Tb, Ta);
290
                    TI = FNMS(KP951056516, TH, TG);
291
                    TQ = FMA(KP951056516, TH, TG);
292
                    TL = FNMS(KP559016994, Ts, Tr);
293
                    TN = FMA(KP951056516, TM, TL);
294
                    TT = FNMS(KP951056516, TM, TL);
295
                    {
296
                         E TJ, TO, TF, TK;
297
                         TF = W[2];
298
                         TJ = TF * TI;
299
                         TO = TF * TN;
300
                         TK = W[3];
301
                         rio[WS(vs, 2)] = FMA(TK, TN, TJ);
302
                         iio[WS(vs, 2)] = FNMS(TK, TI, TO);
303
                    }
304
                    {
305
                         E TR, TU, TP, TS;
306
                         TP = W[4];
307
                         TR = TP * TQ;
308
                         TU = TP * TT;
309
                         TS = W[5];
310
                         rio[WS(vs, 3)] = FMA(TS, TT, TR);
311
                         iio[WS(vs, 3)] = FNMS(TS, TQ, TU);
312
                    }
313
               }
314
               {
315
                    E T2w, T2E, T2B, T2H, T2u, T2z;
316
                    T2u = FNMS(KP559016994, T1Z, T1Y);
317
                    T2w = FNMS(KP951056516, T2v, T2u);
318
                    T2E = FMA(KP951056516, T2v, T2u);
319
                    T2z = FNMS(KP559016994, T2g, T2f);
320
                    T2B = FMA(KP951056516, T2A, T2z);
321
                    T2H = FNMS(KP951056516, T2A, T2z);
322
                    {
323
                         E T2x, T2C, T2t, T2y;
324
                         T2t = W[2];
325
                         T2x = T2t * T2w;
326
                         T2C = T2t * T2B;
327
                         T2y = W[3];
328
                         rio[WS(vs, 2) + WS(rs, 2)] = FMA(T2y, T2B, T2x);
329
                         iio[WS(vs, 2) + WS(rs, 2)] = FNMS(T2y, T2w, T2C);
330
                    }
331
                    {
332
                         E T2F, T2I, T2D, T2G;
333
                         T2D = W[4];
334
                         T2F = T2D * T2E;
335
                         T2I = T2D * T2H;
336
                         T2G = W[5];
337
                         rio[WS(vs, 3) + WS(rs, 2)] = FMA(T2G, T2H, T2F);
338
                         iio[WS(vs, 3) + WS(rs, 2)] = FNMS(T2G, T2E, T2I);
339
                    }
340
               }
341
               {
342
                    E T4k, T4s, T4p, T4v, T4i, T4n;
343
                    T4i = FNMS(KP559016994, T3N, T3M);
344
                    T4k = FNMS(KP951056516, T4j, T4i);
345
                    T4s = FMA(KP951056516, T4j, T4i);
346
                    T4n = FNMS(KP559016994, T44, T43);
347
                    T4p = FMA(KP951056516, T4o, T4n);
348
                    T4v = FNMS(KP951056516, T4o, T4n);
349
                    {
350
                         E T4l, T4q, T4h, T4m;
351
                         T4h = W[2];
352
                         T4l = T4h * T4k;
353
                         T4q = T4h * T4p;
354
                         T4m = W[3];
355
                         rio[WS(vs, 2) + WS(rs, 4)] = FMA(T4m, T4p, T4l);
356
                         iio[WS(vs, 2) + WS(rs, 4)] = FNMS(T4m, T4k, T4q);
357
                    }
358
                    {
359
                         E T4t, T4w, T4r, T4u;
360
                         T4r = W[4];
361
                         T4t = T4r * T4s;
362
                         T4w = T4r * T4v;
363
                         T4u = W[5];
364
                         rio[WS(vs, 3) + WS(rs, 4)] = FMA(T4u, T4v, T4t);
365
                         iio[WS(vs, 3) + WS(rs, 4)] = FNMS(T4u, T4s, T4w);
366
                    }
367
               }
368
               {
369
                    E T28, T2o, T2l, T2r, T20, T2h;
370
                    T20 = FMA(KP559016994, T1Z, T1Y);
371
                    T28 = FMA(KP951056516, T27, T20);
372
                    T2o = FNMS(KP951056516, T27, T20);
373
                    T2h = FMA(KP559016994, T2g, T2f);
374
                    T2l = FNMS(KP951056516, T2k, T2h);
375
                    T2r = FMA(KP951056516, T2k, T2h);
376
                    {
377
                         E T29, T2m, T1X, T2a;
378
                         T1X = W[0];
379
                         T29 = T1X * T28;
380
                         T2m = T1X * T2l;
381
                         T2a = W[1];
382
                         rio[WS(vs, 1) + WS(rs, 2)] = FMA(T2a, T2l, T29);
383
                         iio[WS(vs, 1) + WS(rs, 2)] = FNMS(T2a, T28, T2m);
384
                    }
385
                    {
386
                         E T2p, T2s, T2n, T2q;
387
                         T2n = W[6];
388
                         T2p = T2n * T2o;
389
                         T2s = T2n * T2r;
390
                         T2q = W[7];
391
                         rio[WS(vs, 4) + WS(rs, 2)] = FMA(T2q, T2r, T2p);
392
                         iio[WS(vs, 4) + WS(rs, 2)] = FNMS(T2q, T2o, T2s);
393
                    }
394
               }
395
               {
396
                    E T32, T3i, T3f, T3l, T2U, T3b;
397
                    T2U = FMA(KP559016994, T2T, T2S);
398
                    T32 = FMA(KP951056516, T31, T2U);
399
                    T3i = FNMS(KP951056516, T31, T2U);
400
                    T3b = FMA(KP559016994, T3a, T39);
401
                    T3f = FNMS(KP951056516, T3e, T3b);
402
                    T3l = FMA(KP951056516, T3e, T3b);
403
                    {
404
                         E T33, T3g, T2R, T34;
405
                         T2R = W[0];
406
                         T33 = T2R * T32;
407
                         T3g = T2R * T3f;
408
                         T34 = W[1];
409
                         rio[WS(vs, 1) + WS(rs, 3)] = FMA(T34, T3f, T33);
410
                         iio[WS(vs, 1) + WS(rs, 3)] = FNMS(T34, T32, T3g);
411
                    }
412
                    {
413
                         E T3j, T3m, T3h, T3k;
414
                         T3h = W[6];
415
                         T3j = T3h * T3i;
416
                         T3m = T3h * T3l;
417
                         T3k = W[7];
418
                         rio[WS(vs, 4) + WS(rs, 3)] = FMA(T3k, T3l, T3j);
419
                         iio[WS(vs, 4) + WS(rs, 3)] = FNMS(T3k, T3i, T3m);
420
                    }
421
               }
422
               {
423
                    E T3q, T3y, T3v, T3B, T3o, T3t;
424
                    T3o = FNMS(KP559016994, T2T, T2S);
425
                    T3q = FNMS(KP951056516, T3p, T3o);
426
                    T3y = FMA(KP951056516, T3p, T3o);
427
                    T3t = FNMS(KP559016994, T3a, T39);
428
                    T3v = FMA(KP951056516, T3u, T3t);
429
                    T3B = FNMS(KP951056516, T3u, T3t);
430
                    {
431
                         E T3r, T3w, T3n, T3s;
432
                         T3n = W[2];
433
                         T3r = T3n * T3q;
434
                         T3w = T3n * T3v;
435
                         T3s = W[3];
436
                         rio[WS(vs, 2) + WS(rs, 3)] = FMA(T3s, T3v, T3r);
437
                         iio[WS(vs, 2) + WS(rs, 3)] = FNMS(T3s, T3q, T3w);
438
                    }
439
                    {
440
                         E T3z, T3C, T3x, T3A;
441
                         T3x = W[4];
442
                         T3z = T3x * T3y;
443
                         T3C = T3x * T3B;
444
                         T3A = W[5];
445
                         rio[WS(vs, 3) + WS(rs, 3)] = FMA(T3A, T3B, T3z);
446
                         iio[WS(vs, 3) + WS(rs, 3)] = FNMS(T3A, T3y, T3C);
447
                    }
448
               }
449
               {
450
                    E T3W, T4c, T49, T4f, T3O, T45;
451
                    T3O = FMA(KP559016994, T3N, T3M);
452
                    T3W = FMA(KP951056516, T3V, T3O);
453
                    T4c = FNMS(KP951056516, T3V, T3O);
454
                    T45 = FMA(KP559016994, T44, T43);
455
                    T49 = FNMS(KP951056516, T48, T45);
456
                    T4f = FMA(KP951056516, T48, T45);
457
                    {
458
                         E T3X, T4a, T3L, T3Y;
459
                         T3L = W[0];
460
                         T3X = T3L * T3W;
461
                         T4a = T3L * T49;
462
                         T3Y = W[1];
463
                         rio[WS(vs, 1) + WS(rs, 4)] = FMA(T3Y, T49, T3X);
464
                         iio[WS(vs, 1) + WS(rs, 4)] = FNMS(T3Y, T3W, T4a);
465
                    }
466
                    {
467
                         E T4d, T4g, T4b, T4e;
468
                         T4b = W[6];
469
                         T4d = T4b * T4c;
470
                         T4g = T4b * T4f;
471
                         T4e = W[7];
472
                         rio[WS(vs, 4) + WS(rs, 4)] = FMA(T4e, T4f, T4d);
473
                         iio[WS(vs, 4) + WS(rs, 4)] = FNMS(T4e, T4c, T4g);
474
                    }
475
               }
476
               {
477
                    E T1C, T1K, T1H, T1N, T1A, T1F;
478
                    T1A = FNMS(KP559016994, T15, T14);
479
                    T1C = FNMS(KP951056516, T1B, T1A);
480
                    T1K = FMA(KP951056516, T1B, T1A);
481
                    T1F = FNMS(KP559016994, T1m, T1l);
482
                    T1H = FMA(KP951056516, T1G, T1F);
483
                    T1N = FNMS(KP951056516, T1G, T1F);
484
                    {
485
                         E T1D, T1I, T1z, T1E;
486
                         T1z = W[2];
487
                         T1D = T1z * T1C;
488
                         T1I = T1z * T1H;
489
                         T1E = W[3];
490
                         rio[WS(vs, 2) + WS(rs, 1)] = FMA(T1E, T1H, T1D);
491
                         iio[WS(vs, 2) + WS(rs, 1)] = FNMS(T1E, T1C, T1I);
492
                    }
493
                    {
494
                         E T1L, T1O, T1J, T1M;
495
                         T1J = W[4];
496
                         T1L = T1J * T1K;
497
                         T1O = T1J * T1N;
498
                         T1M = W[5];
499
                         rio[WS(vs, 3) + WS(rs, 1)] = FMA(T1M, T1N, T1L);
500
                         iio[WS(vs, 3) + WS(rs, 1)] = FNMS(T1M, T1K, T1O);
501
                    }
502
               }
503
               {
504
                    E T1e, T1u, T1r, T1x, T16, T1n;
505
                    T16 = FMA(KP559016994, T15, T14);
506
                    T1e = FMA(KP951056516, T1d, T16);
507
                    T1u = FNMS(KP951056516, T1d, T16);
508
                    T1n = FMA(KP559016994, T1m, T1l);
509
                    T1r = FNMS(KP951056516, T1q, T1n);
510
                    T1x = FMA(KP951056516, T1q, T1n);
511
                    {
512
                         E T1f, T1s, T13, T1g;
513
                         T13 = W[0];
514
                         T1f = T13 * T1e;
515
                         T1s = T13 * T1r;
516
                         T1g = W[1];
517
                         rio[WS(vs, 1) + WS(rs, 1)] = FMA(T1g, T1r, T1f);
518
                         iio[WS(vs, 1) + WS(rs, 1)] = FNMS(T1g, T1e, T1s);
519
                    }
520
                    {
521
                         E T1v, T1y, T1t, T1w;
522
                         T1t = W[6];
523
                         T1v = T1t * T1u;
524
                         T1y = T1t * T1x;
525
                         T1w = W[7];
526
                         rio[WS(vs, 4) + WS(rs, 1)] = FMA(T1w, T1x, T1v);
527
                         iio[WS(vs, 4) + WS(rs, 1)] = FNMS(T1w, T1u, T1y);
528
                    }
529
               }
530
          }
531
     }
532
}
533

    
534
static const tw_instr twinstr[] = {
535
     {TW_FULL, 0, 5},
536
     {TW_NEXT, 1, 0}
537
};
538

    
539
static const ct_desc desc = { 5, "q1_5", twinstr, &GENUS, {70, 40, 130, 0}, 0, 0, 0 };
540

    
541
void X(codelet_q1_5) (planner *p) {
542
     X(kdft_difsq_register) (p, q1_5, &desc);
543
}
544
#else
545

    
546
/* Generated by: ../../../genfft/gen_twidsq.native -compact -variables 4 -pipeline-latency 4 -reload-twiddle -dif -n 5 -name q1_5 -include dft/scalar/q.h */
547

    
548
/*
549
 * This function contains 200 FP additions, 140 FP multiplications,
550
 * (or, 130 additions, 70 multiplications, 70 fused multiply/add),
551
 * 75 stack variables, 4 constants, and 100 memory accesses
552
 */
553
#include "dft/scalar/q.h"
554

    
555
static void q1_5(R *rio, R *iio, const R *W, stride rs, stride vs, INT mb, INT me, INT ms)
556
{
557
     DK(KP250000000, +0.250000000000000000000000000000000000000000000);
558
     DK(KP587785252, +0.587785252292473129168705954639072768597652438);
559
     DK(KP951056516, +0.951056516295153572116439333379382143405698634);
560
     DK(KP559016994, +0.559016994374947424102293417182819058860154590);
561
     {
562
          INT m;
563
          for (m = mb, W = W + (mb * 8); m < me; m = m + 1, rio = rio + ms, iio = iio + ms, W = W + 8, MAKE_VOLATILE_STRIDE(10, rs), MAKE_VOLATILE_STRIDE(0, vs)) {
564
               E T1, Ta, TG, Tv, T8, Tb, Tp, Tj, TD, To, Tq, Tr, TN, TW, T1s;
565
               E T1h, TU, TX, T1b, T15, T1p, T1a, T1c, T1d, T1z, T1I, T2e, T23, T1G, T1J;
566
               E T1X, T1R, T2b, T1W, T1Y, T1Z, T3v, T3p, T3J, T3u, T3w, T3x, T37, T3g, T3M;
567
               E T3B, T3e, T3h, T2l, T2u, T30, T2P, T2s, T2v, T2J, T2D, T2X, T2I, T2K, T2L;
568
               {
569
                    E T7, Tu, T4, Tt;
570
                    T1 = rio[0];
571
                    {
572
                         E T5, T6, T2, T3;
573
                         T5 = rio[WS(rs, 2)];
574
                         T6 = rio[WS(rs, 3)];
575
                         T7 = T5 + T6;
576
                         Tu = T5 - T6;
577
                         T2 = rio[WS(rs, 1)];
578
                         T3 = rio[WS(rs, 4)];
579
                         T4 = T2 + T3;
580
                         Tt = T2 - T3;
581
                    }
582
                    Ta = KP559016994 * (T4 - T7);
583
                    TG = FNMS(KP587785252, Tt, KP951056516 * Tu);
584
                    Tv = FMA(KP951056516, Tt, KP587785252 * Tu);
585
                    T8 = T4 + T7;
586
                    Tb = FNMS(KP250000000, T8, T1);
587
               }
588
               {
589
                    E Ti, Tn, Tf, Tm;
590
                    Tp = iio[0];
591
                    {
592
                         E Tg, Th, Td, Te;
593
                         Tg = iio[WS(rs, 2)];
594
                         Th = iio[WS(rs, 3)];
595
                         Ti = Tg - Th;
596
                         Tn = Tg + Th;
597
                         Td = iio[WS(rs, 1)];
598
                         Te = iio[WS(rs, 4)];
599
                         Tf = Td - Te;
600
                         Tm = Td + Te;
601
                    }
602
                    Tj = FMA(KP951056516, Tf, KP587785252 * Ti);
603
                    TD = FNMS(KP587785252, Tf, KP951056516 * Ti);
604
                    To = KP559016994 * (Tm - Tn);
605
                    Tq = Tm + Tn;
606
                    Tr = FNMS(KP250000000, Tq, Tp);
607
               }
608
               {
609
                    E TT, T1g, TQ, T1f;
610
                    TN = rio[WS(vs, 1)];
611
                    {
612
                         E TR, TS, TO, TP;
613
                         TR = rio[WS(vs, 1) + WS(rs, 2)];
614
                         TS = rio[WS(vs, 1) + WS(rs, 3)];
615
                         TT = TR + TS;
616
                         T1g = TR - TS;
617
                         TO = rio[WS(vs, 1) + WS(rs, 1)];
618
                         TP = rio[WS(vs, 1) + WS(rs, 4)];
619
                         TQ = TO + TP;
620
                         T1f = TO - TP;
621
                    }
622
                    TW = KP559016994 * (TQ - TT);
623
                    T1s = FNMS(KP587785252, T1f, KP951056516 * T1g);
624
                    T1h = FMA(KP951056516, T1f, KP587785252 * T1g);
625
                    TU = TQ + TT;
626
                    TX = FNMS(KP250000000, TU, TN);
627
               }
628
               {
629
                    E T14, T19, T11, T18;
630
                    T1b = iio[WS(vs, 1)];
631
                    {
632
                         E T12, T13, TZ, T10;
633
                         T12 = iio[WS(vs, 1) + WS(rs, 2)];
634
                         T13 = iio[WS(vs, 1) + WS(rs, 3)];
635
                         T14 = T12 - T13;
636
                         T19 = T12 + T13;
637
                         TZ = iio[WS(vs, 1) + WS(rs, 1)];
638
                         T10 = iio[WS(vs, 1) + WS(rs, 4)];
639
                         T11 = TZ - T10;
640
                         T18 = TZ + T10;
641
                    }
642
                    T15 = FMA(KP951056516, T11, KP587785252 * T14);
643
                    T1p = FNMS(KP587785252, T11, KP951056516 * T14);
644
                    T1a = KP559016994 * (T18 - T19);
645
                    T1c = T18 + T19;
646
                    T1d = FNMS(KP250000000, T1c, T1b);
647
               }
648
               {
649
                    E T1F, T22, T1C, T21;
650
                    T1z = rio[WS(vs, 2)];
651
                    {
652
                         E T1D, T1E, T1A, T1B;
653
                         T1D = rio[WS(vs, 2) + WS(rs, 2)];
654
                         T1E = rio[WS(vs, 2) + WS(rs, 3)];
655
                         T1F = T1D + T1E;
656
                         T22 = T1D - T1E;
657
                         T1A = rio[WS(vs, 2) + WS(rs, 1)];
658
                         T1B = rio[WS(vs, 2) + WS(rs, 4)];
659
                         T1C = T1A + T1B;
660
                         T21 = T1A - T1B;
661
                    }
662
                    T1I = KP559016994 * (T1C - T1F);
663
                    T2e = FNMS(KP587785252, T21, KP951056516 * T22);
664
                    T23 = FMA(KP951056516, T21, KP587785252 * T22);
665
                    T1G = T1C + T1F;
666
                    T1J = FNMS(KP250000000, T1G, T1z);
667
               }
668
               {
669
                    E T1Q, T1V, T1N, T1U;
670
                    T1X = iio[WS(vs, 2)];
671
                    {
672
                         E T1O, T1P, T1L, T1M;
673
                         T1O = iio[WS(vs, 2) + WS(rs, 2)];
674
                         T1P = iio[WS(vs, 2) + WS(rs, 3)];
675
                         T1Q = T1O - T1P;
676
                         T1V = T1O + T1P;
677
                         T1L = iio[WS(vs, 2) + WS(rs, 1)];
678
                         T1M = iio[WS(vs, 2) + WS(rs, 4)];
679
                         T1N = T1L - T1M;
680
                         T1U = T1L + T1M;
681
                    }
682
                    T1R = FMA(KP951056516, T1N, KP587785252 * T1Q);
683
                    T2b = FNMS(KP587785252, T1N, KP951056516 * T1Q);
684
                    T1W = KP559016994 * (T1U - T1V);
685
                    T1Y = T1U + T1V;
686
                    T1Z = FNMS(KP250000000, T1Y, T1X);
687
               }
688
               {
689
                    E T3o, T3t, T3l, T3s;
690
                    T3v = iio[WS(vs, 4)];
691
                    {
692
                         E T3m, T3n, T3j, T3k;
693
                         T3m = iio[WS(vs, 4) + WS(rs, 2)];
694
                         T3n = iio[WS(vs, 4) + WS(rs, 3)];
695
                         T3o = T3m - T3n;
696
                         T3t = T3m + T3n;
697
                         T3j = iio[WS(vs, 4) + WS(rs, 1)];
698
                         T3k = iio[WS(vs, 4) + WS(rs, 4)];
699
                         T3l = T3j - T3k;
700
                         T3s = T3j + T3k;
701
                    }
702
                    T3p = FMA(KP951056516, T3l, KP587785252 * T3o);
703
                    T3J = FNMS(KP587785252, T3l, KP951056516 * T3o);
704
                    T3u = KP559016994 * (T3s - T3t);
705
                    T3w = T3s + T3t;
706
                    T3x = FNMS(KP250000000, T3w, T3v);
707
               }
708
               {
709
                    E T3d, T3A, T3a, T3z;
710
                    T37 = rio[WS(vs, 4)];
711
                    {
712
                         E T3b, T3c, T38, T39;
713
                         T3b = rio[WS(vs, 4) + WS(rs, 2)];
714
                         T3c = rio[WS(vs, 4) + WS(rs, 3)];
715
                         T3d = T3b + T3c;
716
                         T3A = T3b - T3c;
717
                         T38 = rio[WS(vs, 4) + WS(rs, 1)];
718
                         T39 = rio[WS(vs, 4) + WS(rs, 4)];
719
                         T3a = T38 + T39;
720
                         T3z = T38 - T39;
721
                    }
722
                    T3g = KP559016994 * (T3a - T3d);
723
                    T3M = FNMS(KP587785252, T3z, KP951056516 * T3A);
724
                    T3B = FMA(KP951056516, T3z, KP587785252 * T3A);
725
                    T3e = T3a + T3d;
726
                    T3h = FNMS(KP250000000, T3e, T37);
727
               }
728
               {
729
                    E T2r, T2O, T2o, T2N;
730
                    T2l = rio[WS(vs, 3)];
731
                    {
732
                         E T2p, T2q, T2m, T2n;
733
                         T2p = rio[WS(vs, 3) + WS(rs, 2)];
734
                         T2q = rio[WS(vs, 3) + WS(rs, 3)];
735
                         T2r = T2p + T2q;
736
                         T2O = T2p - T2q;
737
                         T2m = rio[WS(vs, 3) + WS(rs, 1)];
738
                         T2n = rio[WS(vs, 3) + WS(rs, 4)];
739
                         T2o = T2m + T2n;
740
                         T2N = T2m - T2n;
741
                    }
742
                    T2u = KP559016994 * (T2o - T2r);
743
                    T30 = FNMS(KP587785252, T2N, KP951056516 * T2O);
744
                    T2P = FMA(KP951056516, T2N, KP587785252 * T2O);
745
                    T2s = T2o + T2r;
746
                    T2v = FNMS(KP250000000, T2s, T2l);
747
               }
748
               {
749
                    E T2C, T2H, T2z, T2G;
750
                    T2J = iio[WS(vs, 3)];
751
                    {
752
                         E T2A, T2B, T2x, T2y;
753
                         T2A = iio[WS(vs, 3) + WS(rs, 2)];
754
                         T2B = iio[WS(vs, 3) + WS(rs, 3)];
755
                         T2C = T2A - T2B;
756
                         T2H = T2A + T2B;
757
                         T2x = iio[WS(vs, 3) + WS(rs, 1)];
758
                         T2y = iio[WS(vs, 3) + WS(rs, 4)];
759
                         T2z = T2x - T2y;
760
                         T2G = T2x + T2y;
761
                    }
762
                    T2D = FMA(KP951056516, T2z, KP587785252 * T2C);
763
                    T2X = FNMS(KP587785252, T2z, KP951056516 * T2C);
764
                    T2I = KP559016994 * (T2G - T2H);
765
                    T2K = T2G + T2H;
766
                    T2L = FNMS(KP250000000, T2K, T2J);
767
               }
768
               rio[0] = T1 + T8;
769
               iio[0] = Tp + Tq;
770
               rio[WS(rs, 1)] = TN + TU;
771
               iio[WS(rs, 1)] = T1b + T1c;
772
               rio[WS(rs, 2)] = T1z + T1G;
773
               iio[WS(rs, 2)] = T1X + T1Y;
774
               iio[WS(rs, 4)] = T3v + T3w;
775
               rio[WS(rs, 4)] = T37 + T3e;
776
               rio[WS(rs, 3)] = T2l + T2s;
777
               iio[WS(rs, 3)] = T2J + T2K;
778
               {
779
                    E Tk, Ty, Tw, TA, Tc, Ts;
780
                    Tc = Ta + Tb;
781
                    Tk = Tc + Tj;
782
                    Ty = Tc - Tj;
783
                    Ts = To + Tr;
784
                    Tw = Ts - Tv;
785
                    TA = Tv + Ts;
786
                    {
787
                         E T9, Tl, Tx, Tz;
788
                         T9 = W[0];
789
                         Tl = W[1];
790
                         rio[WS(vs, 1)] = FMA(T9, Tk, Tl * Tw);
791
                         iio[WS(vs, 1)] = FNMS(Tl, Tk, T9 * Tw);
792
                         Tx = W[6];
793
                         Tz = W[7];
794
                         rio[WS(vs, 4)] = FMA(Tx, Ty, Tz * TA);
795
                         iio[WS(vs, 4)] = FNMS(Tz, Ty, Tx * TA);
796
                    }
797
               }
798
               {
799
                    E TE, TK, TI, TM, TC, TH;
800
                    TC = Tb - Ta;
801
                    TE = TC - TD;
802
                    TK = TC + TD;
803
                    TH = Tr - To;
804
                    TI = TG + TH;
805
                    TM = TH - TG;
806
                    {
807
                         E TB, TF, TJ, TL;
808
                         TB = W[2];
809
                         TF = W[3];
810
                         rio[WS(vs, 2)] = FMA(TB, TE, TF * TI);
811
                         iio[WS(vs, 2)] = FNMS(TF, TE, TB * TI);
812
                         TJ = W[4];
813
                         TL = W[5];
814
                         rio[WS(vs, 3)] = FMA(TJ, TK, TL * TM);
815
                         iio[WS(vs, 3)] = FNMS(TL, TK, TJ * TM);
816
                    }
817
               }
818
               {
819
                    E T2c, T2i, T2g, T2k, T2a, T2f;
820
                    T2a = T1J - T1I;
821
                    T2c = T2a - T2b;
822
                    T2i = T2a + T2b;
823
                    T2f = T1Z - T1W;
824
                    T2g = T2e + T2f;
825
                    T2k = T2f - T2e;
826
                    {
827
                         E T29, T2d, T2h, T2j;
828
                         T29 = W[2];
829
                         T2d = W[3];
830
                         rio[WS(vs, 2) + WS(rs, 2)] = FMA(T29, T2c, T2d * T2g);
831
                         iio[WS(vs, 2) + WS(rs, 2)] = FNMS(T2d, T2c, T29 * T2g);
832
                         T2h = W[4];
833
                         T2j = W[5];
834
                         rio[WS(vs, 3) + WS(rs, 2)] = FMA(T2h, T2i, T2j * T2k);
835
                         iio[WS(vs, 3) + WS(rs, 2)] = FNMS(T2j, T2i, T2h * T2k);
836
                    }
837
               }
838
               {
839
                    E T3K, T3Q, T3O, T3S, T3I, T3N;
840
                    T3I = T3h - T3g;
841
                    T3K = T3I - T3J;
842
                    T3Q = T3I + T3J;
843
                    T3N = T3x - T3u;
844
                    T3O = T3M + T3N;
845
                    T3S = T3N - T3M;
846
                    {
847
                         E T3H, T3L, T3P, T3R;
848
                         T3H = W[2];
849
                         T3L = W[3];
850
                         rio[WS(vs, 2) + WS(rs, 4)] = FMA(T3H, T3K, T3L * T3O);
851
                         iio[WS(vs, 2) + WS(rs, 4)] = FNMS(T3L, T3K, T3H * T3O);
852
                         T3P = W[4];
853
                         T3R = W[5];
854
                         rio[WS(vs, 3) + WS(rs, 4)] = FMA(T3P, T3Q, T3R * T3S);
855
                         iio[WS(vs, 3) + WS(rs, 4)] = FNMS(T3R, T3Q, T3P * T3S);
856
                    }
857
               }
858
               {
859
                    E T1S, T26, T24, T28, T1K, T20;
860
                    T1K = T1I + T1J;
861
                    T1S = T1K + T1R;
862
                    T26 = T1K - T1R;
863
                    T20 = T1W + T1Z;
864
                    T24 = T20 - T23;
865
                    T28 = T23 + T20;
866
                    {
867
                         E T1H, T1T, T25, T27;
868
                         T1H = W[0];
869
                         T1T = W[1];
870
                         rio[WS(vs, 1) + WS(rs, 2)] = FMA(T1H, T1S, T1T * T24);
871
                         iio[WS(vs, 1) + WS(rs, 2)] = FNMS(T1T, T1S, T1H * T24);
872
                         T25 = W[6];
873
                         T27 = W[7];
874
                         rio[WS(vs, 4) + WS(rs, 2)] = FMA(T25, T26, T27 * T28);
875
                         iio[WS(vs, 4) + WS(rs, 2)] = FNMS(T27, T26, T25 * T28);
876
                    }
877
               }
878
               {
879
                    E T2E, T2S, T2Q, T2U, T2w, T2M;
880
                    T2w = T2u + T2v;
881
                    T2E = T2w + T2D;
882
                    T2S = T2w - T2D;
883
                    T2M = T2I + T2L;
884
                    T2Q = T2M - T2P;
885
                    T2U = T2P + T2M;
886
                    {
887
                         E T2t, T2F, T2R, T2T;
888
                         T2t = W[0];
889
                         T2F = W[1];
890
                         rio[WS(vs, 1) + WS(rs, 3)] = FMA(T2t, T2E, T2F * T2Q);
891
                         iio[WS(vs, 1) + WS(rs, 3)] = FNMS(T2F, T2E, T2t * T2Q);
892
                         T2R = W[6];
893
                         T2T = W[7];
894
                         rio[WS(vs, 4) + WS(rs, 3)] = FMA(T2R, T2S, T2T * T2U);
895
                         iio[WS(vs, 4) + WS(rs, 3)] = FNMS(T2T, T2S, T2R * T2U);
896
                    }
897
               }
898
               {
899
                    E T2Y, T34, T32, T36, T2W, T31;
900
                    T2W = T2v - T2u;
901
                    T2Y = T2W - T2X;
902
                    T34 = T2W + T2X;
903
                    T31 = T2L - T2I;
904
                    T32 = T30 + T31;
905
                    T36 = T31 - T30;
906
                    {
907
                         E T2V, T2Z, T33, T35;
908
                         T2V = W[2];
909
                         T2Z = W[3];
910
                         rio[WS(vs, 2) + WS(rs, 3)] = FMA(T2V, T2Y, T2Z * T32);
911
                         iio[WS(vs, 2) + WS(rs, 3)] = FNMS(T2Z, T2Y, T2V * T32);
912
                         T33 = W[4];
913
                         T35 = W[5];
914
                         rio[WS(vs, 3) + WS(rs, 3)] = FMA(T33, T34, T35 * T36);
915
                         iio[WS(vs, 3) + WS(rs, 3)] = FNMS(T35, T34, T33 * T36);
916
                    }
917
               }
918
               {
919
                    E T3q, T3E, T3C, T3G, T3i, T3y;
920
                    T3i = T3g + T3h;
921
                    T3q = T3i + T3p;
922
                    T3E = T3i - T3p;
923
                    T3y = T3u + T3x;
924
                    T3C = T3y - T3B;
925
                    T3G = T3B + T3y;
926
                    {
927
                         E T3f, T3r, T3D, T3F;
928
                         T3f = W[0];
929
                         T3r = W[1];
930
                         rio[WS(vs, 1) + WS(rs, 4)] = FMA(T3f, T3q, T3r * T3C);
931
                         iio[WS(vs, 1) + WS(rs, 4)] = FNMS(T3r, T3q, T3f * T3C);
932
                         T3D = W[6];
933
                         T3F = W[7];
934
                         rio[WS(vs, 4) + WS(rs, 4)] = FMA(T3D, T3E, T3F * T3G);
935
                         iio[WS(vs, 4) + WS(rs, 4)] = FNMS(T3F, T3E, T3D * T3G);
936
                    }
937
               }
938
               {
939
                    E T1q, T1w, T1u, T1y, T1o, T1t;
940
                    T1o = TX - TW;
941
                    T1q = T1o - T1p;
942
                    T1w = T1o + T1p;
943
                    T1t = T1d - T1a;
944
                    T1u = T1s + T1t;
945
                    T1y = T1t - T1s;
946
                    {
947
                         E T1n, T1r, T1v, T1x;
948
                         T1n = W[2];
949
                         T1r = W[3];
950
                         rio[WS(vs, 2) + WS(rs, 1)] = FMA(T1n, T1q, T1r * T1u);
951
                         iio[WS(vs, 2) + WS(rs, 1)] = FNMS(T1r, T1q, T1n * T1u);
952
                         T1v = W[4];
953
                         T1x = W[5];
954
                         rio[WS(vs, 3) + WS(rs, 1)] = FMA(T1v, T1w, T1x * T1y);
955
                         iio[WS(vs, 3) + WS(rs, 1)] = FNMS(T1x, T1w, T1v * T1y);
956
                    }
957
               }
958
               {
959
                    E T16, T1k, T1i, T1m, TY, T1e;
960
                    TY = TW + TX;
961
                    T16 = TY + T15;
962
                    T1k = TY - T15;
963
                    T1e = T1a + T1d;
964
                    T1i = T1e - T1h;
965
                    T1m = T1h + T1e;
966
                    {
967
                         E TV, T17, T1j, T1l;
968
                         TV = W[0];
969
                         T17 = W[1];
970
                         rio[WS(vs, 1) + WS(rs, 1)] = FMA(TV, T16, T17 * T1i);
971
                         iio[WS(vs, 1) + WS(rs, 1)] = FNMS(T17, T16, TV * T1i);
972
                         T1j = W[6];
973
                         T1l = W[7];
974
                         rio[WS(vs, 4) + WS(rs, 1)] = FMA(T1j, T1k, T1l * T1m);
975
                         iio[WS(vs, 4) + WS(rs, 1)] = FNMS(T1l, T1k, T1j * T1m);
976
                    }
977
               }
978
          }
979
     }
980
}
981

    
982
static const tw_instr twinstr[] = {
983
     {TW_FULL, 0, 5},
984
     {TW_NEXT, 1, 0}
985
};
986

    
987
static const ct_desc desc = { 5, "q1_5", twinstr, &GENUS, {130, 70, 70, 0}, 0, 0, 0 };
988

    
989
void X(codelet_q1_5) (planner *p) {
990
     X(kdft_difsq_register) (p, q1_5, &desc);
991
}
992
#endif