)]}'
{
  "commit": "dc9601f88654749456c7cee4ae87e13de2654e1e",
  "tree": "31945f1bcbc3b1740fef994e0041c2f5ff263823",
  "parents": [
    "f2bcea10ee5782edc886119044a23acb79e6fba6"
  ],
  "author": {
    "name": "Eylon Eliyahu Krause",
    "email": "64223519+EylonKrause@users.noreply.github.com",
    "time": "Mon Jul 20 23:09:04 2026 +0300"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jul 20 22:09:04 2026 +0200"
  },
  "message": "[LinalgExt] Fix WinogradInputTransformOp::verify incorrect dim-1 dynamic check (#24679)\n\n### Problem\n`WinogradInputTransformOp::verify` never validates the size of input\ndimension 1 for rank-2 inputs.\n\n### Root cause\n```cpp\nif ((!inputType.isDynamicDim(0) \u0026\u0026\n     inputType.getDimSize(0) \u003e getInputTileSize()) ||\n    (inputType.isDynamicDim(1) \u0026\u0026              // \u003c-- missing `!`\n     inputType.getDimSize(1) \u003e getInputTileSize())) {\n  return op-\u003eemitOpError(\"expected input dims not greater than input tile \"\n                         \"size if input is of rank 2\");\n}\n```\nThe dim-0 clause guards with `!isDynamicDim(0)`, but the dim-1 clause is\nmissing the `!`, which makes it dead:\n- if dim 1 is **static**, `isDynamicDim(1)` is false, so the clause\nshort-circuits and the static size is never compared;\n- if dim 1 is **dynamic**, `getDimSize(1)` is `ShapedType::kDynamic`\n(`INT64_MIN`), and `INT64_MIN \u003e getInputTileSize()` (a small positive\ntile size) is always false.\n\nSo a rank-2 input whose static dim 1 exceeds the input tile size is\nsilently accepted, contradicting the op\u0027s own diagnostic (`expected\ninput dims not greater than input tile size if input is of rank 2`).\n`verifyCompatibleShape` a few lines below only constrains the output\nshape, so nothing else catches it.\n\n### Fix\nAdd the missing `!`, mirroring the dim-0 clause one line above.\n\n### Testing\nStatic reasoning only (no local build). I\u0027m happy to add a\n`--verify-diagnostics` case to `Dialect/LinalgExt/IR/test/invalid.mlir`,\nbut there is currently no rank-2 `winograd.input_transform` example\nin-tree to mirror, so I left the test out of this minimal one-character\nfix — glad to add one if you\u0027d like.\n\n---------\n\nSigned-off-by: Eylon Krause \u003ceylon1909@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6bb7fe04d7cd8c8b7fa207ef5ec9f2b7f8670666",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtOps.cpp",
      "new_id": "0016d82c88c992e1177538dd69bf0fd383d5f19f",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "38db7089eec007a52fd514e895b9a0834d89afa7",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/test/invalid.mlir",
      "new_id": "466077b83a0b152ce41b012acafe3437b0fb4303",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/LinalgExt/IR/test/invalid.mlir"
    }
  ]
}
