| Index: include/libyuv/scale_row.h
|
| diff --git a/include/libyuv/scale_row.h b/include/libyuv/scale_row.h
|
| index 30f3cdc571b715f084b875576d68aea4619a2daf..d198addfdde2ae99d3b6e07d1ac3830719571ad2 100644
|
| --- a/include/libyuv/scale_row.h
|
| +++ b/include/libyuv/scale_row.h
|
| @@ -24,11 +24,12 @@ extern "C" {
|
| #define LIBYUV_DISABLE_X86
|
| #endif
|
|
|
| -// Visual C 2012 required for AVX2.
|
| -#if defined(_M_IX86) && !defined(__clang__) && \
|
| - defined(_MSC_VER) && _MSC_VER >= 1700
|
| -#define VISUALC_HAS_AVX2 1
|
| -#endif // VisualStudio >= 2012
|
| +// GCC >= 4.7.0 required for AVX2.
|
| +#if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
|
| +#if (__GNUC__ > 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7))
|
| +#define GCC_HAS_AVX2 1
|
| +#endif // GNUC >= 4.7
|
| +#endif // __GNUC__
|
|
|
| // clang >= 3.4.0 required for AVX2.
|
| #if defined(__clang__) && (defined(__x86_64__) || defined(__i386__))
|
| @@ -37,6 +38,12 @@ extern "C" {
|
| #endif // clang >= 3.4
|
| #endif // __clang__
|
|
|
| +// Visual C 2012 required for AVX2.
|
| +#if defined(_M_IX86) && !defined(__clang__) && \
|
| + defined(_MSC_VER) && _MSC_VER >= 1700
|
| +#define VISUALC_HAS_AVX2 1
|
| +#endif // VisualStudio >= 2012
|
| +
|
| // The following are available on all x86 platforms:
|
| #if !defined(LIBYUV_DISABLE_X86) && \
|
| (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__))
|
| @@ -56,10 +63,17 @@ extern "C" {
|
| #define HAS_SCALEADDROW_SSE2
|
| #endif
|
|
|
| +// The following are available on all x86 platforms, but
|
| +// require VS2012, clang 3.4 or gcc 4.7.
|
| +// The code supports NaCL but requires a new compiler and validator.
|
| +#if !defined(LIBYUV_DISABLE_X86) && (defined(VISUALC_HAS_AVX2) || \
|
| + defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2))
|
| +#define HAS_SCALEADDROW_AVX2
|
| +#endif
|
| +
|
| // The following are available for Visual C and clangcl 32 bit:
|
| #if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \
|
| (defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2))
|
| -#define HAS_SCALEADDROW_AVX2
|
| #define HAS_SCALEROWDOWN2_AVX2
|
| #define HAS_SCALEROWDOWN4_AVX2
|
| #endif
|
|
|