[llvm] [X86] Lower bf16->f32/f64 fpext without a GPR round-trip (PR #218359)

via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 27 00:37:50 PDT 2026


================
@@ -697,6 +697,8 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM,
     setOperationAction(ISD::FP_ROUND, MVT::f16, Custom);
     setOperationAction(ISD::FP_EXTEND, MVT::f32, Custom);
     setOperationAction(ISD::FP_EXTEND, MVT::f64, Custom);
+    setOperationAction(ISD::BF16_TO_FP, MVT::f32, Custom);
+    setOperationAction(ISD::BF16_TO_FP, MVT::f64, Custom);
----------------
tfzee wrote:

Sorry I'm kind of confused here since 323 points to a hasAVX10_2 block.
Should I insert it into the hasSSE2 block above, inside of the hasAVX10_2 or add a new if between the existing hasSSE2 and hasAVX10_2 ones?
And if moving the expand part up I imagine I also move the strict expand loop right above it as well since they are part of the same bf16 default setup? 

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


More information about the llvm-commits mailing list