| Index: source/libvpx/third_party/libyuv/source/scale_argb.cc
|
| diff --git a/source/libvpx/third_party/libyuv/source/scale_argb.cc b/source/libvpx/third_party/libyuv/source/scale_argb.cc
|
| index e339cd7c79151a669e8f166d923eac2047392031..05b58e1babae1a45a1e5fdccf4ef9e09368f6ea2 100644
|
| --- a/source/libvpx/third_party/libyuv/source/scale_argb.cc
|
| +++ b/source/libvpx/third_party/libyuv/source/scale_argb.cc
|
| @@ -53,16 +53,14 @@ static void ScaleARGBDown2(int src_width, int src_height,
|
| }
|
|
|
| #if defined(HAS_SCALEARGBROWDOWN2_SSE2)
|
| - if (TestCpuFlag(kCpuHasSSE2) && IS_ALIGNED(dst_width, 4) &&
|
| - IS_ALIGNED(src_argb, 16) && IS_ALIGNED(row_stride, 16) &&
|
| - IS_ALIGNED(dst_argb, 16) && IS_ALIGNED(dst_stride, 16)) {
|
| + if (TestCpuFlag(kCpuHasSSE2) && IS_ALIGNED(dst_width, 4)) {
|
| ScaleARGBRowDown2 = filtering == kFilterNone ? ScaleARGBRowDown2_SSE2 :
|
| (filtering == kFilterLinear ? ScaleARGBRowDown2Linear_SSE2 :
|
| ScaleARGBRowDown2Box_SSE2);
|
| }
|
| -#elif defined(HAS_SCALEARGBROWDOWN2_NEON)
|
| - if (TestCpuFlag(kCpuHasNEON) && IS_ALIGNED(dst_width, 8) &&
|
| - IS_ALIGNED(src_argb, 4) && IS_ALIGNED(row_stride, 4)) {
|
| +#endif
|
| +#if defined(HAS_SCALEARGBROWDOWN2_NEON)
|
| + if (TestCpuFlag(kCpuHasNEON) && IS_ALIGNED(dst_width, 8)) {
|
| ScaleARGBRowDown2 = filtering ? ScaleARGBRowDown2Box_NEON :
|
| ScaleARGBRowDown2_NEON;
|
| }
|
| @@ -98,14 +96,12 @@ static void ScaleARGBDown4Box(int src_width, int src_height,
|
| assert(dx == 65536 * 4); // Test scale factor of 4.
|
| assert((dy & 0x3ffff) == 0); // Test vertical scale is multiple of 4.
|
| #if defined(HAS_SCALEARGBROWDOWN2_SSE2)
|
| - if (TestCpuFlag(kCpuHasSSE2) && IS_ALIGNED(dst_width, 4) &&
|
| - IS_ALIGNED(src_argb, 16) && IS_ALIGNED(row_stride, 16) &&
|
| - IS_ALIGNED(dst_argb, 16) && IS_ALIGNED(dst_stride, 16)) {
|
| + if (TestCpuFlag(kCpuHasSSE2) && IS_ALIGNED(dst_width, 4)) {
|
| ScaleARGBRowDown2 = ScaleARGBRowDown2Box_SSE2;
|
| }
|
| -#elif defined(HAS_SCALEARGBROWDOWN2_NEON)
|
| - if (TestCpuFlag(kCpuHasNEON) && IS_ALIGNED(dst_width, 8) &&
|
| - IS_ALIGNED(src_argb, 4) && IS_ALIGNED(row_stride, 4)) {
|
| +#endif
|
| +#if defined(HAS_SCALEARGBROWDOWN2_NEON)
|
| + if (TestCpuFlag(kCpuHasNEON) && IS_ALIGNED(dst_width, 8)) {
|
| ScaleARGBRowDown2 = ScaleARGBRowDown2Box_NEON;
|
| }
|
| #endif
|
| @@ -139,14 +135,13 @@ static void ScaleARGBDownEven(int src_width, int src_height,
|
| assert(IS_ALIGNED(src_height, 2));
|
| src_argb += (y >> 16) * src_stride + (x >> 16) * 4;
|
| #if defined(HAS_SCALEARGBROWDOWNEVEN_SSE2)
|
| - if (TestCpuFlag(kCpuHasSSE2) && IS_ALIGNED(dst_width, 4) &&
|
| - IS_ALIGNED(dst_argb, 16) && IS_ALIGNED(dst_stride, 16)) {
|
| + if (TestCpuFlag(kCpuHasSSE2) && IS_ALIGNED(dst_width, 4)) {
|
| ScaleARGBRowDownEven = filtering ? ScaleARGBRowDownEvenBox_SSE2 :
|
| ScaleARGBRowDownEven_SSE2;
|
| }
|
| -#elif defined(HAS_SCALEARGBROWDOWNEVEN_NEON)
|
| - if (TestCpuFlag(kCpuHasNEON) && IS_ALIGNED(dst_width, 4) &&
|
| - IS_ALIGNED(src_argb, 4)) {
|
| +#endif
|
| +#if defined(HAS_SCALEARGBROWDOWNEVEN_NEON)
|
| + if (TestCpuFlag(kCpuHasNEON) && IS_ALIGNED(dst_width, 4)) {
|
| ScaleARGBRowDownEven = filtering ? ScaleARGBRowDownEvenBox_NEON :
|
| ScaleARGBRowDownEven_NEON;
|
| }
|
| @@ -190,29 +185,23 @@ static void ScaleARGBBilinearDown(int src_width, int src_height,
|
| src_argb += xl * 4;
|
| x -= (int)(xl << 16);
|
| #if defined(HAS_INTERPOLATEROW_SSE2)
|
| - if (TestCpuFlag(kCpuHasSSE2) && clip_src_width >= 16) {
|
| + if (TestCpuFlag(kCpuHasSSE2)) {
|
| InterpolateRow = InterpolateRow_Any_SSE2;
|
| if (IS_ALIGNED(clip_src_width, 16)) {
|
| - InterpolateRow = InterpolateRow_Unaligned_SSE2;
|
| - if (IS_ALIGNED(src_argb, 16) && IS_ALIGNED(src_stride, 16)) {
|
| - InterpolateRow = InterpolateRow_SSE2;
|
| - }
|
| + InterpolateRow = InterpolateRow_SSE2;
|
| }
|
| }
|
| #endif
|
| #if defined(HAS_INTERPOLATEROW_SSSE3)
|
| - if (TestCpuFlag(kCpuHasSSSE3) && clip_src_width >= 16) {
|
| + if (TestCpuFlag(kCpuHasSSSE3)) {
|
| InterpolateRow = InterpolateRow_Any_SSSE3;
|
| if (IS_ALIGNED(clip_src_width, 16)) {
|
| - InterpolateRow = InterpolateRow_Unaligned_SSSE3;
|
| - if (IS_ALIGNED(src_argb, 16) && IS_ALIGNED(src_stride, 16)) {
|
| - InterpolateRow = InterpolateRow_SSSE3;
|
| - }
|
| + InterpolateRow = InterpolateRow_SSSE3;
|
| }
|
| }
|
| #endif
|
| #if defined(HAS_INTERPOLATEROW_AVX2)
|
| - if (TestCpuFlag(kCpuHasAVX2) && clip_src_width >= 32) {
|
| + if (TestCpuFlag(kCpuHasAVX2)) {
|
| InterpolateRow = InterpolateRow_Any_AVX2;
|
| if (IS_ALIGNED(clip_src_width, 32)) {
|
| InterpolateRow = InterpolateRow_AVX2;
|
| @@ -220,15 +209,15 @@ static void ScaleARGBBilinearDown(int src_width, int src_height,
|
| }
|
| #endif
|
| #if defined(HAS_INTERPOLATEROW_NEON)
|
| - if (TestCpuFlag(kCpuHasNEON) && clip_src_width >= 16) {
|
| + if (TestCpuFlag(kCpuHasNEON)) {
|
| InterpolateRow = InterpolateRow_Any_NEON;
|
| if (IS_ALIGNED(clip_src_width, 16)) {
|
| InterpolateRow = InterpolateRow_NEON;
|
| }
|
| }
|
| #endif
|
| -#if defined(HAS_INTERPOLATEROWS_MIPS_DSPR2)
|
| - if (TestCpuFlag(kCpuHasMIPS_DSPR2) && clip_src_width >= 4 &&
|
| +#if defined(HAS_INTERPOLATEROW_MIPS_DSPR2)
|
| + if (TestCpuFlag(kCpuHasMIPS_DSPR2) &&
|
| IS_ALIGNED(src_argb, 4) && IS_ALIGNED(src_stride, 4)) {
|
| InterpolateRow = InterpolateRow_Any_MIPS_DSPR2;
|
| if (IS_ALIGNED(clip_src_width, 4)) {
|
| @@ -286,29 +275,23 @@ static void ScaleARGBBilinearUp(int src_width, int src_height,
|
| filtering ? ScaleARGBFilterCols_C : ScaleARGBCols_C;
|
| const int max_y = (src_height - 1) << 16;
|
| #if defined(HAS_INTERPOLATEROW_SSE2)
|
| - if (TestCpuFlag(kCpuHasSSE2) && dst_width >= 4) {
|
| + if (TestCpuFlag(kCpuHasSSE2)) {
|
| InterpolateRow = InterpolateRow_Any_SSE2;
|
| if (IS_ALIGNED(dst_width, 4)) {
|
| - InterpolateRow = InterpolateRow_Unaligned_SSE2;
|
| - if (IS_ALIGNED(dst_argb, 16) && IS_ALIGNED(dst_stride, 16)) {
|
| - InterpolateRow = InterpolateRow_SSE2;
|
| - }
|
| + InterpolateRow = InterpolateRow_SSE2;
|
| }
|
| }
|
| #endif
|
| #if defined(HAS_INTERPOLATEROW_SSSE3)
|
| - if (TestCpuFlag(kCpuHasSSSE3) && dst_width >= 4) {
|
| + if (TestCpuFlag(kCpuHasSSSE3)) {
|
| InterpolateRow = InterpolateRow_Any_SSSE3;
|
| if (IS_ALIGNED(dst_width, 4)) {
|
| - InterpolateRow = InterpolateRow_Unaligned_SSSE3;
|
| - if (IS_ALIGNED(dst_argb, 16) && IS_ALIGNED(dst_stride, 16)) {
|
| - InterpolateRow = InterpolateRow_SSSE3;
|
| - }
|
| + InterpolateRow = InterpolateRow_SSSE3;
|
| }
|
| }
|
| #endif
|
| #if defined(HAS_INTERPOLATEROW_AVX2)
|
| - if (TestCpuFlag(kCpuHasAVX2) && dst_width >= 8) {
|
| + if (TestCpuFlag(kCpuHasAVX2)) {
|
| InterpolateRow = InterpolateRow_Any_AVX2;
|
| if (IS_ALIGNED(dst_width, 8)) {
|
| InterpolateRow = InterpolateRow_AVX2;
|
| @@ -316,15 +299,15 @@ static void ScaleARGBBilinearUp(int src_width, int src_height,
|
| }
|
| #endif
|
| #if defined(HAS_INTERPOLATEROW_NEON)
|
| - if (TestCpuFlag(kCpuHasNEON) && dst_width >= 4) {
|
| + if (TestCpuFlag(kCpuHasNEON)) {
|
| InterpolateRow = InterpolateRow_Any_NEON;
|
| if (IS_ALIGNED(dst_width, 4)) {
|
| InterpolateRow = InterpolateRow_NEON;
|
| }
|
| }
|
| #endif
|
| -#if defined(HAS_INTERPOLATEROWS_MIPS_DSPR2)
|
| - if (TestCpuFlag(kCpuHasMIPS_DSPR2) && dst_width >= 1 &&
|
| +#if defined(HAS_INTERPOLATEROW_MIPS_DSPR2)
|
| + if (TestCpuFlag(kCpuHasMIPS_DSPR2) &&
|
| IS_ALIGNED(dst_argb, 4) && IS_ALIGNED(dst_stride, 4)) {
|
| InterpolateRow = InterpolateRow_MIPS_DSPR2;
|
| }
|
| @@ -346,9 +329,7 @@ static void ScaleARGBBilinearUp(int src_width, int src_height,
|
| if (!filtering && src_width * 2 == dst_width && x < 0x8000) {
|
| ScaleARGBFilterCols = ScaleARGBColsUp2_C;
|
| #if defined(HAS_SCALEARGBCOLSUP2_SSE2)
|
| - if (TestCpuFlag(kCpuHasSSE2) && IS_ALIGNED(dst_width, 8) &&
|
| - IS_ALIGNED(src_argb, 16) && IS_ALIGNED(src_stride, 16) &&
|
| - IS_ALIGNED(dst_argb, 16) && IS_ALIGNED(dst_stride, 16)) {
|
| + if (TestCpuFlag(kCpuHasSSE2) && IS_ALIGNED(dst_width, 8)) {
|
| ScaleARGBFilterCols = ScaleARGBColsUp2_SSE2;
|
| }
|
| #endif
|
| @@ -427,18 +408,15 @@ static void ScaleYUVToARGBBilinearUp(int src_width, int src_height,
|
| uint8* rgb_buf,
|
| int width) = I422ToARGBRow_C;
|
| #if defined(HAS_I422TOARGBROW_SSSE3)
|
| - if (TestCpuFlag(kCpuHasSSSE3) && src_width >= 8) {
|
| + if (TestCpuFlag(kCpuHasSSSE3)) {
|
| I422ToARGBRow = I422ToARGBRow_Any_SSSE3;
|
| if (IS_ALIGNED(src_width, 8)) {
|
| - I422ToARGBRow = I422ToARGBRow_Unaligned_SSSE3;
|
| - if (IS_ALIGNED(dst_argb, 16) && IS_ALIGNED(dst_stride_argb, 16)) {
|
| - I422ToARGBRow = I422ToARGBRow_SSSE3;
|
| - }
|
| + I422ToARGBRow = I422ToARGBRow_SSSE3;
|
| }
|
| }
|
| #endif
|
| #if defined(HAS_I422TOARGBROW_AVX2)
|
| - if (TestCpuFlag(kCpuHasAVX2) && src_width >= 16) {
|
| + if (TestCpuFlag(kCpuHasAVX2)) {
|
| I422ToARGBRow = I422ToARGBRow_Any_AVX2;
|
| if (IS_ALIGNED(src_width, 16)) {
|
| I422ToARGBRow = I422ToARGBRow_AVX2;
|
| @@ -446,7 +424,7 @@ static void ScaleYUVToARGBBilinearUp(int src_width, int src_height,
|
| }
|
| #endif
|
| #if defined(HAS_I422TOARGBROW_NEON)
|
| - if (TestCpuFlag(kCpuHasNEON) && src_width >= 8) {
|
| + if (TestCpuFlag(kCpuHasNEON)) {
|
| I422ToARGBRow = I422ToARGBRow_Any_NEON;
|
| if (IS_ALIGNED(src_width, 8)) {
|
| I422ToARGBRow = I422ToARGBRow_NEON;
|
| @@ -467,29 +445,23 @@ static void ScaleYUVToARGBBilinearUp(int src_width, int src_height,
|
| ptrdiff_t src_stride, int dst_width, int source_y_fraction) =
|
| InterpolateRow_C;
|
| #if defined(HAS_INTERPOLATEROW_SSE2)
|
| - if (TestCpuFlag(kCpuHasSSE2) && dst_width >= 4) {
|
| + if (TestCpuFlag(kCpuHasSSE2)) {
|
| InterpolateRow = InterpolateRow_Any_SSE2;
|
| if (IS_ALIGNED(dst_width, 4)) {
|
| - InterpolateRow = InterpolateRow_Unaligned_SSE2;
|
| - if (IS_ALIGNED(dst_argb, 16) && IS_ALIGNED(dst_stride_argb, 16)) {
|
| - InterpolateRow = InterpolateRow_SSE2;
|
| - }
|
| + InterpolateRow = InterpolateRow_SSE2;
|
| }
|
| }
|
| #endif
|
| #if defined(HAS_INTERPOLATEROW_SSSE3)
|
| - if (TestCpuFlag(kCpuHasSSSE3) && dst_width >= 4) {
|
| + if (TestCpuFlag(kCpuHasSSSE3)) {
|
| InterpolateRow = InterpolateRow_Any_SSSE3;
|
| if (IS_ALIGNED(dst_width, 4)) {
|
| - InterpolateRow = InterpolateRow_Unaligned_SSSE3;
|
| - if (IS_ALIGNED(dst_argb, 16) && IS_ALIGNED(dst_stride_argb, 16)) {
|
| - InterpolateRow = InterpolateRow_SSSE3;
|
| - }
|
| + InterpolateRow = InterpolateRow_SSSE3;
|
| }
|
| }
|
| #endif
|
| #if defined(HAS_INTERPOLATEROW_AVX2)
|
| - if (TestCpuFlag(kCpuHasAVX2) && dst_width >= 8) {
|
| + if (TestCpuFlag(kCpuHasAVX2)) {
|
| InterpolateRow = InterpolateRow_Any_AVX2;
|
| if (IS_ALIGNED(dst_width, 8)) {
|
| InterpolateRow = InterpolateRow_AVX2;
|
| @@ -497,15 +469,15 @@ static void ScaleYUVToARGBBilinearUp(int src_width, int src_height,
|
| }
|
| #endif
|
| #if defined(HAS_INTERPOLATEROW_NEON)
|
| - if (TestCpuFlag(kCpuHasNEON) && dst_width >= 4) {
|
| + if (TestCpuFlag(kCpuHasNEON)) {
|
| InterpolateRow = InterpolateRow_Any_NEON;
|
| if (IS_ALIGNED(dst_width, 4)) {
|
| InterpolateRow = InterpolateRow_NEON;
|
| }
|
| }
|
| #endif
|
| -#if defined(HAS_INTERPOLATEROWS_MIPS_DSPR2)
|
| - if (TestCpuFlag(kCpuHasMIPS_DSPR2) && dst_width >= 1 &&
|
| +#if defined(HAS_INTERPOLATEROW_MIPS_DSPR2)
|
| + if (TestCpuFlag(kCpuHasMIPS_DSPR2) &&
|
| IS_ALIGNED(dst_argb, 4) && IS_ALIGNED(dst_stride_argb, 4)) {
|
| InterpolateRow = InterpolateRow_MIPS_DSPR2;
|
| }
|
| @@ -531,9 +503,7 @@ static void ScaleYUVToARGBBilinearUp(int src_width, int src_height,
|
| if (!filtering && src_width * 2 == dst_width && x < 0x8000) {
|
| ScaleARGBFilterCols = ScaleARGBColsUp2_C;
|
| #if defined(HAS_SCALEARGBCOLSUP2_SSE2)
|
| - if (TestCpuFlag(kCpuHasSSE2) && IS_ALIGNED(dst_width, 8) &&
|
| - IS_ALIGNED(src_argb, 16) && IS_ALIGNED(src_stride, 16) &&
|
| - IS_ALIGNED(dst_argb, 16) && IS_ALIGNED(dst_stride, 16)) {
|
| + if (TestCpuFlag(kCpuHasSSE2) && IS_ALIGNED(dst_width, 8)) {
|
| ScaleARGBFilterCols = ScaleARGBColsUp2_SSE2;
|
| }
|
| #endif
|
| @@ -640,9 +610,7 @@ static void ScaleARGBSimple(int src_width, int src_height,
|
| if (src_width * 2 == dst_width && x < 0x8000) {
|
| ScaleARGBCols = ScaleARGBColsUp2_C;
|
| #if defined(HAS_SCALEARGBCOLSUP2_SSE2)
|
| - if (TestCpuFlag(kCpuHasSSE2) && IS_ALIGNED(dst_width, 8) &&
|
| - IS_ALIGNED(src_argb, 16) && IS_ALIGNED(src_stride, 16) &&
|
| - IS_ALIGNED(dst_argb, 16) && IS_ALIGNED(dst_stride, 16)) {
|
| + if (TestCpuFlag(kCpuHasSSE2) && IS_ALIGNED(dst_width, 8)) {
|
| ScaleARGBCols = ScaleARGBColsUp2_SSE2;
|
| }
|
| #endif
|
|
|