Skip to content

Commit e764a82

Browse files
authored
Merge pull request #146 from sx-aurora-dev/merge/ve-cdag-refactor
Merge/ve cdag refactor
2 parents 68fea81 + cbb8ef1 commit e764a82

File tree

5 files changed

+18
-19
lines changed

5 files changed

+18
-19
lines changed

llvm/lib/Target/VE/ShuffleSynthesis.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -769,7 +769,7 @@ struct PatternShuffleOp final : public AbstractShuffleOp {
769769
LLVM_DEBUG(dbgs() << "::Broadcast\n");
770770
SDValue ScaVal = MV.getSourceElem(FirstDef).V;
771771
LLVM_DEBUG(ScaVal->dump());
772-
return CDAG.createBroadcast(LegalResVT, ScaVal, AVL);
772+
return CDAG.getBroadcast(LegalResVT, ScaVal, AVL);
773773
}
774774

775775
case BVKind::Seq: {
@@ -782,7 +782,7 @@ struct PatternShuffleOp final : public AbstractShuffleOp {
782782
return SeqV;
783783
}
784784

785-
SDValue StrideV = CDAG.createBroadcast(
785+
SDValue StrideV = CDAG.getBroadcast(
786786
LegalResVT, CDAG.getConstant(Stride, ElemTy), AVL);
787787
SDValue ret = CDAG.getNode(VEISD::VVP_MUL, LegalResVT,
788788
{SeqV, StrideV, TrueMask, AVL});
@@ -797,7 +797,7 @@ struct PatternShuffleOp final : public AbstractShuffleOp {
797797
// codegen for <0, 1, .., 15, 0, 1, .., ..... > constant patterns
798798
// constant == VSEQ % blockLength
799799
SDValue sequence = CDAG.createSeq(LegalResVT, AVL);
800-
SDValue modulobroadcast = CDAG.createBroadcast(
800+
SDValue modulobroadcast = CDAG.getBroadcast(
801801
LegalResVT, CDAG.getConstant(BlockLength - 1, ElemTy),
802802
AVL);
803803

@@ -818,7 +818,7 @@ struct PatternShuffleOp final : public AbstractShuffleOp {
818818
// constant == VSEQ >> log2(blockLength)
819819
int64_t blockLengthLog = log2(BlockLength);
820820
SDValue sequence = CDAG.createSeq(LegalResVT, AVL);
821-
SDValue shiftbroadcast = CDAG.createBroadcast(
821+
SDValue shiftbroadcast = CDAG.getBroadcast(
822822
LegalResVT, CDAG.getConstant(blockLengthLog, ElemTy), AVL);
823823

824824
SDValue shift =
@@ -915,7 +915,7 @@ struct BroadcastOp final : public AbstractShuffleOp {
915915

916916
const SDValue PivotV = CDAG.getConstEVL(MaxAVL);
917917
SDValue BlendMaskV = CDAG.createConstMask(NumElems, TargetLanes);
918-
SDValue BroadcastV = CDAG.createBroadcast(VecTy, ScalarSrcV, PivotV);
918+
SDValue BroadcastV = CDAG.getBroadcast(VecTy, ScalarSrcV, PivotV);
919919
return CDAG.createSelect(VecTy, BroadcastV, PartialV, BlendMaskV, PivotV);
920920
}
921921

@@ -1173,7 +1173,7 @@ struct GatherShuffleOp final : public AbstractShuffleOp {
11731173
}
11741174

11751175
SDValue MaxVLV = CDAG.getConstEVL(MaxVL);
1176-
SDValue BasePtrV = CDAG.createBroadcast(PtrVecVT, VecSlotPtr);
1176+
SDValue BasePtrV = CDAG.getBroadcast(PtrVecVT, VecSlotPtr);
11771177
SDValue OffsetV = CDAG.getNode(
11781178
ISD::BUILD_VECTOR, PtrVecVT,
11791179
GatherOffsets); // TODO directly call into constant vector generation

llvm/lib/Target/VE/VECustomDAG.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525

2626
namespace llvm {
2727

28-
2928
/// Packing {
3029

3130
bool isPackedMaskType(EVT SomeVT) {
@@ -888,7 +887,7 @@ static SDValue foldUnpackFromBroadcast(SDValue Vec, PackElem Part, EVT DestVT,
888887

889888
// Fold unpack from an overpacked or mask broadcast.
890889
if (isOverPackedType(Vec.getValueType()) || isMaskType(Vec.getValueType()))
891-
return CDAG.createBroadcast(DestVT, Scalar, AVL);
890+
return CDAG.getBroadcast(DestVT, Scalar, AVL);
892891

893892
// Fold unpack from broadcast from replication.
894893
if (SDValue Simplified = combineUnpackLoHi(Vec, Part, DestVT, AVL, CDAG))
@@ -919,7 +918,7 @@ SDValue VECustomDAG::createSwap(EVT DestVT, SDValue V, SDValue AVL) const {
919918
return DAG.getNode(VEISD::VEC_SWAP, DL, DestVT, V, AVL);
920919
}
921920

922-
SDValue VECustomDAG::createBroadcast(EVT ResTy, SDValue S, SDValue AVL) const {
921+
SDValue VECustomDAG::getBroadcast(EVT ResTy, SDValue S, SDValue AVL) const {
923922

924923
// Pick VL
925924
if (!AVL) {
@@ -965,7 +964,7 @@ SDValue VECustomDAG::createBroadcast(EVT ResTy, SDValue S, SDValue AVL) const {
965964
SDValue BCVec =
966965
DAG.getNode(VEISD::VEC_BROADCAST, DL, CmpVecTy, {CmpElem, AVL});
967966
SDValue ZeroVec =
968-
createBroadcast(CmpVecTy, {DAG.getConstant(0, DL, BoolTy)}, AVL);
967+
getBroadcast(CmpVecTy, {DAG.getConstant(0, DL, BoolTy)}, AVL);
969968

970969
MVT BoolVecTy = MVT::getVectorVT(MVT::i1, ElemCount);
971970

@@ -1410,4 +1409,5 @@ raw_ostream &VECustomDAG::print(raw_ostream &Out, SDValue V) const {
14101409
}
14111410

14121411
/// } class VECustomDAG
1412+
14131413
} // namespace llvm

llvm/lib/Target/VE/VECustomDAG.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,7 @@ struct VECustomDAG {
246246
SDValue foldAndUnpackMask(SDValue MaskVector, SDValue Mask, PackElem Part,
247247
SDValue AVL) const;
248248
/// } Mask Insert/Extract
249-
250-
SDValue createBroadcast(EVT ResTy, SDValue S, SDValue AVL = SDValue()) const;
249+
SDValue getBroadcast(EVT ResultVT, SDValue Scalar, SDValue AVL = SDValue()) const;
251250

252251
// Extract an SX register from a mask
253252
SDValue createMaskExtract(SDValue MaskV, SDValue Idx) const;

llvm/lib/Target/VE/VVPCombine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ SDValue llvm::combineUnpackLoHi(SDValue PackedVec, PackElem UnpackPart,
337337
match_ReplLoHi(ReplV, ReplPart);
338338
if (UsedDestPart != ReplPart) return SDValue();
339339

340-
return CDAG.createBroadcast(DestVT, ReplV->getOperand(0), AVL);
340+
return CDAG.getBroadcast(DestVT, ReplV->getOperand(0), AVL);
341341
}
342342

343343
SDValue VETargetLowering::combinePacking(SDNode *N,

llvm/lib/Target/VE/VVPISelLowering.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ VETargetLowering::computeGatherScatterAddress(VECustomDAG &CDAG, SDValue BasePtr
401401
if (!Scale || isOneConstant(Scale)) {
402402
ScaledIndex = Index;
403403
} else {
404-
SDValue ScaleBroadcast = CDAG.createBroadcast(IndexVT, Scale, AVL);
404+
SDValue ScaleBroadcast = CDAG.getBroadcast(IndexVT, Scale, AVL);
405405
ScaledIndex = CDAG.getNode(VEISD::VVP_MUL, IndexVT,
406406
{Index, ScaleBroadcast, Mask, AVL});
407407
if (SplitOps)
@@ -414,7 +414,7 @@ VETargetLowering::computeGatherScatterAddress(VECustomDAG &CDAG, SDValue BasePtr
414414
return ScaledIndex;
415415
}
416416
// re-constitute pointer vector (basePtr + index * scale)
417-
SDValue BaseBroadcast = CDAG.createBroadcast(IndexVT, BasePtr, AVL);
417+
SDValue BaseBroadcast = CDAG.getBroadcast(IndexVT, BasePtr, AVL);
418418
auto ResPtr = CDAG.getNode(VEISD::VVP_ADD, IndexVT,
419419
{BaseBroadcast, ScaledIndex, Mask, AVL});
420420
if (!SplitOps)
@@ -1043,7 +1043,7 @@ SDValue VETargetLowering::expandSELECT(SDValue MaskV, SDValue OnTrueV, SDValue O
10431043
CDAG.getVectorVT(MVT::i1, LegalResVT.getVectorNumElements());
10441044

10451045
if (!MaskV.getValueType().isVector()) {
1046-
CondVecV = CDAG.createBroadcast(LegalMaskVT, MaskV, AVL);
1046+
CondVecV = CDAG.getBroadcast(LegalMaskVT, MaskV, AVL);
10471047
CondVecV = CDAG.createMaskCast(CondVecV, AVL);
10481048
} else {
10491049
CondVecV = MaskV;
@@ -1102,12 +1102,12 @@ VETargetLowering::lowerSETCCInVectorArithmetic(SDValue Op,
11021102
// materialize an integer expansion
11031103
// vselect (MaskReplacement, VEC_BROADCAST(1), VEC_BROADCAST(0))
11041104
auto ConstZero = CDAG.getConstant(0, ElemTy);
1105-
auto ZeroBroadcast = CDAG.createBroadcast(Ty, ConstZero, AVL);
1105+
auto ZeroBroadcast = CDAG.getBroadcast(Ty, ConstZero, AVL);
11061106
if (!PackLegalized)
11071107
Created.push_back(ZeroBroadcast);
11081108

11091109
auto ConstOne = CDAG.getConstant(1, ElemTy);
1110-
auto OneBroadcast = CDAG.createBroadcast(Ty, ConstOne, AVL);
1110+
auto OneBroadcast = CDAG.getBroadcast(Ty, ConstOne, AVL);
11111111
if (!PackLegalized)
11121112
Created.push_back(OneBroadcast);
11131113

@@ -1144,7 +1144,7 @@ VETargetLowering::lowerVVP_SCALAR_TO_VECTOR(SDValue Op, SelectionDAG &DAG,
11441144
SDValue AVL = CDAG.getConstEVL(
11451145
*minVectorLength(ResTy.getVectorNumElements(), VecLenHint));
11461146

1147-
return CDAG.createBroadcast(NativeResTy, Op.getOperand(0), AVL);
1147+
return CDAG.getBroadcast(NativeResTy, Op.getOperand(0), AVL);
11481148
}
11491149

11501150
TargetLowering::LegalizeAction

0 commit comments

Comments
 (0)