[TTI][AArch64] Cost model insertelement and indexed LD1 instructions
authorSjoerd Meijer <smeijer@nvidia.com>
Thu, 9 Feb 2023 16:07:17 +0000 (16:07 +0000)
committerSjoerd Meijer <smeijer@nvidia.com>
Thu, 9 Feb 2023 16:28:11 +0000 (16:28 +0000)
commit079c488c66056f7bf22c30ee280489f6c43b7658
tree52f835ea8daaaa59691031adbb6428ae58baeeeb
parentec094d259ecfdd82b951f644bc9a28e487e53c60
[TTI][AArch64] Cost model insertelement and indexed LD1 instructions

An indexed LD1 instruction, or "ASIMD load, 1 element, one lane, B/H/S"
instruction that loads a value and inserts an element into a vector is
an expensive instruction. It has a latency of 8 on modern cores. We
generate an indexed LD1 when an insertelement instruction has a load as an
operand and this patch is recognising and makes indexed LD1 more expensive.

Differential Revision: https://reviews.llvm.org/D141602
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
llvm/test/Analysis/CostModel/AArch64/insert-extract.ll