)]}'
{
  "commit": "5734d978d006a63f4eec6d76087ef8ac1664e30e",
  "tree": "ef1833a4529317a7f18c9b5b47c1a154778b5f76",
  "parents": [
    "6d5e051be9e133dbb15791ebe630b2218dde0657"
  ],
  "author": {
    "name": "Amina Chabane",
    "email": "amina.chabane@arm.com",
    "time": "Wed Feb 25 19:07:35 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Feb 25 19:07:35 2026 +0000"
  },
  "message": "[AArch64] Fix regression from “Fold scalar-to-vector shuffles into DUP/FMOV\" (#178227)\n\nRevised #166962.\n\nThis patch aims to fix the original compile time regression by\nrestricting the optimisation to run only on non-constant splats. Without\nthe guard, an infinite loop is caused because the\n`CONCAT(SCALAR_TO_VECTOR, zero)` folds back into the same `BUILD_VECTOR`\nand immediately re-enters `LowerBUILD_VECTOR`.\n\nThis patch was tested with the original TensorFlow reproduction provided\non the PR and shows a (very) slight improvement on compile-time.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9d68d9b34e96286248b8cb042e5d32b9b2409e5a",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/AArch64/AArch64ISelLowering.cpp",
      "new_id": "0a4622e79badab74c90ccd3f02f97b7a2192f1eb",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/AArch64/AArch64ISelLowering.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fdeba84d1fb2d36e99293a01895189995ce9ec1d",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/AArch64/aarch64-tensorflow-isel-regression.ll"
    },
    {
      "type": "modify",
      "old_id": "4ae341c7c5401d3449921e2bdc7f406e0dc0436b",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AArch64/aarch64-addv.ll",
      "new_id": "9b60e0bde5a909956df38cd4a41609ace1c8df49",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AArch64/aarch64-addv.ll"
    },
    {
      "type": "modify",
      "old_id": "604a4960f66d6e6961e22b23e1b88a6a741d7703",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AArch64/aarch64-matrix-umull-smull.ll",
      "new_id": "578a96aee6d599e3ba79a4e147bec7c6daba6091",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AArch64/aarch64-matrix-umull-smull.ll"
    },
    {
      "type": "modify",
      "old_id": "bae254bbd2104b21f28b82806d8312bf850cf14d",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AArch64/arm64-vector-insertion.ll",
      "new_id": "5af21da321d2acbc62ab1eb0d41959b194029120",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AArch64/arm64-vector-insertion.ll"
    },
    {
      "type": "modify",
      "old_id": "741dcf3ad4c2f98d5bdccbe9fb6ec9814d573756",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AArch64/bitcast-extend.ll",
      "new_id": "c68e55d7a8aefb30fc9a2c439c7250dc66a78566",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AArch64/bitcast-extend.ll"
    },
    {
      "type": "modify",
      "old_id": "b7dfb79477b6414ebdb1dd87204a19023daf910b",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AArch64/ctpop.ll",
      "new_id": "c2490c1e1b331bef0adcf1a046de5a5047a33a26",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AArch64/ctpop.ll"
    },
    {
      "type": "modify",
      "old_id": "adde5429a6d93d364371373b1ecfe80337232f5f",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AArch64/implicitly-set-zero-high-64-bits.ll",
      "new_id": "c7e22b2f4301d1d5c44497fbb91274da1d7ff70a",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AArch64/implicitly-set-zero-high-64-bits.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4e30813187fecee6438864231346558d3bafdba4",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AArch64/neon-lowhalf128-optimisation.ll"
    }
  ]
}
