)]}'
{
  "commit": "43574226b712f94de17f07392a64282ac8ddab23",
  "tree": "2e7d65be7a5f9a57acf2f3fcd884a64a7fd13e57",
  "parents": [
    "499e1fbb358ec3d17197e234e5bbaeeca7367323"
  ],
  "author": {
    "name": "Elvis Wang",
    "email": "elvis.wang@sifive.com",
    "time": "Thu Aug 27 08:27:34 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Aug 27 00:27:34 2026 +0000"
  },
  "message": "[LV] Support EVL for partial reduction and VPExpressionRecipe. (#205741)\n\nThis patch adds the support for partial reduction with EVL tail-folding\nby not creating a new VPExpressionEVLRecipes but just changing the last\nexpressionRecipes from VPReductionRecipe to VPReductionEVLRecipe.\n\nCurrently, all partial reductions will be converted to\nVPExpressionRecipe\nwhen construction. So this patch also supports the VPExpressionRecipe\nfor EVL.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a72d69b998728b09fb07b6c5853a8243c84f81a0",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Vectorize/LoopVectorize.cpp",
      "new_id": "8ca56cb727423134edb4443601faf52b6407b5fd",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Vectorize/LoopVectorize.cpp"
    },
    {
      "type": "modify",
      "old_id": "fe1342e4309ab872c44bc08f5138cc586c99d0d9",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Vectorize/VPlan.h",
      "new_id": "7d2c2fa1bdd2346f3a1bb95070ae86182e07bd2a",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Vectorize/VPlan.h"
    },
    {
      "type": "modify",
      "old_id": "42e8d87125f153c5a9ac7ae82a7ecdb73c9161fc",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Vectorize/VPlanEVLTailFolding.cpp",
      "new_id": "9d8e55137025f206f1d73cdef1bab8258dcd010d",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Vectorize/VPlanEVLTailFolding.cpp"
    },
    {
      "type": "modify",
      "old_id": "c91ebcbfb0908dc59796b4f0b3f79467f87ea8bb",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp",
      "new_id": "047bcb3a0abdb2e666aa27c4b49b52336ab71aa2",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp"
    },
    {
      "type": "modify",
      "old_id": "20c330ea97c31ab9fee35ae5c229f5fa61258377",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-dot-product.ll",
      "new_id": "e99c68eeb66cd09396a3f6052fb80c391ff7f5e4",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-dot-product.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2b3cf2cd7da5cf4fdbad7a20e62f0cb5d335d606",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-with-predicate.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "73b204a715a940bbdc0b368d8d8b30c90e99ec0b",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e971ff766b0539850a32d69849d1eb83e3ab9ffc",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/LoopVectorize/VPlan/RISCV/partial-reduce-dot-product.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2daf7496a618e3e64a26b064b0444df0b22d743d",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/LoopVectorize/VPlan/RISCV/reductions-evl.ll"
    }
  ]
}
