diff options
author | Nadav Rotem <nrotem@apple.com> | 2012-11-06 21:17:17 +0000 |
---|---|---|
committer | Nadav Rotem <nrotem@apple.com> | 2012-11-06 21:17:17 +0000 |
commit | a6fb97a49a2e6070c71d44a54c8c0c117b62255a (patch) | |
tree | 22d158439834567ea379fabfe95c06b4c3896e37 | |
parent | 9d8c6786588458e741ca38559f3d66bf006dfa69 (diff) | |
download | external_llvm-a6fb97a49a2e6070c71d44a54c8c0c117b62255a.zip external_llvm-a6fb97a49a2e6070c71d44a54c8c0c117b62255a.tar.gz external_llvm-a6fb97a49a2e6070c71d44a54c8c0c117b62255a.tar.bz2 |
CostModel: add another known vector trunc optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167488 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/X86/X86ISelLowering.cpp | 1 | ||||
-rw-r--r-- | test/Analysis/CostModel/X86/cast.ll | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 5853b51..bdbc9bb 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -17692,6 +17692,7 @@ unsigned X86VectorTargetTransformInfo::getCastInstrCost(unsigned Opcode, { ISD::FP_TO_SINT, MVT::v4i8, MVT::v4f32, 1 }, { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i1, 6 }, { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i1, 9 }, + { ISD::TRUNCATE, MVT::v8i32, MVT::v8i64, 3 }, }; if (ST.hasAVX()) { diff --git a/test/Analysis/CostModel/X86/cast.ll b/test/Analysis/CostModel/X86/cast.ll index 298d5c6..75c97a7 100644 --- a/test/Analysis/CostModel/X86/cast.ll +++ b/test/Analysis/CostModel/X86/cast.ll @@ -53,6 +53,9 @@ define i32 @zext_sext(<8 x i1> %in) { ;CHECK: cost of 1 {{.*}} trunc %F = trunc <8 x i32> undef to <8 x i16> + ;CHECK: cost of 3 {{.*}} trunc + %G = trunc <8 x i64> undef to <8 x i32> + ret i32 undef } |