aco: fix combine_salu_not_bitwise() when SCC is used
authorDaniel Schürmann <daniel@schuermann.dev>
Tue, 28 Jan 2020 11:32:09 +0000 (12:32 +0100)
committerDaniel Schürmann <daniel@schuermann.dev>
Tue, 28 Jan 2020 17:14:02 +0000 (18:14 +0100)
Previously, we didn't use the SCC bit, and thus, we didn't care about it.
With 'aco: Transform uniform bitwise instructions to 32-bit if possible.'
that changed, so that we have to handle it.

Fixes: 8a32f57fff56b3b94f1b5589feba38016f39427c ('aco: Transform uniform bitwise instructions to 32-bit if possible.')
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3598>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3598>

src/amd/compiler/aco_optimizer.cpp

index 93d934c69edd7e5e43a3908ffe99bffdd755c121..9e606c880f477c883594d21f9e28ab317dc2061a 100644 (file)
@@ -1810,6 +1810,7 @@ bool combine_salu_not_bitwise(opt_ctx& ctx, aco_ptr<Instruction>& instr)
 
    /* create instruction */
    std::swap(instr->definitions[0], op2_instr->definitions[0]);
+   std::swap(instr->definitions[1], op2_instr->definitions[1]);
    ctx.uses[instr->operands[0].tempId()]--;
    ctx.info[op2_instr->definitions[0].tempId()].label = 0;