ARGBToUV 64 bit use ymm8 for shuffler

Bug: 381138208
Change-Id: I5e69bc1610bd6269bf9a4113e729cf307dd36f60
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6536833
Reviewed-by: richard winterton <rrwinterton@gmail.com>
This commit is contained in:
Frank Barchard 2025-05-12 15:01:02 -07:00
parent 61bdaee13a
commit 0853c9353f
6 changed files with 575 additions and 568 deletions

View File

@ -1,6 +1,6 @@
Name: libyuv
URL: https://chromium.googlesource.com/libyuv/libyuv/
Version: 1909
Version: 1910
License: BSD-3-Clause
License File: LICENSE
Shipped: yes

View File

@ -11,6 +11,6 @@
#ifndef INCLUDE_LIBYUV_VERSION_H_
#define INCLUDE_LIBYUV_VERSION_H_
#define LIBYUV_VERSION 1909
#define LIBYUV_VERSION 1910
#endif // INCLUDE_LIBYUV_VERSION_H_

View File

@ -116,7 +116,8 @@ uint32_t HashDjb2_NEON(const uint8_t* src, int count, uint32_t seed) {
uint32_t hash = seed;
const uint32_t c16 = 0x92d9e201; // 33^16
uint32_t tmp, tmp2;
asm("ld1 {v16.4s, v17.4s, v18.4s, v19.4s}, [%[kIdx]] \n"
asm(
"ld1 {v16.4s, v17.4s, v18.4s, v19.4s}, [%[kIdx]] \n"
"ld1 {v4.4s, v5.4s, v6.4s, v7.4s}, [%[kMuls]] \n"
// count is always a multiple of 16.

View File

@ -1833,6 +1833,9 @@ void OMITFP ARGBToUVMatrixRow_AVX2(
:);
asm volatile(
#if !defined(__i386__)
"vmovdqa 0(%5),%%ymm8 \n"
#endif
"vmovdqa 32(%5),%%ymm5 \n"
"sub %1,%2 \n"
@ -1866,8 +1869,11 @@ void OMITFP ARGBToUVMatrixRow_AVX2(
"vpsrlw $0x8,%%ymm0,%%ymm0 \n"
"vpackuswb %%ymm0,%%ymm1,%%ymm0 \n"
"vpermq $0xd8,%%ymm0,%%ymm0 \n"
#if defined(__i386__)
"vpshufb (%5),%%ymm0,%%ymm0 \n"
#else
"vpshufb %%ymm8,%%ymm0,%%ymm0 \n"
#endif
"vextractf128 $0x0,%%ymm0,(%1) \n"
"vextractf128 $0x1,%%ymm0,0x0(%1,%2,1) \n"
"lea 0x10(%1),%1 \n"