ppc: vsx: Implement float_dsp

This commit is contained in:
Luca Barbato
2015-05-11 02:44:10 +02:00
parent 7d07ee5a9b
commit eecd29b3fd
5 changed files with 175 additions and 9 deletions

View File

@@ -24,18 +24,26 @@
#include "libavutil/float_dsp.h"
#include "libavutil/ppc/cpu.h"
#include "float_dsp_altivec.h"
#include "float_dsp_vsx.h"
av_cold void ff_float_dsp_init_ppc(AVFloatDSPContext *fdsp, int bit_exact)
{
if (!PPC_ALTIVEC(av_get_cpu_flags()))
return;
#if HAVE_BIGENDIAN
fdsp->vector_fmul = ff_vector_fmul_altivec;
fdsp->vector_fmul_add = ff_vector_fmul_add_altivec;
fdsp->vector_fmul_reverse = ff_vector_fmul_reverse_altivec;
if (HAVE_BIGENDIAN && PPC_ALTIVEC(av_get_cpu_flags())) {
fdsp->vector_fmul = ff_vector_fmul_altivec;
fdsp->vector_fmul_add = ff_vector_fmul_add_altivec;
fdsp->vector_fmul_reverse = ff_vector_fmul_reverse_altivec;
if (!bit_exact) {
fdsp->vector_fmul_window = ff_vector_fmul_window_altivec;
if (!bit_exact) {
fdsp->vector_fmul_window = ff_vector_fmul_window_altivec;
}
}
if (PPC_VSX(av_get_cpu_flags())) {
fdsp->vector_fmul = ff_vector_fmul_vsx;
fdsp->vector_fmul_add = ff_vector_fmul_add_vsx;
fdsp->vector_fmul_reverse = ff_vector_fmul_reverse_vsx;
if (!bit_exact) {
fdsp->vector_fmul_window = ff_vector_fmul_window_vsx;
}
}
#endif
}