)]}'
{
  "commit": "481c3c13931eb97cff5e89e8820871cc06574de2",
  "tree": "c5f3edfc7d6f325910bdc1d5a4112aa1240853bf",
  "parents": [
    "9080be216769444461f5f2c3a7d76a733a1e2e09"
  ],
  "author": {
    "name": "Federico Bruzzone",
    "email": "federico.bruzzone.i@gmail.com",
    "time": "Tue Jul 07 13:44:48 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jul 07 11:44:48 2026 +0000"
  },
  "message": "[LLVMCPU] Fix ArmSME requiring classic SVE, breaking SME-only targets (e.g., Apple Silicon) (#24661)\n\n`enableAArch64SME` required `hasAnySVEFeature` in addition to\n`hasSMEFeature`, even though SME runs in Streaming SVE mode and does not\narchitecturally need classic (non-streaming) SVE. On SME-only targets\n(e.g. Apple Silicon, which implements `FEAT_SME`/`FEAT_SME2` but not\n`FEAT_SVE`), this meant:\n\n- **`+sme` alone**: `enableAArch64SME` was `false`, so the ArmSME\nlowering pipeline never ran. Vectorization silently fell back to scalar\ncode, but a leftover `vscale` was never inside a function marked\n\"streaming\", so it had no legal instruction-selection pattern:\n`iree-compile` crashed with `LLVM ERROR: Cannot select: vscale`.\n- **`+sve,+sme` together** (the only combination the existing SME e2e\ntests use): compiles fine, but a separate, Darwin-specific mechanism in\n`AArch64FrameLowering`/`AArch64PrologueEpilogue` is gated on `hasSVE()`.\nWith `+sve` set, LLVM emits `cntd` directly in the function prologue\n*before* `smstart`, which is illegal on hardware without non-streaming\nSVE and crashes at runtime with `SIGILL`.\n\nNeither combination worked; does that mean that, prior to this PR, it\nwasn\u0027t possible to use IREE\u0027s SME support on this class of hardware? If\nso, it implies that, until now, IREE couldn\u0027t leverage SME on Apple M4\nPro processors.\nBut I feel like I might be missing something...\n\nFixes #24660.\n\nSee: https://github.com/llvm/llvm-project/issues/204853\n\n\n@banach-space @egebeysel @AGindinson @maxbartel\n\n---------\n\nSigned-off-by: Federico Bruzzone \u003cfederico.bruzzone.i@gmail.com\u003e\nCo-authored-by: Ege Beysel \u003cbeyselege@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5ca501e9ea5833ac43c1765f5a5973cef71ad509",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/LLVMCPULowerExecutableTarget.cpp",
      "new_id": "edb73bddd4ca8121037e8788524a73dfb4504c27",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/LLVMCPULowerExecutableTarget.cpp"
    },
    {
      "type": "modify",
      "old_id": "e084135ce8e8e2b95e0ff6f6fb860596c0472fdc",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/test/pipeline_vector_masking_tests.mlir",
      "new_id": "5062610899fadfcde4fa26dc7d2de068906b63c5",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/test/pipeline_vector_masking_tests.mlir"
    },
    {
      "type": "modify",
      "old_id": "86c4a867764a6c81e7e51cf8bde158f80d1c04fd",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/device/arch/arm_64/sme_abi.c",
      "new_id": "3acc8ab47d9d48f79e5a7d9e9c9dd583d9fd166a",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/device/arch/arm_64/sme_abi.c"
    },
    {
      "type": "modify",
      "old_id": "872298a8d993c7af9bd3f562482ec04bcea62c91",
      "old_mode": 33188,
      "old_path": "tests/e2e/matmul/BUILD.bazel",
      "new_id": "cf42715be1eec0e47134e1a56056e951d05460dd",
      "new_mode": 33188,
      "new_path": "tests/e2e/matmul/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e31ef1195635b024f22e8370c21cfa03198d35ab",
      "old_mode": 33188,
      "old_path": "tests/e2e/matmul/CMakeLists.txt",
      "new_id": "40f516d2252badba8691fd8d17035f3a3864be61",
      "new_mode": 33188,
      "new_path": "tests/e2e/matmul/CMakeLists.txt"
    }
  ]
}
