)]}'
{
  "commit": "15df0ca2f9c8854dc0985f557b00a38b2d0af137",
  "tree": "b0f0c53cd24f1aec3d22963f4a290accac6fe8e0",
  "parents": [
    "e4798e75ccbc6f09e5b588713e82edc224f4b22a"
  ],
  "author": {
    "name": "L-roro",
    "email": "115032777+L-roro@users.noreply.github.com",
    "time": "Fri Jul 10 12:57:10 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jul 10 12:57:10 2026 +0200"
  },
  "message": "[Hexagon] Use word splats for repeated HVX build-vector words (#204808)\n\nbuildHvxVectorReg packs small element vectors into i32 words before\nusing the most frequent word to initialize the HVX vector. For i8/i16\nresult vectors, the old lowering created SPLAT_VECTOR with the final\nvector type, which selected a byte or halfword splat and broadcast only\nthe low part of the packed word.\n\nThe idea is to build the splat as a vector of i32 words first, then\nbitcast back to the final vector type. This preserves the full packed\nword while keeping normal byte and halfword scalar splat lowering\nunchanged.\n\nThe test covers packed-word i8 and i16 cases, and also checks that true\ni8/i16 scalar splats still lower to byte/halfword splats.\n\nAfter testing with the SDK simulator, it looks to me like a larger\n16-byte repeated-pattern case is still miscompiled after this change. It\nappears to be a broader issue in this build-vector construction path, so\nmaybe this should be addressed in a different way that could fix all\ncases and not only these specific ones. Please let me know what you\nthink.\n\nI have used AI for this proposal. The bug was originally found after\nrunning llvm-reduce on a large ll that had a completely unrelated bug.\n\nCo-authored-by: L-roro \u003crodriguez@roofline.ai\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fca33480265ad90a30c039757dda940abc825bd2",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp",
      "new_id": "b36c0b4e2faaf5a1d1a0c8873f0951e127d2b68c",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bc3ffd688cdd916b169a74b7eb16e91a5afc90b6",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/Hexagon/autohvx/isel-build-vector-splat-word.ll"
    }
  ]
}
