From 37a15ba53a8a7eff3fc16b09f784f4d59fbf35b6 Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Wed, 17 Jan 2024 12:15:49 +0100 Subject: [PATCH] ac/llvm: implement as_uniform and ballot_relaxed Reviewed-by: Rhys Perry Part-of: --- src/amd/llvm/ac_nir_to_llvm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/amd/llvm/ac_nir_to_llvm.c b/src/amd/llvm/ac_nir_to_llvm.c index 1d7db8580b0..04b2d9f442a 100644 --- a/src/amd/llvm/ac_nir_to_llvm.c +++ b/src/amd/llvm/ac_nir_to_llvm.c @@ -3038,6 +3038,7 @@ static bool visit_intrinsic(struct ac_nir_context *ctx, nir_intrinsic_instr *ins switch (instr->intrinsic) { case nir_intrinsic_ballot: + case nir_intrinsic_ballot_relaxed: result = ac_build_ballot(&ctx->ac, get_src(ctx, instr->src[0])); if (instr->def.bit_size > ctx->ac.wave_size) { LLVMTypeRef dest_type = LLVMIntTypeInContext(ctx->ac.context, instr->def.bit_size); @@ -3058,6 +3059,7 @@ static bool visit_intrinsic(struct ac_nir_context *ctx, nir_intrinsic_instr *ins ac_build_readlane(&ctx->ac, get_src(ctx, instr->src[0]), get_src(ctx, instr->src[1])); break; case nir_intrinsic_read_first_invocation: + case nir_intrinsic_as_uniform: result = ac_build_readlane(&ctx->ac, get_src(ctx, instr->src[0]), NULL); break; case nir_intrinsic_load_subgroup_invocation: