*/
#include "config.h"
-#if HAVE_ALTIVEC_H
-#include <altivec.h>
-#endif
#include "libavutil/attributes.h"
-#include "libavutil/ppc/types_altivec.h"
+#include "libavutil/cpu.h"
+#include "libavutil/ppc/cpu.h"
+#include "libavutil/ppc/util_altivec.h"
+
#include "libavcodec/apedsp.h"
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
static int32_t scalarproduct_and_madd_int16_altivec(int16_t *v1,
const int16_t *v2,
const int16_t *v3,
return ires;
}
-#endif /* HAVE_ALTIVEC */
+#endif /* HAVE_ALTIVEC && HAVE_BIGENDIAN */
av_cold void ff_apedsp_init_ppc(APEDSPContext *c)
{
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
+ if (!PPC_ALTIVEC(av_get_cpu_flags()))
+ return;
+
c->scalarproduct_and_madd_int16 = scalarproduct_and_madd_int16_altivec;
-#endif /* HAVE_ALTIVEC */
+#endif /* HAVE_ALTIVEC && HAVE_BIGENDIAN */
}