annotate src/fftw-3.3.5/rdft/scalar/r2cb/r2cbIII_20.c @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents 2cd0e3b3e1fd
children
rev   line source
Chris@42 1 /*
Chris@42 2 * Copyright (c) 2003, 2007-14 Matteo Frigo
Chris@42 3 * Copyright (c) 2003, 2007-14 Massachusetts Institute of Technology
Chris@42 4 *
Chris@42 5 * This program is free software; you can redistribute it and/or modify
Chris@42 6 * it under the terms of the GNU General Public License as published by
Chris@42 7 * the Free Software Foundation; either version 2 of the License, or
Chris@42 8 * (at your option) any later version.
Chris@42 9 *
Chris@42 10 * This program is distributed in the hope that it will be useful,
Chris@42 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@42 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@42 13 * GNU General Public License for more details.
Chris@42 14 *
Chris@42 15 * You should have received a copy of the GNU General Public License
Chris@42 16 * along with this program; if not, write to the Free Software
Chris@42 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Chris@42 18 *
Chris@42 19 */
Chris@42 20
Chris@42 21 /* This file was automatically generated --- DO NOT EDIT */
Chris@42 22 /* Generated on Sat Jul 30 16:51:05 EDT 2016 */
Chris@42 23
Chris@42 24 #include "codelet-rdft.h"
Chris@42 25
Chris@42 26 #ifdef HAVE_FMA
Chris@42 27
Chris@42 28 /* Generated by: ../../../genfft/gen_r2cb.native -fma -reorder-insns -schedule-for-pipeline -compact -variables 4 -pipeline-latency 4 -sign 1 -n 20 -name r2cbIII_20 -dft-III -include r2cbIII.h */
Chris@42 29
Chris@42 30 /*
Chris@42 31 * This function contains 94 FP additions, 56 FP multiplications,
Chris@42 32 * (or, 58 additions, 20 multiplications, 36 fused multiply/add),
Chris@42 33 * 59 stack variables, 6 constants, and 40 memory accesses
Chris@42 34 */
Chris@42 35 #include "r2cbIII.h"
Chris@42 36
Chris@42 37 static void r2cbIII_20(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
Chris@42 38 {
Chris@42 39 DK(KP1_414213562, +1.414213562373095048801688724209698078569671875);
Chris@42 40 DK(KP951056516, +0.951056516295153572116439333379382143405698634);
Chris@42 41 DK(KP559016994, +0.559016994374947424102293417182819058860154590);
Chris@42 42 DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);
Chris@42 43 DK(KP250000000, +0.250000000000000000000000000000000000000000000);
Chris@42 44 DK(KP618033988, +0.618033988749894848204586834365638117720309180);
Chris@42 45 {
Chris@42 46 INT i;
Chris@42 47 for (i = v; i > 0; i = i - 1, R0 = R0 + ovs, R1 = R1 + ovs, Cr = Cr + ivs, Ci = Ci + ivs, MAKE_VOLATILE_STRIDE(80, rs), MAKE_VOLATILE_STRIDE(80, csr), MAKE_VOLATILE_STRIDE(80, csi)) {
Chris@42 48 E TZ, TD, TW, Tw, Tt, TF, T1f, T1b;
Chris@42 49 {
Chris@42 50 E T1l, Tk, T9, Tj, Ta, TV, TI, Ts, TU, T1t, T11, Tx, T13, TC, T1a;
Chris@42 51 E T1i, Th, Tv, Ty;
Chris@42 52 {
Chris@42 53 E TQ, TS, Tr, Tm, Tn;
Chris@42 54 {
Chris@42 55 E T1, T5, T6, T2, T3, T7, TY;
Chris@42 56 T1 = Cr[WS(csr, 2)];
Chris@42 57 T5 = Cr[WS(csr, 9)];
Chris@42 58 T6 = Cr[WS(csr, 5)];
Chris@42 59 T2 = Cr[WS(csr, 6)];
Chris@42 60 T3 = Cr[WS(csr, 1)];
Chris@42 61 TQ = Ci[WS(csi, 2)];
Chris@42 62 T7 = T5 + T6;
Chris@42 63 TY = T5 - T6;
Chris@42 64 {
Chris@42 65 E T4, TX, T8, Tp, Tq;
Chris@42 66 T4 = T2 + T3;
Chris@42 67 TX = T2 - T3;
Chris@42 68 Tp = Ci[WS(csi, 5)];
Chris@42 69 Tq = Ci[WS(csi, 9)];
Chris@42 70 T1l = FNMS(KP618033988, TX, TY);
Chris@42 71 TZ = FMA(KP618033988, TY, TX);
Chris@42 72 Tk = T4 - T7;
Chris@42 73 T8 = T4 + T7;
Chris@42 74 TS = Tp + Tq;
Chris@42 75 Tr = Tp - Tq;
Chris@42 76 T9 = T1 + T8;
Chris@42 77 Tj = FNMS(KP250000000, T8, T1);
Chris@42 78 Tm = Ci[WS(csi, 6)];
Chris@42 79 Tn = Ci[WS(csi, 1)];
Chris@42 80 }
Chris@42 81 }
Chris@42 82 {
Chris@42 83 E Tb, T19, Tg, Tc;
Chris@42 84 Ta = Cr[WS(csr, 7)];
Chris@42 85 {
Chris@42 86 E Te, Tf, To, TR, TT;
Chris@42 87 Te = Cr[0];
Chris@42 88 Tf = Cr[WS(csr, 4)];
Chris@42 89 To = Tm + Tn;
Chris@42 90 TR = Tm - Tn;
Chris@42 91 Tb = Cr[WS(csr, 3)];
Chris@42 92 T19 = Te - Tf;
Chris@42 93 Tg = Te + Tf;
Chris@42 94 TT = TR - TS;
Chris@42 95 TV = TR + TS;
Chris@42 96 TI = FNMS(KP618033988, To, Tr);
Chris@42 97 Ts = FMA(KP618033988, Tr, To);
Chris@42 98 TU = FNMS(KP250000000, TT, TQ);
Chris@42 99 T1t = TT + TQ;
Chris@42 100 Tc = Cr[WS(csr, 8)];
Chris@42 101 }
Chris@42 102 T11 = Ci[WS(csi, 7)];
Chris@42 103 {
Chris@42 104 E TA, TB, Td, T18;
Chris@42 105 TA = Ci[WS(csi, 4)];
Chris@42 106 TB = Ci[0];
Chris@42 107 Td = Tb + Tc;
Chris@42 108 T18 = Tb - Tc;
Chris@42 109 Tx = Ci[WS(csi, 3)];
Chris@42 110 T13 = TB + TA;
Chris@42 111 TC = TA - TB;
Chris@42 112 T1a = FMA(KP618033988, T19, T18);
Chris@42 113 T1i = FNMS(KP618033988, T18, T19);
Chris@42 114 Th = Td + Tg;
Chris@42 115 Tv = Td - Tg;
Chris@42 116 Ty = Ci[WS(csi, 8)];
Chris@42 117 }
Chris@42 118 }
Chris@42 119 }
Chris@42 120 {
Chris@42 121 E Tu, T1w, T16, TL, T15, T1u;
Chris@42 122 {
Chris@42 123 E Ti, T12, Tz, T14;
Chris@42 124 Tu = FNMS(KP250000000, Th, Ta);
Chris@42 125 Ti = Ta + Th;
Chris@42 126 T12 = Tx - Ty;
Chris@42 127 Tz = Tx + Ty;
Chris@42 128 T1w = T9 - Ti;
Chris@42 129 T14 = T12 - T13;
Chris@42 130 T16 = T12 + T13;
Chris@42 131 TL = FNMS(KP618033988, Tz, TC);
Chris@42 132 TD = FMA(KP618033988, TC, Tz);
Chris@42 133 T15 = FNMS(KP250000000, T14, T11);
Chris@42 134 T1u = T14 + T11;
Chris@42 135 R0[0] = KP2_000000000 * (T9 + Ti);
Chris@42 136 }
Chris@42 137 {
Chris@42 138 E Tl, TJ, TN, T1q, T1m, TK, T1h, T17, TH, T1k, T1v;
Chris@42 139 Tl = FMA(KP559016994, Tk, Tj);
Chris@42 140 TH = FNMS(KP559016994, Tk, Tj);
Chris@42 141 T1k = FNMS(KP559016994, TV, TU);
Chris@42 142 TW = FMA(KP559016994, TV, TU);
Chris@42 143 R0[WS(rs, 5)] = KP2_000000000 * (T1u - T1t);
Chris@42 144 T1v = T1t + T1u;
Chris@42 145 TJ = FNMS(KP951056516, TI, TH);
Chris@42 146 TN = FMA(KP951056516, TI, TH);
Chris@42 147 T1q = FMA(KP951056516, T1l, T1k);
Chris@42 148 T1m = FNMS(KP951056516, T1l, T1k);
Chris@42 149 R1[WS(rs, 7)] = KP1_414213562 * (T1w + T1v);
Chris@42 150 R1[WS(rs, 2)] = KP1_414213562 * (T1v - T1w);
Chris@42 151 Tw = FMA(KP559016994, Tv, Tu);
Chris@42 152 TK = FNMS(KP559016994, Tv, Tu);
Chris@42 153 T1h = FNMS(KP559016994, T16, T15);
Chris@42 154 T17 = FMA(KP559016994, T16, T15);
Chris@42 155 {
Chris@42 156 E TM, TO, T1j, T1r;
Chris@42 157 TM = FMA(KP951056516, TL, TK);
Chris@42 158 TO = FNMS(KP951056516, TL, TK);
Chris@42 159 T1j = FMA(KP951056516, T1i, T1h);
Chris@42 160 T1r = FNMS(KP951056516, T1i, T1h);
Chris@42 161 Tt = FNMS(KP951056516, Ts, Tl);
Chris@42 162 TF = FMA(KP951056516, Ts, Tl);
Chris@42 163 {
Chris@42 164 E T1n, T1p, T1s, T1o;
Chris@42 165 T1n = TN - TO;
Chris@42 166 R0[WS(rs, 6)] = -(KP2_000000000 * (TN + TO));
Chris@42 167 T1p = TM - TJ;
Chris@42 168 R0[WS(rs, 4)] = KP2_000000000 * (TJ + TM);
Chris@42 169 T1s = T1q + T1r;
Chris@42 170 R0[WS(rs, 9)] = KP2_000000000 * (T1r - T1q);
Chris@42 171 T1o = T1m + T1j;
Chris@42 172 R0[WS(rs, 1)] = KP2_000000000 * (T1j - T1m);
Chris@42 173 R1[WS(rs, 6)] = KP1_414213562 * (T1p + T1s);
Chris@42 174 R1[WS(rs, 1)] = KP1_414213562 * (T1p - T1s);
Chris@42 175 R1[WS(rs, 3)] = KP1_414213562 * (T1n + T1o);
Chris@42 176 R1[WS(rs, 8)] = KP1_414213562 * (T1n - T1o);
Chris@42 177 T1f = FMA(KP951056516, T1a, T17);
Chris@42 178 T1b = FNMS(KP951056516, T1a, T17);
Chris@42 179 }
Chris@42 180 }
Chris@42 181 }
Chris@42 182 }
Chris@42 183 }
Chris@42 184 {
Chris@42 185 E TE, TG, T10, T1e;
Chris@42 186 TE = FMA(KP951056516, TD, Tw);
Chris@42 187 TG = FNMS(KP951056516, TD, Tw);
Chris@42 188 T10 = FMA(KP951056516, TZ, TW);
Chris@42 189 T1e = FNMS(KP951056516, TZ, TW);
Chris@42 190 {
Chris@42 191 E T1d, TP, T1g, T1c;
Chris@42 192 T1d = TF - TG;
Chris@42 193 R0[WS(rs, 2)] = -(KP2_000000000 * (TF + TG));
Chris@42 194 TP = Tt - TE;
Chris@42 195 R0[WS(rs, 8)] = KP2_000000000 * (Tt + TE);
Chris@42 196 T1g = T1e + T1f;
Chris@42 197 R0[WS(rs, 7)] = KP2_000000000 * (T1e - T1f);
Chris@42 198 T1c = T10 + T1b;
Chris@42 199 R0[WS(rs, 3)] = KP2_000000000 * (T10 - T1b);
Chris@42 200 R1[WS(rs, 9)] = -(KP1_414213562 * (T1d + T1g));
Chris@42 201 R1[WS(rs, 4)] = KP1_414213562 * (T1d - T1g);
Chris@42 202 R1[WS(rs, 5)] = -(KP1_414213562 * (TP + T1c));
Chris@42 203 R1[0] = KP1_414213562 * (TP - T1c);
Chris@42 204 }
Chris@42 205 }
Chris@42 206 }
Chris@42 207 }
Chris@42 208 }
Chris@42 209
Chris@42 210 static const kr2c_desc desc = { 20, "r2cbIII_20", {58, 20, 36, 0}, &GENUS };
Chris@42 211
Chris@42 212 void X(codelet_r2cbIII_20) (planner *p) {
Chris@42 213 X(kr2c_register) (p, r2cbIII_20, &desc);
Chris@42 214 }
Chris@42 215
Chris@42 216 #else /* HAVE_FMA */
Chris@42 217
Chris@42 218 /* Generated by: ../../../genfft/gen_r2cb.native -compact -variables 4 -pipeline-latency 4 -sign 1 -n 20 -name r2cbIII_20 -dft-III -include r2cbIII.h */
Chris@42 219
Chris@42 220 /*
Chris@42 221 * This function contains 94 FP additions, 44 FP multiplications,
Chris@42 222 * (or, 82 additions, 32 multiplications, 12 fused multiply/add),
Chris@42 223 * 43 stack variables, 6 constants, and 40 memory accesses
Chris@42 224 */
Chris@42 225 #include "r2cbIII.h"
Chris@42 226
Chris@42 227 static void r2cbIII_20(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
Chris@42 228 {
Chris@42 229 DK(KP1_414213562, +1.414213562373095048801688724209698078569671875);
Chris@42 230 DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);
Chris@42 231 DK(KP250000000, +0.250000000000000000000000000000000000000000000);
Chris@42 232 DK(KP951056516, +0.951056516295153572116439333379382143405698634);
Chris@42 233 DK(KP587785252, +0.587785252292473129168705954639072768597652438);
Chris@42 234 DK(KP559016994, +0.559016994374947424102293417182819058860154590);
Chris@42 235 {
Chris@42 236 INT i;
Chris@42 237 for (i = v; i > 0; i = i - 1, R0 = R0 + ovs, R1 = R1 + ovs, Cr = Cr + ivs, Ci = Ci + ivs, MAKE_VOLATILE_STRIDE(80, rs), MAKE_VOLATILE_STRIDE(80, csr), MAKE_VOLATILE_STRIDE(80, csi)) {
Chris@42 238 E T1, Tj, T1k, T13, T8, Tk, T17, Ts, T16, TI, T18, T19, Ta, Tu, T1i;
Chris@42 239 E TS, Th, Tv, TX, TD, TV, TL, TW, TY;
Chris@42 240 {
Chris@42 241 E T7, T12, T4, T11;
Chris@42 242 T1 = Cr[WS(csr, 2)];
Chris@42 243 {
Chris@42 244 E T5, T6, T2, T3;
Chris@42 245 T5 = Cr[WS(csr, 9)];
Chris@42 246 T6 = Cr[WS(csr, 5)];
Chris@42 247 T7 = T5 + T6;
Chris@42 248 T12 = T5 - T6;
Chris@42 249 T2 = Cr[WS(csr, 6)];
Chris@42 250 T3 = Cr[WS(csr, 1)];
Chris@42 251 T4 = T2 + T3;
Chris@42 252 T11 = T2 - T3;
Chris@42 253 }
Chris@42 254 Tj = KP559016994 * (T4 - T7);
Chris@42 255 T1k = FNMS(KP951056516, T12, KP587785252 * T11);
Chris@42 256 T13 = FMA(KP951056516, T11, KP587785252 * T12);
Chris@42 257 T8 = T4 + T7;
Chris@42 258 Tk = FNMS(KP250000000, T8, T1);
Chris@42 259 }
Chris@42 260 {
Chris@42 261 E Tr, T15, To, T14;
Chris@42 262 T17 = Ci[WS(csi, 2)];
Chris@42 263 {
Chris@42 264 E Tp, Tq, Tm, Tn;
Chris@42 265 Tp = Ci[WS(csi, 5)];
Chris@42 266 Tq = Ci[WS(csi, 9)];
Chris@42 267 Tr = Tp - Tq;
Chris@42 268 T15 = Tp + Tq;
Chris@42 269 Tm = Ci[WS(csi, 6)];
Chris@42 270 Tn = Ci[WS(csi, 1)];
Chris@42 271 To = Tm + Tn;
Chris@42 272 T14 = Tm - Tn;
Chris@42 273 }
Chris@42 274 Ts = FMA(KP951056516, To, KP587785252 * Tr);
Chris@42 275 T16 = KP559016994 * (T14 + T15);
Chris@42 276 TI = FNMS(KP951056516, Tr, KP587785252 * To);
Chris@42 277 T18 = T14 - T15;
Chris@42 278 T19 = FNMS(KP250000000, T18, T17);
Chris@42 279 }
Chris@42 280 {
Chris@42 281 E Tg, TR, Td, TQ;
Chris@42 282 Ta = Cr[WS(csr, 7)];
Chris@42 283 {
Chris@42 284 E Te, Tf, Tb, Tc;
Chris@42 285 Te = Cr[0];
Chris@42 286 Tf = Cr[WS(csr, 4)];
Chris@42 287 Tg = Te + Tf;
Chris@42 288 TR = Te - Tf;
Chris@42 289 Tb = Cr[WS(csr, 3)];
Chris@42 290 Tc = Cr[WS(csr, 8)];
Chris@42 291 Td = Tb + Tc;
Chris@42 292 TQ = Tb - Tc;
Chris@42 293 }
Chris@42 294 Tu = KP559016994 * (Td - Tg);
Chris@42 295 T1i = FNMS(KP951056516, TR, KP587785252 * TQ);
Chris@42 296 TS = FMA(KP951056516, TQ, KP587785252 * TR);
Chris@42 297 Th = Td + Tg;
Chris@42 298 Tv = FNMS(KP250000000, Th, Ta);
Chris@42 299 }
Chris@42 300 {
Chris@42 301 E TC, TU, Tz, TT;
Chris@42 302 TX = Ci[WS(csi, 7)];
Chris@42 303 {
Chris@42 304 E TA, TB, Tx, Ty;
Chris@42 305 TA = Ci[WS(csi, 4)];
Chris@42 306 TB = Ci[0];
Chris@42 307 TC = TA - TB;
Chris@42 308 TU = TB + TA;
Chris@42 309 Tx = Ci[WS(csi, 3)];
Chris@42 310 Ty = Ci[WS(csi, 8)];
Chris@42 311 Tz = Tx + Ty;
Chris@42 312 TT = Ty - Tx;
Chris@42 313 }
Chris@42 314 TD = FMA(KP951056516, Tz, KP587785252 * TC);
Chris@42 315 TV = KP559016994 * (TT - TU);
Chris@42 316 TL = FNMS(KP587785252, Tz, KP951056516 * TC);
Chris@42 317 TW = TT + TU;
Chris@42 318 TY = FMA(KP250000000, TW, TX);
Chris@42 319 }
Chris@42 320 {
Chris@42 321 E T9, Ti, T1w, T1t, T1u, T1v;
Chris@42 322 T9 = T1 + T8;
Chris@42 323 Ti = Ta + Th;
Chris@42 324 T1w = T9 - Ti;
Chris@42 325 T1t = T18 + T17;
Chris@42 326 T1u = TX - TW;
Chris@42 327 T1v = T1t + T1u;
Chris@42 328 R0[0] = KP2_000000000 * (T9 + Ti);
Chris@42 329 R0[WS(rs, 5)] = KP2_000000000 * (T1u - T1t);
Chris@42 330 R1[WS(rs, 2)] = KP1_414213562 * (T1v - T1w);
Chris@42 331 R1[WS(rs, 7)] = KP1_414213562 * (T1w + T1v);
Chris@42 332 }
Chris@42 333 {
Chris@42 334 E TJ, TO, T1m, T1q, TM, TN, T1j, T1r;
Chris@42 335 {
Chris@42 336 E TH, T1l, TK, T1h;
Chris@42 337 TH = Tk - Tj;
Chris@42 338 TJ = TH + TI;
Chris@42 339 TO = TH - TI;
Chris@42 340 T1l = T19 - T16;
Chris@42 341 T1m = T1k + T1l;
Chris@42 342 T1q = T1l - T1k;
Chris@42 343 TK = Tv - Tu;
Chris@42 344 TM = TK + TL;
Chris@42 345 TN = TL - TK;
Chris@42 346 T1h = TV + TY;
Chris@42 347 T1j = T1h - T1i;
Chris@42 348 T1r = T1i + T1h;
Chris@42 349 }
Chris@42 350 R0[WS(rs, 4)] = KP2_000000000 * (TJ + TM);
Chris@42 351 R0[WS(rs, 6)] = KP2_000000000 * (TN - TO);
Chris@42 352 R0[WS(rs, 9)] = KP2_000000000 * (T1r - T1q);
Chris@42 353 R0[WS(rs, 1)] = KP2_000000000 * (T1j - T1m);
Chris@42 354 {
Chris@42 355 E T1p, T1s, T1n, T1o;
Chris@42 356 T1p = TM - TJ;
Chris@42 357 T1s = T1q + T1r;
Chris@42 358 R1[WS(rs, 1)] = KP1_414213562 * (T1p - T1s);
Chris@42 359 R1[WS(rs, 6)] = KP1_414213562 * (T1p + T1s);
Chris@42 360 T1n = TO + TN;
Chris@42 361 T1o = T1m + T1j;
Chris@42 362 R1[WS(rs, 8)] = KP1_414213562 * (T1n - T1o);
Chris@42 363 R1[WS(rs, 3)] = KP1_414213562 * (T1n + T1o);
Chris@42 364 }
Chris@42 365 }
Chris@42 366 {
Chris@42 367 E Tt, TG, T1b, T1f, TE, TF, T10, T1e;
Chris@42 368 {
Chris@42 369 E Tl, T1a, Tw, TZ;
Chris@42 370 Tl = Tj + Tk;
Chris@42 371 Tt = Tl - Ts;
Chris@42 372 TG = Tl + Ts;
Chris@42 373 T1a = T16 + T19;
Chris@42 374 T1b = T13 + T1a;
Chris@42 375 T1f = T1a - T13;
Chris@42 376 Tw = Tu + Tv;
Chris@42 377 TE = Tw + TD;
Chris@42 378 TF = TD - Tw;
Chris@42 379 TZ = TV - TY;
Chris@42 380 T10 = TS + TZ;
Chris@42 381 T1e = TZ - TS;
Chris@42 382 }
Chris@42 383 R0[WS(rs, 8)] = KP2_000000000 * (Tt + TE);
Chris@42 384 R0[WS(rs, 2)] = KP2_000000000 * (TF - TG);
Chris@42 385 R0[WS(rs, 7)] = KP2_000000000 * (T1f + T1e);
Chris@42 386 R0[WS(rs, 3)] = KP2_000000000 * (T1b + T10);
Chris@42 387 {
Chris@42 388 E T1d, T1g, TP, T1c;
Chris@42 389 T1d = TG + TF;
Chris@42 390 T1g = T1e - T1f;
Chris@42 391 R1[WS(rs, 4)] = KP1_414213562 * (T1d + T1g);
Chris@42 392 R1[WS(rs, 9)] = KP1_414213562 * (T1g - T1d);
Chris@42 393 TP = Tt - TE;
Chris@42 394 T1c = T10 - T1b;
Chris@42 395 R1[0] = KP1_414213562 * (TP + T1c);
Chris@42 396 R1[WS(rs, 5)] = KP1_414213562 * (T1c - TP);
Chris@42 397 }
Chris@42 398 }
Chris@42 399 }
Chris@42 400 }
Chris@42 401 }
Chris@42 402
Chris@42 403 static const kr2c_desc desc = { 20, "r2cbIII_20", {82, 32, 12, 0}, &GENUS };
Chris@42 404
Chris@42 405 void X(codelet_r2cbIII_20) (planner *p) {
Chris@42 406 X(kr2c_register) (p, r2cbIII_20, &desc);
Chris@42 407 }
Chris@42 408
Chris@42 409 #endif /* HAVE_FMA */