)]}'
{
  "commit": "78d4a2cdaa3c2780f4e558c1f67582fb565affaf",
  "tree": "ffc246728a88246d330e8eedb5fb8d4dfe123b8f",
  "parents": [
    "1c72ccf3bb6770fbc0fd4b01c0fc5e920edbf971"
  ],
  "author": {
    "name": "Kunwar Grover",
    "email": "groverkss@gmail.com",
    "time": "Thu Apr 16 15:11:38 2026 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Apr 16 14:11:38 2026 +0000"
  },
  "message": "[LinalgExt] Add mask operand to linalg_ext gather/scatter (#24126)\n\nCurrently gather/scatter operations have no way of representing masked\nread/writes. For gather, this can be bypassed by reading from a sentinel\nvalue like 0, but for scatter, this is impossible. Scatters generally\nneed masking to be correct.\n\nThis is generally required in LLM models where the input tokens may be\npadded and some of them may need to be masked out accordingly before\nwriting to the KVCache (masked tokens shouldn\u0027t contribute to anything).",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b6c9c8cac4916464d336ce8b7d10a192eeb9bdce",
      "old_mode": 33188,
      "old_path": "compiler/plugins/input/StableHLO/Conversion/StableHLOToLinalgExt.cpp",
      "new_id": "448ca99b3bda75e0b099430a422ce003d2146de0",
      "new_mode": 33188,
      "new_path": "compiler/plugins/input/StableHLO/Conversion/StableHLOToLinalgExt.cpp"
    },
    {
      "type": "modify",
      "old_id": "4b706bcb90733ef61c088f41dee2f74b05ccc488",
      "old_mode": 33188,
      "old_path": "compiler/plugins/input/TOSA/InputConversion/TosaToLinalgExt.cpp",
      "new_id": "dbb5a00cf3888572b713fd0eb708de90ed5ce16a",
      "new_mode": 33188,
      "new_path": "compiler/plugins/input/TOSA/InputConversion/TosaToLinalgExt.cpp"
    },
    {
      "type": "modify",
      "old_id": "8ef8d72e4b2ae6c9463f11d64d665301633a956a",
      "old_mode": 33188,
      "old_path": "compiler/plugins/input/Torch/InputConversion/ConvertTMTensorToLinalgExt.cpp",
      "new_id": "85121b5cc48c92bfb5004a605a29a6398948e96d",
      "new_mode": 33188,
      "new_path": "compiler/plugins/input/Torch/InputConversion/ConvertTMTensorToLinalgExt.cpp"
    },
    {
      "type": "modify",
      "old_id": "077748420b307beacf8e0f99394b8720ea4de7ac",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUConvertToCoalescedDMA.cpp",
      "new_id": "1148f25ef4a2ea0726d31bfbcc129ff50529cd67",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUConvertToCoalescedDMA.cpp"
    },
    {
      "type": "modify",
      "old_id": "ce040b9cce3ce731c20ae2061c56b999b148565a",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/TypePropagation.cpp",
      "new_id": "60c7bcdd4cbaec6394f9a9488e4447161ed1cc5b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/TypePropagation.cpp"
    },
    {
      "type": "modify",
      "old_id": "77c01e8b17e2001def1e682c06edd8f6e07c0b5b",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/test/type_propagation.mlir",
      "new_id": "64662cc7f520dc049aee305276352e2f677f006d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/test/type_propagation.mlir"
    },
    {
      "type": "modify",
      "old_id": "7b5d2aa346de59d762dfc6d6c67320c67da35d63",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/VectorExt/Transforms/test/vectorize_vector_ext_ops.mlir",
      "new_id": "a782891d4d3cdbeb97e5e2040d2f10b757b56a60",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/VectorExt/Transforms/test/vectorize_vector_ext_ops.mlir"
    },
    {
      "type": "modify",
      "old_id": "10e85713a72dcaeaff479924af54a3ebcfe0542f",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Interfaces/VectorizableOpInterface.cpp",
      "new_id": "5d05601f738808f7dbb92ae7ac76e6e0f9b93854",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Interfaces/VectorizableOpInterface.cpp"
    },
    {
      "type": "modify",
      "old_id": "a10cfbc52f0c9f979b38d34e03e56d747527c68c",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtOps.cpp",
      "new_id": "316338edcc30e1709105249ccb88efbae6eeda30",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "01f198d40a3a273e05334672e42e23ae16f0f5a9",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtOps.td",
      "new_id": "980c0bc7dc9272cc1b2501579c434b03f7f2a9bf",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtOps.td"
    },
    {
      "type": "modify",
      "old_id": "35b0ea09019c0b5601eac3c01871ccbbaefa1455",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/TilingInterfaceImpl.cpp",
      "new_id": "5ef01ea148733153c998c478f09640e4bca50f81",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/TilingInterfaceImpl.cpp"
    },
    {
      "type": "modify",
      "old_id": "5529e9453c14fd6ea5f6ef562166c6afa71523ff",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/test/invalid.mlir",
      "new_id": "c32946494e5bc516cf3f0b3ce528ae8f5f74c355",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/test/invalid.mlir"
    },
    {
      "type": "modify",
      "old_id": "691f9dfce7fe7df6f7f711d913b248831966c5d5",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/test/roundtrip.mlir",
      "new_id": "ba9e9452a11efeeed05f8ee9aa6eab2fe3e1e7f8",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/test/roundtrip.mlir"
    },
    {
      "type": "modify",
      "old_id": "6aff8ab72e77c0afc2c3bb75b080aecf3be8c1e2",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/ReshapeFusion.cpp",
      "new_id": "0a540ab23c5a6ffa20942f6e79c2c0abe11f6916",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/ReshapeFusion.cpp"
    },
    {
      "type": "modify",
      "old_id": "11e8f6a45c2e01c52ddc111270a08febfa97c4f6",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/test/convert_to_loops.mlir",
      "new_id": "7af867dcbdc6102711642defc72ac31ebb4f0322",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/test/convert_to_loops.mlir"
    },
    {
      "type": "modify",
      "old_id": "bc79e8370eaefef4ede48c3863a2a243a08e403a",
      "old_mode": 33188,
      "old_path": "tests/e2e/linalg_ext_ops/gather.mlir",
      "new_id": "f2660383f0a9182fd1818c87f86ebff356c326d3",
      "new_mode": 33188,
      "new_path": "tests/e2e/linalg_ext_ops/gather.mlir"
    },
    {
      "type": "modify",
      "old_id": "8980f209b972273a8f14a139d56c415b6d3d136f",
      "old_mode": 33188,
      "old_path": "tests/e2e/linalg_ext_ops/scatter.mlir",
      "new_id": "099dbed6dfdc07ebb06c44d75a3051544e52ef3d",
      "new_mode": 33188,
      "new_path": "tests/e2e/linalg_ext_ops/scatter.mlir"
    }
  ]
}
