Remove Armv8.4 Neon DotProd 4x4 variance kernel The Armv8.0 Neon implementation is faster for 4x4 blocks. This is a port from SVT-AV1: https://gitlab.com/AOMediaCodec/SVT-AV1/-/merge_requests/2608 Originally authored by: Jonathan Wright <Jonathan.Wright@arm.com> Change-Id: I458e70c618b9b067cd6d6ccbdb37289383fa04ed
diff --git a/aom_dsp/aom_dsp_rtcd_defs.pl b/aom_dsp/aom_dsp_rtcd_defs.pl index 7a5a615..776d272 100755 --- a/aom_dsp/aom_dsp_rtcd_defs.pl +++ b/aom_dsp/aom_dsp_rtcd_defs.pl
@@ -1404,7 +1404,7 @@ specialize qw/aom_variance8x8 sse2 neon neon_dotprod/; specialize qw/aom_variance8x4 sse2 neon neon_dotprod/; specialize qw/aom_variance4x8 sse2 neon neon_dotprod/; - specialize qw/aom_variance4x4 sse2 neon neon_dotprod/; + specialize qw/aom_variance4x4 sse2 neon/; specialize qw/aom_sub_pixel_variance128x128 avx2 neon ssse3/; specialize qw/aom_sub_pixel_variance128x64 avx2 neon ssse3/;
diff --git a/aom_dsp/arm/variance_neon_dotprod.c b/aom_dsp/arm/variance_neon_dotprod.c index dd03443..3a3965e 100644 --- a/aom_dsp/arm/variance_neon_dotprod.c +++ b/aom_dsp/arm/variance_neon_dotprod.c
@@ -178,7 +178,7 @@ return *sse - (uint32_t)(((int64_t)sum * sum) >> shift); \ } -VARIANCE_WXH_NEON_DOTPROD(4, 4, 4) +// The Armv8.0 Neon implementation is faster than Neon DotProd for 4x4. VARIANCE_WXH_NEON_DOTPROD(4, 8, 5) VARIANCE_WXH_NEON_DOTPROD(8, 4, 5)
diff --git a/test/variance_test.cc b/test/variance_test.cc index c95183f..2a1bf4f 100644 --- a/test/variance_test.cc +++ b/test/variance_test.cc
@@ -3661,7 +3661,6 @@ VarianceParams(3, 3, &aom_variance8x8_neon_dotprod), VarianceParams(3, 2, &aom_variance8x4_neon_dotprod), VarianceParams(2, 3, &aom_variance4x8_neon_dotprod), - VarianceParams(2, 2, &aom_variance4x4_neon_dotprod), #if !CONFIG_REALTIME_ONLY VarianceParams(2, 4, &aom_variance4x16_neon_dotprod), VarianceParams(4, 2, &aom_variance16x4_neon_dotprod),