mirror of
https://github.com/odin-lang/Odin.git
synced 2026-02-19 01:18:22 +00:00
Allow basic arithmetic operations for vectors
This commit is contained in:
@@ -1700,7 +1700,7 @@ void ir_print_instr(irFileBuffer *f, irModule *m, irValue *value) {
|
||||
case irInstr_BinaryOp: {
|
||||
irInstrBinaryOp *bo = &value->Instr.BinaryOp;
|
||||
Type *type = base_type(ir_type(bo->left));
|
||||
Type *elem_type = type;
|
||||
Type *elem_type = base_array_type(type);
|
||||
|
||||
ir_fprintf(f, "%%%d = ", value->index);
|
||||
|
||||
|
||||
@@ -974,11 +974,20 @@ bool is_type_poly_proc(Type *t) {
|
||||
t = base_type(t);
|
||||
return t->kind == Type_Proc && t->Proc.is_polymorphic;
|
||||
}
|
||||
bool is_type_simd_vector(Type *t) {
|
||||
t = base_type(t);
|
||||
return t->kind == Type_SimdVector;
|
||||
}
|
||||
|
||||
Type *base_array_type(Type *t) {
|
||||
if (is_type_array(t)) {
|
||||
t = base_type(t);
|
||||
return t->Array.elem;
|
||||
}
|
||||
if (is_type_simd_vector(t)) {
|
||||
t = base_type(t);
|
||||
return t->SimdVector.elem;
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
@@ -987,10 +996,6 @@ bool is_type_generic(Type *t) {
|
||||
return t->kind == Type_Generic;
|
||||
}
|
||||
|
||||
bool is_type_simd_vector(Type *t) {
|
||||
t = base_type(t);
|
||||
return t->kind == Type_SimdVector;
|
||||
}
|
||||
|
||||
|
||||
Type *core_array_type(Type *t) {
|
||||
|
||||
Reference in New Issue
Block a user