diff options
author | Benjamin Maxwell <benjamin.maxwell@arm.com> | 2025-02-26 11:37:34 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-26 11:37:34 +0000 |
commit | 900220d444257633cc7d1be1475d4da1be58e0ed (patch) | |
tree | 1474fe0a3c7638dc3b12e8ed4a0df4d6fb6fd0f3 /libcxx/include/__algorithm/minmax.h | |
parent | 178b9e5375dd42a4b590803a81b3831923288c91 (diff) | |
download | llvm-900220d444257633cc7d1be1475d4da1be58e0ed.zip llvm-900220d444257633cc7d1be1475d4da1be58e0ed.tar.gz llvm-900220d444257633cc7d1be1475d4da1be58e0ed.tar.bz2 |
[CostModel] Handle vector struct results and cost `llvm.sincos` (#123210)
This patch updates the cost model to cost intrinsics that return
multiple values (in structs) correctly. Previously, the cost model only
thought intrinsics that return `VectorType` need scalarizing, which
meant it cost intrinsics that return multiple vectors (that need
scalarizing) way too cheap (giving it the cost of a single function
call).
This patch also adds a custom cost for llvm.sincos when a vector
function library is available, as certain VFs can be expanded (later in
code gen) to a vector function, reducing the cost to a single call (+
the possible loads from the vector function returns values via output
pointers).
Diffstat (limited to 'libcxx/include/__algorithm/minmax.h')
0 files changed, 0 insertions, 0 deletions