diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-04-07 13:26:09 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-04-07 13:26:09 +0000 |
commit | 6d7fdd9ab7cb24b1cffae046e9c223929b4ac3bd (patch) | |
tree | 5cea82290e78cff9945ed1e53182262e308c530e /llvm/lib/Target/X86/X86TargetTransformInfo.cpp | |
parent | 2243a165b143b00132cb02c102fc10edaaafc509 (diff) | |
download | bcm5719-llvm-6d7fdd9ab7cb24b1cffae046e9c223929b4ac3bd.tar.gz bcm5719-llvm-6d7fdd9ab7cb24b1cffae046e9c223929b4ac3bd.zip |
[CostModel][X86] Masked load legalization requires an binary-shuffle not a select (PR39812)
Expansion/truncation is better described by SK_PermuteTwoSrc than SK_Select
llvm-svn: 357864
Diffstat (limited to 'llvm/lib/Target/X86/X86TargetTransformInfo.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86TargetTransformInfo.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp index 134915128d2..ca32ae093cd 100644 --- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp +++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp @@ -2379,8 +2379,8 @@ int X86TTIImpl::getMaskedMemoryOpCost(unsigned Opcode, Type *SrcTy, if (VT.isSimple() && LT.second != VT.getSimpleVT() && LT.second.getVectorNumElements() == NumElem) // Promotion requires expand/truncate for data and a shuffle for mask. - Cost += getShuffleCost(TTI::SK_Select, SrcVTy, 0, nullptr) + - getShuffleCost(TTI::SK_Select, MaskTy, 0, nullptr); + Cost += getShuffleCost(TTI::SK_PermuteTwoSrc, SrcVTy, 0, nullptr) + + getShuffleCost(TTI::SK_PermuteTwoSrc, MaskTy, 0, nullptr); else if (LT.second.getVectorNumElements() > NumElem) { VectorType *NewMaskTy = VectorType::get(MaskTy->getVectorElementType(), |