mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-28 14:10:41 +00:00
CostModel: add another known vector trunc optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167488 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9d8c678658
commit
a6fb97a49a
@ -17692,6 +17692,7 @@ unsigned X86VectorTargetTransformInfo::getCastInstrCost(unsigned Opcode,
|
|||||||
{ ISD::FP_TO_SINT, MVT::v4i8, MVT::v4f32, 1 },
|
{ ISD::FP_TO_SINT, MVT::v4i8, MVT::v4f32, 1 },
|
||||||
{ ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i1, 6 },
|
{ ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i1, 6 },
|
||||||
{ ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i1, 9 },
|
{ ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i1, 9 },
|
||||||
|
{ ISD::TRUNCATE, MVT::v8i32, MVT::v8i64, 3 },
|
||||||
};
|
};
|
||||||
|
|
||||||
if (ST.hasAVX()) {
|
if (ST.hasAVX()) {
|
||||||
|
@ -53,6 +53,9 @@ define i32 @zext_sext(<8 x i1> %in) {
|
|||||||
;CHECK: cost of 1 {{.*}} trunc
|
;CHECK: cost of 1 {{.*}} trunc
|
||||||
%F = trunc <8 x i32> undef to <8 x i16>
|
%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
|
ret i32 undef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user