)]}'
{
  "commit": "c3a86ff2d0b397d757345fad7e29c2a6e7dbc823",
  "tree": "1c6f3436ac1cc1e8d7cc4d9f915c1778725a3e6b",
  "parents": [
    "476492bd1638eaa1e1a5a845307f25ac966d0fe3"
  ],
  "author": {
    "name": "Brian Cain",
    "email": "brian.cain@oss.qualcomm.com",
    "time": "Mon Feb 23 16:46:15 2026 -0600"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Feb 23 16:46:15 2026 -0600"
  },
  "message": "[Hexagon] Fix extractHvxSubvectorPred shuffle mask for small predicates (#181364)\n\nThe loop generating the shuffle mask in extractHvxSubvectorPred used\nHwLen/ResLen as the iteration count, but each iteration produces 8\nelements (ResLen * Rep where Rep \u003d 8/ResLen). This means the total mask\nsize was (HwLen/ResLen) * 8, which only equals HwLen when ResLen \u003d\u003d 8.\nFor smaller predicate subvectors (e.g., \u003c4 x i1\u003e or \u003c2 x i1\u003e), the mask\nwas too large, causing an assertion failure in getVectorShuffle.\n\nFix by using HwLen/8 as the loop bound, which correctly produces HwLen\nelements regardless of ResLen.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "877e6ee4f9a60c20cee102193e9ff544dd53197d",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp",
      "new_id": "151a3a32c7da9d446d5e86a6b6d220ba055f8076",
      "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": "2e88dab7e496ef675b7715b82b5176dcb8b5ecb1",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/Hexagon/extract-hvx-subvector-pred-small.ll"
    }
  ]
}
