![]() |
AI Engine-ML v2 Intrinsics User Guide
v2025.1
|
These intrinsics allow shifting full vectors. More...
Special shift used to perform unaligned loads | |
v128int4 | shiftx (v128int4 a, v128int4 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v64int8 | shiftx (v64int8 a, v64int8 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v32int16 | shiftx (v32int16 a, v32int16 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v16int32 | shiftx (v16int32 a, v16int32 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v128uint4 | shiftx (v128uint4 a, v128uint4 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v64uint8 | shiftx (v64uint8 a, v64uint8 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v32uint16 | shiftx (v32uint16 a, v32uint16 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v16uint32 | shiftx (v16uint32 a, v16uint32 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v16cint16 | shiftx (v16cint16 a, v16cint16 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v8cint32 | shiftx (v8cint32 a, v8cint32 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v8cfloat | shiftx (v8cfloat a, v8cfloat b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v16cbfloat16 | shiftx (v16cbfloat16 a, v16cbfloat16 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v32bfloat16 | shiftx (v32bfloat16 a, v32bfloat16 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v32float16 | shiftx (v32float16 a, v32float16 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v64float8 | shiftx (v64float8 a, v64float8 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v64bfloat8 | shiftx (v64bfloat8 a, v64bfloat8 b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v16float | shiftx (v16float a, v16float b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
v16accfloat | shiftx (v16accfloat a, v16accfloat b, int pre, unsigned int shift) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap. | |
Lane-by-lane vector shift (in bytes) | |
v128int4 | shift_bytes (v128int4 a, v128int4 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v64int8 | shift_bytes (v64int8 a, v64int8 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v32int16 | shift_bytes (v32int16 a, v32int16 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v16int32 | shift_bytes (v16int32 a, v16int32 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v128uint4 | shift_bytes (v128uint4 a, v128uint4 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v64uint8 | shift_bytes (v64uint8 a, v64uint8 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v32uint16 | shift_bytes (v32uint16 a, v32uint16 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v16uint32 | shift_bytes (v16uint32 a, v16uint32 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v16cint16 | shift_bytes (v16cint16 a, v16cint16 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v8cint32 | shift_bytes (v8cint32 a, v8cint32 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v8cfloat | shift_bytes (v8cfloat a, v8cfloat b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v16cbfloat16 | shift_bytes (v16cbfloat16 a, v16cbfloat16 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v32bfloat16 | shift_bytes (v32bfloat16 a, v32bfloat16 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v32float16 | shift_bytes (v32float16 a, v32float16 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v64float8 | shift_bytes (v64float8 a, v64float8 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v64bfloat8 | shift_bytes (v64bfloat8 a, v64bfloat8 b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v16float | shift_bytes (v16float a, v16float b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
v16accfloat | shift_bytes (v16accfloat a, v16accfloat b, unsigned int shift) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]. | |
Lane-by-lane vector shift (in elements) | |||||||
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64]
| |||||||
v64int8 | shift (v64int8 a, v64int8 b, unsigned int shift) | ||||||
v32int16 | shift (v32int16 a, v32int16 b, unsigned int shift) | ||||||
v16int32 | shift (v16int32 a, v16int32 b, unsigned int shift) | ||||||
v64uint8 | shift (v64uint8 a, v64uint8 b, unsigned int shift) | ||||||
v32uint16 | shift (v32uint16 a, v32uint16 b, unsigned int shift) | ||||||
v16uint32 | shift (v16uint32 a, v16uint32 b, unsigned int shift) | ||||||
v16cint16 | shift (v16cint16 a, v16cint16 b, unsigned int shift) | ||||||
v8cint32 | shift (v8cint32 a, v8cint32 b, unsigned int shift) | ||||||
v8cfloat | shift (v8cfloat a, v8cfloat b, unsigned int shift) | ||||||
v16cbfloat16 | shift (v16cbfloat16 a, v16cbfloat16 b, unsigned int shift) | ||||||
v32bfloat16 | shift (v32bfloat16 a, v32bfloat16 b, unsigned int shift) | ||||||
v32float16 | shift (v32float16 a, v32float16 b, unsigned int shift) | ||||||
v64float8 | shift (v64float8 a, v64float8 b, unsigned int shift) | ||||||
v64bfloat8 | shift (v64bfloat8 a, v64bfloat8 b, unsigned int shift) | ||||||
v16float | shift (v16float a, v16float b, unsigned int shift) | ||||||
v16accfloat | shift (v16accfloat a, v16accfloat b, unsigned int shift) | ||||||
These intrinsics allow shifting full vectors.
v16accfloat shift | ( | v16accfloat | a, |
v16accfloat | b, | ||
unsigned int | shift ) |
v16cbfloat16 shift | ( | v16cbfloat16 | a, |
v16cbfloat16 | b, | ||
unsigned int | shift ) |
v32bfloat16 shift | ( | v32bfloat16 | a, |
v32bfloat16 | b, | ||
unsigned int | shift ) |
v32float16 shift | ( | v32float16 | a, |
v32float16 | b, | ||
unsigned int | shift ) |
v64bfloat8 shift | ( | v64bfloat8 | a, |
v64bfloat8 | b, | ||
unsigned int | shift ) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
v16accfloat shift_bytes | ( | v16accfloat | a, |
v16accfloat | b, | ||
unsigned int | shift ) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
v16cbfloat16 shift_bytes | ( | v16cbfloat16 | a, |
v16cbfloat16 | b, | ||
unsigned int | shift ) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
v32bfloat16 shift_bytes | ( | v32bfloat16 | a, |
v32bfloat16 | b, | ||
unsigned int | shift ) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
v32float16 shift_bytes | ( | v32float16 | a, |
v32float16 | b, | ||
unsigned int | shift ) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
v64bfloat8 shift_bytes | ( | v64bfloat8 | a, |
v64bfloat8 | b, | ||
unsigned int | shift ) |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Concatenates a and b, interprets them as a vector of 128 bytes and returns a::b[shift:shift+64].
a | value to be concatenated |
b | value to be concatenated |
shift | number of bytes to be shifted |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
v16accfloat shiftx | ( | v16accfloat | a, |
v16accfloat | b, | ||
int | pre, | ||
unsigned int | shift ) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
v16cbfloat16 shiftx | ( | v16cbfloat16 | a, |
v16cbfloat16 | b, | ||
int | pre, | ||
unsigned int | shift ) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
v32bfloat16 shiftx | ( | v32bfloat16 | a, |
v32bfloat16 | b, | ||
int | pre, | ||
unsigned int | shift ) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
v32float16 shiftx | ( | v32float16 | a, |
v32float16 | b, | ||
int | pre, | ||
unsigned int | shift ) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
v64bfloat8 shiftx | ( | v64bfloat8 | a, |
v64bfloat8 | b, | ||
int | pre, | ||
unsigned int | shift ) |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |
Shifts a by pre bytes and inserts a::b[shift:shift+64] in the gap.
a | Value to be concatenated |
b | Value to be concatenated |
pre | amount of preshift on a (0: 0 bits, 1: 32 bits, 2: 64 bits, 3: 128 bits, 4: 256 bits) |
shift | number of bytes to shift b |