)]}'
{
  "commit": "1bbd613e6267ea0a08994b56adc73cc7b2b5d07d",
  "tree": "fbe21a384bd1e707067f4e45140886b26b862b19",
  "parents": [
    "86350249871598fe76318ebd21af468879b9e87e"
  ],
  "author": {
    "name": "Aayush Shrivastava",
    "email": "79578660+iamaayushrivastava@users.noreply.github.com",
    "time": "Mon Jun 01 04:14:04 2026 +0530"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jun 01 06:44:04 2026 +0800"
  },
  "message": "[InstCombine] Fold lshr 1, X into zext (X \u003d\u003d 0) (#200669)\n\nThis PR implements the missed optimisation reported in #200538.\n\n`1 \u003e\u003e X` produces 1 only when X \u003d\u003d 0, and 0 for all other in-range\nvalues. Fold it directly into `zext (icmp eq X, 0)`.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3547a79df13557d5b6dab03656ed0d87aedf7005",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp",
      "new_id": "605d80f2be7de2a5acda609f27503cb22f48bda9",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp"
    },
    {
      "type": "modify",
      "old_id": "2907266fe26333a0ac0c6b777c07d9829c3e6cc8",
      "old_mode": 33188,
      "old_path": "llvm/test/Analysis/ValueTracking/recurrence-knownbits.ll",
      "new_id": "7b74da291ab5fbbf70579e7cde85e4e8eb368958",
      "new_mode": 33188,
      "new_path": "llvm/test/Analysis/ValueTracking/recurrence-knownbits.ll"
    },
    {
      "type": "modify",
      "old_id": "7437f984416499e516f40a9e32a56169e68b6381",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/InstCombine/and2.ll",
      "new_id": "0bc998591f69e5c878e2ab0b1a7bd9206096996a",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/InstCombine/and2.ll"
    },
    {
      "type": "modify",
      "old_id": "b00b3a289de477062c63c51f22b6d380502c4441",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/InstCombine/conditional-variable-length-signext-after-high-bit-extract.ll",
      "new_id": "ccccafdf5f3c78813c316ff7b2755f6057eee29b",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/InstCombine/conditional-variable-length-signext-after-high-bit-extract.ll"
    },
    {
      "type": "modify",
      "old_id": "ff358c6bc772a7fce2cb31d56e9aec81c9e367a6",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/InstCombine/lshr.ll",
      "new_id": "be78220ee47ea6087138f0435695d0778a538002",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/InstCombine/lshr.ll"
    },
    {
      "type": "modify",
      "old_id": "ebb53e36a3f2163aaf45482a81676eaa9b9e6fbe",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/InstCombine/shift-direction-in-bit-test.ll",
      "new_id": "5d63545b08e9ac796baf469947625a0b2897bd33",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/InstCombine/shift-direction-in-bit-test.ll"
    }
  ]
}
