diff options
-rw-r--r-- | src/amd/compiler/aco_instruction_selection.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index 1cff595659c..b92d7c0eb5f 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -3447,10 +3447,11 @@ void load_buffer(isel_context *ctx, unsigned num_components, Temp dst, Temp vec = bld.tmp(RegType::vgpr, dst.size()); instr->definitions[0] = Definition(vec); bld.insert(std::move(instr)); - bld.pseudo(aco_opcode::p_as_uniform, Definition(dst), vec); + expand_vector(ctx, vec, dst, num_components, (1 << num_components) - 1); } else { instr->definitions[0] = Definition(dst); bld.insert(std::move(instr)); + emit_split_vector(ctx, dst, num_components); } } else { switch (num_bytes) { @@ -3506,9 +3507,8 @@ void load_buffer(isel_context *ctx, unsigned num_components, Temp dst, } else { bld.insert(std::move(load)); } - + emit_split_vector(ctx, dst, num_components); } - emit_split_vector(ctx, dst, num_components); } void visit_load_ubo(isel_context *ctx, nir_intrinsic_instr *instr) |