blend_a64_mask_sse4.c: use xx_loadu_2x64 for unaligned loads This quiets some undefined sanitizer warnings related to unaligned loads; register/code reordering with gcc-13, no change with clang-16. Bug: b:300649160 Change-Id: Ibf6c41448756fcadaaeae9b26f7ca25e6cec0f58 (cherry picked from commit 52f28ccd2eb4b11712cf1590058621f59961d0f3)
diff --git a/aom_dsp/x86/blend_a64_mask_sse4.c b/aom_dsp/x86/blend_a64_mask_sse4.c index 58a7345..9a10e86 100644 --- a/aom_dsp/x86/blend_a64_mask_sse4.c +++ b/aom_dsp/x86/blend_a64_mask_sse4.c
@@ -1120,14 +1120,12 @@ const __m128i *clip_low, const __m128i *clip_high, const __m128i *mask_max) { // Load 4 pixels from each of 4 rows from each source - const __m128i s0a = - _mm_set_epi64x(*(int64_t *)src0, *(int64_t *)(src0 + src0_stride)); - const __m128i s0b = _mm_set_epi64x(*(int64_t *)(src0 + 2 * src0_stride), - *(int64_t *)(src0 + 3 * src0_stride)); - const __m128i s1a = - _mm_set_epi64x(*(int64_t *)(src1), *(int64_t *)(src1 + src1_stride)); - const __m128i s1b = _mm_set_epi64x(*(int64_t *)(src1 + 2 * src1_stride), - *(int64_t *)(src1 + 3 * src1_stride)); + const __m128i s0a = xx_loadu_2x64(src0, src0 + src0_stride); + const __m128i s0b = + xx_loadu_2x64(src0 + 2 * src0_stride, src0 + 3 * src0_stride); + const __m128i s1a = xx_loadu_2x64(src1, src1 + src1_stride); + const __m128i s1b = + xx_loadu_2x64(src1 + 2 * src1_stride, src1 + 3 * src1_stride); // Generate the inverse masks const __m128i mask1a = _mm_sub_epi16(*mask_max, *mask0a);