OSDN Git Service

[X86]: Changing cost for “TRUNCATE v16i32 to v16i8” in SSE4.1 mode.
authorAshutosh Nema <ashu1212@gmail.com>
Fri, 22 Apr 2016 08:34:05 +0000 (08:34 +0000)
committerAshutosh Nema <ashu1212@gmail.com>
Fri, 22 Apr 2016 08:34:05 +0000 (08:34 +0000)
commit91d7ac06b6fe7c70d6bc0911f76499a9df3df853
tree24e49980e81ee536fa08324547c1e90167d76ffb
parent4572b689c6eaec80ce3e2c9f43b2504def696674
[X86]: Changing cost for “TRUNCATE v16i32 to v16i8” in SSE4.1 mode.

Summary:
rL256194 transforms truncations between vectors of integers into PACKUS/PACKSS
operations during DAG combine. This generates better code for truncate, so cost
of truncate needs to be changed but looks like it got changed only in SSE2 table
Whereas this change is also applicable for SSE4.1, so the cost of truncate needs
to be changed for that as well. Cost of “TRUNCATE v16i32 to v16i8” & “TRUNCATE
v16i16 to v16i8” should be same in SSE4.1 & SSE2 table. Removing their cost from
SSE4.1, so it will fall back to SSE2.

Reviewers: Simon Pilgrim

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267123 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86TargetTransformInfo.cpp
test/Analysis/CostModel/X86/sse-itoi.ll