radeonsi: fix ngg lds base load intrinsic llvm implementation
authorQiang Yu <yuq825@gmail.com>
Sat, 3 Dec 2022 14:19:37 +0000 (22:19 +0800)
committerQiang Yu <yuq825@gmail.com>
Sat, 3 Dec 2022 14:41:29 +0000 (22:41 +0800)
Otherwise we get llvm assertion.

Fixes: 7e1b804992d ("radeonsi: implement two lds base load intrinsics")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20142>

src/gallium/drivers/radeonsi/si_shader_llvm.c

index f669040..307662b 100644 (file)
@@ -715,10 +715,10 @@ static LLVMValueRef si_llvm_load_intrinsic(struct ac_shader_abi *abi, nir_intrin
       return ctx->esgs_ring;
 
    case nir_intrinsic_load_lds_ngg_scratch_base_amd:
-      return LLVMBuildBitCast(ctx->ac.builder, ctx->gs_ngg_scratch.value, ctx->ac.i32, "");
+      return LLVMBuildPtrToInt(ctx->ac.builder, ctx->gs_ngg_scratch.value, ctx->ac.i32, "");
 
    case nir_intrinsic_load_lds_ngg_gs_out_vertex_base_amd:
-      return LLVMBuildBitCast(ctx->ac.builder, ctx->gs_ngg_emit, ctx->ac.i32, "");
+      return LLVMBuildPtrToInt(ctx->ac.builder, ctx->gs_ngg_emit, ctx->ac.i32, "");
 
    default:
       return NULL;