From 3aaf7c103e15ff401736b49dba59e65542f08417 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Thu, 27 Oct 2022 15:08:56 +0800 Subject: [PATCH] ac/llvm: implement intrinsic for gfx11 param export MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Acked-by: Pierre-Eric Pelloux-Prayer Reviewed-by: Marek Olšák Signed-off-by: Qiang Yu Part-of: --- src/amd/llvm/ac_nir_to_llvm.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/amd/llvm/ac_nir_to_llvm.c b/src/amd/llvm/ac_nir_to_llvm.c index f129c73..b89fe70 100644 --- a/src/amd/llvm/ac_nir_to_llvm.c +++ b/src/amd/llvm/ac_nir_to_llvm.c @@ -3644,6 +3644,15 @@ static bool visit_intrinsic(struct ac_nir_context *ctx, nir_intrinsic_instr *ins case nir_intrinsic_load_streamout_buffer_amd: result = ctx->abi->load_streamout_buffer(ctx->abi, nir_intrinsic_base(instr)); break; + case nir_intrinsic_load_merged_wave_info_amd: + result = ac_get_arg(&ctx->ac, ctx->args->merged_wave_info); + break; + case nir_intrinsic_load_ring_attr_offset_amd: { + LLVMValueRef offset = ac_get_arg(&ctx->ac, ctx->args->gs_attr_offset); + offset = ac_unpack_param(&ctx->ac, offset, 0, 15); + result = LLVMBuildShl(ctx->ac.builder, offset, LLVMConstInt(ctx->ac.i32, 9, false), ""); + break; + } case nir_intrinsic_load_ordered_id_amd: result = ac_unpack_param(&ctx->ac, ac_get_arg(&ctx->ac, ctx->args->gs_tg_info), 0, 12); break; -- 2.7.4