diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2025-01-24 15:13:13 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-24 15:13:13 +0000 |
commit | a12d7e4b611f0db2525da68f5576beaeeb6c84ac (patch) | |
tree | 4d733e6afdb9964e415e01414333a58442b5d9d1 /llvm/lib/CodeGen/MachineInstr.cpp | |
parent | c546b5317c518987a5f45dd4c4d25321a955c758 (diff) | |
download | llvm-a12d7e4b611f0db2525da68f5576beaeeb6c84ac.zip llvm-a12d7e4b611f0db2525da68f5576beaeeb6c84ac.tar.gz llvm-a12d7e4b611f0db2525da68f5576beaeeb6c84ac.tar.bz2 |
[SLP] getVectorCallCosts - don't provide scalar argument data for vector IntrinsicCostAttributes (#124254)
getVectorCallCosts determines the cost of a vector intrinsic, based off
an existing scalar intrinsic call - but we were including the scalar
argument data to the IntrinsicCostAttributes, which meant that not only
was the cost calculation not type-only based, it was making incorrect
assumptions about constant values etc.
This also exposed an issue that x86 relied on fallback calculations for
funnel shift costs - this is great when we have the argument data as
that improves the accuracy of uniform shift amounts etc., but meant that
type-only costs would default to Cost=2 for all custom lowered funnel
shifts, which was far too cheap.
This is the reverse of #124129 where we weren't including argument data
when we could.
Fixes #63980
Diffstat (limited to 'llvm/lib/CodeGen/MachineInstr.cpp')
0 files changed, 0 insertions, 0 deletions