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: 638cbc21a1 ("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>
(cherry picked from commit 26e53e3afa)
This commit is contained in:
Rhys Perry 2020-10-14 21:42:01 +01:00 committed by Dylan Baker
parent 1ddbe3aa11
commit 562e89ff0d
2 changed files with 2 additions and 2 deletions

View file

@ -1300,7 +1300,7 @@
"description": "aco: ignore the ACO-inserted continue in create_continue_phis()",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "638cbc21a1c01c87f620edc820e913e48aba2287"
},

View file

@ -9431,7 +9431,7 @@ static Operand create_continue_phis(isel_context *ctx, unsigned first, unsigned
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;