package core:simd

Types

b16x16 ¶

b16x16 :: #simd[16]

b16x32 ¶

b16x32 :: #simd[32]

b16x8 ¶

b16x8 :: #simd[8]

b32x16 ¶

b32x16 :: #simd[16]

b32x4 ¶

b32x4 :: #simd[4]

b32x8 ¶

b32x8 :: #simd[8]

b64x2 ¶

b64x2 :: #simd[2]

b64x4 ¶

b64x4 :: #simd[4]

b64x8 ¶

b64x8 :: #simd[8]

b8x16 ¶

b8x16 :: #simd[16]

b8x32 ¶

b8x32 :: #simd[32]

b8x64 ¶

b8x64 :: #simd[64]

boolx16 ¶

boolx16 :: #simd[16]

boolx32 ¶

boolx32 :: #simd[32]

boolx64 ¶

boolx64 :: #simd[64]

f32x16 ¶

f32x16 :: #simd[16]

f32x4 ¶

f32x4 :: #simd[4]

f32x8 ¶

f32x8 :: #simd[8]

f64x2 ¶

f64x2 :: #simd[2]

f64x4 ¶

f64x4 :: #simd[4]

f64x8 ¶

f64x8 :: #simd[8]

i16x16 ¶

i16x16 :: #simd[16]

i16x32 ¶

i16x32 :: #simd[32]

i16x8 ¶

i16x8 :: #simd[8]

i32x16 ¶

i32x16 :: #simd[16]

i32x4 ¶

i32x4 :: #simd[4]

i32x8 ¶

i32x8 :: #simd[8]

i64x2 ¶

i64x2 :: #simd[2]

i64x4 ¶

i64x4 :: #simd[4]

i64x8 ¶

i64x8 :: #simd[8]

i8x16 ¶

i8x16 :: #simd[16]

i8x32 ¶

i8x32 :: #simd[32]

i8x64 ¶

i8x64 :: #simd[64]

u16x16 ¶

u16x16 :: #simd[16]

u16x32 ¶

u16x32 :: #simd[32]

u16x8 ¶

u16x8 :: #simd[8]

u32x16 ¶

u32x16 :: #simd[16]

u32x4 ¶

u32x4 :: #simd[4]

u32x8 ¶

u32x8 :: #simd[8]

u64x2 ¶

u64x2 :: #simd[2]

u64x4 ¶

u64x4 :: #simd[4]

u64x8 ¶

u64x8 :: #simd[8]

u8x16 ¶

u8x16 :: #simd[16]
 

128-bit vector aliases

u8x32 ¶

u8x32 :: #simd[32]
 

256-bit vector aliases

u8x64 ¶

u8x64 :: #simd[64]
 

512-bit vector aliases

Constants

This section is empty.

Variables

This section is empty.

Procedures

abs ¶

abs :: intrinsics.simd_abs

add ¶

add :: intrinsics.simd_add

add_sat ¶

add_sat :: intrinsics.simd_add_sat
 

Saturation Arithmetic

and ¶

and :: intrinsics.simd_and

and_not ¶

and_not :: intrinsics.simd_and_not

bit_not ¶

bit_not :: proc "contextless" (v: $T/#simd[0]) -> $T/#simd[0] {…}

ceil ¶

ceil :: intrinsics.simd_ceil

clamp ¶

clamp :: intrinsics.simd_clamp

copysign ¶

copysign :: proc "contextless" (v, sign: $T/#simd[0]) -> $T/#simd[0] {…}

count_leading_zeros ¶

count_leading_zeros :: intrinsics.count_leading_zeros

count_ones ¶

count_ones :: intrinsics.count_ones

count_trailing_zeros ¶

count_trailing_zeros :: intrinsics.count_trailing_zeros

count_zeros ¶

count_zeros :: intrinsics.count_zeros

div ¶

div :: intrinsics.simd_div

extract ¶

extract :: intrinsics.simd_extract
 

extract :: proc(a: #simd[N]T, idx: uint) -> T

floor ¶

floor :: intrinsics.simd_floor

fma ¶

fma :: intrinsics.fused_mul_add

from_array ¶

from_array :: proc "contextless" (v: $V/[0]$) -> #simd[0] {…}

from_slice ¶

from_slice :: proc "odin" ($T: typeid/#simd[0], slice: []$) -> T {…}

fused_mul_add ¶

fused_mul_add :: intrinsics.fused_mul_add

lanes_eq ¶

lanes_eq :: intrinsics.simd_lanes_eq
 

Return an unsigned integer of the same size as the input type NOT A BOOLEAN element-wise: false => 0x00...00 true => 0xff...ff

lanes_ge ¶

lanes_ge :: intrinsics.simd_lanes_ge

lanes_gt ¶

lanes_gt :: intrinsics.simd_lanes_gt

lanes_le ¶

lanes_le :: intrinsics.simd_lanes_le

lanes_lt ¶

lanes_lt :: intrinsics.simd_lanes_lt

lanes_ne ¶

lanes_ne :: intrinsics.simd_lanes_ne

lanes_reverse ¶

lanes_reverse :: intrinsics.simd_lanes_reverse

lanes_rotate_left ¶

lanes_rotate_left :: intrinsics.simd_lanes_rotate_left

lanes_rotate_right ¶

lanes_rotate_right :: intrinsics.simd_lanes_rotate_right

max ¶

max :: intrinsics.simd_max

min ¶

min :: intrinsics.simd_min

mul ¶

mul :: intrinsics.simd_mul

nearest ¶

nearest :: intrinsics.simd_nearest

neg ¶

neg :: intrinsics.simd_neg

or ¶

or :: intrinsics.simd_or

recip ¶

recip :: proc "contextless" (v: $T/#simd[0]) -> $T/#simd[0] {…}

reduce_add_ordered ¶

reduce_add_ordered :: intrinsics.simd_reduce_add_ordered

reduce_and ¶

reduce_and :: intrinsics.simd_reduce_and

reduce_max ¶

reduce_max :: intrinsics.simd_reduce_max

reduce_min ¶

reduce_min :: intrinsics.simd_reduce_min

reduce_mul_ordered ¶

reduce_mul_ordered :: intrinsics.simd_reduce_mul_ordered

reduce_or ¶

reduce_or :: intrinsics.simd_reduce_or

reduce_xor ¶

reduce_xor :: intrinsics.simd_reduce_xor

replace ¶

replace :: intrinsics.simd_replace
 

replace :: proc(a: #simd[N]T, idx: uint, elem: T) -> #simd[N]T

reverse_bits ¶

reverse_bits :: intrinsics.reverse_bits

select ¶

select :: intrinsics.simd_select
 

select :: proc(cond: #simd[N]boolean_or_integer, true, false: #simd[N]T) -> #simd[N]T

shl ¶

shl :: intrinsics.simd_shl
 

Keeps Odin's Behaviour (x << y) if y <= mask else 0

shl_masked ¶

shl_masked :: intrinsics.simd_shl_masked
 

Similar to C's Behaviour x << (y & mask)

shr ¶

shr :: intrinsics.simd_shr

shr_masked ¶

shr_masked :: intrinsics.simd_shr_masked

shuffle ¶

shuffle :: intrinsics.simd_shuffle
 

shuffle :: proc(a, b: #simd[N]T, indices: #simd[max 2*N]u32) -> #simd[len(indices)]T

signum ¶

signum :: proc "contextless" (v: $T/#simd[0]) -> $T/#simd[0] {…}

sqrt ¶

sqrt :: intrinsics.sqrt

sub ¶

sub :: intrinsics.simd_sub

sub_sat ¶

sub_sat :: intrinsics.simd_sub_sat

swizzle ¶

swizzle :: builtin.swizzle
 

swizzle :: proc(a: #simd[N]T, indices: ..int) -> #simd[len(indices)]T

to_array ¶

to_array :: proc "contextless" (v: #simd[0]) -> [0]$ {…}

to_array_ptr ¶

to_array_ptr :: proc "contextless" (v: ^#simd[0]) -> ^[0]$ {…}

to_bits ¶

to_bits :: intrinsics.simd_to_bits

trunc ¶

trunc :: intrinsics.simd_trunc

xor ¶

xor :: intrinsics.simd_xor

Procedure Groups

This section is empty.

Source Files

Generation Information

Generated with odin version dev-2022-10 (vendor "odin") Windows_amd64 @ 2022-10-05 21:11:47.508100000 +0000 UTC