|
Poplar and PopLibs
|
Functions that target single IPU instructions. More...
#include <ipudef.h>#include <ipu_builtins.h>Namespaces | |
| namespace | ipu |
| IPU intrinsic functions. | |
Functions | |
| int | ipu::andc (int src0, int src1) |
Targets the andc instruction. More... | |
| unsigned | ipu::andc (unsigned src0, unsigned src1) |
Targets the andc instruction. More... | |
| float | ipu::andc (float src0, float src1) |
Targets the andc instruction. More... | |
| float2 | ipu::andc (float2 src0, float2 src1) |
Targets the andc64 instruction. More... | |
| int | ipu::bitrev8 (int src) |
Targets the bitrev8 instruction. More... | |
| unsigned | ipu::cms (int src) |
Targets the cms instruction. More... | |
| float2 | ipu::roll32 (float2 src0, float2 src1) |
Targets the roll32 instruction. More... | |
| int | ipu::roll8l (int src0, int src1) |
Targets the roll8l instruction. More... | |
| int | ipu::roll8r (int src0, int src1) |
Targets the roll8r instruction. More... | |
| int | ipu::shuf8x8hi (int src0, int src1) |
Targets the shuf8x8hi instruction. More... | |
| int | ipu::shuf8x8lo (int src0, int src1) |
Targets the shuf8x8lo instruction. More... | |
| float2 | ipu::sort4x32hi (float2 src0, float2 src1) |
Targets the sort4x32hi instruction. More... | |
| float2 | ipu::sort4x32lo (float2 src0, float2 src1) |
Targets the sort4x32lo instruction. More... | |
| int | ipu::sort8 (int src) |
Targets the sort8 instruction. More... | |
| int | ipu::sort8x8hi (int src0, int src1) |
Targets the sort8x8hi instruction. More... | |
| int | ipu::sort8x8lo (int src0, int src1) |
Targets the sort8x8lo instruction. More... | |
| int | ipu::swap8 (int src) |
Targets the sort8 instruction. More... | |
| half2 | ipu::absadd (half2 src0, half2 src1) |
Targets the f16v2absadd instruction. More... | |
| half4 | ipu::absadd (half4 src0, half4 src1) |
Targets the f16v4absadd instruction. More... | |
| float2 | ipu::absadd (float2 src0, float2 src1) |
Targets the f32v2absadd instruction. More... | |
| float | ipu::absadd (float src0, float src1) |
Targets the f32absadd instruction. More... | |
| half2 | ipu::absmax (half2 src0, half2 src1) |
Targets the f16v2absmax instruction. More... | |
| half4 | ipu::absmax (half4 src0, half4 src1) |
Targets the f16v4absmax instruction. More... | |
| float2 | ipu::absmax (float2 src0, float2 src1) |
Targets the f32v2absmax instruction. More... | |
| float | ipu::absmax (float src0, float src1) |
Targets the f32absmax instruction. More... | |
| half2 | ipu::max (half2 src0, half2 src1) |
Targets the f16v2max instruction. More... | |
| half4 | ipu::max (half4 src0, half4 src1) |
Targets the f16v4max instruction. More... | |
| float2 | ipu::max (float2 src0, float2 src1) |
Targets the f32v2max instruction. More... | |
| float | ipu::max (float src0, float src1) |
Targets the f32max instruction. More... | |
| half2 | ipu::maxc (half4 src) |
Targets the f16v4maxc instruction. More... | |
| half2 | ipu::min (half2 src0, half2 src1) |
Targets the f16v2min instruction. More... | |
| half4 | ipu::min (half4 src0, half4 src1) |
Targets the f16v4min instruction. More... | |
| float2 | ipu::min (float2 src0, float2 src1) |
Targets the f32v2min instruction. More... | |
| float | ipu::min (float src0, float src1) |
Targets the f32min instruction. More... | |
| half2 | ipu::clamp (half2 src0, half2 src1) |
Targets the f16v2clamp instruction. More... | |
| half4 | ipu::clamp (half4 src0, half2 src1) |
Targets the f16v4clamp instruction. More... | |
| float2 | ipu::clamp (float2 src0, float2 src1) |
Targets the f32v2clamp instruction. More... | |
| float | ipu::clamp (float src0, float2 src1) |
Targets the f32clamp instruction. More... | |
| void | ipu::cmac (half2 src0, half2 src1) |
Targets the f16v2cmac instruction. More... | |
| void | ipu::cmac (half4 src0, half4 src1) |
Targets the f16v4cmac instruction. More... | |
| half2 | ipu::exp (half2 src) |
Targets the f16v2exp instruction. More... | |
| float | ipu::exp (float src) |
Targets the f32exp instruction. More... | |
| half2 | ipu::exp2 (half2 src) |
Targets the f16v2exp instruction. More... | |
| float | ipu::exp2 (float src) |
Targets the f32exp instruction. More... | |
| half2 | ipu::log2 (half2 src) |
Targets the f16v2log2 instruction. More... | |
| float | ipu::log2 (float src) |
Targets the f32ln instruction. More... | |
| half2 | ipu::tanh (half2 src) |
Targets the f16v2tanh instruction. More... | |
| float | ipu::tanh (float src) |
Targets the f32tanh instruction. More... | |
| half2 | ipu::ln (half2 src) |
Targets the f16v2ln instruction. More... | |
| float | ipu::ln (float src) |
Targets the f32ln instruction. More... | |
| float2 | ipu::axpy (float2 src0, float2 src1) |
Targets the f32v2axpy instruction. More... | |
| half2 | ipu::f16v2grand () |
Targets the f16v2grand instruction. More... | |
| float2 | ipu::f32v2grand () |
Targets the f32v2grand instruction. More... | |
| half4 | ipu::rmask (half4 src0, float src1) |
Targets the f16v4rmask instruction. More... | |
| float2 | ipu::rmask (float2 src0, float src1) |
Targets the f32v2rmask instruction. More... | |
| half2 | ipu::sigm (half2 src) |
Targets the f16v2sigm instruction. More... | |
| float | ipu::sigm (float src) |
Targets the f32sigm instruction. More... | |
| float | ipu::sum (half2 src) |
Targets the f16v2sum instruction. More... | |
| float2 | ipu::sum (half4 src) |
Targets the f16v4sum instruction. More... | |
| half2 | ipu::cmpeq (half2 src0, half2 src1) |
Targets the f16v2cmpeq instruction. More... | |
| half4 | ipu::cmpeq (half4 src0, half4 src1) |
Targets the f16v4cmpeq instruction. More... | |
| float2 | ipu::cmpeq (float2 src0, float2 src1) |
Targets the f32v2cmpeq instruction. More... | |
| float | ipu::cmpeq (float src0, float src1) |
Targets the f32cmpeq instruction. More... | |
| half2 | ipu::cmpge (half2 src0, half2 src1) |
Targets the f16v2cmpge instruction. More... | |
| half4 | ipu::cmpge (half4 src0, half4 src1) |
Targets the f16v4cmpge instruction. More... | |
| float2 | ipu::cmpge (float2 src0, float2 src1) |
Targets the f32v2cmpge instruction. More... | |
| float | ipu::cmpge (float src0, float src1) |
Targets the f32cmpge instruction. More... | |
| half2 | ipu::cmpgt (half2 src0, half2 src1) |
Targets the f16v2cmpgt instruction. More... | |
| half4 | ipu::cmpgt (half4 src0, half4 src1) |
Targets the f16v4cmpgt instruction. More... | |
| float2 | ipu::cmpgt (float2 src0, float2 src1) |
Targets the f32v2cmpgt instruction. More... | |
| float | ipu::cmpgt (float src0, float src1) |
Targets the f32cmpgt instruction. More... | |
| half2 | ipu::cmple (half2 src0, half2 src1) |
Targets the f16v2cmple instruction. More... | |
| half4 | ipu::cmple (half4 src0, half4 src1) |
Targets the f16v4cmple instruction. More... | |
| float2 | ipu::cmple (float2 src0, float2 src1) |
Targets the f32v2cmple instruction. More... | |
| float | ipu::cmple (float src0, float src1) |
Targets the f32cmple instruction. More... | |
| half2 | ipu::cmplt (half2 src0, half2 src1) |
Targets the f16v2cmplt instruction. More... | |
| half4 | ipu::cmplt (half4 src0, half4 src1) |
Targets the f16v4cmplt instruction. More... | |
| float2 | ipu::cmplt (float2 src0, float2 src1) |
Targets the f32v2cmplt instruction. More... | |
| float | ipu::cmplt (float src0, float src1) |
Targets the f32cmplt instruction. More... | |
| half2 | ipu::cmpne (half2 src0, half2 src1) |
Targets the f16v2cmpne instruction. More... | |
| half4 | ipu::cmpne (half4 src0, half4 src1) |
Targets the f16v4cmpne instruction. More... | |
| float2 | ipu::cmpne (float2 src0, float2 src1) |
Targets the f32v2cmpne instruction. More... | |
| float | ipu::cmpne (float src0, float src1) |
Targets the f32cmpne instruction. More... | |
| unsigned | ipu::clz (int src) |
Targets the clz instruction. More... | |
| unsigned | ipu::popc (int src) |
Targets the popc instruction. More... | |
| short2 | ipu::roll16 (short2 src0, short2 src1) |
Targets the roll16 instruction. More... | |
| ushort2 | ipu::roll16 (ushort2 src0, ushort2 src1) |
Targets the roll16 instruction. More... | |
| half2 | ipu::roll16 (half2 src0, half2 src1) |
Targets the roll16 instruction. More... | |
| short2 | ipu::sort4x16hi (short2 src0, short2 src1) |
Targets the sort4x16hi instruction. More... | |
| ushort2 | ipu::sort4x16hi (ushort2 src0, ushort2 src1) |
Targets the sort4x16hi instruction. More... | |
| half2 | ipu::sort4x16hi (half2 src0, half2 src1) |
Targets the sort4x16hi instruction. More... | |
| short2 | ipu::sort4x16lo (short2 src0, short2 src1) |
Targets the sort4x16lo instruction. More... | |
| ushort2 | ipu::sort4x16lo (ushort2 src0, ushort2 src1) |
Targets the sort4x16lo instruction. More... | |
| half2 | ipu::sort4x16lo (half2 src0, half2 src1) |
Targets the sort4x16lo instruction. More... | |
Functions that target single IPU instructions.
These intrinsic functions target single IPU instructions and may be used in C++ IPU code. Each function is named after the instruction it targets. Float instructions that have a type (for example, f16v2) often omit this prefix in their function name. For example, use cmpeq() to target any of the cmpeq instructions, such as f16v2cmpeq.
Refer to the "Tile Worker ISA" for more detailed information on the instructions targeted by these intrinsics.