summaryrefslogtreecommitdiff
path: root/vpx_dsp/arm/sad_neon.c
diff options
context:
space:
mode:
authorJohann <johannkoenig@google.com>2017-07-06 08:33:15 -0700
committerJohann <johannkoenig@google.com>2017-07-07 07:04:04 -0700
commitb0d15713beb8559d76eee9bf5c86ab70edbcdff4 (patch)
tree6d9e6cdab7e2d2167768f5445fcd138cb1284f7e /vpx_dsp/arm/sad_neon.c
parent527e0c9b1c898360bb3cbf7cc7478a27395dbe58 (diff)
downloadlibvpx-b0d15713beb8559d76eee9bf5c86ab70edbcdff4.tar
libvpx-b0d15713beb8559d76eee9bf5c86ab70edbcdff4.tar.gz
libvpx-b0d15713beb8559d76eee9bf5c86ab70edbcdff4.tar.bz2
libvpx-b0d15713beb8559d76eee9bf5c86ab70edbcdff4.zip
sad neon: macroize 32xN definitions
Change-Id: I0020a49e77d27514375a03095d5821dc0aa7d128
Diffstat (limited to 'vpx_dsp/arm/sad_neon.c')
-rw-r--r--vpx_dsp/arm/sad_neon.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/vpx_dsp/arm/sad_neon.c b/vpx_dsp/arm/sad_neon.c
index 9951b92da..75352ef96 100644
--- a/vpx_dsp/arm/sad_neon.c
+++ b/vpx_dsp/arm/sad_neon.c
@@ -211,23 +211,16 @@ static INLINE uint16x8_t sad32x(const uint8_t *a, int a_stride,
return abs;
}
-uint32_t vpx_sad32x16_neon(const uint8_t *src, int src_stride,
- const uint8_t *ref, int ref_stride) {
- const uint16x8_t abs = sad32x(src, src_stride, ref, ref_stride, 16);
- return horizontal_add_16x8(abs);
-}
-
-uint32_t vpx_sad32x32_neon(const uint8_t *src, int src_stride,
- const uint8_t *ref, int ref_stride) {
- const uint16x8_t abs = sad32x(src, src_stride, ref, ref_stride, 32);
- return horizontal_add_16x8(abs);
-}
+#define sad32xN(n) \
+ uint32_t vpx_sad32x##n##_neon(const uint8_t *src, int src_stride, \
+ const uint8_t *ref, int ref_stride) { \
+ const uint16x8_t abs = sad32x(src, src_stride, ref, ref_stride, n); \
+ return horizontal_add_16x8(abs); \
+ }
-uint32_t vpx_sad32x64_neon(const uint8_t *src, int src_stride,
- const uint8_t *ref, int ref_stride) {
- const uint16x8_t abs = sad32x(src, src_stride, ref, ref_stride, 64);
- return horizontal_add_16x8(abs);
-}
+sad32xN(16);
+sad32xN(32);
+sad32xN(64);
static INLINE uint32_t horizontal_add_32x4(const uint32x4_t a) {
const uint64x2_t b = vpaddlq_u32(a);