)]}'
{
  "commit": "64cf0de8c55d0cc299c8a98e0e4e953bc128de07",
  "tree": "0f8dc8d420c688ef6a59f0599e620efd3a3ec64d",
  "parents": [
    "1b1795055fa1292d059aeb4c1dcf8713d414f488"
  ],
  "author": {
    "name": "Alexey Bataev",
    "email": "a.bataev@outlook.com",
    "time": "Wed Oct 07 10:52:15 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Oct 07 10:52:15 2026 -0400"
  },
  "message": "[SLP][X86]Vectorize alternate fadd/fsub fused with fmul (fmaddsub/fmsubadd)\n\nExtend getAltInstrCost, so X86 can estimate the fmaddsub/fmsubadd forms\nwhen every lane fuses with a one-use fmul. For a tree with such a node,\ncount the fused node together with the fmul and ignore\nsplat/free-extract overhead in the VF\u003d2 instruction-count check,\nmatching the machine-level fma count in the scalar code.\n\nAssisted-by: Cursor\n\nReviewers: RKSimon, bababuck\n\nPull Request: https://github.com/llvm/llvm-project/pull/229268",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f47cc3888dd8a0b16d329a9520965a67e17af0e6",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/Analysis/TargetTransformInfo.h",
      "new_id": "427d8a27f72f4fabe3921ade1f53ec8d3410b8b4",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/Analysis/TargetTransformInfo.h"
    },
    {
      "type": "modify",
      "old_id": "004602490fbbdaa28ae9014982b121a3d24999c7",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/Analysis/TargetTransformInfoImpl.h",
      "new_id": "14e1bd80516ae015ad2c375a973349a6f0716180",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/Analysis/TargetTransformInfoImpl.h"
    },
    {
      "type": "modify",
      "old_id": "957384b83233bc95139816bb875ac368c0af1cb9",
      "old_mode": 33188,
      "old_path": "llvm/lib/Analysis/TargetTransformInfo.cpp",
      "new_id": "55255011aa48bba1ce2e4298767323aa2a4c9642",
      "new_mode": 33188,
      "new_path": "llvm/lib/Analysis/TargetTransformInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "7fb7b8fbb8aa627edde1a9b3dc3f859aedf62bd7",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/X86/X86TargetTransformInfo.cpp",
      "new_id": "d870a79a0e0a54567f189a91f4cbd1a2977d4a10",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/X86/X86TargetTransformInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "41fbcc77304fb2707fdf8a65440d44289aece35b",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/X86/X86TargetTransformInfo.h",
      "new_id": "160a71e1affbb49e9884d96c6052517171c5cd14",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/X86/X86TargetTransformInfo.h"
    },
    {
      "type": "modify",
      "old_id": "eb9bfb60e2de0e44c9d61f40ca3830779bde9243",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp",
      "new_id": "e2f487b3f0846c52c6a5b4b5a69048041e2d4dde",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp"
    },
    {
      "type": "modify",
      "old_id": "d4eaae8327332bd5d0ab95e9dcf8ad757ed1895f",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/SLPVectorizer/X86/fused-alt-fmul.ll",
      "new_id": "0d06cf3ab1947fdd180a29b342bec92b28936bcf",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/SLPVectorizer/X86/fused-alt-fmul.ll"
    }
  ]
}
