Edit

Share via


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, ARM, and ARM64 architectures:

Intrinsic Header
_AddressOfReturnAddress intrin.h
_BitScanForward intrin.h
_BitScanReverse intrin.h
_bittest intrin.h
_bittestandcomplement intrin.h
_bittestandreset intrin.h
_bittestandset intrin.h
__code_seg intrin.h
__debugbreak intrin.h
_disable intrin.h
_enable intrin.h
__fastfail intrin.h
_InterlockedAnd intrin.h
_InterlockedAnd16 intrin.h
_InterlockedAnd8 intrin.h
_interlockedbittestandreset intrin.h
_interlockedbittestandset intrin.h
_InterlockedCompareExchange intrin.h
_InterlockedCompareExchange16 intrin.h
_InterlockedCompareExchange8 intrin.h
_InterlockedCompareExchangePointer intrin.h
_InterlockedDecrement intrin.h
_InterlockedDecrement16 intrin.h
_InterlockedExchange intrin.h
_InterlockedExchange16 intrin.h
_InterlockedExchange8 intrin.h
_InterlockedExchangeAdd intrin.h
_InterlockedExchangeAdd16 intrin.h
_InterlockedExchangeAdd8 intrin.h
_InterlockedExchangePointer intrin.h
_InterlockedIncrement intrin.h
_InterlockedIncrement16 intrin.h
_InterlockedOr intrin.h
_InterlockedOr16 intrin.h
_InterlockedOr8 intrin.h
_InterlockedXor intrin.h
_InterlockedXor16 intrin.h
_InterlockedXor8 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
_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

In Visual Studio 2022 version 17.2 and later, these functions have intrinsic forms on x64 and ARM64 platforms:

Intrinsic Header
log2 math.h
log2f math.h

See also

ARM intrinsics
ARM64 intrinsics
x86 intrinsics list
x64 (amd64) intrinsics list