diff options
author | Johann <johannkoenig@google.com> | 2014-09-25 09:30:28 -0700 |
---|---|---|
committer | Johann <johannkoenig@google.com> | 2014-09-25 11:53:45 -0700 |
commit | f6be2f3c8749aa50ff3ef97e49bfbddeb8fb5df3 (patch) | |
tree | 1770939bf86820cbe08b526cd506d06d1aecc929 /vp8/common | |
parent | 845d4f333d4492cf99006192a9844a6d2a4eb4fc (diff) | |
download | libvpx-f6be2f3c8749aa50ff3ef97e49bfbddeb8fb5df3.tar libvpx-f6be2f3c8749aa50ff3ef97e49bfbddeb8fb5df3.tar.gz libvpx-f6be2f3c8749aa50ff3ef97e49bfbddeb8fb5df3.tar.bz2 libvpx-f6be2f3c8749aa50ff3ef97e49bfbddeb8fb5df3.zip |
Clarify GCC version check
The version check was incorrectly matching some versions of clang
which reported as gcc 4.2
Change-Id: I686d3576e71883fe1463206b56ab5e2aa9bb68a8
Diffstat (limited to 'vp8/common')
-rw-r--r-- | vp8/common/arm/neon/loopfilter_neon.c | 37 | ||||
-rw-r--r-- | vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.c | 123 |
2 files changed, 81 insertions, 79 deletions
diff --git a/vp8/common/arm/neon/loopfilter_neon.c b/vp8/common/arm/neon/loopfilter_neon.c index 0bec7fb06..9d6807af7 100644 --- a/vp8/common/arm/neon/loopfilter_neon.c +++ b/vp8/common/arm/neon/loopfilter_neon.c @@ -10,6 +10,7 @@ #include <arm_neon.h> #include "./vpx_config.h" +#include "vpx_ports/arm.h" static INLINE void vp8_loop_filter_neon( uint8x16_t qblimit, // flimit @@ -253,23 +254,7 @@ void vp8_loop_filter_horizontal_edge_uv_neon( static INLINE void write_4x8(unsigned char *dst, int pitch, const uint8x8x4_t result) { -#if (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7)) - vst4_lane_u8(dst, result, 0); - dst += pitch; - vst4_lane_u8(dst, result, 1); - dst += pitch; - vst4_lane_u8(dst, result, 2); - dst += pitch; - vst4_lane_u8(dst, result, 3); - dst += pitch; - vst4_lane_u8(dst, result, 4); - dst += pitch; - vst4_lane_u8(dst, result, 5); - dst += pitch; - vst4_lane_u8(dst, result, 6); - dst += pitch; - vst4_lane_u8(dst, result, 7); -#else +#ifdef VPX_INCOMPATIBLE_GCC /* * uint8x8x4_t result 00 01 02 03 | 04 05 06 07 @@ -316,7 +301,23 @@ static INLINE void write_4x8(unsigned char *dst, int pitch, vst1_lane_u32((uint32_t *)dst, x_2_6, 1); dst += pitch; vst1_lane_u32((uint32_t *)dst, x_3_7, 1); -#endif +#else + vst4_lane_u8(dst, result, 0); + dst += pitch; + vst4_lane_u8(dst, result, 1); + dst += pitch; + vst4_lane_u8(dst, result, 2); + dst += pitch; + vst4_lane_u8(dst, result, 3); + dst += pitch; + vst4_lane_u8(dst, result, 4); + dst += pitch; + vst4_lane_u8(dst, result, 5); + dst += pitch; + vst4_lane_u8(dst, result, 6); + dst += pitch; + vst4_lane_u8(dst, result, 7); +#endif // VPX_INCOMPATIBLE_GCC } void vp8_loop_filter_vertical_edge_y_neon( diff --git a/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.c b/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.c index d5178bbae..e1c8609e3 100644 --- a/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.c +++ b/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.c @@ -10,45 +10,9 @@ #include <arm_neon.h> #include "./vpx_config.h" +#include "vpx_ports/arm.h" -#if (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7)) -static INLINE void write_2x8(unsigned char *dst, int pitch, - const uint8x8x2_t result, - const uint8x8x2_t result2) { - vst2_lane_u8(dst, result, 0); - dst += pitch; - vst2_lane_u8(dst, result, 1); - dst += pitch; - vst2_lane_u8(dst, result, 2); - dst += pitch; - vst2_lane_u8(dst, result, 3); - dst += pitch; - vst2_lane_u8(dst, result, 4); - dst += pitch; - vst2_lane_u8(dst, result, 5); - dst += pitch; - vst2_lane_u8(dst, result, 6); - dst += pitch; - vst2_lane_u8(dst, result, 7); - dst += pitch; - - vst2_lane_u8(dst, result2, 0); - dst += pitch; - vst2_lane_u8(dst, result2, 1); - dst += pitch; - vst2_lane_u8(dst, result2, 2); - dst += pitch; - vst2_lane_u8(dst, result2, 3); - dst += pitch; - vst2_lane_u8(dst, result2, 4); - dst += pitch; - vst2_lane_u8(dst, result2, 5); - dst += pitch; - vst2_lane_u8(dst, result2, 6); - dst += pitch; - vst2_lane_u8(dst, result2, 7); -} -#else +#ifdef VPX_INCOMPATIBLE_GCC static INLINE void write_2x4(unsigned char *dst, int pitch, const uint8x8x2_t result) { /* @@ -88,30 +52,47 @@ static INLINE void write_2x8(unsigned char *dst, int pitch, dst += pitch * 8; write_2x4(dst, pitch, result2); } -#endif - +#else +static INLINE void write_2x8(unsigned char *dst, int pitch, + const uint8x8x2_t result, + const uint8x8x2_t result2) { + vst2_lane_u8(dst, result, 0); + dst += pitch; + vst2_lane_u8(dst, result, 1); + dst += pitch; + vst2_lane_u8(dst, result, 2); + dst += pitch; + vst2_lane_u8(dst, result, 3); + dst += pitch; + vst2_lane_u8(dst, result, 4); + dst += pitch; + vst2_lane_u8(dst, result, 5); + dst += pitch; + vst2_lane_u8(dst, result, 6); + dst += pitch; + vst2_lane_u8(dst, result, 7); + dst += pitch; -#if (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7)) -static INLINE -uint8x8x4_t read_4x8(unsigned char *src, int pitch, uint8x8x4_t x) { - x = vld4_lane_u8(src, x, 0); - src += pitch; - x = vld4_lane_u8(src, x, 1); - src += pitch; - x = vld4_lane_u8(src, x, 2); - src += pitch; - x = vld4_lane_u8(src, x, 3); - src += pitch; - x = vld4_lane_u8(src, x, 4); - src += pitch; - x = vld4_lane_u8(src, x, 5); - src += pitch; - x = vld4_lane_u8(src, x, 6); - src += pitch; - x = vld4_lane_u8(src, x, 7); - return x; + vst2_lane_u8(dst, result2, 0); + dst += pitch; + vst2_lane_u8(dst, result2, 1); + dst += pitch; + vst2_lane_u8(dst, result2, 2); + dst += pitch; + vst2_lane_u8(dst, result2, 3); + dst += pitch; + vst2_lane_u8(dst, result2, 4); + dst += pitch; + vst2_lane_u8(dst, result2, 5); + dst += pitch; + vst2_lane_u8(dst, result2, 6); + dst += pitch; + vst2_lane_u8(dst, result2, 7); } -#else +#endif // VPX_INCOMPATIBLE_GCC + + +#ifdef VPX_INCOMPATIBLE_GCC static INLINE uint8x8x4_t read_4x8(unsigned char *src, int pitch, uint8x8x4_t x) { const uint8x8_t a = vld1_u8(src); @@ -169,7 +150,27 @@ uint8x8x4_t read_4x8(unsigned char *src, int pitch, uint8x8x4_t x) { return x; } -#endif +#else +static INLINE +uint8x8x4_t read_4x8(unsigned char *src, int pitch, uint8x8x4_t x) { + x = vld4_lane_u8(src, x, 0); + src += pitch; + x = vld4_lane_u8(src, x, 1); + src += pitch; + x = vld4_lane_u8(src, x, 2); + src += pitch; + x = vld4_lane_u8(src, x, 3); + src += pitch; + x = vld4_lane_u8(src, x, 4); + src += pitch; + x = vld4_lane_u8(src, x, 5); + src += pitch; + x = vld4_lane_u8(src, x, 6); + src += pitch; + x = vld4_lane_u8(src, x, 7); + return x; +} +#endif // VPX_INCOMPATIBLE_GCC static INLINE void vp8_loop_filter_simple_vertical_edge_neon( unsigned char *s, |