ppc: Restrict some Altivec implementations to Big Endian
authorLuca Barbato <lu_zero@gentoo.org>
Sun, 10 May 2015 21:22:17 +0000 (23:22 +0200)
committerLuca Barbato <lu_zero@gentoo.org>
Sun, 31 May 2015 10:07:11 +0000 (12:07 +0200)
In Little Endian the vec_ld/vec_st operations work as
expected only for byte-vectors.

25 files changed:
libavcodec/ppc/apedsp_altivec.c
libavcodec/ppc/audiodsp.c
libavcodec/ppc/dct-test.c
libavcodec/ppc/fdctdsp.c
libavcodec/ppc/fft_init.c
libavcodec/ppc/fmtconvert_altivec.c
libavcodec/ppc/h264chroma_init.c
libavcodec/ppc/h264dsp.c
libavcodec/ppc/h264qpel.c
libavcodec/ppc/hpeldsp_altivec.c
libavcodec/ppc/huffyuvdsp_altivec.c
libavcodec/ppc/idctdsp.c
libavcodec/ppc/me_cmp.c
libavcodec/ppc/mpegaudiodsp_altivec.c
libavcodec/ppc/mpegvideo_altivec.c
libavcodec/ppc/mpegvideodsp.c
libavcodec/ppc/mpegvideoencdsp.c
libavcodec/ppc/pixblockdsp.c
libavcodec/ppc/svq1enc_altivec.c
libavcodec/ppc/vc1dsp_altivec.c
libavcodec/ppc/vorbisdsp_altivec.c
libavcodec/ppc/vp3dsp_altivec.c
libavcodec/ppc/vp8dsp_altivec.c
libavutil/ppc/float_dsp_init.c
libswscale/ppc/swscale_altivec.c

index d8bf4bd167c3e31511edcdf5a82411c841a656ac..3b9d045b829dd2d57804c3c0a2f56fc38daf10f5 100644 (file)
@@ -29,7 +29,7 @@
 #include "libavutil/ppc/types_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,
@@ -73,7 +73,7 @@ static int32_t scalarproduct_and_madd_int16_altivec(int16_t *v1,
 
 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;
 
index 36506ce90266b2586a3a57f9f99bf7015d39b69a..2a0a6d8ef0a87997d8139783fe0dfced021870c2 100644 (file)
@@ -35,7 +35,7 @@
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/audiodsp.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 
 static int32_t scalarproduct_int16_altivec(const int16_t *v1, const int16_t *v2,
                                            int order)
@@ -63,7 +63,7 @@ static int32_t scalarproduct_int16_altivec(const int16_t *v1, const int16_t *v2,
 
 av_cold void ff_audiodsp_init_ppc(AudioDSPContext *c)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index 37fd8bbd234a9f4a41517d0a769032825ad02cf5..2acbe2aeb04dcc49256d0f189abbe23b71fef063 100644 (file)
@@ -21,7 +21,7 @@
 #include "fdct.h"
 
 static const struct algo fdct_tab_arch[] = {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     { "altivecfdct", ff_fdct_altivec, FF_IDCT_PERM_NONE, AV_CPU_FLAG_ALTIVEC },
 #endif
     { 0 }
index 51417a5828c8ed1ecc04a82162bfd09bfa011d72..89ceb4736f198a9fa25eaabb87f0f658fc9790b2 100644 (file)
@@ -29,7 +29,7 @@
 #include "libavcodec/fdctdsp.h"
 #include "fdct.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 
 #define vs16(v)   ((vector signed short) (v))
 #define vs32(v)     ((vector signed int) (v))
@@ -465,7 +465,7 @@ void ff_fdct_altivec(int16_t *block)
 av_cold void ff_fdctdsp_init_ppc(FDCTDSPContext *c, AVCodecContext *avctx,
                                  unsigned high_bit_depth)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index 8fcc033b5353adf12c8183313b48adabb66b451c..9e79f70ed09592de7ed2f90cd327ed27406c780b 100644 (file)
@@ -39,7 +39,7 @@
 void ff_fft_calc_altivec(FFTContext *s, FFTComplex *z);
 void ff_fft_calc_interleave_altivec(FFTContext *s, FFTComplex *z);
 
-#if HAVE_GNU_AS && HAVE_ALTIVEC
+#if HAVE_GNU_AS && HAVE_ALTIVEC && HAVE_BIGENDIAN
 static void imdct_half_altivec(FFTContext *s, FFTSample *output, const FFTSample *input)
 {
     int j, k;
@@ -143,7 +143,7 @@ static void imdct_calc_altivec(FFTContext *s, FFTSample *output, const FFTSample
 
 av_cold void ff_fft_init_ppc(FFTContext *s)
 {
-#if HAVE_GNU_AS && HAVE_ALTIVEC
+#if HAVE_GNU_AS && HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index 7536703ff4f7018abba0dd63763e488770473475..796c4314ea46caf2969180c9cb627b6d5e88d924 100644 (file)
@@ -26,7 +26,7 @@
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/fmtconvert.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 
 static void int32_to_float_fmul_scalar_altivec(float *dst, const int32_t *src,
                                                float mul, int len)
@@ -57,7 +57,7 @@ static void int32_to_float_fmul_scalar_altivec(float *dst, const int32_t *src,
 av_cold void ff_fmt_convert_init_ppc(FmtConvertContext *c,
                                      AVCodecContext *avctx)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index 6d656d46ba03ea1a8e1a1a1edeecedbc1891d8dc..178f2397208caad4712f207c9743b0d3a67bf06b 100644 (file)
@@ -27,7 +27,7 @@
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/h264chroma.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 #define PUT_OP_U8_ALTIVEC(d, s, dst) d = s
 #define AVG_OP_U8_ALTIVEC(d, s, dst) d = vec_avg(dst, s)
 
@@ -50,7 +50,7 @@
 
 av_cold void ff_h264chroma_init_ppc(H264ChromaContext *c, int bit_depth)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     const int high_bit_depth = bit_depth > 8;
 
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
index 31dc141d2993216e71f42f4ed756bd104df4d5d6..90afbde11883496e25bf36feec0d438f3865660f 100644 (file)
@@ -28,7 +28,7 @@
 #include "libavcodec/h264data.h"
 #include "libavcodec/h264dsp.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 
 /****************************************************************************
  * IDCT transform:
@@ -745,7 +745,7 @@ H264_WEIGHT( 8)
 av_cold void ff_h264dsp_init_ppc(H264DSPContext *c, const int bit_depth,
                                  const int chroma_format_idc)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index f840277c8894119eea9224325380b040b1a0dcde..92c86f32fc9ab74b834a5b4d0b580a86c7af638b 100644 (file)
@@ -28,7 +28,7 @@
 #include "libavcodec/h264qpel.h"
 #include "hpeldsp_altivec.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 
 #define PUT_OP_U8_ALTIVEC(d, s, dst) d = s
 #define AVG_OP_U8_ALTIVEC(d, s, dst) d = vec_avg(dst, s)
@@ -286,7 +286,7 @@ H264_MC(avg_, 16, altivec)
 
 av_cold void ff_h264qpel_init_ppc(H264QpelContext *c, int bit_depth)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     const int high_bit_depth = bit_depth > 8;
 
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
index fd6ae73915148ba89bbb6fd45904b8e40725d603..780240ba20378e82b5aba8bb9517d0ff4a6c7776 100644 (file)
@@ -34,7 +34,7 @@
 #include "libavcodec/hpeldsp.h"
 #include "hpeldsp_altivec.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 /* next one assumes that ((line_size % 16) == 0) */
 void ff_put_pixels16_altivec(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h)
 {
@@ -449,7 +449,7 @@ static void avg_pixels8_xy2_altivec(uint8_t *block, const uint8_t *pixels, ptrdi
 
 av_cold void ff_hpeldsp_init_ppc(HpelDSPContext *c, int flags)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index 7c34a67ea44c4c0b1f05cf823629c52446537a90..4c16283f078a0b1a78b2ba8ff235ec08a3dbae02 100644 (file)
@@ -32,7 +32,7 @@
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/huffyuvdsp.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 static void add_bytes_altivec(uint8_t *dst, uint8_t *src, int w)
 {
     register int i;
@@ -53,7 +53,7 @@ static void add_bytes_altivec(uint8_t *dst, uint8_t *src, int w)
 
 av_cold void ff_huffyuvdsp_init_ppc(HuffYUVDSPContext *c)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index 17f7dbbc7fee365ecf67c78516934504348a357d..c85b58e6ff171150b93a78820fb119b1f5ed4e67 100644 (file)
@@ -43,7 +43,7 @@
 #include "libavutil/ppc/types_altivec.h"
 #include "libavcodec/idctdsp.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 
 #define IDCT_HALF                                       \
     /* 1st stage */                                     \
@@ -230,7 +230,7 @@ static void idct_add_altivec(uint8_t *dest, int stride, int16_t *blk)
 av_cold void ff_idctdsp_init_ppc(IDCTDSPContext *c, AVCodecContext *avctx,
                                  unsigned high_bit_depth)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index fd67cf34eec25004c9db170a3489cf6dc7d7821e..b074d28b5c9c7374e4e1488c7bc04041ab83f940 100644 (file)
@@ -34,7 +34,7 @@
 #include "libavcodec/mpegvideo.h"
 #include "libavcodec/me_cmp.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 static int sad16_x2_altivec(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2,
                             ptrdiff_t stride, int h)
 {
@@ -746,7 +746,7 @@ static int hadamard8_diff16_altivec(MpegEncContext *s, uint8_t *dst,
 
 av_cold void ff_me_cmp_init_ppc(MECmpContext *c, AVCodecContext *avctx)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index c37f8ec9756bf6fc042d3b5249d5ae14b8985c65..21cbcf376f46d5fcba4508628146f6d6da59fd9e 100644 (file)
@@ -27,7 +27,7 @@
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/mpegaudiodsp.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 
 #define MACS(rt, ra, rb) rt+=(ra)*(rb)
 #define MLSS(rt, ra, rb) rt-=(ra)*(rb)
@@ -132,7 +132,7 @@ static void apply_window_mp3(float *in, float *win, int *unused, float *out,
 
 av_cold void ff_mpadsp_init_ppc(MPADSPContext *s)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index 9ae849f1734c0036224f4005c9395948743afdcb..550a03ad412f42dab19c3436952c7b984b53084a 100644 (file)
@@ -32,7 +32,7 @@
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/mpegvideo.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 
 /* AltiVec version of dct_unquantize_h263
    this code assumes `block' is 16 bytes-aligned */
@@ -117,7 +117,7 @@ static void dct_unquantize_h263_altivec(MpegEncContext *s,
 
 av_cold void ff_mpv_common_init_ppc(MpegEncContext *s)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index 2bdf909e4aeedb43f50242179258b51f7b357216..0b426e5e2a8667d0aa52e856cdfb8a6893669ae7 100644 (file)
@@ -25,7 +25,7 @@
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/mpegvideodsp.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 /* AltiVec-enhanced gmc1. ATM this code assumes stride is a multiple of 8
  * to preserve proper dst alignment. */
 static void gmc1_altivec(uint8_t *dst /* align 8 */, uint8_t *src /* align1 */,
@@ -127,7 +127,7 @@ static void gmc1_altivec(uint8_t *dst /* align 8 */, uint8_t *src /* align1 */,
 
 av_cold void ff_mpegvideodsp_init_ppc(MpegVideoDSPContext *c)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     c->gmc1 = gmc1_altivec;
 #endif /* HAVE_ALTIVEC */
 }
index b5348e6abd91b68a9907c2930f999f34f200e04a..7354816208c161ae42560fc80372c9c1256a9128 100644 (file)
@@ -29,7 +29,7 @@
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/mpegvideoencdsp.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 
 static int pix_norm1_altivec(uint8_t *pix, int line_size)
 {
@@ -93,7 +93,7 @@ static int pix_sum_altivec(uint8_t *pix, int line_size)
 av_cold void ff_mpegvideoencdsp_init_ppc(MpegvideoEncDSPContext *c,
                                          AVCodecContext *avctx)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index a500a708858648c8ee9ebd791b03b1b83bf8e071..2c28e29d3f596184abb9d1d7b9bdfd163e9327c6 100644 (file)
@@ -33,7 +33,7 @@
 #include "libavcodec/avcodec.h"
 #include "libavcodec/pixblockdsp.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 
 static void get_pixels_altivec(int16_t *restrict block, const uint8_t *pixels,
                                int line_size)
@@ -137,7 +137,7 @@ av_cold void ff_pixblockdsp_init_ppc(PixblockDSPContext *c,
                                      AVCodecContext *avctx,
                                      unsigned high_bit_depth)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index 564f12986ba0a37b9ae094a3e992020573d1eab2..222f7c1c376b660111bf5afe49484cb0c06ad219 100644 (file)
@@ -32,7 +32,7 @@
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/svq1enc.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 static int ssd_int8_vs_int16_altivec(const int8_t *pix1, const int16_t *pix2,
                                      int size)
 {
@@ -76,7 +76,7 @@ static int ssd_int8_vs_int16_altivec(const int8_t *pix1, const int16_t *pix2,
 
 av_cold void ff_svq1enc_init_ppc(SVQ1EncContext *c)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index 90c3d27e827fbbcf4295ec4ba2327ac14b93fdf1..caf8721ebf72b465ab7b541c5ffcd91ea932689b 100644 (file)
@@ -27,7 +27,7 @@
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/vc1dsp.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 
 // main steps of 8x8 transform
 #define STEP8(s0, s1, s2, s3, s4, s5, s6, s7, vec_rnd) \
@@ -344,7 +344,7 @@ static void vc1_inv_trans_8x4_altivec(uint8_t *dest, int stride, int16_t *block)
 
 av_cold void ff_vc1dsp_init_ppc(VC1DSPContext *dsp)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index 43f4d0325bf7c28f1050e5506f224d523dcebea3..a7aad86163bc422d7ff1be60eaff582bef745a3a 100644 (file)
@@ -27,7 +27,7 @@
 #include "libavutil/ppc/cpu.h"
 #include "libavcodec/vorbisdsp.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 static void vorbis_inverse_coupling_altivec(float *mag, float *ang,
                                             intptr_t blocksize)
 {
@@ -54,7 +54,7 @@ static void vorbis_inverse_coupling_altivec(float *mag, float *ang,
 
 av_cold void ff_vorbisdsp_init_ppc(VorbisDSPContext *c)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index bce49e3170ff464c1b73351c0507aa3a8a93b5f3..68e7102a539cf891dfd797b3f52f2af909026eda 100644 (file)
@@ -28,7 +28,7 @@
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/vp3dsp.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 
 static const vec_s16 constants =
     {0, 64277, 60547, 54491, 46341, 36410, 25080, 12785};
@@ -179,7 +179,7 @@ static void vp3_idct_add_altivec(uint8_t *dst, int stride, int16_t block[64])
 
 av_cold void ff_vp3dsp_init_ppc(VP3DSPContext *c, int flags)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index e010dee4d2abeef32ed1be2896d31b238abf0444..869fe670e7a702b1724c3aafd07d504fd7a8eec6 100644 (file)
@@ -29,7 +29,7 @@
 #include "libavcodec/vp8dsp.h"
 #include "hpeldsp_altivec.h"
 
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
 #define REPT4(...) { __VA_ARGS__, __VA_ARGS__, __VA_ARGS__, __VA_ARGS__ }
 
 // h subpel filter uses msum to multiply+add 4 pixel taps at once
@@ -315,7 +315,7 @@ static void put_vp8_pixels16_altivec(uint8_t *dst, ptrdiff_t dstride, uint8_t *s
 
 av_cold void ff_vp78dsp_init_ppc(VP8DSPContext *c)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     if (!PPC_ALTIVEC(av_get_cpu_flags()))
         return;
 
index 60d0f19acaa5361769b84de8e937ee61760d1be7..e81dc7a44195475d037a73677030d70f802490df 100644 (file)
@@ -29,7 +29,7 @@ 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;
@@ -37,4 +37,5 @@ av_cold void ff_float_dsp_init_ppc(AVFloatDSPContext *fdsp, int bit_exact)
     if (!bit_exact) {
         fdsp->vector_fmul_window = ff_vector_fmul_window_altivec;
     }
+#endif
 }
index 7e00488a6142ed8be58531ebfc5c10655ae9ae01..004b385af2b1c4ede0022f153a138492f38f3ba2 100644 (file)
@@ -289,7 +289,7 @@ static void hScale_altivec_real(SwsContext *c, int16_t *dst, int dstW,
 
 av_cold void ff_sws_init_swscale_ppc(SwsContext *c)
 {
-#if HAVE_ALTIVEC
+#if HAVE_ALTIVEC && HAVE_BIGENDIAN
     enum AVPixelFormat dstFormat = c->dstFormat;
 
     if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC))