static void t1fv_6(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP500000000, +0.500000000000000000000000000000000000000000000); DVK(KP866025403, +0.866025403784438646763723170752936183471402627); { INT m; R *x; x = ri; for (m = mb, W = W + (mb * ((TWVL / VL) * 10)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 10), MAKE_VOLATILE_STRIDE(6, rs)) { V T4, Ti, Te, Tk, T9, Tj, T1, T3, T2; T1 = LD(&(x[0]), ms, &(x[0])); T2 = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); T3 = BYTWJ(&(W[TWVL * 4]), T2); T4 = VSUB(T1, T3); Ti = VADD(T1, T3); { V Tb, Td, Ta, Tc; Ta = LD(&(x[WS(rs, 4)]), ms, &(x[0])); Tb = BYTWJ(&(W[TWVL * 6]), Ta); Tc = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); Td = BYTWJ(&(W[0]), Tc); Te = VSUB(Tb, Td); Tk = VADD(Tb, Td); } { V T6, T8, T5, T7; T5 = LD(&(x[WS(rs, 2)]), ms, &(x[0])); T6 = BYTWJ(&(W[TWVL * 2]), T5); T7 = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); T8 = BYTWJ(&(W[TWVL * 8]), T7); T9 = VSUB(T6, T8); Tj = VADD(T6, T8); } { V Th, Tf, Tg, Tn, Tl, Tm; Th = VBYI(VMUL(LDK(KP866025403), VSUB(Te, T9))); Tf = VADD(T9, Te); Tg = VFNMS(LDK(KP500000000), Tf, T4); ST(&(x[WS(rs, 3)]), VADD(T4, Tf), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 1)]), VADD(Tg, Th), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 5)]), VSUB(Tg, Th), ms, &(x[WS(rs, 1)])); Tn = VBYI(VMUL(LDK(KP866025403), VSUB(Tk, Tj))); Tl = VADD(Tj, Tk); Tm = VFNMS(LDK(KP500000000), Tl, Ti); ST(&(x[0]), VADD(Ti, Tl), ms, &(x[0])); ST(&(x[WS(rs, 4)]), VADD(Tm, Tn), ms, &(x[0])); ST(&(x[WS(rs, 2)]), VSUB(Tm, Tn), ms, &(x[0])); } } } VLEAVE(); }
static void n1bv_7(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP222520933, +0.222520933956314404288902564496794759466355569); DVK(KP900968867, +0.900968867902419126236102319507445051165919162); DVK(KP623489801, +0.623489801858733530525004884004239810632274731); DVK(KP433883739, +0.433883739117558120475768332848358754609990728); DVK(KP781831482, +0.781831482468029808708444526674057750232334519); DVK(KP974927912, +0.974927912181823607018131682993931217232785801); { 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 Tb, T9, Tc, T3, Te, T6, Td, T7, T8, Ti, Tj; Tb = LD(&(xi[0]), ivs, &(xi[0])); T7 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T8 = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); T9 = VSUB(T7, T8); Tc = VADD(T7, T8); { V T1, T2, T4, T5; T1 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T2 = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); T3 = VSUB(T1, T2); Te = VADD(T1, T2); T4 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T5 = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); T6 = VSUB(T4, T5); Td = VADD(T4, T5); } ST(&(xo[0]), VADD(Tb, VADD(Te, VADD(Tc, Td))), ovs, &(xo[0])); Ti = VBYI(VFNMS(LDK(KP781831482), T6, VFNMS(LDK(KP433883739), T9, VMUL(LDK(KP974927912), T3)))); Tj = VFMA(LDK(KP623489801), Td, VFNMS(LDK(KP900968867), Tc, VFNMS(LDK(KP222520933), Te, Tb))); ST(&(xo[WS(os, 2)]), VADD(Ti, Tj), ovs, &(xo[0])); ST(&(xo[WS(os, 5)]), VSUB(Tj, Ti), ovs, &(xo[WS(os, 1)])); { V Ta, Tf, Tg, Th; Ta = VBYI(VFMA(LDK(KP433883739), T3, VFNMS(LDK(KP781831482), T9, VMUL(LDK(KP974927912), T6)))); Tf = VFMA(LDK(KP623489801), Tc, VFNMS(LDK(KP222520933), Td, VFNMS(LDK(KP900968867), Te, Tb))); ST(&(xo[WS(os, 3)]), VADD(Ta, Tf), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 4)]), VSUB(Tf, Ta), ovs, &(xo[0])); Tg = VBYI(VFMA(LDK(KP781831482), T3, VFMA(LDK(KP974927912), T9, VMUL(LDK(KP433883739), T6)))); Th = VFMA(LDK(KP623489801), Te, VFNMS(LDK(KP900968867), Td, VFNMS(LDK(KP222520933), Tc, Tb))); ST(&(xo[WS(os, 1)]), VADD(Tg, Th), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 6)]), VSUB(Th, Tg), ovs, &(xo[0])); } } } VLEAVE(); }
static void t1fv_5(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP250000000, +0.250000000000000000000000000000000000000000000); DVK(KP559016994, +0.559016994374947424102293417182819058860154590); DVK(KP587785252, +0.587785252292473129168705954639072768597652438); DVK(KP951056516, +0.951056516295153572116439333379382143405698634); { INT m; R *x; x = ri; 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(5, rs)) { V Tc, Tg, Th, T5, Ta, Td; Tc = LD(&(x[0]), ms, &(x[0])); { V T2, T9, T4, T7; { V T1, T8, T3, T6; T1 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); T2 = BYTWJ(&(W[0]), T1); T8 = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); T9 = BYTWJ(&(W[TWVL * 4]), T8); T3 = LD(&(x[WS(rs, 4)]), ms, &(x[0])); T4 = BYTWJ(&(W[TWVL * 6]), T3); T6 = LD(&(x[WS(rs, 2)]), ms, &(x[0])); T7 = BYTWJ(&(W[TWVL * 2]), T6); } Tg = VSUB(T2, T4); Th = VSUB(T7, T9); T5 = VADD(T2, T4); Ta = VADD(T7, T9); Td = VADD(T5, Ta); } ST(&(x[0]), VADD(Tc, Td), ms, &(x[0])); { V Ti, Tj, Tf, Tk, Tb, Te; Ti = VBYI(VFMA(LDK(KP951056516), Tg, VMUL(LDK(KP587785252), Th))); Tj = VBYI(VFNMS(LDK(KP587785252), Tg, VMUL(LDK(KP951056516), Th))); Tb = VMUL(LDK(KP559016994), VSUB(T5, Ta)); Te = VFNMS(LDK(KP250000000), Td, Tc); Tf = VADD(Tb, Te); Tk = VSUB(Te, Tb); ST(&(x[WS(rs, 1)]), VSUB(Tf, Ti), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 3)]), VSUB(Tk, Tj), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 4)]), VADD(Ti, Tf), ms, &(x[0])); ST(&(x[WS(rs, 2)]), VADD(Tj, Tk), ms, &(x[0])); } } } VLEAVE(); }
static const R *t1fv_6(R *ri, R *ii, const R *W, stride ios, INT m, INT dist) { DVK(KP500000000, +0.500000000000000000000000000000000000000000000); DVK(KP866025403, +0.866025403784438646763723170752936183471402627); INT i; R *x; x = ri; for (i = m; i > 0; i = i - VL, x = x + (VL * dist), W = W + (TWVL * 10), MAKE_VOLATILE_STRIDE(ios)) { V T4, Ti, Te, Tk, T9, Tj, T1, T3, T2; T1 = LD(&(x[0]), dist, &(x[0])); T2 = LD(&(x[WS(ios, 3)]), dist, &(x[WS(ios, 1)])); T3 = BYTWJ(&(W[TWVL * 4]), T2); T4 = VSUB(T1, T3); Ti = VADD(T1, T3); { V Tb, Td, Ta, Tc; Ta = LD(&(x[WS(ios, 4)]), dist, &(x[0])); Tb = BYTWJ(&(W[TWVL * 6]), Ta); Tc = LD(&(x[WS(ios, 1)]), dist, &(x[WS(ios, 1)])); Td = BYTWJ(&(W[0]), Tc); Te = VSUB(Tb, Td); Tk = VADD(Tb, Td); } { V T6, T8, T5, T7; T5 = LD(&(x[WS(ios, 2)]), dist, &(x[0])); T6 = BYTWJ(&(W[TWVL * 2]), T5); T7 = LD(&(x[WS(ios, 5)]), dist, &(x[WS(ios, 1)])); T8 = BYTWJ(&(W[TWVL * 8]), T7); T9 = VSUB(T6, T8); Tj = VADD(T6, T8); } { V Th, Tf, Tg, Tn, Tl, Tm; Th = VBYI(VMUL(LDK(KP866025403), VSUB(Te, T9))); Tf = VADD(T9, Te); Tg = VFNMS(LDK(KP500000000), Tf, T4); ST(&(x[WS(ios, 3)]), VADD(T4, Tf), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 1)]), VADD(Tg, Th), dist, &(x[WS(ios, 1)])); ST(&(x[WS(ios, 5)]), VSUB(Tg, Th), dist, &(x[WS(ios, 1)])); Tn = VBYI(VMUL(LDK(KP866025403), VSUB(Tk, Tj))); Tl = VADD(Tj, Tk); Tm = VFNMS(LDK(KP500000000), Tl, Ti); ST(&(x[0]), VADD(Ti, Tl), dist, &(x[0])); ST(&(x[WS(ios, 4)]), VADD(Tm, Tn), dist, &(x[0])); ST(&(x[WS(ios, 2)]), VSUB(Tm, Tn), dist, &(x[0])); } } return W; }
static void t1buv_6(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP500000000, +0.500000000000000000000000000000000000000000000); DVK(KP866025403, +0.866025403784438646763723170752936183471402627); INT m; R *x; x = ii; for (m = mb, W = W + (mb * ((TWVL / VL) * 10)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 10), MAKE_VOLATILE_STRIDE(rs)) { V Tf, Ti, Ta, Tk, T5, Tj, Tc, Te, Td; Tc = LD(&(x[0]), ms, &(x[0])); Td = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); Te = BYTW(&(W[TWVL * 4]), Td); Tf = VSUB(Tc, Te); Ti = VADD(Tc, Te); { V T7, T9, T6, T8; T6 = LD(&(x[WS(rs, 4)]), ms, &(x[0])); T7 = BYTW(&(W[TWVL * 6]), T6); T8 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); T9 = BYTW(&(W[0]), T8); Ta = VSUB(T7, T9); Tk = VADD(T7, T9); } { V T2, T4, T1, T3; T1 = LD(&(x[WS(rs, 2)]), ms, &(x[0])); T2 = BYTW(&(W[TWVL * 2]), T1); T3 = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); T4 = BYTW(&(W[TWVL * 8]), T3); T5 = VSUB(T2, T4); Tj = VADD(T2, T4); } { V Tb, Tg, Th, Tn, Tl, Tm; Tb = VBYI(VMUL(LDK(KP866025403), VSUB(T5, Ta))); Tg = VADD(T5, Ta); Th = VFNMS(LDK(KP500000000), Tg, Tf); ST(&(x[WS(rs, 1)]), VADD(Tb, Th), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 3)]), VADD(Tf, Tg), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 5)]), VSUB(Th, Tb), ms, &(x[WS(rs, 1)])); Tn = VBYI(VMUL(LDK(KP866025403), VSUB(Tj, Tk))); Tl = VADD(Tj, Tk); Tm = VFNMS(LDK(KP500000000), Tl, Ti); ST(&(x[WS(rs, 2)]), VSUB(Tm, Tn), ms, &(x[0])); ST(&(x[0]), VADD(Ti, Tl), ms, &(x[0])); ST(&(x[WS(rs, 4)]), VADD(Tn, Tm), ms, &(x[0])); } } }
static void t1fuv_4(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { { INT m; R *x; x = ri; for (m = mb, W = W + (mb * ((TWVL / VL) * 6)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 6), MAKE_VOLATILE_STRIDE(4, rs)) { V T1, T8, T3, T6, T7, T2, T5; T1 = LD(&(x[0]), ms, &(x[0])); T7 = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); T8 = BYTWJ(&(W[TWVL * 4]), T7); T2 = LD(&(x[WS(rs, 2)]), ms, &(x[0])); T3 = BYTWJ(&(W[TWVL * 2]), T2); T5 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); T6 = BYTWJ(&(W[0]), T5); { V T4, T9, Ta, Tb; T4 = VSUB(T1, T3); T9 = VBYI(VSUB(T6, T8)); ST(&(x[WS(rs, 1)]), VSUB(T4, T9), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 3)]), VADD(T4, T9), ms, &(x[WS(rs, 1)])); Ta = VADD(T1, T3); Tb = VADD(T6, T8); ST(&(x[WS(rs, 2)]), VSUB(Ta, Tb), ms, &(x[0])); ST(&(x[0]), VADD(Ta, Tb), ms, &(x[0])); } } } VLEAVE(); }
static const R *t1fv_3(R *ri, R *ii, const R *W, stride ios, int m, int dist) { DVK(KP866025403, +0.866025403784438646763723170752936183471402627); DVK(KP500000000, +0.500000000000000000000000000000000000000000000); int i; R *x; x = ri; BEGIN_SIMD(); for (i = m; i > 0; i = i - VL, x = x + (VL * dist), W = W + (TWVL * 4)) { V T1, T3, T5, T6, T2, T4, T7, T8; T1 = LD(&(x[0]), dist, &(x[0])); T2 = LD(&(x[WS(ios, 1)]), dist, &(x[WS(ios, 1)])); T3 = BYTWJ(&(W[0]), T2); T4 = LD(&(x[WS(ios, 2)]), dist, &(x[0])); T5 = BYTWJ(&(W[TWVL * 2]), T4); T6 = VADD(T3, T5); ST(&(x[0]), VADD(T1, T6), dist, &(x[0])); T7 = VFNMS(LDK(KP500000000), T6, T1); T8 = VBYI(VMUL(LDK(KP866025403), VSUB(T5, T3))); ST(&(x[WS(ios, 2)]), VSUB(T7, T8), dist, &(x[0])); ST(&(x[WS(ios, 1)]), VADD(T7, T8), dist, &(x[WS(ios, 1)])); } END_SIMD(); return W; }
static void n1bv_4(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { 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 T3, T7, T6, T8; { V T1, T2, T4, T5; T1 = LD(&(xi[0]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T3 = VSUB(T1, T2); T7 = VADD(T1, T2); T4 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T5 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T6 = VBYI(VSUB(T4, T5)); T8 = VADD(T4, T5); } ST(&(xo[WS(os, 3)]), VSUB(T3, T6), ovs, &(xo[WS(os, 1)])); ST(&(xo[0]), VADD(T7, T8), ovs, &(xo[0])); ST(&(xo[WS(os, 1)]), VADD(T3, T6), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 2)]), VSUB(T7, T8), ovs, &(xo[0])); } }
static void n1fv_3(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { 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(is), MAKE_VOLATILE_STRIDE(os)) { V T1, T4, T6, T2, T3, T5; T1 = LD(&(xi[0]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T3 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T4 = VADD(T2, T3); T6 = VBYI(VMUL(LDK(KP866025403), VSUB(T3, T2))); ST(&(xo[0]), VADD(T1, T4), ovs, &(xo[0])); T5 = VFNMS(LDK(KP500000000), T4, T1); ST(&(xo[WS(os, 2)]), VSUB(T5, T6), ovs, &(xo[0])); ST(&(xo[WS(os, 1)]), VADD(T5, T6), ovs, &(xo[WS(os, 1)])); } } VLEAVE(); }
static void n2fv_4(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { 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 T3, T7, T6, T8; { V T1, T2, T4, T5; T1 = LD(&(xi[0]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T3 = VSUB(T1, T2); T7 = VADD(T1, T2); T4 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T5 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T6 = VBYI(VSUB(T4, T5)); T8 = VADD(T4, T5); } { V T9, Ta, Tb, Tc; T9 = VSUB(T3, T6); STM2(&(xo[2]), T9, ovs, &(xo[2])); Ta = VADD(T7, T8); STM2(&(xo[0]), Ta, ovs, &(xo[0])); STN2(&(xo[0]), Ta, T9, ovs); Tb = VADD(T3, T6); STM2(&(xo[6]), Tb, ovs, &(xo[2])); Tc = VSUB(T7, T8); STM2(&(xo[4]), Tc, ovs, &(xo[0])); STN2(&(xo[4]), Tc, Tb, ovs); } } }
static void hc2cfdftv_4(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP500000000, +0.500000000000000000000000000000000000000000000); INT m; for (m = mb, W = W + ((mb - 1) * ((TWVL / VL) * 6)); m < me; m = m + VL, Rp = Rp + (VL * ms), Ip = Ip + (VL * ms), Rm = Rm - (VL * ms), Im = Im - (VL * ms), W = W + (TWVL * 6), MAKE_VOLATILE_STRIDE(rs)) { V T4, Tc, T9, Te, T1, T3, T2, Tb, T6, T8, T7, T5, Td, Tg, Th; V Ta, Tf, Tk, Tl, Ti, Tj; T1 = LD(&(Rp[0]), ms, &(Rp[0])); T2 = LD(&(Rm[0]), -ms, &(Rm[0])); T3 = VCONJ(T2); T4 = VADD(T1, T3); Tb = LDW(&(W[0])); Tc = VZMULIJ(Tb, VSUB(T3, T1)); T6 = LD(&(Rp[WS(rs, 1)]), ms, &(Rp[WS(rs, 1)])); T7 = LD(&(Rm[WS(rs, 1)]), -ms, &(Rm[WS(rs, 1)])); T8 = VCONJ(T7); T5 = LDW(&(W[TWVL * 2])); T9 = VZMULJ(T5, VADD(T6, T8)); Td = LDW(&(W[TWVL * 4])); Te = VZMULIJ(Td, VSUB(T8, T6)); Ta = VSUB(T4, T9); Tf = VBYI(VSUB(Tc, Te)); Tg = VMUL(LDK(KP500000000), VSUB(Ta, Tf)); Th = VCONJ(VMUL(LDK(KP500000000), VADD(Ta, Tf))); ST(&(Rp[WS(rs, 1)]), Tg, ms, &(Rp[WS(rs, 1)])); ST(&(Rm[0]), Th, -ms, &(Rm[0])); Ti = VADD(T4, T9); Tj = VADD(Tc, Te); Tk = VCONJ(VMUL(LDK(KP500000000), VSUB(Ti, Tj))); Tl = VMUL(LDK(KP500000000), VADD(Ti, Tj)); ST(&(Rm[WS(rs, 1)]), Tk, -ms, &(Rm[WS(rs, 1)])); ST(&(Rp[0]), Tl, ms, &(Rp[0])); } }
static void t1fv_3(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP866025403, +0.866025403784438646763723170752936183471402627); DVK(KP500000000, +0.500000000000000000000000000000000000000000000); { INT m; R *x; x = ri; for (m = mb, W = W + (mb * ((TWVL / VL) * 4)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 4), MAKE_VOLATILE_STRIDE(3, rs)) { V T1, T3, T5, T6, T2, T4, T7, T8; T1 = LD(&(x[0]), ms, &(x[0])); T2 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); T3 = BYTWJ(&(W[0]), T2); T4 = LD(&(x[WS(rs, 2)]), ms, &(x[0])); T5 = BYTWJ(&(W[TWVL * 2]), T4); T6 = VADD(T3, T5); ST(&(x[0]), VADD(T1, T6), ms, &(x[0])); T7 = VFNMS(LDK(KP500000000), T6, T1); T8 = VBYI(VMUL(LDK(KP866025403), VSUB(T5, T3))); ST(&(x[WS(rs, 2)]), VSUB(T7, T8), ms, &(x[0])); ST(&(x[WS(rs, 1)]), VADD(T7, T8), ms, &(x[WS(rs, 1)])); } } VLEAVE(); }
static void t3fv_4(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { INT m; R *x; x = ri; for (m = mb, W = W + (mb * ((TWVL / VL) * 4)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 4), MAKE_VOLATILE_STRIDE(rs)) { V T2, T3, T4; T2 = LDW(&(W[0])); T3 = LDW(&(W[TWVL * 2])); T4 = VZMULJ(T2, T3); { V T1, Tb, T6, T9, Ta, T5, T8; T1 = LD(&(x[0]), ms, &(x[0])); Ta = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); Tb = VZMULJ(T3, Ta); T5 = LD(&(x[WS(rs, 2)]), ms, &(x[0])); T6 = VZMULJ(T4, T5); T8 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); T9 = VZMULJ(T2, T8); { V T7, Tc, Td, Te; T7 = VSUB(T1, T6); Tc = VBYI(VSUB(T9, Tb)); ST(&(x[WS(rs, 1)]), VSUB(T7, Tc), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 3)]), VADD(T7, Tc), ms, &(x[WS(rs, 1)])); Td = VADD(T1, T6); Te = VADD(T9, Tb); ST(&(x[WS(rs, 2)]), VSUB(Td, Te), ms, &(x[0])); ST(&(x[0]), VADD(Td, Te), ms, &(x[0])); } } } }
static void n1bv_4(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, int v, int ivs, int ovs) { 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 T3, T7, T6, T8; { V T1, T2, T4, T5; T1 = LD(&(xi[0]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T3 = VSUB(T1, T2); T7 = VADD(T1, T2); T4 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T5 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T6 = VBYI(VSUB(T4, T5)); T8 = VADD(T4, T5); } ST(&(xo[WS(os, 3)]), VSUB(T3, T6), ovs, &(xo[WS(os, 1)])); ST(&(xo[0]), VADD(T7, T8), ovs, &(xo[0])); ST(&(xo[WS(os, 1)]), VADD(T3, T6), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 2)]), VSUB(T7, T8), ovs, &(xo[0])); } END_SIMD(); }
static void hc2cbdftv_4(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms) { INT m; for (m = mb, W = W + ((mb - 1) * ((TWVL / VL) * 6)); m < me; m = m + VL, Rp = Rp + (VL * ms), Ip = Ip + (VL * ms), Rm = Rm - (VL * ms), Im = Im - (VL * ms), W = W + (TWVL * 6), MAKE_VOLATILE_STRIDE(rs)) { V T5, Tc, T9, Td, T2, T4, T3, T6, T8, T7, Tj, Ti, Th, Tk, Tl; V Ta, Te, T1, Tb, Tf, Tg; T2 = LD(&(Rp[0]), ms, &(Rp[0])); T3 = LD(&(Rm[WS(rs, 1)]), -ms, &(Rm[WS(rs, 1)])); T4 = VCONJ(T3); T5 = VSUB(T2, T4); Tc = VADD(T2, T4); T6 = LD(&(Rp[WS(rs, 1)]), ms, &(Rp[WS(rs, 1)])); T7 = LD(&(Rm[0]), -ms, &(Rm[0])); T8 = VCONJ(T7); T9 = VBYI(VSUB(T6, T8)); Td = VADD(T6, T8); Tj = VADD(Tc, Td); Th = LDW(&(W[0])); Ti = VZMULI(Th, VADD(T5, T9)); Tk = VADD(Ti, Tj); ST(&(Rp[0]), Tk, ms, &(Rp[0])); Tl = VCONJ(VSUB(Tj, Ti)); ST(&(Rm[0]), Tl, -ms, &(Rm[0])); T1 = LDW(&(W[TWVL * 4])); Ta = VZMULI(T1, VSUB(T5, T9)); Tb = LDW(&(W[TWVL * 2])); Te = VZMUL(Tb, VSUB(Tc, Td)); Tf = VADD(Ta, Te); ST(&(Rp[WS(rs, 1)]), Tf, ms, &(Rp[WS(rs, 1)])); Tg = VCONJ(VSUB(Te, Ta)); ST(&(Rm[WS(rs, 1)]), Tg, -ms, &(Rm[WS(rs, 1)])); } }
static void n1bv_6(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP500000000, +0.500000000000000000000000000000000000000000000); DVK(KP866025403, +0.866025403784438646763723170752936183471402627); { 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(12, is), MAKE_VOLATILE_STRIDE(12, os)) { V Ta, Td, T3, Te, T6, Tf, Tb, Tg, T8, T9; T8 = LD(&(xi[0]), ivs, &(xi[0])); T9 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); Ta = VSUB(T8, T9); Td = VADD(T8, T9); { V T1, T2, T4, T5; T1 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); T3 = VSUB(T1, T2); Te = VADD(T1, T2); T4 = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); T5 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T6 = VSUB(T4, T5); Tf = VADD(T4, T5); } Tb = VADD(T3, T6); Tg = VADD(Te, Tf); ST(&(xo[WS(os, 3)]), VADD(Ta, Tb), ovs, &(xo[WS(os, 1)])); ST(&(xo[0]), VADD(Td, Tg), ovs, &(xo[0])); { V T7, Tc, Th, Ti; T7 = VBYI(VMUL(LDK(KP866025403), VSUB(T3, T6))); Tc = VFNMS(LDK(KP500000000), Tb, Ta); ST(&(xo[WS(os, 1)]), VADD(T7, Tc), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 5)]), VSUB(Tc, T7), ovs, &(xo[WS(os, 1)])); Th = VFNMS(LDK(KP500000000), Tg, Td); Ti = VBYI(VMUL(LDK(KP866025403), VSUB(Te, Tf))); ST(&(xo[WS(os, 2)]), VSUB(Th, Ti), ovs, &(xo[0])); ST(&(xo[WS(os, 4)]), VADD(Ti, Th), ovs, &(xo[0])); } } } VLEAVE(); }
static void n1fv_5(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP250000000, +0.250000000000000000000000000000000000000000000); DVK(KP587785252, +0.587785252292473129168705954639072768597652438); DVK(KP951056516, +0.951056516295153572116439333379382143405698634); DVK(KP559016994, +0.559016994374947424102293417182819058860154590); { 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 T8, T7, Td, T9, Tc; T8 = LD(&(xi[0]), ivs, &(xi[0])); { V T1, T2, T3, T4, T5, T6; T1 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T2 = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); T3 = VADD(T1, T2); T4 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T5 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T6 = VADD(T4, T5); T7 = VMUL(LDK(KP559016994), VSUB(T3, T6)); Td = VSUB(T4, T5); T9 = VADD(T3, T6); Tc = VSUB(T1, T2); } ST(&(xo[0]), VADD(T8, T9), ovs, &(xo[0])); { V Te, Tf, Tb, Tg, Ta; Te = VBYI(VFMA(LDK(KP951056516), Tc, VMUL(LDK(KP587785252), Td))); Tf = VBYI(VFNMS(LDK(KP587785252), Tc, VMUL(LDK(KP951056516), Td))); Ta = VFNMS(LDK(KP250000000), T9, T8); Tb = VADD(T7, Ta); Tg = VSUB(Ta, T7); ST(&(xo[WS(os, 1)]), VSUB(Tb, Te), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 3)]), VSUB(Tg, Tf), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 4)]), VADD(Te, Tb), ovs, &(xo[0])); ST(&(xo[WS(os, 2)]), VADD(Tf, Tg), ovs, &(xo[0])); } } } VLEAVE(); }
static void n2fv_3(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, int v, int ivs, int ovs) { DVK(KP500000000, +0.500000000000000000000000000000000000000000000); DVK(KP866025403, +0.866025403784438646763723170752936183471402627); 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 T1, T4, T6, T2, T3, T5; T1 = LD(&(xi[0]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); T3 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T4 = VADD(T2, T3); T6 = VBYI(VMUL(LDK(KP866025403), VSUB(T3, T2))); ST(&(xo[0]), VADD(T1, T4), ovs, &(xo[0])); T5 = VFNMS(LDK(KP500000000), T4, T1); ST(&(xo[4]), VSUB(T5, T6), ovs, &(xo[0])); ST(&(xo[2]), VADD(T5, T6), ovs, &(xo[2])); } END_SIMD(); }
static void hc2cbdftv_10(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP250000000, +0.250000000000000000000000000000000000000000000); DVK(KP951056516, +0.951056516295153572116439333379382143405698634); DVK(KP587785252, +0.587785252292473129168705954639072768597652438); DVK(KP559016994, +0.559016994374947424102293417182819058860154590); INT m; for (m = mb, W = W + ((mb - 1) * ((TWVL / VL) * 18)); m < me; m = m + VL, Rp = Rp + (VL * ms), Ip = Ip + (VL * ms), Rm = Rm - (VL * ms), Im = Im - (VL * ms), W = W + (TWVL * 18), MAKE_VOLATILE_STRIDE(rs)) { V T5, TE, Ts, Tt, TC, Tz, TH, TJ, To, Tq, T2, T4, T3, T9, Tx; V Tm, TB, Td, Ty, Ti, TA, T6, T8, T7, Tl, Tk, Tj, Tc, Tb, Ta; V Tf, Th, Tg, TF, TG, Te, Tn; T2 = LD(&(Rp[0]), ms, &(Rp[0])); T3 = LD(&(Rm[WS(rs, 4)]), -ms, &(Rm[0])); T4 = VCONJ(T3); T5 = VSUB(T2, T4); TE = VADD(T2, T4); T6 = LD(&(Rp[WS(rs, 2)]), ms, &(Rp[0])); T7 = LD(&(Rm[WS(rs, 2)]), -ms, &(Rm[0])); T8 = VCONJ(T7); T9 = VSUB(T6, T8); Tx = VADD(T6, T8); Tl = LD(&(Rp[WS(rs, 1)]), ms, &(Rp[WS(rs, 1)])); Tj = LD(&(Rm[WS(rs, 3)]), -ms, &(Rm[WS(rs, 1)])); Tk = VCONJ(Tj); Tm = VSUB(Tk, Tl); TB = VADD(Tk, Tl); Tc = LD(&(Rp[WS(rs, 3)]), ms, &(Rp[WS(rs, 1)])); Ta = LD(&(Rm[WS(rs, 1)]), -ms, &(Rm[WS(rs, 1)])); Tb = VCONJ(Ta); Td = VSUB(Tb, Tc); Ty = VADD(Tb, Tc); Tf = LD(&(Rp[WS(rs, 4)]), ms, &(Rp[0])); Tg = LD(&(Rm[0]), -ms, &(Rm[0])); Th = VCONJ(Tg); Ti = VSUB(Tf, Th); TA = VADD(Tf, Th); Ts = VSUB(T9, Td); Tt = VSUB(Ti, Tm); TC = VSUB(TA, TB); Tz = VSUB(Tx, Ty); TF = VADD(Tx, Ty); TG = VADD(TA, TB); TH = VADD(TF, TG); TJ = VMUL(LDK(KP559016994), VSUB(TF, TG)); Te = VADD(T9, Td); Tn = VADD(Ti, Tm); To = VADD(Te, Tn); Tq = VMUL(LDK(KP559016994), VSUB(Te, Tn)); { V T1c, TX, Tv, T1b, TR, T15, TL, T17, TT, T11, TW, Tu, TQ, Tr, TP; V Tp, T1, T1a, TO, T14, TD, T10, TK, TZ, TI, Tw, T16, TS, TY, TM; V TU, T1e, TN, T1d, T19, T13, TV, T18, T12; T1c = VADD(TE, TH); TW = LDW(&(W[TWVL * 8])); TX = VZMULI(TW, VADD(T5, To)); Tu = VBYI(VFNMS(LDK(KP951056516), Tt, VMUL(LDK(KP587785252), Ts))); TQ = VBYI(VFMA(LDK(KP951056516), Ts, VMUL(LDK(KP587785252), Tt))); Tp = VFNMS(LDK(KP250000000), To, T5); Tr = VSUB(Tp, Tq); TP = VADD(Tq, Tp); T1 = LDW(&(W[TWVL * 4])); Tv = VZMULI(T1, VSUB(Tr, Tu)); T1a = LDW(&(W[0])); T1b = VZMULI(T1a, VADD(TQ, TP)); TO = LDW(&(W[TWVL * 16])); TR = VZMULI(TO, VSUB(TP, TQ)); T14 = LDW(&(W[TWVL * 12])); T15 = VZMULI(T14, VADD(Tu, Tr)); TD = VBYI(VFNMS(LDK(KP951056516), TC, VMUL(LDK(KP587785252), Tz))); T10 = VBYI(VFMA(LDK(KP951056516), Tz, VMUL(LDK(KP587785252), TC))); TI = VFNMS(LDK(KP250000000), TH, TE); TK = VSUB(TI, TJ); TZ = VADD(TJ, TI); Tw = LDW(&(W[TWVL * 2])); TL = VZMUL(Tw, VADD(TD, TK)); T16 = LDW(&(W[TWVL * 10])); T17 = VZMUL(T16, VADD(T10, TZ)); TS = LDW(&(W[TWVL * 14])); TT = VZMUL(TS, VSUB(TK, TD)); TY = LDW(&(W[TWVL * 6])); T11 = VZMUL(TY, VSUB(TZ, T10)); TM = VADD(Tv, TL); ST(&(Rp[WS(rs, 1)]), TM, ms, &(Rp[WS(rs, 1)])); TU = VADD(TR, TT); ST(&(Rp[WS(rs, 4)]), TU, ms, &(Rp[0])); T1e = VCONJ(VSUB(T1c, T1b)); ST(&(Rm[0]), T1e, -ms, &(Rm[0])); TN = VCONJ(VSUB(TL, Tv)); ST(&(Rm[WS(rs, 1)]), TN, -ms, &(Rm[WS(rs, 1)])); T1d = VADD(T1b, T1c); ST(&(Rp[0]), T1d, ms, &(Rp[0])); T19 = VCONJ(VSUB(T17, T15)); ST(&(Rm[WS(rs, 3)]), T19, -ms, &(Rm[WS(rs, 1)])); T13 = VCONJ(VSUB(T11, TX)); ST(&(Rm[WS(rs, 2)]), T13, -ms, &(Rm[0])); TV = VCONJ(VSUB(TT, TR)); ST(&(Rm[WS(rs, 4)]), TV, -ms, &(Rm[0])); T18 = VADD(T15, T17); ST(&(Rp[WS(rs, 3)]), T18, ms, &(Rp[WS(rs, 1)])); T12 = VADD(TX, T11); ST(&(Rp[WS(rs, 2)]), T12, ms, &(Rp[0])); } } }
static void t3bv_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) * 6)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 6), MAKE_VOLATILE_STRIDE(10, rs)) { V T1, T2, T3, Ti, T6, T7, TA, Tb, To; T1 = LDW(&(W[0])); T2 = LDW(&(W[TWVL * 2])); T3 = VZMULJ(T1, T2); Ti = VZMUL(T1, T2); T6 = LDW(&(W[TWVL * 4])); T7 = VZMULJ(T3, T6); TA = VZMULJ(Ti, T6); Tb = VZMULJ(T1, T6); To = VZMULJ(T2, T6); { V TD, TQ, Tn, Tt, Tx, TM, TN, TS, Ta, Tg, Tw, TJ, TK, TR, Tz; V TC, TB; Tz = LD(&(x[0]), ms, &(x[0])); TB = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); TC = VZMUL(TA, TB); TD = VSUB(Tz, TC); TQ = VADD(Tz, TC); { V Tk, Ts, Tm, Tq; { V Tj, Tr, Tl, Tp; Tj = LD(&(x[WS(rs, 4)]), ms, &(x[0])); Tk = VZMUL(Ti, Tj); Tr = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); Ts = VZMUL(T1, Tr); Tl = LD(&(x[WS(rs, 9)]), ms, &(x[WS(rs, 1)])); Tm = VZMUL(T6, Tl); Tp = LD(&(x[WS(rs, 6)]), ms, &(x[0])); Tq = VZMUL(To, Tp); } Tn = VSUB(Tk, Tm); Tt = VSUB(Tq, Ts); Tx = VADD(Tn, Tt); TM = VADD(Tk, Tm); TN = VADD(Tq, Ts); TS = VADD(TM, TN); } { V T5, Tf, T9, Td; { V T4, Te, T8, Tc; T4 = LD(&(x[WS(rs, 2)]), ms, &(x[0])); T5 = VZMUL(T3, T4); Te = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); Tf = VZMUL(T2, Te); T8 = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); T9 = VZMUL(T7, T8); Tc = LD(&(x[WS(rs, 8)]), ms, &(x[0])); Td = VZMUL(Tb, Tc); } Ta = VSUB(T5, T9); Tg = VSUB(Td, Tf); Tw = VADD(Ta, Tg); TJ = VADD(T5, T9); TK = VADD(Td, Tf); TR = VADD(TJ, TK); } { V Ty, TE, TF, Tv, TI, Th, Tu, TH, TG; Ty = VMUL(LDK(KP559016994), VSUB(Tw, Tx)); TE = VADD(Tw, Tx); TF = VFNMS(LDK(KP250000000), TE, TD); Th = VSUB(Ta, Tg); Tu = VSUB(Tn, Tt); Tv = VBYI(VFMA(LDK(KP951056516), Th, VMUL(LDK(KP587785252), Tu))); TI = VBYI(VFNMS(LDK(KP951056516), Tu, VMUL(LDK(KP587785252), Th))); ST(&(x[WS(rs, 5)]), VADD(TD, TE), ms, &(x[WS(rs, 1)])); TH = VSUB(TF, Ty); ST(&(x[WS(rs, 3)]), VSUB(TH, TI), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 7)]), VADD(TI, TH), ms, &(x[WS(rs, 1)])); TG = VADD(Ty, TF); ST(&(x[WS(rs, 1)]), VADD(Tv, TG), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 9)]), VSUB(TG, Tv), ms, &(x[WS(rs, 1)])); } { V TV, TT, TU, TP, TY, TL, TO, TX, TW; TV = VMUL(LDK(KP559016994), VSUB(TR, TS)); TT = VADD(TR, TS); TU = VFNMS(LDK(KP250000000), TT, TQ); TL = VSUB(TJ, TK); TO = VSUB(TM, TN); TP = VBYI(VFNMS(LDK(KP951056516), TO, VMUL(LDK(KP587785252), TL))); TY = VBYI(VFMA(LDK(KP951056516), TL, VMUL(LDK(KP587785252), TO))); ST(&(x[0]), VADD(TQ, TT), ms, &(x[0])); TX = VADD(TV, TU); ST(&(x[WS(rs, 4)]), VSUB(TX, TY), ms, &(x[0])); ST(&(x[WS(rs, 6)]), VADD(TY, TX), ms, &(x[0])); TW = VSUB(TU, TV); ST(&(x[WS(rs, 2)]), VADD(TP, TW), ms, &(x[0])); ST(&(x[WS(rs, 8)]), VSUB(TW, TP), ms, &(x[0])); } } } } VLEAVE(); }
static void n2bv_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 = 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 T5, Ta, TG, TF, Ty, Tm, Ti, Tp, TJ, TI, Tx, Ts; { V T1, T6, T4, Tk, T9, Tl; 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); Tk = VSUB(T2, T3); T7 = LD(&(xi[WS(is, 10)]), ivs, &(xi[0])); T8 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T9 = VADD(T7, T8); Tl = VSUB(T7, T8); } T5 = VFNMS(LDK(KP500000000), T4, T1); Ta = VFNMS(LDK(KP500000000), T9, T6); TG = VADD(T6, T9); TF = VADD(T1, T4); Ty = VADD(Tk, Tl); Tm = VMUL(LDK(KP866025403), VSUB(Tk, Tl)); } { V Tn, Tq, Te, To, Th, Tr; Tn = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); Tq = LD(&(xi[WS(is, 9)]), ivs, &(xi[WS(is, 1)])); { V Tc, Td, Tf, Tg; Tc = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); Td = LD(&(xi[WS(is, 11)]), ivs, &(xi[WS(is, 1)])); Te = VSUB(Tc, Td); To = VADD(Tc, Td); 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); Tr = VADD(Tf, Tg); } Ti = VMUL(LDK(KP866025403), VSUB(Te, Th)); Tp = VFNMS(LDK(KP500000000), To, Tn); TJ = VADD(Tq, Tr); TI = VADD(Tn, To); Tx = VADD(Te, Th); Ts = VFNMS(LDK(KP500000000), Tr, Tq); } { V TN, TO, TP, TQ, TR, TS; { V TH, TK, TL, TM; TH = VSUB(TF, TG); TK = VBYI(VSUB(TI, TJ)); TN = VSUB(TH, TK); STM2(&(xo[6]), TN, ovs, &(xo[2])); TO = VADD(TH, TK); STM2(&(xo[18]), 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, Tt, TT, TU; Tb = VSUB(T5, Ta); Tj = VSUB(Tb, Ti); Tv = VADD(Tb, Ti); Tt = VSUB(Tp, Ts); Tu = VBYI(VADD(Tm, Tt)); Tw = VBYI(VSUB(Tt, Tm)); TR = VSUB(Tj, Tu); STM2(&(xo[22]), TR, ovs, &(xo[2])); TS = VADD(Tv, Tw); STM2(&(xo[10]), TS, ovs, &(xo[2])); TT = VADD(Tj, Tu); STM2(&(xo[2]), TT, ovs, &(xo[2])); STN2(&(xo[0]), TQ, TT, ovs); TU = VSUB(Tv, Tw); STM2(&(xo[14]), TU, ovs, &(xo[2])); STN2(&(xo[12]), TP, TU, ovs); } { V Tz, TD, TC, TE, TA, TB; Tz = VBYI(VMUL(LDK(KP866025403), VSUB(Tx, Ty))); TD = VBYI(VMUL(LDK(KP866025403), VADD(Ty, Tx))); TA = VADD(T5, Ta); TB = VADD(Tp, Ts); TC = VSUB(TA, TB); TE = VADD(TA, TB); { V TV, TW, TX, TY; TV = VADD(Tz, TC); STM2(&(xo[4]), TV, ovs, &(xo[0])); STN2(&(xo[4]), TV, TN, ovs); TW = VSUB(TE, TD); STM2(&(xo[16]), TW, ovs, &(xo[0])); STN2(&(xo[16]), TW, TO, ovs); TX = VSUB(TC, Tz); STM2(&(xo[20]), TX, ovs, &(xo[0])); STN2(&(xo[20]), TX, TR, ovs); TY = VADD(TD, TE); STM2(&(xo[8]), TY, ovs, &(xo[0])); STN2(&(xo[8]), TY, TS, ovs); } } } } }
static void t1fuv_9(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP939692620, +0.939692620785908384054109277324731469936208134); DVK(KP296198132, +0.296198132726023843175338011893050938967728390); DVK(KP852868531, +0.852868531952443209628250963940074071936020296); DVK(KP173648177, +0.173648177666930348851716626769314796000375677); DVK(KP556670399, +0.556670399226419366452912952047023132968291906); DVK(KP766044443, +0.766044443118978035202392650555416673935832457); DVK(KP642787609, +0.642787609686539326322643409907263432907559884); DVK(KP663413948, +0.663413948168938396205421319635891297216863310); DVK(KP984807753, +0.984807753012208059366743024589523013670643252); DVK(KP150383733, +0.150383733180435296639271897612501926072238258); DVK(KP342020143, +0.342020143325668733044099614682259580763083368); DVK(KP813797681, +0.813797681349373692844693217248393223289101568); DVK(KP500000000, +0.500000000000000000000000000000000000000000000); DVK(KP866025403, +0.866025403784438646763723170752936183471402627); { INT m; R *x; x = ri; for (m = mb, W = W + (mb * ((TWVL / VL) * 16)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 16), MAKE_VOLATILE_STRIDE(rs)) { V T1, T6, TA, Tt, Tf, Ts, Tw, Tn, Tv; T1 = LD(&(x[0]), ms, &(x[0])); { V T3, T5, T2, T4; T2 = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); T3 = BYTWJ(&(W[TWVL * 4]), T2); T4 = LD(&(x[WS(rs, 6)]), ms, &(x[0])); T5 = BYTWJ(&(W[TWVL * 10]), T4); T6 = VADD(T3, T5); TA = VMUL(LDK(KP866025403), VSUB(T5, T3)); } { V T9, Td, Tb, T8, Tc, Ta, Te; T8 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); T9 = BYTWJ(&(W[0]), T8); Tc = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); Td = BYTWJ(&(W[TWVL * 12]), Tc); Ta = LD(&(x[WS(rs, 4)]), ms, &(x[0])); Tb = BYTWJ(&(W[TWVL * 6]), Ta); Tt = VSUB(Td, Tb); Te = VADD(Tb, Td); Tf = VADD(T9, Te); Ts = VFNMS(LDK(KP500000000), Te, T9); } { V Th, Tl, Tj, Tg, Tk, Ti, Tm; Tg = LD(&(x[WS(rs, 2)]), ms, &(x[0])); Th = BYTWJ(&(W[TWVL * 2]), Tg); Tk = LD(&(x[WS(rs, 8)]), ms, &(x[0])); Tl = BYTWJ(&(W[TWVL * 14]), Tk); Ti = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); Tj = BYTWJ(&(W[TWVL * 8]), Ti); Tw = VSUB(Tl, Tj); Tm = VADD(Tj, Tl); Tn = VADD(Th, Tm); Tv = VFNMS(LDK(KP500000000), Tm, Th); } { V Tq, T7, To, Tp; Tq = VBYI(VMUL(LDK(KP866025403), VSUB(Tn, Tf))); T7 = VADD(T1, T6); To = VADD(Tf, Tn); Tp = VFNMS(LDK(KP500000000), To, T7); ST(&(x[0]), VADD(T7, To), ms, &(x[0])); ST(&(x[WS(rs, 3)]), VADD(Tp, Tq), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 6)]), VSUB(Tp, Tq), ms, &(x[0])); } { V TI, TB, TC, TD, Tu, Tx, Ty, Tr, TH; TI = VBYI(VSUB(VFNMS(LDK(KP342020143), Tv, VFNMS(LDK(KP150383733), Tt, VFNMS(LDK(KP984807753), Ts, VMUL(LDK(KP813797681), Tw)))), TA)); TB = VFNMS(LDK(KP642787609), Ts, VMUL(LDK(KP663413948), Tt)); TC = VFNMS(LDK(KP984807753), Tv, VMUL(LDK(KP150383733), Tw)); TD = VADD(TB, TC); Tu = VFMA(LDK(KP766044443), Ts, VMUL(LDK(KP556670399), Tt)); Tx = VFMA(LDK(KP173648177), Tv, VMUL(LDK(KP852868531), Tw)); Ty = VADD(Tu, Tx); Tr = VFNMS(LDK(KP500000000), T6, T1); TH = VFMA(LDK(KP173648177), Ts, VFNMS(LDK(KP296198132), Tw, VFNMS(LDK(KP939692620), Tv, VFNMS(LDK(KP852868531), Tt, Tr)))); ST(&(x[WS(rs, 7)]), VSUB(TH, TI), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 2)]), VADD(TH, TI), ms, &(x[0])); { V Tz, TE, TF, TG; Tz = VADD(Tr, Ty); TE = VBYI(VADD(TA, TD)); ST(&(x[WS(rs, 8)]), VSUB(Tz, TE), ms, &(x[0])); ST(&(x[WS(rs, 1)]), VADD(TE, Tz), ms, &(x[WS(rs, 1)])); TF = VFMA(LDK(KP866025403), VSUB(TB, TC), VFNMS(LDK(KP500000000), Ty, Tr)); TG = VBYI(VADD(TA, VFNMS(LDK(KP500000000), TD, VMUL(LDK(KP866025403), VSUB(Tx, Tu))))); ST(&(x[WS(rs, 5)]), VSUB(TF, TG), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 4)]), VADD(TF, TG), ms, &(x[0])); } } } } 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(10, 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])); } } } VLEAVE(); }
static void n1fv_13(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP2_000000000, +2.000000000000000000000000000000000000000000000); DVK(KP083333333, +0.083333333333333333333333333333333333333333333); DVK(KP075902986, +0.075902986037193865983102897245103540356428373); DVK(KP251768516, +0.251768516431883313623436926934233488546674281); DVK(KP132983124, +0.132983124607418643793760531921092974399165133); DVK(KP258260390, +0.258260390311744861420450644284508567852516811); DVK(KP1_732050807, +1.732050807568877293527446341505872366942805254); DVK(KP300238635, +0.300238635966332641462884626667381504676006424); DVK(KP011599105, +0.011599105605768290721655456654083252189827041); DVK(KP156891391, +0.156891391051584611046832726756003269660212636); DVK(KP256247671, +0.256247671582936600958684654061725059144125175); DVK(KP174138601, +0.174138601152135905005660794929264742616964676); DVK(KP575140729, +0.575140729474003121368385547455453388461001608); DVK(KP503537032, +0.503537032863766627246873853868466977093348562); DVK(KP113854479, +0.113854479055790798974654345867655310534642560); DVK(KP265966249, +0.265966249214837287587521063842185948798330267); DVK(KP387390585, +0.387390585467617292130675966426762851778775217); DVK(KP300462606, +0.300462606288665774426601772289207995520941381); 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(is), MAKE_VOLATILE_STRIDE(os)) { V TW, Tb, Tm, Tu, TC, TR, TX, TK, TU, Tz, TB, TN, TT; TW = LD(&(xi[0]), ivs, &(xi[0])); { V T3, TH, Tl, Tw, Tp, Tg, Tv, To, T6, Tr, T9, Ts, Ta, TI, T1; V T2, Tq, Tt; T1 = LD(&(xi[WS(is, 8)]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); T3 = VSUB(T1, T2); TH = VADD(T1, T2); { V Th, Ti, Tj, Tk; Th = LD(&(xi[WS(is, 12)]), ivs, &(xi[0])); Ti = LD(&(xi[WS(is, 10)]), ivs, &(xi[0])); Tj = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); Tk = VADD(Ti, Tj); Tl = VADD(Th, Tk); Tw = VSUB(Ti, Tj); Tp = VFNMS(LDK(KP500000000), Tk, Th); } { V Tc, Td, Te, Tf; Tc = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); Td = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); Te = LD(&(xi[WS(is, 9)]), ivs, &(xi[WS(is, 1)])); Tf = VADD(Td, Te); Tg = VADD(Tc, Tf); Tv = VSUB(Td, Te); To = VFNMS(LDK(KP500000000), Tf, Tc); } { V T4, T5, T7, T8; T4 = LD(&(xi[WS(is, 11)]), ivs, &(xi[WS(is, 1)])); T5 = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); T6 = VSUB(T4, T5); Tr = VADD(T4, T5); T7 = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); T8 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T9 = VSUB(T7, T8); Ts = VADD(T7, T8); } Ta = VADD(T6, T9); TI = VADD(Tr, Ts); Tb = VADD(T3, Ta); Tm = VSUB(Tg, Tl); Tq = VSUB(To, Tp); Tt = VMUL(LDK(KP866025403), VSUB(Tr, Ts)); Tu = VADD(Tq, Tt); TC = VSUB(Tq, Tt); { V TP, TQ, TG, TJ; TP = VADD(Tg, Tl); TQ = VADD(TH, TI); TR = VMUL(LDK(KP300462606), VSUB(TP, TQ)); TX = VADD(TP, TQ); TG = VADD(To, Tp); TJ = VFNMS(LDK(KP500000000), TI, TH); TK = VSUB(TG, TJ); TU = VADD(TG, TJ); } { V Tx, Ty, TL, TM; Tx = VMUL(LDK(KP866025403), VSUB(Tv, Tw)); Ty = VFNMS(LDK(KP500000000), Ta, T3); Tz = VSUB(Tx, Ty); TB = VADD(Tx, Ty); TL = VADD(Tv, Tw); TM = VSUB(T6, T9); TN = VSUB(TL, TM); TT = VADD(TL, TM); } } ST(&(xo[0]), VADD(TW, TX), ovs, &(xo[0])); { V T19, T1n, T14, T13, T1f, T1k, Tn, TE, T1e, T1j, TS, T1m, TZ, T1c, TA; V TD; { V T17, T18, T11, T12; T17 = VFMA(LDK(KP387390585), TN, VMUL(LDK(KP265966249), TK)); T18 = VFNMS(LDK(KP503537032), TU, VMUL(LDK(KP113854479), TT)); T19 = VSUB(T17, T18); T1n = VADD(T17, T18); T14 = VFMA(LDK(KP575140729), Tm, VMUL(LDK(KP174138601), Tb)); T11 = VFNMS(LDK(KP156891391), TB, VMUL(LDK(KP256247671), TC)); T12 = VFMA(LDK(KP011599105), Tz, VMUL(LDK(KP300238635), Tu)); T13 = VSUB(T11, T12); T1f = VADD(T14, T13); T1k = VMUL(LDK(KP1_732050807), VADD(T11, T12)); } Tn = VFNMS(LDK(KP174138601), Tm, VMUL(LDK(KP575140729), Tb)); TA = VFNMS(LDK(KP300238635), Tz, VMUL(LDK(KP011599105), Tu)); TD = VFMA(LDK(KP256247671), TB, VMUL(LDK(KP156891391), TC)); TE = VSUB(TA, TD); T1e = VMUL(LDK(KP1_732050807), VADD(TD, TA)); T1j = VSUB(Tn, TE); { V TO, T1b, TV, TY, T1a; TO = VFNMS(LDK(KP132983124), TN, VMUL(LDK(KP258260390), TK)); T1b = VSUB(TR, TO); TV = VFMA(LDK(KP251768516), TT, VMUL(LDK(KP075902986), TU)); TY = VFNMS(LDK(KP083333333), TX, TW); T1a = VSUB(TY, TV); TS = VFMA(LDK(KP2_000000000), TO, TR); T1m = VADD(T1b, T1a); TZ = VFMA(LDK(KP2_000000000), TV, TY); T1c = VSUB(T1a, T1b); } { V TF, T10, T1l, T1o; TF = VBYI(VFMA(LDK(KP2_000000000), TE, Tn)); T10 = VADD(TS, TZ); ST(&(xo[WS(os, 1)]), VADD(TF, T10), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 12)]), VSUB(T10, TF), ovs, &(xo[0])); { V T15, T16, T1p, T1q; T15 = VBYI(VFMS(LDK(KP2_000000000), T13, T14)); T16 = VSUB(TZ, TS); ST(&(xo[WS(os, 5)]), VADD(T15, T16), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 8)]), VSUB(T16, T15), ovs, &(xo[0])); T1p = VADD(T1n, T1m); T1q = VBYI(VADD(T1j, T1k)); ST(&(xo[WS(os, 4)]), VSUB(T1p, T1q), ovs, &(xo[0])); ST(&(xo[WS(os, 9)]), VADD(T1q, T1p), ovs, &(xo[WS(os, 1)])); } T1l = VBYI(VSUB(T1j, T1k)); T1o = VSUB(T1m, T1n); ST(&(xo[WS(os, 3)]), VADD(T1l, T1o), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 10)]), VSUB(T1o, T1l), ovs, &(xo[0])); { V T1h, T1i, T1d, T1g; T1h = VBYI(VSUB(T1e, T1f)); T1i = VSUB(T1c, T19); ST(&(xo[WS(os, 6)]), VADD(T1h, T1i), ovs, &(xo[0])); ST(&(xo[WS(os, 7)]), VSUB(T1i, T1h), ovs, &(xo[WS(os, 1)])); T1d = VADD(T19, T1c); T1g = VBYI(VADD(T1e, T1f)); ST(&(xo[WS(os, 2)]), VSUB(T1d, T1g), ovs, &(xo[0])); ST(&(xo[WS(os, 11)]), VADD(T1g, T1d), ovs, &(xo[WS(os, 1)])); } } } } }
static void t1buv_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 = ii; 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 Tl, Tq, Tg, Tr, T5, Tt, Ta, Tu, Ti, Tk, Tj; Ti = LD(&(x[0]), ms, &(x[0])); Tj = LD(&(x[WS(rs, 4)]), ms, &(x[0])); Tk = BYTW(&(W[TWVL * 6]), Tj); Tl = VSUB(Ti, Tk); Tq = VADD(Ti, Tk); { V Td, Tf, Tc, Te; Tc = LD(&(x[WS(rs, 2)]), ms, &(x[0])); Td = BYTW(&(W[TWVL * 2]), Tc); Te = LD(&(x[WS(rs, 6)]), ms, &(x[0])); Tf = BYTW(&(W[TWVL * 10]), Te); Tg = VSUB(Td, Tf); Tr = VADD(Td, Tf); } { V T2, T4, T1, T3; T1 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); T2 = BYTW(&(W[0]), T1); T3 = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); T4 = BYTW(&(W[TWVL * 8]), T3); T5 = VSUB(T2, T4); Tt = VADD(T2, T4); } { V T7, T9, T6, T8; T6 = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); T7 = BYTW(&(W[TWVL * 12]), T6); T8 = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); T9 = BYTW(&(W[TWVL * 4]), T8); Ta = VSUB(T7, T9); Tu = VADD(T7, T9); } { V Ts, Tv, Tw, Tx; Ts = VSUB(Tq, Tr); Tv = VBYI(VSUB(Tt, Tu)); ST(&(x[WS(rs, 6)]), VSUB(Ts, Tv), ms, &(x[0])); ST(&(x[WS(rs, 2)]), VADD(Ts, Tv), ms, &(x[0])); Tw = VADD(Tq, Tr); Tx = VADD(Tt, Tu); ST(&(x[WS(rs, 4)]), VSUB(Tw, Tx), ms, &(x[0])); ST(&(x[0]), VADD(Tw, Tx), ms, &(x[0])); { V Th, To, Tn, Tp, Tb, Tm; Tb = VMUL(LDK(KP707106781), VSUB(T5, Ta)); Th = VBYI(VSUB(Tb, Tg)); To = VBYI(VADD(Tg, Tb)); Tm = VMUL(LDK(KP707106781), VADD(T5, Ta)); Tn = VSUB(Tl, Tm); Tp = VADD(Tl, Tm); ST(&(x[WS(rs, 3)]), VADD(Th, Tn), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 7)]), VSUB(Tp, To), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 5)]), VSUB(Tn, Th), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 1)]), VADD(To, Tp), ms, &(x[WS(rs, 1)])); } } } }
static void n1fv_10(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP250000000, +0.250000000000000000000000000000000000000000000); DVK(KP559016994, +0.559016994374947424102293417182819058860154590); DVK(KP587785252, +0.587785252292473129168705954639072768597652438); DVK(KP951056516, +0.951056516295153572116439333379382143405698634); { 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(20, is), MAKE_VOLATILE_STRIDE(20, os)) { V Ti, Ty, Tm, Tn, Tw, Tt, Tz, TA, TB, T7, Te, Tj, Tg, Th; Tg = LD(&(xi[0]), ivs, &(xi[0])); Th = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); Ti = VSUB(Tg, Th); Ty = VADD(Tg, Th); { V T3, Tu, Td, Ts, T6, Tv, Ta, Tr; { V T1, T2, Tb, Tc; T1 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); T3 = VSUB(T1, T2); Tu = VADD(T1, T2); Tb = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); Tc = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); Td = VSUB(Tb, Tc); Ts = VADD(Tb, Tc); } { V T4, T5, T8, T9; T4 = LD(&(xi[WS(is, 8)]), ivs, &(xi[0])); T5 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T6 = VSUB(T4, T5); Tv = VADD(T4, T5); T8 = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); T9 = LD(&(xi[WS(is, 9)]), ivs, &(xi[WS(is, 1)])); Ta = VSUB(T8, T9); Tr = VADD(T8, T9); } Tm = VSUB(T3, T6); Tn = VSUB(Ta, Td); Tw = VSUB(Tu, Tv); Tt = VSUB(Tr, Ts); Tz = VADD(Tu, Tv); TA = VADD(Tr, Ts); TB = VADD(Tz, TA); T7 = VADD(T3, T6); Te = VADD(Ta, Td); Tj = VADD(T7, Te); } ST(&(xo[WS(os, 5)]), VADD(Ti, Tj), ovs, &(xo[WS(os, 1)])); ST(&(xo[0]), VADD(Ty, TB), ovs, &(xo[0])); { V To, Tq, Tl, Tp, Tf, Tk; To = VBYI(VFMA(LDK(KP951056516), Tm, VMUL(LDK(KP587785252), Tn))); Tq = VBYI(VFNMS(LDK(KP587785252), Tm, VMUL(LDK(KP951056516), Tn))); Tf = VMUL(LDK(KP559016994), VSUB(T7, Te)); Tk = VFNMS(LDK(KP250000000), Tj, Ti); Tl = VADD(Tf, Tk); Tp = VSUB(Tk, Tf); ST(&(xo[WS(os, 1)]), VSUB(Tl, To), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 7)]), VADD(Tq, Tp), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 9)]), VADD(To, Tl), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 3)]), VSUB(Tp, Tq), ovs, &(xo[WS(os, 1)])); } { V Tx, TF, TE, TG, TC, TD; Tx = VBYI(VFNMS(LDK(KP587785252), Tw, VMUL(LDK(KP951056516), Tt))); TF = VBYI(VFMA(LDK(KP951056516), Tw, VMUL(LDK(KP587785252), Tt))); TC = VFNMS(LDK(KP250000000), TB, Ty); TD = VMUL(LDK(KP559016994), VSUB(Tz, TA)); TE = VSUB(TC, TD); TG = VADD(TD, TC); ST(&(xo[WS(os, 2)]), VADD(Tx, TE), ovs, &(xo[0])); ST(&(xo[WS(os, 6)]), VSUB(TG, TF), ovs, &(xo[0])); ST(&(xo[WS(os, 8)]), VSUB(TE, Tx), ovs, &(xo[0])); ST(&(xo[WS(os, 4)]), VADD(TF, TG), ovs, &(xo[0])); } } } VLEAVE(); }
static void t3fv_20(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 = ri; 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(20, rs)) { V T2, T8, T9, TA, T3, Tc, T4, TZ, T18, Tl, Tq, Tx, TU, Td, Te; V T15, Ti, Tt, TJ; T2 = LDW(&(W[0])); T8 = LDW(&(W[TWVL * 2])); T9 = VZMUL(T2, T8); TA = VZMULJ(T2, T8); T3 = LDW(&(W[TWVL * 4])); Tc = VZMULJ(T9, T3); T4 = VZMUL(T2, T3); TZ = VZMUL(T9, T3); T18 = VZMULJ(TA, T3); Tl = VZMULJ(T8, T3); Tq = VZMULJ(T2, T3); Tx = VZMUL(T8, T3); TU = VZMUL(TA, T3); Td = LDW(&(W[TWVL * 6])); Te = VZMULJ(Tc, Td); T15 = VZMULJ(TA, Td); Ti = VZMULJ(T8, Td); Tt = VZMULJ(T2, Td); TJ = VZMULJ(T9, Td); { V T7, TM, T1U, T2d, T1i, T1p, T1q, T1j, Tp, TE, TF, T26, T27, T2b, T1M; V T1P, T1V, TY, T1c, T1d, T23, T24, T2a, T1F, T1I, T1W, TG, T1e; { V T1, TL, T6, TI, TK, T5, TH, T1S, T1T; T1 = LD(&(x[0]), ms, &(x[0])); TK = LD(&(x[WS(rs, 15)]), ms, &(x[WS(rs, 1)])); TL = VZMULJ(TJ, TK); T5 = LD(&(x[WS(rs, 10)]), ms, &(x[0])); T6 = VZMULJ(T4, T5); TH = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); TI = VZMULJ(Tc, TH); T7 = VSUB(T1, T6); TM = VSUB(TI, TL); T1S = VADD(T1, T6); T1T = VADD(TI, TL); T1U = VSUB(T1S, T1T); T2d = VADD(T1S, T1T); } { V Th, T1K, T14, T1E, T1b, T1H, To, T1N, Tw, T1D, TR, T1L, TX, T1O, TD; V T1G; { V Tb, Tg, Ta, Tf; Ta = LD(&(x[WS(rs, 4)]), ms, &(x[0])); Tb = VZMULJ(T9, Ta); Tf = LD(&(x[WS(rs, 14)]), ms, &(x[0])); Tg = VZMULJ(Te, Tf); Th = VSUB(Tb, Tg); T1K = VADD(Tb, Tg); } { V T11, T13, T10, T12; T10 = LD(&(x[WS(rs, 13)]), ms, &(x[WS(rs, 1)])); T11 = VZMULJ(TZ, T10); T12 = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); T13 = VZMULJ(T8, T12); T14 = VSUB(T11, T13); T1E = VADD(T11, T13); } { V T17, T1a, T16, T19; T16 = LD(&(x[WS(rs, 17)]), ms, &(x[WS(rs, 1)])); T17 = VZMULJ(T15, T16); T19 = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); T1a = VZMULJ(T18, T19); T1b = VSUB(T17, T1a); T1H = VADD(T17, T1a); } { V Tk, Tn, Tj, Tm; Tj = LD(&(x[WS(rs, 16)]), ms, &(x[0])); Tk = VZMULJ(Ti, Tj); Tm = LD(&(x[WS(rs, 6)]), ms, &(x[0])); Tn = VZMULJ(Tl, Tm); To = VSUB(Tk, Tn); T1N = VADD(Tk, Tn); } { V Ts, Tv, Tr, Tu; Tr = LD(&(x[WS(rs, 8)]), ms, &(x[0])); Ts = VZMULJ(Tq, Tr); Tu = LD(&(x[WS(rs, 18)]), ms, &(x[0])); Tv = VZMULJ(Tt, Tu); Tw = VSUB(Ts, Tv); T1D = VADD(Ts, Tv); } { V TO, TQ, TN, TP; TN = LD(&(x[WS(rs, 9)]), ms, &(x[WS(rs, 1)])); TO = VZMULJ(T3, TN); TP = LD(&(x[WS(rs, 19)]), ms, &(x[WS(rs, 1)])); TQ = VZMULJ(Td, TP); TR = VSUB(TO, TQ); T1L = VADD(TO, TQ); } { V TT, TW, TS, TV; TS = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); TT = VZMULJ(T2, TS); TV = LD(&(x[WS(rs, 11)]), ms, &(x[WS(rs, 1)])); TW = VZMULJ(TU, TV); TX = VSUB(TT, TW); T1O = VADD(TT, TW); } { V Tz, TC, Ty, TB; Ty = LD(&(x[WS(rs, 12)]), ms, &(x[0])); Tz = VZMULJ(Tx, Ty); TB = LD(&(x[WS(rs, 2)]), ms, &(x[0])); TC = VZMULJ(TA, TB); TD = VSUB(Tz, TC); T1G = VADD(Tz, TC); } T1i = VSUB(TX, TR); T1p = VSUB(Th, To); T1q = VSUB(Tw, TD); T1j = VSUB(T1b, T14); Tp = VADD(Th, To); TE = VADD(Tw, TD); TF = VADD(Tp, TE); T26 = VADD(T1D, T1E); T27 = VADD(T1G, T1H); T2b = VADD(T26, T27); T1M = VSUB(T1K, T1L); T1P = VSUB(T1N, T1O); T1V = VADD(T1M, T1P); TY = VADD(TR, TX); T1c = VADD(T14, T1b); T1d = VADD(TY, T1c); T23 = VADD(T1K, T1L); T24 = VADD(T1N, T1O); T2a = VADD(T23, T24); T1F = VSUB(T1D, T1E); T1I = VSUB(T1G, T1H); T1W = VADD(T1F, T1I); } TG = VADD(T7, TF); T1e = VBYI(VADD(TM, T1d)); ST(&(x[WS(rs, 5)]), VSUB(TG, T1e), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 15)]), VADD(TG, T1e), ms, &(x[WS(rs, 1)])); { V T2c, T2e, T2f, T29, T2i, T25, T28, T2h, T2g; T2c = VMUL(LDK(KP559016994), VSUB(T2a, T2b)); T2e = VADD(T2a, T2b); T2f = VFNMS(LDK(KP250000000), T2e, T2d); T25 = VSUB(T23, T24); T28 = VSUB(T26, T27); T29 = VBYI(VFMA(LDK(KP951056516), T25, VMUL(LDK(KP587785252), T28))); T2i = VBYI(VFNMS(LDK(KP587785252), T25, VMUL(LDK(KP951056516), T28))); ST(&(x[0]), VADD(T2d, T2e), ms, &(x[0])); T2h = VSUB(T2f, T2c); ST(&(x[WS(rs, 8)]), VSUB(T2h, T2i), ms, &(x[0])); ST(&(x[WS(rs, 12)]), VADD(T2i, T2h), ms, &(x[0])); T2g = VADD(T2c, T2f); ST(&(x[WS(rs, 4)]), VADD(T29, T2g), ms, &(x[0])); ST(&(x[WS(rs, 16)]), VSUB(T2g, T29), ms, &(x[0])); } { V T1Z, T1X, T1Y, T1R, T22, T1J, T1Q, T21, T20; T1Z = VMUL(LDK(KP559016994), VSUB(T1V, T1W)); T1X = VADD(T1V, T1W); T1Y = VFNMS(LDK(KP250000000), T1X, T1U); T1J = VSUB(T1F, T1I); T1Q = VSUB(T1M, T1P); T1R = VBYI(VFNMS(LDK(KP587785252), T1Q, VMUL(LDK(KP951056516), T1J))); T22 = VBYI(VFMA(LDK(KP951056516), T1Q, VMUL(LDK(KP587785252), T1J))); ST(&(x[WS(rs, 10)]), VADD(T1U, T1X), ms, &(x[0])); T21 = VADD(T1Z, T1Y); ST(&(x[WS(rs, 6)]), VSUB(T21, T22), ms, &(x[0])); ST(&(x[WS(rs, 14)]), VADD(T22, T21), ms, &(x[0])); T20 = VSUB(T1Y, T1Z); ST(&(x[WS(rs, 2)]), VADD(T1R, T20), ms, &(x[0])); ST(&(x[WS(rs, 18)]), VSUB(T20, T1R), ms, &(x[0])); } { V T1k, T1r, T1z, T1w, T1o, T1y, T1h, T1v; T1k = VFMA(LDK(KP951056516), T1i, VMUL(LDK(KP587785252), T1j)); T1r = VFMA(LDK(KP951056516), T1p, VMUL(LDK(KP587785252), T1q)); T1z = VFNMS(LDK(KP587785252), T1p, VMUL(LDK(KP951056516), T1q)); T1w = VFNMS(LDK(KP587785252), T1i, VMUL(LDK(KP951056516), T1j)); { V T1m, T1n, T1f, T1g; T1m = VFMS(LDK(KP250000000), T1d, TM); T1n = VMUL(LDK(KP559016994), VSUB(T1c, TY)); T1o = VADD(T1m, T1n); T1y = VSUB(T1n, T1m); T1f = VMUL(LDK(KP559016994), VSUB(Tp, TE)); T1g = VFNMS(LDK(KP250000000), TF, T7); T1h = VADD(T1f, T1g); T1v = VSUB(T1g, T1f); } { V T1l, T1s, T1B, T1C; T1l = VADD(T1h, T1k); T1s = VBYI(VSUB(T1o, T1r)); ST(&(x[WS(rs, 19)]), VSUB(T1l, T1s), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 1)]), VADD(T1l, T1s), ms, &(x[WS(rs, 1)])); T1B = VADD(T1v, T1w); T1C = VBYI(VADD(T1z, T1y)); ST(&(x[WS(rs, 13)]), VSUB(T1B, T1C), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 7)]), VADD(T1B, T1C), ms, &(x[WS(rs, 1)])); } { V T1t, T1u, T1x, T1A; T1t = VSUB(T1h, T1k); T1u = VBYI(VADD(T1r, T1o)); ST(&(x[WS(rs, 11)]), VSUB(T1t, T1u), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 9)]), VADD(T1t, T1u), ms, &(x[WS(rs, 1)])); T1x = VSUB(T1v, T1w); T1A = VBYI(VSUB(T1y, T1z)); ST(&(x[WS(rs, 17)]), VSUB(T1x, T1A), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 3)]), VADD(T1x, T1A), ms, &(x[WS(rs, 1)])); } } } } } VLEAVE(); }
static void t1fuv_7(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { 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 m; R *x; x = ri; for (m = mb, W = W + (mb * ((TWVL / VL) * 12)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 12), MAKE_VOLATILE_STRIDE(7, rs)) { V T1, Tg, Tj, T6, Ti, Tb, Tk, Tp, To; T1 = LD(&(x[0]), ms, &(x[0])); { V Td, Tf, Tc, Te; Tc = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); Td = BYTWJ(&(W[TWVL * 4]), Tc); Te = LD(&(x[WS(rs, 4)]), ms, &(x[0])); Tf = BYTWJ(&(W[TWVL * 6]), Te); Tg = VADD(Td, Tf); Tj = VSUB(Tf, Td); } { V T3, T5, T2, T4; T2 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); T3 = BYTWJ(&(W[0]), T2); T4 = LD(&(x[WS(rs, 6)]), ms, &(x[0])); T5 = BYTWJ(&(W[TWVL * 10]), T4); T6 = VADD(T3, T5); Ti = VSUB(T5, T3); } { V T8, Ta, T7, T9; T7 = LD(&(x[WS(rs, 2)]), ms, &(x[0])); T8 = BYTWJ(&(W[TWVL * 2]), T7); T9 = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); Ta = BYTWJ(&(W[TWVL * 8]), T9); Tb = VADD(T8, Ta); Tk = VSUB(Ta, T8); } ST(&(x[0]), VADD(T1, VADD(T6, VADD(Tb, Tg))), ms, &(x[0])); Tp = VBYI(VFMA(LDK(KP433883739), Ti, VFNMS(LDK(KP781831482), Tk, VMUL(LDK(KP974927912), Tj)))); To = VFMA(LDK(KP623489801), Tb, VFNMS(LDK(KP222520933), Tg, VFNMS(LDK(KP900968867), T6, T1))); ST(&(x[WS(rs, 4)]), VSUB(To, Tp), ms, &(x[0])); ST(&(x[WS(rs, 3)]), VADD(To, Tp), ms, &(x[WS(rs, 1)])); { V Tl, Th, Tn, Tm; Tl = VBYI(VFNMS(LDK(KP781831482), Tj, VFNMS(LDK(KP433883739), Tk, VMUL(LDK(KP974927912), Ti)))); Th = VFMA(LDK(KP623489801), Tg, VFNMS(LDK(KP900968867), Tb, VFNMS(LDK(KP222520933), T6, T1))); ST(&(x[WS(rs, 5)]), VSUB(Th, Tl), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 2)]), VADD(Th, Tl), ms, &(x[0])); Tn = VBYI(VFMA(LDK(KP781831482), Ti, VFMA(LDK(KP974927912), Tk, VMUL(LDK(KP433883739), Tj)))); Tm = VFMA(LDK(KP623489801), T6, VFNMS(LDK(KP900968867), Tg, VFNMS(LDK(KP222520933), Tb, T1))); ST(&(x[WS(rs, 6)]), VSUB(Tm, Tn), ms, &(x[0])); ST(&(x[WS(rs, 1)]), VADD(Tm, Tn), ms, &(x[WS(rs, 1)])); } } } VLEAVE(); }
static void n1bv_15(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs) { DVK(KP216506350, +0.216506350946109661690930792688234045867850657); 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(KP866025403, +0.866025403784438646763723170752936183471402627); DVK(KP484122918, +0.484122918275927110647408174972799951354115213); DVK(KP500000000, +0.500000000000000000000000000000000000000000000); { 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 Ti, T11, TH, Ts, TL, TM, Tz, TC, TD, TI, T12, T13, T14, T15, T16; V T17, Tf, Tj, TZ, T10; { V TF, Tg, Th, TG; TF = LD(&(xi[0]), ivs, &(xi[0])); Tg = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)])); Th = LD(&(xi[WS(is, 10)]), ivs, &(xi[0])); TG = VADD(Tg, Th); Ti = VSUB(Tg, Th); T11 = VADD(TF, TG); TH = VFNMS(LDK(KP500000000), TG, TF); } { V Tm, Tn, T3, To, Tw, Tx, Td, Ty, Tp, Tq, T6, Tr, Tt, Tu, Ta; V Tv, T7, Te; { V T1, T2, Tb, Tc; Tm = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)])); T1 = LD(&(xi[WS(is, 8)]), ivs, &(xi[0])); T2 = LD(&(xi[WS(is, 13)]), ivs, &(xi[WS(is, 1)])); Tn = VADD(T1, T2); T3 = VSUB(T1, T2); To = VFNMS(LDK(KP500000000), Tn, Tm); Tw = LD(&(xi[WS(is, 9)]), ivs, &(xi[WS(is, 1)])); Tb = LD(&(xi[WS(is, 14)]), ivs, &(xi[0])); Tc = LD(&(xi[WS(is, 4)]), ivs, &(xi[0])); Tx = VADD(Tb, Tc); Td = VSUB(Tb, Tc); Ty = VFNMS(LDK(KP500000000), Tx, Tw); } { V T4, T5, T8, T9; Tp = LD(&(xi[WS(is, 12)]), ivs, &(xi[0])); T4 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0])); T5 = LD(&(xi[WS(is, 7)]), ivs, &(xi[WS(is, 1)])); Tq = VADD(T4, T5); T6 = VSUB(T4, T5); Tr = VFNMS(LDK(KP500000000), Tq, Tp); Tt = LD(&(xi[WS(is, 6)]), ivs, &(xi[0])); T8 = LD(&(xi[WS(is, 11)]), ivs, &(xi[WS(is, 1)])); T9 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)])); Tu = VADD(T8, T9); Ta = VSUB(T8, T9); Tv = VFNMS(LDK(KP500000000), Tu, Tt); } Ts = VSUB(To, Tr); TL = VSUB(T3, T6); TM = VSUB(Ta, Td); Tz = VSUB(Tv, Ty); TC = VADD(To, Tr); TD = VADD(Tv, Ty); TI = VADD(TC, TD); T12 = VADD(Tm, Tn); T13 = VADD(Tp, Tq); T14 = VADD(T12, T13); T15 = VADD(Tt, Tu); T16 = VADD(Tw, Tx); T17 = VADD(T15, T16); T7 = VADD(T3, T6); Te = VADD(Ta, Td); Tf = VMUL(LDK(KP484122918), VSUB(T7, Te)); Tj = VADD(T7, Te); } TZ = VADD(TH, TI); T10 = VBYI(VMUL(LDK(KP866025403), VADD(Ti, Tj))); ST(&(xo[WS(os, 5)]), VSUB(TZ, T10), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 10)]), VADD(T10, TZ), ovs, &(xo[0])); { V T1a, T18, T19, T1e, T1f, T1c, T1d, T1g, T1b; T1a = VMUL(LDK(KP559016994), VSUB(T14, T17)); T18 = VADD(T14, T17); T19 = VFNMS(LDK(KP250000000), T18, T11); T1c = VSUB(T12, T13); T1d = VSUB(T15, T16); T1e = VBYI(VFNMS(LDK(KP951056516), T1d, VMUL(LDK(KP587785252), T1c))); T1f = VBYI(VFMA(LDK(KP951056516), T1c, VMUL(LDK(KP587785252), T1d))); ST(&(xo[0]), VADD(T11, T18), ovs, &(xo[0])); T1g = VADD(T1a, T19); ST(&(xo[WS(os, 6)]), VADD(T1f, T1g), ovs, &(xo[0])); ST(&(xo[WS(os, 9)]), VSUB(T1g, T1f), ovs, &(xo[WS(os, 1)])); T1b = VSUB(T19, T1a); ST(&(xo[WS(os, 3)]), VSUB(T1b, T1e), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 12)]), VADD(T1e, T1b), ovs, &(xo[0])); } { V TA, TN, TU, TS, Tl, TR, TK, TV, Tk, TE, TJ; TA = VFMA(LDK(KP951056516), Ts, VMUL(LDK(KP587785252), Tz)); TN = VFMA(LDK(KP823639103), TL, VMUL(LDK(KP509036960), TM)); TU = VFNMS(LDK(KP823639103), TM, VMUL(LDK(KP509036960), TL)); TS = VFNMS(LDK(KP951056516), Tz, VMUL(LDK(KP587785252), Ts)); Tk = VFNMS(LDK(KP216506350), Tj, VMUL(LDK(KP866025403), Ti)); Tl = VADD(Tf, Tk); TR = VSUB(Tf, Tk); TE = VMUL(LDK(KP559016994), VSUB(TC, TD)); TJ = VFNMS(LDK(KP250000000), TI, TH); TK = VADD(TE, TJ); TV = VSUB(TJ, TE); { V TB, TO, TX, TY; TB = VBYI(VADD(Tl, TA)); TO = VSUB(TK, TN); ST(&(xo[WS(os, 1)]), VADD(TB, TO), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 14)]), VSUB(TO, TB), ovs, &(xo[0])); TX = VBYI(VSUB(TS, TR)); TY = VSUB(TV, TU); ST(&(xo[WS(os, 7)]), VADD(TX, TY), ovs, &(xo[WS(os, 1)])); ST(&(xo[WS(os, 8)]), VSUB(TY, TX), ovs, &(xo[0])); } { V TP, TQ, TT, TW; TP = VBYI(VSUB(Tl, TA)); TQ = VADD(TN, TK); ST(&(xo[WS(os, 4)]), VADD(TP, TQ), ovs, &(xo[0])); ST(&(xo[WS(os, 11)]), VSUB(TQ, TP), ovs, &(xo[WS(os, 1)])); TT = VBYI(VADD(TR, TS)); TW = VADD(TU, TV); ST(&(xo[WS(os, 2)]), VADD(TT, TW), ovs, &(xo[0])); ST(&(xo[WS(os, 13)]), VSUB(TW, TT), ovs, &(xo[WS(os, 1)])); } } } } VLEAVE(); }
static void t1fv_12(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP866025403, +0.866025403784438646763723170752936183471402627); DVK(KP500000000, +0.500000000000000000000000000000000000000000000); { INT m; R *x; x = ri; for (m = mb, W = W + (mb * ((TWVL / VL) * 22)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 22), MAKE_VOLATILE_STRIDE(12, rs)) { V T1, TH, T6, TA, Tq, TE, Tv, TL, T9, TI, Te, TB, Ti, TD, Tn; V TK; { V T5, T3, T4, T2; T1 = LD(&(x[0]), ms, &(x[0])); T4 = LD(&(x[WS(rs, 8)]), ms, &(x[0])); T5 = BYTWJ(&(W[TWVL * 14]), T4); T2 = LD(&(x[WS(rs, 4)]), ms, &(x[0])); T3 = BYTWJ(&(W[TWVL * 6]), T2); TH = VSUB(T5, T3); T6 = VADD(T3, T5); TA = VFNMS(LDK(KP500000000), T6, T1); } { V Tu, Ts, Tp, Tt, Tr; Tp = LD(&(x[WS(rs, 9)]), ms, &(x[WS(rs, 1)])); Tq = BYTWJ(&(W[TWVL * 16]), Tp); Tt = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)])); Tu = BYTWJ(&(W[TWVL * 8]), Tt); Tr = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)])); Ts = BYTWJ(&(W[0]), Tr); TE = VSUB(Tu, Ts); Tv = VADD(Ts, Tu); TL = VFNMS(LDK(KP500000000), Tv, Tq); } { V Td, Tb, T8, Tc, Ta; T8 = LD(&(x[WS(rs, 6)]), ms, &(x[0])); T9 = BYTWJ(&(W[TWVL * 10]), T8); Tc = LD(&(x[WS(rs, 2)]), ms, &(x[0])); Td = BYTWJ(&(W[TWVL * 2]), Tc); Ta = LD(&(x[WS(rs, 10)]), ms, &(x[0])); Tb = BYTWJ(&(W[TWVL * 18]), Ta); TI = VSUB(Td, Tb); Te = VADD(Tb, Td); TB = VFNMS(LDK(KP500000000), Te, T9); } { V Tm, Tk, Th, Tl, Tj; Th = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)])); Ti = BYTWJ(&(W[TWVL * 4]), Th); Tl = LD(&(x[WS(rs, 11)]), ms, &(x[WS(rs, 1)])); Tm = BYTWJ(&(W[TWVL * 20]), Tl); Tj = LD(&(x[WS(rs, 7)]), ms, &(x[WS(rs, 1)])); Tk = BYTWJ(&(W[TWVL * 12]), Tj); TD = VSUB(Tm, Tk); Tn = VADD(Tk, Tm); TK = VFNMS(LDK(KP500000000), Tn, Ti); } { V Tg, Ty, Tx, Tz; { V T7, Tf, To, Tw; T7 = VADD(T1, T6); Tf = VADD(T9, Te); Tg = VSUB(T7, Tf); Ty = VADD(T7, Tf); To = VADD(Ti, Tn); Tw = VADD(Tq, Tv); Tx = VBYI(VSUB(To, Tw)); Tz = VADD(To, Tw); } ST(&(x[WS(rs, 9)]), VSUB(Tg, Tx), ms, &(x[WS(rs, 1)])); ST(&(x[0]), VADD(Ty, Tz), ms, &(x[0])); ST(&(x[WS(rs, 3)]), VADD(Tg, Tx), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 6)]), VSUB(Ty, Tz), ms, &(x[0])); } { V TS, TW, TV, TX; { V TQ, TR, TT, TU; TQ = VADD(TA, TB); TR = VADD(TK, TL); TS = VSUB(TQ, TR); TW = VADD(TQ, TR); TT = VADD(TD, TE); TU = VADD(TH, TI); TV = VBYI(VMUL(LDK(KP866025403), VSUB(TT, TU))); TX = VBYI(VMUL(LDK(KP866025403), VADD(TU, TT))); } ST(&(x[WS(rs, 10)]), VSUB(TS, TV), ms, &(x[0])); ST(&(x[WS(rs, 4)]), VADD(TW, TX), ms, &(x[0])); ST(&(x[WS(rs, 2)]), VADD(TS, TV), ms, &(x[0])); ST(&(x[WS(rs, 8)]), VSUB(TW, TX), ms, &(x[0])); } { V TG, TP, TN, TO; { V TC, TF, TJ, TM; TC = VSUB(TA, TB); TF = VMUL(LDK(KP866025403), VSUB(TD, TE)); TG = VSUB(TC, TF); TP = VADD(TC, TF); TJ = VMUL(LDK(KP866025403), VSUB(TH, TI)); TM = VSUB(TK, TL); TN = VBYI(VADD(TJ, TM)); TO = VBYI(VSUB(TJ, TM)); } ST(&(x[WS(rs, 5)]), VSUB(TG, TN), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 11)]), VSUB(TP, TO), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 7)]), VADD(TN, TG), ms, &(x[WS(rs, 1)])); ST(&(x[WS(rs, 1)]), VADD(TO, TP), ms, &(x[WS(rs, 1)])); } } } VLEAVE(); }