)]}'
{
  "commit": "e548eb628c689e2836e570aef98b9547aff97a02",
  "tree": "97c5478d5110b85ce32ee535ce9641a5b2c2977f",
  "parents": [
    "3ba687c78ac7e26cf2f26c01f4ab8439e439269f"
  ],
  "author": {
    "name": "Andrea Pinski",
    "email": "andrew.pinski@oss.qualcomm.com",
    "time": "Fri Sep 11 13:32:39 2026 -0700"
  },
  "committer": {
    "name": "Andrea Pinski",
    "email": "andrew.pinski@oss.qualcomm.com",
    "time": "Wed Sep 16 17:36:33 2026 -0700"
  },
  "message": "match: x+umax(x,1) -\u003e umax(x*2, 1) [PR127103]\n\nThis adds a simplification for `x+umax(x,1)` to `umax(x*2, 1)` when `x*2`\nis known not to overflow. This shows up with std::vector::push_back\nafter the patch which adds `x+minmax(a,b)` simplification; it is also\na special case of that patch for `umax and 1`.  This gives a small\ncode generation improvement with std::vector::push_back because we\ntrade an add after the umax with a shift beforehand.\n\nBootstrapped and tested on x86_64-linux-gnu.\n\n\tPR tree-optimization/127103\n\ngcc/ChangeLog:\n\n\t* match.pd (`x+umax(x,1)`): New pattern.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.dg/tree-ssa/max1-plus-1.c: New test.\n\nSigned-off-by: Andrea Pinski \u003candrew.pinski@oss.qualcomm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4059ed787f05ce474730b601c7336b1fca97810c",
      "old_mode": 33188,
      "old_path": "gcc/match.pd",
      "new_id": "82cf6ae0a3c62a30a02431a5a31bdebb61cfcf13",
      "new_mode": 33188,
      "new_path": "gcc/match.pd"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9fdf0a40cc4867f95f7371f583637675d42c44a5",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.dg/tree-ssa/max1-plus-1.c"
    }
  ]
}
