)]}'
{
  "commit": "a1ca1cb9e0ca2daae4f3d87793e3c808e6b95a14",
  "tree": "7086c70a67b7ade56be17cd1b4e859ee50b10af0",
  "parents": [
    "aeabe9cbec0176b59963c64bb34fd6e2e67b86d8"
  ],
  "author": {
    "name": "Muzammiluddin Syed",
    "email": "muzasyed@amd.com",
    "time": "Mon Apr 20 18:09:02 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Apr 20 18:09:02 2026 -0400"
  },
  "message": "[GPU] Allow swizzle promotion for transpose linalg.generic producers (preshuffling prs 1/3) (#24086)\n\nThis PR is the first in a series of PRs meant to enable preshuffling for\nscaled gemms.\n\nCurrently, operands to be swizzled are skipped when producing\nSwizzleHintOps if their producer is a linalg::LinalgOp. This means that\ntranspose linalg.generic ops feeding into a matmul with SwizzleOperand\npromotion would never get XOR swizzle hints applied to their output\nbuffer.\n\nThis change adds an exception: transpose linalg.generic producers\n(identified via linalg::isaTransposeOpInterface) no longer exit early.\nFor a GEMM dispatch where the transpose is folded into memory access,\nthis does not produce any extra allocations, bufferization correctly\nrecognizes that the `tensor.empty` associated to the TransposeOp and the\nSwizzleHintOp are redundant and removes the copy.\n\nNon-transpose linalg.generic producers continue to get the early return\nwith lowering_config annotation as before.\n\nMade-with: Cursor\n\n---------\n\nSigned-off-by: Muzammiluddin Syed \u003cmuzasyed@amd.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7b8fab4b2d6989bf54a5baec8709381886b7345a",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_promote_matmul_operands.mlir",
      "new_id": "faa208c1fce51831f4dd6fa25fa2c6079d692862",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_promote_matmul_operands.mlir"
    },
    {
      "type": "modify",
      "old_id": "17ec04490fa6d630d719df7e244d1fcffb7e29ee",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/IR/PromotionImpls.cpp",
      "new_id": "edc9d63a3cbe15ef664ee5ed214c623fc2d6ae08",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/GPU/IR/PromotionImpls.cpp"
    }
  ]
}
