Intrinsics available on all architectures

The Microsoft C/C++ compiler and the Universal C Runtime Library (UCRT) make some intrinsics available on all architectures.

Compiler intrinsics

The following intrinsics are available with the x86, AMD64, and ARM architectures:

Intrinsic Header
_AddressOfReturnAddress intrin.h
_BitScanForward intrin.h
_BitScanForward64 intrin.h
_BitScanReverse intrin.h
_BitScanReverse64 intrin.h
_bittest intrin.h
_bittest64 intrin.h
_bittestandcomplement intrin.h
_bittestandcomplement64 intrin.h
_bittestandreset intrin.h
_bittestandreset64 intrin.h
_bittestandset intrin.h
_bittestandset64 intrin.h
__debugbreak intrin.h
_disable intrin.h
_enable intrin.h
__fastfail intrin.h
_InterlockedAnd intrin.h
_InterlockedAnd16 intrin.h
_InterlockedAnd64 intrin.h
_InterlockedAnd8 intrin.h
_interlockedbittestandreset intrin.h
_interlockedbittestandset intrin.h
_InterlockedCompareExchange intrin.h
_InterlockedCompareExchange16 intrin.h
_InterlockedCompareExchange64 intrin.h
_InterlockedCompareExchange8 intrin.h
_InterlockedCompareExchangePointer intrin.h
_InterlockedDecrement16 intrin.h
_InterlockedDecrement64 intrin.h
_InterlockedExchange intrin.h
_InterlockedExchange16 intrin.h
_InterlockedExchange64 intrin.h
_InterlockedExchange8 intrin.h
_InterlockedExchangeAdd intrin.h
_InterlockedExchangeAdd16 intrin.h
_InterlockedExchangeAdd64 intrin.h
_InterlockedExchangeAdd8 intrin.h
_InterlockedExchangePointer intrin.h
_InterlockedIncrement intrin.h
_InterlockedIncrement16 intrin.h
_InterlockedIncrement64 intrin.h
_InterlockedOr intrin.h
_InterlockedOr16 intrin.h
_InterlockedOr64 intrin.h
_InterlockedOr8 intrin.h
_InterlockedXor intrin.h
_InterlockedXor16 intrin.h
_InterlockedXor64 intrin.h
_InterlockedXor8 intrin.h
_mul128 intrin.h
__mulh intrin.h
__nop intrin.h
_ReadBarrier intrin.h
_ReadWriteBarrier intrin.h
_ReturnAddress intrin.h
_rotl16 intrin.h
_rotl8 intrin.h
_rotr16 intrin.h
_rotr8 intrin.h
__shiftleft128 intrin.h
__shiftright128 intrin.h
_umul128 intrin.h
__umulh intrin.h
_WriteBarrier intrin.h

UCRT intrinsics

The following UCRT functions have intrinsic forms on all architectures:

Intrinsic Header
abs stdlib.h
_abs64 stdlib.h
acos math.h
acosf math.h
acosl math.h
_alloca malloc.h
asin math.h
asinf math.h
asinl math.h
atan math.h
atan2 math.h
atan2f math.h
atan2l math.h
atanf math.h
atanl math.h
_byteswap_uint64 stdlib.h
_byteswap_ulong stdlib.h
_byteswap_ushort stdlib.h
ceil math.h
ceilf math.h
ceill math.h
cos math.h
cosf math.h
cosh math.h
coshf math.h
coshl math.h
cosl math.h
exp math.h
expf math.h
expl math.h
fabs math.h
fabsf math.h
floor math.h
floorf math.h
floorl math.h
fmod math.h
fmodf math.h
fmodl math.h
labs stdlib.h
llabs stdlib.h
log math.h
log10 math.h
log10f math.h
log10l math.h
logf math.h
logl math.h
_lrotl stdlib.h
_lrotr stdlib.h
memcmp string.h
memcpy string.h
memset string.h
pow math.h
powf math.h
powl math.h
_rotl stdlib.h
_rotl64 stdlib.h
_rotr stdlib.h
_rotr64 stdlib.h
sin math.h
sinf math.h
sinh math.h
sinhf math.h
sinhl math.h
sinl math.h
sqrt math.h
sqrtf math.h
sqrtl math.h
strcat string.h
strcmp string.h
strcpy string.h
strlen string.h
_strset string.h
strset string.h
tan math.h
tanf math.h
tanh math.h
tanhf math.h
tanhl math.h
tanl math.h
wcscat string.h
wcscmp string.h
wcscpy string.h
wcslen string.h
_wcsset string.h

See also

ARM Intrinsics
x86 Intrinsics List
x64 (amd64) Intrinsics List