diff options
| author | gingerBill <bill@gingerbill.org> | 2021-11-06 17:23:33 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-11-06 17:23:33 +0000 |
| commit | 3d3785a7f1535cfa213f074704085f42ae02638a (patch) | |
| tree | f7387a64a44d747b02b3a1ff481e9cbbd969abd2 /src/llvm_backend_general.cpp | |
| parent | 5df15b5724e1c25366d39b4bbb2f24b33068d5f6 (diff) | |
Remove many LLVM optimization passes which were causes UB due to them assuming C-like behaviour incompatible with Odin
Diffstat (limited to 'src/llvm_backend_general.cpp')
| -rw-r--r-- | src/llvm_backend_general.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp index 68bba2206..b671f0c8f 100644 --- a/src/llvm_backend_general.cpp +++ b/src/llvm_backend_general.cpp @@ -1084,7 +1084,7 @@ lbValue lb_addr_load(lbProcedure *p, lbAddr const &addr) { scalars[i] = LLVMConstInt(lb_type(p->module, t_u32), addr.swizzle.indices[i], false); } LLVMValueRef mask = LLVMConstVector(scalars, addr.swizzle.count); - LLVMValueRef sv = LLVMBuildShuffleVector(p->builder, v, LLVMGetUndef(vector_type), mask, ""); + LLVMValueRef sv = llvm_basic_shuffle(p, v, mask); LLVMValueRef dst = LLVMBuildPointerCast(p->builder, ptr.value, LLVMPointerType(LLVMTypeOf(sv), 0), ""); LLVMBuildStore(p->builder, sv, dst); |