AI Engine Intrinsics User Guide  (AIE) r2p22
 All Data Structures Namespaces Functions Variables Typedefs Groups Pages
Float

Overview

Simple Float Vector Lane Selection

Select: Selects between the first set of lanes or the second one according to the value in 'select'. If the lane corresponding bit in select is 0 it returns the value in the first set of lanes,otherwise, if it is 1, it returns the value in the second set of lanes.

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

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

Function Documentation

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.
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.
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.
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.
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.
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.
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.
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]]
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.
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.
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.
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.
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.