mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-25 13:05:04 +00:00
[SLP][NFC]Add TreeEntry-based add member functions and use them, where
possible, NFC.
This commit is contained in:
parent
c5a67e16b6
commit
cb678708e6
@ -10276,6 +10276,16 @@ public:
|
||||
VecTy, PoisonValue::get(PointerType::getUnqual(VecTy->getContext())),
|
||||
MaybeAlign());
|
||||
}
|
||||
/// Adds 2 input vectors (in form of tree entries) and the mask for their
|
||||
/// shuffling.
|
||||
void add(const TreeEntry &E1, const TreeEntry &E2, ArrayRef<int> Mask) {
|
||||
add(E1.VectorizedValue, E2.VectorizedValue, Mask);
|
||||
}
|
||||
/// Adds single input vector (in form of tree entry) and the mask for its
|
||||
/// shuffling.
|
||||
void add(const TreeEntry &E1, ArrayRef<int> Mask) {
|
||||
add(E1.VectorizedValue, Mask);
|
||||
}
|
||||
/// Adds 2 input vectors and the mask for their shuffling.
|
||||
void add(Value *V1, Value *V2, ArrayRef<int> Mask) {
|
||||
assert(V1 && V2 && !Mask.empty() && "Expected non-empty input vectors.");
|
||||
@ -10690,7 +10700,7 @@ ResTy BoUpSLP::processBuildVector(const TreeEntry *E, Args &...Params) {
|
||||
Mask[I] = FrontTE->findLaneForValue(V);
|
||||
}
|
||||
}
|
||||
ShuffleBuilder.add(FrontTE->VectorizedValue, Mask);
|
||||
ShuffleBuilder.add(*FrontTE, Mask);
|
||||
Res = ShuffleBuilder.finalize(E->getCommonMask());
|
||||
return Res;
|
||||
}
|
||||
@ -10868,17 +10878,14 @@ ResTy BoUpSLP::processBuildVector(const TreeEntry *E, Args &...Params) {
|
||||
VecMask.assign(VecMask.size(), PoisonMaskElem);
|
||||
copy(SubMask, std::next(VecMask.begin(), I * SliceSize));
|
||||
if (TEs.size() == 1) {
|
||||
IsUsedInExpr &= FindReusedSplat(
|
||||
VecMask,
|
||||
cast<FixedVectorType>(TEs.front()->VectorizedValue->getType())
|
||||
->getNumElements());
|
||||
ShuffleBuilder.add(TEs.front()->VectorizedValue, VecMask);
|
||||
IsUsedInExpr &=
|
||||
FindReusedSplat(VecMask, TEs.front()->getVectorFactor());
|
||||
ShuffleBuilder.add(*TEs.front(), VecMask);
|
||||
IsNonPoisoned &=
|
||||
isGuaranteedNotToBePoison(TEs.front()->VectorizedValue);
|
||||
} else {
|
||||
IsUsedInExpr = false;
|
||||
ShuffleBuilder.add(TEs.front()->VectorizedValue,
|
||||
TEs.back()->VectorizedValue, VecMask);
|
||||
ShuffleBuilder.add(*TEs.front(), *TEs.back(), VecMask);
|
||||
IsNonPoisoned &=
|
||||
isGuaranteedNotToBePoison(TEs.front()->VectorizedValue) &&
|
||||
isGuaranteedNotToBePoison(TEs.back()->VectorizedValue);
|
||||
|
Loading…
x
Reference in New Issue
Block a user