[llvm] [DAGTypeLegalizer] Add missing BR_CC handler for soft-promoted half operands (PR #196214)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri May 8 10:03:35 PDT 2026
================
@@ -3309,6 +3312,30 @@ SDValue DAGTypeLegalizer::SoftPromoteHalfOp_FP_TO_XINT_SAT(SDNode *N) {
N->getOperand(1));
}
+SDValue DAGTypeLegalizer::SoftPromoteHalfOp_BR_CC(SDNode *N) {
+ // BR_CC: chain(0), condcode(1), LHS(2), RHS(3), dest(4)
+ // The comparison operands (LHS, RHS) are soft-promoted halfs.
+ SDValue Op0 = N->getOperand(2);
+ SDValue Op1 = N->getOperand(3);
+ SDLoc dl(N);
+
+ EVT SVT = Op0.getValueType();
+ EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), SVT);
+
+ // Get the soft-promoted i16 values
+ Op0 = GetSoftPromotedHalf(Op0);
+ Op1 = GetSoftPromotedHalf(Op1);
+
+ // Promote both comparison operands to the larger FP type.
+ auto PromotionOpcode = GetPromotionOpcode(SVT, NVT);
----------------
arsenm wrote:
```suggestion
unsigned PromotionOpcode = GetPromotionOpcode(SVT, NVT);
```
https://github.com/llvm/llvm-project/pull/196214
More information about the llvm-commits
mailing list