)]}'
{
  "commit": "d5998d61eef27c98baa0307b2302e2475b9a3d64",
  "tree": "8d784ad135b980625944ff1b8561631d98c08438",
  "parents": [
    "4c2792d30138f029c9d068003c6789075855fd28"
  ],
  "author": {
    "name": "Tamar Christina",
    "email": "tamar.christina@arm.com",
    "time": "Wed Jun 03 09:42:15 2026 +0100"
  },
  "committer": {
    "name": "Tamar Christina",
    "email": "tamar.christina@arm.com",
    "time": "Wed Jun 17 12:48:06 2026 +0100"
  },
  "message": "vect: gate COMPLEX_MUL on FP_CONTRACT_FAST [PR125431]\n\nThe checks for FP_CONTRACT_FAST were in the wrong place for complex_mul.\n\nThe location it was in would only block FMA but not MUL.  It would also not\nreally reject the forming of the FMA, it would just create an invalid collection\nof nodes which would fail analysis later on.\n\nHowever complex multiplication is also a contraction, since it\u0027s doing\n\nreal \u003d a*c - b*d\nimag \u003d a*d + b*c\n\nThis moves the checks up to earliest possible location and actually just returns\nand adds the missing check for FMS.\n\ngcc/ChangeLog:\n\n\tPR tree-optimization/125431\n\t* tree-vect-slp-patterns.cc (complex_mul_pattern::matches,\n\tcomplex_fms_pattern::matches): Gate on FP contraction.\n\ngcc/testsuite/ChangeLog:\n\n\tPR tree-optimization/125431\n\t* gfortran.dg/vect/pr125431.f90: New test.\n\n(cherry picked from commit 074ed30c2382f163b74e98baa4c242a721c57519)\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fe11b5eface9978c916783619677a10a7759c43d",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gfortran.dg/vect/pr125431.f90"
    },
    {
      "type": "modify",
      "old_id": "0976258a36d080693e3ff2f41d57ca7f6c053907",
      "old_mode": 33188,
      "old_path": "gcc/tree-vect-slp-patterns.cc",
      "new_id": "9eb1478c4cc59c6297ae346f42140ae69fb27572",
      "new_mode": 33188,
      "new_path": "gcc/tree-vect-slp-patterns.cc"
    }
  ]
}
