mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-08 19:25:47 +00:00
SLPVectorizer: Use vector type for vectorized memory operations
No test case, because with the current cost model we don't see a difference. An upcoming ARM memory cost model change will expose and test this bug. radar://15332579 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193572 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1023,14 +1023,14 @@ int BoUpSLP::getEntryCost(TreeEntry *E) {
|
|||||||
// Cost of wide load - cost of scalar loads.
|
// Cost of wide load - cost of scalar loads.
|
||||||
int ScalarLdCost = VecTy->getNumElements() *
|
int ScalarLdCost = VecTy->getNumElements() *
|
||||||
TTI->getMemoryOpCost(Instruction::Load, ScalarTy, 1, 0);
|
TTI->getMemoryOpCost(Instruction::Load, ScalarTy, 1, 0);
|
||||||
int VecLdCost = TTI->getMemoryOpCost(Instruction::Load, ScalarTy, 1, 0);
|
int VecLdCost = TTI->getMemoryOpCost(Instruction::Load, VecTy, 1, 0);
|
||||||
return VecLdCost - ScalarLdCost;
|
return VecLdCost - ScalarLdCost;
|
||||||
}
|
}
|
||||||
case Instruction::Store: {
|
case Instruction::Store: {
|
||||||
// We know that we can merge the stores. Calculate the cost.
|
// We know that we can merge the stores. Calculate the cost.
|
||||||
int ScalarStCost = VecTy->getNumElements() *
|
int ScalarStCost = VecTy->getNumElements() *
|
||||||
TTI->getMemoryOpCost(Instruction::Store, ScalarTy, 1, 0);
|
TTI->getMemoryOpCost(Instruction::Store, ScalarTy, 1, 0);
|
||||||
int VecStCost = TTI->getMemoryOpCost(Instruction::Store, ScalarTy, 1, 0);
|
int VecStCost = TTI->getMemoryOpCost(Instruction::Store, VecTy, 1, 0);
|
||||||
return VecStCost - ScalarStCost;
|
return VecStCost - ScalarStCost;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
Reference in New Issue
Block a user