OSDN Git Service

[X86] updating TTI costs for arithmetic instructions on X86\SLM arch.
authorMohammed Agabaria <mohammed.agabaria@intel.com>
Wed, 11 Jan 2017 08:23:37 +0000 (08:23 +0000)
committerMohammed Agabaria <mohammed.agabaria@intel.com>
Wed, 11 Jan 2017 08:23:37 +0000 (08:23 +0000)
commit9c6b24cc3a1543797d37df754eac72b7f078b2e3
tree26244243345ce859e03391b2dd8621db76700905
parentc3bb9ef6a28e3c697187eaf5f2a98c886beffa0a
[X86] updating TTI costs for arithmetic instructions on X86\SLM arch.

updated instructions:
pmulld, pmullw, pmulhw, mulsd, mulps, mulpd, divss, divps, divsd, divpd, addpd and subpd.

special optimization case which replaces pmulld with pmullw\pmulhw\pshuf seq.
In case if the real operands bitwidth <= 16.

Differential Revision: https://reviews.llvm.org/D28104

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291657 91177308-0d34-0410-b5e6-96231b3b80d8
23 files changed:
include/llvm/Analysis/TargetTransformInfo.h
include/llvm/Analysis/TargetTransformInfoImpl.h
include/llvm/CodeGen/BasicTTIImpl.h
lib/Analysis/CostModel.cpp
lib/Analysis/TargetTransformInfo.cpp
lib/Target/AArch64/AArch64TargetTransformInfo.cpp
lib/Target/AArch64/AArch64TargetTransformInfo.h
lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
lib/Target/ARM/ARMTargetTransformInfo.cpp
lib/Target/ARM/ARMTargetTransformInfo.h
lib/Target/Lanai/LanaiTargetTransformInfo.h
lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
lib/Target/NVPTX/NVPTXTargetTransformInfo.h
lib/Target/PowerPC/PPCTargetTransformInfo.cpp
lib/Target/PowerPC/PPCTargetTransformInfo.h
lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
lib/Target/X86/X86TargetTransformInfo.cpp
lib/Target/X86/X86TargetTransformInfo.h
lib/Transforms/Vectorize/LoopVectorize.cpp
test/Analysis/CostModel/X86/slm-arith-costs.ll [new file with mode: 0644]
test/Transforms/LoopVectorize/X86/mul_slm_16bit.ll [new file with mode: 0644]