)]}'
{
  "commit": "b756cce092d8223e56e98683e1ea2abcd1f44540",
  "tree": "a85f97e4f4efd93e036f0a67bd5bd2103f88bf6c",
  "parents": [
    "143c05549f88348b91c81219b5190d1481b3e2a3"
  ],
  "author": {
    "name": "XiaolinZhao",
    "email": "zhaoxiaolin@loongson.cn",
    "time": "Sun Sep 20 11:13:56 2026 +0800"
  },
  "committer": {
    "name": "abner chenc",
    "email": "chenguoqi@loongson.cn",
    "time": "Tue Oct 06 19:26:13 2026 -0700"
  },
  "message": "crypto/internal/fips140/aes: avoid stack round-trip when building counter blocks on loong64\n\nctrBlocks1/2/4/8Asm previously built each 128-bit counter block by\nstoring the two big-endian 64-bit halves to a stack scratch buffer\nand then reloading them with VMOVQ. Replace this with VMOVQ Rj,\nVd.V[index] (vinsgr2vr.d), which writes each half directly into the\ntarget vector register lane, eliminating the store-to-load round\ntrip. This also lets the stack frame for these four functions shrink\nfrom $16/$32 to $0.\n\ngoos: linux\ngoarch: loong64\npkg: crypto/cipher\ncpu: Loongson-3C6000/S @ 2200.00MHz\n              | old.bench.aesctr |          new.bench.aesctr           |\n              |      sec/op      |   sec/op     vs base                |\nAESCTR/128/50        363.9n ± 0%   327.1n ± 0%  -10.11% (p\u003d0.000 n\u003d10)\nAESCTR/128/1K        4.310µ ± 0%   3.963µ ± 0%   -8.05% (p\u003d0.000 n\u003d10)\nAESCTR/128/8K        33.25µ ± 0%   30.57µ ± 0%   -8.06% (p\u003d0.000 n\u003d10)\nAESCTR/192/50        424.8n ± 0%   388.7n ± 0%   -8.50% (p\u003d0.000 n\u003d10)\nAESCTR/192/1K        5.090µ ± 0%   4.742µ ± 0%   -6.84% (p\u003d0.000 n\u003d10)\nAESCTR/192/8K        39.30µ ± 0%   36.60µ ± 0%   -6.87% (p\u003d0.000 n\u003d10)\nAESCTR/256/50        485.4n ± 0%   450.0n ± 0%   -7.29% (p\u003d0.000 n\u003d10)\nAESCTR/256/1K        5.861µ ± 0%   5.516µ ± 0%   -5.89% (p\u003d0.000 n\u003d10)\nAESCTR/256/8K        45.28µ ± 0%   42.60µ ± 0%   -5.92% (p\u003d0.000 n\u003d10)\ngeomean              4.361µ        4.034µ        -7.51%\n\ngoos: linux\ngoarch: loong64\npkg: crypto/cipher\ncpu: Loongson-3A5000 @ 2500.00MHz\n              | old.bench.aesctr |          new.bench.aesctr          |\n              |      sec/op      |   sec/op     vs base               |\nAESCTR/128/50        407.7n ± 0%   387.1n ± 0%  -5.05% (p\u003d0.000 n\u003d10)\nAESCTR/128/1K        5.232µ ± 0%   4.925µ ± 0%  -5.87% (p\u003d0.000 n\u003d10)\nAESCTR/128/8K        40.58µ ± 0%   38.14µ ± 0%  -6.03% (p\u003d0.000 n\u003d10)\nAESCTR/192/50        477.8n ± 0%   453.7n ± 0%  -5.04% (p\u003d0.000 n\u003d10)\nAESCTR/192/1K        6.201µ ± 0%   5.890µ ± 0%  -5.02% (p\u003d0.000 n\u003d10)\nAESCTR/192/8K        48.15µ ± 0%   45.67µ ± 0%  -5.14% (p\u003d0.000 n\u003d10)\nAESCTR/256/50        543.5n ± 0%   522.5n ± 0%  -3.86% (p\u003d0.000 n\u003d10)\nAESCTR/256/1K        7.161µ ± 0%   6.852µ ± 0%  -4.32% (p\u003d0.000 n\u003d10)\nAESCTR/256/8K        55.62µ ± 1%   53.19µ ± 0%  -4.38% (p\u003d0.000 n\u003d10)\ngeomean              5.177µ        4.920µ       -4.97%\n\nChange-Id: I6fc973db36454b2e94272b09a0ee93e3842fe950\nReviewed-on: https://go-review.googlesource.com/c/go/+/835565\nReviewed-by: abner chenc \u003cchenguoqi@loongson.cn\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Michael Pratt \u003cmpratt@google.com\u003e\nReviewed-by: Mark Freeman \u003cmark@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "38a71929fa41adb60f537099bd749919aaa3abd0",
      "old_mode": 33188,
      "old_path": "src/crypto/internal/fips140/aes/ctr_loong64.s",
      "new_id": "fcee0cc63b497d3b626a07b98da5c38000207d6b",
      "new_mode": 33188,
      "new_path": "src/crypto/internal/fips140/aes/ctr_loong64.s"
    }
  ]
}
