radeonsi: fix doubles and int64
Fixes: 57bd73e229
- radeonsi: remove llvm_type_is_64bit
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
This commit is contained in:
@@ -88,7 +88,7 @@ static LLVMValueRef si_llvm_load_input_gs(struct ac_shader_abi *abi,
|
|||||||
|
|
||||||
LLVMValueRef ptr = ac_build_gep0(&ctx->ac, ctx->esgs_ring, vtx_offset);
|
LLVMValueRef ptr = ac_build_gep0(&ctx->ac, ctx->esgs_ring, vtx_offset);
|
||||||
LLVMValueRef value = LLVMBuildLoad(ctx->ac.builder, ptr, "");
|
LLVMValueRef value = LLVMBuildLoad(ctx->ac.builder, ptr, "");
|
||||||
if (ac_get_type_size(type) == 64) {
|
if (ac_get_type_size(type) == 8) {
|
||||||
ptr = LLVMBuildGEP(ctx->ac.builder, ptr,
|
ptr = LLVMBuildGEP(ctx->ac.builder, ptr,
|
||||||
&ctx->ac.i32_1, 1, "");
|
&ctx->ac.i32_1, 1, "");
|
||||||
LLVMValueRef values[2] = {
|
LLVMValueRef values[2] = {
|
||||||
@@ -122,7 +122,7 @@ static LLVMValueRef si_llvm_load_input_gs(struct ac_shader_abi *abi,
|
|||||||
|
|
||||||
value = ac_build_buffer_load(&ctx->ac, ctx->esgs_ring, 1, ctx->i32_0,
|
value = ac_build_buffer_load(&ctx->ac, ctx->esgs_ring, 1, ctx->i32_0,
|
||||||
vtx_offset, soffset, 0, ac_glc, true, false);
|
vtx_offset, soffset, 0, ac_glc, true, false);
|
||||||
if (ac_get_type_size(type) == 64) {
|
if (ac_get_type_size(type) == 8) {
|
||||||
LLVMValueRef value2;
|
LLVMValueRef value2;
|
||||||
soffset = LLVMConstInt(ctx->i32, (param * 4 + swizzle + 1) * 256, 0);
|
soffset = LLVMConstInt(ctx->i32, (param * 4 + swizzle + 1) * 256, 0);
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ static LLVMValueRef si_nir_load_input_gs(struct ac_shader_abi *abi,
|
|||||||
LLVMValueRef value[4];
|
LLVMValueRef value[4];
|
||||||
for (unsigned i = 0; i < num_components; i++) {
|
for (unsigned i = 0; i < num_components; i++) {
|
||||||
unsigned offset = i;
|
unsigned offset = i;
|
||||||
if (ac_get_type_size(type) == 64)
|
if (ac_get_type_size(type) == 8)
|
||||||
offset *= 2;
|
offset *= 2;
|
||||||
|
|
||||||
offset += component;
|
offset += component;
|
||||||
|
@@ -304,7 +304,7 @@ static LLVMValueRef buffer_load(struct si_shader_context *ctx,
|
|||||||
return LLVMBuildBitCast(ctx->ac.builder, value, vec_type, "");
|
return LLVMBuildBitCast(ctx->ac.builder, value, vec_type, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ac_get_type_size(type) != 64) {
|
if (ac_get_type_size(type) != 8) {
|
||||||
value = ac_build_buffer_load(&ctx->ac, buffer, 4, NULL, base, offset,
|
value = ac_build_buffer_load(&ctx->ac, buffer, 4, NULL, base, offset,
|
||||||
0, ac_glc, can_speculate, false);
|
0, ac_glc, can_speculate, false);
|
||||||
|
|
||||||
@@ -345,7 +345,7 @@ static LLVMValueRef lshs_lds_load(struct si_shader_context *ctx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Split 64-bit loads. */
|
/* Split 64-bit loads. */
|
||||||
if (ac_get_type_size(type) == 64) {
|
if (ac_get_type_size(type) == 8) {
|
||||||
LLVMValueRef lo, hi;
|
LLVMValueRef lo, hi;
|
||||||
|
|
||||||
lo = lshs_lds_load(ctx, ctx->i32, swizzle, dw_addr);
|
lo = lshs_lds_load(ctx, ctx->i32, swizzle, dw_addr);
|
||||||
@@ -489,7 +489,7 @@ static LLVMValueRef si_nir_load_tcs_varyings(struct ac_shader_abi *abi,
|
|||||||
LLVMValueRef value[4];
|
LLVMValueRef value[4];
|
||||||
for (unsigned i = 0; i < num_components; i++) {
|
for (unsigned i = 0; i < num_components; i++) {
|
||||||
unsigned offset = i;
|
unsigned offset = i;
|
||||||
if (ac_get_type_size(type) == 64)
|
if (ac_get_type_size(type) == 8)
|
||||||
offset *= 2;
|
offset *= 2;
|
||||||
|
|
||||||
offset += component;
|
offset += component;
|
||||||
@@ -541,7 +541,7 @@ LLVMValueRef si_nir_load_input_tes(struct ac_shader_abi *abi,
|
|||||||
LLVMValueRef value[4];
|
LLVMValueRef value[4];
|
||||||
for (unsigned i = 0; i < num_components; i++) {
|
for (unsigned i = 0; i < num_components; i++) {
|
||||||
unsigned offset = i;
|
unsigned offset = i;
|
||||||
if (ac_get_type_size(type) == 64) {
|
if (ac_get_type_size(type) == 8) {
|
||||||
offset *= 2;
|
offset *= 2;
|
||||||
if (offset == 4) {
|
if (offset == 4) {
|
||||||
ubyte name = info->input_semantic_name[driver_location + 1];
|
ubyte name = info->input_semantic_name[driver_location + 1];
|
||||||
|
Reference in New Issue
Block a user