)]}'
{
  "commit": "ac3e5af7921f493386282083614a3a89113d07f3",
  "tree": "c81085fbf6d3e788fc887384dbd068e01a63126b",
  "parents": [
    "e4945117a114b6c7568686f91bae2f2f56addc0b"
  ],
  "author": {
    "name": "Pooja Hemashekar",
    "email": "hemashekar@roofline.ai",
    "time": "Wed Jul 22 19:04:31 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jul 22 19:04:31 2026 +0200"
  },
  "message": "[Codegen] Materialize encoding info for convolution with NCHWc layout (#24714)\n\nImplements convolution encoding materialization for data-tiled layouts.\n\nLayouts:\n- Input:  [N, IC/c0, H, W, c0]\n- Filter: [OC/k0, IC/c0, FH, FW, c0, k0]\n- Output: [N, OC/k0, OH, OW, k0]\n\nwhere k0 and c0 are the inner tile sizes for the output and input\nchannels, respectively.\n\nScope:\n\n- Only 2D convolutions receive a data-tiled layout. \n- Grouped, depthwise, 1D, and 3D convolutions, and non-unit dilations,\nall materialize to the identity layout (existing un-tiled path, no\nbehavior change for these cases).\n   - Arbitrary strides are supported.\n- Supports packed rank-5 input/output and rank-6 filter tensors. Rank-4\ninput/output is also accepted when `N\u003d1` batch dimension has been folded\nby upstream passes.\n- Currently supports fp32 convolutions only.\n\nSupported input forms:\n- nhwc_hwcf\n- nchw_fchw\n- nhwc_fhwc\n\nAll are materialized to the same packed NCHWc layout above.\n\nArchitecture-specific inner tiles:\n\n| Architecture | Condition | Inner tile (OC, IC) | Target ISA |\n\n|--------------|-------------------|---------------------|-----------------|\n| x86-64 | float, `+avx512f` | `{16,16}` | `VFMADD*` (zmm) |\n| arm64 | float | `{8,8}` | `FMLA` (NEON) |\n\nAll other configurations materialize to the identity layout.\n\nLayout motivation can be found here:\nhttps://hackmd.io/@phemashekar/conv-dt-layout\n\n---\n\nCo-authored-by: Jelle Schuhmacher \u003cschuehmacher@roofline.ai\u003e\nCo-authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e\n\n---------\n\nSigned-off-by: Pooja Hemashekar \u003chemashekar@roofline.ai\u003e\nCo-authored-by: Jelle Schuhmacher \u003cschuehmacher@roofline.ai\u003e\nCo-authored-by: Ege Beysel \u003cbeyselege@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dbb4c96f0fd936d518355967f57dcd0f443424b8",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/test/BUILD.bazel",
      "new_id": "fbc1e5ace96e4326c9b144d3a52ab3e53a21eca5",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "c950ca2aff2f780593c90364b6878b675c8150b9",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/test/CMakeLists.txt",
      "new_id": "f3220e204a86b2e07a1cca58fc6e7a1262a709f8",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "48e00bc4b5cf48a3290a580fbe178097c6e9d239",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/test/materialize_encoding_conv_aarch64.mlir"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "78101cc35f1f2101e021ceeed4a378bacafa0c7e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/test/materialize_encoding_conv_x86_64.mlir"
    },
    {
      "type": "modify",
      "old_id": "70299ac07b59f49b5fa4181ce1d35968aa6ccb41",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/Codegen/Utils/BUILD.bazel",
      "new_id": "724165fb1bb7bf1dcff31d9aa1744314720220ad",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/Codegen/Utils/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "1870c9f2c47ed5cc20ecf189cc60513b6a53c1e5",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/Codegen/Utils/CMakeLists.txt",
      "new_id": "5f4ce3ae4ed0f97d2aee18380aee5dbf3c9c0df7",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/Codegen/Utils/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "beb9b590ef9758f92ebf240249a03e95e3ddeb5c",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/Codegen/Utils/Utils.cpp",
      "new_id": "d49aad4f901e2bc542e54ada937fbfa79cecc0b1",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/Codegen/Utils/Utils.cpp"
    },
    {
      "type": "modify",
      "old_id": "76f816af2019dd7515e00fc011d813c36e1623d0",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/Codegen/Utils/Utils.h",
      "new_id": "b9c509d3b2168ca9d8f0e7efb9b9efd2a7e83d5d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/Codegen/Utils/Utils.h"
    },
    {
      "type": "modify",
      "old_id": "e3d2324d01bf47a642b7344ae476eb1917f32a9e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/ExternalInterfaces/CPUEncodingExternalModels.cpp",
      "new_id": "7260db74db095ca8657bd407f4df31f36d6d2881",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/ExternalInterfaces/CPUEncodingExternalModels.cpp"
    },
    {
      "type": "modify",
      "old_id": "f993c71f465cd9d06feea15e9635e496c8b3ae26",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/specialize_encodings.mlir",
      "new_id": "36b0e0647d702839afd3a2287f819bd9dbf839a4",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/specialize_encodings.mlir"
    }
  ]
}
