aom: disable av1_resize_horz_dir_sse2

From 0f766c1101fa146bfe2aeb7eca23e076bbf631de Mon Sep 17 00:00:00 2001
From: James Zern <[EMAIL REDACTED]>
Date: Thu, 16 May 2024 15:22:47 -0700
Subject: [PATCH] disable av1_resize_horz_dir_sse2

This causes failures in SSE2/AV1ResizeXTest using 32-bit valgrind:
==1546504== Invalid read of size 16
==1546504==    at 0x10C4D4F: _mm_loadu_si128 (emmintrin.h:703)
==1546504==    by 0x10C4D4F: av1_resize_horz_dir_sse2 (resize_sse2.c:225)

Bug: aomedia:3575
Change-Id: I0c4f887fbefdce44ba7a8a615c889354bc680f35
---
 av1/common/av1_rtcd_defs.pl  | 4 +++-
 av1/common/x86/resize_avx2.c | 8 +++++---
 test/frame_resize_test.cc    | 4 +++-
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/av1/common/av1_rtcd_defs.pl b/av1/common/av1_rtcd_defs.pl
index 8e24bb9c1..c57b6f0a5 100644
--- a/av1/common/av1_rtcd_defs.pl
+++ b/av1/common/av1_rtcd_defs.pl
@@ -558,7 +558,9 @@ ()
 specialize qw/av1_resize_vert_dir sse2 avx2/;
 
 add_proto qw/void av1_resize_horz_dir/, "const uint8_t *const input, int in_stride, uint8_t *intbuf, int height, int filteredlength, int width2";
-specialize qw/av1_resize_horz_dir sse2 avx2/;
+# TODO(https://crbug.com/aomedia/3575): Restore sse2 after SSE2/AV1ResizeXTest
+# passes under 32-bit valgrind.
+specialize qw/av1_resize_horz_dir avx2/;
 
 add_proto qw/void av1_warp_affine/, "const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta";
 specialize qw/av1_warp_affine sse4_1 avx2 neon neon_i8mm sve/;
diff --git a/av1/common/x86/resize_avx2.c b/av1/common/x86/resize_avx2.c
index 7c36fca8a..425c9f44e 100644
--- a/av1/common/x86/resize_avx2.c
+++ b/av1/common/x86/resize_avx2.c
@@ -530,10 +530,12 @@ void av1_resize_horz_dir_avx2(const uint8_t *const input, int in_stride,
                               uint8_t *intbuf, int height, int filtered_length,
                               int width2) {
   assert(height % 2 == 0);
-  // Invoke SSE2 for width less than 32.
+  // Invoke C for width less than 32.
+  // TODO(https://crbug.com/aomedia/3575): Use sse2 after SSE2/AV1ResizeXTest
+  // passes under 32-bit valgrind.
   if (filtered_length < 32) {
-    av1_resize_horz_dir_sse2(input, in_stride, intbuf, height, filtered_length,
-                             width2);
+    av1_resize_horz_dir_c(input, in_stride, intbuf, height, filtered_length,
+                          width2);
     return;
   }
 
diff --git a/test/frame_resize_test.cc b/test/frame_resize_test.cc
index befdd490b..83e56edef 100644
--- a/test/frame_resize_test.cc
+++ b/test/frame_resize_test.cc
@@ -245,7 +245,9 @@ TEST_P(AV1ResizeXTest, RunTest) { RunTest(); }
 
 TEST_P(AV1ResizeXTest, DISABLED_SpeedTest) { SpeedTest(); }
 
-#if HAVE_SSE2
+// TODO(https://crbug.com/aomedia/3575): Reenable this after test passes under
+// 32-bit valgrind.
+#if 0  // HAVE_SSE2
 INSTANTIATE_TEST_SUITE_P(
     SSE2, AV1ResizeXTest,
     ::testing::Combine(::testing::Values(av1_resize_horz_dir_sse2),