[TTI] BasicTTI::getInterleavedMemoryOpCost(): use getScalarizationOverhead()
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 29 Sep 2021 15:41:53 +0000 (16:41 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 29 Sep 2021 15:41:53 +0000 (16:41 +0100)
commit17f1fc1e5452186795b04fd388532f8bca26c31b
tree3d101941fb0220ba10909b52111a715872fe2dce
parent7674bd4d44921d2d110cfb56f2674d4e6e8a68e3
[TTI] BasicTTI::getInterleavedMemoryOpCost(): use getScalarizationOverhead()

getScalarizationOverhead() results in a somewhat better cost estimation than counting the insertion/extraction costs directly. Notably, this is still overestimating the costs.

Original Patch by: @lebedev.ri (Roman Lebedev)

Differential Revision: https://reviews.llvm.org/D110713
14 files changed:
llvm/include/llvm/CodeGen/BasicTTIImpl.h
llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-2.ll
llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-3.ll
llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-4.ll
llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-5.ll
llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-6.ll
llvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-2.ll
llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-2.ll
llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-3.ll
llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-4.ll
llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-5.ll
llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-6.ll
llvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-2.ll
llvm/test/Transforms/LoopVectorize/X86/interleaving.ll