summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-03-25 00:14:11 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-03-25 00:14:11 +0000
commit59767cea79e9ca727b5d2de8a6aa2318d671afd5 (patch)
tree37ee04ded043ad4e34c19d90f0efa1c68711c138 /llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
parent95853077c3f3f959af93a6b50d751834aea1f8d6 (diff)
downloadbcm5719-llvm-59767cea79e9ca727b5d2de8a6aa2318d671afd5.tar.gz
bcm5719-llvm-59767cea79e9ca727b5d2de8a6aa2318d671afd5.zip
AMDGPU: TTI: Make insertelement free.
We don't want to have a cost to scalarizing operations. llvm-svn: 264364
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
index 9cd3c39722d..39be33e4a2c 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
@@ -99,6 +99,11 @@ int AMDGPUTTIImpl::getVectorInstrCost(unsigned Opcode, Type *ValTy,
unsigned Index) {
switch (Opcode) {
case Instruction::ExtractElement:
+ case Instruction::InsertElement:
+ // Extracts are just reads of a subregister, so are free. Inserts are
+ // considered free because we don't want to have any cost for scalarizing
+ // operations, and we don't have to copy into a different register class.
+
// Dynamic indexing isn't free and is best avoided.
return Index == ~0u ? 2 : 0;
default:
OpenPOWER on IntegriCloud