)]}'
{
  "commit": "5d9eaeed92bbdd3102ba06e50686b5470df016c0",
  "tree": "d01fab5a06df376a9522758b99ba91ee817ef46b",
  "parents": [
    "4495c739b3e5376aba933a8b402e225994b91b82"
  ],
  "author": {
    "name": "Benoit Jacob",
    "email": "jacob.benoit.1@gmail.com",
    "time": "Thu Jun 11 11:19:01 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Jun 11 11:19:01 2026 -0400"
  },
  "message": "[Codegen][CPU] Seed C-bitcode ukernel framework with bf16 and i8 seeds. (#24567)\n\nAdds compiler/plugins/target/LLVMCPU/builtins/ukernel/, the new home for\nLLVMCPU-only C microkernels. Modelled after the ROCM C ukernel framework\n(compiler/plugins/target/ROCM/builtins/ukernel/): compile each ukernel\nto LLVM bitcode, embed those .bc files into iree-compile, and emit them\nas self-contained `hal.executable_object`s on dispatch variants —\ndistinct from the legacy mmt4d ukernels under runtime/, which serve a\nnow-defunct VMVX path and are built twice.\n\nThis first commit lands the scaffolding plus two inner-K-loop seeds with\nstub bodies (filled in by a later commit):\n* `iree_uk_mma_x86_avx512bf16_1x16x2_f32_bf16.c` (bf16 x bf16 -\u003e f32)\nand `iree_uk_mma_x86_avx512vnni_16x16x2_i32_i8_casti16.c` (i8 x i8 -\u003e\ni32 via VNNI), plus `common.h` (no-stdlib stdint replacements);\n* `iree_bitcode_library` + `iree_c_embed_data` rules, driven by a\n`(stem, features, copts)` table so adding a seed is one row (CMake\nregenerated; `iree_bitcode_library` in `bazel_to_cmake_converter.py`\nextended to forward `out`, so the embedded filename is\n`\u003cname\u003e.\u003carch\u003e_\u003cfeatures\u003e.bc`);\n* a `README.md` design doc covering scope, build, IR representation,\nend-to-end flow, and authoring/test guidance;\n* `#iree_cpu.ukernel_provider`, the CPU analogue of\n`#rocm.ukernel_provider`, declared in `IREECPUAttrs.td`/`.cpp` with a\n`createAndReplaceWithUkernelOp` that currently delegates to the default\n`LowerBitcodeUKernelsPass` fallback. Specialized `inner_tiled` handling\n(threading `intrinsics_{m,n,k}` and the outer K count) will land in a\nfollow-up alongside `SelectUKernels` and pipeline integration.\n\nTests:\n* roundtrip lit test for the new `#iree_cpu.ukernel_provider` attribute;\n* lit tests running `--iree-codegen-lower-bitcode-ukernels` on ops\ncarrying both `iree_codegen.ukernel \u003d \"...\"` and a user-supplied\n`hal.executable.objects` bitcode (one per seed), asserting they are\nrewritten to `iree_codegen.ukernel.generic` with the bitcode preserved.\n\nProgress towards https://github.com/iree-org/iree/issues/24574.\n\n---------\n\nSigned-off-by: Benoit Jacob \u003cjacob.benoit.1@gmail.com\u003e\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ab6df6c9e6ccb37c7e40674558b8611525b3bf4e",
      "old_mode": 33188,
      "old_path": "build_tools/bazel_to_cmake/bazel_to_cmake_converter.py",
      "new_id": "fdd76a727a5ceb857c3dceb18685bfc1562b6161",
      "new_mode": 33188,
      "new_path": "build_tools/bazel_to_cmake/bazel_to_cmake_converter.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d99ef1863520557f743e2c15af806937796b3dc1",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/LLVMCPU/builtins/ukernel/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c7b3069c4f2494f603d3391013fd3a8806addfc8",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/LLVMCPU/builtins/ukernel/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d340276b04b7a91c6a2335972be5c5d106f803fd",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/LLVMCPU/builtins/ukernel/common.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "978c47827e583ca6aa3c92609182a32e0c93a0e6",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/LLVMCPU/builtins/ukernel/iree_uk_mma_x86_avx512bf16_1x16x2_f32_bf16.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "478ea1a9a8d00f095865d601ddcb2ea798616ad0",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/LLVMCPU/builtins/ukernel/iree_uk_mma_x86_avx512vnni_16x16x2_i32_i8_casti16.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5ff5b4496c4c555fac84aaf1ebb60cf53a5dcc42",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/LLVMCPU/builtins/ukernel/test/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1671a1eb4ac2faeb957f79a40f809502af014f0d",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/LLVMCPU/builtins/ukernel/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6021168350f2cd3997851cb5a16a37715b6450a5",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/LLVMCPU/builtins/ukernel/test/lower_inner_tiled_to_bitcode_ukernel.mlir"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fdc348dca627012ab9759b4d7694deb2bcbd0b74",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/LLVMCPU/builtins/ukernel/test/lower_inner_tiled_to_bitcode_ukernel_i8_vnni.mlir"
    },
    {
      "type": "modify",
      "old_id": "e2aca45e1beb97bef521588112e0873ac79f8063",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/CPU/IR/IREECPUAttrs.cpp",
      "new_id": "60ed072df6a9eb333dd2cfe89e054cc57388d729",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/CPU/IR/IREECPUAttrs.cpp"
    },
    {
      "type": "modify",
      "old_id": "413eb3535e83b58dcfe1665b82d92b19742cc158",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/CPU/IR/IREECPUAttrs.td",
      "new_id": "9629fd8ca82c5c6c425988dbe929b07d9098cf9e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/CPU/IR/IREECPUAttrs.td"
    },
    {
      "type": "modify",
      "old_id": "27fb3b4a9e54ff59aa7ab4057647092007c607e3",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Dialect/CPU/IR/test/roundtrip.mlir",
      "new_id": "29d2d446c1458b8d399fc2081a1742fec7f74ec6",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Dialect/CPU/IR/test/roundtrip.mlir"
    }
  ]
}
