AI Engine Intrinsics User Guide
(AIE) r2p22
|
Intrinsics to set, get and clear bits of the status register. More...
Intrinsics to set, get and clear bits of the status register.
Field | Bits | Meaning |
---|---|---|
C - Carry | [0] | ALU overflow carry bit |
SS0_TLAST - TLAST | [1] | Reading narrow input stream (SS0) returned TLAST condition |
SS1_TLAST - TLAST | [2] | Reading narrow input stream (SS1) returned TLAST condition |
WSS0_TLAST - TLAST | [3] | Reading wide input stream (WSS0) returned TLAST condition |
WSS1_TLAST - TLAST | [4] | Reading wide input stream (WSS1) returned TLAST condition |
SS0_NB_SC - Non blocking | [5] | Reading a narrow input stream (SS0) returned a non blocking SUCCESS condition |
SS1_NB_SC - Non blocking | [6] | Reading a narrow input stream (SS1) returned a non blocking SUCCESS condition |
MS0_NB_SC - Non blocking | [7] | Reading a narrow output stream (MS0) returned a non blocking SUCCESS condition |
MS1_NB_SC - Non blocking | [8] | Reading a narrow output stream (MS1) returned a non blocking SUCCESS condition |
SRS_SAT - Saturation | [9] | Saturation in SRS for all lanes |
UPS_SAT - Saturation | [10] | Saturation in UPS for all lanes |
Reserved | [11:15] | Reserved bits |
FP_ADD- Exceptions | [16:23] | Floating point exceptions for floating point adds |
FP_MUL- Exceptions | [24:31] | Floating point exceptions for floating point muls |
Field | Bits | Meaning |
---|---|---|
FP_NLF - Exceptions | [0:7] | Floating point exceptions for datatype converts |
FP_FIX2FLOAT - Exceptions | [8:15] | Floating point exceptions for datatype converts |
FP_FLOAT2FIX - Exceptions | [16:23] | Floating point exceptions for datatype converts |
Reserved | [24:31] | Reserved bits |
There are 8 exception bits per floating point functional unit.
Name | value | Comments |
---|---|---|
zero | 0 | Integer or floating point output is zero |
inf | 1 | Floating point output is infinity |
inv | 2 | Invalid floating point operation (NaN input also causes this) |
tiny | 3 | Floating point output after rounding has a magnitude less than minimum normalized number and is not exact zero |
huge | 4 | Result after rounding has magnitude greater than maximum normalized number |
inex | 5 | Integer/floating point output is not equal to the infinitely precise result |
HugeInt | 6 | Integer result greater than largest representable two's complement integer with same sign |
div0 | 7 | Divide by zero |
Full register access | |
Get or set the low or high MC register Parameter can be 0 or 1 and specifies the 32bit word to be accessed. 0 is lower 32 bit and 1 is higher 32 bit. See: Bit meanings for what each bit means. | |
unsigned int | get_MC (unsigned int idx) |
void | set_MC (unsigned int val, unsigned int idx) |
Miscellaneous | |
unsigned int | get_srs_sat () |
Get "srs saturation. " For existing flags see here. More... | |
void | set_srs_sat () |
Set "srs saturation. " For existing flags see here. More... | |
void | clr_srs_sat () |
Clear "srs saturation. " For existing flags see here. More... | |
unsigned int | get_ups_sat () |
Get "upshift saturation. " For existing flags see here. More... | |
void | set_ups_sat () |
Set "upshift saturation. " For existing flags see here. More... | |
void | clr_ups_sat () |
Clear "upshift saturation. " For existing flags see here. More... | |
Stream TLAST condition | |
Reading a narrow input stream(SS0/SS1) or wide input stream(WSS0/WSS1) returned a TLAST condition. | |
unsigned int | get_ss0_tlast () |
Get "narrow stream 0 tlast flag. ". More... | |
void | set_ss0_tlast () |
Set "narrow stream 0 tlast flag. ". More... | |
void | clr_ss0_tlast () |
Clear "narrow stream 0 tlast flag. ". More... | |
unsigned int | get_ss1_tlast () |
Get "narrow stream 1 tlast flag. ". More... | |
void | set_ss1_tlast () |
Set "narrow stream 1 tlast flag. ". More... | |
void | clr_ss1_tlast () |
Clear "narrow stream 1 tlast flag. ". More... | |
unsigned int | get_wss0_tlast () |
Get "wide stream 0 tlast flag. ". More... | |
void | set_wss0_tlast () |
Set "wide stream 0 tlast flag. ". More... | |
void | clr_wss0_tlast () |
Clear "wide stream 0 tlast flag. ". More... | |
unsigned int | get_wss1_tlast () |
Get "wide stream 1 tlast flag. ". More... | |
void | set_wss1_tlast () |
Set "wide stream 1 tlast flag. ". More... | |
void | clr_wss1_tlast () |
Clear "wide stream 1 tlast flag. ". More... | |
Stream SUCCESS condition | |
Reading a narrow input stream(SS0/SS1) or writing to narrow output stream(MS0/MS1) returned a non-blocking SUCCESS condition. | |
unsigned int | get_ss0_success () |
Get "narrow stream 0 success flag. ". More... | |
void | set_ss0_success () |
Set "narrow stream 0 success flag. ". More... | |
void | clr_ss0_success () |
Clear "narrow stream 0 success flag. ". More... | |
unsigned int | get_ss1_success () |
Get "narrow stream 1 success flag. ". More... | |
void | set_ss1_success () |
Set "narrow stream 1 success flag. ". More... | |
void | clr_ss1_success () |
Clear "narrow stream 1 success flag. ". More... | |
unsigned int | get_ms0_success () |
Get "wide stream 0 success flag. ". More... | |
void | set_ms0_success () |
Set "wide stream 0 success flag. ". More... | |
void | clr_ms0_success () |
Clear "wide stream 0 success flag. ". More... | |
unsigned int | get_ms1_success () |
Get "wide stream 1 success flag. ". More... | |
void | set_ms1_success () |
Set "wide stream 1 success flag. ". More... | |
void | clr_ms1_success () |
Clear "wide stream 1 success flag. ". More... | |
Floating point add exceptions | |
Floating point exceptions for floating point vector adds. See also: flags. | |
unsigned int | get_fpadd_zero () |
Get "floating point addition zero flag. " For existing flags see here. More... | |
void | set_fpadd_zero () |
Set "floating point addition zero flag. " For existing flags see here. More... | |
void | clr_fpadd_zero () |
Clear "floating point addition zero flag. " For existing flags see here. More... | |
unsigned int | get_fpadd_inf () |
Get "floating point addition infinite flag. " For existing flags see here. More... | |
void | set_fpadd_inf () |
Set "floating point addition infinite flag. " For existing flags see here. More... | |
void | clr_fpadd_inf () |
Clear "floating point addition infinite flag. " For existing flags see here. More... | |
unsigned int | get_fpadd_inv () |
Get "floating point addition invalid flag. " For existing flags see here. More... | |
void | set_fpadd_inv () |
Set "floating point addition invalid flag. " For existing flags see here. More... | |
void | clr_fpadd_inv () |
Clear "floating point addition invalid flag. " For existing flags see here. More... | |
unsigned int | get_fpadd_tiny () |
Get "floating point addition tiny flag. " For existing flags see here. More... | |
void | set_fpadd_tiny () |
Set "floating point addition tiny flag. " For existing flags see here. More... | |
void | clr_fpadd_tiny () |
Clear "floating point addition tiny flag. " For existing flags see here. More... | |
unsigned int | get_fpadd_huge () |
Get "floating point addition huge flag. " For existing flags see here. More... | |
void | set_fpadd_huge () |
Set "floating point addition huge flag. " For existing flags see here. More... | |
void | clr_fpadd_huge () |
Clear "floating point addition huge flag. " For existing flags see here. More... | |
unsigned int | get_fpadd_inex () |
Get "floating point addition inexact flag. " For existing flags see here. More... | |
void | set_fpadd_inex () |
Set "floating point addition inexact flag. " For existing flags see here. More... | |
void | clr_fpadd_inex () |
Clear "floating point addition inexact flag. " For existing flags see here. More... | |
Floating point mul exceptions | |
Floating point exceptions for floating point vector muls. See also: flags. | |
unsigned int | get_fpmul_zero () |
Get "floating point multiplication zero flag. " For existing flags see here. More... | |
void | set_fpmul_zero () |
Set "floating point multiplication zero flag. " For existing flags see here. More... | |
void | clr_fpmul_zero () |
Clear "floating point multiplication zero flag. " For existing flags see here. More... | |
unsigned int | get_fpmul_inf () |
Get "floating point multiplication infinite flag. " For existing flags see here. More... | |
void | set_fpmul_inf () |
Set "floating point multiplication infinite flag. " For existing flags see here. More... | |
void | clr_fpmul_inf () |
Clear "floating point multiplication infinite flag. " For existing flags see here. More... | |
unsigned int | get_fpmul_inv () |
Get "floating point multiplication invalid flag. " For existing flags see here. More... | |
void | set_fpmul_inv () |
Set "floating point multiplication invalid flag. " For existing flags see here. More... | |
void | clr_fpmul_inv () |
Clear "floating point multiplication invalid flag. " For existing flags see here. More... | |
unsigned int | get_fpmul_tiny () |
Get "floating point multiplication tiny flag. " For existing flags see here. More... | |
void | set_fpmul_tiny () |
Set "floating point multiplication tiny flag. " For existing flags see here. More... | |
void | clr_fpmul_tiny () |
Clear "floating point multiplication tiny flag. " For existing flags see here. More... | |
unsigned int | get_fpmul_huge () |
Get "floating point multiplication huge flag. " For existing flags see here. More... | |
void | set_fpmul_huge () |
Set "floating point multiplication huge flag. " For existing flags see here. More... | |
void | clr_fpmul_huge () |
Clear "floating point multiplication huge flag. " For existing flags see here. More... | |
unsigned int | get_fpmul_inex () |
Get "floating point multiplication inexact flag. " For existing flags see here. More... | |
void | set_fpmul_inex () |
Set "floating point multiplication inexact flag. " For existing flags see here. More... | |
void | clr_fpmul_inex () |
Clear "floating point multiplication inexact flag. " For existing flags see here. More... | |
Floating point nlf exceptions | |
Floating point exceptions for floating point inv_sqrt, sqrt and inverse operations. See also: flags. | |
unsigned int | get_fpnlf_zero () |
Get "non linear function zero flag. " For existing flags see here. More... | |
void | set_fpnlf_zero () |
Set "non linear function zero flag. " For existing flags see here. More... | |
void | clr_fpnlf_zero () |
Clear "non linear function zero flag. " For existing flags see here. More... | |
unsigned int | get_fpnlf_inf () |
Get "non linear function infinite flag. " For existing flags see here. More... | |
void | set_fpnlf_inf () |
Set "non linear function infinite flag. " For existing flags see here. More... | |
void | clr_fpnlf_inf () |
Clear "non linear function infinite flag. " For existing flags see here. More... | |
unsigned int | get_fpnlf_inv () |
Get "non linear function invalid flag. " For existing flags see here. More... | |
void | set_fpnlf_inv () |
Set "non linear function invalid flag. " For existing flags see here. More... | |
void | clr_fpnlf_inv () |
Clear "non linear function invalid flag. " For existing flags see here. More... | |
unsigned int | get_fpnlf_tiny () |
Get "non linear function tiny flag. " For existing flags see here. More... | |
void | set_fpnlf_tiny () |
Set "non linear function tiny flag. " For existing flags see here. More... | |
void | clr_fpnlf_tiny () |
Clear "non linear function tiny flag. " For existing flags see here. More... | |
unsigned int | get_fpnlf_inex () |
Get "non linear function inexact flag. " For existing flags see here. More... | |
void | set_fpnlf_inex () |
Set "non linear function inexact flag. " For existing flags see here. More... | |
void | clr_fpnlf_inex () |
Clear "non linear function inexact flag. " For existing flags see here. More... | |
unsigned int | get_fpnlf_div0 () |
Get "non linear function division by zero flag. " For existing flags see here. More... | |
void | set_fpnlf_div0 () |
Set "non linear function division by zero flag. " For existing flags see here. More... | |
void | clr_fpnlf_div0 () |
Clear "non linear function division by zero flag. " For existing flags see here. More... | |
Fixed to float exceptions | |
Floating point exceptions for datatype converts. See also: flags. | |
unsigned int | get_fx2fl_zero () |
Get "fix to float zero flag. " For existing flags see here. More... | |
void | set_fx2fl_zero () |
Set "fix to float zero flag. " For existing flags see here. More... | |
void | clr_fx2fl_zero () |
Clear "fix to float zero flag. " For existing flags see here. More... | |
unsigned int | get_fx2fl_inex () |
Get "fix to float inexact flag. " For existing flags see here. More... | |
void | set_fx2fl_inex () |
Set "fix to float inexact flag. " For existing flags see here. More... | |
void | clr_fx2fl_inex () |
Clear "fix to float inexact flag. " For existing flags see here. More... | |
Float to fixed exceptions | |
Floating point exceptions for datatpye converts. See also: flags. | |
unsigned int | get_fl2fx_hint () |
Get "float to fix huge int flag. " For existing flags see here. More... | |
void | set_fl2fx_hint () |
Set "float to fix huge int flag. " For existing flags see here. More... | |
void | clr_fl2fx_hint () |
Clear "float to fix huge int flag. " For existing flags see here. More... | |
unsigned int | get_fl2fx_inv () |
Get "float to fix invalid flag. " For existing flags see here. More... | |
void | set_fl2fx_inv () |
Set "float to fix invalid flag. " For existing flags see here. More... | |
void | clr_fl2fx_inv () |
Clear "float to fix invalid flag. " For existing flags see here. More... | |
void clr_fl2fx_hint | ( | ) |
Clear "float to fix huge int flag. " For existing flags see here.
void clr_fl2fx_inv | ( | ) |
Clear "float to fix invalid flag. " For existing flags see here.
void clr_fpadd_huge | ( | ) |
Clear "floating point addition huge flag. " For existing flags see here.
void clr_fpadd_inex | ( | ) |
Clear "floating point addition inexact flag. " For existing flags see here.
void clr_fpadd_inf | ( | ) |
Clear "floating point addition infinite flag. " For existing flags see here.
void clr_fpadd_inv | ( | ) |
Clear "floating point addition invalid flag. " For existing flags see here.
void clr_fpadd_tiny | ( | ) |
Clear "floating point addition tiny flag. " For existing flags see here.
void clr_fpadd_zero | ( | ) |
Clear "floating point addition zero flag. " For existing flags see here.
void clr_fpmul_huge | ( | ) |
Clear "floating point multiplication huge flag. " For existing flags see here.
void clr_fpmul_inex | ( | ) |
Clear "floating point multiplication inexact flag. " For existing flags see here.
void clr_fpmul_inf | ( | ) |
Clear "floating point multiplication infinite flag. " For existing flags see here.
void clr_fpmul_inv | ( | ) |
Clear "floating point multiplication invalid flag. " For existing flags see here.
void clr_fpmul_tiny | ( | ) |
Clear "floating point multiplication tiny flag. " For existing flags see here.
void clr_fpmul_zero | ( | ) |
Clear "floating point multiplication zero flag. " For existing flags see here.
void clr_fpnlf_div0 | ( | ) |
Clear "non linear function division by zero flag. " For existing flags see here.
void clr_fpnlf_inex | ( | ) |
Clear "non linear function inexact flag. " For existing flags see here.
void clr_fpnlf_inf | ( | ) |
Clear "non linear function infinite flag. " For existing flags see here.
void clr_fpnlf_inv | ( | ) |
Clear "non linear function invalid flag. " For existing flags see here.
void clr_fpnlf_tiny | ( | ) |
Clear "non linear function tiny flag. " For existing flags see here.
void clr_fpnlf_zero | ( | ) |
Clear "non linear function zero flag. " For existing flags see here.
void clr_fx2fl_inex | ( | ) |
Clear "fix to float inexact flag. " For existing flags see here.
void clr_fx2fl_zero | ( | ) |
Clear "fix to float zero flag. " For existing flags see here.
void clr_ms0_success | ( | ) |
Clear "wide stream 0 success flag. ".
void clr_ms1_success | ( | ) |
Clear "wide stream 1 success flag. ".
void clr_srs_sat | ( | ) |
Clear "srs saturation. " For existing flags see here.
void clr_ss0_success | ( | ) |
Clear "narrow stream 0 success flag. ".
void clr_ss0_tlast | ( | ) |
Clear "narrow stream 0 tlast flag. ".
void clr_ss1_success | ( | ) |
Clear "narrow stream 1 success flag. ".
void clr_ss1_tlast | ( | ) |
Clear "narrow stream 1 tlast flag. ".
void clr_ups_sat | ( | ) |
Clear "upshift saturation. " For existing flags see here.
void clr_wss0_tlast | ( | ) |
Clear "wide stream 0 tlast flag. ".
void clr_wss1_tlast | ( | ) |
Clear "wide stream 1 tlast flag. ".
unsigned int get_fl2fx_hint | ( | ) |
Get "float to fix huge int flag. " For existing flags see here.
unsigned int get_fl2fx_inv | ( | ) |
Get "float to fix invalid flag. " For existing flags see here.
unsigned int get_fpadd_huge | ( | ) |
Get "floating point addition huge flag. " For existing flags see here.
unsigned int get_fpadd_inex | ( | ) |
Get "floating point addition inexact flag. " For existing flags see here.
unsigned int get_fpadd_inf | ( | ) |
Get "floating point addition infinite flag. " For existing flags see here.
unsigned int get_fpadd_inv | ( | ) |
Get "floating point addition invalid flag. " For existing flags see here.
unsigned int get_fpadd_tiny | ( | ) |
Get "floating point addition tiny flag. " For existing flags see here.
unsigned int get_fpadd_zero | ( | ) |
Get "floating point addition zero flag. " For existing flags see here.
unsigned int get_fpmul_huge | ( | ) |
Get "floating point multiplication huge flag. " For existing flags see here.
unsigned int get_fpmul_inex | ( | ) |
Get "floating point multiplication inexact flag. " For existing flags see here.
unsigned int get_fpmul_inf | ( | ) |
Get "floating point multiplication infinite flag. " For existing flags see here.
unsigned int get_fpmul_inv | ( | ) |
Get "floating point multiplication invalid flag. " For existing flags see here.
unsigned int get_fpmul_tiny | ( | ) |
Get "floating point multiplication tiny flag. " For existing flags see here.
unsigned int get_fpmul_zero | ( | ) |
Get "floating point multiplication zero flag. " For existing flags see here.
unsigned int get_fpnlf_div0 | ( | ) |
Get "non linear function division by zero flag. " For existing flags see here.
unsigned int get_fpnlf_inex | ( | ) |
Get "non linear function inexact flag. " For existing flags see here.
unsigned int get_fpnlf_inf | ( | ) |
Get "non linear function infinite flag. " For existing flags see here.
unsigned int get_fpnlf_inv | ( | ) |
Get "non linear function invalid flag. " For existing flags see here.
unsigned int get_fpnlf_tiny | ( | ) |
Get "non linear function tiny flag. " For existing flags see here.
unsigned int get_fpnlf_zero | ( | ) |
Get "non linear function zero flag. " For existing flags see here.
unsigned int get_fx2fl_inex | ( | ) |
Get "fix to float inexact flag. " For existing flags see here.
unsigned int get_fx2fl_zero | ( | ) |
Get "fix to float zero flag. " For existing flags see here.
unsigned int get_MC | ( | unsigned int | idx | ) |
unsigned int get_ms0_success | ( | ) |
Get "wide stream 0 success flag. ".
unsigned int get_ms1_success | ( | ) |
Get "wide stream 1 success flag. ".
unsigned int get_srs_sat | ( | ) |
Get "srs saturation. " For existing flags see here.
unsigned int get_ss0_success | ( | ) |
Get "narrow stream 0 success flag. ".
unsigned int get_ss0_tlast | ( | ) |
Get "narrow stream 0 tlast flag. ".
unsigned int get_ss1_success | ( | ) |
Get "narrow stream 1 success flag. ".
unsigned int get_ss1_tlast | ( | ) |
Get "narrow stream 1 tlast flag. ".
unsigned int get_ups_sat | ( | ) |
Get "upshift saturation. " For existing flags see here.
unsigned int get_wss0_tlast | ( | ) |
Get "wide stream 0 tlast flag. ".
unsigned int get_wss1_tlast | ( | ) |
Get "wide stream 1 tlast flag. ".
void set_fl2fx_hint | ( | ) |
Set "float to fix huge int flag. " For existing flags see here.
void set_fl2fx_inv | ( | ) |
Set "float to fix invalid flag. " For existing flags see here.
void set_fpadd_huge | ( | ) |
Set "floating point addition huge flag. " For existing flags see here.
void set_fpadd_inex | ( | ) |
Set "floating point addition inexact flag. " For existing flags see here.
void set_fpadd_inf | ( | ) |
Set "floating point addition infinite flag. " For existing flags see here.
void set_fpadd_inv | ( | ) |
Set "floating point addition invalid flag. " For existing flags see here.
void set_fpadd_tiny | ( | ) |
Set "floating point addition tiny flag. " For existing flags see here.
void set_fpadd_zero | ( | ) |
Set "floating point addition zero flag. " For existing flags see here.
void set_fpmul_huge | ( | ) |
Set "floating point multiplication huge flag. " For existing flags see here.
void set_fpmul_inex | ( | ) |
Set "floating point multiplication inexact flag. " For existing flags see here.
void set_fpmul_inf | ( | ) |
Set "floating point multiplication infinite flag. " For existing flags see here.
void set_fpmul_inv | ( | ) |
Set "floating point multiplication invalid flag. " For existing flags see here.
void set_fpmul_tiny | ( | ) |
Set "floating point multiplication tiny flag. " For existing flags see here.
void set_fpmul_zero | ( | ) |
Set "floating point multiplication zero flag. " For existing flags see here.
void set_fpnlf_div0 | ( | ) |
Set "non linear function division by zero flag. " For existing flags see here.
void set_fpnlf_inex | ( | ) |
Set "non linear function inexact flag. " For existing flags see here.
void set_fpnlf_inf | ( | ) |
Set "non linear function infinite flag. " For existing flags see here.
void set_fpnlf_inv | ( | ) |
Set "non linear function invalid flag. " For existing flags see here.
void set_fpnlf_tiny | ( | ) |
Set "non linear function tiny flag. " For existing flags see here.
void set_fpnlf_zero | ( | ) |
Set "non linear function zero flag. " For existing flags see here.
void set_fx2fl_inex | ( | ) |
Set "fix to float inexact flag. " For existing flags see here.
void set_fx2fl_zero | ( | ) |
Set "fix to float zero flag. " For existing flags see here.
void set_MC | ( | unsigned int | val, |
unsigned int | idx | ||
) |
void set_ms0_success | ( | ) |
Set "wide stream 0 success flag. ".
void set_ms1_success | ( | ) |
Set "wide stream 1 success flag. ".
void set_srs_sat | ( | ) |
Set "srs saturation. " For existing flags see here.
void set_ss0_success | ( | ) |
Set "narrow stream 0 success flag. ".
void set_ss0_tlast | ( | ) |
Set "narrow stream 0 tlast flag. ".
void set_ss1_success | ( | ) |
Set "narrow stream 1 success flag. ".
void set_ss1_tlast | ( | ) |
Set "narrow stream 1 tlast flag. ".
void set_ups_sat | ( | ) |
Set "upshift saturation. " For existing flags see here.
void set_wss0_tlast | ( | ) |
Set "wide stream 0 tlast flag. ".
void set_wss1_tlast | ( | ) |
Set "wide stream 1 tlast flag. ".