[llvm] 966b026 - [NVPTX] Simplify handling of ISD::BF16_TO_FP
David Majnemer via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 21 10:36:38 PST 2024
Author: David Majnemer
Date: 2024-02-21T18:32:32Z
New Revision: 966b026785a09ec079e8b0ba79358892fcb958ad
URL: https://github.com/llvm/llvm-project/commit/966b026785a09ec079e8b0ba79358892fcb958ad
DIFF: https://github.com/llvm/llvm-project/commit/966b026785a09ec079e8b0ba79358892fcb958ad.diff
LOG: [NVPTX] Simplify handling of ISD::BF16_TO_FP
We only use it to get from BF16 to F32. After that point, we insert
an FP_EXTEND to get the rest of the way.
Added:
Modified:
llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp b/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
index 63920a1db25c8c..fc6c642acbc073 100644
--- a/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
+++ b/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
@@ -784,7 +784,6 @@ NVPTXTargetLowering::NVPTXTargetLowering(const NVPTXTargetMachine &TM,
setOperationAction(ISD::FP_EXTEND, VT, Custom);
setOperationAction(ISD::FP_ROUND, VT, Custom);
}
- setOperationAction(ISD::BF16_TO_FP, MVT::f64, Custom);
}
// sm_80 only has conversions between f32 and bf16. Custom lower all other
@@ -2526,15 +2525,13 @@ SDValue NVPTXTargetLowering::LowerFP_EXTEND(SDValue Op,
(STI.getSmVersion() < 90 || STI.getPTXVersion() < 78)) {
EVT F32 = NarrowVT.isVector() ? NarrowVT.changeVectorElementType(MVT::f32)
: MVT::f32;
- EVT F64 = NarrowVT.isVector() ? NarrowVT.changeVectorElementType(MVT::f64)
- : MVT::f64;
SDLoc Loc(Op);
if (STI.getSmVersion() >= 80 && STI.getPTXVersion() >= 71) {
Op = DAG.getNode(ISD::FP_EXTEND, Loc, F32, Narrow);
} else {
Op = DAG.getNode(ISD::BF16_TO_FP, Loc, F32, Narrow);
}
- return DAG.getNode(ISD::FP_EXTEND, Loc, F64, Op);
+ return DAG.getNode(ISD::FP_EXTEND, Loc, WideVT, Op);
}
}
More information about the llvm-commits
mailing list