diff --git a/src/amd/compiler/aco_insert_exec_mask.cpp b/src/amd/compiler/aco_insert_exec_mask.cpp index 527d63627e0..909c1735453 100644 --- a/src/amd/compiler/aco_insert_exec_mask.cpp +++ b/src/amd/compiler/aco_insert_exec_mask.cpp @@ -107,10 +107,13 @@ bool pred_by_exec_mask(aco_ptr& instr) { if (instr->format == Format::PSEUDO) { switch (instr->opcode) { case aco_opcode::p_create_vector: - return instr->definitions[0].getTemp().type() == RegType::vgpr; case aco_opcode::p_extract_vector: case aco_opcode::p_split_vector: - return instr->operands[0].getTemp().type() == RegType::vgpr; + for (Definition def : instr->definitions) { + if (def.getTemp().type() == RegType::vgpr) + return true; + } + return false; case aco_opcode::p_spill: case aco_opcode::p_reload: return false;