mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38: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"
|
||||||
|
|
||||||
@@ -260,4 +261,74 @@ test_as_f64 :: proc(t: ^testing.T) {
|
|||||||
testing.expectf(t, r == d.e, "f64 %v -> %v != %v", d.v, r, d.e)
|
testing.expectf(t, r == d.e, "f64 %v -> %v != %v", d.v, r, d.e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@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