diff --git a/src/amd/compiler/aco_optimizer.cpp b/src/amd/compiler/aco_optimizer.cpp index f6365e82e59..03a8000ede8 100644 --- a/src/amd/compiler/aco_optimizer.cpp +++ b/src/amd/compiler/aco_optimizer.cpp @@ -1998,6 +1998,10 @@ remove_operand_extract(opt_ctx& ctx, aco_ptr& instr) if (instr->isSALU() || instr->isVALU()) return; + /* There might be dead splits created by emit_split_vector. */ + if (instr->opcode == aco_opcode::p_split_vector) + return; + for (unsigned i = 0; i < instr->operands.size(); i++) { Operand op = instr->operands[i]; if (!op.isTemp())