)]}'
{
  "commit": "adb6efeac92ba13d65ecacc12f8f84e83a2286d0",
  "tree": "043afed751a02c823c5926c0bfe906e33e4bbea3",
  "parents": [
    "97d44e316676833c11be72111c944844862ae12a"
  ],
  "author": {
    "name": "Gaëtan Bossu",
    "email": "gaetan.bossu@arm.com",
    "time": "Tue Jul 15 11:39:09 2025 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jul 15 11:39:09 2025 +0100"
  },
  "message": "[SLP] Fix cost estimation of external uses with wrong VF (#148185)\n\nIt assumed that the VF remains constant throughout the tree. That\u0027s not\nalways true. This meant that we could query the extraction cost for a\nlane that is out of bounds.\n\nWhile experimenting with re-vectorisation for AArch64, we ran into this\nissue. We cannot add a proper AArch64 test as more changes would need to\nbe brought in.\n\nThis commit is only fixing the computation of VF and adding an assert.\nSome tests were failing after adding the assert:\n - foo() in llvm/test/Transforms/SLPVectorizer/X86/horizontal.ll\n- test() in\nllvm/test/Transforms/SLPVectorizer/X86/reduction-with-removed-extracts.ll\n- test_with_extract() in\nllvm/test/Transforms/SLPVectorizer/RISCV/segmented-loads.ll",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c61e1135524b651a076e391c907ae169ef3170f6",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp",
      "new_id": "31aec77db63c1fd7531d931ef503a258bf197a6d",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp"
    },
    {
      "type": "modify",
      "old_id": "ce26bd3b89392d475bc7730684c73d2dbbb0cf21",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/SLPVectorizer/RISCV/segmented-loads.ll",
      "new_id": "e800b5e016b74cccd9f911d90e9c6304bf7d809c",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/SLPVectorizer/RISCV/segmented-loads.ll"
    }
  ]
}
