aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2025-04-11 22:51:28 +0200
committerGitHub <noreply@github.com>2025-04-11 22:51:28 +0200
commit29b03adab1a36d67dca2fb03db24b8a1d693f075 (patch)
treeedd781a7680f8cff13844768a903b7db706b77c4
parent23a2821353312748e21394d4f8c2c49b4edef587 (diff)
parent41d4ddbc5e8f57b8b901ce09fc5eab627ba440c2 (diff)
Merge pull request #5030 from Kelimion/type_elem_type
Allow intrinsics.type_elem_type(simd_vector) to return the element type.
-rw-r--r--core/reflect/reflect.odin9
-rw-r--r--src/check_builtin.cpp1
2 files changed, 10 insertions, 0 deletions
diff --git a/core/reflect/reflect.odin b/core/reflect/reflect.odin
index 7f79acb77..401c664b8 100644
--- a/core/reflect/reflect.odin
+++ b/core/reflect/reflect.odin
@@ -176,6 +176,7 @@ typeid_elem :: proc(id: typeid) -> typeid {
case Type_Info_Enumerated_Array: return v.elem.id
case Type_Info_Slice: return v.elem.id
case Type_Info_Dynamic_Array: return v.elem.id
+ case Type_Info_Simd_Vector: return v.elem.id
}
return id
}
@@ -260,7 +261,11 @@ length :: proc(val: any) -> int {
} else {
return (^runtime.Raw_String)(val.data).len
}
+
+ case Type_Info_Simd_Vector:
+ return a.count
}
+
return 0
}
@@ -286,7 +291,11 @@ capacity :: proc(val: any) -> int {
case Type_Info_Map:
return runtime.map_cap((^runtime.Raw_Map)(val.data)^)
+
+ case Type_Info_Simd_Vector:
+ return a.count
}
+
return 0
}
diff --git a/src/check_builtin.cpp b/src/check_builtin.cpp
index fa3218759..f66a8605c 100644
--- a/src/check_builtin.cpp
+++ b/src/check_builtin.cpp
@@ -5550,6 +5550,7 @@ gb_internal bool check_builtin_procedure(CheckerContext *c, Operand *operand, As
case Type_EnumeratedArray: operand->type = bt->EnumeratedArray.elem; break;
case Type_Slice: operand->type = bt->Slice.elem; break;
case Type_DynamicArray: operand->type = bt->DynamicArray.elem; break;
+ case Type_SimdVector: operand->type = bt->SimdVector.elem; break;
}
}
operand->mode = Addressing_Type;