function
partial_simd_load
partial_simd_load[width: Int](storage: DTypePointer[type, address_space], lbound: Int, rbound: Int, pad_value: SIMD[type, 1]) -> SIMD[$1, $0]
Loads a vector with dynamic bound.
Out of bound data will be filled with pad value. Data is valid if lbound <= idx < rbound for idx from 0 to (simd_width-1). For example:
addr 0 1 2 3
data x 42 43 x
partial_simd_load[4](addr0, 1, 3) #gives [0 42 43 0]
Parameters:
- width (
Int
): The system simd vector size.
Args:
- storage (
DTypePointer[type, address_space]
): Pointer to the address to perform load. - lbound (
Int
): Lower bound of valid index within simd (inclusive). - rbound (
Int
): Upper bound of valid index within simd (non-inclusive). - pad_value (
SIMD[type, 1]
): Value to fill for out of bound indices.
Returns:
The SIMD vector loaded and zero-filled.