[llvm] [SelectionDAG] Move VSelect sign pattern check from AArch64 to general SelectionDAG (PR #151840)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 3 01:29:02 PDT 2025
================
@@ -13143,7 +13143,13 @@ static SDValue combineVSelectWithAllOnesOrZeros(SDValue Cond, SDValue TVal,
TValAPInt.isOne() &&
ISD::isConstantSplatVectorAllOnes(Cond.getOperand(1).getNode()) &&
ISD::isConstantSplatVectorAllOnes(FVal.getNode())) {
- return SDValue();
+ SDValue LHS = Cond.getOperand(0);
+ SDValue ShiftC = DAG.getShiftAmountConstant(VT.getScalarSizeInBits() - 1,
+ VT.getScalarType(), DL);
+ SDValue ShiftAmount = DAG.getSplatBuildVector(VT, DL, ShiftC);
----------------
RKSimon wrote:
getShiftAmountConstant should be able to splat for you:
```
SDValue ShiftAmount =DAG.getShiftAmountConstant(VT.getScalarSizeInBits() - 1, VT, DL);
```
https://github.com/llvm/llvm-project/pull/151840
More information about the llvm-commits
mailing list