)]}'
{
  "commit": "be831e2a674397bea730c56d4a2c9ffd150a74c9",
  "tree": "788b32dcc79f55d5dce164bdb3e110f3e761acb7",
  "parents": [
    "1737a913ed015796c9ba843de6c410c727070022"
  ],
  "author": {
    "name": "Craig Topper",
    "email": "craig.topper@sifive.com",
    "time": "Tue Apr 14 08:00:31 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Apr 14 08:00:31 2026 -0700"
  },
  "message": "[TargetLowering] Prevent expandVectorFindLastActive from creating illegal vector types during vector op legalization. (#190914)\n\nThis code needs to create a step vector but we only have a mask vector\ntype. If the step vector is too large it might not be an MVT. This\ncauses the getSimpleVT() call for getTypeAction to fail. We can replace\nthat with the EVT version of getTypeAction, but we\u0027ll still fail trying\nto legalize the vselect. The getOperationAction query will return Expand\nfor non-simple VTs. ExpandVSELECT will try to unroll the vselect which\nwill fail for scalable vectors. We could hack that to not unroll\nscalable vectors, but that would be a hack.\n\nTo fix this, split the FIND_LAST_ACTIVE into two if the step vector\nneeds to be split. Those will recursively legalize and eventually arrive\nat a size we can create a valid step vector for.\n\nOne existing test changes because it created an illegal type which\nhappened to still be an MVT. This allowed getOperationAction to return\nLegal, even though the type isn\u0027t legal.\n\nFixes the assertion mentioned in #187458.\n\nAssisted-by: Claude Sonnet 4.5",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3989cf83289fcb1aa493f7cc33f67edde1666240",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp",
      "new_id": "e6aa222425d135337957f3b023ac6d0475127f5d",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp"
    },
    {
      "type": "modify",
      "old_id": "5fba397839cc7ee3f01badc8eac20c93795093fd",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/rvv/vector-extract-last-active.ll",
      "new_id": "b40fb3c6efa40f384f85eb66782436d4544d20af",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/rvv/vector-extract-last-active.ll"
    }
  ]
}
