)]}'
{
  "commit": "31f7433beeffe89676bede922f2033dbdba2d420",
  "tree": "9f7215fc9a26c85f128e4b9d78bfe1a50e8639b1",
  "parents": [
    "f311099b0ac19281a7a39f05ff5be2d6cade73a8"
  ],
  "author": {
    "name": "Jerome Jiang",
    "email": "jianj@google.com",
    "time": "Wed Jul 01 11:26:37 2026 -0400"
  },
  "committer": {
    "name": "Jerome Jiang",
    "email": "jianj@google.com",
    "time": "Wed Jul 08 07:49:25 2026 -0700"
  },
  "message": "av1: Add AVX512 Highway Convolve2DSR\n\nOptimizations:\n  - Pack 4 rows of pixels into 512-bit vectors to process\n    them in parallel horizontally.\n  - Use table lookups for horizontal filtering and pairwise\n    accumulation for vertical filtering.\n  - Avoid intermediate buffer (strip_im_buf) for small\n    heights (4 and 8) to reduce memory bandwidth.\n  - Move shared shuffle masks to namespace level as constexpr.\n\nBlock Size │ AVX2 Avg (ns) │ AVX512 Avg (ns) │ AVX512 Speedup (x)\n───────────┼───────────────┼─────────────────┼────────────────────\n 4x4       │     17.91     │      14.31      │       1.25x\n 4x8       │     20.87     │      18.33      │       1.14x\n 4x16      │     27.58     │      30.30      │       0.91x\n 8x4       │     20.02     │      14.37      │       1.39x\n 8x8       │     27.70     │      20.28      │       1.37x\n 8x16      │     38.81     │      32.35      │       1.20x\n 8x32      │     62.95     │      49.74      │       1.27x\n 16x4      │     29.15     │      22.31      │       1.31x\n 16x8      │     43.59     │      34.40      │       1.27x\n 16x16     │     66.83     │      61.15      │       1.09x\n 16x32     │    113.91     │      94.32      │       1.21x\n 16x64     │    211.02     │     170.10      │       1.24x\n 32x8      │     77.16     │      63.79      │       1.21x\n 32x16     │    123.99     │     115.51      │       1.07x\n 32x32     │    219.35     │     181.74      │       1.21x\n 32x64     │    409.66     │     335.28      │       1.22x\n 64x16     │    242.50     │     224.55      │       1.08x\n 64x32     │    430.87     │     357.05      │       1.21x\n 64x64     │    815.89     │     664.01      │       1.23x\n 64x128    │   1,590.23    │    1,289.34     │       1.23x\n 128x64    │   1,634.32    │    1,330.22     │       1.23x\n 128x128   │   3,243.12    │    2,573.41     │       1.26x\n\nChange-Id: Idd4503ac2fb001c575bc93013982df9de6d7d38b\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "936573192f43d8a0e5ae496e7167f118c2b74113",
      "old_mode": 33188,
      "old_path": "av1/av1.cmake",
      "new_id": "f292809191845c6042cc6a6afd3798c13108f698",
      "new_mode": 33188,
      "new_path": "av1/av1.cmake"
    },
    {
      "type": "modify",
      "old_id": "989b00d053787262239b1850f59bc2cfb6015b04",
      "old_mode": 33188,
      "old_path": "av1/common/av1_rtcd_defs.pl",
      "new_id": "560d33c08d9b4dc26b92033bb126e759f87a6549",
      "new_mode": 33188,
      "new_path": "av1/common/av1_rtcd_defs.pl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "af680c1785207d094c5c90d88e37e1b340fc1408",
      "new_mode": 33188,
      "new_path": "av1/common/convolve_2d_sr_hwy.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eb60303d83373c3c19ceb8f320b48816e81c77fa",
      "new_mode": 33188,
      "new_path": "av1/common/x86/convolve_2d_sr_hwy_avx512.cc"
    },
    {
      "type": "modify",
      "old_id": "9dee488ff7ff12bc0b2c319a5bac9b799fca0ecf",
      "old_mode": 33188,
      "old_path": "test/av1_convolve_test.cc",
      "new_id": "ea40a26d382400a58687b82e019beb0db72601df",
      "new_mode": 33188,
      "new_path": "test/av1_convolve_test.cc"
    }
  ]
}
