)]}'
{
  "commit": "0c53a89b228a2c1b4d2d02cb80d674b2b20a9c7c",
  "tree": "8659c6ff59dfa0d331cb03aef8faa6c3e9fcfadc",
  "parents": [
    "8d625621eb5ddc1e0e1e0a06af03b9e076c1d642"
  ],
  "author": {
    "name": "Brian Cain",
    "email": "brian.cain@oss.qualcomm.com",
    "time": "Wed Feb 25 13:55:32 2026 -0600"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Feb 25 11:55:32 2026 -0800"
  },
  "message": "[Hexagon] Fix truncation to boolean vector that need widening (#182528)\n\nWhen truncating a sub-HVX-width vector to a boolean vector (e.g., v64i8\n-\u003e v64i1 in 128-byte HVX mode), the operation would crash with\n\"Unhandled HVX operation\" UNREACHABLE. This happened because the\ncondition in LowerHvxOperationWrapper/ReplaceHvxNodeResults did not\nhandle the case where the input vector needs widening and the result is\na boolean vector.\n\nThe fix adds WidenHvxTruncateToBool which widens the input to HVX\nregister width (e.g., v64i8 -\u003e v128i8), performs the truncate to widened\nbool type (v128i8 -\u003e v128i1), extracts the result subvector (v128i1 -\u003e\nv64i1).\n\nThis allows the widened truncate to match the existing V6_vandvrt\npattern in HexagonPatternsHVX.td.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a420c854bd0fc6ade2842d5049ec35170e205b86",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/Hexagon/HexagonISelLowering.h",
      "new_id": "55be8fd043ad5751c9778aebd5fd15e36da55fca",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/Hexagon/HexagonISelLowering.h"
    },
    {
      "type": "modify",
      "old_id": "5ca55a7935d98963a5c2693a25facb2bca482e29",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp",
      "new_id": "385c2520f46d9c2bbc2d22946e05450f86e74ffb",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp"
    },
    {
      "type": "modify",
      "old_id": "a4b8d895672a08b8d859d87cb32da28ee4d97fbb",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/Hexagon/HexagonPatternsHVX.td",
      "new_id": "164a76c55090ebc0a58a73f4e2571ba3955dd146",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/Hexagon/HexagonPatternsHVX.td"
    },
    {
      "type": "modify",
      "old_id": "1491729a17f30cf84c6226aecbe1e1f22b01b85b",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/Hexagon/isel/trunc-vNi1-HVX.ll",
      "new_id": "057d0788dfb0a2a5e1daed32ad4d87c26cac5ee5",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/Hexagon/isel/trunc-vNi1-HVX.ll"
    }
  ]
}
