⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 q1bv_8.c

📁 快速fft变换
💻 C
📖 第 1 页 / 共 3 页
字号:
	       }	       T2f = VMUL(LDK(KP707106781), VSUB(T2b, T2e));	       T2E = VADD(T2y, T2z);	       T2n = VMUL(LDK(KP707106781), VADD(T2b, T2e));	       T2A = VBYI(VSUB(T2y, T2z));	  }	  {	       V T3M, T49, T3P, T4a;	       {		    V T3K, T3L, T3N, T3O;		    T3K = LD(&(x[WS(vs, 7) + WS(rs, 1)]), ms, &(x[WS(vs, 7) + WS(rs, 1)]));		    T3L = LD(&(x[WS(vs, 7) + WS(rs, 5)]), ms, &(x[WS(vs, 7) + WS(rs, 1)]));		    T3M = VSUB(T3K, T3L);		    T49 = VADD(T3K, T3L);		    T3N = LD(&(x[WS(vs, 7) + WS(rs, 7)]), ms, &(x[WS(vs, 7) + WS(rs, 1)]));		    T3O = LD(&(x[WS(vs, 7) + WS(rs, 3)]), ms, &(x[WS(vs, 7) + WS(rs, 1)]));		    T3P = VSUB(T3N, T3O);		    T4a = VADD(T3N, T3O);	       }	       T3Q = VMUL(LDK(KP707106781), VSUB(T3M, T3P));	       T4f = VADD(T49, T4a);	       T3Y = VMUL(LDK(KP707106781), VADD(T3M, T3P));	       T4b = VBYI(VSUB(T49, T4a));	  }	  {	       V TA, TX, TD, TY;	       {		    V Ty, Tz, TB, TC;		    Ty = LD(&(x[WS(vs, 1) + WS(rs, 1)]), ms, &(x[WS(vs, 1) + WS(rs, 1)]));		    Tz = LD(&(x[WS(vs, 1) + WS(rs, 5)]), ms, &(x[WS(vs, 1) + WS(rs, 1)]));		    TA = VSUB(Ty, Tz);		    TX = VADD(Ty, Tz);		    TB = LD(&(x[WS(vs, 1) + WS(rs, 7)]), ms, &(x[WS(vs, 1) + WS(rs, 1)]));		    TC = LD(&(x[WS(vs, 1) + WS(rs, 3)]), ms, &(x[WS(vs, 1) + WS(rs, 1)]));		    TD = VSUB(TB, TC);		    TY = VADD(TB, TC);	       }	       TE = VMUL(LDK(KP707106781), VSUB(TA, TD));	       T13 = VADD(TX, TY);	       TM = VMUL(LDK(KP707106781), VADD(TA, TD));	       TZ = VBYI(VSUB(TX, TY));	  }	  {	       V T17, T1u, T1a, T1v;	       {		    V T15, T16, T18, T19;		    T15 = LD(&(x[WS(vs, 2) + WS(rs, 1)]), ms, &(x[WS(vs, 2) + WS(rs, 1)]));		    T16 = LD(&(x[WS(vs, 2) + WS(rs, 5)]), ms, &(x[WS(vs, 2) + WS(rs, 1)]));		    T17 = VSUB(T15, T16);		    T1u = VADD(T15, T16);		    T18 = LD(&(x[WS(vs, 2) + WS(rs, 7)]), ms, &(x[WS(vs, 2) + WS(rs, 1)]));		    T19 = LD(&(x[WS(vs, 2) + WS(rs, 3)]), ms, &(x[WS(vs, 2) + WS(rs, 1)]));		    T1a = VSUB(T18, T19);		    T1v = VADD(T18, T19);	       }	       T1b = VMUL(LDK(KP707106781), VSUB(T17, T1a));	       T1A = VADD(T1u, T1v);	       T1j = VMUL(LDK(KP707106781), VADD(T17, T1a));	       T1w = VBYI(VSUB(T1u, T1v));	  }	  {	       V T2I, T35, T2L, T36;	       {		    V T2G, T2H, T2J, T2K;		    T2G = LD(&(x[WS(vs, 5) + WS(rs, 1)]), ms, &(x[WS(vs, 5) + WS(rs, 1)]));		    T2H = LD(&(x[WS(vs, 5) + WS(rs, 5)]), ms, &(x[WS(vs, 5) + WS(rs, 1)]));		    T2I = VSUB(T2G, T2H);		    T35 = VADD(T2G, T2H);		    T2J = LD(&(x[WS(vs, 5) + WS(rs, 7)]), ms, &(x[WS(vs, 5) + WS(rs, 1)]));		    T2K = LD(&(x[WS(vs, 5) + WS(rs, 3)]), ms, &(x[WS(vs, 5) + WS(rs, 1)]));		    T2L = VSUB(T2J, T2K);		    T36 = VADD(T2J, T2K);	       }	       T2M = VMUL(LDK(KP707106781), VSUB(T2I, T2L));	       T3b = VADD(T35, T36);	       T2U = VMUL(LDK(KP707106781), VADD(T2I, T2L));	       T37 = VBYI(VSUB(T35, T36));	  }	  {	       V T3f, T3C, T3i, T3D;	       {		    V T3d, T3e, T3g, T3h;		    T3d = LD(&(x[WS(vs, 6) + WS(rs, 1)]), ms, &(x[WS(vs, 6) + WS(rs, 1)]));		    T3e = LD(&(x[WS(vs, 6) + WS(rs, 5)]), ms, &(x[WS(vs, 6) + WS(rs, 1)]));		    T3f = VSUB(T3d, T3e);		    T3C = VADD(T3d, T3e);		    T3g = LD(&(x[WS(vs, 6) + WS(rs, 7)]), ms, &(x[WS(vs, 6) + WS(rs, 1)]));		    T3h = LD(&(x[WS(vs, 6) + WS(rs, 3)]), ms, &(x[WS(vs, 6) + WS(rs, 1)]));		    T3i = VSUB(T3g, T3h);		    T3D = VADD(T3g, T3h);	       }	       T3j = VMUL(LDK(KP707106781), VSUB(T3f, T3i));	       T3I = VADD(T3C, T3D);	       T3r = VMUL(LDK(KP707106781), VADD(T3f, T3i));	       T3E = VBYI(VSUB(T3C, T3D));	  }	  ST(&(x[0]), VADD(Tv, Tw), ms, &(x[0]));	  ST(&(x[WS(rs, 2)]), VADD(T1z, T1A), ms, &(x[0]));	  ST(&(x[WS(rs, 5)]), VADD(T3a, T3b), ms, &(x[WS(rs, 1)]));	  ST(&(x[WS(rs, 7)]), VADD(T4e, T4f), ms, &(x[WS(rs, 1)]));	  ST(&(x[WS(rs, 6)]), VADD(T3H, T3I), ms, &(x[0]));	  ST(&(x[WS(rs, 4)]), VADD(T2D, T2E), ms, &(x[0]));	  {	       V Tt, T4c, T2B, T24;	       ST(&(x[WS(rs, 3)]), VADD(T26, T27), ms, &(x[WS(rs, 1)]));	       ST(&(x[WS(rs, 1)]), VADD(T12, T13), ms, &(x[WS(rs, 1)]));	       Tt = BYTW(&(W[TWVL * 10]), VSUB(Tp, Ts));	       ST(&(x[WS(vs, 6)]), Tt, ms, &(x[WS(vs, 6)]));	       T4c = BYTW(&(W[TWVL * 10]), VSUB(T48, T4b));	       ST(&(x[WS(vs, 6) + WS(rs, 7)]), T4c, ms, &(x[WS(vs, 6) + WS(rs, 1)]));	       T2B = BYTW(&(W[TWVL * 10]), VSUB(T2x, T2A));	       ST(&(x[WS(vs, 6) + WS(rs, 4)]), T2B, ms, &(x[WS(vs, 6)]));	       T24 = BYTW(&(W[TWVL * 10]), VSUB(T20, T23));	       ST(&(x[WS(vs, 6) + WS(rs, 3)]), T24, ms, &(x[WS(vs, 6) + WS(rs, 1)]));	  }	  {	       V T10, T1x, T3F, T38, T1y, Tu;	       T10 = BYTW(&(W[TWVL * 10]), VSUB(TW, TZ));	       ST(&(x[WS(vs, 6) + WS(rs, 1)]), T10, ms, &(x[WS(vs, 6) + WS(rs, 1)]));	       T1x = BYTW(&(W[TWVL * 10]), VSUB(T1t, T1w));	       ST(&(x[WS(vs, 6) + WS(rs, 2)]), T1x, ms, &(x[WS(vs, 6)]));	       T3F = BYTW(&(W[TWVL * 10]), VSUB(T3B, T3E));	       ST(&(x[WS(vs, 6) + WS(rs, 6)]), T3F, ms, &(x[WS(vs, 6)]));	       T38 = BYTW(&(W[TWVL * 10]), VSUB(T34, T37));	       ST(&(x[WS(vs, 6) + WS(rs, 5)]), T38, ms, &(x[WS(vs, 6) + WS(rs, 1)]));	       T1y = BYTW(&(W[TWVL * 2]), VADD(T1t, T1w));	       ST(&(x[WS(vs, 2) + WS(rs, 2)]), T1y, ms, &(x[WS(vs, 2)]));	       Tu = BYTW(&(W[TWVL * 2]), VADD(Tp, Ts));	       ST(&(x[WS(vs, 2)]), Tu, ms, &(x[WS(vs, 2)]));	  }	  {	       V T2C, T3G, T11, T25, T39, T4d;	       T2C = BYTW(&(W[TWVL * 2]), VADD(T2x, T2A));	       ST(&(x[WS(vs, 2) + WS(rs, 4)]), T2C, ms, &(x[WS(vs, 2)]));	       T3G = BYTW(&(W[TWVL * 2]), VADD(T3B, T3E));	       ST(&(x[WS(vs, 2) + WS(rs, 6)]), T3G, ms, &(x[WS(vs, 2)]));	       T11 = BYTW(&(W[TWVL * 2]), VADD(TW, TZ));	       ST(&(x[WS(vs, 2) + WS(rs, 1)]), T11, ms, &(x[WS(vs, 2) + WS(rs, 1)]));	       T25 = BYTW(&(W[TWVL * 2]), VADD(T20, T23));	       ST(&(x[WS(vs, 2) + WS(rs, 3)]), T25, ms, &(x[WS(vs, 2) + WS(rs, 1)]));	       T39 = BYTW(&(W[TWVL * 2]), VADD(T34, T37));	       ST(&(x[WS(vs, 2) + WS(rs, 5)]), T39, ms, &(x[WS(vs, 2) + WS(rs, 1)]));	       T4d = BYTW(&(W[TWVL * 2]), VADD(T48, T4b));	       ST(&(x[WS(vs, 2) + WS(rs, 7)]), T4d, ms, &(x[WS(vs, 2) + WS(rs, 1)]));	  }	  {	       V Tx, T1B, T3c, T4g, T3J, T2F;	       Tx = BYTW(&(W[TWVL * 6]), VSUB(Tv, Tw));	       ST(&(x[WS(vs, 4)]), Tx, ms, &(x[WS(vs, 4)]));	       T1B = BYTW(&(W[TWVL * 6]), VSUB(T1z, T1A));	       ST(&(x[WS(vs, 4) + WS(rs, 2)]), T1B, ms, &(x[WS(vs, 4)]));	       T3c = BYTW(&(W[TWVL * 6]), VSUB(T3a, T3b));	       ST(&(x[WS(vs, 4) + WS(rs, 5)]), T3c, ms, &(x[WS(vs, 4) + WS(rs, 1)]));	       T4g = BYTW(&(W[TWVL * 6]), VSUB(T4e, T4f));	       ST(&(x[WS(vs, 4) + WS(rs, 7)]), T4g, ms, &(x[WS(vs, 4) + WS(rs, 1)]));	       T3J = BYTW(&(W[TWVL * 6]), VSUB(T3H, T3I));	       ST(&(x[WS(vs, 4) + WS(rs, 6)]), T3J, ms, &(x[WS(vs, 4)]));	       T2F = BYTW(&(W[TWVL * 6]), VSUB(T2D, T2E));	       ST(&(x[WS(vs, 4) + WS(rs, 4)]), T2F, ms, &(x[WS(vs, 4)]));	  }	  T28 = BYTW(&(W[TWVL * 6]), VSUB(T26, T27));	  ST(&(x[WS(vs, 4) + WS(rs, 3)]), T28, ms, &(x[WS(vs, 4) + WS(rs, 1)]));	  T14 = BYTW(&(W[TWVL * 6]), VSUB(T12, T13));	  ST(&(x[WS(vs, 4) + WS(rs, 1)]), T14, ms, &(x[WS(vs, 4) + WS(rs, 1)]));	  {	       V Th, Ti, Tb, Tg;	       Tb = VBYI(VSUB(T7, Ta));	       Tg = VSUB(Te, Tf);	       Th = BYTW(&(W[TWVL * 4]), VADD(Tb, Tg));	       Ti = BYTW(&(W[TWVL * 8]), VSUB(Tg, Tb));	       ST(&(x[WS(vs, 3)]), Th, ms, &(x[WS(vs, 3)]));	       ST(&(x[WS(vs, 5)]), Ti, ms, &(x[WS(vs, 5)]));	  }	  {	       V T40, T41, T3U, T3Z;	       T3U = VBYI(VSUB(T3Q, T3T));	       T3Z = VSUB(T3X, T3Y);	       T40 = BYTW(&(W[TWVL * 4]), VADD(T3U, T3Z));	       T41 = BYTW(&(W[TWVL * 8]), VSUB(T3Z, T3U));	       ST(&(x[WS(vs, 3) + WS(rs, 7)]), T40, ms, &(x[WS(vs, 3) + WS(rs, 1)]));	       ST(&(x[WS(vs, 5) + WS(rs, 7)]), T41, ms, &(x[WS(vs, 5) + WS(rs, 1)]));	  }	  {	       V T2p, T2q, T2j, T2o;	       T2j = VBYI(VSUB(T2f, T2i));	       T2o = VSUB(T2m, T2n);	       T2p = BYTW(&(W[TWVL * 4]), VADD(T2j, T2o));	       T2q = BYTW(&(W[TWVL * 8]), VSUB(T2o, T2j));	       ST(&(x[WS(vs, 3) + WS(rs, 4)]), T2p, ms, &(x[WS(vs, 3)]));	       ST(&(x[WS(vs, 5) + WS(rs, 4)]), T2q, ms, &(x[WS(vs, 5)]));	  }	  {	       V T1S, T1T, T1M, T1R;	       T1M = VBYI(VSUB(T1I, T1L));	       T1R = VSUB(T1P, T1Q);	       T1S = BYTW(&(W[TWVL * 4]), VADD(T1M, T1R));	       T1T = BYTW(&(W[TWVL * 8]), VSUB(T1R, T1M));	       ST(&(x[WS(vs, 3) + WS(rs, 3)]), T1S, ms, &(x[WS(vs, 3) + WS(rs, 1)]));	       ST(&(x[WS(vs, 5) + WS(rs, 3)]), T1T, ms, &(x[WS(vs, 5) + WS(rs, 1)]));	  }	  {	       V TO, TP, TI, TN;	       TI = VBYI(VSUB(TE, TH));	       TN = VSUB(TL, TM);	       TO = BYTW(&(W[TWVL * 4]), VADD(TI, TN));	       TP = BYTW(&(W[TWVL * 8]), VSUB(TN, TI));	       ST(&(x[WS(vs, 3) + WS(rs, 1)]), TO, ms, &(x[WS(vs, 3) + WS(rs, 1)]));	       ST(&(x[WS(vs, 5) + WS(rs, 1)]), TP, ms, &(x[WS(vs, 5) + WS(rs, 1)]));	  }	  {	       V T1l, T1m, T1f, T1k;	       T1f = VBYI(VSUB(T1b, T1e));	       T1k = VSUB(T1i, T1j);	       T1l = BYTW(&(W[TWVL * 4]), VADD(T1f, T1k));	       T1m = BYTW(&(W[TWVL * 8]), VSUB(T1k, T1f));	       ST(&(x[WS(vs, 3) + WS(rs, 2)]), T1l, ms, &(x[WS(vs, 3)]));	       ST(&(x[WS(vs, 5) + WS(rs, 2)]), T1m, ms, &(x[WS(vs, 5)]));	  }	  {	       V T3t, T3u, T3n, T3s;	       T3n = VBYI(VSUB(T3j, T3m));	       T3s = VSUB(T3q, T3r);	       T3t = BYTW(&(W[TWVL * 4]), VADD(T3n, T3s));	       T3u = BYTW(&(W[TWVL * 8]), VSUB(T3s, T3n));	       ST(&(x[WS(vs, 3) + WS(rs, 6)]), T3t, ms, &(x[WS(vs, 3)]));	       ST(&(x[WS(vs, 5) + WS(rs, 6)]), T3u, ms, &(x[WS(vs, 5)]));	  }	  {	       V T2W, T2X, T2Q, T2V;	       T2Q = VBYI(VSUB(T2M, T2P));	       T2V = VSUB(T2T, T2U);	       T2W = BYTW(&(W[TWVL * 4]), VADD(T2Q, T2V));	       T2X = BYTW(&(W[TWVL * 8]), VSUB(T2V, T2Q));	       ST(&(x[WS(vs, 3) + WS(rs, 5)]), T2W, ms, &(x[WS(vs, 3) + WS(rs, 1)]));	       ST(&(x[WS(vs, 5) + WS(rs, 5)]), T2X, ms, &(x[WS(vs, 5) + WS(rs, 1)]));	  }	  {	       V T1p, T1q, T1n, T1o;	       T1n = VBYI(VADD(T1e, T1b));	       T1o = VADD(T1i, T1j);	       T1p = BYTW(&(W[0]), VADD(T1n, T1o));	       T1q = BYTW(&(W[TWVL * 12]), VSUB(T1o, T1n));	       ST(&(x[WS(vs, 1) + WS(rs, 2)]), T1p, ms, &(x[WS(vs, 1)]));	       ST(&(x[WS(vs, 7) + WS(rs, 2)]), T1q, ms, &(x[WS(vs, 7)]));	  }	  {	       V Tl, Tm, Tj, Tk;	       Tj = VBYI(VADD(Ta, T7));	       Tk = VADD(Te, Tf);	       Tl = BYTW(&(W[0]), VADD(Tj, Tk));	       Tm = BYTW(&(W[TWVL * 12]), VSUB(Tk, Tj));	       ST(&(x[WS(vs, 1)]), Tl, ms, &(x[WS(vs, 1)]));	       ST(&(x[WS(vs, 7)]), Tm, ms, &(x[WS(vs, 7)]));	  }	  {	       V T2t, T2u, T2r, T2s;	       T2r = VBYI(VADD(T2i, T2f));	       T2s = VADD(T2m, T2n);	       T2t = BYTW(&(W[0]), VADD(T2r, T2s));	       T2u = BYTW(&(W[TWVL * 12]), VSUB(T2s, T2r));	       ST(&(x[WS(vs, 1) + WS(rs, 4)]), T2t, ms, &(x[WS(vs, 1)]));	       ST(&(x[WS(vs, 7) + WS(rs, 4)]), T2u, ms, &(x[WS(vs, 7)]));	  }	  {	       V T3x, T3y, T3v, T3w;	       T3v = VBYI(VADD(T3m, T3j));	       T3w = VADD(T3q, T3r);	       T3x = BYTW(&(W[0]), VADD(T3v, T3w));	       T3y = BYTW(&(W[TWVL * 12]), VSUB(T3w, T3v));	       ST(&(x[WS(vs, 1) + WS(rs, 6)]), T3x, ms, &(x[WS(vs, 1)]));	       ST(&(x[WS(vs, 7) + WS(rs, 6)]), T3y, ms, &(x[WS(vs, 7)]));	  }	  {	       V TS, TT, TQ, TR;	       TQ = VBYI(VADD(TH, TE));	       TR = VADD(TL, TM);	       TS = BYTW(&(W[0]), VADD(TQ, TR));	       TT = BYTW(&(W[TWVL * 12]), VSUB(TR, TQ));	       ST(&(x[WS(vs, 1) + WS(rs, 1)]), TS, ms, &(x[WS(vs, 1) + WS(rs, 1)]));	       ST(&(x[WS(vs, 7) + WS(rs, 1)]), TT, ms, &(x[WS(vs, 7) + WS(rs, 1)]));	  }	  {	       V T1W, T1X, T1U, T1V;	       T1U = VBYI(VADD(T1L, T1I));	       T1V = VADD(T1P, T1Q);	       T1W = BYTW(&(W[0]), VADD(T1U, T1V));	       T1X = BYTW(&(W[TWVL * 12]), VSUB(T1V, T1U));	       ST(&(x[WS(vs, 1) + WS(rs, 3)]), T1W, ms, &(x[WS(vs, 1) + WS(rs, 1)]));	       ST(&(x[WS(vs, 7) + WS(rs, 3)]), T1X, ms, &(x[WS(vs, 7) + WS(rs, 1)]));	  }	  {	       V T30, T31, T2Y, T2Z;	       T2Y = VBYI(VADD(T2P, T2M));	       T2Z = VADD(T2T, T2U);	       T30 = BYTW(&(W[0]), VADD(T2Y, T2Z));	       T31 = BYTW(&(W[TWVL * 12]), VSUB(T2Z, T2Y));	       ST(&(x[WS(vs, 1) + WS(rs, 5)]), T30, ms, &(x[WS(vs, 1) + WS(rs, 1)]));	       ST(&(x[WS(vs, 7) + WS(rs, 5)]), T31, ms, &(x[WS(vs, 7) + WS(rs, 1)]));	  }	  {	       V T44, T45, T42, T43;	       T42 = VBYI(VADD(T3T, T3Q));	       T43 = VADD(T3X, T3Y);	       T44 = BYTW(&(W[0]), VADD(T42, T43));	       T45 = BYTW(&(W[TWVL * 12]), VSUB(T43, T42));	       ST(&(x[WS(vs, 1) + WS(rs, 7)]), T44, ms, &(x[WS(vs, 1) + WS(rs, 1)]));	       ST(&(x[WS(vs, 7) + WS(rs, 7)]), T45, ms, &(x[WS(vs, 7) + WS(rs, 1)]));	  }     }}static const tw_instr twinstr[] = {     VTW(0, 1),     VTW(0, 2),     VTW(0, 3),     VTW(0, 4),     VTW(0, 5),     VTW(0, 6),     VTW(0, 7),     {TW_NEXT, VL, 0}};static const ct_desc desc = { 8, "q1bv_8", twinstr, &GENUS, {264, 128, 0, 0}, 0, 0, 0 };void X(codelet_q1bv_8) (planner *p) {     X(kdft_difsq_register) (p, q1bv_8, &desc);}#endif				/* HAVE_FMA */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -