[llvm] [X86] Lower bf16 round-to-integer on AVX10.2 via vrndscalebf16 (PR #213276)

Phoebe Wang via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 28 07:40:38 PDT 2026


================
@@ -2627,14 +2631,44 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM,
     setOperationAction(ISD::FSQRT, MVT::bf16, Custom);
     setOperationAction(ISD::FMA, MVT::bf16, Custom);
 
-    setOperationAction(ISD::FADD, MVT::v32bf16, Legal);
-    setOperationAction(ISD::FSUB, MVT::v32bf16, Legal);
-    setOperationAction(ISD::FMUL, MVT::v32bf16, Legal);
-    setOperationAction(ISD::FDIV, MVT::v32bf16, Legal);
-    setOperationAction(ISD::FSQRT, MVT::v32bf16, Legal);
-    setOperationAction(ISD::FMA, MVT::v32bf16, Legal);
-    setOperationAction(ISD::SETCC, MVT::v32bf16, Custom);
-    SetFPMinMaxAction(MVT::v32bf16);
+    setOperationAction(ISD::FFLOOR, MVT::bf16, Custom);
+    setOperationAction(ISD::FCEIL, MVT::bf16, Custom);
+    setOperationAction(ISD::FTRUNC, MVT::bf16, Custom);
+    setOperationAction(ISD::FRINT, MVT::bf16, Custom);
+    setOperationAction(ISD::FNEARBYINT, MVT::bf16, Custom);
+    setOperationAction(ISD::FROUNDEVEN, MVT::bf16, Custom);
+
+    setOperationAction(ISD::FFLOOR, MVT::v8bf16, Legal);
+    setOperationAction(ISD::FCEIL, MVT::v8bf16, Legal);
+    setOperationAction(ISD::FTRUNC, MVT::v8bf16, Legal);
+    setOperationAction(ISD::FRINT, MVT::v8bf16, Legal);
+    setOperationAction(ISD::FNEARBYINT, MVT::v8bf16, Legal);
+    setOperationAction(ISD::FROUNDEVEN, MVT::v8bf16, Legal);
+    setOperationAction(ISD::FFLOOR, MVT::v16bf16, Legal);
+    setOperationAction(ISD::FCEIL, MVT::v16bf16, Legal);
+    setOperationAction(ISD::FTRUNC, MVT::v16bf16, Legal);
+    setOperationAction(ISD::FRINT, MVT::v16bf16, Legal);
+    setOperationAction(ISD::FNEARBYINT, MVT::v16bf16, Legal);
+    setOperationAction(ISD::FROUNDEVEN, MVT::v16bf16, Legal);
----------------
phoebewang wrote:

These can move to the block in line 2672

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


More information about the llvm-commits mailing list