package core.intrinsics.simd
-simd :: package simd
+#local simd :: package simd
i8x16 :: #type simd.i8x16
i16x8 :: #type simd.i16x8
}
// NOTE: Try operator overloading before checking everything else.
- if ((binop->left->type != NULL && binop->left->type->kind != Type_Kind_Basic)
- || (binop->right->type != NULL && binop->right->type->kind != Type_Kind_Basic)) {
+ if ((binop->left->type != NULL && (binop->left->type->kind != Type_Kind_Basic || (binop->left->type->Basic.flags & Basic_Flag_SIMD) != 0))
+ || (binop->right->type != NULL && (binop->right->type->kind != Type_Kind_Basic || (binop->right->type->Basic.flags & Basic_Flag_SIMD) != 0))) {
AstCall *implicit_call = binaryop_try_operator_overload(binop, NULL);
if (implicit_call == (AstCall *) &node_that_signals_a_yield)
bh_printf("%b\n", err->pos.line_start, linelength);
char* pointer_str = bh_alloc_array(global_scratch_allocator, char, linelength + numlen);
- memset(pointer_str, ' ', numlen);
+ memset(pointer_str, ' ', linelength + numlen);
memcpy(pointer_str + numlen - 1, err->pos.line_start, first_char);
memset(pointer_str + first_char + numlen - 1, ' ', err->pos.column - first_char);
memset(pointer_str + err->pos.column + numlen - 1, '~', err->pos.length - 1);