)]}'
{
  "commit": "ab963e88b83f5cf9788efbfcea3a7336d66da72a",
  "tree": "f98d69219d8620cea9240bd46670d0fc519cd990",
  "parents": [
    "b4c9e713fa40621c0f49b4a868a06d8bb6d06806"
  ],
  "author": {
    "name": "Iris Shi",
    "email": "0.0@owo.li",
    "time": "Mon May 11 22:51:38 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon May 11 22:51:38 2026 +0800"
  },
  "message": "[DAGCombiner] Fix abs(add) to abdu miscompile in foldABSToABD (#196782)\n\nThe abs(add(x, y)) → abdu(x, -y) fold added in #186659 is incorrect when\nboth operands are known non-negative and their sum does not overflow\nsigned.\n\nWhen both x and y are non-negative and `x + y \u003c 2^31`, `abs(x + y) \u003d x +\ny`, but `abdu(x, -y) \u003d 2^32 - y - x ≠ x + y`.\nFor example, `abs(add(0, 1)) \u003d 1`, but `abdu(0, -1) \u003d 0xFFFFFFFF`. \n\nRelated: #185467 #175801",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bf4d4cc261e42af6de8bfcf0f949fefcfb40e57c",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp",
      "new_id": "3d65c82f051a80ecde9292224525497a6a2a1eaf",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp"
    },
    {
      "type": "modify",
      "old_id": "5948af563d1526d51ce041167a5a728a9525dece",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/X86/abds.ll",
      "new_id": "a3056e942664362d946b88ca53edacc856ceda44",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/X86/abds.ll"
    }
  ]
}
