summaryrefslogtreecommitdiff
path: root/libavcodec/ppc
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/ppc')
-rw-r--r--libavcodec/ppc/dsputil_h264_template_altivec.c40
1 files changed, 26 insertions, 14 deletions
diff --git a/libavcodec/ppc/dsputil_h264_template_altivec.c b/libavcodec/ppc/dsputil_h264_template_altivec.c
index 96dd8ddf18..37f4de58f2 100644
--- a/libavcodec/ppc/dsputil_h264_template_altivec.c
+++ b/libavcodec/ppc/dsputil_h264_template_altivec.c
@@ -252,20 +252,32 @@ static void PREFIX_h264_qpel16_h_lowpass_altivec(uint8_t * dst, uint8_t * src, i
} break;
}
- srcP0A = vec_mergeh((vector unsigned char)vzero, srcP0);
- srcP0B = vec_mergel((vector unsigned char)vzero, srcP0);
- srcP1A = vec_mergeh((vector unsigned char)vzero, srcP1);
- srcP1B = vec_mergel((vector unsigned char)vzero, srcP1);
-
- srcP2A = vec_mergeh((vector unsigned char)vzero, srcP2);
- srcP2B = vec_mergel((vector unsigned char)vzero, srcP2);
- srcP3A = vec_mergeh((vector unsigned char)vzero, srcP3);
- srcP3B = vec_mergel((vector unsigned char)vzero, srcP3);
-
- srcM1A = vec_mergeh((vector unsigned char)vzero, srcM1);
- srcM1B = vec_mergel((vector unsigned char)vzero, srcM1);
- srcM2A = vec_mergeh((vector unsigned char)vzero, srcM2);
- srcM2B = vec_mergel((vector unsigned char)vzero, srcM2);
+ srcP0A = (vector signed short)
+ vec_mergeh((vector unsigned char)vzero, srcP0);
+ srcP0B = (vector signed short)
+ vec_mergel((vector unsigned char)vzero, srcP0);
+ srcP1A = (vector signed short)
+ vec_mergeh((vector unsigned char)vzero, srcP1);
+ srcP1B = (vector signed short)
+ vec_mergel((vector unsigned char)vzero, srcP1);
+
+ srcP2A = (vector signed short)
+ vec_mergeh((vector unsigned char)vzero, srcP2);
+ srcP2B = (vector signed short)
+ vec_mergel((vector unsigned char)vzero, srcP2);
+ srcP3A = (vector signed short)
+ vec_mergeh((vector unsigned char)vzero, srcP3);
+ srcP3B = (vector signed short)
+ vec_mergel((vector unsigned char)vzero, srcP3);
+
+ srcM1A = (vector signed short)
+ vec_mergeh((vector unsigned char)vzero, srcM1);
+ srcM1B = (vector signed short)
+ vec_mergel((vector unsigned char)vzero, srcM1);
+ srcM2A = (vector signed short)
+ vec_mergeh((vector unsigned char)vzero, srcM2);
+ srcM2B = (vector signed short)
+ vec_mergel((vector unsigned char)vzero, srcM2);
sum1A = vec_adds(srcP0A, srcP1A);
sum1B = vec_adds(srcP0B, srcP1B);