![]() |
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. ".