diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-10-23 16:45:26 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-10-23 16:45:26 +0000 |
| commit | f04a04c2b6e9f005f4e90401d23ccf725e46a1d8 (patch) | |
| tree | 784f408dac64c77698dda9c840545f30c4f6d160 /llvm/lib/Target/X86/X86TargetTransformInfo.cpp | |
| parent | 2f7efbc9ce62d84a215529133f1c384c25a7858e (diff) | |
| download | bcm5719-llvm-f04a04c2b6e9f005f4e90401d23ccf725e46a1d8.tar.gz bcm5719-llvm-f04a04c2b6e9f005f4e90401d23ccf725e46a1d8.zip | |
[TTI][X86] Treat SK_Transpose shuffles as SK_PermuteTwoSrc - there's no difference in lowering.
llvm-svn: 345048
Diffstat (limited to 'llvm/lib/Target/X86/X86TargetTransformInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86TargetTransformInfo.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp index 82e4dfe25b7..ffc5a029040 100644 --- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp +++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp @@ -810,6 +810,10 @@ int X86TTIImpl::getShuffleCost(TTI::ShuffleKind Kind, Type *Tp, int Index, // 64-bit packed integer vectors (v2i32) are promoted to type v2i64. std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp); + // Treat Transpose as 2-op shuffles - there's no difference in lowering. + if (Kind == TTI::SK_Transpose) + Kind = TTI::SK_PermuteTwoSrc; + // For Broadcasts we are splatting the first element from the first input // register, so only need to reference that input and all the output // registers are the same. |

