mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2026-10-31 03:16:23 +08:00
Update patch set 4
Patch Set 4: (2 comments) Patch-set: 4
This commit is contained in:
parent
d8eee7eb70
commit
c226e8717b
@ -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": {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user