aco: don't use a scalar temporary for reductions on GFX10
[mesa.git] / src / amd / compiler / aco_reduce_assign.cpp
index 68a0dc1576129e5e7c0e52252bf547745eec0f2b..f1015b1331655f18b7981c5f504bc00da460173f 100644 (file)
@@ -153,7 +153,7 @@ void setup_reduce_temp(Program* program)
          instr->definitions[1] = bld.def(s2);
 
          /* scalar identity temporary */
-         bool need_sitmp = program->chip_class >= GFX10 && cluster_size == 64;
+         bool need_sitmp = (program->chip_class <= GFX7 || program->chip_class >= GFX10) && instr->opcode != aco_opcode::p_reduce;
          if (instr->opcode == aco_opcode::p_exclusive_scan) {
             need_sitmp |=
                (op == imin32 || op == imin64 || op == imax32 || op == imax64 ||