wiki:IDISA_Movement

Version 8 (modified by cameron, 8 years ago) (diff)

--

IDISA Field Movement Operations

The tables below list the various IDISA field movement operations on vectors of n-bit fields, together with their description and semantic specification.

An important characteristic of these operations is that fields may be moved or rearranged in various ways, but the contents of the fields remain unchanged.

Constant Fill Operations

The operation r = mvmd<n>::fill(c) fills each n-bit field with an integer value c.

Unary Movement Operations

These operations generally have the form r = mvmd<N>::op(a) for each operation op, where a is an operand vectors of N bit fields and r is the corresponding result vector.

splat<j> splat ri = aj
slli<j> shift left logical immediate ri = ai+j if i + j <= N/n, 0 otherwise
srli<j> shift right logical immediate ri = ai-j if i > j, 0 otherwise
shufflei<m> shuffle immediate ri = at, where t = index(m, i)

Binary Movement Operations

These operations generally have the form r = mvmd<N>::op(a, b) for each operation op, where a and b are operand vectors of N bit fields and r is the corresponding result vector.

dslli<j> double shift left logical immediate ri = ai+j if i + j <= N/n, bi + j - N/n otherwise
dsrli<j> double shift right logical immediate ri = ai + N/n -j if i <= j, bi - j otherwise
shuffle shuffle ri = at, where t = bi