📄 q1bv_8.c
字号:
{ V T2G, T2H, T2J, T2K; T2G = LD(&(x[WS(vs, 5) + WS(is, 1)]), dist, &(x[WS(vs, 5) + WS(is, 1)])); T2H = LD(&(x[WS(vs, 5) + WS(is, 5)]), dist, &(x[WS(vs, 5) + WS(is, 1)])); T2I = VSUB(T2G, T2H); T35 = VADD(T2G, T2H); T2J = LD(&(x[WS(vs, 5) + WS(is, 7)]), dist, &(x[WS(vs, 5) + WS(is, 1)])); T2K = LD(&(x[WS(vs, 5) + WS(is, 3)]), dist, &(x[WS(vs, 5) + WS(is, 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(is, 1)]), dist, &(x[WS(vs, 6) + WS(is, 1)])); T3e = LD(&(x[WS(vs, 6) + WS(is, 5)]), dist, &(x[WS(vs, 6) + WS(is, 1)])); T3f = VSUB(T3d, T3e); T3C = VADD(T3d, T3e); T3g = LD(&(x[WS(vs, 6) + WS(is, 7)]), dist, &(x[WS(vs, 6) + WS(is, 1)])); T3h = LD(&(x[WS(vs, 6) + WS(is, 3)]), dist, &(x[WS(vs, 6) + WS(is, 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), dist, &(x[0])); ST(&(x[WS(is, 2)]), VADD(T1z, T1A), dist, &(x[0])); ST(&(x[WS(is, 5)]), VADD(T3a, T3b), dist, &(x[WS(is, 1)])); ST(&(x[WS(is, 7)]), VADD(T4e, T4f), dist, &(x[WS(is, 1)])); ST(&(x[WS(is, 6)]), VADD(T3H, T3I), dist, &(x[0])); ST(&(x[WS(is, 4)]), VADD(T2D, T2E), dist, &(x[0])); { V Tt, T4c, T2B, T24; ST(&(x[WS(is, 3)]), VADD(T26, T27), dist, &(x[WS(is, 1)])); ST(&(x[WS(is, 1)]), VADD(T12, T13), dist, &(x[WS(is, 1)])); Tt = BYTW(&(W[TWVL * 10]), VSUB(Tp, Ts)); ST(&(x[WS(vs, 6)]), Tt, dist, &(x[WS(vs, 6)])); T4c = BYTW(&(W[TWVL * 10]), VSUB(T48, T4b)); ST(&(x[WS(vs, 6) + WS(is, 7)]), T4c, dist, &(x[WS(vs, 6) + WS(is, 1)])); T2B = BYTW(&(W[TWVL * 10]), VSUB(T2x, T2A)); ST(&(x[WS(vs, 6) + WS(is, 4)]), T2B, dist, &(x[WS(vs, 6)])); T24 = BYTW(&(W[TWVL * 10]), VSUB(T20, T23)); ST(&(x[WS(vs, 6) + WS(is, 3)]), T24, dist, &(x[WS(vs, 6) + WS(is, 1)])); } { V T10, T1x, T3F, T38, T1y, Tu; T10 = BYTW(&(W[TWVL * 10]), VSUB(TW, TZ)); ST(&(x[WS(vs, 6) + WS(is, 1)]), T10, dist, &(x[WS(vs, 6) + WS(is, 1)])); T1x = BYTW(&(W[TWVL * 10]), VSUB(T1t, T1w)); ST(&(x[WS(vs, 6) + WS(is, 2)]), T1x, dist, &(x[WS(vs, 6)])); T3F = BYTW(&(W[TWVL * 10]), VSUB(T3B, T3E)); ST(&(x[WS(vs, 6) + WS(is, 6)]), T3F, dist, &(x[WS(vs, 6)])); T38 = BYTW(&(W[TWVL * 10]), VSUB(T34, T37)); ST(&(x[WS(vs, 6) + WS(is, 5)]), T38, dist, &(x[WS(vs, 6) + WS(is, 1)])); T1y = BYTW(&(W[TWVL * 2]), VADD(T1t, T1w)); ST(&(x[WS(vs, 2) + WS(is, 2)]), T1y, dist, &(x[WS(vs, 2)])); Tu = BYTW(&(W[TWVL * 2]), VADD(Tp, Ts)); ST(&(x[WS(vs, 2)]), Tu, dist, &(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(is, 4)]), T2C, dist, &(x[WS(vs, 2)])); T3G = BYTW(&(W[TWVL * 2]), VADD(T3B, T3E)); ST(&(x[WS(vs, 2) + WS(is, 6)]), T3G, dist, &(x[WS(vs, 2)])); T11 = BYTW(&(W[TWVL * 2]), VADD(TW, TZ)); ST(&(x[WS(vs, 2) + WS(is, 1)]), T11, dist, &(x[WS(vs, 2) + WS(is, 1)])); T25 = BYTW(&(W[TWVL * 2]), VADD(T20, T23)); ST(&(x[WS(vs, 2) + WS(is, 3)]), T25, dist, &(x[WS(vs, 2) + WS(is, 1)])); T39 = BYTW(&(W[TWVL * 2]), VADD(T34, T37)); ST(&(x[WS(vs, 2) + WS(is, 5)]), T39, dist, &(x[WS(vs, 2) + WS(is, 1)])); T4d = BYTW(&(W[TWVL * 2]), VADD(T48, T4b)); ST(&(x[WS(vs, 2) + WS(is, 7)]), T4d, dist, &(x[WS(vs, 2) + WS(is, 1)])); } { V Tx, T1B, T3c, T4g, T3J, T2F; Tx = BYTW(&(W[TWVL * 6]), VSUB(Tv, Tw)); ST(&(x[WS(vs, 4)]), Tx, dist, &(x[WS(vs, 4)])); T1B = BYTW(&(W[TWVL * 6]), VSUB(T1z, T1A)); ST(&(x[WS(vs, 4) + WS(is, 2)]), T1B, dist, &(x[WS(vs, 4)])); T3c = BYTW(&(W[TWVL * 6]), VSUB(T3a, T3b)); ST(&(x[WS(vs, 4) + WS(is, 5)]), T3c, dist, &(x[WS(vs, 4) + WS(is, 1)])); T4g = BYTW(&(W[TWVL * 6]), VSUB(T4e, T4f)); ST(&(x[WS(vs, 4) + WS(is, 7)]), T4g, dist, &(x[WS(vs, 4) + WS(is, 1)])); T3J = BYTW(&(W[TWVL * 6]), VSUB(T3H, T3I)); ST(&(x[WS(vs, 4) + WS(is, 6)]), T3J, dist, &(x[WS(vs, 4)])); T2F = BYTW(&(W[TWVL * 6]), VSUB(T2D, T2E)); ST(&(x[WS(vs, 4) + WS(is, 4)]), T2F, dist, &(x[WS(vs, 4)])); } T28 = BYTW(&(W[TWVL * 6]), VSUB(T26, T27)); ST(&(x[WS(vs, 4) + WS(is, 3)]), T28, dist, &(x[WS(vs, 4) + WS(is, 1)])); T14 = BYTW(&(W[TWVL * 6]), VSUB(T12, T13)); ST(&(x[WS(vs, 4) + WS(is, 1)]), T14, dist, &(x[WS(vs, 4) + WS(is, 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, dist, &(x[WS(vs, 3)])); ST(&(x[WS(vs, 5)]), Ti, dist, &(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(is, 7)]), T40, dist, &(x[WS(vs, 3) + WS(is, 1)])); ST(&(x[WS(vs, 5) + WS(is, 7)]), T41, dist, &(x[WS(vs, 5) + WS(is, 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(is, 4)]), T2p, dist, &(x[WS(vs, 3)])); ST(&(x[WS(vs, 5) + WS(is, 4)]), T2q, dist, &(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(is, 3)]), T1S, dist, &(x[WS(vs, 3) + WS(is, 1)])); ST(&(x[WS(vs, 5) + WS(is, 3)]), T1T, dist, &(x[WS(vs, 5) + WS(is, 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(is, 1)]), TO, dist, &(x[WS(vs, 3) + WS(is, 1)])); ST(&(x[WS(vs, 5) + WS(is, 1)]), TP, dist, &(x[WS(vs, 5) + WS(is, 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(is, 2)]), T1l, dist, &(x[WS(vs, 3)])); ST(&(x[WS(vs, 5) + WS(is, 2)]), T1m, dist, &(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(is, 6)]), T3t, dist, &(x[WS(vs, 3)])); ST(&(x[WS(vs, 5) + WS(is, 6)]), T3u, dist, &(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(is, 5)]), T2W, dist, &(x[WS(vs, 3) + WS(is, 1)])); ST(&(x[WS(vs, 5) + WS(is, 5)]), T2X, dist, &(x[WS(vs, 5) + WS(is, 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(is, 2)]), T1p, dist, &(x[WS(vs, 1)])); ST(&(x[WS(vs, 7) + WS(is, 2)]), T1q, dist, &(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, dist, &(x[WS(vs, 1)])); ST(&(x[WS(vs, 7)]), Tm, dist, &(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(is, 4)]), T2t, dist, &(x[WS(vs, 1)])); ST(&(x[WS(vs, 7) + WS(is, 4)]), T2u, dist, &(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(is, 6)]), T3x, dist, &(x[WS(vs, 1)])); ST(&(x[WS(vs, 7) + WS(is, 6)]), T3y, dist, &(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(is, 1)]), TS, dist, &(x[WS(vs, 1) + WS(is, 1)])); ST(&(x[WS(vs, 7) + WS(is, 1)]), TT, dist, &(x[WS(vs, 7) + WS(is, 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(is, 3)]), T1W, dist, &(x[WS(vs, 1) + WS(is, 1)])); ST(&(x[WS(vs, 7) + WS(is, 3)]), T1X, dist, &(x[WS(vs, 7) + WS(is, 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(is, 5)]), T30, dist, &(x[WS(vs, 1) + WS(is, 1)])); ST(&(x[WS(vs, 7) + WS(is, 5)]), T31, dist, &(x[WS(vs, 7) + WS(is, 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(is, 7)]), T44, dist, &(x[WS(vs, 1) + WS(is, 1)])); ST(&(x[WS(vs, 7) + WS(is, 7)]), T45, dist, &(x[WS(vs, 7) + 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, "q1bv_8", twinstr, {264, 128, 0, 0}, &GENUS, 0, 0, 0 };void X(codelet_q1bv_8) (planner *p) { X(kdft_difsq_register) (p, q1bv_8, &desc);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -