aco: fix nir_op_pack_32_4x8 handling
I started seeing
ACO ERROR:
In file ../src/amd/compiler/aco_validate.cpp:98
Operand and Definition types do not match: s1: %44 = p_parallelcopy %158
test_basic: ../src/amd/compiler/aco_interface.cpp:85: void validate(aco::Program*):
Assertion `is_valid' failed.
since commit 52ee4cf229 ("nir/builder: Teach nir_pack_bits and
nir_unpack_bits about 32_4x8").
Fixes: e0d232c2fc ("aco: implement nir_op_pack_32_4x8"). I
Suggested-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27972>
This commit is contained in:
@@ -759,7 +759,7 @@ get_alu_src(struct isel_context* ctx, nir_alu_src src, unsigned size = 1)
|
||||
vec_instr->definitions[0] = Definition(dst);
|
||||
ctx->block->instructions.emplace_back(std::move(vec_instr));
|
||||
ctx->allocated_vec.emplace(dst.id(), elems);
|
||||
return vec.type() == RegType::sgpr ? Builder(ctx->program, ctx->block).as_uniform(dst) : dst;
|
||||
return as_uniform ? Builder(ctx->program, ctx->block).as_uniform(dst) : dst;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user