Skip to content

Commit 2288cc3

Browse files
committed
updated the pattern match for masked store
1 parent 19fb53d commit 2288cc3

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2907,22 +2907,19 @@ static VPRecipeBase *optimizeMaskToEVL(VPValue *HeaderMask,
29072907
return new VPWidenStoreEVLRecipe(cast<VPWidenStoreRecipe>(CurRecipe), Addr,
29082908
EVL, Mask);
29092909

2910-
VPValue *StoredVal;
2911-
if (match(&CurRecipe, m_MaskedStore(m_VPValue(EndPtr), m_VPValue(StoredVal),
2912-
m_RemoveMask(HeaderMask, Mask))) &&
2910+
if (match(&CurRecipe,
2911+
m_MaskedStore(m_VPValue(EndPtr), m_Reverse(m_VPValue(ReversedVal)),
2912+
m_RemoveMask(HeaderMask, Mask))) &&
29132913
match(EndPtr, m_VecEndPtr(m_VPValue(Addr), m_Specific(&Plan->getVF()))) &&
29142914
cast<VPWidenStoreRecipe>(CurRecipe).isReverse()) {
2915-
if (match(StoredVal, m_Reverse(m_VPValue(ReversedVal)))) {
2916-
auto *NewReverse = new VPWidenIntrinsicRecipe(
2917-
Intrinsic::experimental_vp_reverse,
2918-
{ReversedVal, Plan->getTrue(), &EVL},
2919-
TypeInfo.inferScalarType(ReversedVal), {}, {},
2920-
cast<VPInstruction>(StoredVal)->getDebugLoc());
2921-
NewReverse->insertBefore(&CurRecipe);
2922-
return new VPWidenStoreEVLRecipe(cast<VPWidenStoreRecipe>(CurRecipe),
2923-
AdjustEndPtr(EndPtr), NewReverse, EVL,
2924-
Mask);
2925-
}
2915+
auto *NewReverse = new VPWidenIntrinsicRecipe(
2916+
Intrinsic::experimental_vp_reverse,
2917+
{ReversedVal, Plan->getTrue(), &EVL},
2918+
TypeInfo.inferScalarType(ReversedVal), {}, {}, DL);
2919+
NewReverse->insertBefore(&CurRecipe);
2920+
return new VPWidenStoreEVLRecipe(cast<VPWidenStoreRecipe>(CurRecipe),
2921+
AdjustEndPtr(EndPtr), NewReverse, EVL,
2922+
Mask);
29262923
}
29272924

29282925
if (auto *Rdx = dyn_cast<VPReductionRecipe>(&CurRecipe))

0 commit comments

Comments
 (0)