)]}'
{
  "log": [
    {
      "commit": "f2e75e3489f5530d5a3198a07d2df9d425265407",
      "tree": "596299f2a6523581e169803f6456ff8ce6021911",
      "parents": [
        "153284824f6718117658ecd663427f33711434fe"
      ],
      "author": {
        "name": "Jan Wassenberg",
        "email": "janwas@google.com",
        "time": "Mon Sep 21 17:56:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 17:57:26 2026"
      },
      "message": "ANS improvements/fixes\n\nonly allow single 4095 freq entry\ndetail.h -\u003e iguana_detail.h\nReverseLaneBytes for big endian\nFix dynamic dispatch: must be in .cc\nAdd LoadLE helpers to base.h\nAvoid Ans32DecodePayloadScalar codepath in most instantiations\nstd::array DenseTable to avoid size checks\nPiperOrigin-RevId: 985381936\n"
    },
    {
      "commit": "153284824f6718117658ecd663427f33711434fe",
      "tree": "5371bc0f6bd8101d4344400082486e0d6793a353",
      "parents": [
        "cf109de0e519aca159478942d5dbabaab692b6cf"
      ],
      "author": {
        "name": "Nikhil Dev Goyal",
        "email": "nikhildevgoyal@google.com",
        "time": "Mon Sep 21 14:49:05 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 14:50:00 2026"
      },
      "message": "Optimize FastLog with GetExponent + GetMantissa hardware instructions available on AVX512.\nAdd + use GetMantissa0p75_1p5.\n\nPreviously,\nFastLog was 1.4x faster than Log\nnow we are 1.7x faster than Log on turin !\n\nPiperOrigin-RevId: 985274126\n"
    },
    {
      "commit": "cf109de0e519aca159478942d5dbabaab692b6cf",
      "tree": "fa9714f070f73de208b41262c63fc8e4ec3d5fe1",
      "parents": [
        "62c22a803c41fe31ef2d3be516f81fe0ffdfb3a2"
      ],
      "author": {
        "name": "Nikhil Dev Goyal",
        "email": "nikhildevgoyal@google.com",
        "time": "Mon Sep 21 13:14:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 13:15:21 2026"
      },
      "message": "Critical Bug Fix in leaf merging and propogation in Highway B-Tree erase.\n\nPiperOrigin-RevId: 985232044\n"
    },
    {
      "commit": "62c22a803c41fe31ef2d3be516f81fe0ffdfb3a2",
      "tree": "7931b1e5668d8574f49397943adfcdd7ee573957",
      "parents": [
        "632b05611b3a8fb8fdcc5410ea9a2c8836619f2c"
      ],
      "author": {
        "name": "Nikhil Dev Goyal",
        "email": "nikhildevgoyal@google.com",
        "time": "Mon Sep 21 12:20:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 12:22:46 2026"
      },
      "message": "Relax `FastTanh Small` relative error bound in `math_hyper_test.cc` from `2.2e-7` to `2.5e-7` to accommodate 3-ULP (`2.24e-7`) rounding differences on GCC.\n\nPiperOrigin-RevId: 985208319\n"
    },
    {
      "commit": "632b05611b3a8fb8fdcc5410ea9a2c8836619f2c",
      "tree": "b876bd48bf9f972aa722d5da2f80310fd4b53111",
      "parents": [
        "da4dadca880e13998c317d5ae47c318c758a2d46",
        "399d3a7480533836f9f23fa540cf23e9fa993c7a"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 11:42:38 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 11:42:38 2026"
      },
      "message": "Merge pull request #3401 from dcsid:codex/highway-math-declarations\n\nPiperOrigin-RevId: 985191636\n"
    },
    {
      "commit": "da4dadca880e13998c317d5ae47c318c758a2d46",
      "tree": "20e83794b541d4e8166f38ca8a679b094ba8b6f9",
      "parents": [
        "fc036ee4ba05b21d72d849cf9dfc8bae8c30584f"
      ],
      "author": {
        "name": "Jan Wassenberg",
        "email": "janwas@google.com",
        "time": "Mon Sep 21 11:20:49 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 11:21:17 2026"
      },
      "message": "clang15 fix: __tile_loadd required amx-int8, not amx-tile\n\nPiperOrigin-RevId: 985182582\n"
    },
    {
      "commit": "fc036ee4ba05b21d72d849cf9dfc8bae8c30584f",
      "tree": "251f3fbd81aaa4e29f8e8d95be6b45d7f9d5557e",
      "parents": [
        "86cddaa2bd4970e53dedfdff54500b9737b23930"
      ],
      "author": {
        "name": "Jan Wassenberg",
        "email": "janwas@google.com",
        "time": "Mon Sep 21 08:55:08 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 08:55:49 2026"
      },
      "message": "update wishlist, add further STL algorithms\n\nPiperOrigin-RevId: 985113339\n"
    },
    {
      "commit": "399d3a7480533836f9f23fa540cf23e9fa993c7a",
      "tree": "2c2357af330fb760493e9e89f61e947d7afe473a",
      "parents": [
        "86cddaa2bd4970e53dedfdff54500b9737b23930"
      ],
      "author": {
        "name": "dcsid",
        "email": "101996317+dcsid@users.noreply.github.com",
        "time": "Sat Sep 19 20:55:33 2026"
      },
      "committer": {
        "name": "dcsid",
        "email": "101996317+dcsid@users.noreply.github.com",
        "time": "Sat Sep 19 20:55:33 2026"
      },
      "message": "Remove redundant math forward declarations\n\nKeep documentation with each public definition and place its CallX\nwrapper directly afterward. With only one declaration, the constrained\ndefinitions can use HWY_IF_NOT_SPECIAL_FLOAT_D without repeating the\nexpanded EnableIf expression.\n\nMove Erf, Atanh, and the gamma helpers after their dependencies. Preserve\nall function bodies, wrappers, documentation, and the Cbrt template default.\n\nValidated the seven relevant math suites against unchanged master, plus\nC++17/C++23 API compilation on native, EMU128, and scalar targets.\n"
    },
    {
      "commit": "86cddaa2bd4970e53dedfdff54500b9737b23930",
      "tree": "4b35592fda4f47177c0d4b16823b92837ffa6204",
      "parents": [
        "1674212acc1cbbf2353e92c2afc8f4ccfb297b19"
      ],
      "author": {
        "name": "Nikhil Dev Goyal",
        "email": "nikhildevgoyal@google.com",
        "time": "Fri Sep 18 16:33:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 16:34:45 2026"
      },
      "message": "Optimize FastSigmoid and bring it in consistency with FastTanh\n\nPiperOrigin-RevId: 983907553\n"
    },
    {
      "commit": "1674212acc1cbbf2353e92c2afc8f4ccfb297b19",
      "tree": "41b549bef5a5101d48e3731de792b66b5d8f8e8e",
      "parents": [
        "4d7aa670d2c68fdf674a6c361d47b31c22d7ace4"
      ],
      "author": {
        "name": "Jan Wassenberg",
        "email": "janwas@google.com",
        "time": "Fri Sep 18 15:57:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 15:58:39 2026"
      },
      "message": "Hash interface cleanup - remove rng dep\n\nPass keys(XORed with input) directly instead of the rng+seed.\n\nPiperOrigin-RevId: 983891244\n"
    },
    {
      "commit": "4d7aa670d2c68fdf674a6c361d47b31c22d7ace4",
      "tree": "b4d47e5db4acf723b60bbf3a10a62dc431a8bd8a",
      "parents": [
        "3827d9ad13ff261a9e3956256a54c916730ebc24"
      ],
      "author": {
        "name": "Nikhil Dev Goyal",
        "email": "nikhildevgoyal@google.com",
        "time": "Fri Sep 18 15:56:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 15:57:14 2026"
      },
      "message": "Optimize FastTan to use a global [5, 4] Padé rational approximation instead of an 8-interval piecewise lookup table.\nWe are about 4x faster than hwy Tan for f32x16 on turin now\n\nThis is tougher than FastTanh because tan(x) has a real vertical asymptote at x \u003d pi/2, which causes standard rational approximations to diverge and suffer from catastrophic cancellation near 90 degrees. To solve this, we factor the exact pole (pi^2/4 - x^2) \u003d (pi/2 - x)(pi/2 + x) out of the denominator and fit a [2, 1] rational approximation in u \u003d x^2 to the remaining smooth function, evaluating (pi/2 - x) with a 2-constant split (kHalfPiHi + kHalfPiLo) to prevent cancellation. Detailed math is in the code comments.\n\nPiperOrigin-RevId: 983890903\n"
    },
    {
      "commit": "3827d9ad13ff261a9e3956256a54c916730ebc24",
      "tree": "3cf46408d32596ca4923789489317e81f922e6fe",
      "parents": [
        "3bfe36324fc3fe430b91140e64eb2d7d6eb55f7a"
      ],
      "author": {
        "name": "Nikhil Dev Goyal",
        "email": "nikhildevgoyal@google.com",
        "time": "Fri Sep 18 14:52:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 14:53:06 2026"
      },
      "message": "Clamp to 1.0 in FastTanh\n\nPiperOrigin-RevId: 983862160\n"
    },
    {
      "commit": "3bfe36324fc3fe430b91140e64eb2d7d6eb55f7a",
      "tree": "5106fa964d43f2399f68d19ed5518e000812d4ba",
      "parents": [
        "66ab000eaf5159d544a0e34ec07d2b7d696a6b31"
      ],
      "author": {
        "name": "Jan Wassenberg",
        "email": "janwas@google.com",
        "time": "Fri Sep 18 12:05:24 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 12:05:58 2026"
      },
      "message": "faster phast_test (smaller constants, shared pool)\n\nPiperOrigin-RevId: 983801207\n"
    },
    {
      "commit": "66ab000eaf5159d544a0e34ec07d2b7d696a6b31",
      "tree": "d6c51b89c50038249a2e340b28c045aeaab3cf99",
      "parents": [
        "e90e8d715790f3684f53be3ed0a42bfaf5912c8a"
      ],
      "author": {
        "name": "Nikhil Dev Goyal",
        "email": "nikhildevgoyal@google.com",
        "time": "Fri Sep 18 10:37:32 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 10:38:10 2026"
      },
      "message": "Optimize FastTanh by using global (7, 6) pade, calculated as (3, 3) on g(u) where u \u003d y^2 (I have written down the detailed math in the comments).\n\nPrevious FastTanh was 1.6x faster than Tanh on turin\nNow we are about 3x faster than Tanh on turin, which is a massive speedup.\n\nI tried a bunch of different variants :\n\n(3, 2) Pade with Div (8 constant intervals) : 2.24x faster than Tanh\n(3, 2) Pade with Apprxomiate Reciprocal + Mul (8 constant intervals) : 2.1x faster than Tanh\n(7, 6) pade global : 2.6x faster than Tanh\n(2, 2) Pade with uneven intervals as before : 1.6x faster than Tanh (basically same speedup as before)\n\nwhy (7, 6) or (3, 2) ? : ran a for loop for all possible (x, y) variants up till x, y \u003c 10, and these were the ones that first broke through our target of keeping the max rel error \u003c 0.0006%.\n\nPiperOrigin-RevId: 983767770\n"
    },
    {
      "commit": "e90e8d715790f3684f53be3ed0a42bfaf5912c8a",
      "tree": "71b47c91767b157fa3f22050616bad467db88374",
      "parents": [
        "cea00b619de0e576bfa460b937d684a5a0e9a18f",
        "06de9268c1ded6e76482e37f55ba0d5db663f835"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 09:09:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 09:09:23 2026"
      },
      "message": "Merge pull request #3391 from a-eee:faster-safer-copyif\n\nPiperOrigin-RevId: 983729107\n"
    },
    {
      "commit": "cea00b619de0e576bfa460b937d684a5a0e9a18f",
      "tree": "12b53705dc1d31a284ecc679f299460023bcadf1",
      "parents": [
        "4ca2924bef8768a24e7866e90ec7cee237b7bac7"
      ],
      "author": {
        "name": "Jan Wassenberg",
        "email": "janwas@google.com",
        "time": "Fri Sep 18 08:35:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 08:36:15 2026"
      },
      "message": "Add AMX-BF16 to SPR target\n\nOn the understanding that it does not affect codegen, add the AMX targets to the SPR target string. Users must still check HaveTile64BMatMulBF16 before using AMX.\n\nPiperOrigin-RevId: 983712907\n"
    },
    {
      "commit": "4ca2924bef8768a24e7866e90ec7cee237b7bac7",
      "tree": "f210a8ca954ff87753646ad8b28a770b2b8c7ceb",
      "parents": [
        "993f67ca6d5e1d9d653f44976bf09afaf522afc5",
        "c329cdcb83963b04fb93ba380ecd2cf50481eaff"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 08:12:28 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 08:12:28 2026"
      },
      "message": "Merge pull request #3342 from tvost2:feat/iguana-full\n\nPiperOrigin-RevId: 983702520\n"
    },
    {
      "commit": "06de9268c1ded6e76482e37f55ba0d5db663f835",
      "tree": "2a34511ddbe61e3840df61613a6adcab0177d612",
      "parents": [
        "d92c8f00323f6ffca9bdec99c7bbfbacdc9f4c1f"
      ],
      "author": {
        "name": "aeee",
        "email": "ad8467826@gmail.com",
        "time": "Thu Sep 17 16:55:33 2026"
      },
      "committer": {
        "name": "aeee",
        "email": "ad8467826@gmail.com",
        "time": "Thu Sep 17 16:55:33 2026"
      },
      "message": "CopyIf: add unrolling for !HWY_MEM_OPS_MIGHT_FAULT\n"
    },
    {
      "commit": "d92c8f00323f6ffca9bdec99c7bbfbacdc9f4c1f",
      "tree": "5a81cf347757fe278a23fd687d79bed3af9eef39",
      "parents": [
        "993f67ca6d5e1d9d653f44976bf09afaf522afc5"
      ],
      "author": {
        "name": "aeee",
        "email": "ad8467826@gmail.com",
        "time": "Wed Sep 16 19:19:16 2026"
      },
      "committer": {
        "name": "aeee",
        "email": "ad8467826@gmail.com",
        "time": "Wed Sep 16 21:49:35 2026"
      },
      "message": "add safe CopyIf and Unique tail processing, and speed up CopyIf\n"
    },
    {
      "commit": "c329cdcb83963b04fb93ba380ecd2cf50481eaff",
      "tree": "b20fbd49f8a39cce575fb2ff33545f4c0b191717",
      "parents": [
        "dd3092265e4376eb3755c82386e1486f4ebe416c"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvost2@users.noreply.github.com",
        "time": "Wed Sep 16 13:11:38 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvost2@users.noreply.github.com",
        "time": "Wed Sep 16 13:11:38 2026"
      },
      "message": "Iguana: address review round 4\n\ndetail.h: reject the 0x80 NOP token explicitly. A block can be padded with them while still producing its declared output, so the per-command progress check does not catch it inside a single DecodeIguana command.\n\niguana.cc: the ANS input size assertion casts to uint64_t first, since size_t may be 32-bit, where the shift itself would be a warning or error.\n\niguana_test: cover both, with a control block that differs only by the NOPs and must decode, so the rejection is attributable to the token rather than to the declared length.\n"
    },
    {
      "commit": "dd3092265e4376eb3755c82386e1486f4ebe416c",
      "tree": "10d08c12c2036ec554dc8a85314f1f9d1cf50672",
      "parents": [
        "64befa5626fbc009633ea8b79f717d3ec6493e31"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvost2@users.noreply.github.com",
        "time": "Wed Sep 16 11:47:11 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvost2@users.noreply.github.com",
        "time": "Wed Sep 16 11:47:11 2026"
      },
      "message": "Iguana: address review round 3\n\ndetail.h: reject commands that produce no output (a token carrying neither literals nor a match, e.g. 0x80, could consume control bytes without making progress); bound each stream length by the declared uncompressed length rather than by the 1 GiB cap alone; use a fixed array of per-stream buffers so that appending cannot reallocate the storage the streams point into; remove an orphaned comment.\n\niguana.cc: the repeat-offset path passed a source position to IsLegal, which expects a distance, so every short match after the first 64 KiB was rejected; pass last_encoded_offset and rename the variable to repeat_pos. Compress now refuses inputs above kMaxUncompressedSize, since the decoder rejects the resulting block, with a static_assert that the cap keeps positions below 2 GiB, and the ANS input size is asserted to stay below 4 GiB.\n"
    },
    {
      "commit": "993f67ca6d5e1d9d653f44976bf09afaf522afc5",
      "tree": "270de9fdcf44f3b1b3bd6d79a08926025ef484bf",
      "parents": [
        "136ec7e9dfa3c393842a630340dbe87bd3dc72ec",
        "b8ce0520aaa54720ae8c4e2b56a08af5747de12e"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 10:31:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 10:31:10 2026"
      },
      "message": "Merge pull request #3389 from Wint3rNight:algo-count-narrow-tags\n\nPiperOrigin-RevId: 982407326\n"
    },
    {
      "commit": "b8ce0520aaa54720ae8c4e2b56a08af5747de12e",
      "tree": "270de9fdcf44f3b1b3bd6d79a08926025ef484bf",
      "parents": [
        "c960901ef0a4df7a27026f7d8290ee717d363391"
      ],
      "author": {
        "name": "Wint3rNight",
        "email": "pratap2003singh@gmail.com",
        "time": "Tue Sep 15 22:35:55 2026"
      },
      "committer": {
        "name": "Wint3rNight",
        "email": "pratap2003singh@gmail.com",
        "time": "Tue Sep 15 22:35:55 2026"
      },
      "message": "contrib/algo: skip Count widening paths on partial scalable tags\n\nOn RVV, partial tags (e.g. pow2 -3) have no vector type for the int16/int32 lanes the 8-bit and 16-bit paths widen into, so Count/CountIf failed to compile once the tests covered those tags. Use the widening paths only for full tags on scalable targets, as math-inl.h does.\n"
    },
    {
      "commit": "c960901ef0a4df7a27026f7d8290ee717d363391",
      "tree": "5ab825a3111ff4281802c12a96e587b2348cd5e8",
      "parents": [
        "136ec7e9dfa3c393842a630340dbe87bd3dc72ec"
      ],
      "author": {
        "name": "Wint3rNight",
        "email": "pratap2003singh@gmail.com",
        "time": "Tue Sep 15 21:34:51 2026"
      },
      "committer": {
        "name": "Wint3rNight",
        "email": "pratap2003singh@gmail.com",
        "time": "Tue Sep 15 21:34:51 2026"
      },
      "message": "contrib/algo: fix Count/CountIf overflow on narrow tags\n\nTags with fewer than 4 i8 or 2 i16 lanes, including HWY_SCALAR, skipped the widening paths and accumulated matches in their own lane type, which wraps. Send them through the CountTrue loop instead, and run the Count tests on partial vectors.\n"
    },
    {
      "commit": "64befa5626fbc009633ea8b79f717d3ec6493e31",
      "tree": "c7674b4aae79271667cd930b5a2faaf9761b88e3",
      "parents": [
        "33d753730b7995437ab055047e1c151d9f1c847e"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvost2@users.noreply.github.com",
        "time": "Tue Sep 15 18:26:56 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvost2@users.noreply.github.com",
        "time": "Tue Sep 15 18:27:43 2026"
      },
      "message": "Iguana: address review round 2\n\ndetail.h: reject overlap of the forward payload and backward control cursors (have_payload); bound each command by the declared uncompressed length rather than only the 1 GiB cap; verify at the end that exactly uncompressed_len bytes were produced and that every payload byte before the control section was consumed; release ent_bufs after each decoded block; ReadControlVarUint, CopyMatch and DecompressIguanaLZ are now HWY_INLINE so this header exports nothing.\n\niguana.cc: longer parameter names and HWY_RESTRICT in BestMatchAt/BestChainMatch; clamp and validate the repeat-offset match, which bypasses MatchExtend.\n\niguana-inl.h/iguana.h: HWY_ATTR on the lambda that calls SIMD code; new dispatched hwy::iguana::Decompress using HWY_DYNAMIC_DISPATCH; include hwy/base.h for HWY_INLINE/HWY_RESTRICT.\n\nBuild: meson.build and CMakeLists.txt now list detail.h.\n\nTests: cover the encoder\u0027s literal-run splitting (a \u003e kMaxEncodableLitLen LFSR sequence is the only input that reaches it) and the dispatched wrapper.\n"
    },
    {
      "commit": "136ec7e9dfa3c393842a630340dbe87bd3dc72ec",
      "tree": "96c3e672bbc08138be82fcfee9c7191252947b7f",
      "parents": [
        "f2c20aa57339f7ca250571ec038a5bb88106c7df",
        "c91fa6ae5248a2df52171ef934d90689a1b8b34e"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 15 16:08:21 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 15 16:08:21 2026"
      },
      "message": "Merge pull request #3387 from scuzqy:fix-msvc-test-build\n\nPiperOrigin-RevId: 981861034\n"
    },
    {
      "commit": "33d753730b7995437ab055047e1c151d9f1c847e",
      "tree": "3037d092b2c0e19689208989d76e8685f6595ddd",
      "parents": [
        "f4816050ab82a0fe81117f152b6df43e920767cf"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 15 15:06:11 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 15 15:06:11 2026"
      },
      "message": "fix build: Bazel needs detail.h, and the size arithmetic needs casts\n\n- BUILD: the new detail.h has to be listed in the //:iguana target, otherwise\n  Bazel cannot find it (hwy_tests.bzl uses a directory prefix, so it is fine)\n- iguana.cc: kMinOffset is now size_t, so the remaining mixed arithmetic with\n  int64_t tripped -Werror\u003dsign-conversion on the big-endian GCC 16 and Clang 22\n  jobs. The casts are explicit now and the values are unchanged.\n"
    },
    {
      "commit": "c91fa6ae5248a2df52171ef934d90689a1b8b34e",
      "tree": "96c3e672bbc08138be82fcfee9c7191252947b7f",
      "parents": [
        "f2c20aa57339f7ca250571ec038a5bb88106c7df"
      ],
      "author": {
        "name": "scuzqy",
        "email": "scuzqy@outlook.com",
        "time": "Tue Sep 15 14:53:49 2026"
      },
      "committer": {
        "name": "scuzqy",
        "email": "scuzqy@outlook.com",
        "time": "Tue Sep 15 14:53:49 2026"
      },
      "message": "Add missing HWY_TEST_MAIN for HWY_TEST_STANDALONE\n\nProvide standalone entry points for 4 contrib tests.\n\nFixed MSVC builds.\n"
    },
    {
      "commit": "f4816050ab82a0fe81117f152b6df43e920767cf",
      "tree": "2e3f05478fb74cb8a73826a865cdee388021ddd2",
      "parents": [
        "62da3cb4cc14814671cd38361fd7943b9a588a87"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 15 14:36:42 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 15 14:36:42 2026"
      },
      "message": "tests: add a security suite for malformed Iguana input\n\nThe decoder parses untrusted input, so these tests pin the properties that hold\nno matter what the bytes say: malformed input is rejected rather than decoded\nbest effort, no allocation is driven by an attacker-controlled length, and the\nscalar and SIMD paths agree on what they accept, reject and produce.\n\n- MakeIguanaBlock/AppendCtrlVarUint: build a block around chosen raw streams so\n  a test can state the exact malformed shape instead of guessing at output\n- ZipBomb: a ~30-byte block declaring more than kMaxUncompressedSize must be\n  rejected before anything is allocated\n- MalformedContainer: unknown command, the unimplemented ANS1 stream mode, an\n  11-byte control varint, and an auxiliary stream left with leftover bytes\n- MalformedLZ: a match whose offset points before the start of the output\n- MutationSweep: deterministic flips/overwrites/truncations of valid blocks\n- RandomInput: random buffers, which also exercise rejecting cheaply, since a\n  random header is almost always far above the cap\n\nThe suite runs on every target (AVX2/SSE4/SSSE3/SSE2/EMU128 here): 40 tests in\nabout 2 s. Also applies clang-format to the touched files.\n"
    },
    {
      "commit": "62da3cb4cc14814671cd38361fd7943b9a588a87",
      "tree": "18fac0402f67603730f1fea7376e07c93d70ab17",
      "parents": [
        "5a3d9ffc717b7108099d84fd011d386072d39e4d"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 15 14:26:17 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 15 14:26:17 2026"
      },
      "message": "Encoder: the ctor already zero-initializes chains\n\nstd::vector\u0027s size constructor value-initializes the std::arrays, so clearing\nthem again at the start of CompressSrc was redundant.\n"
    },
    {
      "commit": "5a3d9ffc717b7108099d84fd011d386072d39e4d",
      "tree": "ea923a84c424f9b1f010cb6792f8d58fa7172742",
      "parents": [
        "ecb759e1c32d42971dee326bda492333632fb1a4"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 15 14:24:01 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 15 14:24:20 2026"
      },
      "message": "Lcp: load the 8-byte groups little-endian\n\nHashSeq already used Load64LE, but Lcp still memcpy\u0027d, so on big-endian hosts\nNum0BitsBelowLS1Bit_Nonzero64 counts from the wrong end and reports the wrong\nfirst-differing byte.\n"
    },
    {
      "commit": "ecb759e1c32d42971dee326bda492333632fb1a4",
      "tree": "5657ffc038adcd5bfe9a6e4fcde13b95248dfe54",
      "parents": [
        "a8addba2dce15431565b8bdedcb7bb313e12c389"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 15 14:21:56 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 15 14:22:10 2026"
      },
      "message": "iguana: address review comments (shared container loop, bounds checks)\n\n- move the internals to detail.h and keep iguana.h to the public API\n- single container loop in detail.h, templated over the entropy decoder, used by\n  both the scalar path (iguana.cc) and the SIMD path (iguana-inl.h)\n- sizes are size_t; explicit casts where the arithmetic must stay signed\n- validate untrusted input before allocating: cap the declared length and every\n  per-stream/per-command length at 1 GiB (zip bombs), check offsets by\n  subtraction, reject a match with last_offs \u003d\u003d 0, require the offset/length\n  streams to be fully consumed, bound the backwards control varint, and require\n  total \u003d\u003d kAnsWordM || kAnsWordM - 1 plus freqs[i] \u003c kAnsWordM\n- HWY_CONTRIB_DLLEXPORT on the definitions and declarations of Compress,\n  DecompressScalar, DecompressIguanaLZ and ReadControlVarUint\n- resize before copying a match (iterator invalidation was UB); rename the\n  \"wild copy\" accordingly\n- split long literal runs into several tokens; clamp matches to the length the\n  varint can carry; Load64LE for big-endian; Num0Bits* intrinsics\n- tests: Random64, empty input, first token that reuses a non-existent offset,\n  and a sweep over truncations/mutations of a valid block\n"
    },
    {
      "commit": "f2c20aa57339f7ca250571ec038a5bb88106c7df",
      "tree": "8581ea24eecb471256bf92a2398ab820545c438f",
      "parents": [
        "e2c694de42ab348b96b494823f8838f97d4a348d",
        "17c8c8f647f48d48537e98aecb83f216889c6890"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 15 10:10:15 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 15 10:10:15 2026"
      },
      "message": "Merge pull request #3386 from jdymitarai:fix-armv7-neon-tests-3380\n\nPiperOrigin-RevId: 981696499\n"
    },
    {
      "commit": "e2c694de42ab348b96b494823f8838f97d4a348d",
      "tree": "fa98f790096d4e16ae6bca0455c5184dced14283",
      "parents": [
        "3f45534d01a63326bd73ba507959257f78546eff",
        "0a020e4606f716e300412e1dd289999101af25f3"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 15 09:09:44 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 15 09:09:44 2026"
      },
      "message": "Merge pull request #3382 from tinfengyu:fix-rvv-reorder-widen-mul-final\n\nPiperOrigin-RevId: 981667536\n"
    },
    {
      "commit": "3f45534d01a63326bd73ba507959257f78546eff",
      "tree": "e83c8eb34d7858cf693ab94a638d867c591b1401",
      "parents": [
        "0d6d9a3034cb326430ce6b6badd6c89311203a6d"
      ],
      "author": {
        "name": "Jan Wassenberg",
        "email": "janwas@google.com",
        "time": "Tue Sep 15 07:27:15 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 15 07:27:43 2026"
      },
      "message": "Fix mandelbrot/mixed_precision for scalar targets, refs #3381\n\nMove scalar code into HWY_ONCE, only build if !scalar, and skip test if scalar.\n\nPiperOrigin-RevId: 981617030\n"
    },
    {
      "commit": "17c8c8f647f48d48537e98aecb83f216889c6890",
      "tree": "fa888b8cc480ca34633c6427c42c2a26ab30c966",
      "parents": [
        "0d6d9a3034cb326430ce6b6badd6c89311203a6d"
      ],
      "author": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Mon Sep 14 22:47:40 2026"
      },
      "committer": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Mon Sep 14 22:47:40 2026"
      },
      "message": "Fix FloatManipTest and RangeCoderTest failures on ARMv7 NEON (fixes #3380)\n"
    },
    {
      "commit": "0d6d9a3034cb326430ce6b6badd6c89311203a6d",
      "tree": "ece339e4795e9dd9befa40b3e9b715fee9d5f2b6",
      "parents": [
        "c5e1016d537c9c557b693dbd7c91c6dca7075213",
        "4a134ed75285462b8150d365c56c089fceb5c199"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 14 16:20:32 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 14 16:20:32 2026"
      },
      "message": "Merge pull request #3379 from jdymitarai:fix-contrib-coder-dllexport-3378\n\nPiperOrigin-RevId: 981190509\n"
    },
    {
      "commit": "c5e1016d537c9c557b693dbd7c91c6dca7075213",
      "tree": "24dea6c65ddcbb86fac085d3dde489da6e289e1c",
      "parents": [
        "ed86e8f7698055a99838a4edd17335919dcac506",
        "318b403bd472fc3f49ca69a6a3affb4e116c8adc"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 14 09:49:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 14 09:49:16 2026"
      },
      "message": "Merge pull request #3365 from tvost2:feat/muladd52\n\nPiperOrigin-RevId: 981035401\n"
    },
    {
      "commit": "0a020e4606f716e300412e1dd289999101af25f3",
      "tree": "27fc5c1651e9d08772bf02b5b400942b629387f7",
      "parents": [
        "ed86e8f7698055a99838a4edd17335919dcac506"
      ],
      "author": {
        "name": "tinfeng",
        "email": "1768309929@qq.com",
        "time": "Sun Sep 13 16:10:35 2026"
      },
      "committer": {
        "name": "tinfeng",
        "email": "1768309929@qq.com",
        "time": "Sun Sep 13 16:10:35 2026"
      },
      "message": "RVV: Fix ReorderWidenMulAccumulate for fractional LMUL\n"
    },
    {
      "commit": "4a134ed75285462b8150d365c56c089fceb5c199",
      "tree": "34b5e2ea9f6f3c474cf2a4de2a0b40f70490b139",
      "parents": [
        "ed86e8f7698055a99838a4edd17335919dcac506"
      ],
      "author": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Sat Sep 12 09:43:34 2026"
      },
      "committer": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Sat Sep 12 09:43:34 2026"
      },
      "message": "Annotate range_coder and iguana exports with HWY_CONTRIB_DLLEXPORT (fixes #3378)\n\nWhen building Highway with shared libraries enabled (`BUILD_SHARED_LIBS\u003dON`),\n`CMakeLists.txt` sets `CMAKE_CXX_VISIBILITY_PRESET hidden`. Consequently,\nexported non-inline functions in `libhwy_contrib.so` must be explicitly\nannotated with `HWY_CONTRIB_DLLEXPORT` to ensure they are visible to external\ntargets and unit test binaries linking against `libhwy_contrib.so`.\n\nPreviously, `hwy/contrib/coder/range_coder.h` and `hwy/contrib/iguana/ans.h`\ndid not annotate their public functions with `HWY_CONTRIB_DLLEXPORT`,\ncausing `range_coder_test` (and `ans_test`) to fail at link time with\nundefined references to `CreateCumulativeProbs`, `BuildDecodeTable`,\n`EncodeInterleaved`, `DecodeInterleavedScalar`, `GetRangeShuffleTables`,\nand `Ans32Encode`.\n\nThis patch adds `HWY_CONTRIB_DLLEXPORT` to both declarations and definitions\nof these public APIs, resolving linker errors on Linux/musl distributions and\nshared library configurations.\n"
    },
    {
      "commit": "a8addba2dce15431565b8bdedcb7bb313e12c389",
      "tree": "c8db9397e0ee6b81457a3207264fd340f0ed321d",
      "parents": [
        "ed86e8f7698055a99838a4edd17335919dcac506"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Wed Sep 02 02:27:28 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Fri Sep 11 21:14:32 2026"
      },
      "message": "Add Iguana container + LZ77 layer to hwy/contrib/iguana\n\nCompletes the \"Iguana\" op_wishlist item on top of the ANS32 entropy stage:\nhwy/contrib/iguana/ is now a working portable Iguana codec\n(github.com/SnellerInc/sneller). Ported from the pure-Go reference; the\nbitstream is compatible with it.\n\n- iguana.h/.cc: the container format (backward control varints; CopyRaw /\n  DecodeIguana / DecodeANS32 commands), the LZ77 stage (token loop +\n  overlap-aware wild copy), and the scalar encoder - a Lizard-style\n  hash-chain match finder with the reference\u0027s repeat-offset and\n  end-of-buffer handling. DecompressScalar ties it together.\n- iguana-inl.h: Decompress - the same container loop, but each entropy-\n  coded stream is routed through the SIMD ANS32 decoder. The container\n  parsing and LZ token loop are inherently serial, so they stay in the\n  target-independent helpers. Output matches DecompressScalar.\n- iguana_test.cc: round-trips a range of sizes and data models, the\n  \u003e64 KiB far-offset path, and a re-sliced short string; cross-checks the\n  SIMD path against the scalar reference.\n\nCovers the EncodingIguana / EntropyANS32 pipeline. ANS1 / ANS_nibble\nstream modes and a vectorized wild copy are follow-ups.\n\nPasses on AVX3/AVX2/SSE4/SSSE3/SSE2/EMU128 locally; strict -Werror and\nclang-format are clean.\n"
    },
    {
      "commit": "ed86e8f7698055a99838a4edd17335919dcac506",
      "tree": "e636201422e45a5d509d6d3390fa09e53afe9f37",
      "parents": [
        "75e30adb94451e9f94a5b863d7284a70384db3f3",
        "065ef15cbc0c2fa380530780f8530728f2aa0a33"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 18:52:37 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 18:52:37 2026"
      },
      "message": "Merge pull request #3377 from johnplatts:hwy_partition_091126\n\nPiperOrigin-RevId: 979937763\n"
    },
    {
      "commit": "75e30adb94451e9f94a5b863d7284a70384db3f3",
      "tree": "118ed137548ee747f4a7962f664e99ec92ac09af",
      "parents": [
        "cdb0ca0b260ddb3c38462d87f92d0d3526225c3a",
        "44e5545903dec6760d746dcd8c5b2af6ba1fca8e"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 18:25:50 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 18:25:50 2026"
      },
      "message": "Merge pull request #3368 from jdymitarai:fix-sort-unit-test-f64-dispatch\n\nPiperOrigin-RevId: 979922866\n"
    },
    {
      "commit": "cdb0ca0b260ddb3c38462d87f92d0d3526225c3a",
      "tree": "3da9b759b05a8e84d8e07421b7e151c82296a862",
      "parents": [
        "c415565a31ba7d532559edf67bc2171f4fe50c4f",
        "e5a641e504f07f60db45d773e81aa62ee510167b"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 17:36:03 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 17:36:03 2026"
      },
      "message": "Merge pull request #3376 from Wint3rNight:algo-equal-span\n\nPiperOrigin-RevId: 979895825\n"
    },
    {
      "commit": "065ef15cbc0c2fa380530780f8530728f2aa0a33",
      "tree": "f8ac2851ab745f50bd054bfebe4c54793802c444",
      "parents": [
        "af3fbf7e3e85742de440c5b6aaeaefb6aea8da26"
      ],
      "author": {
        "name": "John Platts",
        "email": "john_platts@hotmail.com",
        "time": "Fri Sep 11 17:35:09 2026"
      },
      "committer": {
        "name": "John Platts",
        "email": "john_platts@hotmail.com",
        "time": "Fri Sep 11 17:35:09 2026"
      },
      "message": "Added Partition op\n"
    },
    {
      "commit": "e5a641e504f07f60db45d773e81aa62ee510167b",
      "tree": "1d74b5a3395759518b0be8bb6c35bd947a463d86",
      "parents": [
        "d5d9c4814d84887e373c8e606bd49717ffcffacd"
      ],
      "author": {
        "name": "Wint3rNight",
        "email": "pratap2003singh@gmail.com",
        "time": "Fri Sep 11 16:12:58 2026"
      },
      "committer": {
        "name": "Wint3rNight",
        "email": "pratap2003singh@gmail.com",
        "time": "Fri Sep 11 16:12:58 2026"
      },
      "message": "Add EqualSpan and ReverseSpan to hwy/contrib/algo\n\nTwo more entries from the Remaining STL functions for hwy/contrib/algo list in op_wishlist.md, following #3370.\n\nEqualSpan compares two spans of the same length element-wise, like std::equal, stopping at the first mismatch. It unrolls 4x like AnyOf rather than 2x like Find, because the position of the mismatch is never needed. The tail needs no FirstN mask: LoadN zero-fills the lanes past the end on both sides, so they compare equal and cannot produce a spurious mismatch. Argument order follows Dot::Compute(d, pa, pb, num), the other function in contrib that reads two spans of the same length.\n\nReverseSpan reverses a span in place, like std::reverse. It takes one vector from each end, reverses it and stores it at the opposite end. When N \u003c\u003d remaining \u003c 2N the two vectors overlap, which is why both are loaded before either is stored. The final fewer-than-N elements use LoadN, Reverse and SlideDownLanes so that no memory past the end is read.\n\nTests compare against hand-built references over every count up to 4 * Lanes(d) with three misalignments and all types, and check a sentinel past the end to catch an over-store.\n"
    },
    {
      "commit": "c415565a31ba7d532559edf67bc2171f4fe50c4f",
      "tree": "95c248dfb814276101103882c3f68ea76a91bbad",
      "parents": [
        "d5d9c4814d84887e373c8e606bd49717ffcffacd"
      ],
      "author": {
        "name": "Jan Wassenberg",
        "email": "janwas@google.com",
        "time": "Fri Sep 11 14:22:24 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 14:24:56 2026"
      },
      "message": "add HWY_NATIVE_MUL64, refs #3365. Also document HWY_NATIVE_STORE_N\n\nPiperOrigin-RevId: 979807250\n"
    },
    {
      "commit": "d5d9c4814d84887e373c8e606bd49717ffcffacd",
      "tree": "eac00f4c46b01c71e1240902258a495c160915b9",
      "parents": [
        "271de65f22791ad9f9090bcbd5a8093a6816c882",
        "4d538d6a3c1fde34e797ed9f3b13365c0bcc246a"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 12:37:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 12:37:46 2026"
      },
      "message": "Merge pull request #3370 from Wint3rNight:algo-any-all-none\n\nPiperOrigin-RevId: 979767586\n"
    },
    {
      "commit": "318b403bd472fc3f49ca69a6a3affb4e116c8adc",
      "tree": "c2413496e53f6268075a3d070eeaffec25382887",
      "parents": [
        "41d59fbcafa36d78bcd661cf66a0ee0744fbd71f"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Fri Sep 11 12:14:26 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Fri Sep 11 12:14:26 2026"
      },
      "message": "Disambiguate IFMA/VNNI in the README target list\n\nThese are the EVEX-encoded AVX512IFMA/AVX512VNNI flavors that Icelake adds,\nas opposed to the separate VEX-encoded AVX-IFMA (AVX10.2) and AVX-VNNI\nfeatures. Spell them out so the list is unambiguous (Andarwinux).\n"
    },
    {
      "commit": "41d59fbcafa36d78bcd661cf66a0ee0744fbd71f",
      "tree": "c5e94d7ea7c97a419163a0a636ad1e789731c851",
      "parents": [
        "5451555757194103660a42c84cd6e713c9b2b5b1"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Fri Sep 11 11:56:32 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Fri Sep 11 11:56:32 2026"
      },
      "message": "Simplify MulAdd52 generic fallback per review\n\nNow that inputs are required to be \u003c 2^52, masking them is unnecessary:\n\n- MulAdd52Lo is just Mul, And(mask52), Add.\n- MulAdd52Hi uses Mul and MulHigh on targets that have native 64-bit Mul and\n  MulHigh (SVE, RVV, PPC10, LSX), gated on the HWY_NATIVE_MUL64 macro that\n  jan-wassenberg offered to add. Otherwise it splits into 32-bit halves\n  (rather than 26-bit limbs) and carries the overflow out of bit 64\n  explicitly, instead of relying on the intermediate staying below 2^53.\n\nAlso list IFMA for AVX3_DL in README.md (Andarwinux).\n"
    },
    {
      "commit": "271de65f22791ad9f9090bcbd5a8093a6816c882",
      "tree": "a66c80a51dec5dcdc1ecffe477307abba8d5bb74",
      "parents": [
        "af3fbf7e3e85742de440c5b6aaeaefb6aea8da26",
        "01553ea68ca1cf6a666135f3c18991db5bd35921"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 08:44:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 08:44:55 2026"
      },
      "message": "Merge pull request #3360 from tejas5038:oss-agent/3250-crc64-example\n\nPiperOrigin-RevId: 979676670\n"
    },
    {
      "commit": "5451555757194103660a42c84cd6e713c9b2b5b1",
      "tree": "defb4116fa2c7239b76ad0aa8e4e584a8120a417",
      "parents": [
        "aae5b777ed26fa3d7e5b43cc023eec88b212d251"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Fri Sep 11 03:49:35 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Fri Sep 11 03:49:35 2026"
      },
      "message": "Avoid unnecessary lambda capture in TestSelectWithNaNForType\n\nClang-22 rejects the [asc] capture of a constexpr local with\n-Werror,-Wunused-lambda-capture, whereas MSVC required it (da361a8d). Use the\nenclosing template parameter Order directly inside the lambda so that neither\ncompiler needs to capture anything, and keep `asc` (still used below).\n"
    },
    {
      "commit": "aae5b777ed26fa3d7e5b43cc023eec88b212d251",
      "tree": "52fe6b530412734751fbc788aca56ec924d5d1d9",
      "parents": [
        "fa48063ff9e0389b1a37bfcacd8502b30065b25c"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Fri Sep 11 03:49:33 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Fri Sep 11 03:49:33 2026"
      },
      "message": "Fix MulAdd52 native argument order (accumulator is first)\n\nThe AVX512-IFMA intrinsics take the accumulator as their FIRST operand,\nunlike FMA: _mm512_madd52lo_epu64(a, b, c) computes a + low52(b*c) (and\nlikewise for hi), as documented by Intel/LLVM (\"multiply ... in each 64-bit\nelement of b and c ... add ... with the corresponding ... integer in a\";\ncontrast _mm512_fmadd_ps(a,b,c) which multiplies a and b and adds to c).\n\nThe native wrappers passed (a, b, c), so they computed a + product(b*c)\ninstead of the documented c + product(a*b). The generic fallback computes\nc + product(a*b), so TestAllMulAdd52/AVX3_DL aborted on IFMA hardware while\nall other targets passed. Pass (c, a, b) so the addend stays the third\nparameter.\n"
    },
    {
      "commit": "44e5545903dec6760d746dcd8c5b2af6ba1fca8e",
      "tree": "7dc501e052fb1cc66f1ef11bb5f9af50b9aaab66",
      "parents": [
        "5dc518e54c9618117adab5fca408d01abc904d7a"
      ],
      "author": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Fri Sep 11 00:51:48 2026"
      },
      "committer": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Fri Sep 11 00:52:00 2026"
      },
      "message": "fix(sort): retain asc in TestSelectWithNaNForType for abort message\n"
    },
    {
      "commit": "5dc518e54c9618117adab5fca408d01abc904d7a",
      "tree": "a7b22e10762bb5daeeac49477d053cd8ea1ce432",
      "parents": [
        "05e2d568b8117302d910326a96131b3530fea5bd"
      ],
      "author": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Fri Sep 11 00:04:27 2026"
      },
      "committer": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Fri Sep 11 00:04:27 2026"
      },
      "message": "fix(sort): avoid local variable capture in TestSelectWithNaNForType comparator\n"
    },
    {
      "commit": "4d538d6a3c1fde34e797ed9f3b13365c0bcc246a",
      "tree": "ea0f04bf80723635fc35d220bd1167bae79739ca",
      "parents": [
        "af3fbf7e3e85742de440c5b6aaeaefb6aea8da26"
      ],
      "author": {
        "name": "Wint3rNight",
        "email": "pratap2003singh@gmail.com",
        "time": "Thu Sep 10 23:27:06 2026"
      },
      "committer": {
        "name": "Wint3rNight",
        "email": "pratap2003singh@gmail.com",
        "time": "Thu Sep 10 23:27:06 2026"
      },
      "message": "Add AllOf/AnyOf/NoneOf to contrib/algo\n\nstd::all_of, std::any_of and std::none_of over a span, from the \"Remaining STL functions for hwy/contrib/algo\" list in op_wishlist.md.\n\nEach could be a one-line wrapper over FindIf, but FindIf pays for FindFirstTrue to locate the match and none of these need the position, so they are built directly on AllFalse/AllTrue and the index arithmetic drops out of the loop. Unrolled 4x like AllUnique, the other early-exit scan in this file.\n\nThe tail needs care in both directions: LoadN zero-fills past the end, so AnyOf masks with FirstN and AllOf uses AndNot to ask only about lanes holding a real element.\n\nTested against std::any_of/all_of/none_of over 512 random counts, three misalignments, all types and 20 predicate thresholds, plus pinned always-true and always-false predicates so unsigned types still exercise the AllOf-true path. Full build and ctest green locally, 2475/2475.\n\nAlso strikes IndexOfMin/Max off the wishlist, added in #3253.\n"
    },
    {
      "commit": "fa48063ff9e0389b1a37bfcacd8502b30065b25c",
      "tree": "0d266c5e802e84920e22ab5f06516c835471dfaf",
      "parents": [
        "647a4eb622c1abad185fd44ecf2142e31d1618b3",
        "af3fbf7e3e85742de440c5b6aaeaefb6aea8da26"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Thu Sep 10 23:24:25 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Thu Sep 10 23:24:25 2026"
      },
      "message": "Merge origin/master into feat/muladd52\n\nResolve the conflict in hwy/ops/set_macros-inl.h by keeping both additions:\nthe new #undef HWY_NATIVE_MULADD52 (PR) and master\u0027s\n#undef HWY_NATIVE_STORE_N.\n\nAlso fix the MulAdd52 native macro handling while here:\nHWY_NATIVE_MULADD52 was used both as the public 0/1 macro (set by\nset_macros for native targets) and as the toggle macro flipped in\nx86_avx3-inl.h. Because set_macros re-defines it on every pass, the\ngeneric guard degenerated to !defined(HWY_TARGET_TOGGLE), so the generic\nfallback was missing for some targets and the multi-target build failed.\nIntroduce a private HWY_NATIVE_MULADD52_IMPL toggle (mirroring the existing\nHWY_NATIVE_STORE_N_IMPL pattern) that only the generic guard and the native\nheader flip; HWY_NATIVE_MULADD52 remains the public 0/1 reporting macro.\n"
    },
    {
      "commit": "05e2d568b8117302d910326a96131b3530fea5bd",
      "tree": "13953cb0273f6f9e4b9bcfa0a9b804f16fb0eae3",
      "parents": [
        "af3fbf7e3e85742de440c5b6aaeaefb6aea8da26"
      ],
      "author": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Thu Sep 10 21:36:11 2026"
      },
      "committer": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Thu Sep 10 21:36:11 2026"
      },
      "message": "fix(sort): check VQSortHaveFloat16/64 in TestFloatInf (fixes #2259)\n"
    },
    {
      "commit": "647a4eb622c1abad185fd44ecf2142e31d1618b3",
      "tree": "1cd4ac3ed0c242e7f7ad76739b905ed1f0a97f72",
      "parents": [
        "33f25236eb02e6df56ccb5334fae4efe998ab6ba"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Thu Sep 10 20:36:10 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Thu Sep 10 20:36:10 2026"
      },
      "message": "Address MulAdd52 review feedback\n\ng3doc/quick_reference.md:\n- MulAdd52Lo/Hi: require inputs to be \u003c 2^52, otherwise results are\n  implementation-defined. This replaces the \"inputs are interpreted modulo\n  2^52\" wording, which would imply extra masking work on targets that\n  already have native 64-bit multiply.\n- Remove the \"upper 12 bits of c[i] are preserved\" claim: the sum can\n  carry into bit 52 and the full 64-bit addend is added, so the claim was\n  misleading.\n\nhwy/ops/generic_ops-inl.h:\n- Fuse p1 into MulAdd: MulAdd(a1, b0, Mul(a0, b1)).\n- MulAdd52Lo: return Add(And(low, mask52), c) (mask the low 52 bits of the\n  product and add them to c).\n- MulAdd52Hi: return Add(high, c). VPMADD52LUQ/HUQ add the 52-bit product\n  part (zero-extended) to the full 64-bit addend, so the generic fallback\n  must do the same instead of preserving the upper 12 bits of c.\n\nhwy/tests/mul_test.cc:\n- Prefer IsSame\u003cT, uint64_t\u003e() over std::is_same.\n- Feed inputs \u003c 2^52 as required by the new contract; keep bits above 52\n  set in c to verify the full 64-bit add; expect c[i] + product_low52 and\n  c[i] + product_high52 (no masking of the upper bits).\n"
    },
    {
      "commit": "01553ea68ca1cf6a666135f3c18991db5bd35921",
      "tree": "81b81cff598727e71926f4b6d7260a367768e6bc",
      "parents": [
        "0b39ac7cc9f7d52d8b5666c2f8b35ad7368a45ab"
      ],
      "author": {
        "name": "Tejas Pravinbhai Patel",
        "email": "31176477+tejas5038@users.noreply.github.com",
        "time": "Thu Sep 10 14:45:53 2026"
      },
      "committer": {
        "name": "Tejas Pravinbhai Patel",
        "email": "31176477+tejas5038@users.noreply.github.com",
        "time": "Thu Sep 10 14:45:53 2026"
      },
      "message": "Address review: use HWY_ASSERT_EQ in CRC64 example"
    },
    {
      "commit": "af3fbf7e3e85742de440c5b6aaeaefb6aea8da26",
      "tree": "52f2359e7b5f1fb383f6174de65f098f80f22946",
      "parents": [
        "1698d45c6553bc95d4871471da9e8a54580dd34f",
        "da361a8d653ee4fccb55be74a761187f3cd6ce89"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 10 10:56:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 10 10:56:47 2026"
      },
      "message": "Merge pull request #3366 from jdymitarai:fix-msvc-sort-compilation\n\nPiperOrigin-RevId: 979091326\n"
    },
    {
      "commit": "1698d45c6553bc95d4871471da9e8a54580dd34f",
      "tree": "d4882ebe7db03dde3f16c3e4fe126cbac6f7444f",
      "parents": [
        "a9ad6647e58aadc17004ca95fb2305ef1cb10121",
        "b2a7a7bb23381e862a0a6066dd907877576d85b8"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 10 10:54:28 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 10 10:54:28 2026"
      },
      "message": "Merge pull request #3166 from johnplatts:hwy_compress_062926\n\nPiperOrigin-RevId: 979090897\n"
    },
    {
      "commit": "da361a8d653ee4fccb55be74a761187f3cd6ce89",
      "tree": "2685afbdec5b33b207dec1647fe3c02e5f52962b",
      "parents": [
        "fcda80dc5927e9a17204fb49b97426680eaa096d"
      ],
      "author": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Thu Sep 10 04:08:29 2026"
      },
      "committer": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Thu Sep 10 10:44:41 2026"
      },
      "message": "fix(sort): capture asc in std::sort lambda in TestSelectWithNaNForType\n"
    },
    {
      "commit": "a9ad6647e58aadc17004ca95fb2305ef1cb10121",
      "tree": "33e8268938419a37129ec6e9aaee362c9f08b19b",
      "parents": [
        "fcda80dc5927e9a17204fb49b97426680eaa096d",
        "39b08fa7ec38f6c7229e31df6ec4cb4feeac0ab3"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 10 10:36:15 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 10 10:36:15 2026"
      },
      "message": "Merge pull request #3367 from jdymitarai:fix-hash-shift-ub\n\nPiperOrigin-RevId: 979083634\n"
    },
    {
      "commit": "39b08fa7ec38f6c7229e31df6ec4cb4feeac0ab3",
      "tree": "33e8268938419a37129ec6e9aaee362c9f08b19b",
      "parents": [
        "fcda80dc5927e9a17204fb49b97426680eaa096d"
      ],
      "author": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Thu Sep 10 04:11:23 2026"
      },
      "committer": {
        "name": "jdymitarai",
        "email": "o10040115@gmail.com",
        "time": "Thu Sep 10 04:11:23 2026"
      },
      "message": "fix(hash): avoid undefined shift behavior for full-width bit masks\n"
    },
    {
      "commit": "33f25236eb02e6df56ccb5334fae4efe998ab6ba",
      "tree": "00cd782a0c7bac8c254d885692aac50a69fba525",
      "parents": [
        "73a6dd490274c0e3ff23f8e330d922ce3e5e5291"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Wed Sep 09 18:29:30 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Wed Sep 09 18:29:30 2026"
      },
      "message": "Fix MulAdd52 native macro regression\n"
    },
    {
      "commit": "73a6dd490274c0e3ff23f8e330d922ce3e5e5291",
      "tree": "9fb0f8d595f0bfb4bc2da9b8fef2907b1a79a7c3",
      "parents": [
        "98ed246eae97955acf2cf85cf963715b4f8b9903"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Wed Sep 09 16:37:14 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Wed Sep 09 16:37:14 2026"
      },
      "message": "Address MulAdd52 review feedback\n"
    },
    {
      "commit": "fcda80dc5927e9a17204fb49b97426680eaa096d",
      "tree": "f2de5944e29d6ed72f5f3820bc84a24392a54396",
      "parents": [
        "79e48ef2855481b4119bbc93fa5f212e1a0cf0e6"
      ],
      "author": {
        "name": "Jan Wassenberg",
        "email": "janwas@google.com",
        "time": "Wed Sep 09 14:51:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 09 14:52:01 2026"
      },
      "message": "Add and use ScalarInf for symmetry\n\nPiperOrigin-RevId: 978544917\n"
    },
    {
      "commit": "79e48ef2855481b4119bbc93fa5f212e1a0cf0e6",
      "tree": "76d66ee235cae9390e1feb29c46f6e5f656429a1",
      "parents": [
        "67e106d6ce639748b939be2baa37848b10fa8963",
        "522efd8ce0a5deab302732c6159ac76aab0f0080"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 09 08:14:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 09 08:14:27 2026"
      },
      "message": "Merge pull request #3362 from a-eee:bench-copy-if\n\nPiperOrigin-RevId: 978380119\n"
    },
    {
      "commit": "98ed246eae97955acf2cf85cf963715b4f8b9903",
      "tree": "7317c3f1a4663ca3fe9b1d5ec2c3c2a999b78a4d",
      "parents": [
        "81e335169142d4359391abb9bb037115dd3dec30"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 08 23:04:21 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 08 23:04:21 2026"
      },
      "message": "Expose native MulAdd52 availability\n"
    },
    {
      "commit": "81e335169142d4359391abb9bb037115dd3dec30",
      "tree": "3397ad90a30a8822ee3515e4ca6485a38465920d",
      "parents": [
        "67e106d6ce639748b939be2baa37848b10fa8963"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 08 22:40:29 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Tue Sep 08 22:40:29 2026"
      },
      "message": "Add 52-bit multiply-add operations\n"
    },
    {
      "commit": "522efd8ce0a5deab302732c6159ac76aab0f0080",
      "tree": "c2ed6b741b17f94dd6e8298fbca7a555f01185ba",
      "parents": [
        "71d029bc9e1d27f8e231b2502e240ae89b8ee7bc"
      ],
      "author": {
        "name": "aeee",
        "email": "ad8467826@gmail.com",
        "time": "Tue Sep 08 15:07:27 2026"
      },
      "committer": {
        "name": "aeee",
        "email": "ad8467826@gmail.com",
        "time": "Tue Sep 08 16:02:38 2026"
      },
      "message": "algo_bench.cc improvements. Add BenchCopyIf\n"
    },
    {
      "commit": "67e106d6ce639748b939be2baa37848b10fa8963",
      "tree": "73314866a4288a95ac2a305a27bbb0f2c9a4675c",
      "parents": [
        "71d029bc9e1d27f8e231b2502e240ae89b8ee7bc"
      ],
      "author": {
        "name": "Dillon Sharlet",
        "email": "dsharlet@google.com",
        "time": "Tue Sep 08 15:22:12 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 15:23:03 2026"
      },
      "message": "Optimize highway Exp using floating-point rounding (round_small technique).\n\nUse the magic-constant float rounding trick (as in YNNPACK\n`round_small`) for range reduction: `(x * log2(e) + magic) - magic`,\nwhere magic \u003d 1.5 * 2^mantissa_bits. This eliminates both the sign check\n(`(x \u003c 0) ? -0.5 : +0.5`) and integer conversions (`ToInt32` / `ConvertTo`),\nkeeping range reduction and exponent scaling entirely within floating-point\nand bitwise operations.\n\nWhen compiled under `-ffast-math`, `__FAST_MATH__` is used to fall back to\n`Round` (`hn::Round`) to prevent the compiler from optimizing away the\nmagic constant rounding.\n\nBenchmark results on x86_64 (`:math_benchmark`):\n- f32x16: 19.57 - 20.27 ticks (was 27.06 - 41.09 ticks, ~28-50% faster)\n- f32x8: 20.01 ticks (was 24.30 - 31.00 ticks, ~18-35% faster)\n- f32x4: 17.46 ticks (was 19.39 - 73.74 ticks, ~10-76% faster)\n- f32x2: 17.55 - 42.01 ticks (was 80.88 ticks, ~48-78% faster)\n- f32 scalar: 16.13 - 18.77 ticks (was 29.96 - 31.16 ticks, ~40-46% faster)\n- f64x8: 24.69 ticks (was 31.35 - 34.49 ticks, ~21-28% faster)\n- f64x2: 18.63 ticks (was 22.75 ticks, ~18% faster)\n- f64 scalar: 17.40 - 20.50 ticks (was 23.34 - 28.92 ticks, ~25-35% faster)\n\nSource for this implementation strategy: https://github.com/google/XNNPACK/blob/d50a82e9579b22b83c97de62e2964163f03d73de/ynnpack/base/simd/target_independent.inc#L209-L240\n\nPiperOrigin-RevId: 977925135\n"
    },
    {
      "commit": "b2a7a7bb23381e862a0a6066dd907877576d85b8",
      "tree": "ec534e091a953ba527875d1df2b5d767f37cd760",
      "parents": [
        "301ffb9272af1a688615d17eaf59376068d79e12",
        "71d029bc9e1d27f8e231b2502e240ae89b8ee7bc"
      ],
      "author": {
        "name": "John Platts",
        "email": "john_platts@hotmail.com",
        "time": "Tue Sep 08 13:23:54 2026"
      },
      "committer": {
        "name": "John Platts",
        "email": "john_platts@hotmail.com",
        "time": "Tue Sep 08 13:23:54 2026"
      },
      "message": "Merge remote-tracking branch \u0027origin/master\u0027 into hwy_compress_062926\n"
    },
    {
      "commit": "71d029bc9e1d27f8e231b2502e240ae89b8ee7bc",
      "tree": "303499e8fc132d152bc16a80eb84e6554de4635e",
      "parents": [
        "e2eff5dc807b847a6d2315887db8986888d88b49",
        "21faf252a36888a27c86273b5b4c630be0bf9039"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 10:27:08 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 10:27:08 2026"
      },
      "message": "Merge pull request #3343 from google:dependabot/github_actions/step-security/harden-runner-2.21.1\n\nPiperOrigin-RevId: 977810502\n"
    },
    {
      "commit": "e2eff5dc807b847a6d2315887db8986888d88b49",
      "tree": "c0c48a380f7d7c7a8185a63fa36d5fbcfd177998",
      "parents": [
        "d5b42080e5a1cad2739c4fda6f4d535d711f6831",
        "e4c0434a1c0cba2f42ae1aec43a7a63f02c2c16e"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 10:06:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 10:06:39 2026"
      },
      "message": "Merge pull request #3354 from a-eee:faster-unique\n\nPiperOrigin-RevId: 977802443\n"
    },
    {
      "commit": "d5b42080e5a1cad2739c4fda6f4d535d711f6831",
      "tree": "631b2a3d16b936ee4fc91f5c8523468d0bf19185",
      "parents": [
        "bf274df76434cc7dec546a94664d4ed6ef31c19c",
        "e559d5a4dc9989a77beb87b67deb22cad695e4d2"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 09:18:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 09:18:16 2026"
      },
      "message": "Merge pull request #3361 from tejas5038:fix/rvv-rearrange-odd-even\n\nPiperOrigin-RevId: 977783078\n"
    },
    {
      "commit": "e559d5a4dc9989a77beb87b67deb22cad695e4d2",
      "tree": "631b2a3d16b936ee4fc91f5c8523468d0bf19185",
      "parents": [
        "bf274df76434cc7dec546a94664d4ed6ef31c19c"
      ],
      "author": {
        "name": "Tejas Pravinbhai Patel",
        "email": "31176477+tejas5038@users.noreply.github.com",
        "time": "Mon Sep 07 22:58:23 2026"
      },
      "committer": {
        "name": "Tejas Pravinbhai Patel",
        "email": "31176477+tejas5038@users.noreply.github.com",
        "time": "Mon Sep 07 22:58:23 2026"
      },
      "message": "RVV: test RearrangeToOddPlusEven after reload\n"
    },
    {
      "commit": "0b39ac7cc9f7d52d8b5666c2f8b35ad7368a45ab",
      "tree": "4d3978eeececd705684e6ca65e6e941cdad6571a",
      "parents": [
        "2530194e65aebeea79f690cccf96b1a38d0b572a"
      ],
      "author": {
        "name": "Tejas Pravinbhai Patel",
        "email": "31176477+tejas5038@users.noreply.github.com",
        "time": "Mon Sep 07 17:50:09 2026"
      },
      "committer": {
        "name": "Tejas Pravinbhai Patel",
        "email": "31176477+tejas5038@users.noreply.github.com",
        "time": "Mon Sep 07 17:50:09 2026"
      },
      "message": "ci: remove temporary crc64 validation workflow"
    },
    {
      "commit": "2530194e65aebeea79f690cccf96b1a38d0b572a",
      "tree": "8de8c554e8467864f44e583a6c5c2e2a7b7310b0",
      "parents": [
        "ed3c7f92208a4da52a2edc9f5ae808ac1babed51"
      ],
      "author": {
        "name": "Tejas Pravinbhai Patel",
        "email": "31176477+tejas5038@users.noreply.github.com",
        "time": "Mon Sep 07 17:49:31 2026"
      },
      "committer": {
        "name": "Tejas Pravinbhai Patel",
        "email": "31176477+tejas5038@users.noreply.github.com",
        "time": "Mon Sep 07 17:49:31 2026"
      },
      "message": "ci: validate crc64 example"
    },
    {
      "commit": "ed3c7f92208a4da52a2edc9f5ae808ac1babed51",
      "tree": "4d3978eeececd705684e6ca65e6e941cdad6571a",
      "parents": [
        "18e449b642599b8f51c03ca10173fdc59864e4f2"
      ],
      "author": {
        "name": "Tejas Pravinbhai Patel",
        "email": "31176477+tejas5038@users.noreply.github.com",
        "time": "Mon Sep 07 17:48:24 2026"
      },
      "committer": {
        "name": "Tejas Pravinbhai Patel",
        "email": "31176477+tejas5038@users.noreply.github.com",
        "time": "Mon Sep 07 17:48:24 2026"
      },
      "message": "examples: add SIMD CRC64 example"
    },
    {
      "commit": "bf274df76434cc7dec546a94664d4ed6ef31c19c",
      "tree": "a40293ffd814530f4d87380f4c4066a77d53538d",
      "parents": [
        "c9907e86281522dc678da8dda7b78261c9436f57"
      ],
      "author": {
        "name": "Jan Wassenberg",
        "email": "janwas@google.com",
        "time": "Mon Sep 07 16:08:28 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 07 16:09:18 2026"
      },
      "message": "remove temporary BitsFromMask(m) overload\n\nPiperOrigin-RevId: 977497181\n"
    },
    {
      "commit": "c9907e86281522dc678da8dda7b78261c9436f57",
      "tree": "30fa08f21f11fd94716ec062b9ccb10dc32d704c",
      "parents": [
        "beb479f63b1a58f387927c47ab75469d8f33ef41"
      ],
      "author": {
        "name": "Nikhil Dev Goyal",
        "email": "nikhildevgoyal@google.com",
        "time": "Mon Sep 07 14:32:32 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 07 14:33:21 2026"
      },
      "message": "[2] btree code and comments improvements\n\nPiperOrigin-RevId: 977467702\n"
    },
    {
      "commit": "beb479f63b1a58f387927c47ab75469d8f33ef41",
      "tree": "59d27d062967f023131323cd7d0281ddd84f12dd",
      "parents": [
        "18e449b642599b8f51c03ca10173fdc59864e4f2"
      ],
      "author": {
        "name": "Nikhil Dev Goyal",
        "email": "nikhildevgoyal@google.com",
        "time": "Mon Sep 07 14:28:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 07 14:29:48 2026"
      },
      "message": "[1] btree code and comments improvements\n\nPiperOrigin-RevId: 977466602\n"
    },
    {
      "commit": "18e449b642599b8f51c03ca10173fdc59864e4f2",
      "tree": "625dacea8834b80bb8b40d54d9298b95a9551d35",
      "parents": [
        "b4203c9547123fb806c81a61cce2c8e0d4ee45ea",
        "962cbf6cd36f4c0cfa7e6493ae41bbd5dc065478"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 18:42:52 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 18:42:52 2026"
      },
      "message": "Merge pull request #3351 from miladfarca:da39f74a-fix\n\nPiperOrigin-RevId: 976418712\n"
    },
    {
      "commit": "e4c0434a1c0cba2f42ae1aec43a7a63f02c2c16e",
      "tree": "01e8e00cdec1fdfad95f43816585c204f7b8899f",
      "parents": [
        "8f43301f0a3407ef041c76bbd34e3b2e9aba6ce4"
      ],
      "author": {
        "name": "aeee",
        "email": "ad8467826@gmail.com",
        "time": "Fri Sep 04 16:10:03 2026"
      },
      "committer": {
        "name": "aeee",
        "email": "ad8467826@gmail.com",
        "time": "Fri Sep 04 16:10:03 2026"
      },
      "message": "Fix avx3 CompressStore for partial vectors\n"
    },
    {
      "commit": "b4203c9547123fb806c81a61cce2c8e0d4ee45ea",
      "tree": "dfe84a2487a11765ed0324a4056544c7119f2ea5",
      "parents": [
        "6f04ce73076dd880ba7c613f7bac745216c5579d"
      ],
      "author": {
        "name": "Krzysztof Rymski",
        "email": "krymski@google.com",
        "time": "Fri Sep 04 15:58:09 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 15:59:54 2026"
      },
      "message": "Add support for unsigned-by-signed 8-bit integer matrix multiply-accumulate to 32-bit integer (`PerBlock2x2MatMul`) for ARM SVE (`svusmmla_s32`) and Neon (`vusmmlaq_s32`), along with unit test `TestUint8Int8PerBlock2x2MatMul`.\n\nPiperOrigin-RevId: 976342700\n"
    },
    {
      "commit": "6f04ce73076dd880ba7c613f7bac745216c5579d",
      "tree": "fb151d9e32bacafaa21dd8ac85ec0342ab545e1b",
      "parents": [
        "eecea5fb0550e611584deacc15b7165c1f65587a"
      ],
      "author": {
        "name": "Nikhil Dev Goyal",
        "email": "nikhildevgoyal@google.com",
        "time": "Fri Sep 04 14:27:14 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 14:27:55 2026"
      },
      "message": "Public API for Highway BTreeMap with runtime dynamic dispatch\n\nPiperOrigin-RevId: 976306531\n"
    },
    {
      "commit": "8f43301f0a3407ef041c76bbd34e3b2e9aba6ce4",
      "tree": "9df6a3c93eae36b856faa38fc75e14687fcd20c2",
      "parents": [
        "f43ba3f00e66ea5b02199a65d8d84b0fe208c66f"
      ],
      "author": {
        "name": "aeee",
        "email": "ad8467826@gmail.com",
        "time": "Fri Sep 04 13:06:57 2026"
      },
      "committer": {
        "name": "aeee",
        "email": "ad8467826@gmail.com",
        "time": "Fri Sep 04 13:06:57 2026"
      },
      "message": "algo_bench.cc: add L6 norm\n"
    },
    {
      "commit": "eecea5fb0550e611584deacc15b7165c1f65587a",
      "tree": "d6755b72b8cb001cf202a9a1673be953a10b4613",
      "parents": [
        "527d0a89620acd287f3e09c7ad98ccd6400eeef1",
        "dec1b6e603ec025f45c4dc841ecd5981d09e2909"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 12:32:15 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 12:32:15 2026"
      },
      "message": "Merge pull request #3350 from tvost2:feat/math-float-manip\n\nPiperOrigin-RevId: 976268429\n"
    },
    {
      "commit": "dec1b6e603ec025f45c4dc841ecd5981d09e2909",
      "tree": "d6755b72b8cb001cf202a9a1673be953a10b4613",
      "parents": [
        "df01bb528cf728f66d33b5dcfb0d37ad0ae29cf6"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Fri Sep 04 11:46:37 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Fri Sep 04 11:46:37 2026"
      },
      "message": "Address review: drop Ldexp/Scalbn and Fmod; smaller fixes\n\n- Ldexp/Scalbn removed -- MulByPow2 already covers x * 2^exp.\n- Fmod removed; the per-bit exponent-gap reduction can be very slow. Will\n  redo it word-at-a-time in a follow-up. This PR is now Ilogb/Logb/Modf/\n  NextAfter.\n- Ilogb: fold the zero and NaN special cases into one IfThenElse.\n- NextAfter: use IsEitherNaN(from, to).\n- test: ScalarIsNaN / ScalarIsInf instead of \u003ccmath\u003e; drop the leftover\n  debug fprintf and \u003cstdio.h\u003e.\n"
    },
    {
      "commit": "df01bb528cf728f66d33b5dcfb0d37ad0ae29cf6",
      "tree": "2806591288e9d37bb96c9fcddad8dd5dd758ba05",
      "parents": [
        "527d0a89620acd287f3e09c7ad98ccd6400eeef1"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Thu Sep 03 14:12:44 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Fri Sep 04 11:35:53 2026"
      },
      "message": "Add float decomposition ops to hwy/contrib/math\n\nNew float_manip-inl.h with Ldexp/Scalbn, Ilogb, Logb, Modf, NextAfter and\nFmod -- the \u003ccmath\u003e functions that take a float apart or rebuild it from its\nexponent and significand, rather than evaluate a transcendental. All are\nexact (0 ULP) for float32/float64 and handle subnormals, +/-0, +/-inf and\nNaN.\n\nFmod is computed from the integer significands (one masked reduction step\nper bit of the exponent gap), so it is exact for every input rather than\ncancelling a rounded quotient.\n\nfloat_manip_test checks each function bit-for-bit against the \u003ccmath\u003e\nreference over a grid of systematic magnitudes plus random bit patterns,\nand every pair for NextAfter/Fmod. Passes on AVX3/AVX2/SSE4/SSSE3/SSE2/\nEMU128; clang-format and -Wconversion/-Wsign-conversion clean.\n\nResolves the \"fmod, ilogb, logb, modf, nextafter, scalbn\" op_wishlist item.\n"
    },
    {
      "commit": "f43ba3f00e66ea5b02199a65d8d84b0fe208c66f",
      "tree": "ef0b39b059cbe6e700ddd96a5302fb01af44c61c",
      "parents": [
        "f503c485cec6b4f2f596fa60d83484797c9eeb5c"
      ],
      "author": {
        "name": "aeee",
        "email": "ad8467826@gmail.com",
        "time": "Thu Sep 03 14:53:50 2026"
      },
      "committer": {
        "name": "aeee",
        "email": "ad8467826@gmail.com",
        "time": "Fri Sep 04 08:18:40 2026"
      },
      "message": "faster Unique and AllUnique. Add algo_bench.cc\n"
    },
    {
      "commit": "527d0a89620acd287f3e09c7ad98ccd6400eeef1",
      "tree": "b12501626bf29f7d8246409f965625903a9134e8",
      "parents": [
        "f54f5fd0bb513b07a2e23d202935d9b665e648cf",
        "02c7e3d0e089179d29da1b46946a1e1e563cb02f"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 06:40:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 06:40:10 2026"
      },
      "message": "Merge pull request #3341 from tvost2:feat/iguana-ans-contrib\n\nPiperOrigin-RevId: 976132793\n"
    },
    {
      "commit": "962cbf6cd36f4c0cfa7e6493ae41bbd5dc065478",
      "tree": "a60fa3b13c0d2a2018de8f015a903e873b1ee1fd",
      "parents": [
        "f54f5fd0bb513b07a2e23d202935d9b665e648cf"
      ],
      "author": {
        "name": "Milad Fa",
        "email": "mfarazma@ibm.com",
        "time": "Thu Sep 03 16:41:04 2026"
      },
      "committer": {
        "name": "Milad Fa",
        "email": "mfarazma@ibm.com",
        "time": "Thu Sep 03 16:41:04 2026"
      },
      "message": "Fix\n"
    },
    {
      "commit": "02c7e3d0e089179d29da1b46946a1e1e563cb02f",
      "tree": "b69a1a6e49880521c6bddc5becf616e70bb2ee44",
      "parents": [
        "edd3b9abf0535fa097e2438d80fe03374b8c6f99"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Thu Sep 03 16:15:23 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Thu Sep 03 16:15:23 2026"
      },
      "message": "Address review: unroll ANS decode with a kNumVectors template\n\nThe vectorized decoder held its 16+16 rANS states in fwd0..fwd3 /\nrev0..rev3 vector locals but drove them through a V* const[4] array so\nthe loop bodies could stay index-based. Taking the address of a vector\nforces it onto the stack, so every access in the hot round was a\nload+store rather than a register op.\n\nMake the group count a template argument (Ans32DecodePayloadT\u003ckNumVectors\u003e)\nand guard each group with if constexpr, so every instantiation is\nstraight-line code over named locals with no addresses taken.\nAns32DecodePayload dispatches: a fixed target\u0027s Lanes(d) is constexpr so\nonly its one group count is instantiated; a scalable target instantiates\n1/2/4 and picks at runtime. Same shape vqsort uses.\n\nans_test: 10/10 on AVX2/SSE4/SSSE3/SSE2/EMU128; clang-format clean.\n"
    },
    {
      "commit": "f54f5fd0bb513b07a2e23d202935d9b665e648cf",
      "tree": "c262974f907716801e5ca5bf06c4d64933ed59cd",
      "parents": [
        "6891bce504c2c553c749c674eff5cbf7f3e1364a",
        "2c28ed43ab391ce4b539487098a5f1da00587749"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 03 16:10:35 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 03 16:10:35 2026"
      },
      "message": "Merge pull request #3340 from tvost2:feat/crc-contrib\n\nPiperOrigin-RevId: 975761326\n"
    },
    {
      "commit": "2c28ed43ab391ce4b539487098a5f1da00587749",
      "tree": "c262974f907716801e5ca5bf06c4d64933ed59cd",
      "parents": [
        "eda01d6b8c5eabf85de86d01b4a7b2eaac5af950"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Wed Sep 02 16:21:34 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Thu Sep 03 15:05:47 2026"
      },
      "message": "crc: Xor3 fusion; run on scalable targets too\n\nPer review (#3340):\n- Fuse the two Xor in the fold step into one Xor3.\n- Drop the !HWY_HAVE_SCALABLE / !HWY_TARGET_IS_SVE conditions -- the kernel\n  only holds Full128 vectors in named locals (no struct members / arrays),\n  so it works on scalable SIMD as-is. Guard is now just\n  HWY_TARGET !\u003d HWY_SCALAR (1 lane, no 16-byte block). crc_test has no guard\n  of its own, so the CLMUL fold path now runs on SVE/RVV too.\n\nStill passes on AVX3/AVX2/SSE4/SSSE3/SSE2/EMU128 locally; strict -Werror and\nclang-format clean.\n"
    },
    {
      "commit": "eda01d6b8c5eabf85de86d01b4a7b2eaac5af950",
      "tree": "1a3ed37d505459f532a20b0211b0331c0c32d907",
      "parents": [
        "6891bce504c2c553c749c674eff5cbf7f3e1364a"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Wed Sep 02 00:44:15 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Thu Sep 03 15:05:46 2026"
      },
      "message": "Add portable SIMD CRC-64/XZ to hwy/contrib/crc\n\nAddresses google/highway#3250 (\"Add CRC example\").\n\nThe bulk of the message is reduced with carryless-multiply folding\n(CLMulLower / CLMulUpper), which every Highway target provides - natively\nvia PCLMULQDQ / PMULL / vpmsumd, or through the portable emulation - so a\nsingle source runs everywhere. Folding constants (x^127 and x^191 mod P,\nbit-reflected) are derived at compile time; the 128-bit accumulator is\nfinished, along with the sub-16-byte head/tail, by a small bit-at-a-time\nreduction. HWY_SCALAR and the scalable targets use the bit-at-a-time path\ndirectly.\n\ncrc::Crc64Xz is a streaming API (pass the previous return value to\ncontinue) and returns the frozen catalogue check value 0x995DC9BBDF1939FA\nfor \"123456789\". crc_test checks that, every length 0..600 and a few\nlarger against an independent bit-at-a-time reference, and that chunked\ncalls equal a single call.\n\nCRC-32C and a Barrett final reduction are natural follow-ups.\n"
    },
    {
      "commit": "edd3b9abf0535fa097e2438d80fe03374b8c6f99",
      "tree": "18ec621c15e42248e8e242686d625e82125bf323",
      "parents": [
        "069ffc5dfc66d32df70667f79327a6c8a26180f9"
      ],
      "author": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Wed Sep 02 15:06:37 2026"
      },
      "committer": {
        "name": "tvost2",
        "email": "tvostrodrigues8@gmail.com",
        "time": "Thu Sep 03 11:42:39 2026"
      },
      "message": "Address review: HWY_NAMESPACE nesting, TruncateTo/MulAdd, scalable-target support, encapsulation, test RNG/AdjustedReps\n\nAddresses all comments from jan-wassenberg\u0027s review.\n\n- ans-inl.h: HWY_NAMESPACE moved innermost (hwy::iguana_ans::HWY_NAMESPACE\n  instead of hwy::HWY_NAMESPACE::iguana_ans), matching the convention in\n  quick_reference.md (\"user-defined functions reside in\n  project::[nested]::HWY_NAMESPACE\"). This meant unqualified Highway ops\n  no longer resolve via the enclosing-namespace walk that worked with the\n  old nesting (confirmed the hard way: g++ rejected VFromD/LoadU/etc. as\n  undeclared once the namespaces were swapped) -- added `namespace hn \u003d\n  hwy::HWY_NAMESPACE;` and qualified every op call with `hn::`, per the\n  first-choice option quick_reference.md itself lists for this.\n\n- DecodeLane: symbol bytes now go through TruncateTo(d8, ...) + one\n  StoreU instead of storing to a uint32_t buffer and truncating with a\n  scalar loop; the state update is MulAdd(freq, shr, bias) instead of\n  Add(Mul(...), ...) so ARM can fuse it.\n\n- ans.h / ans_detail.h (new): kAnsWordLBits/kAnsWordL/kAnsLanes/\n  kAnsCtrlBlockSize/kAnsDenseTableMaxLength moved out of the public\n  ans.h into a new private ans_detail.h, included by ans.cc and\n  ans-inl.h (both already needed it internally). kAnsWordMBits/kAnsWordM/\n  kAnsFreqMask stay in ans.h: AnsStatistics::Freq/CumFreq are defined\n  inline right there and need them in scope. Registered the new header\n  in BUILD, CMakeLists.txt, and meson.build alongside ans.h/ans-inl.h.\n\n- Scalable-target (RVV/SVE) support, the largest piece: state is now\n  held in up to 4 named vectors per half (fwd0..fwd3, rev0..rev3) rather\n  than VFromD\u003cD\u003e fwd[4] -- RVV/SVE vectors are sizeless types and can\u0027t\n  be array elements, which is exactly why every target used to fall back\n  to the scalar reference decoder. A fixed array of *pointers* to those\n  named vectors (V* const fwd[4] \u003d {\u0026fwd0, \u0026fwd1, \u0026fwd2, \u0026fwd3};) keeps\n  the loops below index-based and nearly unchanged from the original,\n  rather than fully hand-unrolling with if(nv\u003e1)/if(nv\u003e2) branches --\n  pointers are ordinary fixed-size objects regardless of what sizeless\n  type they point to. fwd/rev decode are fused into one loop and so are\n  fwd/rev renorm (the two halves are independent within a round, so\n  interleaving changes neither the result nor which bytes of pf/pr each\n  touches), per the \"can we fuse these loops\" comment.\n\n  HWY_SCALAR still gets a compile-time #if exclusion, but narrower than\n  before (was `HWY_TARGET \u003d\u003d HWY_SCALAR || HWY_HAVE_SCALABLE ||\n  HWY_TARGET_IS_SVE`, now just `HWY_TARGET \u003d\u003d HWY_SCALAR`) -- found by\n  actually trying to compile it with -DHWY_COMPILE_ONLY_SCALAR\u003d1, not\n  assumed: HWY_SCALAR\u0027s LoadU only supports D::kPrivateLanes\u003d\u003d1, so\n  RenormLane\u0027s Repartition\u003cuint8_t, Rebind\u003cuint16_t, D\u003e\u003e (a 2-lane type)\n  is a hard compile error there, independent of whether that code path\n  is ever reached at runtime -- C++ instantiates called templates\n  regardless of runtime reachability. Scalable targets don\u0027t have this\n  problem (genuine multi-lane SIMD, just unknown width until runtime),\n  so Ans32DecodePayload instead has a *runtime* check: if the actual\n  Lanes(d) doesn\u0027t divide 16 into at most 4 groups (only possible with\n  an unusually small hardware vector length), it calls\n  Ans32DecodePayloadScalar instead of using the fwd0..fwd3 slots that\n  wouldn\u0027t all exist.\n\n- ans_test.cc: MakeData\u0027s hand-rolled xorshift replaced with\n  RandomState/Random32 from test_util.h. TestRoundTripSizes now runs the\n  original small sizes unconditionally and wraps the \u003e1024 sizes in\n  AdjustedReps (shrinks them on debug/emulated/ARM/MSVC builds, leaves\n  release builds at the original sizes) so those don\u0027t risk timing out;\n  same treatment for TestRoundTripModels\u0027s larger inputs.\n\nTesting: no RVV/SVE hardware or cross-toolchain available in this\nenvironment, so the scalable-target path is not something I could\ncompile or run here -- written carefully against Highway\u0027s documented\nAPI contracts and the specific failure this same investigation surfaced\nfor HWY_SCALAR, but CI (or your own SVE/RVV testing) is the real check\nfor that part, not this description. What I could test, I did: compiled\nand ran ans_test.cc standalone (HWY_TEST_STANDALONE\u003d1, no gtest) via g++\n16.1 across every x86 target this machine supports -- AVX2, SSE4, SSSE3,\nSSE2 -- both before and after the scalable-target rewrite, all passing\nboth TestRoundTripSizes and TestRoundTripModels bit-exact against the\nscalar reference on every run. Also force-compiled with\n-DHWY_COMPILE_ONLY_SCALAR\u003d1 to confirm the HWY_SCALAR exclusion is\nactually necessary (it failed to compile without it) and correct with\nit (compiles and passes with it).\n"
    }
  ],
  "next": "069ffc5dfc66d32df70667f79327a6c8a26180f9"
}
