@@ -4311,9 +4311,9 @@ static SDValue isUpperSubvectorUndef(SDValue V, const SDLoc &DL,
4311
4311
4312
4312
// Helper to check if we can access all the constituent subvectors without any
4313
4313
// extract ops.
4314
- static bool isFreeToSplitVector(SDNode *N , SelectionDAG &DAG) {
4314
+ static bool isFreeToSplitVector(SDValue V , SelectionDAG &DAG) {
4315
4315
SmallVector<SDValue> Ops;
4316
- return collectConcatOps(N , Ops, DAG);
4316
+ return collectConcatOps(V.getNode() , Ops, DAG);
4317
4317
}
4318
4318
4319
4319
static std::pair<SDValue, SDValue> splitVector(SDValue Op, SelectionDAG &DAG,
@@ -18324,10 +18324,10 @@ SDValue X86TargetLowering::LowerVSELECT(SDValue Op, SelectionDAG &DAG) const {
18324
18324
// TODO: Add Load splitting to isFreeToSplitVector ?
18325
18325
if (EltSize < 32 && VT.is256BitVector() && !Subtarget.hasAVX2() &&
18326
18326
!Subtarget.hasXOP()) {
18327
- bool FreeCond = isFreeToSplitVector(Cond.getNode() , DAG);
18328
- bool FreeLHS = isFreeToSplitVector(LHS.getNode() , DAG) ||
18327
+ bool FreeCond = isFreeToSplitVector(Cond, DAG);
18328
+ bool FreeLHS = isFreeToSplitVector(LHS, DAG) ||
18329
18329
(ISD::isNormalLoad(LHS.getNode()) && LHS.hasOneUse());
18330
- bool FreeRHS = isFreeToSplitVector(RHS.getNode() , DAG) ||
18330
+ bool FreeRHS = isFreeToSplitVector(RHS, DAG) ||
18331
18331
(ISD::isNormalLoad(RHS.getNode()) && RHS.hasOneUse());
18332
18332
if (FreeCond && (FreeLHS || FreeRHS))
18333
18333
return splitVectorOp(Op, DAG, dl);
@@ -20958,7 +20958,7 @@ static SDValue matchTruncateWithPACK(unsigned &PackOpcode, EVT DstVT,
20958
20958
// Prefer to lower v4i64 -> v4i32 as a shuffle unless we can cheaply
20959
20959
// split this for packing.
20960
20960
if (SrcVT == MVT::v4i64 && DstVT == MVT::v4i32 &&
20961
- !isFreeToSplitVector(In.getNode() , DAG) &&
20961
+ !isFreeToSplitVector(In, DAG) &&
20962
20962
(!Subtarget.hasAVX() || DAG.ComputeNumSignBits(In) != 64))
20963
20963
return SDValue();
20964
20964
@@ -21228,7 +21228,7 @@ SDValue X86TargetLowering::LowerTRUNCATE(SDValue Op, SelectionDAG &DAG) const {
21228
21228
21229
21229
// Attempt to truncate with PACKUS/PACKSS even on AVX512 if we'd have to
21230
21230
// concat from subvectors to use VPTRUNC etc.
21231
- if (!Subtarget.hasAVX512() || isFreeToSplitVector(In.getNode() , DAG))
21231
+ if (!Subtarget.hasAVX512() || isFreeToSplitVector(In, DAG))
21232
21232
if (SDValue SignPack = LowerTruncateVecPackWithSignBits(
21233
21233
VT, In, DL, Subtarget, DAG, Op->getFlags()))
21234
21234
return SignPack;
@@ -25311,7 +25311,7 @@ static SDValue LowerStore(SDValue Op, const X86Subtarget &Subtarget,
25311
25311
if (StoreVT.is256BitVector() ||
25312
25312
((StoreVT == MVT::v32i16 || StoreVT == MVT::v64i8) &&
25313
25313
!Subtarget.hasBWI())) {
25314
- if (StoredVal.hasOneUse() && isFreeToSplitVector(StoredVal.getNode() , DAG))
25314
+ if (StoredVal.hasOneUse() && isFreeToSplitVector(StoredVal, DAG))
25315
25315
return splitVectorStore(St, DAG);
25316
25316
return SDValue();
25317
25317
}
@@ -46930,8 +46930,7 @@ static SDValue narrowVectorSelect(SDNode *N, SelectionDAG &DAG, const SDLoc &DL,
46930
46930
SDValue TVal = N->getOperand(1);
46931
46931
SDValue FVal = N->getOperand(2);
46932
46932
if (!TVal.hasOneUse() || !FVal.hasOneUse() ||
46933
- !isFreeToSplitVector(TVal.getNode(), DAG) ||
46934
- !isFreeToSplitVector(FVal.getNode(), DAG))
46933
+ !isFreeToSplitVector(TVal, DAG) || !isFreeToSplitVector(FVal, DAG))
46935
46934
return SDValue();
46936
46935
46937
46936
auto makeBlend = [Opcode](SelectionDAG &DAG, const SDLoc &DL,
@@ -58710,7 +58709,7 @@ static SDValue narrowExtractedVectorSelect(SDNode *Ext, const SDLoc &DL,
58710
58709
SelectionDAG &DAG) {
58711
58710
SDValue Sel = Ext->getOperand(0);
58712
58711
if (Sel.getOpcode() != ISD::VSELECT ||
58713
- !isFreeToSplitVector(Sel.getOperand(0).getNode() , DAG))
58712
+ !isFreeToSplitVector(Sel.getOperand(0), DAG))
58714
58713
return SDValue();
58715
58714
58716
58715
// Note: We assume simple value types because this should only be called with
0 commit comments