)]}'
{
  "commit": "5f9d5bfcc4e81e1c70d0b6d42d4e538a8d8df287",
  "tree": "f638f69101f0196dd09618558ae81aa0116cec0f",
  "parents": [
    "cd0423dc25af189053b522d3a66f629baa1f1469"
  ],
  "author": {
    "name": "Ilya Tokar",
    "email": "tokarip@google.com",
    "time": "Thu Apr 16 13:02:11 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Apr 16 13:02:39 2026 -0700"
  },
  "message": "Optimzie crc32 on AMD Milan+\n\nWe have AVX encoded vector PCLMULQDQ on Milan, so use it to make\ncrc32c computations ~10% faster. We need to use inline asm, since\nbuilding this twice with different complier flags for dynamic\ndispatch performed worse due to missing inlining.\n\nBM_Calculate/0                  1.136n ±  0%    1.136n ±  1%        ~ (p\u003d0.968 n\u003d6)\nBM_Calculate/1                  1.420n ±  0%    1.421n ±  1%        ~ (p\u003d0.870 n\u003d6)\nBM_Calculate/100                9.089n ±  0%    9.660n ±  1%   +6.29% (p\u003d0.002 n\u003d6)\nBM_Calculate/2048               75.30n ±  1%    67.67n ±  1%  -10.13% (p\u003d0.002 n\u003d6)\nBM_Calculate/10000              313.1n ±  0%    286.1n ±  0%   -8.63% (p\u003d0.002 n\u003d6)\nBM_Calculate/500000             14.91µ ±  4%    13.49µ ±  1%   -9.48% (p\u003d0.002 n\u003d6)\nBM_Extend/0                     1.136n ±  1%    1.136n ±  1%        ~ (p\u003d0.636 n\u003d6)\nBM_Extend/1                     1.420n ±  0%    1.420n ±  1%        ~ (p\u003d0.636 n\u003d6)\nBM_Extend/100                   9.247n ±  2%    9.800n ±  2%   +5.99% (p\u003d0.002 n\u003d6)\nBM_Extend/2048                  75.73n ±  1%    67.37n ±  1%  -11.04% (p\u003d0.002 n\u003d6)\nBM_Extend/10000                 313.2n ±  1%    286.2n ±  0%   -8.62% (p\u003d0.002 n\u003d6)\nBM_Extend/500000                14.87µ ±  1%    13.57µ ±  1%   -8.74% (p\u003d0.002 n\u003d6)\nBM_Extend/100000000             3.185m ±  2%    2.816m ±  3%  -11.60% (p\u003d0.002 n\u003d6)\nBM_ExtendCacheMiss/10           26.07m ±  1%    26.06m ±  1%        ~ (p\u003d1.000 n\u003d6)\nBM_ExtendCacheMiss/100          13.86m ±  4%    14.36m ±  2%   +3.61% (p\u003d0.026 n\u003d6)\nBM_ExtendCacheMiss/1000         27.02m ±  4%    27.28m ±  4%        ~ (p\u003d0.699 n\u003d6)\nBM_ExtendCacheMiss/100000       5.114m ±  5%    4.600m ±  8%  -10.07% (p\u003d0.002 n\u003d6)\nBM_ExtendByZeroes/1             1.420n ±  0%    1.420n ±  0%        ~ (p\u003d0.670 n\u003d12)\nBM_ExtendByZeroes/10            1.704n ±  1%    1.704n ±  0%        ~ (p\u003d1.000 n\u003d6)\nBM_ExtendByZeroes/100           3.128n ±  0%    3.128n ±  0%        ~ (p\u003d1.000 n\u003d6)\nBM_ExtendByZeroes/1000          6.758n ±  0%    6.638n ±  1%   -1.78% (p\u003d0.002 n\u003d6)\nBM_ExtendByZeroes/10000         6.619n ±  1%    6.503n ±  0%   -1.75% (p\u003d0.002 n\u003d6)\nBM_ExtendByZeroes/100000        8.537n ±  1%    8.479n ±  0%   -0.67% (p\u003d0.019 n\u003d6)\nBM_ExtendByZeroes/1000000       9.766n ±  1%    9.692n ±  1%   -0.75% (p\u003d0.002 n\u003d6)\n\nPiperOrigin-RevId: 900870516\nChange-Id: I1382ae2ffeed35e1d55a0916290144cae5256fe0\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5a9b61a5faf092089c68d9a80cbcf5a084046701",
      "old_mode": 33188,
      "old_path": "absl/crc/internal/crc32_x86_arm_combined_simd.h",
      "new_id": "322ec42b3a663b056e7476cc79e1611fceec0b8e",
      "new_mode": 33188,
      "new_path": "absl/crc/internal/crc32_x86_arm_combined_simd.h"
    },
    {
      "type": "modify",
      "old_id": "ebd9c3fef2e8344b205c440d6af06f54bc5e1162",
      "old_mode": 33188,
      "old_path": "absl/crc/internal/crc_x86_arm_combined.cc",
      "new_id": "b36b4d6e2c8adcf92c1687f210e075cffeb59b8e",
      "new_mode": 33188,
      "new_path": "absl/crc/internal/crc_x86_arm_combined.cc"
    }
  ]
}
