)]}'
{
  "commit": "da15b8fc2e169788a965b08c8a7cc870072d71f3",
  "tree": "92520646d898ef1f5c179246ef64d71752d70b2b",
  "parents": [
    "04e78b4ddca78a47bfafdfd99b1f4016906819b1"
  ],
  "author": {
    "name": "David Green",
    "email": "david.green@arm.com",
    "time": "Wed Oct 29 07:47:41 2025 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Oct 29 07:47:41 2025 +0000"
  },
  "message": "[AArch64][GlobalISel] Add a constant funnel shift post-legalizer combine. (#151912)\n\nWe want to be able to produce extr instructions post-legalization. They\nare legal for scalars, acting as a funnel shift with a constant shift\namount. Unfortunately I\u0027m not sure if there is a way currently to\nrepresent that in the legalization rules, but it might be useful for\nseveral operations - to be able to treat and test operands with constant\noperands as legal or not.\n\nThis adds a change to the existing matchOrShiftToFunnelShift so that\nAArch64 can generate such instructions post-legalization providing that\nthe operation is scalar and the shift amount is constant.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b0601eb72ba3f8e730de9ea894fc83f783353cf3",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h",
      "new_id": "36cb90b1bc1340092e6bf8e165d3fb66d6d6fa39",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h"
    },
    {
      "type": "modify",
      "old_id": "47d5d68174b38271c62412e10025886ba021ae9f",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/Target/GlobalISel/Combine.td",
      "new_id": "119695e53c3cb74e782318609b4807484857a521",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/Target/GlobalISel/Combine.td"
    },
    {
      "type": "modify",
      "old_id": "1f104784a97ecdca2a5dc3aca004e3b991a475a9",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp",
      "new_id": "9ace7d65413ad3625cfb4890e662e399e2c9bba3",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp"
    },
    {
      "type": "modify",
      "old_id": "b3ec65cab51fae1ccf5a8ce0a56b9d2044126fd7",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/AArch64/AArch64Combine.td",
      "new_id": "278314792bfb95b63b48662182455e87deda8197",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/AArch64/AArch64Combine.td"
    },
    {
      "type": "modify",
      "old_id": "41f7ab89094ada90bd249f64d13e74786d628dbf",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AArch64/GlobalISel/split-wide-shifts-multiway.ll",
      "new_id": "480fcbd6a9788a5d1c8dd2a7d8ec825a16736ae0",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AArch64/GlobalISel/split-wide-shifts-multiway.ll"
    },
    {
      "type": "modify",
      "old_id": "12e8bf26c9eac863d3ca1c0813f5cb3d1467c18a",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AArch64/adc.ll",
      "new_id": "03f3cf192102dff80693067ff2996cacb69800ce",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AArch64/adc.ll"
    },
    {
      "type": "modify",
      "old_id": "765f6b77b41a97eee45099d40182f182eeebb6a7",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AArch64/fsh.ll",
      "new_id": "7f07ef476b8aa87ee910a0ab41556df2813179cf",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AArch64/fsh.ll"
    },
    {
      "type": "modify",
      "old_id": "f9fd2ad1b5b6c946727761a92acdf4a4c7c54403",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AArch64/funnel-shift.ll",
      "new_id": "90fb10258dffbe447c3033b5cffdb0fa07def690",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AArch64/funnel-shift.ll"
    },
    {
      "type": "modify",
      "old_id": "1cb92e46cbcd12e0ada7c9832d0d385e8b004235",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AArch64/rem-by-const.ll",
      "new_id": "87b11086e28d5e349e2cca2cc33443c4e492eb6b",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AArch64/rem-by-const.ll"
    }
  ]
}
