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