)]}'
{
  "commit": "f671756e047d6bc429798536b39e1bbd761e5ce5",
  "tree": "df1151a38c8f995dd3ce1d8304fb85ceef143289",
  "parents": [
    "84bacda6ede319f5074d43b5d096b7ee7f3f5d77"
  ],
  "author": {
    "name": "Andreas Auernhammer",
    "email": "aead@mail.de",
    "time": "Mon Jan 09 22:58:45 2017 +0100"
  },
  "committer": {
    "name": "Adam Langley",
    "email": "agl@golang.org",
    "time": "Wed Feb 08 19:53:58 2017 +0000"
  },
  "message": "blake2b: fix AVX performance problems on amd64\n\nOn some amd64 CPUs (Xeon E5-2680v4 / E5-2620v3) using SSE and AVX instructions\nleads to very low performance.\nOn a i7-6500U the SSE-AVX code performs following:\n\nAVX2:\nname        time/op\nWrite128-4    165ns ± 0%\nWrite1K-4    1.20µs ± 0%\nSum128-4      189ns ± 1%\nSum1K-4      1.22µs ± 0%\n\nname        speed\nWrite128-4  773MB/s ± 1%\nWrite1K-4   855MB/s ± 0%\nSum128-4    675MB/s ± 1%\nSum1K-4     838MB/s ± 0%\n\nwhile the same code achieves values \u003c 65MB/s on a Xeon E5-2620v3.\n\nReplacing the `MOVQ` and `PINSRQ` with the AVX instructions `VMOVQ` and `VPINSRQ`\nincreases the performance of the AVX/AVX2 code to some expected values:\n\nname         old time/op    new time/op     delta\nWrite128-12    2.20µs ±10%     0.22µs ± 9%    -90.00%  (p\u003d0.029 n\u003d4+4)\nWrite1K-12     16.2µs ± 0%      1.1µs ± 0%    -93.07%  (p\u003d0.029 n\u003d4+4)\nSum128-12      2.10µs ± 0%     0.22µs ± 0%    -89.47%  (p\u003d0.029 n\u003d4+4)\nSum1K-12       16.3µs ± 0%      1.2µs ± 0%    -92.65%  (p\u003d0.029 n\u003d4+4)\n\nname         old speed      new speed       delta\nWrite128-12  58.5MB/s ±10%  582.8MB/s ±10%   +897.08%  (p\u003d0.029 n\u003d4+4)\nWrite1K-12   63.1MB/s ± 0%  909.8MB/s ± 0%  +1341.40%  (p\u003d0.029 n\u003d4+4)\nSum128-12    60.8MB/s ± 0%  576.3MB/s ± 0%   +847.84%  (p\u003d0.029 n\u003d4+4)\nSum1K-12     62.8MB/s ± 0%  855.2MB/s ± 0%  +1260.78%  (p\u003d0.029 n\u003d4+4)\n\nThe AVX/AVX2 code now uses only AVX (no SSE) instructions.\n\nFixes golang/go#18563.\n\nChange-Id: I1961dd8fa02014642587523b7f099816a263c9f5\nReviewed-on: https://go-review.googlesource.com/34993\nReviewed-by: Adam Langley \u003cagl@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "96a51d524b4f9e1e74de7e98cc8c6f7c7fde9eff",
      "old_mode": 33188,
      "old_path": "blake2b/blake2bAVX2_amd64.s",
      "new_id": "784bce6a9c43c57aedc008747e90aefd240c485c",
      "new_mode": 33188,
      "new_path": "blake2b/blake2bAVX2_amd64.s"
    }
  ]
}
