summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2017-05-14 17:36:07 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2017-05-14 17:36:07 +0000
commitaa8dffb69bccbe4e41469e0023b7508dd44945f8 (patch)
tree8661444945d8ec71d591bd55e4469c62ea3a671c /llvm/lib/Target
parent7d186b016a18fd3421015b274e98b2fc7fdebe76 (diff)
downloadbcm5719-llvm-aa8dffb69bccbe4e41469e0023b7508dd44945f8.tar.gz
bcm5719-llvm-aa8dffb69bccbe4e41469e0023b7508dd44945f8.zip
[X86][SSE] Account for cost of extract/insert of v32i8 vector shifts
llvm-svn: 303012
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/X86/X86TargetTransformInfo.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
index bfbd33e5b9d..ba6462a0768 100644
--- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
+++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
@@ -251,9 +251,9 @@ int X86TTIImpl::getArithmeticInstrCost(
{ ISD::SRL, MVT::v16i8, 2 }, // psrlw + pand.
{ ISD::SRA, MVT::v16i8, 4 }, // psrlw, pand, pxor, psubb.
- { ISD::SHL, MVT::v32i8, 4 }, // 2*(psllw + pand).
- { ISD::SRL, MVT::v32i8, 4 }, // 2*(psrlw + pand).
- { ISD::SRA, MVT::v32i8, 8 }, // 2*(psrlw, pand, pxor, psubb).
+ { ISD::SHL, MVT::v32i8, 4+2 }, // 2*(psllw + pand) + split.
+ { ISD::SRL, MVT::v32i8, 4+2 }, // 2*(psrlw + pand) + split.
+ { ISD::SRA, MVT::v32i8, 8+2 }, // 2*(psrlw, pand, pxor, psubb) + split.
{ ISD::SDIV, MVT::v16i16, 12 }, // pmulhw sequence
{ ISD::SDIV, MVT::v8i16, 6 }, // pmulhw sequence
OpenPOWER on IntegriCloud