Update patch set 4

Patch Set 4:

(2 comments)

Patch-set: 4
This commit is contained in:
Gerrit User 1115898 2026-09-22 13:52:25 -07:00 committed by Gerrit Code Review
parent d8eee7eb70
commit c226e8717b

View File

@ -1,5 +1,39 @@
{
"comments": [
{
"unresolved": true,
"key": {
"uuid": "a6fe80a0_4e01377a",
"filename": "include/libyuv/scale_row.h",
"patchSetId": 4
},
"lineNbr": 100,
"author": {
"id": 1115898
},
"writtenOn": "2026-09-22T20:52:25Z",
"side": 1,
"message": "Suggest HAS_SCALEUVADDCOLS3_AVX2",
"revId": "084140ebb3bbd1c350293b895e85db2d0c797f2b",
"serverId": "3ce6091f-6c88-37e8-8c75-72f92ae8dfba"
},
{
"unresolved": true,
"key": {
"uuid": "70d62c08_244b85a6",
"filename": "source/scale_gcc.cc",
"patchSetId": 4
},
"lineNbr": 1795,
"author": {
"id": 1115898
},
"writtenOn": "2026-09-22T20:52:25Z",
"side": 1,
"message": "suggested replacement to avoid port 5 bottleneck\n```\nstatic const ulvec32 kPermUVBox3 \u003d {0, 3, 6, 2, 5, 1, 4, 7};\n\n// A UV pair is 32 bits, so vpblendd + vpermd compacts every third pair and\n// vpaddw keeps U and V in separate halves. dst_width must be a multiple of 8.\n// Consumes exactly 24 accumulator entries (96 bytes) per iteration with no over-read.\nvoid ScaleUVAddCols1_Box3_AVX2(int dst_width,\n int scaleval,\n const uint16_t* src_uv,\n uint8_t* dst_uv) {\n asm volatile(\n \"vmovd %3,%%xmm7 \\n\"\n \"vpbroadcastw %%xmm7,%%ymm7 \\n\"\n \"vmovdqu %4,%%ymm4 \\n\"\n\n LABELALIGN\n \"1: \\n\"\n \"vmovdqu (%0),%%ymm0 \\n\"\n \"vpaddw 0x4(%0),%%ymm0,%%ymm0 \\n\"\n \"vpaddw 0x8(%0),%%ymm0,%%ymm0 \\n\"\n \"vmovdqu 0x1c(%0),%%ymm1 \\n\"\n \"vpaddw 0x20(%0),%%ymm1,%%ymm1 \\n\"\n \"vpaddw 0x24(%0),%%ymm1,%%ymm1 \\n\"\n \"vmovdqu 0x38(%0),%%ymm2 \\n\"\n \"vpaddw 0x3c(%0),%%ymm2,%%ymm2 \\n\"\n \"vpaddw 0x40(%0),%%ymm2,%%ymm2 \\n\"\n \"vpblendd $0x24,%%ymm1,%%ymm0,%%ymm0 \\n\"\n \"vpblendd $0x92,%%ymm2,%%ymm0,%%ymm0 \\n\"\n \"vpermd %%ymm0,%%ymm4,%%ymm0 \\n\"\n \"vpmulhuw %%ymm7,%%ymm0,%%ymm0 \\n\"\n \"vpackuswb %%ymm0,%%ymm0,%%ymm0 \\n\"\n \"vpermq $0xd8,%%ymm0,%%ymm0 \\n\"\n \"vmovdqu %%xmm0,(%1) \\n\"\n \"lea 0x60(%0),%0 \\n\"\n \"lea 0x10(%1),%1 \\n\"\n \"sub $0x8,%2 \\n\"\n \"jg 1b \\n\"\n \"vzeroupper \\n\"\n : \"+r\"(src_uv), // %0\n \"+r\"(dst_uv), // %1\n \"+r\"(dst_width) // %2\n : \"r\"(scaleval), // %3\n \"m\"(kPermUVBox3) // %4\n : \"memory\", \"cc\", \"xmm0\", \"xmm1\", \"xmm2\", \"xmm4\", \"xmm7\");\n}\n```",
"revId": "084140ebb3bbd1c350293b895e85db2d0c797f2b",
"serverId": "3ce6091f-6c88-37e8-8c75-72f92ae8dfba"
},
{
"unresolved": true,
"key": {