annotate src/fftw-3.3.5/rdft/scalar/r2cf/r2cfII_25.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:47:50 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_r2cf.native -fma -reorder-insns -schedule-for-pipeline -compact -variables 4 -pipeline-latency 4 -n 25 -name r2cfII_25 -dft-II -include r2cfII.h */
Chris@42 29
Chris@42 30 /*
Chris@42 31 * This function contains 212 FP additions, 177 FP multiplications,
Chris@42 32 * (or, 47 additions, 12 multiplications, 165 fused multiply/add),
Chris@42 33 * 163 stack variables, 67 constants, and 50 memory accesses
Chris@42 34 */
Chris@42 35 #include "r2cfII.h"
Chris@42 36
Chris@42 37 static void r2cfII_25(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(KP876091699, +0.876091699473550838204498029706869638173524346);
Chris@42 40 DK(KP792626838, +0.792626838241819413632131824093538848057784557);
Chris@42 41 DK(KP690668130, +0.690668130712929053565177988380887884042527623);
Chris@42 42 DK(KP809385824, +0.809385824416008241660603814668679683846476688);
Chris@42 43 DK(KP860541664, +0.860541664367944677098261680920518816412804187);
Chris@42 44 DK(KP681693190, +0.681693190061530575150324149145440022633095390);
Chris@42 45 DK(KP560319534, +0.560319534973832390111614715371676131169633784);
Chris@42 46 DK(KP237294955, +0.237294955877110315393888866460840817927895961);
Chris@42 47 DK(KP897376177, +0.897376177523557693138608077137219684419427330);
Chris@42 48 DK(KP997675361, +0.997675361079556513670859573984492383596555031);
Chris@42 49 DK(KP584303379, +0.584303379262766050358567120694562180043261496);
Chris@42 50 DK(KP653711795, +0.653711795629256296299985401753308353544378892);
Chris@42 51 DK(KP591287873, +0.591287873858343558732323717242372865934480959);
Chris@42 52 DK(KP645989928, +0.645989928319777763844272876603899665178054552);
Chris@42 53 DK(KP956723877, +0.956723877038460305821989399535483155872969262);
Chris@42 54 DK(KP952936919, +0.952936919628306576880750665357914584765951388);
Chris@42 55 DK(KP998026728, +0.998026728428271561952336806863450553336905220);
Chris@42 56 DK(KP945422727, +0.945422727388575946270360266328811958657216298);
Chris@42 57 DK(KP559154169, +0.559154169276087864842202529084232643714075927);
Chris@42 58 DK(KP683113946, +0.683113946453479238701949862233725244439656928);
Chris@42 59 DK(KP999754674, +0.999754674276473633366203429228112409535557487);
Chris@42 60 DK(KP968583161, +0.968583161128631119490168375464735813836012403);
Chris@42 61 DK(KP242145790, +0.242145790282157779872542093866183953459003101);
Chris@42 62 DK(KP734762448, +0.734762448793050413546343770063151342619912334);
Chris@42 63 DK(KP904730450, +0.904730450839922351881287709692877908104763647);
Chris@42 64 DK(KP876306680, +0.876306680043863587308115903922062583399064238);
Chris@42 65 DK(KP949179823, +0.949179823508441261575555465843363271711583843);
Chris@42 66 DK(KP772036680, +0.772036680810363904029489473607579825330539880);
Chris@42 67 DK(KP669429328, +0.669429328479476605641803240971985825917022098);
Chris@42 68 DK(KP916574801, +0.916574801383451584742370439148878693530976769);
Chris@42 69 DK(KP829049696, +0.829049696159252993975487806364305442437946767);
Chris@42 70 DK(KP923225144, +0.923225144846402650453449441572664695995209956);
Chris@42 71 DK(KP262346850, +0.262346850930607871785420028382979691334784273);
Chris@42 72 DK(KP992114701, +0.992114701314477831049793042785778521453036709);
Chris@42 73 DK(KP803003575, +0.803003575438660414833440593570376004635464850);
Chris@42 74 DK(KP906616052, +0.906616052148196230441134447086066874408359177);
Chris@42 75 DK(KP831864738, +0.831864738706457140726048799369896829771167132);
Chris@42 76 DK(KP763583905, +0.763583905359130246362948588764067237776594106);
Chris@42 77 DK(KP921078979, +0.921078979742360627699756128143719920817673854);
Chris@42 78 DK(KP904508497, +0.904508497187473712051146708591409529430077295);
Chris@42 79 DK(KP248028675, +0.248028675328619457762448260696444630363259177);
Chris@42 80 DK(KP894834959, +0.894834959464455102997960030820114611498661386);
Chris@42 81 DK(KP982009705, +0.982009705009746369461829878184175962711969869);
Chris@42 82 DK(KP845997307, +0.845997307939530944175097360758058292389769300);
Chris@42 83 DK(KP958953096, +0.958953096729998668045963838399037225970891871);
Chris@42 84 DK(KP867381224, +0.867381224396525206773171885031575671309956167);
Chris@42 85 DK(KP912575812, +0.912575812670962425556968549836277086778922727);
Chris@42 86 DK(KP951056516, +0.951056516295153572116439333379382143405698634);
Chris@42 87 DK(KP869845200, +0.869845200362138853122720822420327157933056305);
Chris@42 88 DK(KP786782374, +0.786782374965295178365099601674911834788448471);
Chris@42 89 DK(KP120146378, +0.120146378570687701782758537356596213647956445);
Chris@42 90 DK(KP132830569, +0.132830569247582714407653942074819768844536507);
Chris@42 91 DK(KP269969613, +0.269969613759572083574752974412347470060951301);
Chris@42 92 DK(KP244189809, +0.244189809627953270309879511234821255780225091);
Chris@42 93 DK(KP987388751, +0.987388751065621252324603216482382109400433949);
Chris@42 94 DK(KP893101515, +0.893101515366181661711202267938416198338079437);
Chris@42 95 DK(KP494780565, +0.494780565770515410344588413655324772219443730);
Chris@42 96 DK(KP447533225, +0.447533225982656890041886979663652563063114397);
Chris@42 97 DK(KP522847744, +0.522847744331509716623755382187077770911012542);
Chris@42 98 DK(KP578046249, +0.578046249379945007321754579646815604023525655);
Chris@42 99 DK(KP066152395, +0.066152395967733048213034281011006031460903353);
Chris@42 100 DK(KP059835404, +0.059835404262124915169548397419498386427871950);
Chris@42 101 DK(KP667278218, +0.667278218140296670899089292254759909713898805);
Chris@42 102 DK(KP603558818, +0.603558818296015001454675132653458027918768137);
Chris@42 103 DK(KP559016994, +0.559016994374947424102293417182819058860154590);
Chris@42 104 DK(KP250000000, +0.250000000000000000000000000000000000000000000);
Chris@42 105 DK(KP618033988, +0.618033988749894848204586834365638117720309180);
Chris@42 106 {
Chris@42 107 INT i;
Chris@42 108 for (i = v; i > 0; i = i - 1, R0 = R0 + ivs, R1 = R1 + ivs, Cr = Cr + ovs, Ci = Ci + ovs, MAKE_VOLATILE_STRIDE(100, rs), MAKE_VOLATILE_STRIDE(100, csr), MAKE_VOLATILE_STRIDE(100, csi)) {
Chris@42 109 E T2R, T2T, T2D, T2C, T2H, T2G, T2B, T2P, T2S;
Chris@42 110 {
Chris@42 111 E T2A, TJ, T1K, T3l, T2z, TB, T2d, T2l, T1N, T21, T15, T1g, T1s, T1D, T9;
Chris@42 112 E T25, T1X, T2o, T2g, T1z, T1u, T1j, TQ, Ti, T1a, T2f, T2p, T1U, T24, TX;
Chris@42 113 E T1k, T1v, T1A, T19, Ts, T18, T1P;
Chris@42 114 {
Chris@42 115 E Tt, Tw, TZ, Tx, Ty;
Chris@42 116 {
Chris@42 117 E T2v, TG, TH, TD, TE, TI, T2x;
Chris@42 118 T2v = R0[0];
Chris@42 119 TG = R0[WS(rs, 10)];
Chris@42 120 TH = R1[WS(rs, 2)];
Chris@42 121 TD = R0[WS(rs, 5)];
Chris@42 122 TE = R1[WS(rs, 7)];
Chris@42 123 Tt = R0[WS(rs, 2)];
Chris@42 124 TI = TG + TH;
Chris@42 125 T2x = TG - TH;
Chris@42 126 {
Chris@42 127 E TF, T2w, Tu, Tv, T2y;
Chris@42 128 TF = TD + TE;
Chris@42 129 T2w = TD - TE;
Chris@42 130 Tu = R0[WS(rs, 7)];
Chris@42 131 Tv = R1[WS(rs, 9)];
Chris@42 132 T2A = T2w - T2x;
Chris@42 133 T2y = T2w + T2x;
Chris@42 134 TJ = FMA(KP618033988, TI, TF);
Chris@42 135 T1K = FNMS(KP618033988, TF, TI);
Chris@42 136 T3l = T2v + T2y;
Chris@42 137 T2z = FNMS(KP250000000, T2y, T2v);
Chris@42 138 Tw = Tu - Tv;
Chris@42 139 TZ = Tu + Tv;
Chris@42 140 Tx = R0[WS(rs, 12)];
Chris@42 141 Ty = R1[WS(rs, 4)];
Chris@42 142 }
Chris@42 143 }
Chris@42 144 {
Chris@42 145 E TO, TN, TM, T1V;
Chris@42 146 {
Chris@42 147 E T1, T1M, T11, T13, T4, TK, T12, TL, T7, T5, TA, T6, T14, T1L, T8;
Chris@42 148 T1 = R0[WS(rs, 1)];
Chris@42 149 {
Chris@42 150 E T2, T10, Tz, T3;
Chris@42 151 T2 = R0[WS(rs, 6)];
Chris@42 152 T10 = Tx + Ty;
Chris@42 153 Tz = Tx - Ty;
Chris@42 154 T3 = R1[WS(rs, 8)];
Chris@42 155 T5 = R0[WS(rs, 11)];
Chris@42 156 T1M = FNMS(KP618033988, TZ, T10);
Chris@42 157 T11 = FMA(KP618033988, T10, TZ);
Chris@42 158 T13 = Tz - Tw;
Chris@42 159 TA = Tw + Tz;
Chris@42 160 T4 = T2 - T3;
Chris@42 161 TK = T2 + T3;
Chris@42 162 T6 = R1[WS(rs, 3)];
Chris@42 163 }
Chris@42 164 TB = Tt + TA;
Chris@42 165 T12 = FNMS(KP250000000, TA, Tt);
Chris@42 166 TL = T5 + T6;
Chris@42 167 T7 = T5 - T6;
Chris@42 168 T14 = FNMS(KP559016994, T13, T12);
Chris@42 169 T1L = FMA(KP559016994, T13, T12);
Chris@42 170 T8 = T4 + T7;
Chris@42 171 TO = T4 - T7;
Chris@42 172 T2d = FNMS(KP603558818, T1M, T1L);
Chris@42 173 T2l = FMA(KP667278218, T1L, T1M);
Chris@42 174 T1N = FMA(KP059835404, T1M, T1L);
Chris@42 175 T21 = FNMS(KP066152395, T1L, T1M);
Chris@42 176 T15 = FMA(KP578046249, T14, T11);
Chris@42 177 T1g = FNMS(KP522847744, T11, T14);
Chris@42 178 T1s = FMA(KP447533225, T11, T14);
Chris@42 179 T1D = FNMS(KP494780565, T14, T11);
Chris@42 180 TN = FNMS(KP250000000, T8, T1);
Chris@42 181 T9 = T1 + T8;
Chris@42 182 TM = FMA(KP618033988, TL, TK);
Chris@42 183 T1V = FNMS(KP618033988, TK, TL);
Chris@42 184 }
Chris@42 185 {
Chris@42 186 E Th, Td, TU, Tc, Te;
Chris@42 187 Th = R0[WS(rs, 4)];
Chris@42 188 {
Chris@42 189 E Ta, Tb, T1W, TP;
Chris@42 190 Ta = R0[WS(rs, 9)];
Chris@42 191 Tb = R1[WS(rs, 11)];
Chris@42 192 T1W = FNMS(KP559016994, TO, TN);
Chris@42 193 TP = FMA(KP559016994, TO, TN);
Chris@42 194 Td = R1[WS(rs, 6)];
Chris@42 195 TU = Ta + Tb;
Chris@42 196 Tc = Ta - Tb;
Chris@42 197 T25 = FNMS(KP893101515, T1V, T1W);
Chris@42 198 T1X = FMA(KP987388751, T1W, T1V);
Chris@42 199 T2o = FMA(KP522847744, T1V, T1W);
Chris@42 200 T2g = FNMS(KP578046249, T1W, T1V);
Chris@42 201 T1z = FMA(KP667278218, TP, TM);
Chris@42 202 T1u = FNMS(KP603558818, TM, TP);
Chris@42 203 T1j = FNMS(KP244189809, TM, TP);
Chris@42 204 TQ = FMA(KP269969613, TP, TM);
Chris@42 205 Te = R1[WS(rs, 1)];
Chris@42 206 }
Chris@42 207 {
Chris@42 208 E Tk, T1S, TW, TS, Tn, T16, TR, T17, Tq, To, Tg, Tp, TT, T1T, Tr;
Chris@42 209 Tk = R0[WS(rs, 3)];
Chris@42 210 {
Chris@42 211 E Tl, TV, Tf, Tm;
Chris@42 212 Tl = R0[WS(rs, 8)];
Chris@42 213 TV = Te - Td;
Chris@42 214 Tf = Td + Te;
Chris@42 215 Tm = R1[WS(rs, 10)];
Chris@42 216 To = R1[0];
Chris@42 217 T1S = FMA(KP618033988, TU, TV);
Chris@42 218 TW = FNMS(KP618033988, TV, TU);
Chris@42 219 TS = Tc + Tf;
Chris@42 220 Tg = Tc - Tf;
Chris@42 221 Tn = Tl - Tm;
Chris@42 222 T16 = Tl + Tm;
Chris@42 223 Tp = R1[WS(rs, 5)];
Chris@42 224 }
Chris@42 225 Ti = Tg + Th;
Chris@42 226 TR = FNMS(KP250000000, Tg, Th);
Chris@42 227 T17 = Tp - To;
Chris@42 228 Tq = To + Tp;
Chris@42 229 TT = FMA(KP559016994, TS, TR);
Chris@42 230 T1T = FNMS(KP559016994, TS, TR);
Chris@42 231 Tr = Tn - Tq;
Chris@42 232 T1a = Tn + Tq;
Chris@42 233 T2f = FNMS(KP447533225, T1S, T1T);
Chris@42 234 T2p = FMA(KP494780565, T1T, T1S);
Chris@42 235 T1U = FMA(KP132830569, T1T, T1S);
Chris@42 236 T24 = FNMS(KP120146378, T1S, T1T);
Chris@42 237 TX = FMA(KP603558818, TW, TT);
Chris@42 238 T1k = FNMS(KP667278218, TT, TW);
Chris@42 239 T1v = FNMS(KP786782374, TW, TT);
Chris@42 240 T1A = FMA(KP869845200, TT, TW);
Chris@42 241 T19 = FNMS(KP250000000, Tr, Tk);
Chris@42 242 Ts = Tk + Tr;
Chris@42 243 T18 = FMA(KP618033988, T17, T16);
Chris@42 244 T1P = FNMS(KP618033988, T16, T17);
Chris@42 245 }
Chris@42 246 }
Chris@42 247 }
Chris@42 248 }
Chris@42 249 {
Chris@42 250 E T22, T1Q, T1h, T1c, T2O, T2N, T2m, T3a, T3b, T2q, T1y, T3f, T2e, T2h, T3e;
Chris@42 251 E T1H, T1J;
Chris@42 252 {
Chris@42 253 E T3m, T3n, T2k, T2c, T1C, T1r;
Chris@42 254 {
Chris@42 255 E Tj, TC, T1O, T1b;
Chris@42 256 T3m = T9 + Ti;
Chris@42 257 Tj = T9 - Ti;
Chris@42 258 TC = Ts - TB;
Chris@42 259 T3n = TB + Ts;
Chris@42 260 T1O = FNMS(KP559016994, T1a, T19);
Chris@42 261 T1b = FMA(KP559016994, T1a, T19);
Chris@42 262 Ci[WS(csi, 7)] = KP951056516 * (FMA(KP618033988, Tj, TC));
Chris@42 263 Ci[WS(csi, 2)] = -(KP951056516 * (FNMS(KP618033988, TC, Tj)));
Chris@42 264 T22 = FMA(KP869845200, T1O, T1P);
Chris@42 265 T1Q = FNMS(KP786782374, T1P, T1O);
Chris@42 266 T2k = FMA(KP066152395, T1O, T1P);
Chris@42 267 T2c = FNMS(KP059835404, T1P, T1O);
Chris@42 268 T1C = FNMS(KP120146378, T18, T1b);
Chris@42 269 T1r = FMA(KP132830569, T1b, T18);
Chris@42 270 T1h = FNMS(KP893101515, T18, T1b);
Chris@42 271 T1c = FMA(KP987388751, T1b, T18);
Chris@42 272 }
Chris@42 273 {
Chris@42 274 E T1B, T1E, T1t, T3o, T3q, T1w, T3p;
Chris@42 275 T1B = FMA(KP912575812, T1A, T1z);
Chris@42 276 T2O = FNMS(KP912575812, T1A, T1z);
Chris@42 277 T2N = FNMS(KP867381224, T1D, T1C);
Chris@42 278 T1E = FMA(KP867381224, T1D, T1C);
Chris@42 279 T1t = FMA(KP958953096, T1s, T1r);
Chris@42 280 T2R = FNMS(KP958953096, T1s, T1r);
Chris@42 281 T3o = T3m + T3n;
Chris@42 282 T3q = T3m - T3n;
Chris@42 283 T2T = FMA(KP912575812, T1v, T1u);
Chris@42 284 T1w = FNMS(KP912575812, T1v, T1u);
Chris@42 285 T2m = FNMS(KP845997307, T2l, T2k);
Chris@42 286 T3a = FMA(KP845997307, T2l, T2k);
Chris@42 287 T3b = FNMS(KP982009705, T2p, T2o);
Chris@42 288 T2q = FMA(KP982009705, T2p, T2o);
Chris@42 289 T3p = FNMS(KP250000000, T3o, T3l);
Chris@42 290 Cr[WS(csr, 12)] = T3o + T3l;
Chris@42 291 {
Chris@42 292 E T1x, T1F, T1G, T1I;
Chris@42 293 T1x = FMA(KP894834959, T1w, T1t);
Chris@42 294 T1F = FNMS(KP894834959, T1w, T1t);
Chris@42 295 Cr[WS(csr, 7)] = FNMS(KP559016994, T3q, T3p);
Chris@42 296 Cr[WS(csr, 2)] = FMA(KP559016994, T3q, T3p);
Chris@42 297 T1y = FMA(KP248028675, T1x, TJ);
Chris@42 298 T1G = FNMS(KP904508497, T1F, T1E);
Chris@42 299 T1I = FNMS(KP894834959, T1B, T1F);
Chris@42 300 T3f = FNMS(KP845997307, T2d, T2c);
Chris@42 301 T2e = FMA(KP845997307, T2d, T2c);
Chris@42 302 T2h = FNMS(KP921078979, T2g, T2f);
Chris@42 303 T3e = FMA(KP921078979, T2g, T2f);
Chris@42 304 T1H = FMA(KP763583905, T1G, T1B);
Chris@42 305 T1J = FMA(KP559016994, T1I, T1E);
Chris@42 306 }
Chris@42 307 }
Chris@42 308 }
Chris@42 309 {
Chris@42 310 E T1i, T1l, T23, T30, T2Z, T26, T1R, T33, T1f, T1n, T1p, T34, T1Y, T3d, T3k;
Chris@42 311 E T3i;
Chris@42 312 {
Chris@42 313 E T2j, TY, T2s, T2u, T1d, T1m, T1e;
Chris@42 314 T2D = FMA(KP831864738, T1h, T1g);
Chris@42 315 T1i = FNMS(KP831864738, T1h, T1g);
Chris@42 316 {
Chris@42 317 E T2i, T2n, T2r, T2t;
Chris@42 318 T2i = FMA(KP906616052, T2h, T2e);
Chris@42 319 T2n = FNMS(KP906616052, T2h, T2e);
Chris@42 320 Ci[WS(csi, 4)] = KP951056516 * (FNMS(KP803003575, T1H, T1y));
Chris@42 321 Ci[WS(csi, 9)] = KP951056516 * (FNMS(KP992114701, T1J, T1y));
Chris@42 322 T2j = FMA(KP262346850, T2i, T1K);
Chris@42 323 T2r = FNMS(KP923225144, T2q, T2n);
Chris@42 324 T2t = T2m + T2n;
Chris@42 325 T2C = FNMS(KP829049696, T1k, T1j);
Chris@42 326 T1l = FMA(KP829049696, T1k, T1j);
Chris@42 327 TY = FMA(KP916574801, TX, TQ);
Chris@42 328 T2H = FNMS(KP916574801, TX, TQ);
Chris@42 329 T2s = FNMS(KP618033988, T2r, T2m);
Chris@42 330 T2u = FNMS(KP669429328, T2t, T2q);
Chris@42 331 T2G = FNMS(KP831864738, T1c, T15);
Chris@42 332 T1d = FMA(KP831864738, T1c, T15);
Chris@42 333 }
Chris@42 334 T23 = FNMS(KP772036680, T22, T21);
Chris@42 335 T30 = FMA(KP772036680, T22, T21);
Chris@42 336 Ci[WS(csi, 8)] = KP951056516 * (FMA(KP949179823, T2s, T2j));
Chris@42 337 Ci[WS(csi, 3)] = KP951056516 * (FNMS(KP876306680, T2u, T2j));
Chris@42 338 T1m = FNMS(KP904730450, T1d, TY);
Chris@42 339 T1e = FMA(KP904730450, T1d, TY);
Chris@42 340 T2Z = FNMS(KP734762448, T25, T24);
Chris@42 341 T26 = FMA(KP734762448, T25, T24);
Chris@42 342 T1R = FMA(KP772036680, T1Q, T1N);
Chris@42 343 T33 = FNMS(KP772036680, T1Q, T1N);
Chris@42 344 T1f = FNMS(KP242145790, T1e, TJ);
Chris@42 345 Ci[0] = -(KP951056516 * (FMA(KP968583161, T1e, TJ)));
Chris@42 346 T1n = FNMS(KP904508497, T1m, T1l);
Chris@42 347 T1p = FNMS(KP999754674, T1m, T1i);
Chris@42 348 T34 = FNMS(KP734762448, T1X, T1U);
Chris@42 349 T1Y = FMA(KP734762448, T1X, T1U);
Chris@42 350 }
Chris@42 351 {
Chris@42 352 E T2Y, T31, T38, T36, T3c, T3g;
Chris@42 353 {
Chris@42 354 E T20, T28, T2a, T29, T2b, T35;
Chris@42 355 T2Y = FNMS(KP559016994, T2A, T2z);
Chris@42 356 T2B = FMA(KP559016994, T2A, T2z);
Chris@42 357 {
Chris@42 358 E T1o, T1q, T27, T1Z;
Chris@42 359 T1o = FNMS(KP683113946, T1n, T1i);
Chris@42 360 T1q = FMA(KP559154169, T1p, T1l);
Chris@42 361 T27 = FNMS(KP945422727, T1Y, T1R);
Chris@42 362 T1Z = FMA(KP945422727, T1Y, T1R);
Chris@42 363 Ci[WS(csi, 5)] = -(KP951056516 * (FNMS(KP876306680, T1o, T1f)));
Chris@42 364 Ci[WS(csi, 10)] = -(KP951056516 * (FNMS(KP968583161, T1q, T1f)));
Chris@42 365 T20 = FNMS(KP262346850, T1Z, T1K);
Chris@42 366 Ci[WS(csi, 1)] = -(KP998026728 * (FMA(KP952936919, T1K, T1Z)));
Chris@42 367 T28 = FMA(KP956723877, T27, T26);
Chris@42 368 T2a = T27 - T23;
Chris@42 369 }
Chris@42 370 T29 = FMA(KP645989928, T28, T23);
Chris@42 371 T2b = FMA(KP591287873, T2a, T26);
Chris@42 372 Ci[WS(csi, 6)] = -(KP951056516 * (FMA(KP949179823, T29, T20)));
Chris@42 373 Ci[WS(csi, 11)] = -(KP951056516 * (FNMS(KP992114701, T2b, T20)));
Chris@42 374 T31 = FMA(KP956723877, T30, T2Z);
Chris@42 375 T35 = FNMS(KP956723877, T30, T2Z);
Chris@42 376 T38 = FMA(KP618033988, T35, T34);
Chris@42 377 T36 = T34 + T35;
Chris@42 378 }
Chris@42 379 Cr[WS(csr, 1)] = FNMS(KP992114701, T31, T2Y);
Chris@42 380 T3c = FMA(KP923225144, T3b, T3a);
Chris@42 381 T3g = FNMS(KP923225144, T3b, T3a);
Chris@42 382 {
Chris@42 383 E T32, T37, T3h, T3j, T39;
Chris@42 384 T32 = FMA(KP248028675, T31, T2Y);
Chris@42 385 T39 = FNMS(KP653711795, T33, T38);
Chris@42 386 T37 = FMA(KP584303379, T36, T33);
Chris@42 387 T3h = FNMS(KP904508497, T3g, T3f);
Chris@42 388 T3j = FNMS(KP997675361, T3g, T3e);
Chris@42 389 Cr[WS(csr, 11)] = FNMS(KP897376177, T39, T32);
Chris@42 390 Cr[WS(csr, 6)] = FMA(KP949179823, T37, T32);
Chris@42 391 T3d = FNMS(KP237294955, T3c, T2Y);
Chris@42 392 T3k = FNMS(KP560319534, T3j, T3f);
Chris@42 393 T3i = FMA(KP681693190, T3h, T3e);
Chris@42 394 }
Chris@42 395 }
Chris@42 396 Cr[WS(csr, 8)] = FMA(KP949179823, T3k, T3d);
Chris@42 397 Cr[WS(csr, 3)] = FMA(KP860541664, T3i, T3d);
Chris@42 398 T2P = FNMS(KP809385824, T2O, T2N);
Chris@42 399 T2S = FMA(KP809385824, T2O, T2N);
Chris@42 400 }
Chris@42 401 }
Chris@42 402 }
Chris@42 403 {
Chris@42 404 E T2F, T2K, T2M, T2Q;
Chris@42 405 T2Q = FMA(KP248028675, T2P, T2B);
Chris@42 406 {
Chris@42 407 E T2U, T2W, T2E, T2I;
Chris@42 408 T2U = FNMS(KP894834959, T2T, T2S);
Chris@42 409 T2W = T2R + T2S;
Chris@42 410 T2E = FMA(KP904730450, T2D, T2C);
Chris@42 411 T2I = FNMS(KP904730450, T2D, T2C);
Chris@42 412 {
Chris@42 413 E T2V, T2X, T2J, T2L;
Chris@42 414 T2V = FNMS(KP618033988, T2U, T2R);
Chris@42 415 T2X = FNMS(KP690668130, T2W, T2T);
Chris@42 416 T2F = FNMS(KP242145790, T2E, T2B);
Chris@42 417 Cr[0] = FMA(KP968583161, T2E, T2B);
Chris@42 418 T2J = T2H + T2I;
Chris@42 419 T2L = FMA(KP904730450, T2G, T2I);
Chris@42 420 Cr[WS(csr, 9)] = FMA(KP897376177, T2V, T2Q);
Chris@42 421 Cr[WS(csr, 4)] = FNMS(KP803003575, T2X, T2Q);
Chris@42 422 T2K = FNMS(KP683113946, T2J, T2G);
Chris@42 423 T2M = FMA(KP618033988, T2L, T2H);
Chris@42 424 }
Chris@42 425 }
Chris@42 426 Cr[WS(csr, 5)] = FMA(KP792626838, T2K, T2F);
Chris@42 427 Cr[WS(csr, 10)] = FMA(KP876091699, T2M, T2F);
Chris@42 428 }
Chris@42 429 }
Chris@42 430 }
Chris@42 431 }
Chris@42 432
Chris@42 433 static const kr2c_desc desc = { 25, "r2cfII_25", {47, 12, 165, 0}, &GENUS };
Chris@42 434
Chris@42 435 void X(codelet_r2cfII_25) (planner *p) {
Chris@42 436 X(kr2c_register) (p, r2cfII_25, &desc);
Chris@42 437 }
Chris@42 438
Chris@42 439 #else /* HAVE_FMA */
Chris@42 440
Chris@42 441 /* Generated by: ../../../genfft/gen_r2cf.native -compact -variables 4 -pipeline-latency 4 -n 25 -name r2cfII_25 -dft-II -include r2cfII.h */
Chris@42 442
Chris@42 443 /*
Chris@42 444 * This function contains 213 FP additions, 148 FP multiplications,
Chris@42 445 * (or, 126 additions, 61 multiplications, 87 fused multiply/add),
Chris@42 446 * 94 stack variables, 38 constants, and 50 memory accesses
Chris@42 447 */
Chris@42 448 #include "r2cfII.h"
Chris@42 449
Chris@42 450 static void r2cfII_25(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
Chris@42 451 {
Chris@42 452 DK(KP1_996053456, +1.996053456856543123904673613726901106673810439);
Chris@42 453 DK(KP062790519, +0.062790519529313376076178224565631133122484832);
Chris@42 454 DK(KP125581039, +0.125581039058626752152356449131262266244969664);
Chris@42 455 DK(KP998026728, +0.998026728428271561952336806863450553336905220);
Chris@42 456 DK(KP1_369094211, +1.369094211857377347464566715242418539779038465);
Chris@42 457 DK(KP728968627, +0.728968627421411523146730319055259111372571664);
Chris@42 458 DK(KP963507348, +0.963507348203430549974383005744259307057084020);
Chris@42 459 DK(KP876306680, +0.876306680043863587308115903922062583399064238);
Chris@42 460 DK(KP497379774, +0.497379774329709576484567492012895936835134813);
Chris@42 461 DK(KP968583161, +0.968583161128631119490168375464735813836012403);
Chris@42 462 DK(KP1_457937254, +1.457937254842823046293460638110518222745143328);
Chris@42 463 DK(KP684547105, +0.684547105928688673732283357621209269889519233);
Chris@42 464 DK(KP1_752613360, +1.752613360087727174616231807844125166798128477);
Chris@42 465 DK(KP481753674, +0.481753674101715274987191502872129653528542010);
Chris@42 466 DK(KP1_937166322, +1.937166322257262238980336750929471627672024806);
Chris@42 467 DK(KP248689887, +0.248689887164854788242283746006447968417567406);
Chris@42 468 DK(KP992114701, +0.992114701314477831049793042785778521453036709);
Chris@42 469 DK(KP250666467, +0.250666467128608490746237519633017587885836494);
Chris@42 470 DK(KP1_809654104, +1.809654104932039055427337295865395187940827822);
Chris@42 471 DK(KP425779291, +0.425779291565072648862502445744251703979973042);
Chris@42 472 DK(KP1_541026485, +1.541026485551578461606019272792355694543335344);
Chris@42 473 DK(KP637423989, +0.637423989748689710176712811676016195434917298);
Chris@42 474 DK(KP1_688655851, +1.688655851004030157097116127933363010763318483);
Chris@42 475 DK(KP535826794, +0.535826794978996618271308767867639978063575346);
Chris@42 476 DK(KP851558583, +0.851558583130145297725004891488503407959946084);
Chris@42 477 DK(KP904827052, +0.904827052466019527713668647932697593970413911);
Chris@42 478 DK(KP1_984229402, +1.984229402628955662099586085571557042906073418);
Chris@42 479 DK(KP125333233, +0.125333233564304245373118759816508793942918247);
Chris@42 480 DK(KP1_274847979, +1.274847979497379420353425623352032390869834596);
Chris@42 481 DK(KP770513242, +0.770513242775789230803009636396177847271667672);
Chris@42 482 DK(KP844327925, +0.844327925502015078548558063966681505381659241);
Chris@42 483 DK(KP1_071653589, +1.071653589957993236542617535735279956127150691);
Chris@42 484 DK(KP293892626, +0.293892626146236564584352977319536384298826219);
Chris@42 485 DK(KP475528258, +0.475528258147576786058219666689691071702849317);
Chris@42 486 DK(KP250000000, +0.250000000000000000000000000000000000000000000);
Chris@42 487 DK(KP587785252, +0.587785252292473129168705954639072768597652438);
Chris@42 488 DK(KP951056516, +0.951056516295153572116439333379382143405698634);
Chris@42 489 DK(KP559016994, +0.559016994374947424102293417182819058860154590);
Chris@42 490 {
Chris@42 491 INT i;
Chris@42 492 for (i = v; i > 0; i = i - 1, R0 = R0 + ivs, R1 = R1 + ivs, Cr = Cr + ovs, Ci = Ci + ovs, MAKE_VOLATILE_STRIDE(100, rs), MAKE_VOLATILE_STRIDE(100, csr), MAKE_VOLATILE_STRIDE(100, csi)) {
Chris@42 493 E TE, TR, T2i, T1z, TL, TS, TB, T2d, T1l, T1i, T2c, T9, T23, TZ, TW;
Chris@42 494 E T22, Ti, T26, T16, T13, T25, Ts, T2a, T1e, T1b, T29, TP, TQ;
Chris@42 495 {
Chris@42 496 E TK, T1y, TH, T1x;
Chris@42 497 TE = R0[0];
Chris@42 498 {
Chris@42 499 E TI, TJ, TF, TG;
Chris@42 500 TI = R0[WS(rs, 10)];
Chris@42 501 TJ = R1[WS(rs, 2)];
Chris@42 502 TK = TI - TJ;
Chris@42 503 T1y = TI + TJ;
Chris@42 504 TF = R0[WS(rs, 5)];
Chris@42 505 TG = R1[WS(rs, 7)];
Chris@42 506 TH = TF - TG;
Chris@42 507 T1x = TF + TG;
Chris@42 508 }
Chris@42 509 TR = KP559016994 * (TH - TK);
Chris@42 510 T2i = FNMS(KP587785252, T1x, KP951056516 * T1y);
Chris@42 511 T1z = FMA(KP951056516, T1x, KP587785252 * T1y);
Chris@42 512 TL = TH + TK;
Chris@42 513 TS = FNMS(KP250000000, TL, TE);
Chris@42 514 }
Chris@42 515 {
Chris@42 516 E Tt, Tw, Tz, TA, T1k, T1j, T1g, T1h;
Chris@42 517 Tt = R0[WS(rs, 3)];
Chris@42 518 {
Chris@42 519 E Tu, Tv, Tx, Ty;
Chris@42 520 Tu = R0[WS(rs, 8)];
Chris@42 521 Tv = R1[WS(rs, 10)];
Chris@42 522 Tw = Tu - Tv;
Chris@42 523 Tx = R1[0];
Chris@42 524 Ty = R1[WS(rs, 5)];
Chris@42 525 Tz = Tx + Ty;
Chris@42 526 TA = Tw - Tz;
Chris@42 527 T1k = Ty - Tx;
Chris@42 528 T1j = Tu + Tv;
Chris@42 529 }
Chris@42 530 TB = Tt + TA;
Chris@42 531 T2d = FNMS(KP293892626, T1j, KP475528258 * T1k);
Chris@42 532 T1l = FMA(KP475528258, T1j, KP293892626 * T1k);
Chris@42 533 T1g = FNMS(KP250000000, TA, Tt);
Chris@42 534 T1h = KP559016994 * (Tw + Tz);
Chris@42 535 T1i = T1g + T1h;
Chris@42 536 T2c = T1g - T1h;
Chris@42 537 }
Chris@42 538 {
Chris@42 539 E T1, T4, T7, T8, TY, TX, TU, TV;
Chris@42 540 T1 = R0[WS(rs, 1)];
Chris@42 541 {
Chris@42 542 E T2, T3, T5, T6;
Chris@42 543 T2 = R0[WS(rs, 6)];
Chris@42 544 T3 = R1[WS(rs, 8)];
Chris@42 545 T4 = T2 - T3;
Chris@42 546 T5 = R0[WS(rs, 11)];
Chris@42 547 T6 = R1[WS(rs, 3)];
Chris@42 548 T7 = T5 - T6;
Chris@42 549 T8 = T4 + T7;
Chris@42 550 TY = T5 + T6;
Chris@42 551 TX = T2 + T3;
Chris@42 552 }
Chris@42 553 T9 = T1 + T8;
Chris@42 554 T23 = FNMS(KP293892626, TX, KP475528258 * TY);
Chris@42 555 TZ = FMA(KP475528258, TX, KP293892626 * TY);
Chris@42 556 TU = KP559016994 * (T4 - T7);
Chris@42 557 TV = FNMS(KP250000000, T8, T1);
Chris@42 558 TW = TU + TV;
Chris@42 559 T22 = TV - TU;
Chris@42 560 }
Chris@42 561 {
Chris@42 562 E Ta, Td, Tg, Th, T15, T14, T11, T12;
Chris@42 563 Ta = R0[WS(rs, 4)];
Chris@42 564 {
Chris@42 565 E Tb, Tc, Te, Tf;
Chris@42 566 Tb = R0[WS(rs, 9)];
Chris@42 567 Tc = R1[WS(rs, 11)];
Chris@42 568 Td = Tb - Tc;
Chris@42 569 Te = R1[WS(rs, 1)];
Chris@42 570 Tf = R1[WS(rs, 6)];
Chris@42 571 Tg = Te + Tf;
Chris@42 572 Th = Td - Tg;
Chris@42 573 T15 = Tf - Te;
Chris@42 574 T14 = Tb + Tc;
Chris@42 575 }
Chris@42 576 Ti = Ta + Th;
Chris@42 577 T26 = FNMS(KP293892626, T14, KP475528258 * T15);
Chris@42 578 T16 = FMA(KP475528258, T14, KP293892626 * T15);
Chris@42 579 T11 = FNMS(KP250000000, Th, Ta);
Chris@42 580 T12 = KP559016994 * (Td + Tg);
Chris@42 581 T13 = T11 + T12;
Chris@42 582 T25 = T11 - T12;
Chris@42 583 }
Chris@42 584 {
Chris@42 585 E Tk, Tn, Tq, Tr, T1d, T1c, T19, T1a;
Chris@42 586 Tk = R0[WS(rs, 2)];
Chris@42 587 {
Chris@42 588 E Tl, Tm, To, Tp;
Chris@42 589 Tl = R0[WS(rs, 7)];
Chris@42 590 Tm = R1[WS(rs, 9)];
Chris@42 591 Tn = Tl - Tm;
Chris@42 592 To = R0[WS(rs, 12)];
Chris@42 593 Tp = R1[WS(rs, 4)];
Chris@42 594 Tq = To - Tp;
Chris@42 595 Tr = Tn + Tq;
Chris@42 596 T1d = To + Tp;
Chris@42 597 T1c = Tl + Tm;
Chris@42 598 }
Chris@42 599 Ts = Tk + Tr;
Chris@42 600 T2a = FNMS(KP293892626, T1c, KP475528258 * T1d);
Chris@42 601 T1e = FMA(KP475528258, T1c, KP293892626 * T1d);
Chris@42 602 T19 = KP559016994 * (Tn - Tq);
Chris@42 603 T1a = FNMS(KP250000000, Tr, Tk);
Chris@42 604 T1b = T19 + T1a;
Chris@42 605 T29 = T1a - T19;
Chris@42 606 }
Chris@42 607 TP = TB - Ts;
Chris@42 608 TQ = T9 - Ti;
Chris@42 609 Ci[WS(csi, 2)] = FNMS(KP951056516, TQ, KP587785252 * TP);
Chris@42 610 Ci[WS(csi, 7)] = FMA(KP587785252, TQ, KP951056516 * TP);
Chris@42 611 {
Chris@42 612 E TM, TD, TN, Tj, TC, TO;
Chris@42 613 TM = TE + TL;
Chris@42 614 Tj = T9 + Ti;
Chris@42 615 TC = Ts + TB;
Chris@42 616 TD = KP559016994 * (Tj - TC);
Chris@42 617 TN = Tj + TC;
Chris@42 618 Cr[WS(csr, 12)] = TM + TN;
Chris@42 619 TO = FNMS(KP250000000, TN, TM);
Chris@42 620 Cr[WS(csr, 2)] = TD + TO;
Chris@42 621 Cr[WS(csr, 7)] = TO - TD;
Chris@42 622 }
Chris@42 623 {
Chris@42 624 E TT, T1J, T1Y, T1U, T1X, T1P, T1V, T1M, T1W, T1A, T1B, T1r, T1C, T1v, T18;
Chris@42 625 E T1n, T1o, T1G, T1D;
Chris@42 626 TT = TR + TS;
Chris@42 627 {
Chris@42 628 E T1H, T1I, T1S, T1T;
Chris@42 629 T1H = FNMS(KP844327925, TW, KP1_071653589 * TZ);
Chris@42 630 T1I = FNMS(KP1_274847979, T16, KP770513242 * T13);
Chris@42 631 T1J = T1H - T1I;
Chris@42 632 T1Y = T1H + T1I;
Chris@42 633 T1S = FMA(KP125333233, T1i, KP1_984229402 * T1l);
Chris@42 634 T1T = FMA(KP904827052, T1b, KP851558583 * T1e);
Chris@42 635 T1U = T1S - T1T;
Chris@42 636 T1X = T1T + T1S;
Chris@42 637 }
Chris@42 638 {
Chris@42 639 E T1N, T1O, T1K, T1L;
Chris@42 640 T1N = FMA(KP535826794, TW, KP1_688655851 * TZ);
Chris@42 641 T1O = FMA(KP637423989, T13, KP1_541026485 * T16);
Chris@42 642 T1P = T1N - T1O;
Chris@42 643 T1V = T1N + T1O;
Chris@42 644 T1K = FNMS(KP1_809654104, T1e, KP425779291 * T1b);
Chris@42 645 T1L = FNMS(KP992114701, T1i, KP250666467 * T1l);
Chris@42 646 T1M = T1K - T1L;
Chris@42 647 T1W = T1K + T1L;
Chris@42 648 }
Chris@42 649 {
Chris@42 650 E T1p, T1q, T1t, T1u;
Chris@42 651 T1p = FMA(KP844327925, T13, KP1_071653589 * T16);
Chris@42 652 T1q = FMA(KP248689887, TW, KP1_937166322 * TZ);
Chris@42 653 T1A = T1q + T1p;
Chris@42 654 T1t = FMA(KP481753674, T1b, KP1_752613360 * T1e);
Chris@42 655 T1u = FMA(KP684547105, T1i, KP1_457937254 * T1l);
Chris@42 656 T1B = T1t + T1u;
Chris@42 657 T1r = T1p - T1q;
Chris@42 658 T1C = T1A + T1B;
Chris@42 659 T1v = T1t - T1u;
Chris@42 660 }
Chris@42 661 {
Chris@42 662 E T10, T17, T1f, T1m;
Chris@42 663 T10 = FNMS(KP497379774, TZ, KP968583161 * TW);
Chris@42 664 T17 = FNMS(KP1_688655851, T16, KP535826794 * T13);
Chris@42 665 T18 = T10 + T17;
Chris@42 666 T1f = FNMS(KP963507348, T1e, KP876306680 * T1b);
Chris@42 667 T1m = FNMS(KP1_369094211, T1l, KP728968627 * T1i);
Chris@42 668 T1n = T1f + T1m;
Chris@42 669 T1o = T18 + T1n;
Chris@42 670 T1G = T10 - T17;
Chris@42 671 T1D = T1f - T1m;
Chris@42 672 }
Chris@42 673 {
Chris@42 674 E T1R, T1Q, T20, T1Z;
Chris@42 675 Cr[0] = TT + T1o;
Chris@42 676 Ci[0] = -(T1z + T1C);
Chris@42 677 T1R = KP559016994 * (T1P + T1M);
Chris@42 678 T1Q = FMA(KP250000000, T1M - T1P, TT);
Chris@42 679 Cr[WS(csr, 4)] = FMA(KP951056516, T1J, T1Q) + FMA(KP587785252, T1U, T1R);
Chris@42 680 Cr[WS(csr, 9)] = FMA(KP951056516, T1U, T1Q) + FNMA(KP587785252, T1J, T1R);
Chris@42 681 T20 = KP559016994 * (T1Y + T1X);
Chris@42 682 T1Z = FMA(KP250000000, T1X - T1Y, T1z);
Chris@42 683 Ci[WS(csi, 9)] = FMA(KP587785252, T1V, KP951056516 * T1W) + T1Z - T20;
Chris@42 684 Ci[WS(csi, 4)] = FMA(KP587785252, T1W, T1Z) + FNMS(KP951056516, T1V, T20);
Chris@42 685 {
Chris@42 686 E T1E, T1F, T1s, T1w;
Chris@42 687 T1E = FMS(KP250000000, T1C, T1z);
Chris@42 688 T1F = KP559016994 * (T1B - T1A);
Chris@42 689 Ci[WS(csi, 5)] = FMA(KP951056516, T1D, T1E) + FNMA(KP587785252, T1G, T1F);
Chris@42 690 Ci[WS(csi, 10)] = FMA(KP951056516, T1G, KP587785252 * T1D) + T1E + T1F;
Chris@42 691 T1s = FNMS(KP250000000, T1o, TT);
Chris@42 692 T1w = KP559016994 * (T18 - T1n);
Chris@42 693 Cr[WS(csr, 5)] = FMA(KP587785252, T1r, T1s) + FMS(KP951056516, T1v, T1w);
Chris@42 694 Cr[WS(csr, 10)] = T1w + FMA(KP587785252, T1v, T1s) - (KP951056516 * T1r);
Chris@42 695 }
Chris@42 696 }
Chris@42 697 }
Chris@42 698 {
Chris@42 699 E T21, T2z, T2L, T2K, T2M, T2F, T2P, T2C, T2Q, T2l, T2o, T2p, T2w, T2u, T28;
Chris@42 700 E T2f, T2g, T2s, T2h;
Chris@42 701 T21 = TS - TR;
Chris@42 702 {
Chris@42 703 E T2x, T2y, T2I, T2J;
Chris@42 704 T2x = FNMS(KP844327925, T29, KP1_071653589 * T2a);
Chris@42 705 T2y = FNMS(KP125581039, T2d, KP998026728 * T2c);
Chris@42 706 T2z = T2x + T2y;
Chris@42 707 T2L = T2y - T2x;
Chris@42 708 T2I = FNMS(KP481753674, T22, KP1_752613360 * T23);
Chris@42 709 T2J = FMA(KP904827052, T25, KP851558583 * T26);
Chris@42 710 T2K = T2I + T2J;
Chris@42 711 T2M = T2I - T2J;
Chris@42 712 }
Chris@42 713 {
Chris@42 714 E T2D, T2E, T2A, T2B;
Chris@42 715 T2D = FMA(KP535826794, T29, KP1_688655851 * T2a);
Chris@42 716 T2E = FMA(KP062790519, T2c, KP1_996053456 * T2d);
Chris@42 717 T2F = T2D + T2E;
Chris@42 718 T2P = T2E - T2D;
Chris@42 719 T2A = FMA(KP876306680, T22, KP963507348 * T23);
Chris@42 720 T2B = FNMS(KP425779291, T25, KP1_809654104 * T26);
Chris@42 721 T2C = T2A + T2B;
Chris@42 722 T2Q = T2A - T2B;
Chris@42 723 }
Chris@42 724 {
Chris@42 725 E T2j, T2k, T2m, T2n;
Chris@42 726 T2j = FNMS(KP125333233, T25, KP1_984229402 * T26);
Chris@42 727 T2k = FMA(KP684547105, T22, KP1_457937254 * T23);
Chris@42 728 T2l = T2j - T2k;
Chris@42 729 T2m = FNMS(KP770513242, T2c, KP1_274847979 * T2d);
Chris@42 730 T2n = FMA(KP998026728, T29, KP125581039 * T2a);
Chris@42 731 T2o = T2m - T2n;
Chris@42 732 T2p = T2l + T2o;
Chris@42 733 T2w = T2k + T2j;
Chris@42 734 T2u = T2n + T2m;
Chris@42 735 }
Chris@42 736 {
Chris@42 737 E T24, T27, T2b, T2e;
Chris@42 738 T24 = FNMS(KP1_369094211, T23, KP728968627 * T22);
Chris@42 739 T27 = FMA(KP992114701, T25, KP250666467 * T26);
Chris@42 740 T28 = T24 - T27;
Chris@42 741 T2b = FNMS(KP1_996053456, T2a, KP062790519 * T29);
Chris@42 742 T2e = FMA(KP637423989, T2c, KP1_541026485 * T2d);
Chris@42 743 T2f = T2b - T2e;
Chris@42 744 T2g = T28 + T2f;
Chris@42 745 T2s = T24 + T27;
Chris@42 746 T2h = T2b + T2e;
Chris@42 747 }
Chris@42 748 {
Chris@42 749 E T2H, T2G, T2O, T2N;
Chris@42 750 Cr[WS(csr, 1)] = T21 + T2g;
Chris@42 751 Ci[WS(csi, 1)] = T2p - T2i;
Chris@42 752 T2H = KP559016994 * (T2C - T2F);
Chris@42 753 T2G = FNMS(KP250000000, T2C + T2F, T21);
Chris@42 754 Cr[WS(csr, 8)] = FMA(KP951056516, T2z, T2G) + FNMA(KP587785252, T2K, T2H);
Chris@42 755 Cr[WS(csr, 3)] = FMA(KP951056516, T2K, KP587785252 * T2z) + T2G + T2H;
Chris@42 756 T2O = KP559016994 * (T2M + T2L);
Chris@42 757 T2N = FMA(KP250000000, T2L - T2M, T2i);
Chris@42 758 Ci[WS(csi, 3)] = T2N + FMA(KP587785252, T2P, T2O) - (KP951056516 * T2Q);
Chris@42 759 Ci[WS(csi, 8)] = FMA(KP587785252, T2Q, T2N) + FMS(KP951056516, T2P, T2O);
Chris@42 760 {
Chris@42 761 E T2t, T2v, T2q, T2r;
Chris@42 762 T2t = FNMS(KP250000000, T2g, T21);
Chris@42 763 T2v = KP559016994 * (T28 - T2f);
Chris@42 764 Cr[WS(csr, 6)] = FMA(KP951056516, T2u, T2t) + FNMA(KP587785252, T2w, T2v);
Chris@42 765 Cr[WS(csr, 11)] = FMA(KP951056516, T2w, T2v) + FMA(KP587785252, T2u, T2t);
Chris@42 766 T2q = KP250000000 * T2p;
Chris@42 767 T2r = KP559016994 * (T2l - T2o);
Chris@42 768 Ci[WS(csi, 6)] = FMS(KP951056516, T2h, T2i + T2q) + FNMA(KP587785252, T2s, T2r);
Chris@42 769 Ci[WS(csi, 11)] = FMA(KP951056516, T2s, KP587785252 * T2h) + T2r - (T2i + T2q);
Chris@42 770 }
Chris@42 771 }
Chris@42 772 }
Chris@42 773 }
Chris@42 774 }
Chris@42 775 }
Chris@42 776
Chris@42 777 static const kr2c_desc desc = { 25, "r2cfII_25", {126, 61, 87, 0}, &GENUS };
Chris@42 778
Chris@42 779 void X(codelet_r2cfII_25) (planner *p) {
Chris@42 780 X(kr2c_register) (p, r2cfII_25, &desc);
Chris@42 781 }
Chris@42 782
Chris@42 783 #endif /* HAVE_FMA */