diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c index 85b2e8a207e..d04b84700c7 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c @@ -206,7 +206,8 @@ emit_fetch_temporary( struct lp_build_tgsi_aos_context * bld = lp_aos_context(bld_base); LLVMBuilderRef builder = bld_base->base.gallivm->builder; LLVMValueRef temp_ptr = bld->temps[reg->Register.Index]; - LLVMValueRef res = LLVMBuildLoad(builder, temp_ptr, ""); + LLVMTypeRef vec_type = lp_build_vec_type(bld->bld_base.base.gallivm, bld->bld_base.base.type); + LLVMValueRef res = LLVMBuildLoad2(builder, vec_type, temp_ptr, ""); assert(!reg->Register.Indirect); if (!res) return bld->bld_base.base.undef; @@ -286,8 +287,8 @@ lp_emit_store_aos( if (mask) { LLVMValueRef orig_value; - - orig_value = LLVMBuildLoad(builder, ptr, ""); + LLVMTypeRef vec_type = lp_build_vec_type(bld->bld_base.base.gallivm, bld->bld_base.base.type); + orig_value = LLVMBuildLoad2(builder, vec_type, ptr, ""); value = lp_build_select(&bld->bld_base.base, mask, value, orig_value); }