From a2ae6518c2d70dca9e3e9e93dc8e38a18f73c14e Mon Sep 17 00:00:00 2001 From: Konstantin Seurer Date: Fri, 28 Apr 2023 23:15:48 +0200 Subject: [PATCH] gallivm: Fix gather/scatter types for newer llvm The types changed with opaque pointer support. Fixes a bunch of lavapipe regressions. Cc: mesa-stable Reviewed-by: Roland Scheidegger Part-of: --- src/gallium/auxiliary/gallivm/lp_bld_gather.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_gather.c b/src/gallium/auxiliary/gallivm/lp_bld_gather.c index b93251b4444..f55f2f3145e 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_gather.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_gather.c @@ -611,8 +611,14 @@ lp_build_masked_gather(struct gallivm_state *gallivm, LLVMValueRef args[4]; char intrin_name[64]; +#if LLVM_VERSION_MAJOR >= 16 + snprintf(intrin_name, 64, "llvm.masked.gather.v%ui%u.v%up0", + length, bit_size, length); +#else snprintf(intrin_name, 64, "llvm.masked.gather.v%ui%u.v%up0i%u", length, bit_size, length, bit_size); +#endif + args[0] = offset_ptr; args[1] = lp_build_const_int32(gallivm, bit_size / 8); args[2] = LLVMBuildICmp(builder, LLVMIntNE, exec_mask, @@ -635,8 +641,14 @@ lp_build_masked_scatter(struct gallivm_state *gallivm, LLVMValueRef args[4]; char intrin_name[64]; +#if LLVM_VERSION_MAJOR >= 16 + snprintf(intrin_name, 64, "llvm.masked.scatter.v%ui%u.v%up0", + length, bit_size, length); +#else snprintf(intrin_name, 64, "llvm.masked.scatter.v%ui%u.v%up0i%u", length, bit_size, length, bit_size); +#endif + args[0] = value_vec; args[1] = offset_ptr; args[2] = lp_build_const_int32(gallivm, bit_size / 8);