📄 q1fv_8.c
字号:
T3J = BYTWJ(&(W[TWVL * 2]), VFMAI(T3H, T3G)); T2F = BYTWJ(&(W[TWVL * 2]), VFMAI(T2D, T2C)); { V T14, Tb, Tg, T28, T3U, T3Z; T28 = BYTWJ(&(W[TWVL * 2]), VFMAI(T26, T25)); ST(&(x[WS(vs, 2) + WS(rs, 5)]), T3c, ms, &(x[WS(vs, 2) + WS(rs, 1)])); ST(&(x[WS(vs, 2) + WS(rs, 7)]), T4g, ms, &(x[WS(vs, 2) + WS(rs, 1)])); T14 = BYTWJ(&(W[TWVL * 2]), VFMAI(T12, T11)); Tj = VFNMS(LDK(KP707106781), Ta, T3); Tb = VFMA(LDK(KP707106781), Ta, T3); Tg = VFNMS(LDK(KP707106781), Tf, Te); Tk = VFMA(LDK(KP707106781), Tf, Te); ST(&(x[WS(vs, 2) + WS(rs, 6)]), T3J, ms, &(x[WS(vs, 2)])); ST(&(x[WS(vs, 2) + WS(rs, 4)]), T2F, ms, &(x[WS(vs, 2)])); ST(&(x[WS(vs, 2) + WS(rs, 3)]), T28, ms, &(x[WS(vs, 2) + WS(rs, 1)])); T3U = VFMA(LDK(KP707106781), T3T, T3M); T42 = VFNMS(LDK(KP707106781), T3T, T3M); T43 = VFMA(LDK(KP707106781), T3Y, T3X); T3Z = VFNMS(LDK(KP707106781), T3Y, T3X); ST(&(x[WS(vs, 2) + WS(rs, 1)]), T14, ms, &(x[WS(vs, 2) + WS(rs, 1)])); T2r = VFNMS(LDK(KP707106781), T2i, T2b); T2j = VFMA(LDK(KP707106781), T2i, T2b); Ti = BYTWJ(&(W[TWVL * 12]), VFMAI(Tg, Tb)); Th = BYTWJ(&(W[0]), VFNMSI(Tg, Tb)); T2o = VFNMS(LDK(KP707106781), T2n, T2m); T2s = VFMA(LDK(KP707106781), T2n, T2m); T1U = VFNMS(LDK(KP707106781), T1L, T1E); T1M = VFMA(LDK(KP707106781), T1L, T1E); T1R = VFNMS(LDK(KP707106781), T1Q, T1P); T1V = VFMA(LDK(KP707106781), T1Q, T1P); T41 = BYTWJ(&(W[TWVL * 12]), VFMAI(T3Z, T3U)); T40 = BYTWJ(&(W[0]), VFNMSI(T3Z, T3U)); } } { V TQ, TR, T1n, T1o, T3v, T3w; { V T1f, T1k, T3n, TP, TO, T3s, T2Q, T2V; { V TI, T2q, T2p, T1T, T1S, TN; TQ = VFNMS(LDK(KP707106781), TH, TA); TI = VFMA(LDK(KP707106781), TH, TA); ST(&(x[WS(vs, 7)]), Ti, ms, &(x[WS(vs, 7)])); ST(&(x[WS(vs, 1)]), Th, ms, &(x[WS(vs, 1)])); T2q = BYTWJ(&(W[TWVL * 12]), VFMAI(T2o, T2j)); T2p = BYTWJ(&(W[0]), VFNMSI(T2o, T2j)); T1T = BYTWJ(&(W[TWVL * 12]), VFMAI(T1R, T1M)); T1S = BYTWJ(&(W[0]), VFNMSI(T1R, T1M)); ST(&(x[WS(vs, 7) + WS(rs, 7)]), T41, ms, &(x[WS(vs, 7) + WS(rs, 1)])); ST(&(x[WS(vs, 1) + WS(rs, 7)]), T40, ms, &(x[WS(vs, 1) + WS(rs, 1)])); TN = VFNMS(LDK(KP707106781), TM, TL); TR = VFMA(LDK(KP707106781), TM, TL); T1n = VFNMS(LDK(KP707106781), T1e, T17); T1f = VFMA(LDK(KP707106781), T1e, T17); ST(&(x[WS(vs, 7) + WS(rs, 4)]), T2q, ms, &(x[WS(vs, 7)])); ST(&(x[WS(vs, 1) + WS(rs, 4)]), T2p, ms, &(x[WS(vs, 1)])); ST(&(x[WS(vs, 7) + WS(rs, 3)]), T1T, ms, &(x[WS(vs, 7) + WS(rs, 1)])); ST(&(x[WS(vs, 1) + WS(rs, 3)]), T1S, ms, &(x[WS(vs, 1) + WS(rs, 1)])); T1k = VFNMS(LDK(KP707106781), T1j, T1i); T1o = VFMA(LDK(KP707106781), T1j, T1i); T3v = VFNMS(LDK(KP707106781), T3m, T3f); T3n = VFMA(LDK(KP707106781), T3m, T3f); TP = BYTWJ(&(W[TWVL * 12]), VFMAI(TN, TI)); TO = BYTWJ(&(W[0]), VFNMSI(TN, TI)); T3s = VFNMS(LDK(KP707106781), T3r, T3q); T3w = VFMA(LDK(KP707106781), T3r, T3q); } T2Y = VFNMS(LDK(KP707106781), T2P, T2I); T2Q = VFMA(LDK(KP707106781), T2P, T2I); T2V = VFNMS(LDK(KP707106781), T2U, T2T); T2Z = VFMA(LDK(KP707106781), T2U, T2T); { V T3u, T3t, T2X, T2W, T1m, T1l; T1m = BYTWJ(&(W[TWVL * 12]), VFMAI(T1k, T1f)); T1l = BYTWJ(&(W[0]), VFNMSI(T1k, T1f)); ST(&(x[WS(vs, 7) + WS(rs, 1)]), TP, ms, &(x[WS(vs, 7) + WS(rs, 1)])); ST(&(x[WS(vs, 1) + WS(rs, 1)]), TO, ms, &(x[WS(vs, 1) + WS(rs, 1)])); T3u = BYTWJ(&(W[TWVL * 12]), VFMAI(T3s, T3n)); T3t = BYTWJ(&(W[0]), VFNMSI(T3s, T3n)); T2X = BYTWJ(&(W[TWVL * 12]), VFMAI(T2V, T2Q)); T2W = BYTWJ(&(W[0]), VFNMSI(T2V, T2Q)); ST(&(x[WS(vs, 7) + WS(rs, 2)]), T1m, ms, &(x[WS(vs, 7)])); ST(&(x[WS(vs, 1) + WS(rs, 2)]), T1l, ms, &(x[WS(vs, 1)])); ST(&(x[WS(vs, 7) + WS(rs, 6)]), T3u, ms, &(x[WS(vs, 7)])); ST(&(x[WS(vs, 1) + WS(rs, 6)]), T3t, ms, &(x[WS(vs, 1)])); ST(&(x[WS(vs, 7) + WS(rs, 5)]), T2X, ms, &(x[WS(vs, 7) + WS(rs, 1)])); ST(&(x[WS(vs, 1) + WS(rs, 5)]), T2W, ms, &(x[WS(vs, 1) + WS(rs, 1)])); } } { V T2u, T2t, T3y, T3x; { V T1q, T1p, Tm, Tl; T1q = BYTWJ(&(W[TWVL * 4]), VFMAI(T1o, T1n)); T1p = BYTWJ(&(W[TWVL * 8]), VFNMSI(T1o, T1n)); Tm = BYTWJ(&(W[TWVL * 4]), VFMAI(Tk, Tj)); Tl = BYTWJ(&(W[TWVL * 8]), VFNMSI(Tk, Tj)); ST(&(x[WS(vs, 3) + WS(rs, 2)]), T1q, ms, &(x[WS(vs, 3)])); ST(&(x[WS(vs, 5) + WS(rs, 2)]), T1p, ms, &(x[WS(vs, 5)])); T2u = BYTWJ(&(W[TWVL * 4]), VFMAI(T2s, T2r)); T2t = BYTWJ(&(W[TWVL * 8]), VFNMSI(T2s, T2r)); T3y = BYTWJ(&(W[TWVL * 4]), VFMAI(T3w, T3v)); T3x = BYTWJ(&(W[TWVL * 8]), VFNMSI(T3w, T3v)); ST(&(x[WS(vs, 3)]), Tm, ms, &(x[WS(vs, 3)])); ST(&(x[WS(vs, 5)]), Tl, ms, &(x[WS(vs, 5)])); } ST(&(x[WS(vs, 3) + WS(rs, 4)]), T2u, ms, &(x[WS(vs, 3)])); ST(&(x[WS(vs, 5) + WS(rs, 4)]), T2t, ms, &(x[WS(vs, 5)])); ST(&(x[WS(vs, 3) + WS(rs, 6)]), T3y, ms, &(x[WS(vs, 3)])); ST(&(x[WS(vs, 5) + WS(rs, 6)]), T3x, ms, &(x[WS(vs, 5)])); TT = BYTWJ(&(W[TWVL * 4]), VFMAI(TR, TQ)); TS = BYTWJ(&(W[TWVL * 8]), VFNMSI(TR, TQ)); } } } } } { V T31, T30, T45, T44, T1X, T1W; T1X = BYTWJ(&(W[TWVL * 4]), VFMAI(T1V, T1U)); T1W = BYTWJ(&(W[TWVL * 8]), VFNMSI(T1V, T1U)); ST(&(x[WS(vs, 3) + WS(rs, 1)]), TT, ms, &(x[WS(vs, 3) + WS(rs, 1)])); ST(&(x[WS(vs, 5) + WS(rs, 1)]), TS, ms, &(x[WS(vs, 5) + WS(rs, 1)])); T31 = BYTWJ(&(W[TWVL * 4]), VFMAI(T2Z, T2Y)); T30 = BYTWJ(&(W[TWVL * 8]), VFNMSI(T2Z, T2Y)); T45 = BYTWJ(&(W[TWVL * 4]), VFMAI(T43, T42)); T44 = BYTWJ(&(W[TWVL * 8]), VFNMSI(T43, T42)); ST(&(x[WS(vs, 3) + WS(rs, 3)]), T1X, ms, &(x[WS(vs, 3) + WS(rs, 1)])); ST(&(x[WS(vs, 5) + WS(rs, 3)]), T1W, ms, &(x[WS(vs, 5) + WS(rs, 1)])); ST(&(x[WS(vs, 3) + WS(rs, 5)]), T31, ms, &(x[WS(vs, 3) + WS(rs, 1)])); ST(&(x[WS(vs, 5) + WS(rs, 5)]), T30, ms, &(x[WS(vs, 5) + WS(rs, 1)])); ST(&(x[WS(vs, 3) + WS(rs, 7)]), T45, ms, &(x[WS(vs, 3) + WS(rs, 1)])); ST(&(x[WS(vs, 5) + WS(rs, 7)]), T44, ms, &(x[WS(vs, 5) + 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, "q1fv_8", twinstr, &GENUS, {184, 112, 80, 0}, 0, 0, 0 };void X(codelet_q1fv_8) (planner *p) { X(kdft_difsq_register) (p, q1fv_8, &desc);}#else /* HAVE_FMA *//* Generated by: ../../../genfft/gen_twidsq_c -simd -compact -variables 4 -pipeline-latency 8 -n 8 -dif -name q1fv_8 -include q1f.h *//* * This function contains 264 FP additions, 128 FP multiplications, * (or, 264 additions, 128 multiplications, 0 fused multiply/add), * 77 stack variables, 1 constants, and 128 memory accesses */#include "q1f.h"static void q1fv_8(R *ri, R *ii, const R *W, stride rs, stride vs, INT mb, INT me, INT ms){ DVK(KP707106781, +0.707106781186547524400844362104849039284835938); INT m; R *x; x = ri; for (m = mb, W = W + (mb * ((TWVL / VL) * 14)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 14), MAKE_VOLATILE_STRIDE(rs), MAKE_VOLATILE_STRIDE(vs)) { V T3, Tu, Tf, Tp, T1E, T25, T1Q, T20, T2b, T2C, T2n, T2x, T3M, T4d, T3Y; V T48, TA, T11, TM, TW, T17, T1y, T1j, T1t, T2I, T39, T2U, T34, T3f, T3G; V T3r, T3B, Ta, Tv, Tc, Ts, T1L, T26, T1N, T23, T2i, T2D, T2k, T2A, T3T; V T4e, T3V, T4b, TH, T12, TJ, TZ, T1e, T1z, T1g, T1w, T2P, T3a, T2R, T37; V T3m, T3H, T3o, T3E, T28, T14; { V T1, T2, Tn, Td, Te, To; T1 = LD(&(x[0]), ms, &(x[0])); T2 = LD(&(x[WS(rs, 4)]), ms, &(x[0])); Tn = VADD(T1, T2); Td = LD(&(x[WS(rs, 2)]), ms, &(x[0])); Te = LD(&(x[WS(rs, 6)]), ms, &(x[0])); To = VADD(Td, Te); T3 = VSUB(T1, T2); Tu = VSUB(Tn, To); Tf = VSUB(Td, Te); Tp = VADD(Tn, To); } { V T1C, T1D, T1Y, T1O, T1P, T1Z; T1C = LD(&(x[WS(vs, 3)]), ms, &(x[WS(vs, 3)])); T1D = LD(&(x[WS(vs, 3) + WS(rs, 4)]), ms, &(x[WS(vs, 3)])); T1Y = VADD(T1C, T1D); T1O = LD(&(x[WS(vs, 3) + WS(rs, 2)]), ms, &(x[WS(vs, 3)])); T1P = LD(&(x[WS(vs, 3) + WS(rs, 6)]), ms, &(x[WS(vs, 3)])); T1Z = VADD(T1O, T1P); T1E = VSUB(T1C, T1D); T25 = VSUB(T1Y, T1Z); T1Q = VSUB(T1O, T1P); T20 = VADD(T1Y, T1Z); } { V T29, T2a, T2v, T2l, T2m, T2w; T29 = LD(&(x[WS(vs, 4)]), ms, &(x[WS(vs, 4)])); T2a = LD(&(x[WS(vs, 4) + WS(rs, 4)]), ms, &(x[WS(vs, 4)])); T2v = VADD(T29, T2a); T2l = LD(&(x[WS(vs, 4) + WS(rs, 2)]), ms, &(x[WS(vs, 4)])); T2m = LD(&(x[WS(vs, 4) + WS(rs, 6)]), ms, &(x[WS(vs, 4)])); T2w = VADD(T2l, T2m); T2b = VSUB(T29, T2a); T2C = VSUB(T2v, T2w); T2n = VSUB(T2l, T2m); T2x = VADD(T2v, T2w); } { V T3K, T3L, T46, T3W, T3X, T47; T3K = LD(&(x[WS(vs, 7)]), ms, &(x[WS(vs, 7)])); T3L = LD(&(x[WS(vs, 7) + WS(rs, 4)]), ms, &(x[WS(vs, 7)])); T46 = VADD(T3K, T3L); T3W = LD(&(x[WS(vs, 7) + WS(rs, 2)]), ms, &(x[WS(vs, 7)])); T3X = LD(&(x[WS(vs, 7) + WS(rs, 6)]), ms, &(x[WS(vs, 7)])); T47 = VADD(T3W, T3X); T3M = VSUB(T3K, T3L); T4d = VSUB(T46, T47); T3Y = VSUB(T3W, T3X); T48 = VADD(T46, T47); } { V Ty, Tz, TU, TK, TL, TV; Ty = LD(&(x[WS(vs, 1)]), ms, &(x[WS(vs, 1)])); Tz = LD(&(x[WS(vs, 1) + WS(rs, 4)]), ms, &(x[WS(vs, 1)])); TU = VADD(Ty, Tz); TK = LD(&(x[WS(vs, 1) + WS(rs, 2)]), ms, &(x[WS(vs, 1)])); TL = LD(&(x[WS(vs, 1) + WS(rs, 6)]), ms, &(x[WS(vs, 1)])); TV = VADD(TK, TL); TA = VSUB(Ty, Tz); T11 = VSUB(TU, TV); TM = VSUB(TK, TL); TW = VADD(TU, TV); } { V T15, T16, T1r, T1h, T1i, T1s; T15 = LD(&(x[WS(vs, 2)]), ms, &(x[WS(vs, 2)])); T16 = LD(&(x[WS(vs, 2) + WS(rs, 4)]), ms, &(x[WS(vs, 2)])); T1r = VADD(T15, T16); T1h = LD(&(x[WS(vs, 2) + WS(rs, 2)]), ms, &(x[WS(vs, 2)])); T1i = LD(&(x[WS(vs, 2) + WS(rs, 6)]), ms, &(x[WS(vs, 2)])); T1s = VADD(T1h, T1i); T17 = VSUB(T15, T16); T1y = VSUB(T1r, T1s); T1j = VSUB(T1h, T1i); T1t = VADD(T1r, T1s); } { V T2G, T2H, T32, T2S, T2T, T33; T2G = LD(&(x[WS(vs, 5)]), ms, &(x[WS(vs, 5)])); T2H = LD(&(x[WS(vs, 5) + WS(rs, 4)]), ms, &(x[WS(vs, 5)])); T32 = VADD(T2G, T2H); T2S = LD(&(x[WS(vs, 5) + WS(rs, 2)]), ms, &(x[WS(vs, 5)])); T2T = LD(&(x[WS(vs, 5) + WS(rs, 6)]), ms, &(x[WS(vs, 5)])); T33 = VADD(T2S, T2T); T2I = VSUB(T2G, T2H); T39 = VSUB(T32, T33); T2U = VSUB(T2S, T2T); T34 = VADD(T32, T33); } { V T3d, T3e, T3z, T3p, T3q, T3A; T3d = LD(&(x[WS(vs, 6)]), ms, &(x[WS(vs, 6)])); T3e = LD(&(x[WS(vs, 6) + WS(rs, 4)]), ms, &(x[WS(vs, 6)])); T3z = VADD(T3d, T3e); T3p = LD(&(x[WS(vs, 6) + WS(rs, 2)]), ms, &(x[WS(vs, 6)])); T3q = LD(&(x[WS(vs, 6) + WS(rs, 6)]), ms, &(x[WS(vs, 6)])); T3A = VADD(T3p, T3q); T3f = VSUB(T3d, T3e); T3G = VSUB(T3z, T3A); T3r = VSUB(T3p, T3q); T3B = VADD(T3z, T3A); } { V T6, Tq, T9, Tr; { V T4, T5, T7, T8; T4 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); T5 = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); T6 = VSUB(T4, T5); Tq = VADD(T4, T5); T7 = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); T8 = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); T9 = VSUB(T7, T8); Tr = VADD(T7, T8); } Ta = VMUL(LDK(KP707106781), VADD(T6, T9)); Tv = VBYI(VSUB(Tr, Tq)); Tc = VMUL(LDK(KP707106781), VSUB(T9, T6)); Ts = VADD(Tq, Tr); } { V T1H, T21, T1K, T22; { V T1F, T1G, T1I, T1J; T1F = LD(&(x[WS(vs, 3) + WS(rs, 1)]), ms, &(x[WS(vs, 3) + WS(rs, 1)])); T1G = LD(&(x[WS(vs, 3) + WS(rs, 5)]), ms, &(x[WS(vs, 3) + WS(rs, 1)])); T1H = VSUB(T1F, T1G); T21 = VADD(T1F, T1G); T1I = LD(&(x[WS(vs, 3) + WS(rs, 7)]), ms, &(x[WS(vs, 3) + WS(rs, 1)])); T1J = LD(&(x[WS(vs, 3) + WS(rs, 3)]), ms, &(x[WS(vs, 3) + WS(rs, 1)])); T1K = VSUB(T1I, T1J); T22 = VADD(T1I, T1J); } T1L = VMUL(LDK(KP707106781), VADD(T1H, T1K)); T26 = VBYI(VSUB(T22, T21)); T1N = VMUL(LDK(KP707106781), VSUB(T1K, T1H)); T23 = VADD(T21, T22); } { V T2e, T2y, T2h, T2z; { V T2c, T2d, T2f, T2g; T2c = LD(&(x[WS(vs, 4) + WS(rs, 1)]), ms, &(x[WS(vs, 4) + WS(rs, 1)])); T2d = LD(&(x[WS(vs, 4) + WS(rs, 5)]), ms, &(x[WS(vs, 4) + WS(rs, 1)])); T2e = VSUB(T2c, T2d); T2y = VADD(T2c, T2d); T2f = LD(&(x[WS(vs, 4) + WS(rs, 7)]), ms, &(x[WS(vs, 4) + WS(rs, 1)])); T2g = LD(&(x[WS(vs, 4) + WS(rs, 3)]), ms, &(x[WS(vs, 4) + WS(rs, 1)])); T2h = VSUB(T2f, T2g); T2z = VADD(T2f, T2g); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -