static void n2fv_12(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP866025403, +0.866025403784438646763723170752936183471402627); DVK(KP500000000, +0.500000000000000000000000000000000000000000000); { INT i; const R *xi; R *xo; xi = ri; xo = ro; for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(24, is), MAKE_VOLATILE_STRIDE(24, os)) { V T5, Ta, TG, TF, TB, Tt, Ti, Tm, TJ, TI, TA, Tp; { V T1, T6, T4, Tr, T9, Ts; T1 = LD(&(xi[0]), ivs, &(xi[0])); T6 = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); { V T2, T3, T7, T8; T2 = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); T3 = LD(&(xi[WS(is, 8)]), ivs, &(xi[0])); T4 = VADD(T2, T3); Tr = VSUB(T3, T2); T7 = LD(&(xi[WS(is, 10)]), ivs, &(xi[0])); T8 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T9 = VADD(T7, T8); Ts = VSUB(T8, T7); } T5 = VFNMS(LDK(KP500000000), T4, T1); Ta = VFNMS(LDK(KP500000000), T9, T6); TG = VADD(T6, T9); TF = VADD(T1, T4); TB = VADD(Tr, Ts); Tt = VSUB(Tr, Ts); } { V Tk, Tn, Te, Tl, Th, To; Tk = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); Tn = LD(&(xi[WS(is, 9)]), ivs, &(xi[WS(is, 1)])); { V Tc, Td, Tf, Tg; Tc = LD(&(xi[WS(is, 11)]), ivs, &(xi[WS(is, 1)])); Td = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); Te = VSUB(Tc, Td); Tl = VADD(Td, Tc); Tf = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); Tg = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); Th = VSUB(Tf, Tg); To = VADD(Tf, Tg); } Ti = VADD(Te, Th); Tm = VFNMS(LDK(KP500000000), Tl, Tk); TJ = VADD(Tn, To); TI = VADD(Tk, Tl); TA = VSUB(Te, Th); Tp = VFNMS(LDK(KP500000000), To, Tn); } { V TN, TO, TP, TQ, TT, TU; { V TH, TK, TL, TM; TH = VSUB(TF, TG); TK = VSUB(TI, TJ); TN = VFNMSI(TK, TH); STM2(&(xo[18]), TN, ovs, &(xo[2])); TO = VFMAI(TK, TH); STM2(&(xo[6]), TO, ovs, &(xo[2])); TL = VADD(TF, TG); TM = VADD(TI, TJ); TP = VSUB(TL, TM); STM2(&(xo[12]), TP, ovs, &(xo[0])); TQ = VADD(TL, TM); STM2(&(xo[0]), TQ, ovs, &(xo[0])); } { V Tj, Tv, Tu, Tw, Tb, Tq, TR, TS; Tb = VSUB(T5, Ta); Tj = VFMA(LDK(KP866025403), Ti, Tb); Tv = VFNMS(LDK(KP866025403), Ti, Tb); Tq = VSUB(Tm, Tp); Tu = VFNMS(LDK(KP866025403), Tt, Tq); Tw = VFMA(LDK(KP866025403), Tt, Tq); TR = VFNMSI(Tu, Tj); STM2(&(xo[2]), TR, ovs, &(xo[2])); STN2(&(xo[0]), TQ, TR, ovs); TS = VFMAI(Tw, Tv); STM2(&(xo[14]), TS, ovs, &(xo[2])); STN2(&(xo[12]), TP, TS, ovs); TT = VFMAI(Tu, Tj); STM2(&(xo[22]), TT, ovs, &(xo[2])); TU = VFNMSI(Tw, Tv); STM2(&(xo[10]), TU, ovs, &(xo[2])); } { V TC, TE, Tz, TD, Tx, Ty; TC = VMUL(LDK(KP866025403), VSUB(TA, TB)); TE = VMUL(LDK(KP866025403), VADD(TB, TA)); Tx = VADD(T5, Ta); Ty = VADD(Tm, Tp); Tz = VSUB(Tx, Ty); TD = VADD(Tx, Ty); { V TV, TW, TX, TY; TV = VFMAI(TC, Tz); STM2(&(xo[4]), TV, ovs, &(xo[0])); STN2(&(xo[4]), TV, TO, ovs); TW = VFNMSI(TE, TD); STM2(&(xo[16]), TW, ovs, &(xo[0])); STN2(&(xo[16]), TW, TN, ovs); TX = VFNMSI(TC, Tz); STM2(&(xo[20]), TX, ovs, &(xo[0])); STN2(&(xo[20]), TX, TT, ovs); TY = VFMAI(TE, TD); STM2(&(xo[8]), TY, ovs, &(xo[0])); STN2(&(xo[8]), TY, TU, ovs); } } } } } VLEAVE(); }
static void t2bv_10(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP587785252, +0.587785252292473129168705954639072768597652438); DVK(KP951056516, +0.951056516295153572116439333379382143405698634); DVK(KP250000000, +0.250000000000000000000000000000000000000000000); DVK(KP559016994, +0.559016994374947424102293417182819058860154590); INT m; R *x; x = ii; for (m = mb, W = W + (mb * ((TWVL / VL) * 18)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 18), MAKE_VOLATILE_STRIDE(rs)) { V Tu, TH, Tg, Tl, Tp, TD, TE, TJ, T5, Ta, To, TA, TB, TI, Tr; V Tt, Ts; Tr = LD(&(x[0]), ms, &(x[0])); Ts = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); Tt = BYTW(&(W[TWVL * 8]), Ts); Tu = VSUB(Tr, Tt); TH = VADD(Tr, Tt); { V Td, Tk, Tf, Ti; { V Tc, Tj, Te, Th; Tc = LD(&(x[WS(rs, 4)]), ms, &(x[0])); Td = BYTW(&(W[TWVL * 6]), Tc); Tj = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); Tk = BYTW(&(W[0]), Tj); Te = LD(&(x[WS(rs, 9)]), ms, &(x[WS(rs, 1)])); Tf = BYTW(&(W[TWVL * 16]), Te); Th = LD(&(x[WS(rs, 6)]), ms, &(x[0])); Ti = BYTW(&(W[TWVL * 10]), Th); } Tg = VSUB(Td, Tf); Tl = VSUB(Ti, Tk); Tp = VADD(Tg, Tl); TD = VADD(Td, Tf); TE = VADD(Ti, Tk); TJ = VADD(TD, TE); } { V T2, T9, T4, T7; { V T1, T8, T3, T6; T1 = LD(&(x[WS(rs, 2)]), ms, &(x[0])); T2 = BYTW(&(W[TWVL * 2]), T1); T8 = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); T9 = BYTW(&(W[TWVL * 4]), T8); T3 = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); T4 = BYTW(&(W[TWVL * 12]), T3); T6 = LD(&(x[WS(rs, 8)]), ms, &(x[0])); T7 = BYTW(&(W[TWVL * 14]), T6); } T5 = VSUB(T2, T4); Ta = VSUB(T7, T9); To = VADD(T5, Ta); TA = VADD(T2, T4); TB = VADD(T7, T9); TI = VADD(TA, TB); } { V Tq, Tv, Tw, Tn, Tz, Tb, Tm, Ty, Tx; Tq = VMUL(LDK(KP559016994), VSUB(To, Tp)); Tv = VADD(To, Tp); Tw = VFNMS(LDK(KP250000000), Tv, Tu); Tb = VSUB(T5, Ta); Tm = VSUB(Tg, Tl); Tn = VBYI(VFMA(LDK(KP951056516), Tb, VMUL(LDK(KP587785252), Tm))); Tz = VBYI(VFNMS(LDK(KP951056516), Tm, VMUL(LDK(KP587785252), Tb))); ST(&(x[WS(rs, 5)]), VADD(Tu, Tv), ms, &(x[WS(rs, 1)])); Ty = VSUB(Tw, Tq); ST(&(x[WS(rs, 3)]), VSUB(Ty, Tz), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 7)]), VADD(Tz, Ty), ms, &(x[WS(rs, 1)])); Tx = VADD(Tq, Tw); ST(&(x[WS(rs, 1)]), VADD(Tn, Tx), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 9)]), VSUB(Tx, Tn), ms, &(x[WS(rs, 1)])); } { V TM, TK, TL, TG, TP, TC, TF, TO, TN; TM = VMUL(LDK(KP559016994), VSUB(TI, TJ)); TK = VADD(TI, TJ); TL = VFNMS(LDK(KP250000000), TK, TH); TC = VSUB(TA, TB); TF = VSUB(TD, TE); TG = VBYI(VFNMS(LDK(KP951056516), TF, VMUL(LDK(KP587785252), TC))); TP = VBYI(VFMA(LDK(KP951056516), TC, VMUL(LDK(KP587785252), TF))); ST(&(x[0]), VADD(TH, TK), ms, &(x[0])); TO = VADD(TM, TL); ST(&(x[WS(rs, 4)]), VSUB(TO, TP), ms, &(x[0])); ST(&(x[WS(rs, 6)]), VADD(TP, TO), ms, &(x[0])); TN = VSUB(TL, TM); ST(&(x[WS(rs, 2)]), VADD(TG, TN), ms, &(x[0])); ST(&(x[WS(rs, 8)]), VSUB(TN, TG), ms, &(x[0])); } } }
static const R *t1fv_15(R *ri, R *ii, const R *W, stride ios, INT m, INT dist) { DVK(KP216506350, +0.216506350946109661690930792688234045867850657); DVK(KP484122918, +0.484122918275927110647408174972799951354115213); DVK(KP866025403, +0.866025403784438646763723170752936183471402627); DVK(KP509036960, +0.509036960455127183450980863393907648510733164); DVK(KP823639103, +0.823639103546331925877420039278190003029660514); DVK(KP587785252, +0.587785252292473129168705954639072768597652438); DVK(KP951056516, +0.951056516295153572116439333379382143405698634); DVK(KP250000000, +0.250000000000000000000000000000000000000000000); DVK(KP559016994, +0.559016994374947424102293417182819058860154590); DVK(KP500000000, +0.500000000000000000000000000000000000000000000); INT i; R *x; x = ri; for (i = m; i > 0; i = i - VL, x = x + (VL * dist), W = W + (TWVL * 28), MAKE_VOLATILE_STRIDE(ios)) { V T1e, T7, TP, T12, T15, Tf, Tn, To, T1b, T1c, T1f, TQ, TR, TS, Tw; V TE, TF, TT, TU, TV; { V T1, T5, T3, T4, T2, T6; T1 = LD(&(x[0]), dist, &(x[0])); T4 = LD(&(x[WS(ios, 10)]), dist, &(x[0])); T5 = BYTWJ(&(W[TWVL * 18]), T4); T2 = LD(&(x[WS(ios, 5)]), dist, &(x[WS(ios, 1)])); T3 = BYTWJ(&(W[TWVL * 8]), T2); T1e = VSUB(T5, T3); T6 = VADD(T3, T5); T7 = VADD(T1, T6); TP = VFNMS(LDK(KP500000000), T6, T1); } { V T9, Tq, Ty, Th, Te, T13, Tv, T10, TD, T11, Tm, T14; { V T8, Tp, Tx, Tg; T8 = LD(&(x[WS(ios, 3)]), dist, &(x[WS(ios, 1)])); T9 = BYTWJ(&(W[TWVL * 4]), T8); Tp = LD(&(x[WS(ios, 6)]), dist, &(x[0])); Tq = BYTWJ(&(W[TWVL * 10]), Tp); Tx = LD(&(x[WS(ios, 9)]), dist, &(x[WS(ios, 1)])); Ty = BYTWJ(&(W[TWVL * 16]), Tx); Tg = LD(&(x[WS(ios, 12)]), dist, &(x[0])); Th = BYTWJ(&(W[TWVL * 22]), Tg); } { V Tb, Td, Ta, Tc; Ta = LD(&(x[WS(ios, 8)]), dist, &(x[0])); Tb = BYTWJ(&(W[TWVL * 14]), Ta); Tc = LD(&(x[WS(ios, 13)]), dist, &(x[WS(ios, 1)])); Td = BYTWJ(&(W[TWVL * 24]), Tc); Te = VADD(Tb, Td); T13 = VSUB(Td, Tb); } { V Ts, Tu, Tr, Tt; Tr = LD(&(x[WS(ios, 11)]), dist, &(x[WS(ios, 1)])); Ts = BYTWJ(&(W[TWVL * 20]), Tr); Tt = LD(&(x[WS(ios, 1)]), dist, &(x[WS(ios, 1)])); Tu = BYTWJ(&(W[0]), Tt); Tv = VADD(Ts, Tu); T10 = VSUB(Tu, Ts); } { V TA, TC, Tz, TB; Tz = LD(&(x[WS(ios, 14)]), dist, &(x[0])); TA = BYTWJ(&(W[TWVL * 26]), Tz); TB = LD(&(x[WS(ios, 4)]), dist, &(x[0])); TC = BYTWJ(&(W[TWVL * 6]), TB); TD = VADD(TA, TC); T11 = VSUB(TC, TA); } { V Tj, Tl, Ti, Tk; Ti = LD(&(x[WS(ios, 2)]), dist, &(x[0])); Tj = BYTWJ(&(W[TWVL * 2]), Ti); Tk = LD(&(x[WS(ios, 7)]), dist, &(x[WS(ios, 1)])); Tl = BYTWJ(&(W[TWVL * 12]), Tk); Tm = VADD(Tj, Tl); T14 = VSUB(Tl, Tj); } T12 = VSUB(T10, T11); T15 = VSUB(T13, T14); Tf = VADD(T9, Te); Tn = VADD(Th, Tm); To = VADD(Tf, Tn); T1b = VADD(T13, T14); T1c = VADD(T10, T11); T1f = VADD(T1b, T1c); TQ = VFNMS(LDK(KP500000000), Te, T9); TR = VFNMS(LDK(KP500000000), Tm, Th); TS = VADD(TQ, TR); Tw = VADD(Tq, Tv); TE = VADD(Ty, TD); TF = VADD(Tw, TE); TT = VFNMS(LDK(KP500000000), Tv, Tq); TU = VFNMS(LDK(KP500000000), TD, Ty); TV = VADD(TT, TU); } { V TI, TG, TH, TM, TO, TK, TL, TN, TJ; TI = VMUL(LDK(KP559016994), VSUB(To, TF)); TG = VADD(To, TF); TH = VFNMS(LDK(KP250000000), TG, T7); TK = VSUB(Tw, TE); TL = VSUB(Tf, Tn); TM = VBYI(VFNMS(LDK(KP587785252), TL, VMUL(LDK(KP951056516), TK))); TO = VBYI(VFMA(LDK(KP951056516), TL, VMUL(LDK(KP587785252), TK))); ST(&(x[0]), VADD(T7, TG), dist, &(x[0])); TN = VADD(TI, TH); ST(&(x[WS(ios, 6)]), VSUB(TN, TO), dist, &(x[0])); ST(&(x[WS(ios, 9)]), VADD(TO, TN), dist, &(x[WS(ios, 1)])); TJ = VSUB(TH, TI); ST(&(x[WS(ios, 3)]), VSUB(TJ, TM), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 12)]), VADD(TM, TJ), dist, &(x[0])); } { V T16, T1m, T1u, T1h, T1o, T1a, T1p, TZ, T1t, T1l, T1d, T1g; T16 = VFNMS(LDK(KP509036960), T15, VMUL(LDK(KP823639103), T12)); T1m = VFMA(LDK(KP823639103), T15, VMUL(LDK(KP509036960), T12)); T1u = VBYI(VMUL(LDK(KP866025403), VADD(T1e, T1f))); T1d = VMUL(LDK(KP484122918), VSUB(T1b, T1c)); T1g = VFNMS(LDK(KP216506350), T1f, VMUL(LDK(KP866025403), T1e)); T1h = VSUB(T1d, T1g); T1o = VADD(T1d, T1g); { V T18, T19, TY, TW, TX; T18 = VSUB(TT, TU); T19 = VSUB(TQ, TR); T1a = VFNMS(LDK(KP587785252), T19, VMUL(LDK(KP951056516), T18)); T1p = VFMA(LDK(KP951056516), T19, VMUL(LDK(KP587785252), T18)); TY = VMUL(LDK(KP559016994), VSUB(TS, TV)); TW = VADD(TS, TV); TX = VFNMS(LDK(KP250000000), TW, TP); TZ = VSUB(TX, TY); T1t = VADD(TP, TW); T1l = VADD(TY, TX); } { V T17, T1i, T1r, T1s; ST(&(x[WS(ios, 5)]), VSUB(T1t, T1u), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 10)]), VADD(T1t, T1u), dist, &(x[0])); T17 = VSUB(TZ, T16); T1i = VBYI(VSUB(T1a, T1h)); ST(&(x[WS(ios, 8)]), VSUB(T17, T1i), dist, &(x[0])); ST(&(x[WS(ios, 7)]), VADD(T17, T1i), dist, &(x[WS(ios, 1)])); T1r = VSUB(T1l, T1m); T1s = VBYI(VADD(T1p, T1o)); ST(&(x[WS(ios, 11)]), VSUB(T1r, T1s), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 4)]), VADD(T1r, T1s), dist, &(x[0])); { V T1n, T1q, T1j, T1k; T1n = VADD(T1l, T1m); T1q = VBYI(VSUB(T1o, T1p)); ST(&(x[WS(ios, 14)]), VSUB(T1n, T1q), dist, &(x[0])); ST(&(x[WS(ios, 1)]), VADD(T1n, T1q), dist, &(x[WS(ios, 1)])); T1j = VADD(TZ, T16); T1k = VBYI(VADD(T1a, T1h)); ST(&(x[WS(ios, 13)]), VSUB(T1j, T1k), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 2)]), VADD(T1j, T1k), dist, &(x[0])); } } } } return W; }
static void n2bv_16(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP923879532, +0.923879532511286756128183189396788286822416626); DVK(KP414213562, +0.414213562373095048801688724209698078569671875); DVK(KP707106781, +0.707106781186547524400844362104849039284835938); INT i; const R *xi; R *xo; xi = ii; xo = io; for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(is), MAKE_VOLATILE_STRIDE(os)) { V T7, Tu, TF, TB, T13, TL, TO, TX, TC, Te, TP, Th, TQ, Tk, TW; V T16; { V TH, TU, Tz, Tf, TK, TV, TA, TM, Ta, TN, Td, Tg, Ti, Tj; { V T1, T2, T4, T5, To, Tp, Tr, Ts; T1 = LD(&(xi[0]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 8)]), ivs, &(xi[0])); T4 = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); T5 = LD(&(xi[WS(is, 12)]), ivs, &(xi[0])); To = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); Tp = LD(&(xi[WS(is, 10)]), ivs, &(xi[0])); Tr = LD(&(xi[WS(is, 14)]), ivs, &(xi[0])); Ts = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); { V T8, TI, Tq, TJ, Tt, T9, Tb, Tc, T3, T6; T8 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); TH = VSUB(T1, T2); T3 = VADD(T1, T2); TU = VSUB(T4, T5); T6 = VADD(T4, T5); TI = VSUB(To, Tp); Tq = VADD(To, Tp); TJ = VSUB(Tr, Ts); Tt = VADD(Tr, Ts); T9 = LD(&(xi[WS(is, 9)]), ivs, &(xi[WS(is, 1)])); Tb = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); Tc = LD(&(xi[WS(is, 13)]), ivs, &(xi[WS(is, 1)])); T7 = VSUB(T3, T6); Tz = VADD(T3, T6); Tf = LD(&(xi[WS(is, 15)]), ivs, &(xi[WS(is, 1)])); TK = VADD(TI, TJ); TV = VSUB(TI, TJ); TA = VADD(Tq, Tt); Tu = VSUB(Tq, Tt); TM = VSUB(T8, T9); Ta = VADD(T8, T9); TN = VSUB(Tb, Tc); Td = VADD(Tb, Tc); Tg = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); Ti = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); Tj = LD(&(xi[WS(is, 11)]), ivs, &(xi[WS(is, 1)])); } } TF = VADD(Tz, TA); TB = VSUB(Tz, TA); T13 = VFNMS(LDK(KP707106781), TK, TH); TL = VFMA(LDK(KP707106781), TK, TH); TO = VFNMS(LDK(KP414213562), TN, TM); TX = VFMA(LDK(KP414213562), TM, TN); TC = VADD(Ta, Td); Te = VSUB(Ta, Td); TP = VSUB(Tf, Tg); Th = VADD(Tf, Tg); TQ = VSUB(Tj, Ti); Tk = VADD(Ti, Tj); TW = VFMA(LDK(KP707106781), TV, TU); T16 = VFNMS(LDK(KP707106781), TV, TU); } { V TY, TR, Tl, TD; TY = VFMA(LDK(KP414213562), TP, TQ); TR = VFNMS(LDK(KP414213562), TQ, TP); Tl = VSUB(Th, Tk); TD = VADD(Th, Tk); { V TS, T17, TZ, T14; TS = VADD(TO, TR); T17 = VSUB(TO, TR); TZ = VSUB(TX, TY); T14 = VADD(TX, TY); { V TE, TG, Tm, Tv; TE = VSUB(TC, TD); TG = VADD(TC, TD); Tm = VADD(Te, Tl); Tv = VSUB(Te, Tl); { V T18, T1a, TT, T11; T18 = VFMA(LDK(KP923879532), T17, T16); T1a = VFNMS(LDK(KP923879532), T17, T16); TT = VFNMS(LDK(KP923879532), TS, TL); T11 = VFMA(LDK(KP923879532), TS, TL); { V T15, T19, T10, T12; T15 = VFNMS(LDK(KP923879532), T14, T13); T19 = VFMA(LDK(KP923879532), T14, T13); T10 = VFNMS(LDK(KP923879532), TZ, TW); T12 = VFMA(LDK(KP923879532), TZ, TW); { V T1b, T1c, T1d, T1e; T1b = VADD(TF, TG); STM2(&(xo[0]), T1b, ovs, &(xo[0])); T1c = VSUB(TF, TG); STM2(&(xo[16]), T1c, ovs, &(xo[0])); T1d = VFMAI(TE, TB); STM2(&(xo[8]), T1d, ovs, &(xo[0])); T1e = VFNMSI(TE, TB); STM2(&(xo[24]), T1e, ovs, &(xo[0])); { V Tw, Ty, Tn, Tx; Tw = VFNMS(LDK(KP707106781), Tv, Tu); Ty = VFMA(LDK(KP707106781), Tv, Tu); Tn = VFNMS(LDK(KP707106781), Tm, T7); Tx = VFMA(LDK(KP707106781), Tm, T7); { V T1f, T1g, T1h, T1i; T1f = VFNMSI(T1a, T19); STM2(&(xo[6]), T1f, ovs, &(xo[2])); T1g = VFMAI(T1a, T19); STM2(&(xo[26]), T1g, ovs, &(xo[2])); STN2(&(xo[24]), T1e, T1g, ovs); T1h = VFNMSI(T18, T15); STM2(&(xo[22]), T1h, ovs, &(xo[2])); T1i = VFMAI(T18, T15); STM2(&(xo[10]), T1i, ovs, &(xo[2])); STN2(&(xo[8]), T1d, T1i, ovs); { V T1j, T1k, T1l, T1m; T1j = VFNMSI(T12, T11); STM2(&(xo[30]), T1j, ovs, &(xo[2])); T1k = VFMAI(T12, T11); STM2(&(xo[2]), T1k, ovs, &(xo[2])); STN2(&(xo[0]), T1b, T1k, ovs); T1l = VFMAI(T10, TT); STM2(&(xo[18]), T1l, ovs, &(xo[2])); STN2(&(xo[16]), T1c, T1l, ovs); T1m = VFNMSI(T10, TT); STM2(&(xo[14]), T1m, ovs, &(xo[2])); { V T1n, T1o, T1p, T1q; T1n = VFMAI(Ty, Tx); STM2(&(xo[4]), T1n, ovs, &(xo[0])); STN2(&(xo[4]), T1n, T1f, ovs); T1o = VFNMSI(Ty, Tx); STM2(&(xo[28]), T1o, ovs, &(xo[0])); STN2(&(xo[28]), T1o, T1j, ovs); T1p = VFMAI(Tw, Tn); STM2(&(xo[20]), T1p, ovs, &(xo[0])); STN2(&(xo[20]), T1p, T1h, ovs); T1q = VFNMSI(Tw, Tn); STM2(&(xo[12]), T1q, ovs, &(xo[0])); STN2(&(xo[12]), T1q, T1m, ovs); } } } } } } } } } } } }
static void n2bv_14(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP900968867, +0.900968867902419126236102319507445051165919162); DVK(KP222520933, +0.222520933956314404288902564496794759466355569); DVK(KP623489801, +0.623489801858733530525004884004239810632274731); DVK(KP781831482, +0.781831482468029808708444526674057750232334519); DVK(KP974927912, +0.974927912181823607018131682993931217232785801); DVK(KP433883739, +0.433883739117558120475768332848358754609990728); { INT i; const R *xi; R *xo; xi = ii; xo = io; for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(28, is), MAKE_VOLATILE_STRIDE(28, os)) { V Tp, Ty, Tl, TL, Tq, TE, T7, TJ, Ts, TB, Te, TK, Tr, TH, Tn; V To; Tn = LD(&(xi[0]), ivs, &(xi[0])); To = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); Tp = VSUB(Tn, To); Ty = VADD(Tn, To); { V Th, TC, Tk, TD; { V Tf, Tg, Ti, Tj; Tf = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); Tg = LD(&(xi[WS(is, 11)]), ivs, &(xi[WS(is, 1)])); Th = VSUB(Tf, Tg); TC = VADD(Tf, Tg); Ti = LD(&(xi[WS(is, 10)]), ivs, &(xi[0])); Tj = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); Tk = VSUB(Ti, Tj); TD = VADD(Ti, Tj); } Tl = VSUB(Th, Tk); TL = VSUB(TD, TC); Tq = VADD(Th, Tk); TE = VADD(TC, TD); } { V T3, Tz, T6, TA; { V T1, T2, T4, T5; T1 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 9)]), ivs, &(xi[WS(is, 1)])); T3 = VSUB(T1, T2); Tz = VADD(T1, T2); T4 = LD(&(xi[WS(is, 12)]), ivs, &(xi[0])); T5 = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); T6 = VSUB(T4, T5); TA = VADD(T4, T5); } T7 = VSUB(T3, T6); TJ = VSUB(Tz, TA); Ts = VADD(T3, T6); TB = VADD(Tz, TA); } { V Ta, TF, Td, TG; { V T8, T9, Tb, Tc; T8 = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); T9 = LD(&(xi[WS(is, 13)]), ivs, &(xi[WS(is, 1)])); Ta = VSUB(T8, T9); TF = VADD(T8, T9); Tb = LD(&(xi[WS(is, 8)]), ivs, &(xi[0])); Tc = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); Td = VSUB(Tb, Tc); TG = VADD(Tb, Tc); } Te = VSUB(Ta, Td); TK = VSUB(TG, TF); Tr = VADD(Ta, Td); TH = VADD(TF, TG); } { V TR, TS, TU, TV; TR = VADD(Tp, VADD(Ts, VADD(Tq, Tr))); STM2(&(xo[14]), TR, ovs, &(xo[2])); TS = VADD(Ty, VADD(TB, VADD(TE, TH))); STM2(&(xo[0]), TS, ovs, &(xo[0])); { V TT, Tm, Tt, TQ, TP, TW; Tm = VBYI(VFMA(LDK(KP433883739), T7, VFNMS(LDK(KP781831482), Tl, VMUL(LDK(KP974927912), Te)))); Tt = VFMA(LDK(KP623489801), Tq, VFNMS(LDK(KP222520933), Tr, VFNMS(LDK(KP900968867), Ts, Tp))); TT = VADD(Tm, Tt); STM2(&(xo[6]), TT, ovs, &(xo[2])); TU = VSUB(Tt, Tm); STM2(&(xo[22]), TU, ovs, &(xo[2])); TQ = VBYI(VFMA(LDK(KP974927912), TJ, VFMA(LDK(KP433883739), TL, VMUL(LDK(KP781831482), TK)))); TP = VFMA(LDK(KP623489801), TH, VFNMS(LDK(KP900968867), TE, VFNMS(LDK(KP222520933), TB, Ty))); TV = VSUB(TP, TQ); STM2(&(xo[24]), TV, ovs, &(xo[0])); TW = VADD(TP, TQ); STM2(&(xo[4]), TW, ovs, &(xo[0])); STN2(&(xo[4]), TW, TT, ovs); } { V T10, TM, TI, TZ; { V Tu, Tv, TX, TY; Tu = VBYI(VFMA(LDK(KP781831482), T7, VFMA(LDK(KP974927912), Tl, VMUL(LDK(KP433883739), Te)))); Tv = VFMA(LDK(KP623489801), Ts, VFNMS(LDK(KP900968867), Tr, VFNMS(LDK(KP222520933), Tq, Tp))); TX = VADD(Tu, Tv); STM2(&(xo[2]), TX, ovs, &(xo[2])); STN2(&(xo[0]), TS, TX, ovs); TY = VSUB(Tv, Tu); STM2(&(xo[26]), TY, ovs, &(xo[2])); STN2(&(xo[24]), TV, TY, ovs); } TM = VBYI(VFNMS(LDK(KP433883739), TK, VFNMS(LDK(KP974927912), TL, VMUL(LDK(KP781831482), TJ)))); TI = VFMA(LDK(KP623489801), TB, VFNMS(LDK(KP900968867), TH, VFNMS(LDK(KP222520933), TE, Ty))); TZ = VSUB(TI, TM); STM2(&(xo[12]), TZ, ovs, &(xo[0])); STN2(&(xo[12]), TZ, TR, ovs); T10 = VADD(TI, TM); STM2(&(xo[16]), T10, ovs, &(xo[0])); { V T11, TO, TN, T12; TO = VBYI(VFMA(LDK(KP433883739), TJ, VFNMS(LDK(KP974927912), TK, VMUL(LDK(KP781831482), TL)))); TN = VFMA(LDK(KP623489801), TE, VFNMS(LDK(KP222520933), TH, VFNMS(LDK(KP900968867), TB, Ty))); T11 = VSUB(TN, TO); STM2(&(xo[8]), T11, ovs, &(xo[0])); T12 = VADD(TN, TO); STM2(&(xo[20]), T12, ovs, &(xo[0])); STN2(&(xo[20]), T12, TU, ovs); { V Tx, Tw, T13, T14; Tx = VBYI(VFNMS(LDK(KP781831482), Te, VFNMS(LDK(KP433883739), Tl, VMUL(LDK(KP974927912), T7)))); Tw = VFMA(LDK(KP623489801), Tr, VFNMS(LDK(KP900968867), Tq, VFNMS(LDK(KP222520933), Ts, Tp))); T13 = VSUB(Tw, Tx); STM2(&(xo[10]), T13, ovs, &(xo[2])); STN2(&(xo[8]), T11, T13, ovs); T14 = VADD(Tx, Tw); STM2(&(xo[18]), T14, ovs, &(xo[2])); STN2(&(xo[16]), T10, T14, ovs); } } } } } } VLEAVE(); }
static void t2sv_8(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP707106781, +0.707106781186547524400844362104849039284835938); { INT m; for (m = mb, W = W + (mb * 6); m < me; m = m + (2 * VL), ri = ri + ((2 * VL) * ms), ii = ii + ((2 * VL) * ms), W = W + ((2 * VL) * 6), MAKE_VOLATILE_STRIDE(rs)) { V T2, T5, T3, T6, T8, Tc, Tg, Ti, Tl, Tm, Tn, Tz, Tp, Tx; { V T4, Tb, T7, Ta; T2 = LDW(&(W[0])); T5 = LDW(&(W[TWVL * 1])); T3 = LDW(&(W[TWVL * 2])); T6 = LDW(&(W[TWVL * 3])); T4 = VMUL(T2, T3); Tb = VMUL(T5, T3); T7 = VMUL(T5, T6); Ta = VMUL(T2, T6); T8 = VSUB(T4, T7); Tc = VADD(Ta, Tb); Tg = VADD(T4, T7); Ti = VSUB(Ta, Tb); Tl = LDW(&(W[TWVL * 4])); Tm = LDW(&(W[TWVL * 5])); Tn = VFMA(T2, Tl, VMUL(T5, Tm)); Tz = VFNMS(Ti, Tl, VMUL(Tg, Tm)); Tp = VFNMS(T5, Tl, VMUL(T2, Tm)); Tx = VFMA(Tg, Tl, VMUL(Ti, Tm)); } { V Tf, T1i, TL, T1d, TJ, T17, TV, TY, Ts, T1j, TO, T1a, TC, T16, TQ; V TT; { V T1, T1c, Te, T1b, T9, Td; T1 = LD(&(ri[0]), ms, &(ri[0])); T1c = LD(&(ii[0]), ms, &(ii[0])); T9 = LD(&(ri[WS(rs, 4)]), ms, &(ri[0])); Td = LD(&(ii[WS(rs, 4)]), ms, &(ii[0])); Te = VFMA(T8, T9, VMUL(Tc, Td)); T1b = VFNMS(Tc, T9, VMUL(T8, Td)); Tf = VADD(T1, Te); T1i = VSUB(T1c, T1b); TL = VSUB(T1, Te); T1d = VADD(T1b, T1c); } { V TF, TW, TI, TX; { V TD, TE, TG, TH; TD = LD(&(ri[WS(rs, 7)]), ms, &(ri[WS(rs, 1)])); TE = LD(&(ii[WS(rs, 7)]), ms, &(ii[WS(rs, 1)])); TF = VFMA(Tl, TD, VMUL(Tm, TE)); TW = VFNMS(Tm, TD, VMUL(Tl, TE)); TG = LD(&(ri[WS(rs, 3)]), ms, &(ri[WS(rs, 1)])); TH = LD(&(ii[WS(rs, 3)]), ms, &(ii[WS(rs, 1)])); TI = VFMA(T3, TG, VMUL(T6, TH)); TX = VFNMS(T6, TG, VMUL(T3, TH)); } TJ = VADD(TF, TI); T17 = VADD(TW, TX); TV = VSUB(TF, TI); TY = VSUB(TW, TX); } { V Tk, TM, Tr, TN; { V Th, Tj, To, Tq; Th = LD(&(ri[WS(rs, 2)]), ms, &(ri[0])); Tj = LD(&(ii[WS(rs, 2)]), ms, &(ii[0])); Tk = VFMA(Tg, Th, VMUL(Ti, Tj)); TM = VFNMS(Ti, Th, VMUL(Tg, Tj)); To = LD(&(ri[WS(rs, 6)]), ms, &(ri[0])); Tq = LD(&(ii[WS(rs, 6)]), ms, &(ii[0])); Tr = VFMA(Tn, To, VMUL(Tp, Tq)); TN = VFNMS(Tp, To, VMUL(Tn, Tq)); } Ts = VADD(Tk, Tr); T1j = VSUB(Tk, Tr); TO = VSUB(TM, TN); T1a = VADD(TM, TN); } { V Tw, TR, TB, TS; { V Tu, Tv, Ty, TA; Tu = LD(&(ri[WS(rs, 1)]), ms, &(ri[WS(rs, 1)])); Tv = LD(&(ii[WS(rs, 1)]), ms, &(ii[WS(rs, 1)])); Tw = VFMA(T2, Tu, VMUL(T5, Tv)); TR = VFNMS(T5, Tu, VMUL(T2, Tv)); Ty = LD(&(ri[WS(rs, 5)]), ms, &(ri[WS(rs, 1)])); TA = LD(&(ii[WS(rs, 5)]), ms, &(ii[WS(rs, 1)])); TB = VFMA(Tx, Ty, VMUL(Tz, TA)); TS = VFNMS(Tz, Ty, VMUL(Tx, TA)); } TC = VADD(Tw, TB); T16 = VADD(TR, TS); TQ = VSUB(Tw, TB); TT = VSUB(TR, TS); } { V Tt, TK, T1f, T1g; Tt = VADD(Tf, Ts); TK = VADD(TC, TJ); ST(&(ri[WS(rs, 4)]), VSUB(Tt, TK), ms, &(ri[0])); ST(&(ri[0]), VADD(Tt, TK), ms, &(ri[0])); { V T19, T1e, T15, T18; T19 = VADD(T16, T17); T1e = VADD(T1a, T1d); ST(&(ii[0]), VADD(T19, T1e), ms, &(ii[0])); ST(&(ii[WS(rs, 4)]), VSUB(T1e, T19), ms, &(ii[0])); T15 = VSUB(Tf, Ts); T18 = VSUB(T16, T17); ST(&(ri[WS(rs, 6)]), VSUB(T15, T18), ms, &(ri[0])); ST(&(ri[WS(rs, 2)]), VADD(T15, T18), ms, &(ri[0])); } T1f = VSUB(TJ, TC); T1g = VSUB(T1d, T1a); ST(&(ii[WS(rs, 2)]), VADD(T1f, T1g), ms, &(ii[0])); ST(&(ii[WS(rs, 6)]), VSUB(T1g, T1f), ms, &(ii[0])); { V T11, T1k, T14, T1h, T12, T13; T11 = VSUB(TL, TO); T1k = VSUB(T1i, T1j); T12 = VSUB(TT, TQ); T13 = VADD(TV, TY); T14 = VMUL(LDK(KP707106781), VSUB(T12, T13)); T1h = VMUL(LDK(KP707106781), VADD(T12, T13)); ST(&(ri[WS(rs, 7)]), VSUB(T11, T14), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 5)]), VSUB(T1k, T1h), ms, &(ii[WS(rs, 1)])); ST(&(ri[WS(rs, 3)]), VADD(T11, T14), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 1)]), VADD(T1h, T1k), ms, &(ii[WS(rs, 1)])); } { V TP, T1m, T10, T1l, TU, TZ; TP = VADD(TL, TO); T1m = VADD(T1j, T1i); TU = VADD(TQ, TT); TZ = VSUB(TV, TY); T10 = VMUL(LDK(KP707106781), VADD(TU, TZ)); T1l = VMUL(LDK(KP707106781), VSUB(TZ, TU)); ST(&(ri[WS(rs, 5)]), VSUB(TP, T10), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 7)]), VSUB(T1m, T1l), ms, &(ii[WS(rs, 1)])); ST(&(ri[WS(rs, 1)]), VADD(TP, T10), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 3)]), VADD(T1l, T1m), ms, &(ii[WS(rs, 1)])); } } } } } VLEAVE(); }
static void t1bv_15(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP216506350, +0.216506350946109661690930792688234045867850657); DVK(KP484122918, +0.484122918275927110647408174972799951354115213); DVK(KP866025403, +0.866025403784438646763723170752936183471402627); DVK(KP509036960, +0.509036960455127183450980863393907648510733164); DVK(KP823639103, +0.823639103546331925877420039278190003029660514); DVK(KP951056516, +0.951056516295153572116439333379382143405698634); DVK(KP587785252, +0.587785252292473129168705954639072768597652438); DVK(KP250000000, +0.250000000000000000000000000000000000000000000); DVK(KP559016994, +0.559016994374947424102293417182819058860154590); DVK(KP500000000, +0.500000000000000000000000000000000000000000000); { INT m; R *x; x = ii; for (m = mb, W = W + (mb * ((TWVL / VL) * 28)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 28), MAKE_VOLATILE_STRIDE(rs)) { V Ts, TV, T1f, TZ, T10, Tb, Tm, Tt, T1j, T1k, T1l, TI, TM, TR, Tz; V TD, TQ, T1g, T1h, T1i; { V TT, Tr, Tp, Tq, To, TU; TT = LD(&(x[0]), ms, &(x[0])); Tq = LD(&(x[WS(rs, 10)]), ms, &(x[0])); Tr = BYTW(&(W[TWVL * 18]), Tq); To = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); Tp = BYTW(&(W[TWVL * 8]), To); Ts = VSUB(Tp, Tr); TU = VADD(Tp, Tr); TV = VFNMS(LDK(KP500000000), TU, TT); T1f = VADD(TT, TU); } { V Tx, TG, TK, TB, T5, Ty, Tg, TH, Tl, TL, Ta, TC; { V Tw, TF, TJ, TA; Tw = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); Tx = BYTW(&(W[TWVL * 4]), Tw); TF = LD(&(x[WS(rs, 6)]), ms, &(x[0])); TG = BYTW(&(W[TWVL * 10]), TF); TJ = LD(&(x[WS(rs, 9)]), ms, &(x[WS(rs, 1)])); TK = BYTW(&(W[TWVL * 16]), TJ); TA = LD(&(x[WS(rs, 12)]), ms, &(x[0])); TB = BYTW(&(W[TWVL * 22]), TA); } { V T2, T4, T1, T3; T1 = LD(&(x[WS(rs, 8)]), ms, &(x[0])); T2 = BYTW(&(W[TWVL * 14]), T1); T3 = LD(&(x[WS(rs, 13)]), ms, &(x[WS(rs, 1)])); T4 = BYTW(&(W[TWVL * 24]), T3); T5 = VSUB(T2, T4); Ty = VADD(T2, T4); } { V Td, Tf, Tc, Te; Tc = LD(&(x[WS(rs, 11)]), ms, &(x[WS(rs, 1)])); Td = BYTW(&(W[TWVL * 20]), Tc); Te = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); Tf = BYTW(&(W[0]), Te); Tg = VSUB(Td, Tf); TH = VADD(Td, Tf); } { V Ti, Tk, Th, Tj; Th = LD(&(x[WS(rs, 14)]), ms, &(x[0])); Ti = BYTW(&(W[TWVL * 26]), Th); Tj = LD(&(x[WS(rs, 4)]), ms, &(x[0])); Tk = BYTW(&(W[TWVL * 6]), Tj); Tl = VSUB(Ti, Tk); TL = VADD(Ti, Tk); } { V T7, T9, T6, T8; T6 = LD(&(x[WS(rs, 2)]), ms, &(x[0])); T7 = BYTW(&(W[TWVL * 2]), T6); T8 = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); T9 = BYTW(&(W[TWVL * 12]), T8); Ta = VSUB(T7, T9); TC = VADD(T7, T9); } TZ = VSUB(T5, Ta); T10 = VSUB(Tg, Tl); Tb = VADD(T5, Ta); Tm = VADD(Tg, Tl); Tt = VADD(Tb, Tm); T1j = VADD(TG, TH); T1k = VADD(TK, TL); T1l = VADD(T1j, T1k); TI = VFNMS(LDK(KP500000000), TH, TG); TM = VFNMS(LDK(KP500000000), TL, TK); TR = VADD(TI, TM); Tz = VFNMS(LDK(KP500000000), Ty, Tx); TD = VFNMS(LDK(KP500000000), TC, TB); TQ = VADD(Tz, TD); T1g = VADD(Tx, Ty); T1h = VADD(TB, TC); T1i = VADD(T1g, T1h); } { V T1o, T1m, T1n, T1s, T1t, T1q, T1r, T1u, T1p; T1o = VMUL(LDK(KP559016994), VSUB(T1i, T1l)); T1m = VADD(T1i, T1l); T1n = VFNMS(LDK(KP250000000), T1m, T1f); T1q = VSUB(T1g, T1h); T1r = VSUB(T1j, T1k); T1s = VBYI(VFNMS(LDK(KP951056516), T1r, VMUL(LDK(KP587785252), T1q))); T1t = VBYI(VFMA(LDK(KP951056516), T1q, VMUL(LDK(KP587785252), T1r))); ST(&(x[0]), VADD(T1f, T1m), ms, &(x[0])); T1u = VADD(T1o, T1n); ST(&(x[WS(rs, 6)]), VADD(T1t, T1u), ms, &(x[0])); ST(&(x[WS(rs, 9)]), VSUB(T1u, T1t), ms, &(x[WS(rs, 1)])); T1p = VSUB(T1n, T1o); ST(&(x[WS(rs, 3)]), VSUB(T1p, T1s), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 12)]), VADD(T1s, T1p), ms, &(x[0])); } { V T11, T18, T1e, TO, T16, Tv, T15, TY, T1d, T19, TE, TN; T11 = VFMA(LDK(KP823639103), TZ, VMUL(LDK(KP509036960), T10)); T18 = VFNMS(LDK(KP823639103), T10, VMUL(LDK(KP509036960), TZ)); T1e = VBYI(VMUL(LDK(KP866025403), VADD(Ts, Tt))); TE = VSUB(Tz, TD); TN = VSUB(TI, TM); TO = VFMA(LDK(KP951056516), TE, VMUL(LDK(KP587785252), TN)); T16 = VFNMS(LDK(KP951056516), TN, VMUL(LDK(KP587785252), TE)); { V Tn, Tu, TS, TW, TX; Tn = VMUL(LDK(KP484122918), VSUB(Tb, Tm)); Tu = VFNMS(LDK(KP216506350), Tt, VMUL(LDK(KP866025403), Ts)); Tv = VADD(Tn, Tu); T15 = VSUB(Tn, Tu); TS = VMUL(LDK(KP559016994), VSUB(TQ, TR)); TW = VADD(TQ, TR); TX = VFNMS(LDK(KP250000000), TW, TV); TY = VADD(TS, TX); T1d = VADD(TV, TW); T19 = VSUB(TX, TS); } { V TP, T12, T1b, T1c; ST(&(x[WS(rs, 5)]), VSUB(T1d, T1e), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 10)]), VADD(T1e, T1d), ms, &(x[0])); TP = VBYI(VADD(Tv, TO)); T12 = VSUB(TY, T11); ST(&(x[WS(rs, 1)]), VADD(TP, T12), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 14)]), VSUB(T12, TP), ms, &(x[0])); T1b = VBYI(VSUB(T16, T15)); T1c = VSUB(T19, T18); ST(&(x[WS(rs, 7)]), VADD(T1b, T1c), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 8)]), VSUB(T1c, T1b), ms, &(x[0])); { V T17, T1a, T13, T14; T17 = VBYI(VADD(T15, T16)); T1a = VADD(T18, T19); ST(&(x[WS(rs, 2)]), VADD(T17, T1a), ms, &(x[0])); ST(&(x[WS(rs, 13)]), VSUB(T1a, T17), ms, &(x[WS(rs, 1)])); T13 = VBYI(VSUB(Tv, TO)); T14 = VADD(T11, TY); ST(&(x[WS(rs, 4)]), VADD(T13, T14), ms, &(x[0])); ST(&(x[WS(rs, 11)]), VSUB(T14, T13), ms, &(x[WS(rs, 1)])); } } } } } VLEAVE(); }
void SHIP_cell_pos(struct actor_t* a, int i, int j, vec3f pos) { random_ship_t* s = (random_ship_t*)a->child; VMOV3(pos, 1.0f*(i - (s->w >> 1)) , 1.0f*j, 0.0f); VADD(pos, a->pos, pos); }
static const R *t1bv_32(R *ri, R *ii, const R *W, stride ios, int m, int dist) { DVK(KP195090322, +0.195090322016128267848284868477022240927691618); DVK(KP980785280, +0.980785280403230449126182236134239036973933731); DVK(KP555570233, +0.555570233019602224742830813948532874374937191); DVK(KP831469612, +0.831469612302545237078788377617905756738560812); DVK(KP382683432, +0.382683432365089771728459984030398866761344562); DVK(KP923879532, +0.923879532511286756128183189396788286822416626); DVK(KP707106781, +0.707106781186547524400844362104849039284835938); int i; R *x; x = ii; BEGIN_SIMD(); for (i = m; i > 0; i = i - VL, x = x + (VL * dist), W = W + (TWVL * 62)) { V T4, T1D, T2P, T3h, Tf, T1y, T2K, T3i, TC, T1w, T2G, T3e, Tr, T1v, T2D; V T3d, T1k, T20, T2y, T3a, T1r, T21, T2v, T39, TV, T1X, T2r, T37, T12, T1Y; V T2o, T36; { V T1, T1C, T3, T1A, T1B, T2, T1z, T2N, T2O; T1 = LD(&(x[0]), dist, &(x[0])); T1B = LD(&(x[WS(ios, 24)]), dist, &(x[0])); T1C = BYTW(&(W[TWVL * 46]), T1B); T2 = LD(&(x[WS(ios, 16)]), dist, &(x[0])); T3 = BYTW(&(W[TWVL * 30]), T2); T1z = LD(&(x[WS(ios, 8)]), dist, &(x[0])); T1A = BYTW(&(W[TWVL * 14]), T1z); T4 = VSUB(T1, T3); T1D = VSUB(T1A, T1C); T2N = VADD(T1, T3); T2O = VADD(T1A, T1C); T2P = VSUB(T2N, T2O); T3h = VADD(T2N, T2O); } { V T6, Td, T8, Tb; { V T5, Tc, T7, Ta; T5 = LD(&(x[WS(ios, 4)]), dist, &(x[0])); T6 = BYTW(&(W[TWVL * 6]), T5); Tc = LD(&(x[WS(ios, 12)]), dist, &(x[0])); Td = BYTW(&(W[TWVL * 22]), Tc); T7 = LD(&(x[WS(ios, 20)]), dist, &(x[0])); T8 = BYTW(&(W[TWVL * 38]), T7); Ta = LD(&(x[WS(ios, 28)]), dist, &(x[0])); Tb = BYTW(&(W[TWVL * 54]), Ta); } { V T9, Te, T2I, T2J; T9 = VSUB(T6, T8); Te = VSUB(Tb, Td); Tf = VMUL(LDK(KP707106781), VADD(T9, Te)); T1y = VMUL(LDK(KP707106781), VSUB(T9, Te)); T2I = VADD(T6, T8); T2J = VADD(Tb, Td); T2K = VSUB(T2I, T2J); T3i = VADD(T2I, T2J); } } { V Tt, TA, Tv, Ty; { V Ts, Tz, Tu, Tx; Ts = LD(&(x[WS(ios, 6)]), dist, &(x[0])); Tt = BYTW(&(W[TWVL * 10]), Ts); Tz = LD(&(x[WS(ios, 14)]), dist, &(x[0])); TA = BYTW(&(W[TWVL * 26]), Tz); Tu = LD(&(x[WS(ios, 22)]), dist, &(x[0])); Tv = BYTW(&(W[TWVL * 42]), Tu); Tx = LD(&(x[WS(ios, 30)]), dist, &(x[0])); Ty = BYTW(&(W[TWVL * 58]), Tx); } { V Tw, TB, T2E, T2F; Tw = VSUB(Tt, Tv); TB = VSUB(Ty, TA); TC = VFNMS(LDK(KP382683432), TB, VMUL(LDK(KP923879532), Tw)); T1w = VFMA(LDK(KP923879532), TB, VMUL(LDK(KP382683432), Tw)); T2E = VADD(Ty, TA); T2F = VADD(Tt, Tv); T2G = VSUB(T2E, T2F); T3e = VADD(T2E, T2F); } } { V Ti, Tp, Tk, Tn; { V Th, To, Tj, Tm; Th = LD(&(x[WS(ios, 2)]), dist, &(x[0])); Ti = BYTW(&(W[TWVL * 2]), Th); To = LD(&(x[WS(ios, 26)]), dist, &(x[0])); Tp = BYTW(&(W[TWVL * 50]), To); Tj = LD(&(x[WS(ios, 18)]), dist, &(x[0])); Tk = BYTW(&(W[TWVL * 34]), Tj); Tm = LD(&(x[WS(ios, 10)]), dist, &(x[0])); Tn = BYTW(&(W[TWVL * 18]), Tm); } { V Tl, Tq, T2B, T2C; Tl = VSUB(Ti, Tk); Tq = VSUB(Tn, Tp); Tr = VFMA(LDK(KP382683432), Tl, VMUL(LDK(KP923879532), Tq)); T1v = VFNMS(LDK(KP382683432), Tq, VMUL(LDK(KP923879532), Tl)); T2B = VADD(Ti, Tk); T2C = VADD(Tn, Tp); T2D = VSUB(T2B, T2C); T3d = VADD(T2B, T2C); } } { V T1g, T1i, T1o, T1m, T1a, T1c, T1d, T15, T17, T18; { V T1f, T1h, T1n, T1l; T1f = LD(&(x[WS(ios, 7)]), dist, &(x[WS(ios, 1)])); T1g = BYTW(&(W[TWVL * 12]), T1f); T1h = LD(&(x[WS(ios, 23)]), dist, &(x[WS(ios, 1)])); T1i = BYTW(&(W[TWVL * 44]), T1h); T1n = LD(&(x[WS(ios, 15)]), dist, &(x[WS(ios, 1)])); T1o = BYTW(&(W[TWVL * 28]), T1n); T1l = LD(&(x[WS(ios, 31)]), dist, &(x[WS(ios, 1)])); T1m = BYTW(&(W[TWVL * 60]), T1l); { V T19, T1b, T14, T16; T19 = LD(&(x[WS(ios, 27)]), dist, &(x[WS(ios, 1)])); T1a = BYTW(&(W[TWVL * 52]), T19); T1b = LD(&(x[WS(ios, 11)]), dist, &(x[WS(ios, 1)])); T1c = BYTW(&(W[TWVL * 20]), T1b); T1d = VSUB(T1a, T1c); T14 = LD(&(x[WS(ios, 3)]), dist, &(x[WS(ios, 1)])); T15 = BYTW(&(W[TWVL * 4]), T14); T16 = LD(&(x[WS(ios, 19)]), dist, &(x[WS(ios, 1)])); T17 = BYTW(&(W[TWVL * 36]), T16); T18 = VSUB(T15, T17); } } { V T1e, T1j, T2w, T2x; T1e = VMUL(LDK(KP707106781), VSUB(T18, T1d)); T1j = VSUB(T1g, T1i); T1k = VSUB(T1e, T1j); T20 = VADD(T1j, T1e); T2w = VADD(T15, T17); T2x = VADD(T1a, T1c); T2y = VSUB(T2w, T2x); T3a = VADD(T2w, T2x); } { V T1p, T1q, T2t, T2u; T1p = VSUB(T1m, T1o); T1q = VMUL(LDK(KP707106781), VADD(T18, T1d)); T1r = VSUB(T1p, T1q); T21 = VADD(T1p, T1q); T2t = VADD(T1m, T1o); T2u = VADD(T1g, T1i); T2v = VSUB(T2t, T2u); T39 = VADD(T2t, T2u); } } { V TR, TT, TZ, TX, TL, TN, TO, TG, TI, TJ; { V TQ, TS, TY, TW; TQ = LD(&(x[WS(ios, 9)]), dist, &(x[WS(ios, 1)])); TR = BYTW(&(W[TWVL * 16]), TQ); TS = LD(&(x[WS(ios, 25)]), dist, &(x[WS(ios, 1)])); TT = BYTW(&(W[TWVL * 48]), TS); TY = LD(&(x[WS(ios, 17)]), dist, &(x[WS(ios, 1)])); TZ = BYTW(&(W[TWVL * 32]), TY); TW = LD(&(x[WS(ios, 1)]), dist, &(x[WS(ios, 1)])); TX = BYTW(&(W[0]), TW); { V TK, TM, TF, TH; TK = LD(&(x[WS(ios, 29)]), dist, &(x[WS(ios, 1)])); TL = BYTW(&(W[TWVL * 56]), TK); TM = LD(&(x[WS(ios, 13)]), dist, &(x[WS(ios, 1)])); TN = BYTW(&(W[TWVL * 24]), TM); TO = VSUB(TL, TN); TF = LD(&(x[WS(ios, 5)]), dist, &(x[WS(ios, 1)])); TG = BYTW(&(W[TWVL * 8]), TF); TH = LD(&(x[WS(ios, 21)]), dist, &(x[WS(ios, 1)])); TI = BYTW(&(W[TWVL * 40]), TH); TJ = VSUB(TG, TI); } } { V TP, TU, T2p, T2q; TP = VMUL(LDK(KP707106781), VSUB(TJ, TO)); TU = VSUB(TR, TT); TV = VSUB(TP, TU); T1X = VADD(TU, TP); T2p = VADD(TG, TI); T2q = VADD(TL, TN); T2r = VSUB(T2p, T2q); T37 = VADD(T2p, T2q); } { V T10, T11, T2m, T2n; T10 = VSUB(TX, TZ); T11 = VMUL(LDK(KP707106781), VADD(TJ, TO)); T12 = VSUB(T10, T11); T1Y = VADD(T10, T11); T2m = VADD(TX, TZ); T2n = VADD(TR, TT); T2o = VSUB(T2m, T2n); T36 = VADD(T2m, T2n); } } { V T3q, T3u, T3t, T3v; { V T3o, T3p, T3r, T3s; T3o = VADD(T3h, T3i); T3p = VADD(T3d, T3e); T3q = VSUB(T3o, T3p); T3u = VADD(T3o, T3p); T3r = VADD(T36, T37); T3s = VADD(T39, T3a); T3t = VBYI(VSUB(T3r, T3s)); T3v = VADD(T3r, T3s); } ST(&(x[WS(ios, 24)]), VSUB(T3q, T3t), dist, &(x[0])); ST(&(x[0]), VADD(T3u, T3v), dist, &(x[0])); ST(&(x[WS(ios, 8)]), VADD(T3q, T3t), dist, &(x[0])); ST(&(x[WS(ios, 16)]), VSUB(T3u, T3v), dist, &(x[0])); } { V T3f, T3j, T3c, T3k, T38, T3b; T3f = VSUB(T3d, T3e); T3j = VSUB(T3h, T3i); T38 = VSUB(T36, T37); T3b = VSUB(T39, T3a); T3c = VMUL(LDK(KP707106781), VSUB(T38, T3b)); T3k = VMUL(LDK(KP707106781), VADD(T38, T3b)); { V T3g, T3l, T3m, T3n; T3g = VBYI(VSUB(T3c, T3f)); T3l = VSUB(T3j, T3k); ST(&(x[WS(ios, 12)]), VADD(T3g, T3l), dist, &(x[0])); ST(&(x[WS(ios, 20)]), VSUB(T3l, T3g), dist, &(x[0])); T3m = VBYI(VADD(T3f, T3c)); T3n = VADD(T3j, T3k); ST(&(x[WS(ios, 4)]), VADD(T3m, T3n), dist, &(x[0])); ST(&(x[WS(ios, 28)]), VSUB(T3n, T3m), dist, &(x[0])); } } { V T2L, T31, T2R, T2Y, T2A, T2Z, T2U, T32, T2H, T2Q; T2H = VMUL(LDK(KP707106781), VSUB(T2D, T2G)); T2L = VSUB(T2H, T2K); T31 = VADD(T2K, T2H); T2Q = VMUL(LDK(KP707106781), VADD(T2D, T2G)); T2R = VSUB(T2P, T2Q); T2Y = VADD(T2P, T2Q); { V T2s, T2z, T2S, T2T; T2s = VFNMS(LDK(KP382683432), T2r, VMUL(LDK(KP923879532), T2o)); T2z = VFMA(LDK(KP923879532), T2v, VMUL(LDK(KP382683432), T2y)); T2A = VSUB(T2s, T2z); T2Z = VADD(T2s, T2z); T2S = VFMA(LDK(KP382683432), T2o, VMUL(LDK(KP923879532), T2r)); T2T = VFNMS(LDK(KP382683432), T2v, VMUL(LDK(KP923879532), T2y)); T2U = VSUB(T2S, T2T); T32 = VADD(T2S, T2T); } { V T2M, T2V, T34, T35; T2M = VBYI(VSUB(T2A, T2L)); T2V = VSUB(T2R, T2U); ST(&(x[WS(ios, 10)]), VADD(T2M, T2V), dist, &(x[0])); ST(&(x[WS(ios, 22)]), VSUB(T2V, T2M), dist, &(x[0])); T34 = VSUB(T2Y, T2Z); T35 = VBYI(VSUB(T32, T31)); ST(&(x[WS(ios, 18)]), VSUB(T34, T35), dist, &(x[0])); ST(&(x[WS(ios, 14)]), VADD(T34, T35), dist, &(x[0])); } { V T2W, T2X, T30, T33; T2W = VBYI(VADD(T2L, T2A)); T2X = VADD(T2R, T2U); ST(&(x[WS(ios, 6)]), VADD(T2W, T2X), dist, &(x[0])); ST(&(x[WS(ios, 26)]), VSUB(T2X, T2W), dist, &(x[0])); T30 = VADD(T2Y, T2Z); T33 = VBYI(VADD(T31, T32)); ST(&(x[WS(ios, 30)]), VSUB(T30, T33), dist, &(x[0])); ST(&(x[WS(ios, 2)]), VADD(T30, T33), dist, &(x[0])); } } { V TE, T1P, T1I, T1Q, T1t, T1M, T1F, T1N; { V Tg, TD, T1G, T1H; Tg = VSUB(T4, Tf); TD = VSUB(Tr, TC); TE = VSUB(Tg, TD); T1P = VADD(Tg, TD); T1G = VFNMS(LDK(KP555570233), TV, VMUL(LDK(KP831469612), T12)); T1H = VFMA(LDK(KP555570233), T1k, VMUL(LDK(KP831469612), T1r)); T1I = VSUB(T1G, T1H); T1Q = VADD(T1G, T1H); } { V T13, T1s, T1x, T1E; T13 = VFMA(LDK(KP831469612), TV, VMUL(LDK(KP555570233), T12)); T1s = VFNMS(LDK(KP555570233), T1r, VMUL(LDK(KP831469612), T1k)); T1t = VSUB(T13, T1s); T1M = VADD(T13, T1s); T1x = VSUB(T1v, T1w); T1E = VSUB(T1y, T1D); T1F = VSUB(T1x, T1E); T1N = VADD(T1E, T1x); } { V T1u, T1J, T1S, T1T; T1u = VADD(TE, T1t); T1J = VBYI(VADD(T1F, T1I)); ST(&(x[WS(ios, 27)]), VSUB(T1u, T1J), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 5)]), VADD(T1u, T1J), dist, &(x[WS(ios, 1)])); T1S = VBYI(VADD(T1N, T1M)); T1T = VADD(T1P, T1Q); ST(&(x[WS(ios, 3)]), VADD(T1S, T1T), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 29)]), VSUB(T1T, T1S), dist, &(x[WS(ios, 1)])); } { V T1K, T1L, T1O, T1R; T1K = VSUB(TE, T1t); T1L = VBYI(VSUB(T1I, T1F)); ST(&(x[WS(ios, 21)]), VSUB(T1K, T1L), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 11)]), VADD(T1K, T1L), dist, &(x[WS(ios, 1)])); T1O = VBYI(VSUB(T1M, T1N)); T1R = VSUB(T1P, T1Q); ST(&(x[WS(ios, 13)]), VADD(T1O, T1R), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 19)]), VSUB(T1R, T1O), dist, &(x[WS(ios, 1)])); } } { V T1W, T2h, T2a, T2i, T23, T2e, T27, T2f; { V T1U, T1V, T28, T29; T1U = VADD(T4, Tf); T1V = VADD(T1v, T1w); T1W = VSUB(T1U, T1V); T2h = VADD(T1U, T1V); T28 = VFNMS(LDK(KP195090322), T1X, VMUL(LDK(KP980785280), T1Y)); T29 = VFMA(LDK(KP195090322), T20, VMUL(LDK(KP980785280), T21)); T2a = VSUB(T28, T29); T2i = VADD(T28, T29); } { V T1Z, T22, T25, T26; T1Z = VFMA(LDK(KP980785280), T1X, VMUL(LDK(KP195090322), T1Y)); T22 = VFNMS(LDK(KP195090322), T21, VMUL(LDK(KP980785280), T20)); T23 = VSUB(T1Z, T22); T2e = VADD(T1Z, T22); T25 = VADD(Tr, TC); T26 = VADD(T1D, T1y); T27 = VSUB(T25, T26); T2f = VADD(T26, T25); } { V T24, T2b, T2k, T2l; T24 = VADD(T1W, T23); T2b = VBYI(VADD(T27, T2a)); ST(&(x[WS(ios, 25)]), VSUB(T24, T2b), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 7)]), VADD(T24, T2b), dist, &(x[WS(ios, 1)])); T2k = VBYI(VADD(T2f, T2e)); T2l = VADD(T2h, T2i); ST(&(x[WS(ios, 1)]), VADD(T2k, T2l), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 31)]), VSUB(T2l, T2k), dist, &(x[WS(ios, 1)])); } { V T2c, T2d, T2g, T2j; T2c = VSUB(T1W, T23); T2d = VBYI(VSUB(T2a, T27)); ST(&(x[WS(ios, 23)]), VSUB(T2c, T2d), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 9)]), VADD(T2c, T2d), dist, &(x[WS(ios, 1)])); T2g = VBYI(VSUB(T2e, T2f)); T2j = VSUB(T2h, T2i); ST(&(x[WS(ios, 15)]), VADD(T2g, T2j), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 17)]), VSUB(T2j, T2g), dist, &(x[WS(ios, 1)])); } } } END_SIMD(); return W; }
static void n1fv_9(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP939692620, +0.939692620785908384054109277324731469936208134); DVK(KP826351822, +0.826351822333069651148283373230685203999624323); DVK(KP879385241, +0.879385241571816768108218554649462939872416269); DVK(KP984807753, +0.984807753012208059366743024589523013670643252); DVK(KP666666666, +0.666666666666666666666666666666666666666666667); DVK(KP852868531, +0.852868531952443209628250963940074071936020296); DVK(KP907603734, +0.907603734547952313649323976213898122064543220); DVK(KP420276625, +0.420276625461206169731530603237061658838781920); DVK(KP673648177, +0.673648177666930348851716626769314796000375677); DVK(KP898197570, +0.898197570222573798468955502359086394667167570); DVK(KP347296355, +0.347296355333860697703433253538629592000751354); DVK(KP866025403, +0.866025403784438646763723170752936183471402627); DVK(KP439692620, +0.439692620785908384054109277324731469936208134); DVK(KP203604859, +0.203604859554852403062088995281827210665664861); DVK(KP152703644, +0.152703644666139302296566746461370407999248646); DVK(KP586256827, +0.586256827714544512072145703099641959914944179); DVK(KP968908795, +0.968908795874236621082202410917456709164223497); DVK(KP726681596, +0.726681596905677465811651808188092531873167623); DVK(KP500000000, +0.500000000000000000000000000000000000000000000); { INT i; const R *xi; R *xo; xi = ri; xo = ro; for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(18, is), MAKE_VOLATILE_STRIDE(18, os)) { V T1, T2, T3, T6, Tb, T7, T8, Tc, Td, Tv, T4; T1 = LD(&(xi[0]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T3 = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); T6 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); Tb = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T7 = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); T8 = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); Tc = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); Td = LD(&(xi[WS(is, 8)]), ivs, &(xi[0])); Tv = VSUB(T3, T2); T4 = VADD(T2, T3); { V Tl, T9, Tm, Te, Tj, T5; Tl = VSUB(T7, T8); T9 = VADD(T7, T8); Tm = VSUB(Td, Tc); Te = VADD(Tc, Td); Tj = VFNMS(LDK(KP500000000), T4, T1); T5 = VADD(T1, T4); { V Tn, Ta, Tk, Tf; Tn = VFNMS(LDK(KP500000000), T9, T6); Ta = VADD(T6, T9); Tk = VFNMS(LDK(KP500000000), Te, Tb); Tf = VADD(Tb, Te); { V Ty, TC, To, TB, Tx, Ts, Tg, Ti; Ty = VFNMS(LDK(KP726681596), Tl, Tn); TC = VFMA(LDK(KP968908795), Tn, Tl); To = VFNMS(LDK(KP586256827), Tn, Tm); TB = VFNMS(LDK(KP152703644), Tm, Tk); Tx = VFMA(LDK(KP203604859), Tk, Tm); Ts = VFNMS(LDK(KP439692620), Tl, Tk); Tg = VADD(Ta, Tf); Ti = VMUL(LDK(KP866025403), VSUB(Tf, Ta)); { V Tz, TI, TF, TD, Tt, Th, Tq, Tp; Tp = VFNMS(LDK(KP347296355), To, Tl); Tz = VFMA(LDK(KP898197570), Ty, Tx); TI = VFNMS(LDK(KP898197570), Ty, Tx); TF = VFNMS(LDK(KP673648177), TC, TB); TD = VFMA(LDK(KP673648177), TC, TB); Tt = VFNMS(LDK(KP420276625), Ts, Tm); ST(&(xo[0]), VADD(T5, Tg), ovs, &(xo[0])); Th = VFNMS(LDK(KP500000000), Tg, T5); Tq = VFNMS(LDK(KP907603734), Tp, Tk); { V TA, TJ, TE, TG, Tu, Tr, TK, TH, Tw; TA = VFMA(LDK(KP852868531), Tz, Tj); TJ = VFMA(LDK(KP666666666), TD, TI); TE = VMUL(LDK(KP984807753), VFNMS(LDK(KP879385241), Tv, TD)); TG = VFNMS(LDK(KP500000000), Tz, TF); Tu = VFNMS(LDK(KP826351822), Tt, Tn); ST(&(xo[WS(os, 6)]), VFNMSI(Ti, Th), ovs, &(xo[0])); ST(&(xo[WS(os, 3)]), VFMAI(Ti, Th), ovs, &(xo[WS(os, 1)])); Tr = VFNMS(LDK(KP939692620), Tq, Tj); TK = VMUL(LDK(KP866025403), VFMA(LDK(KP852868531), TJ, Tv)); ST(&(xo[WS(os, 8)]), VFMAI(TE, TA), ovs, &(xo[0])); ST(&(xo[WS(os, 1)]), VFNMSI(TE, TA), ovs, &(xo[WS(os, 1)])); TH = VFMA(LDK(KP852868531), TG, Tj); Tw = VMUL(LDK(KP984807753), VFMA(LDK(KP879385241), Tv, Tu)); ST(&(xo[WS(os, 4)]), VFMAI(TK, TH), ovs, &(xo[0])); ST(&(xo[WS(os, 5)]), VFNMSI(TK, TH), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 7)]), VFMAI(Tw, Tr), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 2)]), VFNMSI(Tw, Tr), ovs, &(xo[0])); } } } } } } } VLEAVE(); }
static void n1bv_11(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, int v, int ivs, int ovs) { DVK(KP959492973, +0.959492973614497389890368057066327699062454848); DVK(KP654860733, +0.654860733945285064056925072466293553183791199); DVK(KP142314838, +0.142314838273285140443792668616369668791051361); DVK(KP415415013, +0.415415013001886425529274149229623203524004910); DVK(KP841253532, +0.841253532831181168861811648919367717513292498); DVK(KP540640817, +0.540640817455597582107635954318691695431770608); DVK(KP909631995, +0.909631995354518371411715383079028460060241051); DVK(KP989821441, +0.989821441880932732376092037776718787376519372); DVK(KP755749574, +0.755749574354258283774035843972344420179717445); DVK(KP281732556, +0.281732556841429697711417915346616899035777899); int i; const R *xi; R *xo; xi = ii; xo = io; BEGIN_SIMD(); for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs)) { V Th, T3, Tm, Tf, Ti, Tc, Tj, T9, Tk, T6, Tl, Ta, Tb, Ts, Tt; Th = LD(&(xi[0]), ivs, &(xi[0])); { V T1, T2, Td, Te; T1 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T2 = LD(&(xi[WS(is, 10)]), ivs, &(xi[0])); T3 = VSUB(T1, T2); Tm = VADD(T1, T2); Td = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); Te = LD(&(xi[WS(is, 9)]), ivs, &(xi[WS(is, 1)])); Tf = VSUB(Td, Te); Ti = VADD(Td, Te); } Ta = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); Tb = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); Tc = VSUB(Ta, Tb); Tj = VADD(Ta, Tb); { V T7, T8, T4, T5; T7 = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); T8 = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); T9 = VSUB(T7, T8); Tk = VADD(T7, T8); T4 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T5 = LD(&(xi[WS(is, 8)]), ivs, &(xi[0])); T6 = VSUB(T4, T5); Tl = VADD(T4, T5); } ST(&(xo[0]), VADD(Th, VADD(Tm, VADD(Ti, VADD(Tl, VADD(Tj, Tk))))), ovs, &(xo[0])); { V Tg, Tn, Tu, Tv; Tg = VBYI(VFMA(LDK(KP281732556), T3, VFMA(LDK(KP755749574), T6, VFNMS(LDK(KP909631995), Tc, VFNMS(LDK(KP540640817), Tf, VMUL(LDK(KP989821441), T9)))))); Tn = VFMA(LDK(KP841253532), Ti, VFMA(LDK(KP415415013), Tj, VFNMS(LDK(KP142314838), Tk, VFNMS(LDK(KP654860733), Tl, VFNMS(LDK(KP959492973), Tm, Th))))); ST(&(xo[WS(os, 5)]), VADD(Tg, Tn), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 6)]), VSUB(Tn, Tg), ovs, &(xo[0])); Tu = VBYI(VFMA(LDK(KP755749574), T3, VFMA(LDK(KP540640817), T6, VFNMS(LDK(KP909631995), T9, VFNMS(LDK(KP989821441), Tf, VMUL(LDK(KP281732556), Tc)))))); Tv = VFMA(LDK(KP841253532), Tl, VFMA(LDK(KP415415013), Tk, VFNMS(LDK(KP959492973), Tj, VFNMS(LDK(KP142314838), Ti, VFNMS(LDK(KP654860733), Tm, Th))))); ST(&(xo[WS(os, 4)]), VADD(Tu, Tv), ovs, &(xo[0])); ST(&(xo[WS(os, 7)]), VSUB(Tv, Tu), ovs, &(xo[WS(os, 1)])); } Ts = VBYI(VFMA(LDK(KP909631995), T3, VFNMS(LDK(KP540640817), T9, VFNMS(LDK(KP989821441), Tc, VFNMS(LDK(KP281732556), T6, VMUL(LDK(KP755749574), Tf)))))); Tt = VFMA(LDK(KP415415013), Tm, VFMA(LDK(KP841253532), Tk, VFNMS(LDK(KP142314838), Tj, VFNMS(LDK(KP959492973), Tl, VFNMS(LDK(KP654860733), Ti, Th))))); ST(&(xo[WS(os, 2)]), VADD(Ts, Tt), ovs, &(xo[0])); ST(&(xo[WS(os, 9)]), VSUB(Tt, Ts), ovs, &(xo[WS(os, 1)])); { V Tq, Tr, To, Tp; Tq = VBYI(VFMA(LDK(KP540640817), T3, VFMA(LDK(KP909631995), Tf, VFMA(LDK(KP989821441), T6, VFMA(LDK(KP755749574), Tc, VMUL(LDK(KP281732556), T9)))))); Tr = VFMA(LDK(KP841253532), Tm, VFMA(LDK(KP415415013), Ti, VFNMS(LDK(KP959492973), Tk, VFNMS(LDK(KP654860733), Tj, VFNMS(LDK(KP142314838), Tl, Th))))); ST(&(xo[WS(os, 1)]), VADD(Tq, Tr), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 10)]), VSUB(Tr, Tq), ovs, &(xo[0])); To = VBYI(VFMA(LDK(KP989821441), T3, VFMA(LDK(KP540640817), Tc, VFNMS(LDK(KP909631995), T6, VFNMS(LDK(KP281732556), Tf, VMUL(LDK(KP755749574), T9)))))); Tp = VFMA(LDK(KP415415013), Tl, VFMA(LDK(KP841253532), Tj, VFNMS(LDK(KP654860733), Tk, VFNMS(LDK(KP959492973), Ti, VFNMS(LDK(KP142314838), Tm, Th))))); ST(&(xo[WS(os, 3)]), VADD(To, Tp), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 8)]), VSUB(Tp, To), ovs, &(xo[0])); } } END_SIMD(); }
static void n1fv_9(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP342020143, +0.342020143325668733044099614682259580763083368); DVK(KP813797681, +0.813797681349373692844693217248393223289101568); DVK(KP939692620, +0.939692620785908384054109277324731469936208134); DVK(KP296198132, +0.296198132726023843175338011893050938967728390); DVK(KP642787609, +0.642787609686539326322643409907263432907559884); DVK(KP663413948, +0.663413948168938396205421319635891297216863310); DVK(KP556670399, +0.556670399226419366452912952047023132968291906); DVK(KP766044443, +0.766044443118978035202392650555416673935832457); DVK(KP984807753, +0.984807753012208059366743024589523013670643252); DVK(KP150383733, +0.150383733180435296639271897612501926072238258); DVK(KP852868531, +0.852868531952443209628250963940074071936020296); DVK(KP173648177, +0.173648177666930348851716626769314796000375677); DVK(KP500000000, +0.500000000000000000000000000000000000000000000); DVK(KP866025403, +0.866025403784438646763723170752936183471402627); { INT i; const R *xi; R *xo; xi = ri; xo = ro; for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(18, is), MAKE_VOLATILE_STRIDE(18, os)) { V T5, Ts, Tj, To, Tf, Tn, Tp, Tu, Tl, Ta, Tk, Tm, Tt; { V T1, T2, T3, T4; T1 = LD(&(xi[0]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T3 = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); T4 = VADD(T2, T3); T5 = VADD(T1, T4); Ts = VMUL(LDK(KP866025403), VSUB(T3, T2)); Tj = VFNMS(LDK(KP500000000), T4, T1); } { V Tb, Te, Tc, Td; Tb = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); Tc = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); Td = LD(&(xi[WS(is, 8)]), ivs, &(xi[0])); Te = VADD(Tc, Td); To = VSUB(Td, Tc); Tf = VADD(Tb, Te); Tn = VFNMS(LDK(KP500000000), Te, Tb); Tp = VFMA(LDK(KP173648177), Tn, VMUL(LDK(KP852868531), To)); Tu = VFNMS(LDK(KP984807753), Tn, VMUL(LDK(KP150383733), To)); } { V T6, T9, T7, T8; T6 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T7 = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); T8 = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); T9 = VADD(T7, T8); Tl = VSUB(T8, T7); Ta = VADD(T6, T9); Tk = VFNMS(LDK(KP500000000), T9, T6); Tm = VFMA(LDK(KP766044443), Tk, VMUL(LDK(KP556670399), Tl)); Tt = VFNMS(LDK(KP642787609), Tk, VMUL(LDK(KP663413948), Tl)); } { V Ti, Tg, Th, Tz, TA; Ti = VBYI(VMUL(LDK(KP866025403), VSUB(Tf, Ta))); Tg = VADD(Ta, Tf); Th = VFNMS(LDK(KP500000000), Tg, T5); ST(&(xo[0]), VADD(T5, Tg), ovs, &(xo[0])); ST(&(xo[WS(os, 3)]), VADD(Th, Ti), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 6)]), VSUB(Th, Ti), ovs, &(xo[0])); Tz = VFMA(LDK(KP173648177), Tk, VFNMS(LDK(KP296198132), To, VFNMS(LDK(KP939692620), Tn, VFNMS(LDK(KP852868531), Tl, Tj)))); TA = VBYI(VSUB(VFNMS(LDK(KP342020143), Tn, VFNMS(LDK(KP150383733), Tl, VFNMS(LDK(KP984807753), Tk, VMUL(LDK(KP813797681), To)))), Ts)); ST(&(xo[WS(os, 7)]), VSUB(Tz, TA), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 2)]), VADD(Tz, TA), ovs, &(xo[0])); { V Tr, Tx, Tw, Ty, Tq, Tv; Tq = VADD(Tm, Tp); Tr = VADD(Tj, Tq); Tx = VFMA(LDK(KP866025403), VSUB(Tt, Tu), VFNMS(LDK(KP500000000), Tq, Tj)); Tv = VADD(Tt, Tu); Tw = VBYI(VADD(Ts, Tv)); Ty = VBYI(VADD(Ts, VFNMS(LDK(KP500000000), Tv, VMUL(LDK(KP866025403), VSUB(Tp, Tm))))); ST(&(xo[WS(os, 8)]), VSUB(Tr, Tw), ovs, &(xo[0])); ST(&(xo[WS(os, 4)]), VADD(Tx, Ty), ovs, &(xo[0])); ST(&(xo[WS(os, 1)]), VADD(Tw, Tr), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 5)]), VSUB(Tx, Ty), ovs, &(xo[WS(os, 1)])); } } } } VLEAVE(); }
static void n2sv_8(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP707106781, +0.707106781186547524400844362104849039284835938); { INT i; for (i = v; i > 0; i = i - (2 * VL), ri = ri + ((2 * VL) * ivs), ii = ii + ((2 * VL) * ivs), ro = ro + ((2 * VL) * ovs), io = io + ((2 * VL) * ovs), MAKE_VOLATILE_STRIDE(32, is), MAKE_VOLATILE_STRIDE(32, os)) { V T3, Tn, Ti, TC, T6, TB, Tl, To, Td, TN, Tz, TH, Ta, TM, Tu; V TG; { V T1, T2, Tj, Tk; T1 = LD(&(ri[0]), ivs, &(ri[0])); T2 = LD(&(ri[WS(is, 4)]), ivs, &(ri[0])); T3 = VADD(T1, T2); Tn = VSUB(T1, T2); { V Tg, Th, T4, T5; Tg = LD(&(ii[0]), ivs, &(ii[0])); Th = LD(&(ii[WS(is, 4)]), ivs, &(ii[0])); Ti = VADD(Tg, Th); TC = VSUB(Tg, Th); T4 = LD(&(ri[WS(is, 2)]), ivs, &(ri[0])); T5 = LD(&(ri[WS(is, 6)]), ivs, &(ri[0])); T6 = VADD(T4, T5); TB = VSUB(T4, T5); } Tj = LD(&(ii[WS(is, 2)]), ivs, &(ii[0])); Tk = LD(&(ii[WS(is, 6)]), ivs, &(ii[0])); Tl = VADD(Tj, Tk); To = VSUB(Tj, Tk); { V Tb, Tc, Tv, Tw, Tx, Ty; Tb = LD(&(ri[WS(is, 7)]), ivs, &(ri[WS(is, 1)])); Tc = LD(&(ri[WS(is, 3)]), ivs, &(ri[WS(is, 1)])); Tv = VSUB(Tb, Tc); Tw = LD(&(ii[WS(is, 7)]), ivs, &(ii[WS(is, 1)])); Tx = LD(&(ii[WS(is, 3)]), ivs, &(ii[WS(is, 1)])); Ty = VSUB(Tw, Tx); Td = VADD(Tb, Tc); TN = VADD(Tw, Tx); Tz = VSUB(Tv, Ty); TH = VADD(Tv, Ty); } { V T8, T9, Tq, Tr, Ts, Tt; T8 = LD(&(ri[WS(is, 1)]), ivs, &(ri[WS(is, 1)])); T9 = LD(&(ri[WS(is, 5)]), ivs, &(ri[WS(is, 1)])); Tq = VSUB(T8, T9); Tr = LD(&(ii[WS(is, 1)]), ivs, &(ii[WS(is, 1)])); Ts = LD(&(ii[WS(is, 5)]), ivs, &(ii[WS(is, 1)])); Tt = VSUB(Tr, Ts); Ta = VADD(T8, T9); TM = VADD(Tr, Ts); Tu = VADD(Tq, Tt); TG = VSUB(Tt, Tq); } } { V TR, TS, TT, TU, TV, TW, TX, TY; { V T7, Te, TP, TQ; T7 = VADD(T3, T6); Te = VADD(Ta, Td); TR = VSUB(T7, Te); STM4(&(ro[4]), TR, ovs, &(ro[0])); TS = VADD(T7, Te); STM4(&(ro[0]), TS, ovs, &(ro[0])); TP = VADD(Ti, Tl); TQ = VADD(TM, TN); TT = VSUB(TP, TQ); STM4(&(io[4]), TT, ovs, &(io[0])); TU = VADD(TP, TQ); STM4(&(io[0]), TU, ovs, &(io[0])); } { V Tf, Tm, TL, TO; Tf = VSUB(Td, Ta); Tm = VSUB(Ti, Tl); TV = VADD(Tf, Tm); STM4(&(io[2]), TV, ovs, &(io[0])); TW = VSUB(Tm, Tf); STM4(&(io[6]), TW, ovs, &(io[0])); TL = VSUB(T3, T6); TO = VSUB(TM, TN); TX = VSUB(TL, TO); STM4(&(ro[6]), TX, ovs, &(ro[0])); TY = VADD(TL, TO); STM4(&(ro[2]), TY, ovs, &(ro[0])); } { V TZ, T10, T11, T12; { V Tp, TA, TJ, TK; Tp = VADD(Tn, To); TA = VADD(Tu, Tz); TZ = VFNMS(LDK(KP707106781), TA, Tp); STM4(&(ro[5]), TZ, ovs, &(ro[1])); T10 = VFMA(LDK(KP707106781), TA, Tp); STM4(&(ro[1]), T10, ovs, &(ro[1])); TJ = VSUB(TC, TB); TK = VADD(TG, TH); T11 = VFNMS(LDK(KP707106781), TK, TJ); STM4(&(io[5]), T11, ovs, &(io[1])); T12 = VFMA(LDK(KP707106781), TK, TJ); STM4(&(io[1]), T12, ovs, &(io[1])); } { V TD, TE, T13, T14; TD = VADD(TB, TC); TE = VSUB(Tz, Tu); T13 = VFNMS(LDK(KP707106781), TE, TD); STM4(&(io[7]), T13, ovs, &(io[1])); STN4(&(io[4]), TT, T11, TW, T13, ovs); T14 = VFMA(LDK(KP707106781), TE, TD); STM4(&(io[3]), T14, ovs, &(io[1])); STN4(&(io[0]), TU, T12, TV, T14, ovs); } { V TF, TI, T15, T16; TF = VSUB(Tn, To); TI = VSUB(TG, TH); T15 = VFNMS(LDK(KP707106781), TI, TF); STM4(&(ro[7]), T15, ovs, &(ro[1])); STN4(&(ro[4]), TR, TZ, TX, T15, ovs); T16 = VFMA(LDK(KP707106781), TI, TF); STM4(&(ro[3]), T16, ovs, &(ro[1])); STN4(&(ro[0]), TS, T10, TY, T16, ovs); } } } } } VLEAVE(); }
static void t1fv_20(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP559016994, +0.559016994374947424102293417182819058860154590); DVK(KP618033988, +0.618033988749894848204586834365638117720309180); DVK(KP951056516, +0.951056516295153572116439333379382143405698634); DVK(KP250000000, +0.250000000000000000000000000000000000000000000); { INT m; R *x; x = ri; for (m = mb, W = W + (mb * ((TWVL / VL) * 38)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 38), MAKE_VOLATILE_STRIDE(20, rs)) { V T4, Tx, T1m, T1K, TZ, T16, T17, T10, Tf, Tq, Tr, T1O, T1P, T1Q, T1w; V T1z, T1A, TI, TT, TU, T1L, T1M, T1N, T1p, T1s, T1t, Ts, TV; { V T1, Tw, T3, Tu, Tv, T2, Tt, T1k, T1l; T1 = LD(&(x[0]), ms, &(x[0])); Tv = LD(&(x[WS(rs, 15)]), ms, &(x[WS(rs, 1)])); Tw = BYTWJ(&(W[TWVL * 28]), Tv); T2 = LD(&(x[WS(rs, 10)]), ms, &(x[0])); T3 = BYTWJ(&(W[TWVL * 18]), T2); Tt = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); Tu = BYTWJ(&(W[TWVL * 8]), Tt); T4 = VSUB(T1, T3); Tx = VSUB(Tu, Tw); T1k = VADD(T1, T3); T1l = VADD(Tu, Tw); T1m = VSUB(T1k, T1l); T1K = VADD(T1k, T1l); } { V T9, T1n, TN, T1v, TS, T1y, Te, T1q, Tk, T1u, TC, T1o, TH, T1r, Tp; V T1x; { V T6, T8, T5, T7; T5 = LD(&(x[WS(rs, 4)]), ms, &(x[0])); T6 = BYTWJ(&(W[TWVL * 6]), T5); T7 = LD(&(x[WS(rs, 14)]), ms, &(x[0])); T8 = BYTWJ(&(W[TWVL * 26]), T7); T9 = VSUB(T6, T8); T1n = VADD(T6, T8); } { V TK, TM, TJ, TL; TJ = LD(&(x[WS(rs, 13)]), ms, &(x[WS(rs, 1)])); TK = BYTWJ(&(W[TWVL * 24]), TJ); TL = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); TM = BYTWJ(&(W[TWVL * 4]), TL); TN = VSUB(TK, TM); T1v = VADD(TK, TM); } { V TP, TR, TO, TQ; TO = LD(&(x[WS(rs, 17)]), ms, &(x[WS(rs, 1)])); TP = BYTWJ(&(W[TWVL * 32]), TO); TQ = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); TR = BYTWJ(&(W[TWVL * 12]), TQ); TS = VSUB(TP, TR); T1y = VADD(TP, TR); } { V Tb, Td, Ta, Tc; Ta = LD(&(x[WS(rs, 16)]), ms, &(x[0])); Tb = BYTWJ(&(W[TWVL * 30]), Ta); Tc = LD(&(x[WS(rs, 6)]), ms, &(x[0])); Td = BYTWJ(&(W[TWVL * 10]), Tc); Te = VSUB(Tb, Td); T1q = VADD(Tb, Td); } { V Th, Tj, Tg, Ti; Tg = LD(&(x[WS(rs, 8)]), ms, &(x[0])); Th = BYTWJ(&(W[TWVL * 14]), Tg); Ti = LD(&(x[WS(rs, 18)]), ms, &(x[0])); Tj = BYTWJ(&(W[TWVL * 34]), Ti); Tk = VSUB(Th, Tj); T1u = VADD(Th, Tj); } { V Tz, TB, Ty, TA; Ty = LD(&(x[WS(rs, 9)]), ms, &(x[WS(rs, 1)])); Tz = BYTWJ(&(W[TWVL * 16]), Ty); TA = LD(&(x[WS(rs, 19)]), ms, &(x[WS(rs, 1)])); TB = BYTWJ(&(W[TWVL * 36]), TA); TC = VSUB(Tz, TB); T1o = VADD(Tz, TB); } { V TE, TG, TD, TF; TD = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); TE = BYTWJ(&(W[0]), TD); TF = LD(&(x[WS(rs, 11)]), ms, &(x[WS(rs, 1)])); TG = BYTWJ(&(W[TWVL * 20]), TF); TH = VSUB(TE, TG); T1r = VADD(TE, TG); } { V Tm, To, Tl, Tn; Tl = LD(&(x[WS(rs, 12)]), ms, &(x[0])); Tm = BYTWJ(&(W[TWVL * 22]), Tl); Tn = LD(&(x[WS(rs, 2)]), ms, &(x[0])); To = BYTWJ(&(W[TWVL * 2]), Tn); Tp = VSUB(Tm, To); T1x = VADD(Tm, To); } TZ = VSUB(TH, TC); T16 = VSUB(T9, Te); T17 = VSUB(Tk, Tp); T10 = VSUB(TS, TN); Tf = VADD(T9, Te); Tq = VADD(Tk, Tp); Tr = VADD(Tf, Tq); T1O = VADD(T1u, T1v); T1P = VADD(T1x, T1y); T1Q = VADD(T1O, T1P); T1w = VSUB(T1u, T1v); T1z = VSUB(T1x, T1y); T1A = VADD(T1w, T1z); TI = VADD(TC, TH); TT = VADD(TN, TS); TU = VADD(TI, TT); T1L = VADD(T1n, T1o); T1M = VADD(T1q, T1r); T1N = VADD(T1L, T1M); T1p = VSUB(T1n, T1o); T1s = VSUB(T1q, T1r); T1t = VADD(T1p, T1s); } Ts = VADD(T4, Tr); TV = VADD(Tx, TU); ST(&(x[WS(rs, 5)]), VFNMSI(TV, Ts), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 15)]), VFMAI(TV, Ts), ms, &(x[WS(rs, 1)])); { V T1T, T1R, T1S, T1X, T1Z, T1V, T1W, T1Y, T1U; T1T = VSUB(T1N, T1Q); T1R = VADD(T1N, T1Q); T1S = VFNMS(LDK(KP250000000), T1R, T1K); T1V = VSUB(T1L, T1M); T1W = VSUB(T1O, T1P); T1X = VMUL(LDK(KP951056516), VFMA(LDK(KP618033988), T1W, T1V)); T1Z = VMUL(LDK(KP951056516), VFNMS(LDK(KP618033988), T1V, T1W)); ST(&(x[0]), VADD(T1K, T1R), ms, &(x[0])); T1Y = VFNMS(LDK(KP559016994), T1T, T1S); ST(&(x[WS(rs, 8)]), VFNMSI(T1Z, T1Y), ms, &(x[0])); ST(&(x[WS(rs, 12)]), VFMAI(T1Z, T1Y), ms, &(x[0])); T1U = VFMA(LDK(KP559016994), T1T, T1S); ST(&(x[WS(rs, 4)]), VFMAI(T1X, T1U), ms, &(x[0])); ST(&(x[WS(rs, 16)]), VFNMSI(T1X, T1U), ms, &(x[0])); } { V T1D, T1B, T1C, T1H, T1J, T1F, T1G, T1I, T1E; T1D = VSUB(T1t, T1A); T1B = VADD(T1t, T1A); T1C = VFNMS(LDK(KP250000000), T1B, T1m); T1F = VSUB(T1w, T1z); T1G = VSUB(T1p, T1s); T1H = VMUL(LDK(KP951056516), VFNMS(LDK(KP618033988), T1G, T1F)); T1J = VMUL(LDK(KP951056516), VFMA(LDK(KP618033988), T1F, T1G)); ST(&(x[WS(rs, 10)]), VADD(T1m, T1B), ms, &(x[0])); T1I = VFMA(LDK(KP559016994), T1D, T1C); ST(&(x[WS(rs, 6)]), VFNMSI(T1J, T1I), ms, &(x[0])); ST(&(x[WS(rs, 14)]), VFMAI(T1J, T1I), ms, &(x[0])); T1E = VFNMS(LDK(KP559016994), T1D, T1C); ST(&(x[WS(rs, 2)]), VFMAI(T1H, T1E), ms, &(x[0])); ST(&(x[WS(rs, 18)]), VFNMSI(T1H, T1E), ms, &(x[0])); } { V T11, T18, T1g, T1d, T15, T1f, TY, T1c; T11 = VFMA(LDK(KP618033988), T10, TZ); T18 = VFMA(LDK(KP618033988), T17, T16); T1g = VFNMS(LDK(KP618033988), T16, T17); T1d = VFNMS(LDK(KP618033988), TZ, T10); { V T13, T14, TW, TX; T13 = VFNMS(LDK(KP250000000), TU, Tx); T14 = VSUB(TT, TI); T15 = VFNMS(LDK(KP559016994), T14, T13); T1f = VFMA(LDK(KP559016994), T14, T13); TW = VFNMS(LDK(KP250000000), Tr, T4); TX = VSUB(Tf, Tq); TY = VFMA(LDK(KP559016994), TX, TW); T1c = VFNMS(LDK(KP559016994), TX, TW); } { V T12, T19, T1i, T1j; T12 = VFMA(LDK(KP951056516), T11, TY); T19 = VFMA(LDK(KP951056516), T18, T15); ST(&(x[WS(rs, 1)]), VFNMSI(T19, T12), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 19)]), VFMAI(T19, T12), ms, &(x[WS(rs, 1)])); T1i = VFMA(LDK(KP951056516), T1d, T1c); T1j = VFMA(LDK(KP951056516), T1g, T1f); ST(&(x[WS(rs, 13)]), VFNMSI(T1j, T1i), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 7)]), VFMAI(T1j, T1i), ms, &(x[WS(rs, 1)])); } { V T1a, T1b, T1e, T1h; T1a = VFNMS(LDK(KP951056516), T11, TY); T1b = VFNMS(LDK(KP951056516), T18, T15); ST(&(x[WS(rs, 9)]), VFNMSI(T1b, T1a), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 11)]), VFMAI(T1b, T1a), ms, &(x[WS(rs, 1)])); T1e = VFNMS(LDK(KP951056516), T1d, T1c); T1h = VFNMS(LDK(KP951056516), T1g, T1f); ST(&(x[WS(rs, 17)]), VFNMSI(T1h, T1e), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 3)]), VFMAI(T1h, T1e), ms, &(x[WS(rs, 1)])); } } } } VLEAVE(); }
static void t2sv_16(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP923879532, +0.923879532511286756128183189396788286822416626); DVK(KP414213562, +0.414213562373095048801688724209698078569671875); DVK(KP707106781, +0.707106781186547524400844362104849039284835938); { INT m; for (m = mb, W = W + (mb * 8); m < me; m = m + (2 * VL), ri = ri + ((2 * VL) * ms), ii = ii + ((2 * VL) * ms), W = W + ((2 * VL) * 8), MAKE_VOLATILE_STRIDE(32, rs)) { V T34, T30, T2N, T2v, T2M, T2g, T3V, T3X, T32, T2U, T33, T2X, T2O, T2K, T3P; V T3R; { V T2, Tf, TM, TO, T3, T6, T5, Th; T2 = LDW(&(W[0])); Tf = LDW(&(W[TWVL * 2])); TM = LDW(&(W[TWVL * 6])); TO = LDW(&(W[TWVL * 7])); T3 = LDW(&(W[TWVL * 4])); T6 = LDW(&(W[TWVL * 5])); T5 = LDW(&(W[TWVL * 1])); Th = LDW(&(W[TWVL * 3])); { V TW, TZ, Te, T1U, T3A, T3L, T2D, T1G, T3h, T2A, T2B, T1R, T3i, T2I, Tx; V T3M, T1Z, T3w, TL, T26, T25, T37, T1l, T2q, T1d, T2o, T2l, T3c, T1r, T2s; V TX, T10, TV, T2a; { V Tz, TP, TT, Tq, TF, Tu, TI, Tm, TC, T1j, T1p, T1m, T1f, T1O, T1M; V T1K, T2F, Tj, Tn, T1Q, T2G, Tk, T1V, Tr, Tv; { V T1, Ti, Tb, T3z, T8, Tc, T1u, T1D, T1L, T1z, T9, T3x, T1v, T1w, T1A; V T1E; { V T7, T1i, T1e, T1C, T1y; T1 = LD(&(ri[0]), ms, &(ri[0])); { V Tg, TN, TS, Tp; Tg = VMUL(T2, Tf); TN = VMUL(T2, TM); TS = VMUL(T2, TO); Tp = VMUL(Tf, T3); { V T4, Tt, Ta, Tl; T4 = VMUL(T2, T3); Tt = VMUL(Tf, T6); Ta = VMUL(T2, T6); Tl = VMUL(T2, Th); Ti = VFNMS(T5, Th, Tg); Tz = VFMA(T5, Th, Tg); TP = VFMA(T5, TO, TN); TT = VFNMS(T5, TM, TS); TW = VFMA(Th, T6, Tp); Tq = VFNMS(Th, T6, Tp); TF = VFNMS(T5, T6, T4); T7 = VFMA(T5, T6, T4); Tu = VFMA(Th, T3, Tt); TZ = VFNMS(Th, T3, Tt); TI = VFMA(T5, T3, Ta); Tb = VFNMS(T5, T3, Ta); Tm = VFMA(T5, Tf, Tl); TC = VFNMS(T5, Tf, Tl); T1i = VMUL(Ti, T6); T1e = VMUL(Ti, T3); T1C = VMUL(Tz, T6); T1y = VMUL(Tz, T3); T3z = LD(&(ii[0]), ms, &(ii[0])); } } T8 = LD(&(ri[WS(rs, 8)]), ms, &(ri[0])); Tc = LD(&(ii[WS(rs, 8)]), ms, &(ii[0])); T1u = LD(&(ri[WS(rs, 15)]), ms, &(ri[WS(rs, 1)])); T1j = VFNMS(Tm, T3, T1i); T1p = VFMA(Tm, T3, T1i); T1m = VFNMS(Tm, T6, T1e); T1f = VFMA(Tm, T6, T1e); T1D = VFNMS(TC, T3, T1C); T1O = VFMA(TC, T3, T1C); T1L = VFNMS(TC, T6, T1y); T1z = VFMA(TC, T6, T1y); T9 = VMUL(T7, T8); T3x = VMUL(T7, Tc); T1v = VMUL(TM, T1u); T1w = LD(&(ii[WS(rs, 15)]), ms, &(ii[WS(rs, 1)])); T1A = LD(&(ri[WS(rs, 7)]), ms, &(ri[WS(rs, 1)])); T1E = LD(&(ii[WS(rs, 7)]), ms, &(ii[WS(rs, 1)])); } { V T1x, T2x, T1F, T2z, T1N, T1P; { V T1H, T1J, T1I, T2E; { V Td, T3y, T2w, T1B, T2y; T1H = LD(&(ri[WS(rs, 3)]), ms, &(ri[WS(rs, 1)])); T1J = LD(&(ii[WS(rs, 3)]), ms, &(ii[WS(rs, 1)])); Td = VFMA(Tb, Tc, T9); T3y = VFNMS(Tb, T8, T3x); T1M = LD(&(ri[WS(rs, 11)]), ms, &(ri[WS(rs, 1)])); T1x = VFMA(TO, T1w, T1v); T2w = VMUL(TM, T1w); T1B = VMUL(T1z, T1A); T2y = VMUL(T1z, T1E); T1I = VMUL(Tf, T1H); T2E = VMUL(Tf, T1J); Te = VADD(T1, Td); T1U = VSUB(T1, Td); T3A = VADD(T3y, T3z); T3L = VSUB(T3z, T3y); T2x = VFNMS(TO, T1u, T2w); T1F = VFMA(T1D, T1E, T1B); T2z = VFNMS(T1D, T1A, T2y); T1N = VMUL(T1L, T1M); T1P = LD(&(ii[WS(rs, 11)]), ms, &(ii[WS(rs, 1)])); } T1K = VFMA(Th, T1J, T1I); T2F = VFNMS(Th, T1H, T2E); } Tj = LD(&(ri[WS(rs, 4)]), ms, &(ri[0])); Tn = LD(&(ii[WS(rs, 4)]), ms, &(ii[0])); T2D = VSUB(T1x, T1F); T1G = VADD(T1x, T1F); T3h = VADD(T2x, T2z); T2A = VSUB(T2x, T2z); T1Q = VFMA(T1O, T1P, T1N); T2G = VMUL(T1L, T1P); Tk = VMUL(Ti, Tj); T1V = VMUL(Ti, Tn); Tr = LD(&(ri[WS(rs, 12)]), ms, &(ri[0])); Tv = LD(&(ii[WS(rs, 12)]), ms, &(ii[0])); } } { V TE, T22, T15, T17, TK, T16, T2h, T24, T19, T1b; { V To, T1W, TG, TJ, Tw, T1Y, TH, T23; { V TA, TD, TB, T21, T2H, Ts, T1X; TA = LD(&(ri[WS(rs, 2)]), ms, &(ri[0])); TD = LD(&(ii[WS(rs, 2)]), ms, &(ii[0])); T2B = VSUB(T1K, T1Q); T1R = VADD(T1K, T1Q); T2H = VFNMS(T1O, T1M, T2G); To = VFMA(Tm, Tn, Tk); T1W = VFNMS(Tm, Tj, T1V); Ts = VMUL(Tq, Tr); T1X = VMUL(Tq, Tv); TB = VMUL(Tz, TA); T21 = VMUL(Tz, TD); TG = LD(&(ri[WS(rs, 10)]), ms, &(ri[0])); T3i = VADD(T2F, T2H); T2I = VSUB(T2F, T2H); TJ = LD(&(ii[WS(rs, 10)]), ms, &(ii[0])); Tw = VFMA(Tu, Tv, Ts); T1Y = VFNMS(Tu, Tr, T1X); TE = VFMA(TC, TD, TB); T22 = VFNMS(TC, TA, T21); TH = VMUL(TF, TG); } T15 = LD(&(ri[WS(rs, 1)]), ms, &(ri[WS(rs, 1)])); T17 = LD(&(ii[WS(rs, 1)]), ms, &(ii[WS(rs, 1)])); T23 = VMUL(TF, TJ); Tx = VADD(To, Tw); T3M = VSUB(To, Tw); T1Z = VSUB(T1W, T1Y); T3w = VADD(T1W, T1Y); TK = VFMA(TI, TJ, TH); T16 = VMUL(T2, T15); T2h = VMUL(T2, T17); T24 = VFNMS(TI, TG, T23); T19 = LD(&(ri[WS(rs, 9)]), ms, &(ri[WS(rs, 1)])); T1b = LD(&(ii[WS(rs, 9)]), ms, &(ii[WS(rs, 1)])); } { V T1g, T1k, T18, T2i, T1a, T2j, T1h, T2p, T1n, T1q; T1g = LD(&(ri[WS(rs, 5)]), ms, &(ri[WS(rs, 1)])); T1k = LD(&(ii[WS(rs, 5)]), ms, &(ii[WS(rs, 1)])); TL = VADD(TE, TK); T26 = VSUB(TE, TK); T18 = VFMA(T5, T17, T16); T2i = VFNMS(T5, T15, T2h); T25 = VSUB(T22, T24); T37 = VADD(T22, T24); T1a = VMUL(T3, T19); T2j = VMUL(T3, T1b); T1h = VMUL(T1f, T1g); T2p = VMUL(T1f, T1k); T1n = LD(&(ri[WS(rs, 13)]), ms, &(ri[WS(rs, 1)])); T1q = LD(&(ii[WS(rs, 13)]), ms, &(ii[WS(rs, 1)])); { V TQ, TU, TR, T29; { V T1c, T2k, T1o, T2r; TQ = LD(&(ri[WS(rs, 14)]), ms, &(ri[0])); TU = LD(&(ii[WS(rs, 14)]), ms, &(ii[0])); T1c = VFMA(T6, T1b, T1a); T2k = VFNMS(T6, T19, T2j); T1l = VFMA(T1j, T1k, T1h); T2q = VFNMS(T1j, T1g, T2p); T1o = VMUL(T1m, T1n); T2r = VMUL(T1m, T1q); TR = VMUL(TP, TQ); T29 = VMUL(TP, TU); T1d = VADD(T18, T1c); T2o = VSUB(T18, T1c); T2l = VSUB(T2i, T2k); T3c = VADD(T2i, T2k); T1r = VFMA(T1p, T1q, T1o); T2s = VFNMS(T1p, T1n, T2r); TX = LD(&(ri[WS(rs, 6)]), ms, &(ri[0])); T10 = LD(&(ii[WS(rs, 6)]), ms, &(ii[0])); } TV = VFMA(TT, TU, TR); T2a = VFNMS(TT, TQ, T29); } } } } { V T36, Ty, T3B, T3G, T1s, T2m, T2t, T3d, TY, T2b, T3g, T1S, T3s, T3j; T36 = VSUB(Te, Tx); Ty = VADD(Te, Tx); T3B = VADD(T3w, T3A); T3G = VSUB(T3A, T3w); T1s = VADD(T1l, T1r); T2m = VSUB(T1l, T1r); T2t = VSUB(T2q, T2s); T3d = VADD(T2q, T2s); TY = VMUL(TW, TX); T2b = VMUL(TW, T10); T3g = VSUB(T1G, T1R); T1S = VADD(T1G, T1R); T3s = VADD(T3h, T3i); T3j = VSUB(T3h, T3i); { V T3D, T1T, T3u, T3t, T28, T12, T38, T2d, T3n, T3f; { V T1t, T3b, T3e, T3r, T11, T2c; T1t = VADD(T1d, T1s); T3b = VSUB(T1d, T1s); T3e = VSUB(T3c, T3d); T3r = VADD(T3c, T3d); T11 = VFMA(TZ, T10, TY); T2c = VFNMS(TZ, TX, T2b); T3D = VSUB(T1S, T1t); T1T = VADD(T1t, T1S); T3u = VADD(T3r, T3s); T3t = VSUB(T3r, T3s); T28 = VSUB(TV, T11); T12 = VADD(TV, T11); T38 = VADD(T2a, T2c); T2d = VSUB(T2a, T2c); T3n = VSUB(T3e, T3b); T3f = VADD(T3b, T3e); } { V T2Q, T20, T3N, T3T, T2J, T2C, T2W, T2V, T3O, T2f, T3U, T2T; { V T2R, T27, T2e, T2S, T13, T3F; T2Q = VADD(T1U, T1Z); T20 = VSUB(T1U, T1Z); T3N = VSUB(T3L, T3M); T3T = VADD(T3M, T3L); T13 = VADD(TL, T12); T3F = VSUB(T12, TL); { V T3v, T39, T3o, T3k; T3v = VADD(T37, T38); T39 = VSUB(T37, T38); T3o = VADD(T3g, T3j); T3k = VSUB(T3g, T3j); { V T3H, T3J, T14, T3q; T3H = VADD(T3F, T3G); T3J = VSUB(T3G, T3F); T14 = VADD(Ty, T13); T3q = VSUB(Ty, T13); { V T3a, T3m, T3C, T3E; T3a = VADD(T36, T39); T3m = VSUB(T36, T39); T3C = VADD(T3v, T3B); T3E = VSUB(T3B, T3v); { V T3I, T3p, T3l, T3K; T3I = VADD(T3n, T3o); T3p = VSUB(T3n, T3o); T3l = VADD(T3f, T3k); T3K = VSUB(T3k, T3f); ST(&(ri[WS(rs, 4)]), VADD(T3q, T3t), ms, &(ri[0])); ST(&(ri[WS(rs, 12)]), VSUB(T3q, T3t), ms, &(ri[0])); ST(&(ri[0]), VADD(T14, T1T), ms, &(ri[0])); ST(&(ri[WS(rs, 8)]), VSUB(T14, T1T), ms, &(ri[0])); ST(&(ii[WS(rs, 4)]), VADD(T3D, T3E), ms, &(ii[0])); ST(&(ii[WS(rs, 12)]), VSUB(T3E, T3D), ms, &(ii[0])); ST(&(ii[0]), VADD(T3u, T3C), ms, &(ii[0])); ST(&(ii[WS(rs, 8)]), VSUB(T3C, T3u), ms, &(ii[0])); ST(&(ri[WS(rs, 6)]), VFMA(LDK(KP707106781), T3p, T3m), ms, &(ri[0])); ST(&(ri[WS(rs, 14)]), VFNMS(LDK(KP707106781), T3p, T3m), ms, &(ri[0])); ST(&(ii[WS(rs, 10)]), VFNMS(LDK(KP707106781), T3I, T3H), ms, &(ii[0])); ST(&(ii[WS(rs, 2)]), VFMA(LDK(KP707106781), T3I, T3H), ms, &(ii[0])); ST(&(ii[WS(rs, 14)]), VFNMS(LDK(KP707106781), T3K, T3J), ms, &(ii[0])); ST(&(ii[WS(rs, 6)]), VFMA(LDK(KP707106781), T3K, T3J), ms, &(ii[0])); ST(&(ri[WS(rs, 2)]), VFMA(LDK(KP707106781), T3l, T3a), ms, &(ri[0])); ST(&(ri[WS(rs, 10)]), VFNMS(LDK(KP707106781), T3l, T3a), ms, &(ri[0])); T2R = VADD(T26, T25); T27 = VSUB(T25, T26); T2e = VADD(T28, T2d); T2S = VSUB(T28, T2d); } } } } { V T2Y, T2Z, T2n, T2u; T2J = VSUB(T2D, T2I); T2Y = VADD(T2D, T2I); T2Z = VSUB(T2A, T2B); T2C = VADD(T2A, T2B); T2W = VSUB(T2l, T2m); T2n = VADD(T2l, T2m); T2u = VSUB(T2o, T2t); T2V = VADD(T2o, T2t); T3O = VADD(T27, T2e); T2f = VSUB(T27, T2e); T34 = VFMA(LDK(KP414213562), T2Y, T2Z); T30 = VFNMS(LDK(KP414213562), T2Z, T2Y); T3U = VSUB(T2S, T2R); T2T = VADD(T2R, T2S); T2N = VFNMS(LDK(KP414213562), T2n, T2u); T2v = VFMA(LDK(KP414213562), T2u, T2n); } } T2M = VFNMS(LDK(KP707106781), T2f, T20); T2g = VFMA(LDK(KP707106781), T2f, T20); T3V = VFMA(LDK(KP707106781), T3U, T3T); T3X = VFNMS(LDK(KP707106781), T3U, T3T); T32 = VFNMS(LDK(KP707106781), T2T, T2Q); T2U = VFMA(LDK(KP707106781), T2T, T2Q); T33 = VFNMS(LDK(KP414213562), T2V, T2W); T2X = VFMA(LDK(KP414213562), T2W, T2V); T2O = VFMA(LDK(KP414213562), T2C, T2J); T2K = VFNMS(LDK(KP414213562), T2J, T2C); T3P = VFMA(LDK(KP707106781), T3O, T3N); T3R = VFNMS(LDK(KP707106781), T3O, T3N); } } } } } { V T3Q, T35, T31, T3S; T3Q = VADD(T33, T34); T35 = VSUB(T33, T34); T31 = VADD(T2X, T30); T3S = VSUB(T30, T2X); { V T3W, T2P, T2L, T3Y; T3W = VSUB(T2O, T2N); T2P = VADD(T2N, T2O); T2L = VSUB(T2v, T2K); T3Y = VADD(T2v, T2K); ST(&(ri[WS(rs, 5)]), VFMA(LDK(KP923879532), T35, T32), ms, &(ri[WS(rs, 1)])); ST(&(ri[WS(rs, 13)]), VFNMS(LDK(KP923879532), T35, T32), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 9)]), VFNMS(LDK(KP923879532), T3Q, T3P), ms, &(ii[WS(rs, 1)])); ST(&(ii[WS(rs, 1)]), VFMA(LDK(KP923879532), T3Q, T3P), ms, &(ii[WS(rs, 1)])); ST(&(ii[WS(rs, 13)]), VFNMS(LDK(KP923879532), T3S, T3R), ms, &(ii[WS(rs, 1)])); ST(&(ii[WS(rs, 5)]), VFMA(LDK(KP923879532), T3S, T3R), ms, &(ii[WS(rs, 1)])); ST(&(ri[WS(rs, 1)]), VFMA(LDK(KP923879532), T31, T2U), ms, &(ri[WS(rs, 1)])); ST(&(ri[WS(rs, 9)]), VFNMS(LDK(KP923879532), T31, T2U), ms, &(ri[WS(rs, 1)])); ST(&(ri[WS(rs, 15)]), VFMA(LDK(KP923879532), T2P, T2M), ms, &(ri[WS(rs, 1)])); ST(&(ri[WS(rs, 7)]), VFNMS(LDK(KP923879532), T2P, T2M), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 11)]), VFNMS(LDK(KP923879532), T3W, T3V), ms, &(ii[WS(rs, 1)])); ST(&(ii[WS(rs, 3)]), VFMA(LDK(KP923879532), T3W, T3V), ms, &(ii[WS(rs, 1)])); ST(&(ii[WS(rs, 15)]), VFMA(LDK(KP923879532), T3Y, T3X), ms, &(ii[WS(rs, 1)])); ST(&(ii[WS(rs, 7)]), VFNMS(LDK(KP923879532), T3Y, T3X), ms, &(ii[WS(rs, 1)])); ST(&(ri[WS(rs, 3)]), VFMA(LDK(KP923879532), T2L, T2g), ms, &(ri[WS(rs, 1)])); ST(&(ri[WS(rs, 11)]), VFNMS(LDK(KP923879532), T2L, T2g), ms, &(ri[WS(rs, 1)])); } } } } VLEAVE(); }
static void n2sv_16(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP923879532, +0.923879532511286756128183189396788286822416626); DVK(KP707106781, +0.707106781186547524400844362104849039284835938); DVK(KP414213562, +0.414213562373095048801688724209698078569671875); INT i; for (i = v; i > 0; i = i - (2 * VL), ri = ri + ((2 * VL) * ivs), ii = ii + ((2 * VL) * ivs), ro = ro + ((2 * VL) * ovs), io = io + ((2 * VL) * ovs), MAKE_VOLATILE_STRIDE(is), MAKE_VOLATILE_STRIDE(os)) { V T2p, T2q, T2r, T2s, T2x, T2y, T2z, T2A, T1M, T1N, T1L, T1P, T2F, T2G, T2H; V T2I, T1O, T1Q; { V T1l, T1H, T1R, T7, T1x, TN, TC, T25, T1E, T1b, T1Z, Tt, T2h, T22, T1D; V T1g, T1n, TQ, T11, Ti, Te, T26, T1m, TT, T1S, TJ, TZ, T1V, TW, Tl; V T12, T13; { V Tq, T1c, Tp, T20, T1a, Tr, T1d, T1e; { V T1, T2, Tw, Tx, T4, T5, Tz, TA; T1 = LD(&(ri[0]), ivs, &(ri[0])); T2 = LD(&(ri[WS(is, 8)]), ivs, &(ri[0])); Tw = LD(&(ii[0]), ivs, &(ii[0])); Tx = LD(&(ii[WS(is, 8)]), ivs, &(ii[0])); T4 = LD(&(ri[WS(is, 4)]), ivs, &(ri[0])); T5 = LD(&(ri[WS(is, 12)]), ivs, &(ri[0])); Tz = LD(&(ii[WS(is, 4)]), ivs, &(ii[0])); TA = LD(&(ii[WS(is, 12)]), ivs, &(ii[0])); { V Tn, TL, T3, T1k, Ty, T1j, T6, TM, TB, To, T18, T19; Tn = LD(&(ri[WS(is, 15)]), ivs, &(ri[WS(is, 1)])); TL = VSUB(T1, T2); T3 = VADD(T1, T2); T1k = VSUB(Tw, Tx); Ty = VADD(Tw, Tx); T1j = VSUB(T4, T5); T6 = VADD(T4, T5); TM = VSUB(Tz, TA); TB = VADD(Tz, TA); To = LD(&(ri[WS(is, 7)]), ivs, &(ri[WS(is, 1)])); T18 = LD(&(ii[WS(is, 15)]), ivs, &(ii[WS(is, 1)])); T19 = LD(&(ii[WS(is, 7)]), ivs, &(ii[WS(is, 1)])); Tq = LD(&(ri[WS(is, 3)]), ivs, &(ri[WS(is, 1)])); T1l = VADD(T1j, T1k); T1H = VSUB(T1k, T1j); T1R = VSUB(T3, T6); T7 = VADD(T3, T6); T1x = VADD(TL, TM); TN = VSUB(TL, TM); TC = VADD(Ty, TB); T25 = VSUB(Ty, TB); T1c = VSUB(Tn, To); Tp = VADD(Tn, To); T20 = VADD(T18, T19); T1a = VSUB(T18, T19); Tr = LD(&(ri[WS(is, 11)]), ivs, &(ri[WS(is, 1)])); T1d = LD(&(ii[WS(is, 3)]), ivs, &(ii[WS(is, 1)])); T1e = LD(&(ii[WS(is, 11)]), ivs, &(ii[WS(is, 1)])); } } { V Tb, Ta, TF, Tc, TG, TH, TP, TO; { V T8, T9, TD, TE; T8 = LD(&(ri[WS(is, 2)]), ivs, &(ri[0])); T9 = LD(&(ri[WS(is, 10)]), ivs, &(ri[0])); TD = LD(&(ii[WS(is, 2)]), ivs, &(ii[0])); TE = LD(&(ii[WS(is, 10)]), ivs, &(ii[0])); Tb = LD(&(ri[WS(is, 14)]), ivs, &(ri[0])); { V T17, Ts, T21, T1f; T17 = VSUB(Tq, Tr); Ts = VADD(Tq, Tr); T21 = VADD(T1d, T1e); T1f = VSUB(T1d, T1e); TP = VSUB(T8, T9); Ta = VADD(T8, T9); TO = VSUB(TD, TE); TF = VADD(TD, TE); T1E = VSUB(T1a, T17); T1b = VADD(T17, T1a); T1Z = VSUB(Tp, Ts); Tt = VADD(Tp, Ts); T2h = VADD(T20, T21); T22 = VSUB(T20, T21); T1D = VADD(T1c, T1f); T1g = VSUB(T1c, T1f); Tc = LD(&(ri[WS(is, 6)]), ivs, &(ri[0])); } TG = LD(&(ii[WS(is, 14)]), ivs, &(ii[0])); TH = LD(&(ii[WS(is, 6)]), ivs, &(ii[0])); } T1n = VADD(TP, TO); TQ = VSUB(TO, TP); { V Tg, Th, TX, TR, Td, TS, TI, TY, Tj, Tk; Tg = LD(&(ri[WS(is, 1)]), ivs, &(ri[WS(is, 1)])); Th = LD(&(ri[WS(is, 9)]), ivs, &(ri[WS(is, 1)])); TX = LD(&(ii[WS(is, 1)]), ivs, &(ii[WS(is, 1)])); TR = VSUB(Tb, Tc); Td = VADD(Tb, Tc); TS = VSUB(TG, TH); TI = VADD(TG, TH); TY = LD(&(ii[WS(is, 9)]), ivs, &(ii[WS(is, 1)])); Tj = LD(&(ri[WS(is, 5)]), ivs, &(ri[WS(is, 1)])); T11 = VSUB(Tg, Th); Ti = VADD(Tg, Th); Tk = LD(&(ri[WS(is, 13)]), ivs, &(ri[WS(is, 1)])); Te = VADD(Ta, Td); T26 = VSUB(Td, Ta); T1m = VSUB(TR, TS); TT = VADD(TR, TS); T1S = VSUB(TF, TI); TJ = VADD(TF, TI); TZ = VSUB(TX, TY); T1V = VADD(TX, TY); TW = VSUB(Tj, Tk); Tl = VADD(Tj, Tk); T12 = LD(&(ii[WS(is, 5)]), ivs, &(ii[WS(is, 1)])); T13 = LD(&(ii[WS(is, 13)]), ivs, &(ii[WS(is, 1)])); } } } { V T2f, Tf, T2j, TK, Tm, T1U, T10, T1B, T14, T1W; T2f = VSUB(T7, Te); Tf = VADD(T7, Te); T2j = VADD(TC, TJ); TK = VSUB(TC, TJ); Tm = VADD(Ti, Tl); T1U = VSUB(Ti, Tl); T10 = VADD(TW, TZ); T1B = VSUB(TZ, TW); T14 = VSUB(T12, T13); T1W = VADD(T12, T13); { V T29, T1T, T27, T2d, T2b, T23, T15, T1A, T2l, T2m, T2n, T2o, T2i, T2k, T1Y; V T2a; { V Tv, Tu, T1X, T2g; T29 = VSUB(T1R, T1S); T1T = VADD(T1R, T1S); T27 = VSUB(T25, T26); T2d = VADD(T26, T25); T2b = VADD(T1Z, T22); T23 = VSUB(T1Z, T22); Tv = VSUB(Tt, Tm); Tu = VADD(Tm, Tt); T1X = VSUB(T1V, T1W); T2g = VADD(T1V, T1W); T15 = VSUB(T11, T14); T1A = VADD(T11, T14); T2l = VSUB(TK, Tv); STM4(&(io[12]), T2l, ovs, &(io[0])); T2m = VADD(Tv, TK); STM4(&(io[4]), T2m, ovs, &(io[0])); T2n = VADD(Tf, Tu); STM4(&(ro[0]), T2n, ovs, &(ro[0])); T2o = VSUB(Tf, Tu); STM4(&(ro[8]), T2o, ovs, &(ro[0])); T2i = VSUB(T2g, T2h); T2k = VADD(T2g, T2h); T1Y = VADD(T1U, T1X); T2a = VSUB(T1X, T1U); } { V T1I, T1y, T1t, T16, T1v, TV, T1r, T1p, T2t, T2u, T2v, T2w, T1h, T1s, TU; V T1o; T1I = VADD(TQ, TT); TU = VSUB(TQ, TT); T1o = VSUB(T1m, T1n); T1y = VADD(T1n, T1m); T1t = VFNMS(LDK(KP414213562), T10, T15); T16 = VFMA(LDK(KP414213562), T15, T10); T2p = VADD(T2f, T2i); STM4(&(ro[4]), T2p, ovs, &(ro[0])); T2q = VSUB(T2f, T2i); STM4(&(ro[12]), T2q, ovs, &(ro[0])); T2r = VADD(T2j, T2k); STM4(&(io[0]), T2r, ovs, &(io[0])); T2s = VSUB(T2j, T2k); STM4(&(io[8]), T2s, ovs, &(io[0])); { V T28, T24, T2e, T2c; T28 = VSUB(T23, T1Y); T24 = VADD(T1Y, T23); T2e = VADD(T2a, T2b); T2c = VSUB(T2a, T2b); T1v = VFNMS(LDK(KP707106781), TU, TN); TV = VFMA(LDK(KP707106781), TU, TN); T1r = VFMA(LDK(KP707106781), T1o, T1l); T1p = VFNMS(LDK(KP707106781), T1o, T1l); T2t = VFNMS(LDK(KP707106781), T28, T27); STM4(&(io[14]), T2t, ovs, &(io[0])); T2u = VFMA(LDK(KP707106781), T28, T27); STM4(&(io[6]), T2u, ovs, &(io[0])); T2v = VFMA(LDK(KP707106781), T24, T1T); STM4(&(ro[2]), T2v, ovs, &(ro[0])); T2w = VFNMS(LDK(KP707106781), T24, T1T); STM4(&(ro[10]), T2w, ovs, &(ro[0])); T2x = VFNMS(LDK(KP707106781), T2e, T2d); STM4(&(io[10]), T2x, ovs, &(io[0])); T2y = VFMA(LDK(KP707106781), T2e, T2d); STM4(&(io[2]), T2y, ovs, &(io[0])); T2z = VFMA(LDK(KP707106781), T2c, T29); STM4(&(ro[6]), T2z, ovs, &(ro[0])); T2A = VFNMS(LDK(KP707106781), T2c, T29); STM4(&(ro[14]), T2A, ovs, &(ro[0])); T1h = VFNMS(LDK(KP414213562), T1g, T1b); T1s = VFMA(LDK(KP414213562), T1b, T1g); } { V T1z, T1J, T1K, T1G, T2B, T2C, T2D, T2E, T1C, T1F; T1M = VFNMS(LDK(KP414213562), T1A, T1B); T1C = VFMA(LDK(KP414213562), T1B, T1A); T1F = VFNMS(LDK(KP414213562), T1E, T1D); T1N = VFMA(LDK(KP414213562), T1D, T1E); { V T1q, T1i, T1w, T1u; T1q = VADD(T16, T1h); T1i = VSUB(T16, T1h); T1w = VADD(T1t, T1s); T1u = VSUB(T1s, T1t); T1L = VFNMS(LDK(KP707106781), T1y, T1x); T1z = VFMA(LDK(KP707106781), T1y, T1x); T1P = VFMA(LDK(KP707106781), T1I, T1H); T1J = VFNMS(LDK(KP707106781), T1I, T1H); T1K = VSUB(T1F, T1C); T1G = VADD(T1C, T1F); T2B = VFMA(LDK(KP923879532), T1q, T1p); STM4(&(io[15]), T2B, ovs, &(io[1])); T2C = VFNMS(LDK(KP923879532), T1q, T1p); STM4(&(io[7]), T2C, ovs, &(io[1])); T2D = VFMA(LDK(KP923879532), T1i, TV); STM4(&(ro[3]), T2D, ovs, &(ro[1])); T2E = VFNMS(LDK(KP923879532), T1i, TV); STM4(&(ro[11]), T2E, ovs, &(ro[1])); T2F = VFMA(LDK(KP923879532), T1w, T1v); STM4(&(ro[15]), T2F, ovs, &(ro[1])); T2G = VFNMS(LDK(KP923879532), T1w, T1v); STM4(&(ro[7]), T2G, ovs, &(ro[1])); T2H = VFMA(LDK(KP923879532), T1u, T1r); STM4(&(io[3]), T2H, ovs, &(io[1])); T2I = VFNMS(LDK(KP923879532), T1u, T1r); STM4(&(io[11]), T2I, ovs, &(io[1])); } { V T2J, T2K, T2L, T2M; T2J = VFNMS(LDK(KP923879532), T1G, T1z); STM4(&(ro[9]), T2J, ovs, &(ro[1])); STN4(&(ro[8]), T2o, T2J, T2w, T2E, ovs); T2K = VFMA(LDK(KP923879532), T1G, T1z); STM4(&(ro[1]), T2K, ovs, &(ro[1])); STN4(&(ro[0]), T2n, T2K, T2v, T2D, ovs); T2L = VFNMS(LDK(KP923879532), T1K, T1J); STM4(&(io[13]), T2L, ovs, &(io[1])); STN4(&(io[12]), T2l, T2L, T2t, T2B, ovs); T2M = VFMA(LDK(KP923879532), T1K, T1J); STM4(&(io[5]), T2M, ovs, &(io[1])); STN4(&(io[4]), T2m, T2M, T2u, T2C, ovs); } } } } } } T1O = VSUB(T1M, T1N); T1Q = VADD(T1M, T1N); { V T2N, T2O, T2P, T2Q; T2N = VFMA(LDK(KP923879532), T1Q, T1P); STM4(&(io[1]), T2N, ovs, &(io[1])); STN4(&(io[0]), T2r, T2N, T2y, T2H, ovs); T2O = VFNMS(LDK(KP923879532), T1Q, T1P); STM4(&(io[9]), T2O, ovs, &(io[1])); STN4(&(io[8]), T2s, T2O, T2x, T2I, ovs); T2P = VFMA(LDK(KP923879532), T1O, T1L); STM4(&(ro[5]), T2P, ovs, &(ro[1])); STN4(&(ro[4]), T2p, T2P, T2z, T2G, ovs); T2Q = VFNMS(LDK(KP923879532), T1O, T1L); STM4(&(ro[13]), T2Q, ovs, &(ro[1])); STN4(&(ro[12]), T2q, T2Q, T2A, T2F, ovs); } } }
static void t2sv_16(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP382683432, +0.382683432365089771728459984030398866761344562); DVK(KP923879532, +0.923879532511286756128183189396788286822416626); DVK(KP707106781, +0.707106781186547524400844362104849039284835938); { INT m; for (m = mb, W = W + (mb * 8); m < me; m = m + (2 * VL), ri = ri + ((2 * VL) * ms), ii = ii + ((2 * VL) * ms), W = W + ((2 * VL) * 8), MAKE_VOLATILE_STRIDE(32, rs)) { V T2, T5, Tg, Ti, Tk, To, TE, TC, T6, T3, T8, TW, TJ, Tt, TU; V Tc, Tx, TH, TN, TO, TP, TR, T1f, T1k, T1b, T1i, T1y, T1H, T1u, T1F; { V T7, Tv, Ta, Ts, T4, Tw, Tb, Tr; { V Th, Tn, Tj, Tm; T2 = LDW(&(W[0])); T5 = LDW(&(W[TWVL * 1])); Tg = LDW(&(W[TWVL * 2])); Ti = LDW(&(W[TWVL * 3])); Th = VMUL(T2, Tg); Tn = VMUL(T5, Tg); Tj = VMUL(T5, Ti); Tm = VMUL(T2, Ti); Tk = VSUB(Th, Tj); To = VADD(Tm, Tn); TE = VSUB(Tm, Tn); TC = VADD(Th, Tj); T6 = LDW(&(W[TWVL * 5])); T7 = VMUL(T5, T6); Tv = VMUL(Tg, T6); Ta = VMUL(T2, T6); Ts = VMUL(Ti, T6); T3 = LDW(&(W[TWVL * 4])); T4 = VMUL(T2, T3); Tw = VMUL(Ti, T3); Tb = VMUL(T5, T3); Tr = VMUL(Tg, T3); } T8 = VADD(T4, T7); TW = VSUB(Tv, Tw); TJ = VADD(Ta, Tb); Tt = VSUB(Tr, Ts); TU = VADD(Tr, Ts); Tc = VSUB(Ta, Tb); Tx = VADD(Tv, Tw); TH = VSUB(T4, T7); TN = LDW(&(W[TWVL * 6])); TO = LDW(&(W[TWVL * 7])); TP = VFMA(T2, TN, VMUL(T5, TO)); TR = VFNMS(T5, TN, VMUL(T2, TO)); { V T1d, T1e, T19, T1a; T1d = VMUL(Tk, T6); T1e = VMUL(To, T3); T1f = VSUB(T1d, T1e); T1k = VADD(T1d, T1e); T19 = VMUL(Tk, T3); T1a = VMUL(To, T6); T1b = VADD(T19, T1a); T1i = VSUB(T19, T1a); } { V T1w, T1x, T1s, T1t; T1w = VMUL(TC, T6); T1x = VMUL(TE, T3); T1y = VSUB(T1w, T1x); T1H = VADD(T1w, T1x); T1s = VMUL(TC, T3); T1t = VMUL(TE, T6); T1u = VADD(T1s, T1t); T1F = VSUB(T1s, T1t); } } { V Tf, T3r, T1N, T3e, TA, T3s, T1Q, T3b, TM, T2M, T1W, T2w, TZ, T2N, T21; V T2x, T1B, T1K, T2V, T2W, T2X, T2Y, T2j, T2D, T2o, T2E, T18, T1n, T2Q, T2R; V T2S, T2T, T28, T2A, T2d, T2B; { V T1, T3d, Te, T3c, T9, Td; T1 = LD(&(ri[0]), ms, &(ri[0])); T3d = LD(&(ii[0]), ms, &(ii[0])); T9 = LD(&(ri[WS(rs, 8)]), ms, &(ri[0])); Td = LD(&(ii[WS(rs, 8)]), ms, &(ii[0])); Te = VFMA(T8, T9, VMUL(Tc, Td)); T3c = VFNMS(Tc, T9, VMUL(T8, Td)); Tf = VADD(T1, Te); T3r = VSUB(T3d, T3c); T1N = VSUB(T1, Te); T3e = VADD(T3c, T3d); } { V Tq, T1O, Tz, T1P; { V Tl, Tp, Tu, Ty; Tl = LD(&(ri[WS(rs, 4)]), ms, &(ri[0])); Tp = LD(&(ii[WS(rs, 4)]), ms, &(ii[0])); Tq = VFMA(Tk, Tl, VMUL(To, Tp)); T1O = VFNMS(To, Tl, VMUL(Tk, Tp)); Tu = LD(&(ri[WS(rs, 12)]), ms, &(ri[0])); Ty = LD(&(ii[WS(rs, 12)]), ms, &(ii[0])); Tz = VFMA(Tt, Tu, VMUL(Tx, Ty)); T1P = VFNMS(Tx, Tu, VMUL(Tt, Ty)); } TA = VADD(Tq, Tz); T3s = VSUB(Tq, Tz); T1Q = VSUB(T1O, T1P); T3b = VADD(T1O, T1P); } { V TG, T1S, TL, T1T, T1U, T1V; { V TD, TF, TI, TK; TD = LD(&(ri[WS(rs, 2)]), ms, &(ri[0])); TF = LD(&(ii[WS(rs, 2)]), ms, &(ii[0])); TG = VFMA(TC, TD, VMUL(TE, TF)); T1S = VFNMS(TE, TD, VMUL(TC, TF)); TI = LD(&(ri[WS(rs, 10)]), ms, &(ri[0])); TK = LD(&(ii[WS(rs, 10)]), ms, &(ii[0])); TL = VFMA(TH, TI, VMUL(TJ, TK)); T1T = VFNMS(TJ, TI, VMUL(TH, TK)); } TM = VADD(TG, TL); T2M = VADD(T1S, T1T); T1U = VSUB(T1S, T1T); T1V = VSUB(TG, TL); T1W = VSUB(T1U, T1V); T2w = VADD(T1V, T1U); } { V TT, T1Y, TY, T1Z, T1X, T20; { V TQ, TS, TV, TX; TQ = LD(&(ri[WS(rs, 14)]), ms, &(ri[0])); TS = LD(&(ii[WS(rs, 14)]), ms, &(ii[0])); TT = VFMA(TP, TQ, VMUL(TR, TS)); T1Y = VFNMS(TR, TQ, VMUL(TP, TS)); TV = LD(&(ri[WS(rs, 6)]), ms, &(ri[0])); TX = LD(&(ii[WS(rs, 6)]), ms, &(ii[0])); TY = VFMA(TU, TV, VMUL(TW, TX)); T1Z = VFNMS(TW, TV, VMUL(TU, TX)); } TZ = VADD(TT, TY); T2N = VADD(T1Y, T1Z); T1X = VSUB(TT, TY); T20 = VSUB(T1Y, T1Z); T21 = VADD(T1X, T20); T2x = VSUB(T1X, T20); } { V T1r, T2k, T1J, T2h, T1A, T2l, T1E, T2g; { V T1p, T1q, T1G, T1I; T1p = LD(&(ri[WS(rs, 15)]), ms, &(ri[WS(rs, 1)])); T1q = LD(&(ii[WS(rs, 15)]), ms, &(ii[WS(rs, 1)])); T1r = VFMA(TN, T1p, VMUL(TO, T1q)); T2k = VFNMS(TO, T1p, VMUL(TN, T1q)); T1G = LD(&(ri[WS(rs, 11)]), ms, &(ri[WS(rs, 1)])); T1I = LD(&(ii[WS(rs, 11)]), ms, &(ii[WS(rs, 1)])); T1J = VFMA(T1F, T1G, VMUL(T1H, T1I)); T2h = VFNMS(T1H, T1G, VMUL(T1F, T1I)); } { V T1v, T1z, T1C, T1D; T1v = LD(&(ri[WS(rs, 7)]), ms, &(ri[WS(rs, 1)])); T1z = LD(&(ii[WS(rs, 7)]), ms, &(ii[WS(rs, 1)])); T1A = VFMA(T1u, T1v, VMUL(T1y, T1z)); T2l = VFNMS(T1y, T1v, VMUL(T1u, T1z)); T1C = LD(&(ri[WS(rs, 3)]), ms, &(ri[WS(rs, 1)])); T1D = LD(&(ii[WS(rs, 3)]), ms, &(ii[WS(rs, 1)])); T1E = VFMA(Tg, T1C, VMUL(Ti, T1D)); T2g = VFNMS(Ti, T1C, VMUL(Tg, T1D)); } T1B = VADD(T1r, T1A); T1K = VADD(T1E, T1J); T2V = VSUB(T1B, T1K); T2W = VADD(T2k, T2l); T2X = VADD(T2g, T2h); T2Y = VSUB(T2W, T2X); { V T2f, T2i, T2m, T2n; T2f = VSUB(T1r, T1A); T2i = VSUB(T2g, T2h); T2j = VSUB(T2f, T2i); T2D = VADD(T2f, T2i); T2m = VSUB(T2k, T2l); T2n = VSUB(T1E, T1J); T2o = VADD(T2m, T2n); T2E = VSUB(T2m, T2n); } } { V T14, T24, T1m, T2b, T17, T25, T1h, T2a; { V T12, T13, T1j, T1l; T12 = LD(&(ri[WS(rs, 1)]), ms, &(ri[WS(rs, 1)])); T13 = LD(&(ii[WS(rs, 1)]), ms, &(ii[WS(rs, 1)])); T14 = VFMA(T2, T12, VMUL(T5, T13)); T24 = VFNMS(T5, T12, VMUL(T2, T13)); T1j = LD(&(ri[WS(rs, 13)]), ms, &(ri[WS(rs, 1)])); T1l = LD(&(ii[WS(rs, 13)]), ms, &(ii[WS(rs, 1)])); T1m = VFMA(T1i, T1j, VMUL(T1k, T1l)); T2b = VFNMS(T1k, T1j, VMUL(T1i, T1l)); } { V T15, T16, T1c, T1g; T15 = LD(&(ri[WS(rs, 9)]), ms, &(ri[WS(rs, 1)])); T16 = LD(&(ii[WS(rs, 9)]), ms, &(ii[WS(rs, 1)])); T17 = VFMA(T3, T15, VMUL(T6, T16)); T25 = VFNMS(T6, T15, VMUL(T3, T16)); T1c = LD(&(ri[WS(rs, 5)]), ms, &(ri[WS(rs, 1)])); T1g = LD(&(ii[WS(rs, 5)]), ms, &(ii[WS(rs, 1)])); T1h = VFMA(T1b, T1c, VMUL(T1f, T1g)); T2a = VFNMS(T1f, T1c, VMUL(T1b, T1g)); } T18 = VADD(T14, T17); T1n = VADD(T1h, T1m); T2Q = VSUB(T18, T1n); T2R = VADD(T24, T25); T2S = VADD(T2a, T2b); T2T = VSUB(T2R, T2S); { V T26, T27, T29, T2c; T26 = VSUB(T24, T25); T27 = VSUB(T1h, T1m); T28 = VADD(T26, T27); T2A = VSUB(T26, T27); T29 = VSUB(T14, T17); T2c = VSUB(T2a, T2b); T2d = VSUB(T29, T2c); T2B = VADD(T29, T2c); } } { V T23, T2r, T3A, T3C, T2q, T3B, T2u, T3x; { V T1R, T22, T3y, T3z; T1R = VSUB(T1N, T1Q); T22 = VMUL(LDK(KP707106781), VSUB(T1W, T21)); T23 = VADD(T1R, T22); T2r = VSUB(T1R, T22); T3y = VMUL(LDK(KP707106781), VSUB(T2x, T2w)); T3z = VADD(T3s, T3r); T3A = VADD(T3y, T3z); T3C = VSUB(T3z, T3y); } { V T2e, T2p, T2s, T2t; T2e = VFMA(LDK(KP923879532), T28, VMUL(LDK(KP382683432), T2d)); T2p = VFNMS(LDK(KP923879532), T2o, VMUL(LDK(KP382683432), T2j)); T2q = VADD(T2e, T2p); T3B = VSUB(T2p, T2e); T2s = VFNMS(LDK(KP923879532), T2d, VMUL(LDK(KP382683432), T28)); T2t = VFMA(LDK(KP382683432), T2o, VMUL(LDK(KP923879532), T2j)); T2u = VSUB(T2s, T2t); T3x = VADD(T2s, T2t); } ST(&(ri[WS(rs, 11)]), VSUB(T23, T2q), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 11)]), VSUB(T3A, T3x), ms, &(ii[WS(rs, 1)])); ST(&(ri[WS(rs, 3)]), VADD(T23, T2q), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 3)]), VADD(T3x, T3A), ms, &(ii[WS(rs, 1)])); ST(&(ri[WS(rs, 15)]), VSUB(T2r, T2u), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 15)]), VSUB(T3C, T3B), ms, &(ii[WS(rs, 1)])); ST(&(ri[WS(rs, 7)]), VADD(T2r, T2u), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 7)]), VADD(T3B, T3C), ms, &(ii[WS(rs, 1)])); } { V T2P, T31, T3m, T3o, T30, T3n, T34, T3j; { V T2L, T2O, T3k, T3l; T2L = VSUB(Tf, TA); T2O = VSUB(T2M, T2N); T2P = VADD(T2L, T2O); T31 = VSUB(T2L, T2O); T3k = VSUB(TZ, TM); T3l = VSUB(T3e, T3b); T3m = VADD(T3k, T3l); T3o = VSUB(T3l, T3k); } { V T2U, T2Z, T32, T33; T2U = VADD(T2Q, T2T); T2Z = VSUB(T2V, T2Y); T30 = VMUL(LDK(KP707106781), VADD(T2U, T2Z)); T3n = VMUL(LDK(KP707106781), VSUB(T2Z, T2U)); T32 = VSUB(T2T, T2Q); T33 = VADD(T2V, T2Y); T34 = VMUL(LDK(KP707106781), VSUB(T32, T33)); T3j = VMUL(LDK(KP707106781), VADD(T32, T33)); } ST(&(ri[WS(rs, 10)]), VSUB(T2P, T30), ms, &(ri[0])); ST(&(ii[WS(rs, 10)]), VSUB(T3m, T3j), ms, &(ii[0])); ST(&(ri[WS(rs, 2)]), VADD(T2P, T30), ms, &(ri[0])); ST(&(ii[WS(rs, 2)]), VADD(T3j, T3m), ms, &(ii[0])); ST(&(ri[WS(rs, 14)]), VSUB(T31, T34), ms, &(ri[0])); ST(&(ii[WS(rs, 14)]), VSUB(T3o, T3n), ms, &(ii[0])); ST(&(ri[WS(rs, 6)]), VADD(T31, T34), ms, &(ri[0])); ST(&(ii[WS(rs, 6)]), VADD(T3n, T3o), ms, &(ii[0])); } { V T2z, T2H, T3u, T3w, T2G, T3v, T2K, T3p; { V T2v, T2y, T3q, T3t; T2v = VADD(T1N, T1Q); T2y = VMUL(LDK(KP707106781), VADD(T2w, T2x)); T2z = VADD(T2v, T2y); T2H = VSUB(T2v, T2y); T3q = VMUL(LDK(KP707106781), VADD(T1W, T21)); T3t = VSUB(T3r, T3s); T3u = VADD(T3q, T3t); T3w = VSUB(T3t, T3q); } { V T2C, T2F, T2I, T2J; T2C = VFMA(LDK(KP382683432), T2A, VMUL(LDK(KP923879532), T2B)); T2F = VFNMS(LDK(KP382683432), T2E, VMUL(LDK(KP923879532), T2D)); T2G = VADD(T2C, T2F); T3v = VSUB(T2F, T2C); T2I = VFNMS(LDK(KP382683432), T2B, VMUL(LDK(KP923879532), T2A)); T2J = VFMA(LDK(KP923879532), T2E, VMUL(LDK(KP382683432), T2D)); T2K = VSUB(T2I, T2J); T3p = VADD(T2I, T2J); } ST(&(ri[WS(rs, 9)]), VSUB(T2z, T2G), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 9)]), VSUB(T3u, T3p), ms, &(ii[WS(rs, 1)])); ST(&(ri[WS(rs, 1)]), VADD(T2z, T2G), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 1)]), VADD(T3p, T3u), ms, &(ii[WS(rs, 1)])); ST(&(ri[WS(rs, 13)]), VSUB(T2H, T2K), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 13)]), VSUB(T3w, T3v), ms, &(ii[WS(rs, 1)])); ST(&(ri[WS(rs, 5)]), VADD(T2H, T2K), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 5)]), VADD(T3v, T3w), ms, &(ii[WS(rs, 1)])); } { V T11, T35, T3g, T3i, T1M, T3h, T38, T39; { V TB, T10, T3a, T3f; TB = VADD(Tf, TA); T10 = VADD(TM, TZ); T11 = VADD(TB, T10); T35 = VSUB(TB, T10); T3a = VADD(T2M, T2N); T3f = VADD(T3b, T3e); T3g = VADD(T3a, T3f); T3i = VSUB(T3f, T3a); } { V T1o, T1L, T36, T37; T1o = VADD(T18, T1n); T1L = VADD(T1B, T1K); T1M = VADD(T1o, T1L); T3h = VSUB(T1L, T1o); T36 = VADD(T2R, T2S); T37 = VADD(T2W, T2X); T38 = VSUB(T36, T37); T39 = VADD(T36, T37); } ST(&(ri[WS(rs, 8)]), VSUB(T11, T1M), ms, &(ri[0])); ST(&(ii[WS(rs, 8)]), VSUB(T3g, T39), ms, &(ii[0])); ST(&(ri[0]), VADD(T11, T1M), ms, &(ri[0])); ST(&(ii[0]), VADD(T39, T3g), ms, &(ii[0])); ST(&(ri[WS(rs, 12)]), VSUB(T35, T38), ms, &(ri[0])); ST(&(ii[WS(rs, 12)]), VSUB(T3i, T3h), ms, &(ii[0])); ST(&(ri[WS(rs, 4)]), VADD(T35, T38), ms, &(ri[0])); ST(&(ii[WS(rs, 4)]), VADD(T3h, T3i), ms, &(ii[0])); } } } } VLEAVE(); }
static void n2fv_8(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP707106781, +0.707106781186547524400844362104849039284835938); INT i; const R *xi; R *xo; xi = ri; xo = ro; for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(is), MAKE_VOLATILE_STRIDE(os)) { V T1, T2, Tc, Td, T4, T5, T7, T8; T1 = LD(&(xi[0]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); Tc = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); Td = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); T4 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T5 = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); T7 = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); T8 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); { V T3, Tj, Te, Tk, T6, Tm, T9, Tn, Tp, Tl; T3 = VSUB(T1, T2); Tj = VADD(T1, T2); Te = VSUB(Tc, Td); Tk = VADD(Tc, Td); T6 = VSUB(T4, T5); Tm = VADD(T4, T5); T9 = VSUB(T7, T8); Tn = VADD(T7, T8); Tp = VSUB(Tj, Tk); Tl = VADD(Tj, Tk); { V Tq, To, Ta, Tf; Tq = VSUB(Tn, Tm); To = VADD(Tm, Tn); Ta = VADD(T6, T9); Tf = VSUB(T9, T6); { V Tr, Ts, Tt, Tu, Tg, Ti, Tb, Th; Tr = VADD(Tl, To); STM2(&(xo[0]), Tr, ovs, &(xo[0])); Ts = VSUB(Tl, To); STM2(&(xo[8]), Ts, ovs, &(xo[0])); Tt = VFMAI(Tq, Tp); STM2(&(xo[4]), Tt, ovs, &(xo[0])); Tu = VFNMSI(Tq, Tp); STM2(&(xo[12]), Tu, ovs, &(xo[0])); Tg = VFNMS(LDK(KP707106781), Tf, Te); Ti = VFMA(LDK(KP707106781), Tf, Te); Tb = VFMA(LDK(KP707106781), Ta, T3); Th = VFNMS(LDK(KP707106781), Ta, T3); { V Tv, Tw, Tx, Ty; Tv = VFMAI(Ti, Th); STM2(&(xo[6]), Tv, ovs, &(xo[2])); STN2(&(xo[4]), Tt, Tv, ovs); Tw = VFNMSI(Ti, Th); STM2(&(xo[10]), Tw, ovs, &(xo[2])); STN2(&(xo[8]), Ts, Tw, ovs); Tx = VFMAI(Tg, Tb); STM2(&(xo[14]), Tx, ovs, &(xo[2])); STN2(&(xo[12]), Tu, Tx, ovs); Ty = VFNMSI(Tg, Tb); STM2(&(xo[2]), Ty, ovs, &(xo[2])); STN2(&(xo[0]), Tr, Ty, ovs); } } } } } }
static void t2sv_8(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP707106781, +0.707106781186547524400844362104849039284835938); { INT m; for (m = mb, W = W + (mb * 6); m < me; m = m + (2 * VL), ri = ri + ((2 * VL) * ms), ii = ii + ((2 * VL) * ms), W = W + ((2 * VL) * 6), MAKE_VOLATILE_STRIDE(rs)) { V T1m, T1l, T1k, T1u, T1n, T1o; { V T2, T3, Tl, Tn, T5, T6; T2 = LDW(&(W[0])); T3 = LDW(&(W[TWVL * 2])); Tl = LDW(&(W[TWVL * 4])); Tn = LDW(&(W[TWVL * 5])); T5 = LDW(&(W[TWVL * 1])); T6 = LDW(&(W[TWVL * 3])); { V T1, T1s, TK, T1r, Td, Tk, TG, TC, TY, Tu, TW, TL, TM, TO, TQ; V Tx, Tz, TD, TH; { V T8, T4, Tm, Tr, Tc, Ta; T1 = LD(&(ri[0]), ms, &(ri[0])); T1s = LD(&(ii[0]), ms, &(ii[0])); T8 = LD(&(ri[WS(rs, 4)]), ms, &(ri[0])); T4 = VMUL(T2, T3); Tm = VMUL(T2, Tl); Tr = VMUL(T2, Tn); Tc = LD(&(ii[WS(rs, 4)]), ms, &(ii[0])); Ta = VMUL(T2, T6); { V Tp, Tt, Tg, T7, Tf, To, Ts, Ti, Tb, Tj; Tp = LD(&(ri[WS(rs, 6)]), ms, &(ri[0])); Tt = LD(&(ii[WS(rs, 6)]), ms, &(ii[0])); Tg = LD(&(ri[WS(rs, 2)]), ms, &(ri[0])); T7 = VFNMS(T5, T6, T4); Tf = VFMA(T5, T6, T4); To = VFMA(T5, Tn, Tm); Ts = VFNMS(T5, Tl, Tr); Ti = VFNMS(T5, T3, Ta); Tb = VFMA(T5, T3, Ta); Tj = LD(&(ii[WS(rs, 2)]), ms, &(ii[0])); TK = LD(&(ri[WS(rs, 7)]), ms, &(ri[WS(rs, 1)])); { V T1q, T9, Th, TF; T1q = VMUL(T7, Tc); T9 = VMUL(T7, T8); Th = VMUL(Tf, Tg); TF = VMUL(Tf, Tn); { V TB, TX, Tq, TV; TB = VMUL(Tf, Tl); TX = VMUL(To, Tt); Tq = VMUL(To, Tp); TV = VMUL(Tf, Tj); T1r = VFNMS(Tb, T8, T1q); Td = VFMA(Tb, Tc, T9); Tk = VFMA(Ti, Tj, Th); TG = VFNMS(Ti, Tl, TF); TC = VFMA(Ti, Tn, TB); TY = VFNMS(Ts, Tp, TX); Tu = VFMA(Ts, Tt, Tq); TW = VFNMS(Ti, Tg, TV); TL = VMUL(Tl, TK); } } TM = LD(&(ii[WS(rs, 7)]), ms, &(ii[WS(rs, 1)])); TO = LD(&(ri[WS(rs, 3)]), ms, &(ri[WS(rs, 1)])); TQ = LD(&(ii[WS(rs, 3)]), ms, &(ii[WS(rs, 1)])); Tx = LD(&(ri[WS(rs, 1)]), ms, &(ri[WS(rs, 1)])); Tz = LD(&(ii[WS(rs, 1)]), ms, &(ii[WS(rs, 1)])); TD = LD(&(ri[WS(rs, 5)]), ms, &(ri[WS(rs, 1)])); TH = LD(&(ii[WS(rs, 5)]), ms, &(ii[WS(rs, 1)])); } } { V Te, T1p, T1g, T10, TS, T18, T1d, T1t, T1x, T1y, Tv, TJ, T11, T16; { V TN, T1a, TR, T1c, TA, T13, TI, T15; { V TU, T19, TP, T1b, Ty, T12, TE, T14, TZ; TU = VSUB(T1, Td); Te = VADD(T1, Td); TN = VFMA(Tn, TM, TL); T19 = VMUL(Tl, TM); TP = VMUL(T3, TO); T1b = VMUL(T3, TQ); Ty = VMUL(T2, Tx); T12 = VMUL(T2, Tz); TE = VMUL(TC, TD); T14 = VMUL(TC, TH); T1p = VADD(TW, TY); TZ = VSUB(TW, TY); T1a = VFNMS(Tn, TK, T19); TR = VFMA(T6, TQ, TP); T1c = VFNMS(T6, TO, T1b); TA = VFMA(T5, Tz, Ty); T13 = VFNMS(T5, Tx, T12); TI = VFMA(TG, TH, TE); T15 = VFNMS(TG, TD, T14); T1g = VSUB(TU, TZ); T10 = VADD(TU, TZ); } TS = VADD(TN, TR); T18 = VSUB(TN, TR); T1d = VSUB(T1a, T1c); T1m = VADD(T1a, T1c); T1t = VADD(T1r, T1s); T1x = VSUB(T1s, T1r); T1y = VSUB(Tk, Tu); Tv = VADD(Tk, Tu); TJ = VADD(TA, TI); T11 = VSUB(TA, TI); T16 = VSUB(T13, T15); T1l = VADD(T13, T15); } { V Tw, T1w, T1v, TT; { V T1i, T1e, T1B, T1z, T1h, T17; T1i = VADD(T18, T1d); T1e = VSUB(T18, T1d); T1B = VADD(T1y, T1x); T1z = VSUB(T1x, T1y); T1h = VSUB(T16, T11); T17 = VADD(T11, T16); T1k = VSUB(Te, Tv); Tw = VADD(Te, Tv); { V T1A, T1j, T1C, T1f; T1A = VADD(T1h, T1i); T1j = VSUB(T1h, T1i); T1C = VSUB(T1e, T17); T1f = VADD(T17, T1e); T1w = VSUB(T1t, T1p); T1u = VADD(T1p, T1t); T1v = VSUB(TS, TJ); TT = VADD(TJ, TS); ST(&(ii[WS(rs, 1)]), VFMA(LDK(KP707106781), T1A, T1z), ms, &(ii[WS(rs, 1)])); ST(&(ii[WS(rs, 5)]), VFNMS(LDK(KP707106781), T1A, T1z), ms, &(ii[WS(rs, 1)])); ST(&(ri[WS(rs, 3)]), VFMA(LDK(KP707106781), T1j, T1g), ms, &(ri[WS(rs, 1)])); ST(&(ri[WS(rs, 7)]), VFNMS(LDK(KP707106781), T1j, T1g), ms, &(ri[WS(rs, 1)])); ST(&(ii[WS(rs, 3)]), VFMA(LDK(KP707106781), T1C, T1B), ms, &(ii[WS(rs, 1)])); ST(&(ii[WS(rs, 7)]), VFNMS(LDK(KP707106781), T1C, T1B), ms, &(ii[WS(rs, 1)])); ST(&(ri[WS(rs, 1)]), VFMA(LDK(KP707106781), T1f, T10), ms, &(ri[WS(rs, 1)])); ST(&(ri[WS(rs, 5)]), VFNMS(LDK(KP707106781), T1f, T10), ms, &(ri[WS(rs, 1)])); } } ST(&(ri[WS(rs, 4)]), VSUB(Tw, TT), ms, &(ri[0])); ST(&(ri[0]), VADD(Tw, TT), ms, &(ri[0])); ST(&(ii[WS(rs, 6)]), VSUB(T1w, T1v), ms, &(ii[0])); ST(&(ii[WS(rs, 2)]), VADD(T1v, T1w), ms, &(ii[0])); } } } } T1n = VSUB(T1l, T1m); T1o = VADD(T1l, T1m); ST(&(ii[0]), VADD(T1o, T1u), ms, &(ii[0])); ST(&(ii[WS(rs, 4)]), VSUB(T1u, T1o), ms, &(ii[0])); ST(&(ri[WS(rs, 2)]), VADD(T1k, T1n), ms, &(ri[0])); ST(&(ri[WS(rs, 6)]), VSUB(T1k, T1n), ms, &(ri[0])); } } VLEAVE(); }
static const R *t1fv_8(R *ri, R *ii, const R *W, stride ios, INT m, INT dist) { DVK(KP707106781, +0.707106781186547524400844362104849039284835938); INT i; R *x; x = ri; for (i = m; i > 0; i = i - VL, x = x + (VL * dist), W = W + (TWVL * 14), MAKE_VOLATILE_STRIDE(ios)) { V T4, Tq, Tm, Tr, T9, Tt, Te, Tu, T1, T3, T2; T1 = LD(&(x[0]), dist, &(x[0])); T2 = LD(&(x[WS(ios, 4)]), dist, &(x[0])); T3 = BYTWJ(&(W[TWVL * 6]), T2); T4 = VSUB(T1, T3); Tq = VADD(T1, T3); { V Tj, Tl, Ti, Tk; Ti = LD(&(x[WS(ios, 2)]), dist, &(x[0])); Tj = BYTWJ(&(W[TWVL * 2]), Ti); Tk = LD(&(x[WS(ios, 6)]), dist, &(x[0])); Tl = BYTWJ(&(W[TWVL * 10]), Tk); Tm = VSUB(Tj, Tl); Tr = VADD(Tj, Tl); } { V T6, T8, T5, T7; T5 = LD(&(x[WS(ios, 1)]), dist, &(x[WS(ios, 1)])); T6 = BYTWJ(&(W[0]), T5); T7 = LD(&(x[WS(ios, 5)]), dist, &(x[WS(ios, 1)])); T8 = BYTWJ(&(W[TWVL * 8]), T7); T9 = VSUB(T6, T8); Tt = VADD(T6, T8); } { V Tb, Td, Ta, Tc; Ta = LD(&(x[WS(ios, 7)]), dist, &(x[WS(ios, 1)])); Tb = BYTWJ(&(W[TWVL * 12]), Ta); Tc = LD(&(x[WS(ios, 3)]), dist, &(x[WS(ios, 1)])); Td = BYTWJ(&(W[TWVL * 4]), Tc); Te = VSUB(Tb, Td); Tu = VADD(Tb, Td); } { V Ts, Tv, Tw, Tx; Ts = VADD(Tq, Tr); Tv = VADD(Tt, Tu); ST(&(x[WS(ios, 4)]), VSUB(Ts, Tv), dist, &(x[0])); ST(&(x[0]), VADD(Ts, Tv), dist, &(x[0])); Tw = VSUB(Tq, Tr); Tx = VBYI(VSUB(Tu, Tt)); ST(&(x[WS(ios, 6)]), VSUB(Tw, Tx), dist, &(x[0])); ST(&(x[WS(ios, 2)]), VADD(Tw, Tx), dist, &(x[0])); { V Tg, To, Tn, Tp, Tf, Th; Tf = VMUL(LDK(KP707106781), VADD(T9, Te)); Tg = VADD(T4, Tf); To = VSUB(T4, Tf); Th = VMUL(LDK(KP707106781), VSUB(Te, T9)); Tn = VBYI(VSUB(Th, Tm)); Tp = VBYI(VADD(Tm, Th)); ST(&(x[WS(ios, 7)]), VSUB(Tg, Tn), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 3)]), VADD(To, Tp), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 1)]), VADD(Tg, Tn), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 5)]), VSUB(To, Tp), dist, &(x[WS(ios, 1)])); } } } return W; }
static void n2bv_16(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP382683432, +0.382683432365089771728459984030398866761344562); DVK(KP923879532, +0.923879532511286756128183189396788286822416626); DVK(KP707106781, +0.707106781186547524400844362104849039284835938); INT i; const R *xi; R *xo; xi = ii; xo = io; for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(is), MAKE_VOLATILE_STRIDE(os)) { V Tp, T13, Tu, TY, Tm, T14, Tv, TU, T7, T16, Tx, TN, Te, T17, Ty; V TQ; { V Tn, To, TX, Ts, Tt, TW; Tn = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); To = LD(&(xi[WS(is, 12)]), ivs, &(xi[0])); TX = VADD(Tn, To); Ts = LD(&(xi[0]), ivs, &(xi[0])); Tt = LD(&(xi[WS(is, 8)]), ivs, &(xi[0])); TW = VADD(Ts, Tt); Tp = VSUB(Tn, To); T13 = VADD(TW, TX); Tu = VSUB(Ts, Tt); TY = VSUB(TW, TX); } { V Ti, TS, Tl, TT; { V Tg, Th, Tj, Tk; Tg = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); Th = LD(&(xi[WS(is, 10)]), ivs, &(xi[0])); Ti = VSUB(Tg, Th); TS = VADD(Tg, Th); Tj = LD(&(xi[WS(is, 14)]), ivs, &(xi[0])); Tk = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); Tl = VSUB(Tj, Tk); TT = VADD(Tj, Tk); } Tm = VMUL(LDK(KP707106781), VSUB(Ti, Tl)); T14 = VADD(TS, TT); Tv = VMUL(LDK(KP707106781), VADD(Ti, Tl)); TU = VSUB(TS, TT); } { V T3, TL, T6, TM; { V T1, T2, T4, T5; T1 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T2 = LD(&(xi[WS(is, 9)]), ivs, &(xi[WS(is, 1)])); T3 = VSUB(T1, T2); TL = VADD(T1, T2); T4 = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); T5 = LD(&(xi[WS(is, 13)]), ivs, &(xi[WS(is, 1)])); T6 = VSUB(T4, T5); TM = VADD(T4, T5); } T7 = VFNMS(LDK(KP382683432), T6, VMUL(LDK(KP923879532), T3)); T16 = VADD(TL, TM); Tx = VFMA(LDK(KP382683432), T3, VMUL(LDK(KP923879532), T6)); TN = VSUB(TL, TM); } { V Ta, TO, Td, TP; { V T8, T9, Tb, Tc; T8 = LD(&(xi[WS(is, 15)]), ivs, &(xi[WS(is, 1)])); T9 = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); Ta = VSUB(T8, T9); TO = VADD(T8, T9); Tb = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); Tc = LD(&(xi[WS(is, 11)]), ivs, &(xi[WS(is, 1)])); Td = VSUB(Tb, Tc); TP = VADD(Tb, Tc); } Te = VFMA(LDK(KP923879532), Ta, VMUL(LDK(KP382683432), Td)); T17 = VADD(TO, TP); Ty = VFNMS(LDK(KP382683432), Ta, VMUL(LDK(KP923879532), Td)); TQ = VSUB(TO, TP); } { V T1b, T1c, T1d, T1e; { V T15, T18, T19, T1a; T15 = VSUB(T13, T14); T18 = VBYI(VSUB(T16, T17)); T1b = VSUB(T15, T18); STM2(&(xo[24]), T1b, ovs, &(xo[0])); T1c = VADD(T15, T18); STM2(&(xo[8]), T1c, ovs, &(xo[0])); T19 = VADD(T13, T14); T1a = VADD(T16, T17); T1d = VSUB(T19, T1a); STM2(&(xo[16]), T1d, ovs, &(xo[0])); T1e = VADD(T19, T1a); STM2(&(xo[0]), T1e, ovs, &(xo[0])); } { V T1f, T1g, T1h, T1i; { V TV, T11, T10, T12, TR, TZ; TR = VMUL(LDK(KP707106781), VSUB(TN, TQ)); TV = VBYI(VSUB(TR, TU)); T11 = VBYI(VADD(TU, TR)); TZ = VMUL(LDK(KP707106781), VADD(TN, TQ)); T10 = VSUB(TY, TZ); T12 = VADD(TY, TZ); T1f = VADD(TV, T10); STM2(&(xo[12]), T1f, ovs, &(xo[0])); T1g = VSUB(T12, T11); STM2(&(xo[28]), T1g, ovs, &(xo[0])); T1h = VSUB(T10, TV); STM2(&(xo[20]), T1h, ovs, &(xo[0])); T1i = VADD(T11, T12); STM2(&(xo[4]), T1i, ovs, &(xo[0])); } { V Tr, TB, TA, TC; { V Tf, Tq, Tw, Tz; Tf = VSUB(T7, Te); Tq = VSUB(Tm, Tp); Tr = VBYI(VSUB(Tf, Tq)); TB = VBYI(VADD(Tq, Tf)); Tw = VSUB(Tu, Tv); Tz = VSUB(Tx, Ty); TA = VSUB(Tw, Tz); TC = VADD(Tw, Tz); } { V T1j, T1k, T1l, T1m; T1j = VADD(Tr, TA); STM2(&(xo[10]), T1j, ovs, &(xo[2])); STN2(&(xo[8]), T1c, T1j, ovs); T1k = VSUB(TC, TB); STM2(&(xo[26]), T1k, ovs, &(xo[2])); STN2(&(xo[24]), T1b, T1k, ovs); T1l = VSUB(TA, Tr); STM2(&(xo[22]), T1l, ovs, &(xo[2])); STN2(&(xo[20]), T1h, T1l, ovs); T1m = VADD(TB, TC); STM2(&(xo[6]), T1m, ovs, &(xo[2])); STN2(&(xo[4]), T1i, T1m, ovs); } } { V TF, TJ, TI, TK; { V TD, TE, TG, TH; TD = VADD(Tu, Tv); TE = VADD(T7, Te); TF = VADD(TD, TE); TJ = VSUB(TD, TE); TG = VADD(Tp, Tm); TH = VADD(Tx, Ty); TI = VBYI(VADD(TG, TH)); TK = VBYI(VSUB(TH, TG)); } { V T1n, T1o, T1p, T1q; T1n = VSUB(TF, TI); STM2(&(xo[30]), T1n, ovs, &(xo[2])); STN2(&(xo[28]), T1g, T1n, ovs); T1o = VADD(TJ, TK); STM2(&(xo[14]), T1o, ovs, &(xo[2])); STN2(&(xo[12]), T1f, T1o, ovs); T1p = VADD(TF, TI); STM2(&(xo[2]), T1p, ovs, &(xo[2])); STN2(&(xo[0]), T1e, T1p, ovs); T1q = VSUB(TJ, TK); STM2(&(xo[18]), T1q, ovs, &(xo[2])); STN2(&(xo[16]), T1d, T1q, ovs); } } } } } }
static void n1fv_7(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP900968867, +0.900968867902419126236102319507445051165919162); DVK(KP692021471, +0.692021471630095869627814897002069140197260599); DVK(KP801937735, +0.801937735804838252472204639014890102331838324); DVK(KP974927912, +0.974927912181823607018131682993931217232785801); DVK(KP356895867, +0.356895867892209443894399510021300583399127187); DVK(KP554958132, +0.554958132087371191422194871006410481067288862); { INT i; const R *xi; R *xo; xi = ri; xo = ro; for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(14, is), MAKE_VOLATILE_STRIDE(14, os)) { V T1, T2, T3, T8, T9, T5, T6; T1 = LD(&(xi[0]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T3 = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); T8 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T9 = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); T5 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T6 = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); { V Te, T4, Tf, Ta, Tg, T7; Te = VSUB(T3, T2); T4 = VADD(T2, T3); Tf = VSUB(T9, T8); Ta = VADD(T8, T9); Tg = VSUB(T6, T5); T7 = VADD(T5, T6); { V Tm, Tb, Tr, Th, Tj, To; Tm = VFMA(LDK(KP554958132), Tf, Te); Tb = VFNMS(LDK(KP356895867), T4, Ta); Tr = VFNMS(LDK(KP554958132), Te, Tg); Th = VFMA(LDK(KP554958132), Tg, Tf); ST(&(xo[0]), VADD(T1, VADD(T4, VADD(T7, Ta))), ovs, &(xo[0])); Tj = VFNMS(LDK(KP356895867), T7, T4); To = VFNMS(LDK(KP356895867), Ta, T7); { V Tn, Tc, Ts, Ti; Tn = VMUL(LDK(KP974927912), VFMA(LDK(KP801937735), Tm, Tg)); Tc = VFNMS(LDK(KP692021471), Tb, T7); Ts = VMUL(LDK(KP974927912), VFNMS(LDK(KP801937735), Tr, Tf)); Ti = VMUL(LDK(KP974927912), VFNMS(LDK(KP801937735), Th, Te)); { V Tk, Tp, Td, Tl, Tq; Tk = VFNMS(LDK(KP692021471), Tj, Ta); Tp = VFNMS(LDK(KP692021471), To, T4); Td = VFNMS(LDK(KP900968867), Tc, T1); Tl = VFNMS(LDK(KP900968867), Tk, T1); Tq = VFNMS(LDK(KP900968867), Tp, T1); ST(&(xo[WS(os, 2)]), VFMAI(Ti, Td), ovs, &(xo[0])); ST(&(xo[WS(os, 5)]), VFNMSI(Ti, Td), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 1)]), VFMAI(Tn, Tl), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 6)]), VFNMSI(Tn, Tl), ovs, &(xo[0])); ST(&(xo[WS(os, 3)]), VFMAI(Ts, Tq), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 4)]), VFNMSI(Ts, Tq), ovs, &(xo[0])); } } } } } } VLEAVE(); }
static void n2fv_8(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, int v, int ivs, int ovs) { DVK(KP707106781, +0.707106781186547524400844362104849039284835938); int i; const R *xi; R *xo; xi = ri; xo = ro; BEGIN_SIMD(); for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs)) { V T3, Tj, Tf, Tk, Ta, Tn, Tc, Tm; { V T1, T2, Td, Te; T1 = LD(&(xi[0]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); T3 = VSUB(T1, T2); Tj = VADD(T1, T2); Td = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); Te = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); Tf = VSUB(Td, Te); Tk = VADD(Td, Te); { V T4, T5, T6, T7, T8, T9; T4 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T5 = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); T6 = VSUB(T4, T5); T7 = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); T8 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T9 = VSUB(T7, T8); Ta = VMUL(LDK(KP707106781), VADD(T6, T9)); Tn = VADD(T7, T8); Tc = VMUL(LDK(KP707106781), VSUB(T9, T6)); Tm = VADD(T4, T5); } } { V Tb, Tg, Tp, Tq; Tb = VADD(T3, Ta); Tg = VBYI(VSUB(Tc, Tf)); ST(&(xo[14]), VSUB(Tb, Tg), ovs, &(xo[2])); ST(&(xo[2]), VADD(Tb, Tg), ovs, &(xo[2])); Tp = VSUB(Tj, Tk); Tq = VBYI(VSUB(Tn, Tm)); ST(&(xo[12]), VSUB(Tp, Tq), ovs, &(xo[0])); ST(&(xo[4]), VADD(Tp, Tq), ovs, &(xo[0])); } { V Th, Ti, Tl, To; Th = VSUB(T3, Ta); Ti = VBYI(VADD(Tf, Tc)); ST(&(xo[10]), VSUB(Th, Ti), ovs, &(xo[2])); ST(&(xo[6]), VADD(Th, Ti), ovs, &(xo[2])); Tl = VADD(Tj, Tk); To = VADD(Tm, Tn); ST(&(xo[8]), VSUB(Tl, To), ovs, &(xo[0])); ST(&(xo[0]), VADD(Tl, To), ovs, &(xo[0])); } } END_SIMD(); }
static void t3bv_16(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP382683432, +0.382683432365089771728459984030398866761344562); DVK(KP923879532, +0.923879532511286756128183189396788286822416626); DVK(KP707106781, +0.707106781186547524400844362104849039284835938); { INT m; R *x; x = ii; for (m = mb, W = W + (mb * ((TWVL / VL) * 8)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 8), MAKE_VOLATILE_STRIDE(16, rs)) { V T1, T8, T9, Tl, Ti, TE, T4, Ta, TO, TV, Td, Tm, TA, TH, Ts; T1 = LDW(&(W[0])); T8 = LDW(&(W[TWVL * 2])); T9 = VZMUL(T1, T8); Tl = VZMULJ(T1, T8); Ti = LDW(&(W[TWVL * 6])); TE = VZMULJ(T1, Ti); T4 = LDW(&(W[TWVL * 4])); Ta = VZMULJ(T9, T4); TO = VZMUL(T8, T4); TV = VZMULJ(T1, T4); Td = VZMUL(T9, T4); Tm = VZMULJ(Tl, T4); TA = VZMUL(T1, T4); TH = VZMULJ(T8, T4); Ts = VZMUL(Tl, T4); { V TY, T1q, TR, T1r, T1m, T1n, TL, TZ, T1f, T1g, T1h, Th, T11, T1i, T1j; V T1k, Tw, T12, TU, TX, TW; TU = LD(&(x[0]), ms, &(x[0])); TW = LD(&(x[WS(rs, 8)]), ms, &(x[0])); TX = VZMUL(TV, TW); TY = VSUB(TU, TX); T1q = VADD(TU, TX); { V TN, TQ, TM, TP; TM = LD(&(x[WS(rs, 4)]), ms, &(x[0])); TN = VZMUL(T9, TM); TP = LD(&(x[WS(rs, 12)]), ms, &(x[0])); TQ = VZMUL(TO, TP); TR = VSUB(TN, TQ); T1r = VADD(TN, TQ); } { V Tz, TJ, TC, TG, TD, TK; { V Ty, TI, TB, TF; Ty = LD(&(x[WS(rs, 2)]), ms, &(x[0])); Tz = VZMUL(Tl, Ty); TI = LD(&(x[WS(rs, 6)]), ms, &(x[0])); TJ = VZMUL(TH, TI); TB = LD(&(x[WS(rs, 10)]), ms, &(x[0])); TC = VZMUL(TA, TB); TF = LD(&(x[WS(rs, 14)]), ms, &(x[0])); TG = VZMUL(TE, TF); } T1m = VADD(Tz, TC); T1n = VADD(TG, TJ); TD = VSUB(Tz, TC); TK = VSUB(TG, TJ); TL = VMUL(LDK(KP707106781), VSUB(TD, TK)); TZ = VMUL(LDK(KP707106781), VADD(TD, TK)); } { V T3, Tf, T6, Tc, T7, Tg; { V T2, Te, T5, Tb; T2 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); T3 = VZMUL(T1, T2); Te = LD(&(x[WS(rs, 13)]), ms, &(x[WS(rs, 1)])); Tf = VZMUL(Td, Te); T5 = LD(&(x[WS(rs, 9)]), ms, &(x[WS(rs, 1)])); T6 = VZMUL(T4, T5); Tb = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); Tc = VZMUL(Ta, Tb); } T1f = VADD(T3, T6); T1g = VADD(Tc, Tf); T1h = VSUB(T1f, T1g); T7 = VSUB(T3, T6); Tg = VSUB(Tc, Tf); Th = VFNMS(LDK(KP382683432), Tg, VMUL(LDK(KP923879532), T7)); T11 = VFMA(LDK(KP382683432), T7, VMUL(LDK(KP923879532), Tg)); } { V Tk, Tu, To, Tr, Tp, Tv; { V Tj, Tt, Tn, Tq; Tj = LD(&(x[WS(rs, 15)]), ms, &(x[WS(rs, 1)])); Tk = VZMUL(Ti, Tj); Tt = LD(&(x[WS(rs, 11)]), ms, &(x[WS(rs, 1)])); Tu = VZMUL(Ts, Tt); Tn = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); To = VZMUL(Tm, Tn); Tq = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); Tr = VZMUL(T8, Tq); } T1i = VADD(Tk, To); T1j = VADD(Tr, Tu); T1k = VSUB(T1i, T1j); Tp = VSUB(Tk, To); Tv = VSUB(Tr, Tu); Tw = VFMA(LDK(KP923879532), Tp, VMUL(LDK(KP382683432), Tv)); T12 = VFNMS(LDK(KP382683432), Tp, VMUL(LDK(KP923879532), Tv)); } { V T1p, T1v, T1u, T1w; { V T1l, T1o, T1s, T1t; T1l = VMUL(LDK(KP707106781), VSUB(T1h, T1k)); T1o = VSUB(T1m, T1n); T1p = VBYI(VSUB(T1l, T1o)); T1v = VBYI(VADD(T1o, T1l)); T1s = VSUB(T1q, T1r); T1t = VMUL(LDK(KP707106781), VADD(T1h, T1k)); T1u = VSUB(T1s, T1t); T1w = VADD(T1s, T1t); } ST(&(x[WS(rs, 6)]), VADD(T1p, T1u), ms, &(x[0])); ST(&(x[WS(rs, 14)]), VSUB(T1w, T1v), ms, &(x[0])); ST(&(x[WS(rs, 10)]), VSUB(T1u, T1p), ms, &(x[0])); ST(&(x[WS(rs, 2)]), VADD(T1v, T1w), ms, &(x[0])); } { V T1z, T1D, T1C, T1E; { V T1x, T1y, T1A, T1B; T1x = VADD(T1q, T1r); T1y = VADD(T1m, T1n); T1z = VSUB(T1x, T1y); T1D = VADD(T1x, T1y); T1A = VADD(T1f, T1g); T1B = VADD(T1i, T1j); T1C = VBYI(VSUB(T1A, T1B)); T1E = VADD(T1A, T1B); } ST(&(x[WS(rs, 12)]), VSUB(T1z, T1C), ms, &(x[0])); ST(&(x[0]), VADD(T1D, T1E), ms, &(x[0])); ST(&(x[WS(rs, 4)]), VADD(T1z, T1C), ms, &(x[0])); ST(&(x[WS(rs, 8)]), VSUB(T1D, T1E), ms, &(x[0])); } { V TT, T15, T14, T16; { V Tx, TS, T10, T13; Tx = VSUB(Th, Tw); TS = VSUB(TL, TR); TT = VBYI(VSUB(Tx, TS)); T15 = VBYI(VADD(TS, Tx)); T10 = VSUB(TY, TZ); T13 = VSUB(T11, T12); T14 = VSUB(T10, T13); T16 = VADD(T10, T13); } ST(&(x[WS(rs, 5)]), VADD(TT, T14), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 13)]), VSUB(T16, T15), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 11)]), VSUB(T14, TT), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 3)]), VADD(T15, T16), ms, &(x[WS(rs, 1)])); } { V T19, T1d, T1c, T1e; { V T17, T18, T1a, T1b; T17 = VADD(TY, TZ); T18 = VADD(Th, Tw); T19 = VADD(T17, T18); T1d = VSUB(T17, T18); T1a = VADD(TR, TL); T1b = VADD(T11, T12); T1c = VBYI(VADD(T1a, T1b)); T1e = VBYI(VSUB(T1b, T1a)); } ST(&(x[WS(rs, 15)]), VSUB(T19, T1c), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 7)]), VADD(T1d, T1e), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 1)]), VADD(T19, T1c), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 9)]), VSUB(T1d, T1e), ms, &(x[WS(rs, 1)])); } } } } VLEAVE(); }
static void n2bv_14(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP801937735, +0.801937735804838252472204639014890102331838324); DVK(KP974927912, +0.974927912181823607018131682993931217232785801); DVK(KP554958132, +0.554958132087371191422194871006410481067288862); DVK(KP900968867, +0.900968867902419126236102319507445051165919162); DVK(KP692021471, +0.692021471630095869627814897002069140197260599); DVK(KP356895867, +0.356895867892209443894399510021300583399127187); { INT i; const R *xi; R *xo; xi = ii; xo = io; for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(28, is), MAKE_VOLATILE_STRIDE(28, os)) { V T3, TH, Ts, TV, TW, Tt, Tu, TU, Ta, To, Th, Tp, TC, Tx, TK; V TQ, TN, TR, T14, TZ, T1, T2; T1 = LD(&(xi[0]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); T3 = VSUB(T1, T2); TH = VADD(T1, T2); { V T6, TI, T9, TJ, Tn, TP, Tk, TO, Tg, TM, Td, TL; { V T4, T5, Ti, Tj; T4 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T5 = LD(&(xi[WS(is, 9)]), ivs, &(xi[WS(is, 1)])); T6 = VSUB(T4, T5); TI = VADD(T4, T5); { V T7, T8, Tl, Tm; T7 = LD(&(xi[WS(is, 12)]), ivs, &(xi[0])); T8 = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); T9 = VSUB(T7, T8); TJ = VADD(T7, T8); Tl = LD(&(xi[WS(is, 8)]), ivs, &(xi[0])); Tm = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); Tn = VSUB(Tl, Tm); TP = VADD(Tl, Tm); } Ti = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); Tj = LD(&(xi[WS(is, 13)]), ivs, &(xi[WS(is, 1)])); Tk = VSUB(Ti, Tj); TO = VADD(Ti, Tj); { V Te, Tf, Tb, Tc; Te = LD(&(xi[WS(is, 10)]), ivs, &(xi[0])); Tf = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); Tg = VSUB(Te, Tf); TM = VADD(Te, Tf); Tb = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); Tc = LD(&(xi[WS(is, 11)]), ivs, &(xi[WS(is, 1)])); Td = VSUB(Tb, Tc); TL = VADD(Tb, Tc); } } Ts = VSUB(Tk, Tn); TV = VSUB(TP, TO); TW = VSUB(TM, TL); Tt = VSUB(Td, Tg); Tu = VSUB(T6, T9); TU = VSUB(TI, TJ); Ta = VADD(T6, T9); To = VADD(Tk, Tn); Th = VADD(Td, Tg); Tp = VFNMS(LDK(KP356895867), To, Th); TC = VFNMS(LDK(KP356895867), Th, Ta); Tx = VFNMS(LDK(KP356895867), Ta, To); TK = VADD(TI, TJ); TQ = VADD(TO, TP); TN = VADD(TL, TM); TR = VFNMS(LDK(KP356895867), TK, TQ); T14 = VFNMS(LDK(KP356895867), TQ, TN); TZ = VFNMS(LDK(KP356895867), TN, TK); } { V T19, T1a, T1b, T1e, T1c, T1g, T1h; T19 = VADD(T3, VADD(Ta, VADD(Th, To))); STM2(&(xo[14]), T19, ovs, &(xo[2])); T1a = VADD(TH, VADD(TK, VADD(TN, TQ))); STM2(&(xo[0]), T1a, ovs, &(xo[0])); { V Tr, Tw, Tq, Tv; Tq = VFNMS(LDK(KP692021471), Tp, Ta); Tr = VFNMS(LDK(KP900968867), Tq, T3); Tv = VFNMS(LDK(KP554958132), Tu, Tt); Tw = VMUL(LDK(KP974927912), VFNMS(LDK(KP801937735), Tv, Ts)); T1b = VFMAI(Tw, Tr); STM2(&(xo[6]), T1b, ovs, &(xo[2])); T1c = VFNMSI(Tw, Tr); STM2(&(xo[22]), T1c, ovs, &(xo[2])); } { V T16, T18, T15, T17, T1d; T15 = VFNMS(LDK(KP692021471), T14, TK); T16 = VFNMS(LDK(KP900968867), T15, TH); T17 = VFMA(LDK(KP554958132), TU, TW); T18 = VMUL(LDK(KP974927912), VFNMS(LDK(KP801937735), T17, TV)); T1d = VFNMSI(T18, T16); STM2(&(xo[20]), T1d, ovs, &(xo[0])); STN2(&(xo[20]), T1d, T1c, ovs); T1e = VFMAI(T18, T16); STM2(&(xo[8]), T1e, ovs, &(xo[0])); } { V Tz, TB, Ty, TA, T1f; Ty = VFNMS(LDK(KP692021471), Tx, Th); Tz = VFNMS(LDK(KP900968867), Ty, T3); TA = VFMA(LDK(KP554958132), Tt, Ts); TB = VMUL(LDK(KP974927912), VFNMS(LDK(KP801937735), TA, Tu)); T1f = VFNMSI(TB, Tz); STM2(&(xo[10]), T1f, ovs, &(xo[2])); STN2(&(xo[8]), T1e, T1f, ovs); T1g = VFMAI(TB, Tz); STM2(&(xo[18]), T1g, ovs, &(xo[2])); } { V TT, TY, TS, TX, T1i; TS = VFNMS(LDK(KP692021471), TR, TN); TT = VFNMS(LDK(KP900968867), TS, TH); TX = VFMA(LDK(KP554958132), TW, TV); TY = VMUL(LDK(KP974927912), VFMA(LDK(KP801937735), TX, TU)); T1h = VFNMSI(TY, TT); STM2(&(xo[24]), T1h, ovs, &(xo[0])); T1i = VFMAI(TY, TT); STM2(&(xo[4]), T1i, ovs, &(xo[0])); STN2(&(xo[4]), T1i, T1b, ovs); } { V T11, T13, T10, T12, T1j, T1k; T10 = VFNMS(LDK(KP692021471), TZ, TQ); T11 = VFNMS(LDK(KP900968867), T10, TH); T12 = VFNMS(LDK(KP554958132), TV, TU); T13 = VMUL(LDK(KP974927912), VFNMS(LDK(KP801937735), T12, TW)); T1j = VFNMSI(T13, T11); STM2(&(xo[16]), T1j, ovs, &(xo[0])); STN2(&(xo[16]), T1j, T1g, ovs); T1k = VFMAI(T13, T11); STM2(&(xo[12]), T1k, ovs, &(xo[0])); STN2(&(xo[12]), T1k, T19, ovs); } { V TE, TG, TD, TF, T1l, T1m; TD = VFNMS(LDK(KP692021471), TC, To); TE = VFNMS(LDK(KP900968867), TD, T3); TF = VFMA(LDK(KP554958132), Ts, Tu); TG = VMUL(LDK(KP974927912), VFMA(LDK(KP801937735), TF, Tt)); T1l = VFMAI(TG, TE); STM2(&(xo[2]), T1l, ovs, &(xo[2])); STN2(&(xo[0]), T1a, T1l, ovs); T1m = VFNMSI(TG, TE); STM2(&(xo[26]), T1m, ovs, &(xo[2])); STN2(&(xo[24]), T1h, T1m, ovs); } } } } VLEAVE(); }
static void t3bv_16(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP923879532, +0.923879532511286756128183189396788286822416626); DVK(KP414213562, +0.414213562373095048801688724209698078569671875); DVK(KP707106781, +0.707106781186547524400844362104849039284835938); { INT m; R *x; x = ii; for (m = mb, W = W + (mb * ((TWVL / VL) * 8)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 8), MAKE_VOLATILE_STRIDE(16, rs)) { V T13, Tg, TY, T14, T1A, T1q, T1f, T1x, T1r, T1i, Tt, T16, TB, T1j, T1k; V TH; { V T2, T8, Tu, T3; T2 = LDW(&(W[0])); T8 = LDW(&(W[TWVL * 2])); Tu = LDW(&(W[TWVL * 6])); T3 = LDW(&(W[TWVL * 4])); { V Ty, T1o, Tf, T1b, T7, Tr, TQ, TX, T1g, Tl, To, Tw, TG, Tz, T1p; V T1e, TC; { V T1, T5, Ta, Td; T1 = LD(&(x[0]), ms, &(x[0])); T5 = LD(&(x[WS(rs, 8)]), ms, &(x[0])); Ta = LD(&(x[WS(rs, 4)]), ms, &(x[0])); Td = LD(&(x[WS(rs, 12)]), ms, &(x[0])); { V TR, TN, TM, TE, Tb, Tp, Tm, Te, T6, TW, TO, TS; { V TL, Tx, T9, TU, Tc, T4, TV; TL = LD(&(x[WS(rs, 2)]), ms, &(x[0])); Tx = VZMULJ(T2, T8); T9 = VZMUL(T2, T8); TR = VZMULJ(T2, Tu); TU = VZMULJ(T8, T3); Tc = VZMUL(T8, T3); T4 = VZMULJ(T2, T3); TN = VZMUL(T2, T3); TV = LD(&(x[WS(rs, 6)]), ms, &(x[0])); TM = VZMUL(Tx, TL); Ty = VZMULJ(Tx, T3); TE = VZMUL(Tx, T3); Tb = VZMUL(T9, Ta); Tp = VZMUL(T9, T3); Tm = VZMULJ(T9, T3); Te = VZMUL(Tc, Td); T6 = VZMUL(T4, T5); TW = VZMUL(TU, TV); } TO = LD(&(x[WS(rs, 10)]), ms, &(x[0])); TS = LD(&(x[WS(rs, 14)]), ms, &(x[0])); { V TP, TT, Ti, Tk, Tn, Th, Tq, Tj; Th = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); Tq = LD(&(x[WS(rs, 13)]), ms, &(x[WS(rs, 1)])); Tj = LD(&(x[WS(rs, 9)]), ms, &(x[WS(rs, 1)])); T1o = VSUB(Tb, Te); Tf = VADD(Tb, Te); T1b = VSUB(T1, T6); T7 = VADD(T1, T6); TP = VZMUL(TN, TO); TT = VZMUL(TR, TS); Ti = VZMUL(T2, Th); Tr = VZMUL(Tp, Tq); Tk = VZMUL(T3, Tj); Tn = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); { V T1c, T1d, Tv, TF; Tv = LD(&(x[WS(rs, 15)]), ms, &(x[WS(rs, 1)])); TF = LD(&(x[WS(rs, 11)]), ms, &(x[WS(rs, 1)])); T1c = VSUB(TM, TP); TQ = VADD(TM, TP); T1d = VSUB(TT, TW); TX = VADD(TT, TW); T1g = VSUB(Ti, Tk); Tl = VADD(Ti, Tk); To = VZMUL(Tm, Tn); Tw = VZMUL(Tu, Tv); TG = VZMUL(TE, TF); Tz = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); T1p = VSUB(T1c, T1d); T1e = VADD(T1c, T1d); TC = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); } } } } { V T1h, Ts, TA, TD; T13 = VADD(T7, Tf); Tg = VSUB(T7, Tf); T1h = VSUB(To, Tr); Ts = VADD(To, Tr); TY = VSUB(TQ, TX); T14 = VADD(TQ, TX); TA = VZMUL(Ty, Tz); T1A = VFNMS(LDK(KP707106781), T1p, T1o); T1q = VFMA(LDK(KP707106781), T1p, T1o); T1f = VFMA(LDK(KP707106781), T1e, T1b); T1x = VFNMS(LDK(KP707106781), T1e, T1b); TD = VZMUL(T8, TC); T1r = VFMA(LDK(KP414213562), T1g, T1h); T1i = VFNMS(LDK(KP414213562), T1h, T1g); Tt = VSUB(Tl, Ts); T16 = VADD(Tl, Ts); TB = VADD(Tw, TA); T1j = VSUB(Tw, TA); T1k = VSUB(TG, TD); TH = VADD(TD, TG); } } } { V T15, T19, T1l, T1s, TI, T17; T15 = VSUB(T13, T14); T19 = VADD(T13, T14); T1l = VFNMS(LDK(KP414213562), T1k, T1j); T1s = VFMA(LDK(KP414213562), T1j, T1k); TI = VSUB(TB, TH); T17 = VADD(TB, TH); { V T1y, T1t, T1B, T1m; T1y = VADD(T1r, T1s); T1t = VSUB(T1r, T1s); T1B = VSUB(T1i, T1l); T1m = VADD(T1i, T1l); { V T18, T1a, TJ, TZ; T18 = VSUB(T16, T17); T1a = VADD(T16, T17); TJ = VADD(Tt, TI); TZ = VSUB(Tt, TI); { V T1u, T1w, T1z, T1D; T1u = VFNMS(LDK(KP923879532), T1t, T1q); T1w = VFMA(LDK(KP923879532), T1t, T1q); T1z = VFNMS(LDK(KP923879532), T1y, T1x); T1D = VFMA(LDK(KP923879532), T1y, T1x); { V T1n, T1v, T1C, T1E; T1n = VFNMS(LDK(KP923879532), T1m, T1f); T1v = VFMA(LDK(KP923879532), T1m, T1f); T1C = VFMA(LDK(KP923879532), T1B, T1A); T1E = VFNMS(LDK(KP923879532), T1B, T1A); ST(&(x[WS(rs, 8)]), VSUB(T19, T1a), ms, &(x[0])); ST(&(x[0]), VADD(T19, T1a), ms, &(x[0])); ST(&(x[WS(rs, 4)]), VFMAI(T18, T15), ms, &(x[0])); ST(&(x[WS(rs, 12)]), VFNMSI(T18, T15), ms, &(x[0])); { V T10, T12, TK, T11; T10 = VFNMS(LDK(KP707106781), TZ, TY); T12 = VFMA(LDK(KP707106781), TZ, TY); TK = VFNMS(LDK(KP707106781), TJ, Tg); T11 = VFMA(LDK(KP707106781), TJ, Tg); ST(&(x[WS(rs, 15)]), VFNMSI(T1w, T1v), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 1)]), VFMAI(T1w, T1v), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 9)]), VFMAI(T1u, T1n), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 7)]), VFNMSI(T1u, T1n), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 3)]), VFNMSI(T1E, T1D), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 13)]), VFMAI(T1E, T1D), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 11)]), VFNMSI(T1C, T1z), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 5)]), VFMAI(T1C, T1z), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 2)]), VFMAI(T12, T11), ms, &(x[0])); ST(&(x[WS(rs, 14)]), VFNMSI(T12, T11), ms, &(x[0])); ST(&(x[WS(rs, 10)]), VFMAI(T10, TK), ms, &(x[0])); ST(&(x[WS(rs, 6)]), VFNMSI(T10, TK), ms, &(x[0])); } } } } } } } } VLEAVE(); }
static void t2bv_10(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP559016994, +0.559016994374947424102293417182819058860154590); DVK(KP250000000, +0.250000000000000000000000000000000000000000000); DVK(KP618033988, +0.618033988749894848204586834365638117720309180); DVK(KP951056516, +0.951056516295153572116439333379382143405698634); INT m; R *x; x = ii; for (m = mb, W = W + (mb * ((TWVL / VL) * 18)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 18), MAKE_VOLATILE_STRIDE(rs)) { V Td, TA, T4, Ta, Tk, TE, Tp, TF, TB, T9, T1, T2, Tb; T1 = LD(&(x[0]), ms, &(x[0])); T2 = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); { V Tg, Tn, Ti, Tl; Tg = LD(&(x[WS(rs, 4)]), ms, &(x[0])); Tn = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); Ti = LD(&(x[WS(rs, 9)]), ms, &(x[WS(rs, 1)])); Tl = LD(&(x[WS(rs, 6)]), ms, &(x[0])); { V T6, T8, T5, Tc; T5 = LD(&(x[WS(rs, 2)]), ms, &(x[0])); Tc = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); { V T3, Th, To, Tj, Tm, T7; T7 = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); T3 = BYTW(&(W[TWVL * 8]), T2); Th = BYTW(&(W[TWVL * 6]), Tg); To = BYTW(&(W[0]), Tn); Tj = BYTW(&(W[TWVL * 16]), Ti); Tm = BYTW(&(W[TWVL * 10]), Tl); T6 = BYTW(&(W[TWVL * 2]), T5); Td = BYTW(&(W[TWVL * 4]), Tc); T8 = BYTW(&(W[TWVL * 12]), T7); TA = VADD(T1, T3); T4 = VSUB(T1, T3); Ta = LD(&(x[WS(rs, 8)]), ms, &(x[0])); Tk = VSUB(Th, Tj); TE = VADD(Th, Tj); Tp = VSUB(Tm, To); TF = VADD(Tm, To); } TB = VADD(T6, T8); T9 = VSUB(T6, T8); } } Tb = BYTW(&(W[TWVL * 14]), Ta); { V TL, TG, Tw, Tq, TC, Te; TL = VSUB(TE, TF); TG = VADD(TE, TF); Tw = VSUB(Tk, Tp); Tq = VADD(Tk, Tp); TC = VADD(Tb, Td); Te = VSUB(Tb, Td); { V TM, TD, Tv, Tf; TM = VSUB(TB, TC); TD = VADD(TB, TC); Tv = VSUB(T9, Te); Tf = VADD(T9, Te); { V TP, TN, TH, TJ, Tz, Tx, Tr, Tt, TI, Ts; TP = VMUL(LDK(KP951056516), VFMA(LDK(KP618033988), TL, TM)); TN = VMUL(LDK(KP951056516), VFNMS(LDK(KP618033988), TM, TL)); TH = VADD(TD, TG); TJ = VSUB(TD, TG); Tz = VMUL(LDK(KP951056516), VFNMS(LDK(KP618033988), Tv, Tw)); Tx = VMUL(LDK(KP951056516), VFMA(LDK(KP618033988), Tw, Tv)); Tr = VADD(Tf, Tq); Tt = VSUB(Tf, Tq); ST(&(x[0]), VADD(TA, TH), ms, &(x[0])); TI = VFNMS(LDK(KP250000000), TH, TA); ST(&(x[WS(rs, 5)]), VADD(T4, Tr), ms, &(x[WS(rs, 1)])); Ts = VFNMS(LDK(KP250000000), Tr, T4); { V TK, TO, Tu, Ty; TK = VFNMS(LDK(KP559016994), TJ, TI); TO = VFMA(LDK(KP559016994), TJ, TI); Tu = VFMA(LDK(KP559016994), Tt, Ts); Ty = VFNMS(LDK(KP559016994), Tt, Ts); ST(&(x[WS(rs, 8)]), VFMAI(TN, TK), ms, &(x[0])); ST(&(x[WS(rs, 2)]), VFNMSI(TN, TK), ms, &(x[0])); ST(&(x[WS(rs, 6)]), VFMAI(TP, TO), ms, &(x[0])); ST(&(x[WS(rs, 4)]), VFNMSI(TP, TO), ms, &(x[0])); ST(&(x[WS(rs, 9)]), VFNMSI(Tx, Tu), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 1)]), VFMAI(Tx, Tu), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 7)]), VFNMSI(Tz, Ty), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 3)]), VFMAI(Tz, Ty), ms, &(x[WS(rs, 1)])); } } } } } }
static void t1fv_8(R *ri, R *ii, const R *W, stride rs, 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)) { V T1, T2, Th, Tj, T5, T7, Ta, Tc; T1 = LD(&(x[0]), ms, &(x[0])); T2 = LD(&(x[WS(rs, 4)]), ms, &(x[0])); Th = LD(&(x[WS(rs, 2)]), ms, &(x[0])); Tj = LD(&(x[WS(rs, 6)]), ms, &(x[0])); T5 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); T7 = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); Ta = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); Tc = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); { V T3, Ti, Tk, T6, T8, Tb, Td; T3 = BYTWJ(&(W[TWVL * 6]), T2); Ti = BYTWJ(&(W[TWVL * 2]), Th); Tk = BYTWJ(&(W[TWVL * 10]), Tj); T6 = BYTWJ(&(W[0]), T5); T8 = BYTWJ(&(W[TWVL * 8]), T7); Tb = BYTWJ(&(W[TWVL * 12]), Ta); Td = BYTWJ(&(W[TWVL * 4]), Tc); { V Tq, T4, Tr, Tl, Tt, T9, Tu, Te, Tw, Ts; Tq = VADD(T1, T3); T4 = VSUB(T1, T3); Tr = VADD(Ti, Tk); Tl = VSUB(Ti, Tk); Tt = VADD(T6, T8); T9 = VSUB(T6, T8); Tu = VADD(Tb, Td); Te = VSUB(Tb, Td); Tw = VSUB(Tq, Tr); Ts = VADD(Tq, Tr); { V Tx, Tv, Tm, Tf; Tx = VSUB(Tu, Tt); Tv = VADD(Tt, Tu); Tm = VSUB(Te, T9); Tf = VADD(T9, Te); { V Tp, Tn, To, Tg; ST(&(x[WS(rs, 2)]), VFMAI(Tx, Tw), ms, &(x[0])); ST(&(x[WS(rs, 6)]), VFNMSI(Tx, Tw), ms, &(x[0])); ST(&(x[0]), VADD(Ts, Tv), ms, &(x[0])); ST(&(x[WS(rs, 4)]), VSUB(Ts, Tv), ms, &(x[0])); Tp = VFMA(LDK(KP707106781), Tm, Tl); Tn = VFNMS(LDK(KP707106781), Tm, Tl); To = VFNMS(LDK(KP707106781), Tf, T4); Tg = VFMA(LDK(KP707106781), Tf, T4); ST(&(x[WS(rs, 5)]), VFNMSI(Tp, To), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 3)]), VFMAI(Tp, To), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 7)]), VFMAI(Tn, Tg), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 1)]), VFNMSI(Tn, Tg), ms, &(x[WS(rs, 1)])); } } } } } } VLEAVE(); }
static const R *t1fv_15(R *ri, R *ii, const R *W, stride ios, INT m, INT dist) { DVK(KP823639103, +0.823639103546331925877420039278190003029660514); DVK(KP910592997, +0.910592997310029334643087372129977886038870291); DVK(KP559016994, +0.559016994374947424102293417182819058860154590); DVK(KP951056516, +0.951056516295153572116439333379382143405698634); DVK(KP866025403, +0.866025403784438646763723170752936183471402627); DVK(KP250000000, +0.250000000000000000000000000000000000000000000); DVK(KP618033988, +0.618033988749894848204586834365638117720309180); DVK(KP500000000, +0.500000000000000000000000000000000000000000000); INT i; R *x; x = ri; for (i = m; i > 0; i = i - VL, x = x + (VL * dist), W = W + (TWVL * 28), MAKE_VOLATILE_STRIDE(ios)) { V Tq, Ty, Th, T1b, T10, Ts, TP, T7, Tu, TA, TC, Tj, Tk, TQ, Tf; { V T1, T4, T2, T9, Te; T1 = LD(&(x[0]), dist, &(x[0])); T4 = LD(&(x[WS(ios, 10)]), dist, &(x[0])); T2 = LD(&(x[WS(ios, 5)]), dist, &(x[WS(ios, 1)])); { V T8, Tp, Tx, Tg; T8 = LD(&(x[WS(ios, 3)]), dist, &(x[WS(ios, 1)])); Tp = LD(&(x[WS(ios, 6)]), dist, &(x[0])); Tx = LD(&(x[WS(ios, 9)]), dist, &(x[WS(ios, 1)])); Tg = LD(&(x[WS(ios, 12)]), dist, &(x[0])); { V Tb, Td, Tr, T6, Tt, Tz, TB, Ti; { V T5, T3, Ta, Tc; Ta = LD(&(x[WS(ios, 8)]), dist, &(x[0])); Tc = LD(&(x[WS(ios, 13)]), dist, &(x[WS(ios, 1)])); T5 = BYTWJ(&(W[TWVL * 18]), T4); T3 = BYTWJ(&(W[TWVL * 8]), T2); T9 = BYTWJ(&(W[TWVL * 4]), T8); Tq = BYTWJ(&(W[TWVL * 10]), Tp); Ty = BYTWJ(&(W[TWVL * 16]), Tx); Th = BYTWJ(&(W[TWVL * 22]), Tg); Tb = BYTWJ(&(W[TWVL * 14]), Ta); Td = BYTWJ(&(W[TWVL * 24]), Tc); Tr = LD(&(x[WS(ios, 11)]), dist, &(x[WS(ios, 1)])); T1b = VSUB(T5, T3); T6 = VADD(T3, T5); Tt = LD(&(x[WS(ios, 1)]), dist, &(x[WS(ios, 1)])); } Tz = LD(&(x[WS(ios, 14)]), dist, &(x[0])); TB = LD(&(x[WS(ios, 4)]), dist, &(x[0])); Ti = LD(&(x[WS(ios, 2)]), dist, &(x[0])); Te = VADD(Tb, Td); T10 = VSUB(Td, Tb); Ts = BYTWJ(&(W[TWVL * 20]), Tr); TP = VFNMS(LDK(KP500000000), T6, T1); T7 = VADD(T1, T6); Tu = BYTWJ(&(W[0]), Tt); TA = BYTWJ(&(W[TWVL * 26]), Tz); TC = BYTWJ(&(W[TWVL * 6]), TB); Tj = BYTWJ(&(W[TWVL * 2]), Ti); Tk = LD(&(x[WS(ios, 7)]), dist, &(x[WS(ios, 1)])); } } TQ = VFNMS(LDK(KP500000000), Te, T9); Tf = VADD(T9, Te); } { V Tv, T13, TD, T14, Tl; Tv = VADD(Ts, Tu); T13 = VSUB(Tu, Ts); TD = VADD(TA, TC); T14 = VSUB(TC, TA); Tl = BYTWJ(&(W[TWVL * 12]), Tk); { V TT, Tw, T1d, T15, TU, TE, T11, Tm; TT = VFNMS(LDK(KP500000000), Tv, Tq); Tw = VADD(Tq, Tv); T1d = VADD(T13, T14); T15 = VSUB(T13, T14); TU = VFNMS(LDK(KP500000000), TD, Ty); TE = VADD(Ty, TD); T11 = VSUB(Tl, Tj); Tm = VADD(Tj, Tl); { V T19, TV, TK, TF, T1c, T12, TR, Tn; T19 = VSUB(TT, TU); TV = VADD(TT, TU); TK = VSUB(Tw, TE); TF = VADD(Tw, TE); T1c = VADD(T10, T11); T12 = VSUB(T10, T11); TR = VFNMS(LDK(KP500000000), Tm, Th); Tn = VADD(Th, Tm); { V T1g, T1e, T1m, T16, T18, TS, TL, To, T1f, T1u; T1g = VSUB(T1c, T1d); T1e = VADD(T1c, T1d); T1m = VFNMS(LDK(KP618033988), T12, T15); T16 = VFMA(LDK(KP618033988), T15, T12); T18 = VSUB(TQ, TR); TS = VADD(TQ, TR); TL = VSUB(Tf, Tn); To = VADD(Tf, Tn); T1f = VFNMS(LDK(KP250000000), T1e, T1b); T1u = VMUL(LDK(KP866025403), VADD(T1b, T1e)); { V T1o, T1a, TY, TO, TM, TG, TI, T1p, T1h, T1t, TX, TW; T1o = VFNMS(LDK(KP618033988), T18, T19); T1a = VFMA(LDK(KP618033988), T19, T18); TW = VADD(TS, TV); TY = VSUB(TS, TV); TO = VMUL(LDK(KP951056516), VFMA(LDK(KP618033988), TK, TL)); TM = VMUL(LDK(KP951056516), VFNMS(LDK(KP618033988), TL, TK)); TG = VADD(To, TF); TI = VSUB(To, TF); T1p = VFNMS(LDK(KP559016994), T1g, T1f); T1h = VFMA(LDK(KP559016994), T1g, T1f); T1t = VADD(TP, TW); TX = VFNMS(LDK(KP250000000), TW, TP); { V T1q, T1s, T1k, T1i, T1l, TZ, TJ, TN, TH; ST(&(x[0]), VADD(T7, TG), dist, &(x[0])); TH = VFNMS(LDK(KP250000000), TG, T7); T1q = VMUL(LDK(KP951056516), VFNMS(LDK(KP910592997), T1p, T1o)); T1s = VMUL(LDK(KP951056516), VFMA(LDK(KP910592997), T1p, T1o)); T1k = VMUL(LDK(KP951056516), VFMA(LDK(KP910592997), T1h, T1a)); T1i = VMUL(LDK(KP951056516), VFNMS(LDK(KP910592997), T1h, T1a)); ST(&(x[WS(ios, 10)]), VFMAI(T1u, T1t), dist, &(x[0])); ST(&(x[WS(ios, 5)]), VFNMSI(T1u, T1t), dist, &(x[WS(ios, 1)])); T1l = VFNMS(LDK(KP559016994), TY, TX); TZ = VFMA(LDK(KP559016994), TY, TX); TJ = VFNMS(LDK(KP559016994), TI, TH); TN = VFMA(LDK(KP559016994), TI, TH); { V T1n, T1r, T1j, T17; T1n = VFMA(LDK(KP823639103), T1m, T1l); T1r = VFNMS(LDK(KP823639103), T1m, T1l); T1j = VFNMS(LDK(KP823639103), T16, TZ); T17 = VFMA(LDK(KP823639103), T16, TZ); ST(&(x[WS(ios, 12)]), VFMAI(TM, TJ), dist, &(x[0])); ST(&(x[WS(ios, 3)]), VFNMSI(TM, TJ), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 9)]), VFMAI(TO, TN), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 6)]), VFNMSI(TO, TN), dist, &(x[0])); ST(&(x[WS(ios, 2)]), VFMAI(T1q, T1n), dist, &(x[0])); ST(&(x[WS(ios, 13)]), VFNMSI(T1q, T1n), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 7)]), VFMAI(T1s, T1r), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 8)]), VFNMSI(T1s, T1r), dist, &(x[0])); ST(&(x[WS(ios, 4)]), VFMAI(T1k, T1j), dist, &(x[0])); ST(&(x[WS(ios, 11)]), VFNMSI(T1k, T1j), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 14)]), VFMAI(T1i, T17), dist, &(x[0])); ST(&(x[WS(ios, 1)]), VFNMSI(T1i, T17), dist, &(x[WS(ios, 1)])); } } } } } } } } return W; }
static void n1bv_11(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP959492973, +0.959492973614497389890368057066327699062454848); DVK(KP876768831, +0.876768831002589333891339807079336796764054852); DVK(KP918985947, +0.918985947228994779780736114132655398124909697); DVK(KP989821441, +0.989821441880932732376092037776718787376519372); DVK(KP778434453, +0.778434453334651800608337670740821884709317477); DVK(KP830830026, +0.830830026003772851058548298459246407048009821); DVK(KP372785597, +0.372785597771792209609773152906148328659002598); DVK(KP634356270, +0.634356270682424498893150776899916060542806975); DVK(KP715370323, +0.715370323453429719112414662767260662417897278); DVK(KP342584725, +0.342584725681637509502641509861112333758894680); DVK(KP521108558, +0.521108558113202722944698153526659300680427422); { INT i; const R *xi; R *xo; xi = ii; xo = io; for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(is), MAKE_VOLATILE_STRIDE(os)) { V T1, Tb, T4, Tq, Tg, Tm, T7, Tp, Ta, To, Tc, T11; T1 = LD(&(xi[0]), ivs, &(xi[0])); { V T2, T3, Te, Tf; T2 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T3 = LD(&(xi[WS(is, 10)]), ivs, &(xi[0])); Te = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); Tf = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); { V T5, T6, T8, T9; T5 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T6 = LD(&(xi[WS(is, 9)]), ivs, &(xi[WS(is, 1)])); T8 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T9 = LD(&(xi[WS(is, 8)]), ivs, &(xi[0])); Tb = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); T4 = VADD(T2, T3); Tq = VSUB(T2, T3); Tg = VADD(Te, Tf); Tm = VSUB(Te, Tf); T7 = VADD(T5, T6); Tp = VSUB(T5, T6); Ta = VADD(T8, T9); To = VSUB(T8, T9); Tc = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); } } T11 = VFMA(LDK(KP521108558), Tm, Tq); { V TA, TS, TE, TW, Td, Tn, Ts, Tw, Tr, Tv, TT, TF; Tr = VFNMS(LDK(KP521108558), Tq, Tp); Tv = VFNMS(LDK(KP342584725), T7, Tg); TA = VFMA(LDK(KP715370323), To, Tq); TS = VFMA(LDK(KP521108558), To, Tm); TE = VFNMS(LDK(KP342584725), T4, Ta); TW = VFNMS(LDK(KP342584725), Ta, T7); Td = VADD(Tb, Tc); Tn = VSUB(Tb, Tc); Ts = VFNMS(LDK(KP715370323), Tr, To); Tw = VFNMS(LDK(KP634356270), Tv, T4); TT = VFNMS(LDK(KP715370323), TS, Tp); TF = VFNMS(LDK(KP634356270), TE, Tg); { V Tu, TV, TD, TL, T14, TP, TZ, Tj, Tz, TI, TB, TJ, TM; TB = VFMA(LDK(KP372785597), Tn, TA); TJ = VFNMS(LDK(KP521108558), Tp, Tn); { V T12, TN, TX, Th; T12 = VFMA(LDK(KP715370323), T11, Tn); ST(&(xo[0]), VADD(Tg, VADD(Td, VADD(Ta, VADD(T7, VADD(T4, T1))))), ovs, &(xo[0])); TN = VFNMS(LDK(KP342584725), Td, T4); TX = VFNMS(LDK(KP634356270), TW, Td); Th = VFNMS(LDK(KP342584725), Tg, Td); { V Tt, Tx, TU, TG; Tt = VFNMS(LDK(KP830830026), Ts, Tn); Tx = VFNMS(LDK(KP778434453), Tw, Ta); TU = VFMA(LDK(KP830830026), TT, Tq); TG = VFNMS(LDK(KP778434453), TF, Td); { V TC, TK, T13, TO; TC = VFNMS(LDK(KP830830026), TB, Tm); TK = VFMA(LDK(KP715370323), TJ, Tm); T13 = VFMA(LDK(KP830830026), T12, Tp); TO = VFNMS(LDK(KP634356270), TN, T7); { V TY, Ti, Ty, TH; TY = VFNMS(LDK(KP778434453), TX, T4); Ti = VFNMS(LDK(KP634356270), Th, Ta); Tu = VMUL(LDK(KP989821441), VFNMS(LDK(KP918985947), Tt, Tm)); Ty = VFNMS(LDK(KP876768831), Tx, Td); TV = VMUL(LDK(KP989821441), VFNMS(LDK(KP918985947), TU, Tn)); TH = VFNMS(LDK(KP876768831), TG, T7); TD = VMUL(LDK(KP989821441), VFMA(LDK(KP918985947), TC, Tp)); TL = VFNMS(LDK(KP830830026), TK, To); T14 = VMUL(LDK(KP989821441), VFMA(LDK(KP918985947), T13, To)); TP = VFNMS(LDK(KP778434453), TO, Tg); TZ = VFNMS(LDK(KP876768831), TY, Tg); Tj = VFNMS(LDK(KP778434453), Ti, T7); Tz = VFNMS(LDK(KP959492973), Ty, T1); TI = VFNMS(LDK(KP959492973), TH, T1); } } } } TM = VMUL(LDK(KP989821441), VFNMS(LDK(KP918985947), TL, Tq)); { V TQ, T10, Tk, TR, Tl; TQ = VFNMS(LDK(KP876768831), TP, Ta); T10 = VFNMS(LDK(KP959492973), TZ, T1); Tk = VFNMS(LDK(KP876768831), Tj, T4); ST(&(xo[WS(os, 7)]), VFMAI(TD, Tz), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 4)]), VFNMSI(TD, Tz), ovs, &(xo[0])); ST(&(xo[WS(os, 8)]), VFNMSI(TM, TI), ovs, &(xo[0])); ST(&(xo[WS(os, 3)]), VFMAI(TM, TI), ovs, &(xo[WS(os, 1)])); TR = VFNMS(LDK(KP959492973), TQ, T1); ST(&(xo[WS(os, 10)]), VFNMSI(T14, T10), ovs, &(xo[0])); ST(&(xo[WS(os, 1)]), VFMAI(T14, T10), ovs, &(xo[WS(os, 1)])); Tl = VFNMS(LDK(KP959492973), Tk, T1); ST(&(xo[WS(os, 9)]), VFMAI(TV, TR), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 2)]), VFNMSI(TV, TR), ovs, &(xo[0])); ST(&(xo[WS(os, 6)]), VFNMSI(Tu, Tl), ovs, &(xo[0])); ST(&(xo[WS(os, 5)]), VFMAI(Tu, Tl), ovs, &(xo[WS(os, 1)])); } } } } } VLEAVE(); }