diff --git a/src/asahi/compiler/agx_pack.c b/src/asahi/compiler/agx_pack.c index fb4fda2a116..2272ea40dc5 100644 --- a/src/asahi/compiler/agx_pack.c +++ b/src/asahi/compiler/agx_pack.c @@ -727,6 +727,11 @@ agx_pack_binary(agx_context *ctx, struct util_dynarray *emission) struct util_dynarray fixups; util_dynarray_init(&fixups, ctx); + agx_foreach_instr_global_safe(ctx, I) { + if (I->op == AGX_OPCODE_LOGICAL_END) + agx_remove_instruction(I); + } + agx_foreach_block(ctx, block) { /* Relative to the start of the binary, the block begins at the current * number of bytes emitted */ diff --git a/src/asahi/compiler/agx_register_allocate.c b/src/asahi/compiler/agx_register_allocate.c index 7d4efa403a8..b4cd2a1c6cc 100644 --- a/src/asahi/compiler/agx_register_allocate.c +++ b/src/asahi/compiler/agx_register_allocate.c @@ -596,7 +596,6 @@ agx_ra(agx_context *ctx) switch (I->op) { /* Pseudoinstructions for RA must be removed now */ case AGX_OPCODE_PHI: - case AGX_OPCODE_LOGICAL_END: case AGX_OPCODE_PRELOAD: agx_remove_instruction(I); break;