Intrinsics in ARC GNU vs MWDT

If one is interested in ARC-specific GCC built-ins those might be found in upstream documentation here: https://gcc.gnu.org/onlinedocs/gcc/ARC-Built-in-Functions.html.

Note to use listed below intrinsics it’s required to include arcle.h in your source file that way:

#include <arcle.h>
List of ARC intrinsics supported by MetaWare & GCC compilers

MetaWare compiler

GCC compiler

_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