| AI Engine Intrinsics User Guide (v2026.1)

Loading...
Searching...
No Matches
Functions
Float
Intrinsics » Vector Operations » Vector Lane Selection » Simple

## 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]]
xstart
v16float int xstart
Definition me_vfloat.h:5095
xoffs
v16float int unsigned int xoffs
Definition me_vfloat.h:5097
ret
v8float ret
Definition me_vfloat.h:5099
xbuf
v16float xbuf
Definition me_vfloat.h:5095

Returns
  Result vector.

Parameters

  xbuf | Input buffer.
  xstart | Starting offset for all lanes of X. The start value refers to complex lanes (lane 0 corresponds to the first real and imaginary value).
  xoffs | 4 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

  xbuf | Input buffer.
  xstart | Starting offset for all lanes of X.
  xoffs | 8 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

  xbuf | Input buffer.
  xstart | Starting offset for all lanes of X.
  xoffs | 8 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

  xbuf | Input 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

  xbuf | Input buffer.
  xstart | Starting offset for all lanes of X. The start value refers to complex lanes (lane 0 corresponds to the first real and imaginary value).
  xoffs | 4 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

  xbuf | Input buffer.
  xstart | Starting offset for all lanes of X. The start value refers to complex lanes (lane 0 corresponds to the first real and imaginary value).
  xoffs | 4 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

  xbuf | Input 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

  xbuf | Input buffer.
  xstart | Starting offset for all lanes of X.
  xoffs | 8 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

  xbuf | Input buffer.
  xstart | Starting offset for all lanes of X. The start value refers to complex lanes (lane 0 corresponds to the first real and imaginary value).
  xoffs | 4 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

  xbuf | Input 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

  xbuf | Input buffer.
  xstart | Starting offset for all lanes of X. The start value refers to complex lanes (lane 0 corresponds to the first real and imaginary value).
  xoffs | 4 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

  xbuf | Input buffer.
  xstart | Starting offset for all lanes of X. The start value refers to complex lanes (lane 0 corresponds to the first real and imaginary value).
  xoffs | 4 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.