[llvm] [SelectionDAG] Add `STRICT_BF16_TO_FP` and `STRICT_FP_TO_BF16` (PR #80056)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 31 02:27:18 PST 2024
================
@@ -3271,8 +3278,14 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
Results.push_back(Op);
break;
}
+ case ISD::STRICT_FP_TO_BF16:
+ // When strict mode is enforced we can't do expansion because it
+ // does not honor the "strict" properties.
+ if (TLI.isStrictFPEnabled())
+ break;
+ LLVM_FALLTHROUGH;
case ISD::FP_TO_BF16: {
- SDValue Op = Node->getOperand(0);
+ SDValue Op = Node->getOperand(Node->getOpcode() == ISD::FP_TO_BF16 ? 0 : 1);
if (Op.getValueType() != MVT::f32)
Op = DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, Op,
----------------
arsenm wrote:
this needs to use STRICT_FP_ROUND in the strict case
https://github.com/llvm/llvm-project/pull/80056
More information about the llvm-commits
mailing list