commit | 26e53e3afa7ee971fc0e686d2d00c5941264be1f | [log] [tgz] |
---|---|---|
author | Rhys Perry <pendingchaos02@gmail.com> | Wed Oct 14 21:42:01 2020 +0100 |
committer | Marge Bot <eric+marge@anholt.net> | Tue Oct 27 19:53:38 2020 +0000 |
tree | 777ee261d8b99b9fcb36adbf15ef25719df2bdfd | |
parent | fa5acbbcdea80ace5232648a7b885d06bfd2872a [diff] |
aco: ignore the ACO-inserted continue in create_continue_phis() Otherwise, for loops without continue_or_break, create_continue_phis() always returns an undef operand. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Fixes: 638cbc21a1c ("aco: handle when ACO adds new continue edges") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2848 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7148>
diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index 3111d7f..677fac1 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp
@@ -9584,7 +9584,7 @@ continue; } - if (block.kind & block_kind_continue) { + if ((block.kind & block_kind_continue) && block.index != last) { vals[idx - first] = header_phi->operands[next_pred]; next_pred++; continue;