aco: move s_andn2_b64 instructions out of the p_discard_if
authorRhys Perry <pendingchaos02@gmail.com>
Tue, 8 Oct 2019 12:40:17 +0000 (13:40 +0100)
committerRhys Perry <pendingchaos02@gmail.com>
Wed, 9 Oct 2019 16:19:02 +0000 (16:19 +0000)
commit2ea9e59e8d976ec77800d2a20645087b96d1e241
tree8894dbfeb3cc5cf7ca5333d3d49f1f250d4c01c7
parentf584c427077bfacea9feef5846c92896e7101449
aco: move s_andn2_b64 instructions out of the p_discard_if

And use a new p_discard_early_exit instruction. This fixes some cases
where a definition having the same register as an operand causes issues.

v2: rename instruction to p_exit_early_if
v2: modify the existing instruction instead of creating a new one
v3: merge the "i == num - 1" IFs

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
src/amd/compiler/aco_insert_exec_mask.cpp
src/amd/compiler/aco_instruction_selection.cpp
src/amd/compiler/aco_lower_to_hw_instr.cpp
src/amd/compiler/aco_opcodes.py
src/amd/compiler/aco_scheduler.cpp