]> granicus.if.org Git - libvpx/commitdiff
sad neon: macroize 16xN definitions
authorJohann <johannkoenig@google.com>
Thu, 6 Jul 2017 15:03:45 +0000 (08:03 -0700)
committerJohann <johannkoenig@google.com>
Fri, 7 Jul 2017 14:04:04 +0000 (07:04 -0700)
Change-Id: I5aea6ffbfa48eb1970afe3be54f0bba275d7fa58

vpx_dsp/arm/sad_neon.c

index baaaf63785229b9f364102780228f470f0e593e6..170cd9f96c1641cb49886b13a1fe67bfdd9c5239 100644 (file)
@@ -151,23 +151,16 @@ static INLINE uint16x8_t sad16x(const uint8_t *a, int a_stride,
   return abs;
 }
 
-uint32_t vpx_sad16x8_neon(const uint8_t *src, int src_stride,
-                          const uint8_t *ref, int ref_stride) {
-  const uint16x8_t abs = sad16x(src, src_stride, ref, ref_stride, 8);
-  return horizontal_add_16x8(abs);
-}
-
-uint32_t vpx_sad16x16_neon(const uint8_t *src, int src_stride,
-                           const uint8_t *ref, int ref_stride) {
-  const uint16x8_t abs = sad16x(src, src_stride, ref, ref_stride, 16);
-  return horizontal_add_16x8(abs);
-}
+#define sad16xN(n)                                                      \
+  uint32_t vpx_sad16x##n##_neon(const uint8_t *src, int src_stride,     \
+                                const uint8_t *ref, int ref_stride) {   \
+    const uint16x8_t abs = sad16x(src, src_stride, ref, ref_stride, n); \
+    return horizontal_add_16x8(abs);                                    \
+  }
 
-uint32_t vpx_sad16x32_neon(const uint8_t *src, int src_stride,
-                           const uint8_t *ref, int ref_stride) {
-  const uint16x8_t abs = sad16x(src, src_stride, ref, ref_stride, 32);
-  return horizontal_add_16x8(abs);
-}
+sad16xN(8);
+sad16xN(16);
+sad16xN(32);
 
 static INLINE uint16x8_t sad32x(const uint8_t *a, int a_stride,
                                 const uint8_t *b, int b_stride,