AI Engine Intrinsics User Guide (AIE) v2024.2
Loading...
Searching...
No Matches

Extraction intrinsics enable lanes to be selected from vector and accumulator types. More...

Overview

Extraction intrinsics enable lanes to be selected from vector and accumulator types.

Extract from lane specified through either idx parameter or number in intrinsic name.

store_hi and store_lo intrinsic functions

Store the 48/80 bit from the accumulator sign extended in a 64/128 bit integer. store_lo takes the lower lanes of the accumulator and store_hi the higher ones.

ext_hi and ext_lo intrinsic functions

Extract the top half or bottom half of the lanes within a data type.

ext_v(,<N>,) intrinsic functions

ext_v(,0...7,) extract successive 128-bit lanes from a 256-bit(lanes 0-1), 512-bit(lanes 0-3) or 1024-bit(lanes 0-7) vector.

ext_w(,<N>,) intrinsic functions

ext_w(,0...3,) extract successive 256-bit lanes from a large vector.

ext_x(,<N>,) intrinsic functions

ext_x(,0...1,) extract successive 512-bit lanes from a 1024-bit vector.

Accumulator store operations

v4int64 store_lo (v8acc48 acc)
 Store the 48 bit from the accumulator sign extended in a 64 bit integer. This is done for the 4 lower lanes.
 
v4int64 store_hi (v8acc48 acc)
 Store the 48 bit from the accumulator sign extended in a 64 bit integer. This is done for the 4 higher lanes.
 
v2cint64 store_lo (v4cacc48 acc)
 Store the 48 bit from the accumulator sign extended in a 64 bit integer. This is done for the 2 lower lanes.
 
v2cint64 store_hi (v4cacc48 acc)
 Store the 48 bit from the accumulator sign extended in a 64 bit integer. This is done for the 2 higher lanes.
 
v2int128 store_lo (v4acc80 acc)
 Store the 80 bit from the accumulator sign extended in a 128 bit integer. This is done for the 2 lower lanes.
 
v2int128 store_hi (v4acc80 acc)
 Store the 80 bit from the accumulator sign extended in a 128 bit integer. This is done for the 2 higher lanes.
 
v1cint128 store_lo (v2cacc80 acc)
 Store the 80 bit from the accumulator sign extended in a 128 bit integer. This is done for the 1 lower lanes.
 
v1cint128 store_hi (v2cacc80 acc)
 Store the 80 bit from the accumulator sign extended in a 128 bit integer. This is done for the 1 higher lanes.
 

Vector Packing Operations

v16int8 pack (v16int16 vec)
 Pack vectors and store to memory These intrinsics use the saturation value from the control register here: Control Register. Rounding is not done. No status flags are updated. These intrinsics can only be used coupled with a memory access operation. Ex: v16int8* ptr = pack(vec);//vec if of type v16int16.
 
v16uint8 upack (v16int16 vec)
 Pack vectors and store to memory These intrinsics use the saturation value from the control register here: Control Register. Rounding is not done. No status flags are updated. These intrinsics can only be used coupled with a memory access operation. Ex: v16int8* ptr = pack(vec);//vec if of type v16int16.
 
v32int8 pack (v32int16 vec)
 Pack vectors and store to memory These intrinsics use the saturation value from the control register here: Control Register. Rounding is not done. No status flags are updated. These intrinsics can only be used coupled with a memory access operation. Ex: v16int8* ptr = pack(vec);//vec if of type v16int16.
 
v32uint8 upack (v32int16 vec)
 Pack vectors and store to memory These intrinsics use the saturation value from the control register here: Control Register. Rounding is not done. No status flags are updated. These intrinsics can only be used coupled with a memory access operation. Ex: v16int8* ptr = pack(vec);//vec if of type v16int16.
 

128-bit Extraction from 256-bit Vector

v16int8 ext_v (v32int8 buf, int idx)
 Extract a v16int8 vector from a v32int8 vector.
 
v16uint8 ext_v (v32uint8 buf, int idx)
 Extract a v16uint8 vector from a v32uint8 vector.
 
v8int16 ext_v (v16int16 buf, int idx)
 Extract a v8int16 vector from a v16int16 vector.
 
v4cint16 ext_v (v8cint16 buf, int idx)
 Extract a v4cint16 vector from a v8cint16 vector.
 
v4int32 ext_v (v8int32 buf, int idx)
 Extract a v4int32 vector from a v8int32 vector.
 
v2cint32 ext_v (v4cint32 buf, int idx)
 Extract a v2cint32 vector from a v4cint32 vector.
 
v4float ext_v (v8float buf, int idx)
 Extract a v4float vector from a v8float vector.
 
v2cfloat ext_v (v4cfloat buf, int idx)
 Extract a v2cfloat vector from a v4cfloat vector.
 

128-bit Extraction from 512-bit Vector

v16int8 ext_v (v64int8 buf, int idx)
 Extract a v16int8 vector from a v64int8 vector.
 
v16uint8 ext_v (v64uint8 buf, int idx)
 Extract a v16uint8 vector from a v64uint8 vector.
 
v8int16 ext_v (v32int16 buf, int idx)
 Extract a v8int16 vector from a v32int16 vector.
 
v4cint16 ext_v (v16cint16 buf, int idx)
 Extract a v4cint16 vector from a v16cint16 vector.
 
v4int32 ext_v (v16int32 buf, int idx)
 Extract a v4int32 vector from a v16int32 vector.
 
v2cint32 ext_v (v8cint32 buf, int idx)
 Extract a v2cint32 vector from a v8cint32 vector.
 
v4float ext_v (v16float buf, int idx)
 Extract a v4float vector from a v16float vector.
 
v2cfloat ext_v (v8cfloat buf, int idx)
 Extract a v2cfloat vector from a v8cfloat vector.
 

128-bit Extraction from 1024-bit Vector

v16int8 ext_v (v128int8 buf, int idx)
 Extract a v16int8 vector from a v128int8 vector.
 
v16uint8 ext_v (v128uint8 buf, int idx)
 Extract a v16uint8 vector from a v128uint8 vector.
 
v8int16 ext_v (v64int16 buf, int idx)
 Extract a v8int16 vector from a v64int16 vector.
 
v4cint16 ext_v (v32cint16 buf, int idx)
 Extract a v4cint16 vector from a v32cint16 vector.
 
v4int32 ext_v (v32int32 buf, int idx)
 Extract a v4int32 vector from a v32int32 vector.
 
v2cint32 ext_v (v16cint32 buf, int idx)
 Extract a v2cint32 vector from a v16cint32 vector.
 
v4float ext_v (v32float buf, int idx)
 Extract a v4float vector from a v32float vector.
 
v2cfloat ext_v (v16cfloat buf, int idx)
 Extract a v2cfloat vector from a v16cfloat vector.
 

256-bit Extraction from 512-bit Vector

v32int8 ext_w (v64int8 buf, int idx)
 Extract a v32int8 vector from a v64int8 vector.
 
v32uint8 ext_w (v64uint8 buf, int idx)
 Extract a v32uint8 vector from a v64uint8 vector.
 
v16int16 ext_w (v32int16 buf, int idx)
 Extract a v16int16 vector from a v32int16 vector.
 
v8cint16 ext_w (v16cint16 buf, int idx)
 Extract a v8cint16 vector from a v16cint16 vector.
 
v8int32 ext_w (v16int32 buf, int idx)
 Extract a v8int32 vector from a v16int32 vector.
 
v4cint32 ext_w (v8cint32 buf, int idx)
 Extract a v4cint32 vector from a v8cint32 vector.
 
v8float ext_w (v16float buf, int idx)
 Extract a v8float vector from a v16float vector.
 
v4cfloat ext_w (v8cfloat buf, int idx)
 Extract a v4cfloat vector from a v8cfloat vector.
 

256-bit Extraction from 1024-bit Vector

v32int8 ext_w (v128int8 buf, int idx)
 Extract a v32int8 vector from a v128int8 vector.
 
v32uint8 ext_w (v128uint8 buf, int idx)
 Extract a v32uint8 vector from a v128uint8 vector.
 
v16int16 ext_w (v64int16 buf, int idx)
 Extract a v16int16 vector from a v64int16 vector.
 
v8cint16 ext_w (v32cint16 buf, int idx)
 Extract a v8cint16 vector from a v32cint16 vector.
 
v8int32 ext_w (v32int32 buf, int idx)
 Extract a v8int32 vector from a v32int32 vector.
 
v4cint32 ext_w (v16cint32 buf, int idx)
 Extract a v4cint32 vector from a v16cint32 vector.
 
v8float ext_w (v32float buf, int idx)
 Extract a v8float vector from a v32float vector.
 
v4cfloat ext_w (v16cfloat buf, int idx)
 Extract a v4cfloat vector from a v16cfloat vector.
 

512-bit Extraction from 1024-bit Vector

v64int8 ext_x (v128int8 buf, int idx)
 Extract a v64int8 vector from a v128int8 vector.
 
v64uint8 ext_x (v128uint8 buf, int idx)
 Extract a v64uint8 vector from a v128uint8 vector.
 
v32int16 ext_x (v64int16 buf, int idx)
 Extract a v32int16 vector from a v64int16 vector.
 
v16cint16 ext_x (v32cint16 buf, int idx)
 Extract a v16cint16 vector from a v32cint16 vector.
 
v16int32 ext_x (v32int32 buf, int idx)
 Extract a v16int32 vector from a v32int32 vector.
 
v8cint32 ext_x (v16cint32 buf, int idx)
 Extract a v8cint32 vector from a v16cint32 vector.
 
v16float ext_x (v32float buf, int idx)
 Extract a v16float vector from a v32float vector.
 
v8cfloat ext_x (v16cfloat buf, int idx)
 Extract a v8cfloat vector from a v16cfloat vector.
 

Extraction from Wide Accumulator

v8acc48 ext_lo (v16acc48 buf)
 Extract the low or high v8acc48 vector from a v16acc48 vector.
 
v8acc48 ext_hi (v16acc48 buf)
 Extract the low or high v8acc48 vector from a v16acc48 vector.
 
v4cacc48 ext_lo (v8cacc48 buf)
 Extract the low or high v4cacc48 vector from a v8cacc48 vector.
 
v4cacc48 ext_hi (v8cacc48 buf)
 Extract the low or high v4cacc48 vector from a v8cacc48 vector.
 
v4acc80 ext_lo (v8acc80 buf)
 Extract the low or high v4acc80 vector from a v8acc80 vector.
 
v4acc80 ext_hi (v8acc80 buf)
 Extract the low or high v4acc80 vector from a v8acc80 vector.
 
v2cacc80 ext_lo (v4cacc80 buf)
 Extract the low or high v2cacc80 vector from a v4cacc80 vector.
 
v2cacc80 ext_hi (v4cacc80 buf)
 Extract the low or high v2cacc80 vector from a v4cacc80 vector.
 

Extraction from Float Accumulator

v4accfloat ext_lo (v8accfloat)
 
v8accfloat ext_lo (v16accfloat)
 
v16accfloat ext_lo (v32accfloat)
 
v4accfloat ext_hi (v8accfloat)
 
v8accfloat ext_hi (v16accfloat)
 
v16accfloat ext_hi (v32accfloat)
 
v2caccfloat ext_lo (v4caccfloat)
 
v4caccfloat ext_lo (v8caccfloat)
 
v8caccfloat ext_lo (v16caccfloat)
 
v2caccfloat ext_hi (v4accfloat)
 

Extracts for configuration registers

unsigned int ext0 (mac_idx)
 
unsigned int ext1 (mac_idx)
 
unsigned int ext0 (pmx_idx)
 
unsigned int ext1 (pmx_idx)
 
unsigned int ext2 (pmx_idx)
 

Function Documentation

◆ ext0() [1/2]

unsigned int ext0 ( mac_idx  )

◆ ext0() [2/2]

unsigned int ext0 ( pmx_idx  )

◆ ext1() [1/2]

unsigned int ext1 ( mac_idx  )

◆ ext1() [2/2]

unsigned int ext1 ( pmx_idx  )

◆ ext2()

unsigned int ext2 ( pmx_idx  )

◆ ext_hi() [1/8]

v8acc48 ext_hi ( v16acc48  buf)

Extract the low or high v8acc48 vector from a v16acc48 vector.

Parameters
bufSource vector
Returns
Extracted sub-vector

◆ ext_hi() [2/8]

v8caccfloat ext_hi ( v16accfloat  )

◆ ext_hi() [3/8]

v16accfloat ext_hi ( v32accfloat  )

◆ ext_hi() [4/8]

v2caccfloat ext_hi ( v4accfloat  )

◆ ext_hi() [5/8]

v2cacc80 ext_hi ( v4cacc80  buf)

Extract the low or high v2cacc80 vector from a v4cacc80 vector.

Parameters
bufSource vector
Returns
Extracted sub-vector

◆ ext_hi() [6/8]

v4acc80 ext_hi ( v8acc80  buf)

Extract the low or high v4acc80 vector from a v8acc80 vector.

Parameters
bufSource vector
Returns
Extracted sub-vector

◆ ext_hi() [7/8]

v4caccfloat ext_hi ( v8accfloat  )

◆ ext_hi() [8/8]

v4cacc48 ext_hi ( v8cacc48  buf)

Extract the low or high v4cacc48 vector from a v8cacc48 vector.

Parameters
bufSource vector
Returns
Extracted sub-vector

◆ ext_lo() [1/10]

v8acc48 ext_lo ( v16acc48  buf)

Extract the low or high v8acc48 vector from a v16acc48 vector.

Parameters
bufSource vector
Returns
Extracted sub-vector

◆ ext_lo() [2/10]

v8accfloat ext_lo ( v16accfloat  )

◆ ext_lo() [3/10]

v8caccfloat ext_lo ( v16caccfloat  )

◆ ext_lo() [4/10]

v16accfloat ext_lo ( v32accfloat  )

◆ ext_lo() [5/10]

v2cacc80 ext_lo ( v4cacc80  buf)

Extract the low or high v2cacc80 vector from a v4cacc80 vector.

Parameters
bufSource vector
Returns
Extracted sub-vector

◆ ext_lo() [6/10]

v2caccfloat ext_lo ( v4caccfloat  )

◆ ext_lo() [7/10]

v4acc80 ext_lo ( v8acc80  buf)

Extract the low or high v4acc80 vector from a v8acc80 vector.

Parameters
bufSource vector
Returns
Extracted sub-vector

◆ ext_lo() [8/10]

v4accfloat ext_lo ( v8accfloat  )

◆ ext_lo() [9/10]

v4cacc48 ext_lo ( v8cacc48  buf)

Extract the low or high v4cacc48 vector from a v8cacc48 vector.

Parameters
bufSource vector
Returns
Extracted sub-vector

◆ ext_lo() [10/10]

v4caccfloat ext_lo ( v8caccfloat  )

◆ ext_v() [1/24]

v16int8 ext_v ( v128int8  buf,
int  idx 
)

Extract a v16int8 vector from a v128int8 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [2/24]

v16uint8 ext_v ( v128uint8  buf,
int  idx 
)

Extract a v16uint8 vector from a v128uint8 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [3/24]

v2cfloat ext_v ( v16cfloat  buf,
int  idx 
)

Extract a v2cfloat vector from a v16cfloat vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [4/24]

v4cint16 ext_v ( v16cint16  buf,
int  idx 
)

Extract a v4cint16 vector from a v16cint16 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [5/24]

v2cint32 ext_v ( v16cint32  buf,
int  idx 
)

Extract a v2cint32 vector from a v16cint32 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [6/24]

v4float ext_v ( v16float  buf,
int  idx 
)

Extract a v4float vector from a v16float vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [7/24]

v8int16 ext_v ( v16int16  buf,
int  idx 
)

Extract a v8int16 vector from a v16int16 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [8/24]

v4int32 ext_v ( v16int32  buf,
int  idx 
)

Extract a v4int32 vector from a v16int32 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [9/24]

v4cint16 ext_v ( v32cint16  buf,
int  idx 
)

Extract a v4cint16 vector from a v32cint16 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [10/24]

v4float ext_v ( v32float  buf,
int  idx 
)

Extract a v4float vector from a v32float vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [11/24]

v8int16 ext_v ( v32int16  buf,
int  idx 
)

Extract a v8int16 vector from a v32int16 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [12/24]

v4int32 ext_v ( v32int32  buf,
int  idx 
)

Extract a v4int32 vector from a v32int32 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [13/24]

v16int8 ext_v ( v32int8  buf,
int  idx 
)

Extract a v16int8 vector from a v32int8 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [14/24]

v16uint8 ext_v ( v32uint8  buf,
int  idx 
)

Extract a v16uint8 vector from a v32uint8 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [15/24]

v2cfloat ext_v ( v4cfloat  buf,
int  idx 
)

Extract a v2cfloat vector from a v4cfloat vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [16/24]

v2cint32 ext_v ( v4cint32  buf,
int  idx 
)

Extract a v2cint32 vector from a v4cint32 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [17/24]

v8int16 ext_v ( v64int16  buf,
int  idx 
)

Extract a v8int16 vector from a v64int16 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [18/24]

v16int8 ext_v ( v64int8  buf,
int  idx 
)

Extract a v16int8 vector from a v64int8 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [19/24]

v16uint8 ext_v ( v64uint8  buf,
int  idx 
)

Extract a v16uint8 vector from a v64uint8 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [20/24]

v2cfloat ext_v ( v8cfloat  buf,
int  idx 
)

Extract a v2cfloat vector from a v8cfloat vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [21/24]

v4cint16 ext_v ( v8cint16  buf,
int  idx 
)

Extract a v4cint16 vector from a v8cint16 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [22/24]

v2cint32 ext_v ( v8cint32  buf,
int  idx 
)

Extract a v2cint32 vector from a v8cint32 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [23/24]

v4float ext_v ( v8float  buf,
int  idx 
)

Extract a v4float vector from a v8float vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_v() [24/24]

v4int32 ext_v ( v8int32  buf,
int  idx 
)

Extract a v4int32 vector from a v8int32 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [1/16]

v32int8 ext_w ( v128int8  buf,
int  idx 
)

Extract a v32int8 vector from a v128int8 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [2/16]

v32uint8 ext_w ( v128uint8  buf,
int  idx 
)

Extract a v32uint8 vector from a v128uint8 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [3/16]

v4cfloat ext_w ( v16cfloat  buf,
int  idx 
)

Extract a v4cfloat vector from a v16cfloat vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [4/16]

v8cint16 ext_w ( v16cint16  buf,
int  idx 
)

Extract a v8cint16 vector from a v16cint16 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [5/16]

v4cint32 ext_w ( v16cint32  buf,
int  idx 
)

Extract a v4cint32 vector from a v16cint32 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [6/16]

v8float ext_w ( v16float  buf,
int  idx 
)

Extract a v8float vector from a v16float vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [7/16]

v8int32 ext_w ( v16int32  buf,
int  idx 
)

Extract a v8int32 vector from a v16int32 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [8/16]

v8cint16 ext_w ( v32cint16  buf,
int  idx 
)

Extract a v8cint16 vector from a v32cint16 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [9/16]

v8float ext_w ( v32float  buf,
int  idx 
)

Extract a v8float vector from a v32float vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [10/16]

v16int16 ext_w ( v32int16  buf,
int  idx 
)

Extract a v16int16 vector from a v32int16 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [11/16]

v8int32 ext_w ( v32int32  buf,
int  idx 
)

Extract a v8int32 vector from a v32int32 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [12/16]

v16int16 ext_w ( v64int16  buf,
int  idx 
)

Extract a v16int16 vector from a v64int16 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [13/16]

v32int8 ext_w ( v64int8  buf,
int  idx 
)

Extract a v32int8 vector from a v64int8 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [14/16]

v32uint8 ext_w ( v64uint8  buf,
int  idx 
)

Extract a v32uint8 vector from a v64uint8 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [15/16]

v4cfloat ext_w ( v8cfloat  buf,
int  idx 
)

Extract a v4cfloat vector from a v8cfloat vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_w() [16/16]

v4cint32 ext_w ( v8cint32  buf,
int  idx 
)

Extract a v4cint32 vector from a v8cint32 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_x() [1/8]

v64int8 ext_x ( v128int8  buf,
int  idx 
)

Extract a v64int8 vector from a v128int8 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_x() [2/8]

v64uint8 ext_x ( v128uint8  buf,
int  idx 
)

Extract a v64uint8 vector from a v128uint8 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_x() [3/8]

v8cfloat ext_x ( v16cfloat  buf,
int  idx 
)

Extract a v8cfloat vector from a v16cfloat vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_x() [4/8]

v8cint32 ext_x ( v16cint32  buf,
int  idx 
)

Extract a v8cint32 vector from a v16cint32 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_x() [5/8]

v16cint16 ext_x ( v32cint16  buf,
int  idx 
)

Extract a v16cint16 vector from a v32cint16 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_x() [6/8]

v16float ext_x ( v32float  buf,
int  idx 
)

Extract a v16float vector from a v32float vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_x() [7/8]

v16int32 ext_x ( v32int32  buf,
int  idx 
)

Extract a v16int32 vector from a v32int32 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ ext_x() [8/8]

v32int16 ext_x ( v64int16  buf,
int  idx 
)

Extract a v32int16 vector from a v64int16 vector.

Parameters
bufSource vector
idxDefines which part of the source vector is extracted. Must be a compile-time constant.
Returns
Extracted sub-vector

◆ pack() [1/2]

v16int8 pack ( v16int16  vec)

Pack vectors and store to memory These intrinsics use the saturation value from the control register here: Control Register. Rounding is not done. No status flags are updated. These intrinsics can only be used coupled with a memory access operation. Ex: v16int8* ptr = pack(vec);//vec if of type v16int16.

◆ pack() [2/2]

v32int8 pack ( v32int16  vec)

Pack vectors and store to memory These intrinsics use the saturation value from the control register here: Control Register. Rounding is not done. No status flags are updated. These intrinsics can only be used coupled with a memory access operation. Ex: v16int8* ptr = pack(vec);//vec if of type v16int16.

◆ store_hi() [1/4]

v1cint128 store_hi ( v2cacc80  acc)

Store the 80 bit from the accumulator sign extended in a 128 bit integer. This is done for the 1 higher lanes.

Parameters
accInput accumulator
Returns
Output vector

◆ store_hi() [2/4]

v2int128 store_hi ( v4acc80  acc)

Store the 80 bit from the accumulator sign extended in a 128 bit integer. This is done for the 2 higher lanes.

Parameters
accInput accumulator
Returns
Output vector

◆ store_hi() [3/4]

v2cint64 store_hi ( v4cacc48  acc)

Store the 48 bit from the accumulator sign extended in a 64 bit integer. This is done for the 2 higher lanes.

Parameters
accInput accumulator
Returns
Output vector

◆ store_hi() [4/4]

v4int64 store_hi ( v8acc48  acc)

Store the 48 bit from the accumulator sign extended in a 64 bit integer. This is done for the 4 higher lanes.

Parameters
accInput accumulator
Returns
Output vector

◆ store_lo() [1/4]

v1cint128 store_lo ( v2cacc80  acc)

Store the 80 bit from the accumulator sign extended in a 128 bit integer. This is done for the 1 lower lanes.

Parameters
accInput accumulator
Returns
Output vector

◆ store_lo() [2/4]

v2int128 store_lo ( v4acc80  acc)

Store the 80 bit from the accumulator sign extended in a 128 bit integer. This is done for the 2 lower lanes.

Parameters
accInput accumulator
Returns
Output vector

◆ store_lo() [3/4]

v2cint64 store_lo ( v4cacc48  acc)

Store the 48 bit from the accumulator sign extended in a 64 bit integer. This is done for the 2 lower lanes.

Parameters
accInput accumulator
Returns
Output vector

◆ store_lo() [4/4]

v4int64 store_lo ( v8acc48  acc)

Store the 48 bit from the accumulator sign extended in a 64 bit integer. This is done for the 4 lower lanes.

Parameters
accInput accumulator
Returns
Output vector

◆ upack() [1/2]

v16uint8 upack ( v16int16  vec)

Pack vectors and store to memory These intrinsics use the saturation value from the control register here: Control Register. Rounding is not done. No status flags are updated. These intrinsics can only be used coupled with a memory access operation. Ex: v16int8* ptr = pack(vec);//vec if of type v16int16.

◆ upack() [2/2]

v32uint8 upack ( v32int16  vec)

Pack vectors and store to memory These intrinsics use the saturation value from the control register here: Control Register. Rounding is not done. No status flags are updated. These intrinsics can only be used coupled with a memory access operation. Ex: v16int8* ptr = pack(vec);//vec if of type v16int16.