view Lib/fftw-3.2.1/cell/spu/.svn/text-base/spu_t1fv_32.spuc.svn-base @ 5:a6bfbc7cb449

Remove crap
author Geogaddi\David <d.m.ronan@qmul.ac.uk>
date Wed, 22 Jul 2015 14:58:31 +0100
parents 25bf17994ef1
children
line wrap: on
line source
/*
 * Copyright (c) 2003, 2007-8 Matteo Frigo
 * Copyright (c) 2003, 2007-8 Massachusetts Institute of Technology
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */
/* Generated by: ../../genfft/gen_twiddle_c -standalone -fma -reorder-insns -simd -compact -variables 100000 -include fftw-spu.h -trivial-stores -n 32 -name X(spu_t1fv_32) */

/*
 * This function contains 217 FP additions, 160 FP multiplications,
 * (or, 119 additions, 62 multiplications, 98 fused multiply/add),
 * 258 stack variables, 7 constants, and 64 memory accesses
 */
#include "fftw-spu.h"

void X(spu_t1fv_32) (R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) {
     DVK(KP980785280, +0.980785280403230449126182236134239036973933731);
     DVK(KP198912367, +0.198912367379658006911597622644676228597850501);
     DVK(KP831469612, +0.831469612302545237078788377617905756738560812);
     DVK(KP668178637, +0.668178637919298919997757686523080761552472251);
     DVK(KP923879532, +0.923879532511286756128183189396788286822416626);
     DVK(KP414213562, +0.414213562373095048801688724209698078569671875);
     DVK(KP707106781, +0.707106781186547524400844362104849039284835938);
     INT m;
     R *x;
     x = ri;
     for (m = mb, W = W + (mb * ((TWVL / VL) * 62)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 62), MAKE_VOLATILE_STRIDE(rs)) {
	  V Tg, T22, T2H, T3D, T1B, T2d, T2E, T3q, T2W, T3i, T3G, T3A, T28, T1k, T29;
	  V T1r, T3h, T2P, T3x, T3H, TV, T25, T12, T26, T31, T34, TD, T2e, T1E, T23;
	  V T3t, T3E, T1, T3, T1y, T1w, Te, T2G, T2F, T9, T2, T1x, T1v, Tb, Td;
	  V Ta, Tc, T6, T8, T5, T7, T2C, T1A, T4, Tf, T2D, T1z, T2Q, T18, T1p;
	  V T2R, T1d, T2T, T1i, T2U, T15, T17, T14, T16, T1m, T1o, T1l, T1n, T1a, T1c;
	  V T19, T1b, T1f, T1h, T1e, T1g, T3y, T3z, T2S, T2V, T1q, T1j, TJ, T2J, T2K;
	  V T10, T2M, TO, T2N, TT, TG, TI, TF, TH, TX, TZ, TW, TY, TL, TN;
	  V TK, TM, TQ, TS, TP, TR, T3v, T3w, T2L, T2O, T11, TU, Tl, T32, TB;
	  V T30, Tq, T33, Tw, T2Z, Ti, Tk, Th, Tj, Ty, TA, Tx, Tz, Tn, Tp;
	  V Tm, To, Tt, Tv, Ts, Tu, T3s, T3r, T1C, T1D, Tr, TC, T3u, T3I, T3F;
	  V T3B, T3e, T3f, T2Y, T3a, T37, T3b, T36, T2I, T2X, T35, T39, T3c, T38, T3d;
	  V T3g, T3m, T3j, T3n, T3l, T3o, T3k, T3p, T3S, T3Y, T3V, T3Z, T3Q, T3R, T3T;
	  V T3U, T3X, T40, T3W, T41, T3C, T3M, T3J, T3N, T3L, T3O, T3K, T3P, T2c, T2m;
	  V T2v, T2z, T2j, T2n, T2s, T2y, T2q, T2f, T2g, T2h, T24, T2t, T2b, T2u, T27;
	  V T2a, T2i, T2r, T2l, T2B, T2k, T2A, T2p, T2x, T2o, T2w, T1u, T1M, T1V, T1Z;
	  V T1J, T1N, T1S, T1Y, T1Q, T1F, T1G, T1H, TE, T1T, T1t, T1U, T13, T1s, T1I;
	  V T1R, T1L, T21, T1K, T20, T1P, T1X, T1O, T1W;
	  T1 = LD(&(x[0]), ms, &(x[0]));
	  T2 = LD(&(x[WS(rs, 16)]), ms, &(x[0]));
	  T3 = BYTWJ(&(W[TWVL * 30]), T2);
	  T1x = LD(&(x[WS(rs, 24)]), ms, &(x[0]));
	  T1y = BYTWJ(&(W[TWVL * 46]), T1x);
	  T1v = LD(&(x[WS(rs, 8)]), ms, &(x[0]));
	  T1w = BYTWJ(&(W[TWVL * 14]), T1v);
	  Ta = LD(&(x[WS(rs, 28)]), ms, &(x[0]));
	  Tb = BYTWJ(&(W[TWVL * 54]), Ta);
	  Tc = LD(&(x[WS(rs, 12)]), ms, &(x[0]));
	  Td = BYTWJ(&(W[TWVL * 22]), Tc);
	  Te = VSUB(Tb, Td);
	  T2G = VADD(Tb, Td);
	  T5 = LD(&(x[WS(rs, 4)]), ms, &(x[0]));
	  T6 = BYTWJ(&(W[TWVL * 6]), T5);
	  T7 = LD(&(x[WS(rs, 20)]), ms, &(x[0]));
	  T8 = BYTWJ(&(W[TWVL * 38]), T7);
	  T2F = VADD(T6, T8);
	  T9 = VSUB(T6, T8);
	  T4 = VSUB(T1, T3);
	  T2C = VADD(T1, T3);
	  T1A = VSUB(Te, T9);
	  Tf = VADD(T9, Te);
	  Tg = VFMA(LDK(KP707106781), Tf, T4);
	  T22 = VFNMS(LDK(KP707106781), Tf, T4);
	  T2H = VADD(T2F, T2G);
	  T3D = VSUB(T2G, T2F);
	  T1z = VSUB(T1w, T1y);
	  T2D = VADD(T1w, T1y);
	  T1B = VFNMS(LDK(KP707106781), T1A, T1z);
	  T2d = VFMA(LDK(KP707106781), T1A, T1z);
	  T2E = VADD(T2C, T2D);
	  T3q = VSUB(T2C, T2D);
	  T14 = LD(&(x[WS(rs, 31)]), ms, &(x[WS(rs, 1)]));
	  T15 = BYTWJ(&(W[TWVL * 60]), T14);
	  T16 = LD(&(x[WS(rs, 15)]), ms, &(x[WS(rs, 1)]));
	  T17 = BYTWJ(&(W[TWVL * 28]), T16);
	  T2Q = VADD(T15, T17);
	  T18 = VSUB(T15, T17);
	  T1l = LD(&(x[WS(rs, 23)]), ms, &(x[WS(rs, 1)]));
	  T1m = BYTWJ(&(W[TWVL * 44]), T1l);
	  T1n = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)]));
	  T1o = BYTWJ(&(W[TWVL * 12]), T1n);
	  T1p = VSUB(T1m, T1o);
	  T2R = VADD(T1o, T1m);
	  T19 = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)]));
	  T1a = BYTWJ(&(W[TWVL * 4]), T19);
	  T1b = LD(&(x[WS(rs, 19)]), ms, &(x[WS(rs, 1)]));
	  T1c = BYTWJ(&(W[TWVL * 36]), T1b);
	  T1d = VSUB(T1a, T1c);
	  T2T = VADD(T1a, T1c);
	  T1e = LD(&(x[WS(rs, 27)]), ms, &(x[WS(rs, 1)]));
	  T1f = BYTWJ(&(W[TWVL * 52]), T1e);
	  T1g = LD(&(x[WS(rs, 11)]), ms, &(x[WS(rs, 1)]));
	  T1h = BYTWJ(&(W[TWVL * 20]), T1g);
	  T1i = VSUB(T1f, T1h);
	  T2U = VADD(T1f, T1h);
	  T2S = VADD(T2Q, T2R);
	  T3y = VSUB(T2Q, T2R);
	  T3z = VSUB(T2U, T2T);
	  T2V = VADD(T2T, T2U);
	  T2W = VSUB(T2S, T2V);
	  T3i = VADD(T2S, T2V);
	  T3G = VFMA(LDK(KP414213562), T3y, T3z);
	  T3A = VFNMS(LDK(KP414213562), T3z, T3y);
	  T1j = VADD(T1d, T1i);
	  T1q = VSUB(T1i, T1d);
	  T28 = VFNMS(LDK(KP707106781), T1j, T18);
	  T1k = VFMA(LDK(KP707106781), T1j, T18);
	  T29 = VFNMS(LDK(KP707106781), T1q, T1p);
	  T1r = VFMA(LDK(KP707106781), T1q, T1p);
	  TF = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)]));
	  TG = BYTWJ(&(W[0]), TF);
	  TH = LD(&(x[WS(rs, 17)]), ms, &(x[WS(rs, 1)]));
	  TI = BYTWJ(&(W[TWVL * 32]), TH);
	  TJ = VSUB(TG, TI);
	  T2J = VADD(TG, TI);
	  TW = LD(&(x[WS(rs, 9)]), ms, &(x[WS(rs, 1)]));
	  TX = BYTWJ(&(W[TWVL * 16]), TW);
	  TY = LD(&(x[WS(rs, 25)]), ms, &(x[WS(rs, 1)]));
	  TZ = BYTWJ(&(W[TWVL * 48]), TY);
	  T2K = VADD(TX, TZ);
	  T10 = VSUB(TX, TZ);
	  TK = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)]));
	  TL = BYTWJ(&(W[TWVL * 8]), TK);
	  TM = LD(&(x[WS(rs, 21)]), ms, &(x[WS(rs, 1)]));
	  TN = BYTWJ(&(W[TWVL * 40]), TM);
	  T2M = VADD(TL, TN);
	  TO = VSUB(TL, TN);
	  TP = LD(&(x[WS(rs, 29)]), ms, &(x[WS(rs, 1)]));
	  TQ = BYTWJ(&(W[TWVL * 56]), TP);
	  TR = LD(&(x[WS(rs, 13)]), ms, &(x[WS(rs, 1)]));
	  TS = BYTWJ(&(W[TWVL * 24]), TR);
	  T2N = VADD(TQ, TS);
	  TT = VSUB(TQ, TS);
	  T3v = VSUB(T2J, T2K);
	  T2L = VADD(T2J, T2K);
	  T2O = VADD(T2M, T2N);
	  T3w = VSUB(T2M, T2N);
	  T3h = VADD(T2L, T2O);
	  T2P = VSUB(T2L, T2O);
	  T3x = VFNMS(LDK(KP414213562), T3w, T3v);
	  T3H = VFMA(LDK(KP414213562), T3v, T3w);
	  T11 = VSUB(TO, TT);
	  TU = VADD(TO, TT);
	  TV = VFMA(LDK(KP707106781), TU, TJ);
	  T25 = VFNMS(LDK(KP707106781), TU, TJ);
	  T12 = VFMA(LDK(KP707106781), T11, T10);
	  T26 = VFNMS(LDK(KP707106781), T11, T10);
	  Th = LD(&(x[WS(rs, 2)]), ms, &(x[0]));
	  Ti = BYTWJ(&(W[TWVL * 2]), Th);
	  Tj = LD(&(x[WS(rs, 18)]), ms, &(x[0]));
	  Tk = BYTWJ(&(W[TWVL * 34]), Tj);
	  Tl = VSUB(Ti, Tk);
	  T32 = VADD(Ti, Tk);
	  Tx = LD(&(x[WS(rs, 22)]), ms, &(x[0]));
	  Ty = BYTWJ(&(W[TWVL * 42]), Tx);
	  Tz = LD(&(x[WS(rs, 6)]), ms, &(x[0]));
	  TA = BYTWJ(&(W[TWVL * 10]), Tz);
	  TB = VSUB(Ty, TA);
	  T30 = VADD(TA, Ty);
	  Tm = LD(&(x[WS(rs, 10)]), ms, &(x[0]));
	  Tn = BYTWJ(&(W[TWVL * 18]), Tm);
	  To = LD(&(x[WS(rs, 26)]), ms, &(x[0]));
	  Tp = BYTWJ(&(W[TWVL * 50]), To);
	  Tq = VSUB(Tn, Tp);
	  T33 = VADD(Tn, Tp);
	  Ts = LD(&(x[WS(rs, 30)]), ms, &(x[0]));
	  Tt = BYTWJ(&(W[TWVL * 58]), Ts);
	  Tu = LD(&(x[WS(rs, 14)]), ms, &(x[0]));
	  Tv = BYTWJ(&(W[TWVL * 26]), Tu);
	  Tw = VSUB(Tt, Tv);
	  T2Z = VADD(Tt, Tv);
	  T31 = VADD(T2Z, T30);
	  T3s = VSUB(T2Z, T30);
	  T3r = VSUB(T32, T33);
	  T34 = VADD(T32, T33);
	  Tr = VFNMS(LDK(KP414213562), Tq, Tl);
	  T1C = VFMA(LDK(KP414213562), Tl, Tq);
	  T1D = VFMA(LDK(KP414213562), Tw, TB);
	  TC = VFNMS(LDK(KP414213562), TB, Tw);
	  TD = VADD(Tr, TC);
	  T2e = VSUB(TC, Tr);
	  T1E = VSUB(T1C, T1D);
	  T23 = VADD(T1C, T1D);
	  T3t = VADD(T3r, T3s);
	  T3E = VSUB(T3s, T3r);
	  T2I = VSUB(T2E, T2H);
	  T3e = VADD(T2E, T2H);
	  T36 = VSUB(T2W, T2P);
	  T2X = VADD(T2P, T2W);
	  T2Y = VFNMS(LDK(KP707106781), T2X, T2I);
	  T3a = VFMA(LDK(KP707106781), T2X, T2I);
	  T35 = VSUB(T31, T34);
	  T3f = VADD(T34, T31);
	  T37 = VFNMS(LDK(KP707106781), T36, T35);
	  T3b = VFMA(LDK(KP707106781), T36, T35);
	  T38 = VFNMSI(T37, T2Y);
	  T39 = VFMAI(T37, T2Y);
	  ST(&(x[WS(rs, 12)]), T38, ms, &(x[0]));
	  T3d = VFMAI(T3b, T3a);
	  T3c = VFNMSI(T3b, T3a);
	  ST(&(x[WS(rs, 4)]), T3d, ms, &(x[0]));
	  ST(&(x[WS(rs, 20)]), T39, ms, &(x[0]));
	  ST(&(x[WS(rs, 28)]), T3c, ms, &(x[0]));
	  T3g = VADD(T3e, T3f);
	  T3m = VSUB(T3e, T3f);
	  T3j = VADD(T3h, T3i);
	  T3n = VSUB(T3i, T3h);
	  T3k = VSUB(T3g, T3j);
	  T3l = VADD(T3g, T3j);
	  ST(&(x[WS(rs, 16)]), T3k, ms, &(x[0]));
	  T3p = VFMAI(T3n, T3m);
	  T3o = VFNMSI(T3n, T3m);
	  ST(&(x[WS(rs, 8)]), T3p, ms, &(x[0]));
	  ST(&(x[0]), T3l, ms, &(x[0]));
	  ST(&(x[WS(rs, 24)]), T3o, ms, &(x[0]));
	  T3Q = VFNMS(LDK(KP707106781), T3t, T3q);
	  T3u = VFMA(LDK(KP707106781), T3t, T3q);
	  T3I = VSUB(T3G, T3H);
	  T3R = VADD(T3H, T3G);
	  T3S = VFNMS(LDK(KP923879532), T3R, T3Q);
	  T3Y = VFMA(LDK(KP923879532), T3R, T3Q);
	  T3T = VFNMS(LDK(KP707106781), T3E, T3D);
	  T3F = VFMA(LDK(KP707106781), T3E, T3D);
	  T3B = VADD(T3x, T3A);
	  T3U = VSUB(T3A, T3x);
	  T3V = VFMA(LDK(KP923879532), T3U, T3T);
	  T3Z = VFNMS(LDK(KP923879532), T3U, T3T);
	  T3W = VFMAI(T3V, T3S);
	  T3X = VFNMSI(T3V, T3S);
	  ST(&(x[WS(rs, 10)]), T3W, ms, &(x[0]));
	  T41 = VFMAI(T3Z, T3Y);
	  T40 = VFNMSI(T3Z, T3Y);
	  ST(&(x[WS(rs, 26)]), T41, ms, &(x[0]));
	  ST(&(x[WS(rs, 22)]), T3X, ms, &(x[0]));
	  ST(&(x[WS(rs, 6)]), T40, ms, &(x[0]));
	  T3C = VFNMS(LDK(KP923879532), T3B, T3u);
	  T3M = VFMA(LDK(KP923879532), T3B, T3u);
	  T3J = VFNMS(LDK(KP923879532), T3I, T3F);
	  T3N = VFMA(LDK(KP923879532), T3I, T3F);
	  T3K = VFNMSI(T3J, T3C);
	  T3L = VFMAI(T3J, T3C);
	  ST(&(x[WS(rs, 14)]), T3K, ms, &(x[0]));
	  T3P = VFMAI(T3N, T3M);
	  T3O = VFNMSI(T3N, T3M);
	  ST(&(x[WS(rs, 2)]), T3P, ms, &(x[0]));
	  ST(&(x[WS(rs, 18)]), T3L, ms, &(x[0]));
	  ST(&(x[WS(rs, 30)]), T3O, ms, &(x[0]));
	  T24 = VFMA(LDK(KP923879532), T23, T22);
	  T2q = VFNMS(LDK(KP923879532), T23, T22);
	  T2f = VFMA(LDK(KP923879532), T2e, T2d);
	  T2t = VFNMS(LDK(KP923879532), T2e, T2d);
	  T27 = VFMA(LDK(KP668178637), T26, T25);
	  T2g = VFNMS(LDK(KP668178637), T25, T26);
	  T2h = VFNMS(LDK(KP668178637), T28, T29);
	  T2a = VFMA(LDK(KP668178637), T29, T28);
	  T2b = VADD(T27, T2a);
	  T2u = VSUB(T2a, T27);
	  T2c = VFNMS(LDK(KP831469612), T2b, T24);
	  T2m = VFMA(LDK(KP831469612), T2b, T24);
	  T2v = VFMA(LDK(KP831469612), T2u, T2t);
	  T2z = VFNMS(LDK(KP831469612), T2u, T2t);
	  T2i = VSUB(T2g, T2h);
	  T2r = VADD(T2g, T2h);
	  T2j = VFNMS(LDK(KP831469612), T2i, T2f);
	  T2n = VFMA(LDK(KP831469612), T2i, T2f);
	  T2s = VFMA(LDK(KP831469612), T2r, T2q);
	  T2y = VFNMS(LDK(KP831469612), T2r, T2q);
	  T2k = VFNMSI(T2j, T2c);
	  T2l = VFMAI(T2j, T2c);
	  ST(&(x[WS(rs, 13)]), T2k, ms, &(x[WS(rs, 1)]));
	  T2A = VFNMSI(T2z, T2y);
	  T2B = VFMAI(T2z, T2y);
	  ST(&(x[WS(rs, 5)]), T2A, ms, &(x[WS(rs, 1)]));
	  ST(&(x[WS(rs, 27)]), T2B, ms, &(x[WS(rs, 1)]));
	  ST(&(x[WS(rs, 19)]), T2l, ms, &(x[WS(rs, 1)]));
	  T2o = VFNMSI(T2n, T2m);
	  T2p = VFMAI(T2n, T2m);
	  ST(&(x[WS(rs, 29)]), T2o, ms, &(x[WS(rs, 1)]));
	  T2w = VFMAI(T2v, T2s);
	  T2x = VFNMSI(T2v, T2s);
	  ST(&(x[WS(rs, 11)]), T2w, ms, &(x[WS(rs, 1)]));
	  ST(&(x[WS(rs, 21)]), T2x, ms, &(x[WS(rs, 1)]));
	  ST(&(x[WS(rs, 3)]), T2p, ms, &(x[WS(rs, 1)]));
	  TE = VFMA(LDK(KP923879532), TD, Tg);
	  T1Q = VFNMS(LDK(KP923879532), TD, Tg);
	  T1F = VFMA(LDK(KP923879532), T1E, T1B);
	  T1T = VFNMS(LDK(KP923879532), T1E, T1B);
	  T13 = VFNMS(LDK(KP198912367), T12, TV);
	  T1G = VFMA(LDK(KP198912367), TV, T12);
	  T1H = VFMA(LDK(KP198912367), T1k, T1r);
	  T1s = VFNMS(LDK(KP198912367), T1r, T1k);
	  T1t = VADD(T13, T1s);
	  T1U = VSUB(T1s, T13);
	  T1u = VFNMS(LDK(KP980785280), T1t, TE);
	  T1M = VFMA(LDK(KP980785280), T1t, TE);
	  T1V = VFNMS(LDK(KP980785280), T1U, T1T);
	  T1Z = VFMA(LDK(KP980785280), T1U, T1T);
	  T1I = VSUB(T1G, T1H);
	  T1R = VADD(T1G, T1H);
	  T1J = VFNMS(LDK(KP980785280), T1I, T1F);
	  T1N = VFMA(LDK(KP980785280), T1I, T1F);
	  T1S = VFNMS(LDK(KP980785280), T1R, T1Q);
	  T1Y = VFMA(LDK(KP980785280), T1R, T1Q);
	  T1K = VFNMSI(T1J, T1u);
	  T1L = VFMAI(T1J, T1u);
	  ST(&(x[WS(rs, 17)]), T1K, ms, &(x[WS(rs, 1)]));
	  T20 = VFMAI(T1Z, T1Y);
	  T21 = VFNMSI(T1Z, T1Y);
	  ST(&(x[WS(rs, 7)]), T20, ms, &(x[WS(rs, 1)]));
	  ST(&(x[WS(rs, 25)]), T21, ms, &(x[WS(rs, 1)]));
	  ST(&(x[WS(rs, 15)]), T1L, ms, &(x[WS(rs, 1)]));
	  T1O = VFNMSI(T1N, T1M);
	  T1P = VFMAI(T1N, T1M);
	  ST(&(x[WS(rs, 1)]), T1O, ms, &(x[WS(rs, 1)]));
	  T1W = VFNMSI(T1V, T1S);
	  T1X = VFMAI(T1V, T1S);
	  ST(&(x[WS(rs, 9)]), T1W, ms, &(x[WS(rs, 1)]));
	  ST(&(x[WS(rs, 23)]), T1X, ms, &(x[WS(rs, 1)]));
	  ST(&(x[WS(rs, 31)]), T1P, ms, &(x[WS(rs, 1)]));
     }
}