mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 23:28:48 +00:00
Add tests for type_elem_type on SIMD vectors
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
// Tests "core:reflect/reflect".
|
// Tests "core:reflect/reflect".
|
||||||
package test_core_reflect
|
package test_core_reflect
|
||||||
|
|
||||||
|
import "base:intrinsics"
|
||||||
import "core:reflect"
|
import "core:reflect"
|
||||||
import "core:testing"
|
import "core:testing"
|
||||||
|
|
||||||
@@ -261,3 +262,73 @@ test_as_f64 :: proc(t: ^testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test
|
||||||
|
test_simd_vectors :: proc(t: ^testing.T) {
|
||||||
|
{
|
||||||
|
V :: #simd[2]u64
|
||||||
|
v: V
|
||||||
|
E := typeid_of(u64)
|
||||||
|
|
||||||
|
testing.expect(t, typeid_of(intrinsics.type_elem_type(V)) == E)
|
||||||
|
testing.expect(t, reflect.typeid_elem(V) == E)
|
||||||
|
testing.expect(t, reflect.length(v) == len(V))
|
||||||
|
testing.expect(t, reflect.capacity(v) == cap(V))
|
||||||
|
testing.expect(t, reflect.length(v) == 2)
|
||||||
|
}
|
||||||
|
{
|
||||||
|
V :: #simd[4]f32
|
||||||
|
v: V
|
||||||
|
E := typeid_of(f32)
|
||||||
|
|
||||||
|
testing.expect(t, typeid_of(intrinsics.type_elem_type(V)) == E)
|
||||||
|
testing.expect(t, reflect.typeid_elem(V) == E)
|
||||||
|
testing.expect(t, reflect.length(v) == len(V))
|
||||||
|
testing.expect(t, reflect.capacity(v) == cap(V))
|
||||||
|
testing.expect(t, reflect.length(v) == 4)
|
||||||
|
}
|
||||||
|
{
|
||||||
|
V :: #simd[8]i16
|
||||||
|
v: V
|
||||||
|
E := typeid_of(i16)
|
||||||
|
|
||||||
|
testing.expect(t, typeid_of(intrinsics.type_elem_type(V)) == E)
|
||||||
|
testing.expect(t, reflect.typeid_elem(V) == E)
|
||||||
|
testing.expect(t, reflect.length(v) == len(V))
|
||||||
|
testing.expect(t, reflect.capacity(v) == cap(V))
|
||||||
|
testing.expect(t, reflect.length(v) == 8)
|
||||||
|
}
|
||||||
|
{
|
||||||
|
V :: #simd[16]u32
|
||||||
|
v: V
|
||||||
|
E := typeid_of(u32)
|
||||||
|
|
||||||
|
testing.expect(t, typeid_of(intrinsics.type_elem_type(V)) == E)
|
||||||
|
testing.expect(t, reflect.typeid_elem(V) == E)
|
||||||
|
testing.expect(t, reflect.length(v) == len(V))
|
||||||
|
testing.expect(t, reflect.capacity(v) == cap(V))
|
||||||
|
testing.expect(t, reflect.length(v) == 16)
|
||||||
|
}
|
||||||
|
{
|
||||||
|
V :: #simd[32]u16
|
||||||
|
v: V
|
||||||
|
E := typeid_of(u16)
|
||||||
|
|
||||||
|
testing.expect(t, typeid_of(intrinsics.type_elem_type(V)) == E)
|
||||||
|
testing.expect(t, reflect.typeid_elem(V) == E)
|
||||||
|
testing.expect(t, reflect.length(v) == len(V))
|
||||||
|
testing.expect(t, reflect.capacity(v) == cap(V))
|
||||||
|
testing.expect(t, reflect.length(v) == 32)
|
||||||
|
}
|
||||||
|
{
|
||||||
|
V :: #simd[64]i8
|
||||||
|
v: V
|
||||||
|
E := typeid_of(i8)
|
||||||
|
|
||||||
|
testing.expect(t, typeid_of(intrinsics.type_elem_type(V)) == E)
|
||||||
|
testing.expect(t, reflect.typeid_elem(V) == E)
|
||||||
|
testing.expect(t, reflect.length(v) == len(V))
|
||||||
|
testing.expect(t, reflect.capacity(v) == cap(V))
|
||||||
|
testing.expect(t, reflect.length(v) == 64)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user