From d5db73dc06e050fc7b41e02e41a1abe9f69bf806 Mon Sep 17 00:00:00 2001 From: Mihail Moskov <28909106+corleypc@users.noreply.github.com> Date: Mon, 14 Sep 2026 15:26:46 +0300 Subject: [PATCH] fixes simd gather/scatter and masked load/store randomly crashing the compiler --- src/llvm_backend_proc.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp index ca218362e..d3cd4d14f 100644 --- a/src/llvm_backend_proc.cpp +++ b/src/llvm_backend_proc.cpp @@ -2896,7 +2896,7 @@ gb_internal lbValue lb_build_builtin_simd_proc(lbProcedure *p, Ast *expr, TypeAn case BuiltinProc_simd_gather: if (LLVM_VERSION_MAJOR >= 22) { arg_count = 3; - args[0] = ptr; align_idx = 0; + args[0] = ptr; align_idx = 1; args[1] = mask; args[2] = val; } else { @@ -2914,7 +2914,7 @@ gb_internal lbValue lb_build_builtin_simd_proc(lbProcedure *p, Ast *expr, TypeAn if (LLVM_VERSION_MAJOR >= 22) { arg_count = 3; args[0] = val; - args[1] = ptr; align_idx = 1; + args[1] = ptr; align_idx = 2; args[2] = mask; } else { args[0] = val; @@ -2944,7 +2944,7 @@ gb_internal lbValue lb_build_builtin_simd_proc(lbProcedure *p, Ast *expr, TypeAn res.value = lb_call_intrinsic(p, name, args, arg_count, types, type_count); if (align_idx >= 0) { LLVMAttributeRef align_attr = lb_create_enum_attribute(p->module->ctx, "align", alignment); - LLVMAddAttributeAtIndex(res.value, align_idx, align_attr); + LLVMAddCallSiteAttribute(res.value, align_idx, align_attr); } return res;