31 #define GET_T(tt0,tt1,src,a,b){ \
32 a = vec_ld(16, src); \
33 tt0 = vec_perm(b, a, align); \
34 b = vec_ld(32, src); \
35 tt1 = vec_perm(a, b, align); \
38 #define GET_T(tt0,tt1,src,a,b){ \
39 tt0 = vec_vsx_ld(0, src); \
40 tt1 = vec_vsx_ld(16, src); \
45 static int32_t scalarproduct_and_madd_int16_altivec(int16_t *v1,
56 register vec_u8 align = vec_lvsl(0, v2);
67 res = vec_msum(
t0, i0, res);
68 res = vec_msum(
t1, i1, res);
70 pv1[0] = vec_mladd(
t0, muls, i0);
71 pv1[1] = vec_mladd(
t1, muls, i1);
76 res = vec_splat(vec_sums(res,
zero_s32v), 3);
77 vec_ste(res, 0, &ires);
89 c->scalarproduct_and_madd_int16 = scalarproduct_and_madd_int16_altivec;
Macro definitions for various function/variable attributes.
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
static float mul(float src0, float src1)
av_cold void ff_llauddsp_init_ppc(LLAudDSPContext *c)
#define GET_T(tt0, tt1, src, a, b)
#define PPC_ALTIVEC(flags)
Contains misc utility macros and inline functions.