[CostModel][X86] getMemoryOpCost - increase cost of sub-32-bit vector load/stores
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 23 Apr 2023 20:48:25 +0000 (21:48 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 23 Apr 2023 20:48:25 +0000 (21:48 +0100)
commitaca5f9aeea8da8857235347ed1363ccda5460cbb
tree9cd3fd1444e8286138253058421c9e7ca636fe22
parent97927c380f506c8e33a59eb205371171a51c66cf
[CostModel][X86] getMemoryOpCost - increase cost of sub-32-bit vector load/stores

For 8-bit/16-bit vector loads/stores we scalarize and transfer to/from the vector unit, or use the (usually slow) PINSR/PEXTR instructions.

Fixes #59867
15 files changed:
llvm/lib/Target/X86/X86TargetTransformInfo.cpp
llvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-3.ll
llvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-5.ll
llvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-7.ll
llvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-3.ll
llvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-5.ll
llvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-7.ll
llvm/test/Analysis/CostModel/X86/load_store.ll
llvm/test/Analysis/CostModel/X86/shuffle-load.ll
llvm/test/Analysis/CostModel/X86/vector-extract.ll
llvm/test/Analysis/CostModel/X86/vector-insert-inseltpoison.ll
llvm/test/Analysis/CostModel/X86/vector-insert-value.ll
llvm/test/Analysis/CostModel/X86/vector-insert.ll
llvm/test/Transforms/SLPVectorizer/X86/bool-mask.ll
llvm/test/Transforms/SLPVectorizer/X86/pr59867.ll