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 <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23293>
(cherry picked from commit a2ae6518c2)
This commit is contained in:
Konstantin Seurer 2023-04-28 23:15:48 +02:00 committed by Eric Engestrom
parent f9b3314732
commit cdbe5cef34
2 changed files with 13 additions and 1 deletions

View file

@ -814,7 +814,7 @@
"description": "gallivm: Fix gather/scatter types for newer llvm",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null
},

View file

@ -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);