[llvm] [SDAG] Follow target boolean semantics in `PromoteIntOp_VECTOR_FIND_LAST_ACTIVE` (PR #187949)
Antonio Frighetto via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 24 14:49:23 PDT 2026
================
@@ -2992,7 +2992,15 @@ SDValue DAGTypeLegalizer::PromoteIntOp_VECTOR_HISTOGRAM(SDNode *N,
SDValue DAGTypeLegalizer::PromoteIntOp_VECTOR_FIND_LAST_ACTIVE(SDNode *N,
unsigned OpNo) {
SmallVector<SDValue, 1> NewOps(N->ops());
- NewOps[OpNo] = GetPromotedInteger(N->getOperand(OpNo));
+ SDValue Op = N->getOperand(OpNo);
+ EVT InVT = Op.getValueType();
+
+ if (TLI.getBooleanContents(InVT) ==
+ TargetLowering::ZeroOrNegativeOneBooleanContent)
+ NewOps[OpNo] = SExtPromotedInteger(Op);
+ else
+ NewOps[OpNo] = ZExtPromotedInteger(Op);
+
return SDValue(DAG.UpdateNodeOperands(N, NewOps), 0);
----------------
antoniofrighetto wrote:
Polished it up, thanks, possibly a leftover change.
https://github.com/llvm/llvm-project/pull/187949
More information about the llvm-commits
mailing list