Skip to content

Commit bf4afb0

Browse files
authored
[CostModel] improveShuffleKindFromMask - recognise a SK_PermuteSingleSrc incorrectly tagged as SK_PermuteTwoSrc (#145352)
If a SK_PermuteTwoSrc shuffle kind's mask only references the first operand, then treat this as SK_PermuteSingleSrc Part of #145335
1 parent f4d31cd commit bf4afb0

File tree

4 files changed

+47
-57
lines changed

4 files changed

+47
-57
lines changed

llvm/include/llvm/CodeGen/BasicTTIImpl.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1122,6 +1122,9 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
11221122
break;
11231123
}
11241124
case TTI::SK_PermuteTwoSrc: {
1125+
if (all_of(Mask, [NumSrcElts](int M) { return M < NumSrcElts; }))
1126+
return improveShuffleKindFromMask(TTI::SK_PermuteSingleSrc, Mask, SrcTy,
1127+
Index, SubTy);
11251128
int NumSubElts;
11261129
if (Mask.size() > 2 && ShuffleVectorInst::isInsertSubvectorMask(
11271130
Mask, NumSrcElts, NumSubElts, Index)) {

0 commit comments

Comments
 (0)