[Mlir-commits] [mlir] [mlir][x86] Support for `f8` AMX tiled dot-product. (PR #194786)

Adam Siemieniuk llvmlistbot at llvm.org
Wed Apr 29 00:59:29 PDT 2026


================
@@ -992,7 +997,20 @@ def TileMulFOp : AMX_Op<"tile_mulf", [Pure,
       std::string intr = "llvm.x86.tdp";
       auto elementType =
         getLhsTileType().getElementType();
-      intr += elementType.isF16() ? "fp16" : "bf16";
+      auto elementTypeRhs =
+        getRhsTileType().getElementType();
+
+      intr += elementType.isF16()  ? "fp16" :
+              elementType.isBF16() ? "bf16" :
+              (elementType.isF8E4M3FN() || elementType.isF8E5M2())
+                  ? (
+                        (elementType.isF8E4M3FN() ? "b" : "h") +
+                        std::string(elementType != elementTypeRhs
+                                        ? (elementTypeRhs.isF8E4M3FN() ? "b" : "h")
+                                        : "") +
+                        "f8"
+                    )
+                  : "";
----------------
adam-smnk wrote:

nit: Could you rewrite it into simpler flow with `if`s?
Multiple nested ternaries get a bit hard to read. 

https://github.com/llvm/llvm-project/pull/194786


More information about the Mlir-commits mailing list