)]}'
{
  "commit": "2b4e89bc254dab3f18b59cd275519d256267b88e",
  "tree": "cb265809eae8937d626c0eaa1d972c74cc506253",
  "parents": [
    "9623ae8878b1d2d7ff39f9ce5c30e8bf82dd1896"
  ],
  "author": {
    "name": "Simon Pilgrim",
    "email": "llvm-dev@redking.me.uk",
    "time": "Fri Jun 12 13:13:28 2026 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jun 12 12:13:28 2026 +0000"
  },
  "message": "[X86] combineConcatVectorOps - concat(permi(x,imm0),permi(y,imm1)) -\u003e vpermv3(widen(x),m,widen(y)) (#203508)\n\nAdd handling for X86ISD::VPERMI nodes with different immediates -\nfolding to a X86ISD::VPERMV3 instead, replacing a\nINSERT_SUBVECTOR+2xPERMI nodes with a mask load\n\nWe don\u0027t need to concat the source operands - we have other folds that\nwill do this if beneficial - we just rely on (free) implicit widening.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "899b7645b4c149fb876e61d407e45b16a0a86517",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/X86/X86ISelLowering.cpp",
      "new_id": "2a12246829a40ea9fe52c331a92a00febc349c9d",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/X86/X86ISelLowering.cpp"
    },
    {
      "type": "modify",
      "old_id": "3311a311c8e46241e04c089bbe5dc3359d9e3081",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-5.ll",
      "new_id": "2a44fc2a596dba1a9607f5075b34c27a4f877292",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-5.ll"
    },
    {
      "type": "modify",
      "old_id": "bc7ed7552e77c4ad9b40ba6c6576aabe7abd1a6c",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-6.ll",
      "new_id": "e89c6aebd873925f683808816131dedb67acb632",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-6.ll"
    },
    {
      "type": "modify",
      "old_id": "05bd6199dcd3dfe554570dc1e644ef8b2ff21ef4",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-7.ll",
      "new_id": "6ca879d3c6469010a7459afd8e21199a4d14ffdb",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-7.ll"
    },
    {
      "type": "modify",
      "old_id": "9c0e1d07f7c51c0aa1847655740ed7487d115459",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-5.ll",
      "new_id": "35943547270188dcd5ab432c543bb0cfc5a19e4a",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-5.ll"
    },
    {
      "type": "modify",
      "old_id": "d6c65fa82fa6c1eced48eb729353e5296bc4adb1",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-6.ll",
      "new_id": "f46636141c7a300ebcdcf9764222bba6fd985429",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-6.ll"
    },
    {
      "type": "modify",
      "old_id": "80151358c8316055dfd09a467b999bbef3fd2e7e",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll",
      "new_id": "ee5cb85e8d646d2a0237a81433b40b86c402ba98",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll"
    },
    {
      "type": "modify",
      "old_id": "9cdbce354ad374f074097bdc0eab5527bf8fea3b",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/X86/vector-shuffle-combining-avx512f.ll",
      "new_id": "1b127ed33f050593397dcd0677b5ef8c5ad9a065",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/X86/vector-shuffle-combining-avx512f.ll"
    }
  ]
}
