SIMD
Types
Vec2F32
Vec4F32
Vec8F32
Vec16F32 !Vec8F32 !Vec8F32
Vec4F64
Vec8F64 !Vec4F64 !Vec4F64
Vec4I32
Vec8I32 !Vec4I32 !Vec4I32
Vec4I64
Vec8I64 !Vec4I64 !Vec4I64
Type Classes
Methods
vBroadcast :: (Elem v) -> v
vExtract :: v -> Int -> Elem v
vInsert :: v -> Int -> (Elem v) -> v
vWidth :: v -> Int
vAddImpl :: v -> v -> v
vSubImpl :: v -> v -> v
vMulImpl :: v -> v -> v
vDivImpl :: v -> v -> v
vSumImpl :: v -> Elem v
vProductImpl :: v -> Elem v
SIMD vector type class.
Functions
Mask with all bits set.
Mask with no bits set.
Create mask from bit pattern.
Extract bit pattern from mask.
Broadcast a scalar to all elements.
Create vector from list (must have correct length).
Pack 2 scalars into a vector.
Pack 4 scalars into a vector.
Pack 8 scalars into a vector.
Extract element at index.
Convert vector to list.
Unpack 2-element vector.
Unpack 4-element vector.
Unpack 8-element vector.
Vector addition.
Vector subtraction.
Vector multiplication.
Vector division.
Negate all elements.
Absolute value of all elements.
Square root of all elements.
Reciprocal square root (fast approximation).
Reciprocal (fast approximation).
Element-wise minimum.
Element-wise maximum.
Fused multiply-add: @a * b + c@ in a single operation.
Fused multiply-subtract: @a * b - c@ in a single operation.
Fused negate-multiply-add: @-(a * b) + c@ in a single operation.
Fused negate-multiply-subtract: @-(a * b) - c@ in a single operation.
Element-wise equality.
Element-wise inequality.
Element-wise less than.
Element-wise less than or equal.
Element-wise greater than.
Element-wise greater than or equal.
Sum all elements of the vector (horizontal sum).
Product of all elements (horizontal product).
Minimum element of the vector.
Maximum element of the vector.
Shuffle elements using index mask.
Permute elements within vector.
Rotate elements left.
Load from aligned memory (faster).
Store to unaligned memory.
Store to aligned memory (faster).
Gather: load from indexed locations.
Scatter: store to indexed locations.
Masked store.
Bitwise AND (for integer vectors).
Bitwise OR (for integer vectors).
Bitwise XOR (for integer vectors).
Bitwise NOT (for integer vectors).
Shift left (for integer vectors).
Shift right (for integer vectors).