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.