📄 q1fv_8.c
字号:
{ V T2J, T2K, T2M, T2N; T2J = LD(&(x[WS(vs, 5) + WS(is, 1)]), dist, &(x[WS(vs, 5) + WS(is, 1)])); T2K = LD(&(x[WS(vs, 5) + WS(is, 5)]), dist, &(x[WS(vs, 5) + WS(is, 1)])); T2L = VSUB(T2J, T2K); T35 = VADD(T2J, T2K); T2M = LD(&(x[WS(vs, 5) + WS(is, 7)]), dist, &(x[WS(vs, 5) + WS(is, 1)])); T2N = LD(&(x[WS(vs, 5) + WS(is, 3)]), dist, &(x[WS(vs, 5) + WS(is, 1)])); T2O = VSUB(T2M, T2N); T36 = VADD(T2M, T2N); } T2P = VMUL(LDK(KP707106781), VADD(T2L, T2O)); T3a = VBYI(VSUB(T36, T35)); T2R = VMUL(LDK(KP707106781), VSUB(T2O, T2L)); T37 = VADD(T35, T36); } { V T3i, T3C, T3l, T3D; { V T3g, T3h, T3j, T3k; T3g = LD(&(x[WS(vs, 6) + WS(is, 1)]), dist, &(x[WS(vs, 6) + WS(is, 1)])); T3h = LD(&(x[WS(vs, 6) + WS(is, 5)]), dist, &(x[WS(vs, 6) + WS(is, 1)])); T3i = VSUB(T3g, T3h); T3C = VADD(T3g, T3h); T3j = LD(&(x[WS(vs, 6) + WS(is, 7)]), dist, &(x[WS(vs, 6) + WS(is, 1)])); T3k = LD(&(x[WS(vs, 6) + WS(is, 3)]), dist, &(x[WS(vs, 6) + WS(is, 1)])); T3l = VSUB(T3j, T3k); T3D = VADD(T3j, T3k); } T3m = VMUL(LDK(KP707106781), VADD(T3i, T3l)); T3H = VBYI(VSUB(T3D, T3C)); T3o = VMUL(LDK(KP707106781), VSUB(T3l, T3i)); T3E = VADD(T3C, T3D); } ST(&(x[0]), VADD(Tp, Ts), dist, &(x[0])); ST(&(x[WS(is, 2)]), VADD(T1t, T1w), dist, &(x[0])); ST(&(x[WS(is, 5)]), VADD(T34, T37), dist, &(x[WS(is, 1)])); ST(&(x[WS(is, 7)]), VADD(T48, T4b), dist, &(x[WS(is, 1)])); ST(&(x[WS(is, 6)]), VADD(T3B, T3E), dist, &(x[0])); ST(&(x[WS(is, 4)]), VADD(T2x, T2A), dist, &(x[0])); { V Tt, T4c, T2B, T24; ST(&(x[WS(is, 3)]), VADD(T20, T23), dist, &(x[WS(is, 1)])); ST(&(x[WS(is, 1)]), VADD(TW, TZ), dist, &(x[WS(is, 1)])); Tt = BYTWJ(&(W[TWVL * 6]), VSUB(Tp, Ts)); ST(&(x[WS(vs, 4)]), Tt, dist, &(x[WS(vs, 4)])); T4c = BYTWJ(&(W[TWVL * 6]), VSUB(T48, T4b)); ST(&(x[WS(vs, 4) + WS(is, 7)]), T4c, dist, &(x[WS(vs, 4) + WS(is, 1)])); T2B = BYTWJ(&(W[TWVL * 6]), VSUB(T2x, T2A)); ST(&(x[WS(vs, 4) + WS(is, 4)]), T2B, dist, &(x[WS(vs, 4)])); T24 = BYTWJ(&(W[TWVL * 6]), VSUB(T20, T23)); ST(&(x[WS(vs, 4) + WS(is, 3)]), T24, dist, &(x[WS(vs, 4) + WS(is, 1)])); } { V T10, T1x, T3F, T38, T1A, Tw; T10 = BYTWJ(&(W[TWVL * 6]), VSUB(TW, TZ)); ST(&(x[WS(vs, 4) + WS(is, 1)]), T10, dist, &(x[WS(vs, 4) + WS(is, 1)])); T1x = BYTWJ(&(W[TWVL * 6]), VSUB(T1t, T1w)); ST(&(x[WS(vs, 4) + WS(is, 2)]), T1x, dist, &(x[WS(vs, 4)])); T3F = BYTWJ(&(W[TWVL * 6]), VSUB(T3B, T3E)); ST(&(x[WS(vs, 4) + WS(is, 6)]), T3F, dist, &(x[WS(vs, 4)])); T38 = BYTWJ(&(W[TWVL * 6]), VSUB(T34, T37)); ST(&(x[WS(vs, 4) + WS(is, 5)]), T38, dist, &(x[WS(vs, 4) + WS(is, 1)])); T1A = BYTWJ(&(W[TWVL * 10]), VSUB(T1y, T1z)); ST(&(x[WS(vs, 6) + WS(is, 2)]), T1A, dist, &(x[WS(vs, 6)])); Tw = BYTWJ(&(W[TWVL * 10]), VSUB(Tu, Tv)); ST(&(x[WS(vs, 6)]), Tw, dist, &(x[WS(vs, 6)])); } { V T2E, T3I, T13, T27, T3b, T4f; T2E = BYTWJ(&(W[TWVL * 10]), VSUB(T2C, T2D)); ST(&(x[WS(vs, 6) + WS(is, 4)]), T2E, dist, &(x[WS(vs, 6)])); T3I = BYTWJ(&(W[TWVL * 10]), VSUB(T3G, T3H)); ST(&(x[WS(vs, 6) + WS(is, 6)]), T3I, dist, &(x[WS(vs, 6)])); T13 = BYTWJ(&(W[TWVL * 10]), VSUB(T11, T12)); ST(&(x[WS(vs, 6) + WS(is, 1)]), T13, dist, &(x[WS(vs, 6) + WS(is, 1)])); T27 = BYTWJ(&(W[TWVL * 10]), VSUB(T25, T26)); ST(&(x[WS(vs, 6) + WS(is, 3)]), T27, dist, &(x[WS(vs, 6) + WS(is, 1)])); T3b = BYTWJ(&(W[TWVL * 10]), VSUB(T39, T3a)); ST(&(x[WS(vs, 6) + WS(is, 5)]), T3b, dist, &(x[WS(vs, 6) + WS(is, 1)])); T4f = BYTWJ(&(W[TWVL * 10]), VSUB(T4d, T4e)); ST(&(x[WS(vs, 6) + WS(is, 7)]), T4f, dist, &(x[WS(vs, 6) + WS(is, 1)])); } { V Tx, T1B, T3c, T4g, T3J, T2F; Tx = BYTWJ(&(W[TWVL * 2]), VADD(Tu, Tv)); ST(&(x[WS(vs, 2)]), Tx, dist, &(x[WS(vs, 2)])); T1B = BYTWJ(&(W[TWVL * 2]), VADD(T1y, T1z)); ST(&(x[WS(vs, 2) + WS(is, 2)]), T1B, dist, &(x[WS(vs, 2)])); T3c = BYTWJ(&(W[TWVL * 2]), VADD(T39, T3a)); ST(&(x[WS(vs, 2) + WS(is, 5)]), T3c, dist, &(x[WS(vs, 2) + WS(is, 1)])); T4g = BYTWJ(&(W[TWVL * 2]), VADD(T4d, T4e)); ST(&(x[WS(vs, 2) + WS(is, 7)]), T4g, dist, &(x[WS(vs, 2) + WS(is, 1)])); T3J = BYTWJ(&(W[TWVL * 2]), VADD(T3G, T3H)); ST(&(x[WS(vs, 2) + WS(is, 6)]), T3J, dist, &(x[WS(vs, 2)])); T2F = BYTWJ(&(W[TWVL * 2]), VADD(T2C, T2D)); ST(&(x[WS(vs, 2) + WS(is, 4)]), T2F, dist, &(x[WS(vs, 2)])); } T28 = BYTWJ(&(W[TWVL * 2]), VADD(T25, T26)); ST(&(x[WS(vs, 2) + WS(is, 3)]), T28, dist, &(x[WS(vs, 2) + WS(is, 1)])); T14 = BYTWJ(&(W[TWVL * 2]), VADD(T11, T12)); ST(&(x[WS(vs, 2) + WS(is, 1)]), T14, dist, &(x[WS(vs, 2) + WS(is, 1)])); { V Th, Ti, Tb, Tg; Tb = VADD(T3, Ta); Tg = VBYI(VSUB(Tc, Tf)); Th = BYTWJ(&(W[TWVL * 12]), VSUB(Tb, Tg)); Ti = BYTWJ(&(W[0]), VADD(Tb, Tg)); ST(&(x[WS(vs, 7)]), Th, dist, &(x[WS(vs, 7)])); ST(&(x[WS(vs, 1)]), Ti, dist, &(x[WS(vs, 1)])); } { V T40, T41, T3U, T3Z; T3U = VADD(T3M, T3T); T3Z = VBYI(VSUB(T3V, T3Y)); T40 = BYTWJ(&(W[TWVL * 12]), VSUB(T3U, T3Z)); T41 = BYTWJ(&(W[0]), VADD(T3U, T3Z)); ST(&(x[WS(vs, 7) + WS(is, 7)]), T40, dist, &(x[WS(vs, 7) + WS(is, 1)])); ST(&(x[WS(vs, 1) + WS(is, 7)]), T41, dist, &(x[WS(vs, 1) + WS(is, 1)])); } { V T2p, T2q, T2j, T2o; T2j = VADD(T2b, T2i); T2o = VBYI(VSUB(T2k, T2n)); T2p = BYTWJ(&(W[TWVL * 12]), VSUB(T2j, T2o)); T2q = BYTWJ(&(W[0]), VADD(T2j, T2o)); ST(&(x[WS(vs, 7) + WS(is, 4)]), T2p, dist, &(x[WS(vs, 7)])); ST(&(x[WS(vs, 1) + WS(is, 4)]), T2q, dist, &(x[WS(vs, 1)])); } { V T1S, T1T, T1M, T1R; T1M = VADD(T1E, T1L); T1R = VBYI(VSUB(T1N, T1Q)); T1S = BYTWJ(&(W[TWVL * 12]), VSUB(T1M, T1R)); T1T = BYTWJ(&(W[0]), VADD(T1M, T1R)); ST(&(x[WS(vs, 7) + WS(is, 3)]), T1S, dist, &(x[WS(vs, 7) + WS(is, 1)])); ST(&(x[WS(vs, 1) + WS(is, 3)]), T1T, dist, &(x[WS(vs, 1) + WS(is, 1)])); } { V TO, TP, TI, TN; TI = VADD(TA, TH); TN = VBYI(VSUB(TJ, TM)); TO = BYTWJ(&(W[TWVL * 12]), VSUB(TI, TN)); TP = BYTWJ(&(W[0]), VADD(TI, TN)); ST(&(x[WS(vs, 7) + WS(is, 1)]), TO, dist, &(x[WS(vs, 7) + WS(is, 1)])); ST(&(x[WS(vs, 1) + WS(is, 1)]), TP, dist, &(x[WS(vs, 1) + WS(is, 1)])); } { V T1l, T1m, T1f, T1k; T1f = VADD(T17, T1e); T1k = VBYI(VSUB(T1g, T1j)); T1l = BYTWJ(&(W[TWVL * 12]), VSUB(T1f, T1k)); T1m = BYTWJ(&(W[0]), VADD(T1f, T1k)); ST(&(x[WS(vs, 7) + WS(is, 2)]), T1l, dist, &(x[WS(vs, 7)])); ST(&(x[WS(vs, 1) + WS(is, 2)]), T1m, dist, &(x[WS(vs, 1)])); } { V T3t, T3u, T3n, T3s; T3n = VADD(T3f, T3m); T3s = VBYI(VSUB(T3o, T3r)); T3t = BYTWJ(&(W[TWVL * 12]), VSUB(T3n, T3s)); T3u = BYTWJ(&(W[0]), VADD(T3n, T3s)); ST(&(x[WS(vs, 7) + WS(is, 6)]), T3t, dist, &(x[WS(vs, 7)])); ST(&(x[WS(vs, 1) + WS(is, 6)]), T3u, dist, &(x[WS(vs, 1)])); } { V T2W, T2X, T2Q, T2V; T2Q = VADD(T2I, T2P); T2V = VBYI(VSUB(T2R, T2U)); T2W = BYTWJ(&(W[TWVL * 12]), VSUB(T2Q, T2V)); T2X = BYTWJ(&(W[0]), VADD(T2Q, T2V)); ST(&(x[WS(vs, 7) + WS(is, 5)]), T2W, dist, &(x[WS(vs, 7) + WS(is, 1)])); ST(&(x[WS(vs, 1) + WS(is, 5)]), T2X, dist, &(x[WS(vs, 1) + WS(is, 1)])); } { V T1p, T1q, T1n, T1o; T1n = VSUB(T17, T1e); T1o = VBYI(VADD(T1j, T1g)); T1p = BYTWJ(&(W[TWVL * 8]), VSUB(T1n, T1o)); T1q = BYTWJ(&(W[TWVL * 4]), VADD(T1n, T1o)); ST(&(x[WS(vs, 5) + WS(is, 2)]), T1p, dist, &(x[WS(vs, 5)])); ST(&(x[WS(vs, 3) + WS(is, 2)]), T1q, dist, &(x[WS(vs, 3)])); } { V Tl, Tm, Tj, Tk; Tj = VSUB(T3, Ta); Tk = VBYI(VADD(Tf, Tc)); Tl = BYTWJ(&(W[TWVL * 8]), VSUB(Tj, Tk)); Tm = BYTWJ(&(W[TWVL * 4]), VADD(Tj, Tk)); ST(&(x[WS(vs, 5)]), Tl, dist, &(x[WS(vs, 5)])); ST(&(x[WS(vs, 3)]), Tm, dist, &(x[WS(vs, 3)])); } { V T2t, T2u, T2r, T2s; T2r = VSUB(T2b, T2i); T2s = VBYI(VADD(T2n, T2k)); T2t = BYTWJ(&(W[TWVL * 8]), VSUB(T2r, T2s)); T2u = BYTWJ(&(W[TWVL * 4]), VADD(T2r, T2s)); ST(&(x[WS(vs, 5) + WS(is, 4)]), T2t, dist, &(x[WS(vs, 5)])); ST(&(x[WS(vs, 3) + WS(is, 4)]), T2u, dist, &(x[WS(vs, 3)])); } { V T3x, T3y, T3v, T3w; T3v = VSUB(T3f, T3m); T3w = VBYI(VADD(T3r, T3o)); T3x = BYTWJ(&(W[TWVL * 8]), VSUB(T3v, T3w)); T3y = BYTWJ(&(W[TWVL * 4]), VADD(T3v, T3w)); ST(&(x[WS(vs, 5) + WS(is, 6)]), T3x, dist, &(x[WS(vs, 5)])); ST(&(x[WS(vs, 3) + WS(is, 6)]), T3y, dist, &(x[WS(vs, 3)])); } { V TS, TT, TQ, TR; TQ = VSUB(TA, TH); TR = VBYI(VADD(TM, TJ)); TS = BYTWJ(&(W[TWVL * 8]), VSUB(TQ, TR)); TT = BYTWJ(&(W[TWVL * 4]), VADD(TQ, TR)); ST(&(x[WS(vs, 5) + WS(is, 1)]), TS, dist, &(x[WS(vs, 5) + WS(is, 1)])); ST(&(x[WS(vs, 3) + WS(is, 1)]), TT, dist, &(x[WS(vs, 3) + WS(is, 1)])); } { V T1W, T1X, T1U, T1V; T1U = VSUB(T1E, T1L); T1V = VBYI(VADD(T1Q, T1N)); T1W = BYTWJ(&(W[TWVL * 8]), VSUB(T1U, T1V)); T1X = BYTWJ(&(W[TWVL * 4]), VADD(T1U, T1V)); ST(&(x[WS(vs, 5) + WS(is, 3)]), T1W, dist, &(x[WS(vs, 5) + WS(is, 1)])); ST(&(x[WS(vs, 3) + WS(is, 3)]), T1X, dist, &(x[WS(vs, 3) + WS(is, 1)])); } { V T30, T31, T2Y, T2Z; T2Y = VSUB(T2I, T2P); T2Z = VBYI(VADD(T2U, T2R)); T30 = BYTWJ(&(W[TWVL * 8]), VSUB(T2Y, T2Z)); T31 = BYTWJ(&(W[TWVL * 4]), VADD(T2Y, T2Z)); ST(&(x[WS(vs, 5) + WS(is, 5)]), T30, dist, &(x[WS(vs, 5) + WS(is, 1)])); ST(&(x[WS(vs, 3) + WS(is, 5)]), T31, dist, &(x[WS(vs, 3) + WS(is, 1)])); } { V T44, T45, T42, T43; T42 = VSUB(T3M, T3T); T43 = VBYI(VADD(T3Y, T3V)); T44 = BYTWJ(&(W[TWVL * 8]), VSUB(T42, T43)); T45 = BYTWJ(&(W[TWVL * 4]), VADD(T42, T43)); ST(&(x[WS(vs, 5) + WS(is, 7)]), T44, dist, &(x[WS(vs, 5) + WS(is, 1)])); ST(&(x[WS(vs, 3) + WS(is, 7)]), T45, dist, &(x[WS(vs, 3) + WS(is, 1)])); } } END_SIMD(); return W;}static const tw_instr twinstr[] = { VTW(1), VTW(2), VTW(3), VTW(4), VTW(5), VTW(6), VTW(7), {TW_NEXT, VL, 0}};static const ct_desc desc = { 8, "q1fv_8", twinstr, {264, 128, 0, 0}, &GENUS, 0, 0, 0 };void X(codelet_q1fv_8) (planner *p) { X(kdft_difsq_register) (p, q1fv_8, &desc);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -