Merge commit 'caccb3a0cdc7ee32cbed7eab156d35025133eadc'
authorClément Bœsch <u@pkh.me>
Mon, 20 Mar 2017 10:57:32 +0000 (11:57 +0100)
committerClément Bœsch <u@pkh.me>
Mon, 20 Mar 2017 10:57:32 +0000 (11:57 +0100)
* commit 'caccb3a0cdc7ee32cbed7eab156d35025133eadc':
  audiodsp: ppc: Add VSX variant

Merged-by: Clément Bœsch <u@pkh.me>
1  2 
libavcodec/ppc/audiodsp.c

@@@ -61,9 -61,34 +61,34 @@@ static int32_t scalarproduct_int16_alti
  
  #endif /* HAVE_ALTIVEC */
  
+ #if HAVE_VSX
+ static int32_t scalarproduct_int16_vsx(const int16_t *v1, const int16_t *v2, int order)
+ {
+     int i;
+     LOAD_ZERO;
+     register vec_s16 vec1;
+     register vec_s32 res = vec_splat_s32(0), t;
+     int32_t ires;
+     for (i = 0; i < order; i += 8) {
+         vec1 = vec_vsx_ld(0, v1);
+         t    = vec_msum(vec1, vec_ld(0, v2), zero_s32v);
+         res  = vec_sums(t, res);
+         v1  += 8;
+         v2  += 8;
+     }
+     res = vec_splat(res, 3);
+     vec_ste(res, 0, &ires);
+     return ires;
+ }
+ #endif /* HAVE_VSX */
  av_cold void ff_audiodsp_init_ppc(AudioDSPContext *c)
  {
 -#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 +#if HAVE_ALTIVEC
      if (!PPC_ALTIVEC(av_get_cpu_flags()))
          return;