)]}'
{
  "commit": "05347f8c2fde0cde2fd12f1ec3611eeaf666ece0",
  "tree": "53c70057603dcc29a71a9679ff097136246a1a64",
  "parents": [
    "80a0a067fb8cc3122f53083fd2fe20f9d5dfc5bf"
  ],
  "author": {
    "name": "Noah Goldstein",
    "email": "goldstein.w.n@gmail.com",
    "time": "Sat Mar 30 21:39:36 2024 -0500"
  },
  "committer": {
    "name": "Noah Goldstein",
    "email": "goldstein.w.n@gmail.com",
    "time": "Thu May 16 13:03:32 2024 -0500"
  },
  "message": "[ValueTracking] Compute knownbits from `(icmp upred (add/sub nuw X, Y), C)`\n\n`(icmp ule/ult (add nuw X, Y), C)` implies both `(icmp ule/ult X, C)` and\n`(icmp ule/ult Y, C)`. We can use this to deduce leading zeros in `X`/`Y`.\n\n`(icmp uge/ugt (sub nuw X, Y), C)` implies `(icmp uge/uge X, C)` . We\ncan use this to deduce leading ones in `X`.\n\nProofs: https://alive2.llvm.org/ce/z/sc5k22\n\nCloses #87180\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e07d14ccbb85c45d8728073ea240a641d61e9bca",
      "old_mode": 33188,
      "old_path": "llvm/lib/Analysis/ValueTracking.cpp",
      "new_id": "e8c5f9b3dc25d339089a4bde8f7095a37b3273fc",
      "new_mode": 33188,
      "new_path": "llvm/lib/Analysis/ValueTracking.cpp"
    },
    {
      "type": "modify",
      "old_id": "c00bdb78709539fb5a824b87604530ec312d6090",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/InstCombine/known-bits.ll",
      "new_id": "82cd24027e4e1bd0f88581c44d702ea08fedf943",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/InstCombine/known-bits.ll"
    }
  ]
}
