aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_proc.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-05-26 00:39:34 +0100
committergingerBill <bill@gingerbill.org>2022-05-26 00:39:34 +0100
commitb95ca80f85efc3f7be292d9c751a742e43e41b2e (patch)
treefbb883b466a2e00ab82be52731294043a804b547 /src/llvm_backend_proc.cpp
parent83d880a94a783e2c78c4ab0c1c2f1740c8ceac72 (diff)
Fix `simd_shuffle`
Diffstat (limited to 'src/llvm_backend_proc.cpp')
-rw-r--r--src/llvm_backend_proc.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp
index 1ec71bc21..05477d84b 100644
--- a/src/llvm_backend_proc.cpp
+++ b/src/llvm_backend_proc.cpp
@@ -1289,9 +1289,10 @@ lbValue lb_build_builtin_simd_proc(lbProcedure *p, Ast *expr, TypeAndValue const
i64 indices_count = ce->args.count-2;
i64 max_count = vt->SimdVector.count*2;
+ GB_ASSERT(indices_count <= max_count);
LLVMValueRef *values = gb_alloc_array(temporary_allocator(), LLVMValueRef, indices_count);
- for (isize i = 0; i < max_count; i++) {
+ for (isize i = 0; i < indices_count; i++) {
lbValue idx = lb_build_expr(p, ce->args[i+2]);
GB_ASSERT(LLVMIsConstant(idx.value));
values[i] = idx.value;