Skip to content

Intrinsics

GCC supports a number of built-in functions for ARC targets. Documentation for them may be found in the official manual.

All ARC built-ins are stored in arcle.h header file:

#include <arcle.h>

Here is comparison table for MetaWare andd GCC compilers regarding support of intrinsics:

MetaWare GCC
_abss _abss
_abssh _abssh
_adcs _adcs
_add Not planned
_add1 Not planned
_add1_f Not planned
_add2 Not planned
_add2_f Not planned
_add3 Not planned
_add3_f Not planned
_add_f Not planned
_adds _adds
_adds_f Not planned
_aex Unsupported
_and Not planned
_and_f Not planned
_asl Not planned
_asl_f Not planned
_aslacc _aslacc
_asls _asls
_asls_f Not planned
_aslsacc _aslsacc
_asr Not planned
_asr_f Not planned
_asrs _asrs
_asrs_f Not planned
_asrsr _asrsr
_asrsr_f Not planned
_bclr Not planned
_bclr_f Not planned
_bmsk Not planned
_bmsk_f Not planned
_bset Not planned
_bset_f Not planned
_btst_f Not planned
_bxor Not planned
_bxor_f Not planned
_cbflyhf0r _cbflyhf0r
_cbflyhf1r _cbflyhf1r
_cmacchfr _cmacchfr
_cmacchnfr _cmacchnfr
_cmachfr _cmachfr
_cmachnfr _cmachnfr
_cmpychfr _cmpychfr
_cmpychnfr _cmpychnfr
_cmpyhfmr _cmpyhfmr
_cmpyhfr _cmpyhfr
_cmpyhnfr _cmpyhnfr
_divf _divf
_dmach _dmach
_dmachbl _dmachbl
_dmachbm _dmachbm
_dmachf _dmachf
_dmachfr _dmachfr
_dmachu _dmachu
_dmacwh _dmacwh
_dmacwhf _dmacwhf
_dmacwhu _dmacwhu
_dmpyh _dmpyh
_dmpyhbl _dmpyhbl
_dmpyhbm _dmpyhbm
_dmpyhf _dmpyhf
_dmpyhfr _dmpyhfr
_dmpyhu _dmpyhu
_dmpyhwf _dmpyhwf
_dmpywh _dmpywh
_dmpywhf _dmpywhf
_dmpywhu _dmpywhu
_ex Unsupported
_ex_di Unsupported
_ffs Unsupported
_flagacc _flagacc
_fls Unsupported
_getacc _getacc
_kflag _kflag
_lr _lr
_lsr Not planned
_lsr_f Not planned
_mac _mac
_macd _macd
_macdf _macdf
_macdu _macdu
_macf _macf
_macfr _macfr
_macu _macu
_macwhfl _macwhfl
_macwhflr _macwhflr
_macwhfm _macwhfm
_macwhfmr _macwhfmr
_macwhkl _macwhkl
_macwhkul _macwhkul
_macwhl _macwhl
_macwhul _macwhul
_max_f Not planned
_min_f Not planned
_modif Not planned
_mov_f Not planned
_mpy Not planned
_mpyd Not planned
_mpydf _mpydf
_mpydu Not planned
_mpyf _mpyf
_mpyfr _mpyfr
_mpym Not planned
_mpymu Not planned
_mpyu Not planned
_mpywhfl _mpywhfl
_mpywhflr _mpywhflr
_mpywhfm _mpywhfm
_mpywhfmr _mpywhfmr
_mpywhkl _mpywhkl
_mpywhkul _mpywhkul
_mpywhl _mpywhl
_mpywhul _mpywhul
_msubdf _msubdf
_msubf _msubf
_msubfr _msubfr
_msubwhfl _msubwhfl
_msubwhflr _msubwhflr
_msubwhfm _msubwhfm
_msubwhfmr _msubwhfmr
_negs _negs
_negs_f Not planned
_negsh _negsh
_negsh_f Not planned
_norm Not planned
_norm_f Not planned
_normacc _normacc
_normh Not planned
_normh_f Not planned
_normw Not planned
_normw_f Not planned
_or Not planned
_or_f Not planned
_qmach _qmach
_qmachf _qmachf
_qmachu _qmachu
_qmpyh _qmpyh
_qmpyhf _qmpyhf
_qmpyhu _qmpyhu
_rndh _rndh
_rndh_f Not planned
_ror Not planned
_ror_f Not planned
_rrc Not planned
_rrc_f Not planned
_satf _satf
_sath _sath
_sath_f Not planned
_sbcs _sbcs
_setacc _setacc
_sqrt _sqrt
_sqrtf _sqrtf
_sr _sr
_sub Not planned
_sub1 Not planned
_sub1_f Not planned
_sub2 Not planned
_sub2_f Not planned
_sub3 Not planned
_sub3_f Not planned
_sub_f Not planned
_subs _subs
_subs_f Not planned
_trap _trap
_vabs2h _vabs2h
_vabss2h _vabss2h
_vadd2 _vadd2
_vadd2h _vadd2h
_vadd4b _vadd4b
_vadd4h _vadd4h
_vadds2 _vadds2
_vadds2h _vadds2h
_vadds4h _vadds4h
_vaddsub _vaddsub
_vaddsub2h _vaddsub2h
_vaddsub4h _vaddsub4h
_vaddsubs _vaddsubs
_vaddsubs2h _vaddsubs2h
_vaddsubs4h _vaddsubs4h
_valgn2h _valgn2h
_vasl2h _vasl2h
_vasls2h _vasls2h
_vasr2h _vasr2h
_vasrs2h _vasrs2h
_vasrsr2h _vasrsr2h
_vext2bhl _vext2bhl
_vext2bhlf _vext2bhlf
_vext2bhm _vext2bhm
_vext2bhmf _vext2bhmf
_vlsr2h _vlsr2h
_vmac2h _vmac2h
_vmac2hf _vmac2hf
_vmac2hfr _vmac2hfr
_vmac2hnfr _vmac2hnfr
_vmac2hu _vmac2hu
_vmax2h _vmax2h
_vmin2h _vmin2h
_vmpy2h _vmpy2h
_vmpy2hf _vmpy2hf
_vmpy2hfr _vmpy2hfr
_vmpy2hu _vmpy2hu
_vmpy2hwf _vmpy2hwf
_vmsub2hf _vmsub2hf
_vmsub2hfr _vmsub2hfr
_vmsub2hnfr _vmsub2hnfr
_vneg2h _vneg2h
_vnegs2h _vnegs2h
_vnorm2h _vnorm2h
_vpack2hbl _vpack2hbl
_vpack2hblf _vpack2hblf
_vpack2hbm _vpack2hbm
_vpack2hbmf _vpack2hbmf
_vpack2hl _vpack2hl
_vpack2hm _vpack2hm
_vperm _vperm
_vrep2hl _vrep2hl
_vrep2hm _vrep2hm
_vsext2bhl _vsext2bhl
_vsext2bhm _vsext2bhm
_vsub2 _vsub2
_vsub2h _vsub2h
_vsub4b _vsub4b
_vsub4h _vsub4h
_vsubadd _vsubadd
_vsubadd2h _vsubadd2h
_vsubadd4h _vsubadd4h
_vsubadds _vsubadds
_vsubadds2h _vsubadds2h
_vsubadds4h _vsubadds4h
_vsubs2 _vsubs2
_vsubs2h _vsubs2h
_vsubs4h _vsubs4h
_wevt Unsupported