Skip to main content

function

partial_simd_store

partial_simd_store[width: Int](storage: DTypePointer[type, address_space], lbound: Int, rbound: Int, data: SIMD[type, width])

Stores a vector with dynamic bound.

Out of bound data will ignored. Data is valid if lbound <= idx < rbound for idx from 0 to (simd_width-1).

e.g. addr 0 1 2 3 data 0 0 0 0

partial_simd_load[4](addr0, 1, 3, [-1, 42, 43, -1]) #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).
  • data (SIMD[type, width]): The vector value to store.