)]}'
{
  "commit": "130a05d2e3e5ca04780c6d7e417382d61e36688a",
  "tree": "656535e272a408dda7400fda5d570b1491f708f3",
  "parents": [
    "82d91083cb56c89d2cb8e9d56d4d69f07ac34fed"
  ],
  "author": {
    "name": "Nicolas Capens",
    "email": "capn@google.com",
    "time": "Tue May 31 12:03:56 2022 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue May 31 12:03:56 2022 -0400"
  },
  "message": "Fold multiply and subtraction into FMA with negation (#4808)\n\nThis change adds a folding rule which transforms x * y - a and a - x * y\r\ninto FMA(x, y, -a) and FMA(-x, y, a), respectively.\r\n\r\nWhile the SPIR-V instruction count remains the same, target instruction\r\nsets typically feature FMA instruction variants that can negate an\r\noperand. Also this transformation may unlock further optimizations which\r\neliminate the negation.\r\n\r\n(Google bug: b/226145988)",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ab7a20ef916a06ccae8df720dcacef940083a36a",
      "old_mode": 33188,
      "old_path": "source/opt/folding_rules.cpp",
      "new_id": "0d8f7c8f0bc2619f9039ac562d42ad9f0130fead",
      "new_mode": 33188,
      "new_path": "source/opt/folding_rules.cpp"
    },
    {
      "type": "modify",
      "old_id": "e2240b8375ff1f2937ecde1264fdde2edb6aa016",
      "old_mode": 33188,
      "old_path": "test/opt/fold_test.cpp",
      "new_id": "8ee14a93ddb321f801335ea7a539cb530d96528c",
      "new_mode": 33188,
      "new_path": "test/opt/fold_test.cpp"
    }
  ]
}
