From a400928f4a64c657c214672a39801130cceaf79b Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Mon, 14 Oct 2019 19:27:52 +0100 Subject: [PATCH] aco: fix 64-bit p_extract_vector on 32-bit p_create_vector MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Rhys Perry Reviewed-by: Daniel Schürmann --- src/amd/compiler/aco_optimizer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/amd/compiler/aco_optimizer.cpp b/src/amd/compiler/aco_optimizer.cpp index 501e48162be..4a287336d0d 100644 --- a/src/amd/compiler/aco_optimizer.cpp +++ b/src/amd/compiler/aco_optimizer.cpp @@ -765,7 +765,8 @@ void label_instruction(opt_ctx &ctx, aco_ptr& instr) if (!ctx.info[instr->operands[0].tempId()].is_vec()) break; Instruction* vec = ctx.info[instr->operands[0].tempId()].instr; - if (vec->definitions[0].getTemp().size() == vec->operands.size()) { /* TODO: what about 64bit or other combinations? */ + if (vec->definitions[0].getTemp().size() == vec->operands.size() && /* TODO: what about 64bit or other combinations? */ + vec->operands[0].size() == instr->definitions[0].size()) { /* convert this extract into a mov instruction */ Operand vec_op = vec->operands[instr->operands[1].constantValue()]; -- 2.30.2