aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2020-05-18 17:03:21 +0200
committerMarge Bot <[email protected]>2020-05-29 11:20:58 +0000
commit8ece71507db9ca8c1cd01974f81a17d1f52efd0c (patch)
treed5e5bda6f444dfe2c9305038028297a50cdf46d7
parent2e0ea9bccae5d280e163479d9c46d0ad8b29a504 (diff)
aco: allocate a temp VGPR for some 8-bit/16-bit reduction ops on GFX10
Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5148>
-rw-r--r--src/amd/compiler/aco_reduce_assign.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/amd/compiler/aco_reduce_assign.cpp b/src/amd/compiler/aco_reduce_assign.cpp
index 3dd396e2569..708f401d5fe 100644
--- a/src/amd/compiler/aco_reduce_assign.cpp
+++ b/src/amd/compiler/aco_reduce_assign.cpp
@@ -125,10 +125,13 @@ void setup_reduce_temp(Program* program)
op == fmin64 || op == fmax64 || op == umin64 ||
op == umax64 || op == imin64 || op == imax64 ||
op == imul64;
+ bool gfx10_need_vtmp = op == imul8 || op == imax8 || op == imin8 || op == umin8 ||
+ op == imul16 || op == imax16 || op == imin16 || op == umin16 ||
+ op == iadd64;
if (program->chip_class >= GFX10 && cluster_size == 64)
need_vtmp = true;
- if (program->chip_class >= GFX10 && op == iadd64)
+ if (program->chip_class >= GFX10 && gfx10_need_vtmp)
need_vtmp = true;
if (program->chip_class <= GFX7)
need_vtmp = true;