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

Overview

Simple Float Vector Lane Selection

Shuffle: Shuffle selects from a single input acording to the start/offset computation.

Note
fpsel behaves as a "shuffle" intrinsic.

To have more information in lane selection please refer to here.

Functions

v4cfloat fpshuffle (v16cfloat xbuf, int xstart, unsigned int xoffs)
 Shuffle for single precision complex floating point vectors.
 
v8float fpshuffle (v16float xbuf, int xstart, unsigned int xoffs)
 Shuffle for single precision real floating point vectors.
 
v8float fpshuffle (v32float xbuf, int xstart, unsigned int xoffs)
 Shuffle for single precision real floating point vectors.
 
v4cfloat fpshuffle (v4cfloat xbuf)
 Shuffle for single precision complex floating point vectors.
 
v4cfloat fpshuffle (v4cfloat xbuf, int xstart, unsigned int xoffs)
 Shuffle for single precision complex floating point vectors.
 
v4cfloat fpshuffle (v8cfloat xbuf, int xstart, unsigned int xoffs)
 Shuffle for single precision complex floating point vectors.
 
v8float fpshuffle (v8float xbuf)
 Shuffle for single precision real floating point vectors.
 
v8float fpshuffle (v8float xbuf, int xstart, unsigned int xoffs)
 Shuffle for single precision real floating point vectors.
 
v4cfloat fpshuffle_c (v16cfloat xbuf, int xstart, unsigned int xoffs)
 Shuffle for single precision complex conjugate floating point vectors.
 
v4cfloat fpshuffle_c (v4cfloat xbuf)
 Shuffle for single precision complex conjugate floating point vectors.
 
v4cfloat fpshuffle_c (v4cfloat xbuf, int xstart, unsigned int xoffs)
 Shuffle for single precision complex conjugate floating point vectors.
 
v4cfloat fpshuffle_c (v8cfloat xbuf, int xstart, unsigned int xoffs)
 Shuffle for single precision complex conjugate floating point vectors.
 

Function Documentation

◆ fpshuffle() [1/8]

v4cfloat fpshuffle ( v16cfloat  xbuf,
int  xstart,
unsigned int  xoffs 
)

Shuffle for single precision complex floating point vectors.

for (i = 0; i < 4; i++)
ret[i] = xbuf[xstart + xoffs[i]]
v16float int xstart
Definition me_vfloat.h:5095
v16float int unsigned int xoffs
Definition me_vfloat.h:5097
v8float ret
Definition me_vfloat.h:5099
v16float xbuf
Definition me_vfloat.h:5095
Returns
Result vector.
Parameters
xbufInput buffer.
xstartStarting offset for all lanes of X. The start value refers to complex lanes (lane 0 corresponds to the first real and imaginary value).
xoffs4 x 4 bits: Additional lane-dependent offset for X. Highest (4th) bit in each lane must be 0. Range per lane : [0,7]

The offsets are referring to complex lanes (lane 0 corresponds to the first real and imaginary value).

Note
When xoffs is a runtime parameter, it might be more efficient to use fpmac_conf and calculate the offsets manually.

◆ fpshuffle() [2/8]

v8float fpshuffle ( v16float  xbuf,
int  xstart,
unsigned int  xoffs 
)

Shuffle for single precision real floating point vectors.

for (i = 0; i < 8; i++)
ret[i] = xbuf[xstart + xoffs[i]]
Returns
Result vector.
Parameters
xbufInput buffer.
xstartStarting offset for all lanes of X.
xoffs8 x 4 bits: Additional lane-dependent offset for X.

◆ fpshuffle() [3/8]

v8float fpshuffle ( v32float  xbuf,
int  xstart,
unsigned int  xoffs 
)

Shuffle for single precision real floating point vectors.

for (i = 0; i < 8; i++)
ret[i] = xbuf[xstart + xoffs[i]]
Returns
Result vector.
Parameters
xbufInput buffer.
xstartStarting offset for all lanes of X.
xoffs8 x 4 bits: Additional lane-dependent offset for X.

◆ fpshuffle() [4/8]

v4cfloat fpshuffle ( v4cfloat  xbuf)

Shuffle for single precision complex floating point vectors.

for (i = 0 ; i < 4 ; i++)
ret[i] = xbuf[i]
Returns
Result vector.
Parameters
xbufInput buffer.

◆ fpshuffle() [5/8]

v4cfloat fpshuffle ( v4cfloat  xbuf,
int  xstart,
unsigned int  xoffs 
)

Shuffle for single precision complex floating point vectors.

for (i = 0; i < 4; i++)
ret[i] = xbuf[xstart + xoffs[i]]
Returns
Result vector.
Parameters
xbufInput buffer.
xstartStarting offset for all lanes of X. The start value refers to complex lanes (lane 0 corresponds to the first real and imaginary value).
xoffs4 x 4 bits: Additional lane-dependent offset for X. Highest (4th) bit in each lane must be 0. Range per lane : [0,7]

The offsets are referring to complex lanes (lane 0 corresponds to the first real and imaginary value).

Note
When xoffs is a runtime parameter, it might be more efficient to use fpmac_conf and calculate the offsets manually.

◆ fpshuffle() [6/8]

v4cfloat fpshuffle ( v8cfloat  xbuf,
int  xstart,
unsigned int  xoffs 
)

Shuffle for single precision complex floating point vectors.

for (i = 0; i < 4; i++)
ret[i] = xbuf[xstart + xoffs[i]]
Returns
Result vector.
Parameters
xbufInput buffer.
xstartStarting offset for all lanes of X. The start value refers to complex lanes (lane 0 corresponds to the first real and imaginary value).
xoffs4 x 4 bits: Additional lane-dependent offset for X. Highest (4th) bit in each lane must be 0. Range per lane : [0,7]

The offsets are referring to complex lanes (lane 0 corresponds to the first real and imaginary value).

Note
When xoffs is a runtime parameter, it might be more efficient to use fpmac_conf and calculate the offsets manually.

◆ fpshuffle() [7/8]

v8float fpshuffle ( v8float  xbuf)

Shuffle for single precision real floating point vectors.

for (i = 0 ; i < 8 ; i++)
ret[i] = xbuf[i]
Returns
Result vector.
Parameters
xbufInput buffer.

◆ fpshuffle() [8/8]

v8float fpshuffle ( v8float  xbuf,
int  xstart,
unsigned int  xoffs 
)

Shuffle for single precision real floating point vectors.

for (i = 0; i < 8; i++)
ret[i] = xbuf[xstart + xoffs[i]]
Returns
Result vector.
Parameters
xbufInput buffer.
xstartStarting offset for all lanes of X.
xoffs8 x 4 bits: Additional lane-dependent offset for X.

◆ fpshuffle_c() [1/4]

v4cfloat fpshuffle_c ( v16cfloat  xbuf,
int  xstart,
unsigned int  xoffs 
)

Shuffle for single precision complex conjugate floating point vectors.

for (i = 0; i < 4; i++)
ret[i] = conj(xbuf[xstart + xoffs[i]])
Returns
Result vector.
Parameters
xbufInput buffer.
xstartStarting offset for all lanes of X. The start value refers to complex lanes (lane 0 corresponds to the first real and imaginary value).
xoffs4 x 4 bits: Additional lane-dependent offset for X. Highest (4th) bit in each lane must be 0. Range per lane : [0,7]

The offsets are referring to complex lanes (lane 0 corresponds to the first real and imaginary value).

Note
When xoffs is a runtime parameter, it might be more efficient to use fpmac_conf and calculate the offsets manually.

◆ fpshuffle_c() [2/4]

v4cfloat fpshuffle_c ( v4cfloat  xbuf)

Shuffle for single precision complex conjugate floating point vectors.

for (i = 0 ; i < 4 ; i++)
ret[i] = conj(xbuf[i])
Returns
Result vector.
Parameters
xbufInput buffer.

◆ fpshuffle_c() [3/4]

v4cfloat fpshuffle_c ( v4cfloat  xbuf,
int  xstart,
unsigned int  xoffs 
)

Shuffle for single precision complex conjugate floating point vectors.

for (i = 0; i < 4; i++)
ret[i] = conj(xbuf[xstart + xoffs[i]])
Returns
Result vector.
Parameters
xbufInput buffer.
xstartStarting offset for all lanes of X. The start value refers to complex lanes (lane 0 corresponds to the first real and imaginary value).
xoffs4 x 4 bits: Additional lane-dependent offset for X. Highest (4th) bit in each lane must be 0. Range per lane : [0,7]

The offsets are referring to complex lanes (lane 0 corresponds to the first real and imaginary value).

Note
When xoffs is a runtime parameter, it might be more efficient to use fpmac_conf and calculate the offsets manually.

◆ fpshuffle_c() [4/4]

v4cfloat fpshuffle_c ( v8cfloat  xbuf,
int  xstart,
unsigned int  xoffs 
)

Shuffle for single precision complex conjugate floating point vectors.

for (i = 0; i < 4; i++)
ret[i] = conj(xbuf[xstart + xoffs[i]])
Returns
Result vector.
Parameters
xbufInput buffer.
xstartStarting offset for all lanes of X. The start value refers to complex lanes (lane 0 corresponds to the first real and imaginary value).
xoffs4 x 4 bits: Additional lane-dependent offset for X. Highest (4th) bit in each lane must be 0. Range per lane : [0,7]

The offsets are referring to complex lanes (lane 0 corresponds to the first real and imaginary value).

Note
When xoffs is a runtime parameter, it might be more efficient to use fpmac_conf and calculate the offsets manually.