AI Engine Intrinsics User Guide  (AIE) v(2024.1)
 All Data Structures Namespaces Functions Variables Typedefs Groups Pages
Status register

Intrinsics to set, get and clear bits of the status register. More...

Overview

Intrinsics to set, get and clear bits of the status register.

Lower 32 bit MC0:

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

Higher 32 bit MC1:

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

Floating point flags

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.
 
void set_srs_sat ()
 Set "srs saturation. " For existing flags see here.
 
void clr_srs_sat ()
 Clear "srs saturation. " For existing flags see here.
 
unsigned int get_ups_sat ()
 Get "upshift saturation. " For existing flags see here.
 
void set_ups_sat ()
 Set "upshift saturation. " For existing flags see here.
 
void clr_ups_sat ()
 Clear "upshift saturation. " For existing flags see here.
 

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. ".
 
void set_ss0_tlast ()
 Set "narrow stream 0 tlast flag. ".
 
void clr_ss0_tlast ()
 Clear "narrow stream 0 tlast flag. ".
 
unsigned int get_ss1_tlast ()
 Get "narrow stream 1 tlast flag. ".
 
void set_ss1_tlast ()
 Set "narrow stream 1 tlast flag. ".
 
void clr_ss1_tlast ()
 Clear "narrow stream 1 tlast flag. ".
 
unsigned int get_wss0_tlast ()
 Get "wide stream 0 tlast flag. ".
 
void set_wss0_tlast ()
 Set "wide stream 0 tlast flag. ".
 
void clr_wss0_tlast ()
 Clear "wide stream 0 tlast flag. ".
 
unsigned int get_wss1_tlast ()
 Get "wide stream 1 tlast flag. ".
 
void set_wss1_tlast ()
 Set "wide stream 1 tlast flag. ".
 
void clr_wss1_tlast ()
 Clear "wide stream 1 tlast flag. ".
 

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. ".
 
void set_ss0_success ()
 Set "narrow stream 0 success flag. ".
 
void clr_ss0_success ()
 Clear "narrow stream 0 success flag. ".
 
unsigned int get_ss1_success ()
 Get "narrow stream 1 success flag. ".
 
void set_ss1_success ()
 Set "narrow stream 1 success flag. ".
 
void clr_ss1_success ()
 Clear "narrow stream 1 success flag. ".
 
unsigned int get_ms0_success ()
 Get "wide stream 0 success flag. ".
 
void set_ms0_success ()
 Set "wide stream 0 success flag. ".
 
void clr_ms0_success ()
 Clear "wide stream 0 success flag. ".
 
unsigned int get_ms1_success ()
 Get "wide stream 1 success flag. ".
 
void set_ms1_success ()
 Set "wide stream 1 success flag. ".
 
void clr_ms1_success ()
 Clear "wide stream 1 success flag. ".
 

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.
 
void set_fpadd_zero ()
 Set "floating point addition zero flag. " For existing flags see here.
 
void clr_fpadd_zero ()
 Clear "floating point addition zero flag. " For existing flags see here.
 
unsigned int get_fpadd_inf ()
 Get "floating point addition infinite flag. " For existing flags see here.
 
void set_fpadd_inf ()
 Set "floating point addition infinite flag. " For existing flags see here.
 
void clr_fpadd_inf ()
 Clear "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.
 
void set_fpadd_inv ()
 Set "floating point addition invalid flag. " For existing flags see here.
 
void clr_fpadd_inv ()
 Clear "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.
 
void set_fpadd_tiny ()
 Set "floating point addition tiny flag. " For existing flags see here.
 
void clr_fpadd_tiny ()
 Clear "floating point addition tiny flag. " For existing flags see here.
 
unsigned int get_fpadd_huge ()
 Get "floating point addition huge flag. " For existing flags see here.
 
void set_fpadd_huge ()
 Set "floating point addition huge flag. " For existing flags see here.
 
void clr_fpadd_huge ()
 Clear "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.
 
void set_fpadd_inex ()
 Set "floating point addition inexact flag. " For existing flags see here.
 
void clr_fpadd_inex ()
 Clear "floating point addition inexact flag. " For existing flags see here.
 

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.
 
void set_fpmul_zero ()
 Set "floating point multiplication zero flag. " For existing flags see here.
 
void clr_fpmul_zero ()
 Clear "floating point multiplication zero flag. " For existing flags see here.
 
unsigned int get_fpmul_inf ()
 Get "floating point multiplication infinite flag. " For existing flags see here.
 
void set_fpmul_inf ()
 Set "floating point multiplication infinite flag. " For existing flags see here.
 
void clr_fpmul_inf ()
 Clear "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.
 
void set_fpmul_inv ()
 Set "floating point multiplication invalid flag. " For existing flags see here.
 
void clr_fpmul_inv ()
 Clear "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.
 
void set_fpmul_tiny ()
 Set "floating point multiplication tiny flag. " For existing flags see here.
 
void clr_fpmul_tiny ()
 Clear "floating point multiplication tiny flag. " For existing flags see here.
 
unsigned int get_fpmul_huge ()
 Get "floating point multiplication huge flag. " For existing flags see here.
 
void set_fpmul_huge ()
 Set "floating point multiplication huge flag. " For existing flags see here.
 
void clr_fpmul_huge ()
 Clear "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.
 
void set_fpmul_inex ()
 Set "floating point multiplication inexact flag. " For existing flags see here.
 
void clr_fpmul_inex ()
 Clear "floating point multiplication inexact flag. " For existing flags see here.
 

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.
 
void set_fpnlf_zero ()
 Set "non linear function zero flag. " For existing flags see here.
 
void clr_fpnlf_zero ()
 Clear "non linear function zero flag. " For existing flags see here.
 
unsigned int get_fpnlf_inf ()
 Get "non linear function infinite flag. " For existing flags see here.
 
void set_fpnlf_inf ()
 Set "non linear function infinite flag. " For existing flags see here.
 
void clr_fpnlf_inf ()
 Clear "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.
 
void set_fpnlf_inv ()
 Set "non linear function invalid flag. " For existing flags see here.
 
void clr_fpnlf_inv ()
 Clear "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.
 
void set_fpnlf_tiny ()
 Set "non linear function tiny flag. " For existing flags see here.
 
void clr_fpnlf_tiny ()
 Clear "non linear function tiny flag. " For existing flags see here.
 
unsigned int get_fpnlf_inex ()
 Get "non linear function inexact flag. " For existing flags see here.
 
void set_fpnlf_inex ()
 Set "non linear function inexact flag. " For existing flags see here.
 
void clr_fpnlf_inex ()
 Clear "non linear function inexact flag. " For existing flags see here.
 
unsigned int get_fpnlf_div0 ()
 Get "non linear function division by 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 clr_fpnlf_div0 ()
 Clear "non linear function division by zero flag. " For existing flags see here.
 

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.
 
void set_fx2fl_zero ()
 Set "fix to float zero flag. " For existing flags see here.
 
void clr_fx2fl_zero ()
 Clear "fix to float zero flag. " For existing flags see here.
 
unsigned int get_fx2fl_inex ()
 Get "fix to float inexact flag. " For existing flags see here.
 
void set_fx2fl_inex ()
 Set "fix to float inexact flag. " For existing flags see here.
 
void clr_fx2fl_inex ()
 Clear "fix to float inexact flag. " For existing flags see here.
 

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.
 
void set_fl2fx_hint ()
 Set "float to fix huge int flag. " For existing flags see here.
 
void clr_fl2fx_hint ()
 Clear "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.
 
void set_fl2fx_inv ()
 Set "float to fix invalid flag. " For existing flags see here.
 
void clr_fl2fx_inv ()
 Clear "float to fix invalid flag. " For existing flags see here.
 

Function Documentation

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. ".