summaryrefslogtreecommitdiff
path: root/src/amd/compiler/aco_optimizer.cpp
diff options
context:
space:
mode:
authorGeorg Lehmann <dadschoorse@gmail.com>2023-03-01 15:31:23 +0100
committerMarge Bot <emma+marge@anholt.net>2023-03-02 10:59:05 +0000
commited349951cb78b59afa53a2fd4a2206ecc883e3bc (patch)
tree304e83e4d07bac37f882f693201a88b53044c2ba /src/amd/compiler/aco_optimizer.cpp
parentf19fccd9f8c368336a60ecfe94d3ef9565bc26dc (diff)
downloadmesa-ed349951cb78b59afa53a2fd4a2206ecc883e3bc.tar.gz
aco: mark mad definition as precise if the mul/add were precise
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20587>
Diffstat (limited to 'src/amd/compiler/aco_optimizer.cpp')
-rw-r--r--src/amd/compiler/aco_optimizer.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/amd/compiler/aco_optimizer.cpp b/src/amd/compiler/aco_optimizer.cpp
index 2043990fc79..d9ce6ebe0f0 100644
--- a/src/amd/compiler/aco_optimizer.cpp
+++ b/src/amd/compiler/aco_optimizer.cpp
@@ -4475,6 +4475,8 @@ combine_instruction(opt_ctx& ctx, aco_ptr<Instruction>& instr)
instr = std::move(mad);
}
instr->definitions[0] = add_instr->definitions[0];
+ instr->definitions[0].setPrecise(add_instr->definitions[0].isPrecise() ||
+ mul_instr->definitions[0].isPrecise());
/* mark this ssa_def to be re-checked for profitability and literals */
ctx.mad_infos.emplace_back(std::move(add_instr), mul_instr->definitions[0].tempId());