Browse Source

`m[i]` on `#row_major` matrices will reduce the i-th row-vector

gingerBill 1 year ago
parent
commit
3bff922b6f
1 changed files with 7 additions and 1 deletions
  1. 7 1
      src/llvm_backend_expr.cpp

+ 7 - 1
src/llvm_backend_expr.cpp

@@ -3990,7 +3990,13 @@ gb_internal lbAddr lb_build_addr_index_expr(lbProcedure *p, Ast *expr) {
 		}
 		lbValue index = lb_build_expr(p, ie->index);
 		index = lb_emit_conv(p, index, t_int);
-		lbValue elem = lb_emit_matrix_ep(p, matrix, lb_const_int(p->module, t_int, 0), index);
+
+		lbValue elem = {};
+		if (t->Matrix.is_row_major) {
+			elem = lb_emit_matrix_ep(p, matrix, index, lb_const_int(p->module, t_int, 0));
+		} else {
+			elem = lb_emit_matrix_ep(p, matrix, lb_const_int(p->module, t_int, 0), index);
+		}
 		elem = lb_emit_conv(p, elem, alloc_type_pointer(type_of_expr(expr)));
 
 		auto index_tv = type_and_value_of_expr(ie->index);