Commit 91197c6f1c for aom

commit 91197c6f1c9eb50831113c92571c9688b865730e
Author: Lin Zheng <linzhen@google.com>
Date:   Wed Sep 9 23:29:29 2026 +0000

    Use correct VMAF Gussian blur filter in the unit test

    In commit 8e7b6a567d, the VmafPreprocessing unit test introduced
    an 8-tap kGaussFilter with a positive tap 0, and NEON_I8MM and SVE2
    triggered an underflow in the 8-tap horizontal i8mm kernel (which
    assumes negative tap 0).

    The actual filter used by tune vmaf mode has an zero taps 0 and 7, so we
    update kGaussFilter in the VmafPreprocessing unit test to match the real
    filter in tune_vmaf.c, which allows NEON_I8MM and SVE2 to take the
    valid 6-tap convolution path and pass.

    Also allocate 9 elements with 16-byte alignment matching gauss_filter
    in tune_vmaf.c to avoid global-buffer-overflow in prepare_coeffs_6t().

    Bug: 558679217
    Change-Id: Ic00d31e5e56fbaee2854f819728358b77444e2b4

diff --git a/test/av1_convolve_test.cc b/test/av1_convolve_test.cc
index bbc80152c7..4b444bdff0 100644
--- a/test/av1_convolve_test.cc
+++ b/test/av1_convolve_test.cc
@@ -1378,7 +1378,10 @@ class AV1Convolve2DTest : public AV1ConvolveTest<convolve_2d_func> {
   void TestConvolveVmaf() {
     // 8-tap Gaussian blur filter used by tune=vmaf_with_preprocessing
     // in av1/encoder/tune_vmaf.c.
-    static const int16_t kGaussFilter[8] = { 2, 8, 24, 60, 24, 8, 2, 0 };
+    // The array is of size 9 to allow passing kGaussFilter + 1 to
+    // _mm_loadu_si128() in prepare_coeffs_6t().
+    DECLARE_ALIGNED(16, static const int16_t,
+                    kGaussFilter[9]) = { 0, 8, 30, 52, 30, 8, 0, 0, 0 };
     const InterpFilterParams filter_params = { kGaussFilter, 8,
                                                EIGHTTAP_REGULAR };
     const int width = GetParam().Block().Width();
@@ -1696,7 +1699,10 @@ class AV1Convolve2DHighbdTest

  private:
   void TestConvolveVmaf() {
-    static const int16_t kGaussFilter[8] = { 2, 8, 24, 60, 24, 8, 2, 0 };
+    // The array is of size 9 to allow passing kGaussFilter + 1 to
+    // _mm_loadu_si128() in prepare_coeffs_6t().
+    DECLARE_ALIGNED(16, static const int16_t,
+                    kGaussFilter[9]) = { 0, 8, 30, 52, 30, 8, 0, 0, 0 };
     const InterpFilterParams filter_params = { kGaussFilter, 8,
                                                EIGHTTAP_REGULAR };
     const int width = GetParam().Block().Width();