diff options
| author | Matias Fernandez <matiasfmolinari@gmail.com> | 2023-05-08 23:52:21 -0400 |
|---|---|---|
| committer | Matias Fernandez <matiasfmolinari@gmail.com> | 2023-05-08 23:52:21 -0400 |
| commit | 1ed105205c23910b8f017fa8de09caca29a3781f (patch) | |
| tree | cbeb73d7c8fdac621df9d683acd5868b1c04d371 /src/llvm_backend_expr.cpp | |
| parent | 46da53ba151b410efb8f4646008e1ebdcfa6ad40 (diff) | |
| parent | 182b269e4642be2e40afbb39f7d8a9ac0a5aeed5 (diff) | |
Merge branch 'master' of https://github.com/matias-eduardo/Odin
Diffstat (limited to 'src/llvm_backend_expr.cpp')
| -rw-r--r-- | src/llvm_backend_expr.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/llvm_backend_expr.cpp b/src/llvm_backend_expr.cpp index 028e90f51..1b43aac86 100644 --- a/src/llvm_backend_expr.cpp +++ b/src/llvm_backend_expr.cpp @@ -514,6 +514,9 @@ gb_internal bool lb_is_matrix_simdable(Type *t) { // it's not aligned well enough to use the vector instructions return false; } + if ((mt->Matrix.row_count & 1) ^ (mt->Matrix.column_count & 1)) { + return false; + } if (elem->kind == Type_Basic) { switch (elem->Basic.kind) { @@ -2833,7 +2836,7 @@ gb_internal lbValue lb_make_soa_pointer(lbProcedure *p, Type *type, lbValue cons lbValue ptr = lb_emit_struct_ep(p, v.addr, 0); lbValue idx = lb_emit_struct_ep(p, v.addr, 1); lb_emit_store(p, ptr, addr); - lb_emit_store(p, idx, index); + lb_emit_store(p, idx, lb_emit_conv(p, index, t_int)); return lb_addr_load(p, v); } |