LLVMValueRef value[4];
for (unsigned i = 0; i < num_components + component; i++) {
- value[i] = lds_load(bld_base, type, i, dw_addr);
+ unsigned offset = i;
+ if (llvm_type_is_64bit(ctx, type))
+ offset *= 2;
+
+ value[i] = lds_load(bld_base, type, offset, dw_addr);
}
return ac_build_varying_gather_values(&ctx->ac, value, num_components, component);
*/
LLVMValueRef value[4];
for (unsigned i = component; i < num_components + component; i++) {
- value[i] = buffer_load(&ctx->bld_base, type, i,
+ unsigned offset = i;
+ if (llvm_type_is_64bit(ctx, type))
+ offset *= 2;
+
+ value[i] = buffer_load(&ctx->bld_base, type, offset,
ctx->tess_offchip_ring, base, addr, true);
}