diff --git a/084140ebb3bbd1c350293b895e85db2d0c797f2b b/084140ebb3bbd1c350293b895e85db2d0c797f2b index 1b99a18c8..557fab03a 100644 --- a/084140ebb3bbd1c350293b895e85db2d0c797f2b +++ b/084140ebb3bbd1c350293b895e85db2d0c797f2b @@ -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": {