File Index Symbol Index

/*** * intrin.h - declarations/definitions for platform specific intrinsic functions. * * Copyright (c) Microsoft Corporation. All rights reserved. *Purpose: * This include file contains the declarations for platform specific intrinsic * functions, or will include other files that have declaration of intrinsic * functions. Also there will be some platform specific macros to be used with * intrinsic functions. * ****/
#pragma once
#define __INTRIN_H_
#ifndef RC_INVOKED
#ifndef __midl
#include <intrin0.h>
#include <vcruntime.h> #include <setjmp.h>
#if defined (_M_ARM64) || defined(_M_HYBRID_X86_ARM64)
#include <stdint.h> // uint8_t #endif
#ifndef _M_CEE_PURE
#if (defined (_M_IX86) || defined (_M_X64)) && !defined(_CHPE_ONLY_) #include <immintrin.h> #include <ammintrin.h> #endif
#if defined (_M_IX86) && !defined(_CHPE_ONLY_) #include <mm3dnow.h> #endif
#if defined (_M_ARM)
#include <armintr.h>
#include <arm_neon.h> #endif
#if defined (_M_ARM64) || defined(_M_HYBRID_X86_ARM64)
#include <arm64intr.h>
#include <arm64_neon.h> #endif #endif
#if defined (__cplusplus)
extern
"C"
{
#endif /* defined (__cplusplus) */
__MACHINEARM(int _AddSatInt(int, int))
__MACHINEARM_ARM64(double _CopyDoubleFromInt64(__int64))
__MACHINEARM_ARM64(float _CopyFloatFromInt32(__int32))
__MACHINEARM_ARM64(__int32 _CopyInt32FromFloat(float))
__MACHINEARM_ARM64(__int64 _CopyInt64FromDouble(double))
__MACHINEARM_ARM64(unsigned int _CountLeadingOnes(unsigned long))
__MACHINEARM_ARM64(unsigned int _CountLeadingOnes64(unsigned __int64))
__MACHINEARM_ARM64(unsigned int _CountLeadingSigns(long))
__MACHINEARM_ARM64(unsigned int _CountLeadingSigns64(__int64))
__MACHINEARM_ARM64(unsigned int _CountLeadingZeros(unsigned long))
__MACHINEARM_ARM64(unsigned int _CountLeadingZeros64(unsigned __int64))
__MACHINEARM(unsigned int _CountOneBits(unsigned long))
__MACHINEARM(unsigned int _CountOneBits64(unsigned __int64))
__MACHINEARM(int _DAddSatInt(int, int))
__MACHINEARM(int _DSubSatInt(int, int))
__MACHINECHPEX86ARM64(void _HybridGenerateThunks(void *, unsigned))
__MACHINEARM_ARM64(long _InterlockedAdd(long volatile * _Addend, long _Value))
__MACHINEARM_ARM64(__int64 _InterlockedAdd64(__int64 volatile * _Addend, __int64 _Value))
__MACHINEARM_ARM64(__int64 _InterlockedAdd64_acq(__int64 volatile * _Addend, __int64 _Value))
__MACHINEARM_ARM64(__int64 _InterlockedAdd64_nf(__int64 volatile * _Addend, __int64 _Value))
__MACHINEARM_ARM64(__int64 _InterlockedAdd64_rel(__int64 volatile * _Addend, __int64 _Value))
__MACHINEARM_ARM64(long _InterlockedAdd_acq(long volatile * _Addend, long _Value))
__MACHINEARM_ARM64(long _InterlockedAdd_nf(long volatile * _Addend, long _Value))
__MACHINEARM_ARM64(long _InterlockedAdd_rel(long volatile * _Addend, long _Value))
__MACHINEX64(short _InterlockedAnd16_np(short volatile * _Value, short _Mask))
__MACHINEX64(__int64 _InterlockedAnd64_np(__int64 volatile * _Value, __int64 _Mask))
__MACHINEX64(char _InterlockedAnd8_np(char volatile * _Value, char _Mask))
__MACHINEX64(long _InterlockedAnd_np(long volatile * _Value, long _Mask))
__MACHINEARM64_X64(unsigned char _InterlockedCompareExchange128(__int64 volatile * _Destination, __int64 _ExchangeHigh, __int64 _ExchangeLow, __int64 * _ComparandResult))
__MACHINEARM64(unsigned char _InterlockedCompareExchange128_acq(__int64 volatile * _Destination, __int64 _ExchangeHigh, __int64 _ExchangeLow, __int64 * _ComparandResult))
__MACHINEARM64(unsigned char _InterlockedCompareExchange128_nf(__int64 volatile * _Destination, __int64 _ExchangeHigh, __int64 _ExchangeLow, __int64 * _ComparandResult))
__MACHINEX64(unsigned char _InterlockedCompareExchange128_np(__int64 volatile * _Destination, __int64 _ExchangeHigh, __int64 _ExchangeLow, __int64 * _ComparandResult))
__MACHINEARM64(unsigned char _InterlockedCompareExchange128_rel(__int64 volatile * _Destination, __int64 _ExchangeHigh, __int64 _ExchangeLow, __int64 * _ComparandResult))
__MACHINEX64(short _InterlockedCompareExchange16_np(short volatile * _Destination, short _Exchange, short _Comparand))
__MACHINEX64(__int64 _InterlockedCompareExchange64_np(__int64 volatile * _Destination, __int64 _Exchange, __int64 _Comparand))
__MACHINEARM_ARM64(void * _InterlockedCompareExchangePointer_acq(void * volatile * _Destination, void * _Exchange, void * _Comparand))
__MACHINEARM_ARM64(void * _InterlockedCompareExchangePointer_nf(void * volatile * _Destination, void * _Exchange, void * _Comparand))
__MACHINEX64(void * _InterlockedCompareExchangePointer_np(void * volatile * _Destination, void * _Exchange, void * _Comparand))
__MACHINEARM_ARM64(void * _InterlockedCompareExchangePointer_rel(void * volatile * _Destination, void * _Exchange, void * _Comparand))
__MACHINEX64(long _InterlockedCompareExchange_np(long volatile * _Destination, long _Exchange, long _Comparand))
__MACHINEARM_ARM64(short _InterlockedDecrement16_acq(short volatile * _Addend))
__MACHINEARM_ARM64(short _InterlockedDecrement16_nf(short volatile * _Addend))
__MACHINEARM_ARM64(short _InterlockedDecrement16_rel(short volatile * _Addend))
__MACHINEARM_ARM64_X64(__int64 _InterlockedDecrement64(__int64 volatile * _Addend))
__MACHINEARM_ARM64(__int64 _InterlockedDecrement64_acq(__int64 volatile * _Addend))
__MACHINEARM_ARM64(__int64 _InterlockedDecrement64_nf(__int64 volatile * _Addend))
__MACHINEARM_ARM64(__int64 _InterlockedDecrement64_rel(__int64 volatile * _Addend))
__MACHINEARM_ARM64(long _InterlockedDecrement_acq(long volatile * _Addend))
__MACHINEARM_ARM64(long _InterlockedDecrement_nf(long volatile * _Addend))
__MACHINEARM_ARM64(long _InterlockedDecrement_rel(long volatile * _Addend))
__MACHINEARM_ARM64(void * _InterlockedExchangePointer_acq(void * volatile * _Target, void * _Value))
__MACHINEARM_ARM64(void * _InterlockedExchangePointer_nf(void * volatile * _Target, void * _Value))
__MACHINEARM_ARM64(void * _InterlockedExchangePointer_rel(void * volatile * _Target, void * _Value))
__MACHINEARM_ARM64(short _InterlockedIncrement16_acq(short volatile * _Addend))
__MACHINEARM_ARM64(short _InterlockedIncrement16_nf(short volatile * _Addend))
__MACHINEARM_ARM64(short _InterlockedIncrement16_rel(short volatile * _Addend))
__MACHINEARM_ARM64_X64(__int64 _InterlockedIncrement64(__int64 volatile * _Addend))
__MACHINEARM_ARM64(__int64 _InterlockedIncrement64_acq(__int64 volatile * _Addend))
__MACHINEARM_ARM64(__int64 _InterlockedIncrement64_nf(__int64 volatile * _Addend))
__MACHINEARM_ARM64(__int64 _InterlockedIncrement64_rel(__int64 volatile * _Addend))
__MACHINEARM_ARM64(long _InterlockedIncrement_acq(long volatile * _Addend))
__MACHINEARM_ARM64(long _InterlockedIncrement_nf(long volatile * _Addend))
__MACHINEARM_ARM64(long _InterlockedIncrement_rel(long volatile * _Addend))
__MACHINEX64(short _InterlockedOr16_np(short volatile * _Value, short _Mask))
__MACHINEX64(__int64 _InterlockedOr64_np(__int64 volatile * _Value, __int64 _Mask))
__MACHINEX64(char _InterlockedOr8_np(char volatile * _Value, char _Mask))
__MACHINEX64(long _InterlockedOr_np(long volatile * _Value, long _Mask))
__MACHINEX64(short _InterlockedXor16_np(short volatile * _Value, short _Mask))
__MACHINEX64(__int64 _InterlockedXor64_np(__int64 volatile * _Value, __int64 _Mask))
__MACHINEX64(char _InterlockedXor8_np(char volatile * _Value, char _Mask))
__MACHINEX64(long _InterlockedXor_np(long volatile * _Value, long _Mask))
__MACHINEARM(unsigned int _MoveFromCoprocessor(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int))
__MACHINEARM(unsigned int _MoveFromCoprocessor2(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int))
__MACHINEARM(unsigned __int64 _MoveFromCoprocessor64(unsigned int, unsigned int, unsigned int))
__MACHINEARM(void _MoveToCoprocessor(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int))
__MACHINEARM(void _MoveToCoprocessor2(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int))
__MACHINEARM(void _MoveToCoprocessor64(unsigned __int64, unsigned int, unsigned int, unsigned int))
__MACHINEARM(long _MulHigh(long, long))
__MACHINEARM(unsigned long _MulUnsignedHigh(unsigned long, unsigned long))
__MACHINEARM(int _ReadStatusReg(int))
__MACHINEARM64(__int64 _ReadStatusReg(int))
__MACHINEARM64(unsigned __int64 __getReg(int))
__MACHINEARM64(unsigned __int64 __getCallerReg(int))
__MACHINEARM64(double __getRegFp(int))
__MACHINEARM64(double __getCallerRegFp(int))
__MACHINEARM(int _SubSatInt(int, int))
__MACHINEARM(void _WriteStatusReg(int, int, int))
__MACHINEARM64(void _WriteStatusReg(int, __int64))
__MACHINEARM64(void __setReg(int, unsigned __int64))
__MACHINEARM64(void __setCallerReg(int, unsigned __int64))
__MACHINEARM64(void __setRegFp(int, double))
__MACHINEARM64(void __setCallerRegFp(int, double))
__MACHINEX64(void __addgsbyte(unsigned long, unsigned char))
__MACHINEX64(void __addgsdword(unsigned long, unsigned long))
__MACHINEX64(void __addgsqword(unsigned long, unsigned __int64))
__MACHINEX64(void __addgsword(unsigned long, unsigned short))
__MACHINEARM64(void __addx18byte(unsigned long, unsigned char))
__MACHINEARM64(void __addx18dword(unsigned long, unsigned long))
__MACHINEARM64(void __addx18qword(unsigned long, unsigned __int64))
__MACHINEARM64(void __addx18word(unsigned long, unsigned short))
__MACHINEARM_ARM64(void __emit(unsigned __int32))
__MACHINEX64(void __faststorefence(void))
__MACHINEARM_ARM64(unsigned int __hvc(unsigned int, ...))
__MACHINEARM64(void __break(int))
__MACHINEX64(void __incgsbyte(unsigned long))
__MACHINEX64(void __incgsdword(unsigned long))
__MACHINEX64(void __incgsqword(unsigned long))
__MACHINEX64(void __incgsword(unsigned long))
__MACHINEARM64(void __incx18byte(unsigned long))
__MACHINEARM64(void __incx18dword(unsigned long))
__MACHINEARM64(void __incx18qword(unsigned long))
__MACHINEARM64(void __incx18word(unsigned long))
__MACHINEX64(unsigned __int64 __lzcnt64(unsigned __int64))
__MACHINEX64(void __movsq(unsigned long long *, unsigned long long const *, size_t))
__MACHINEARM64_X64(__int64 __mulh(__int64, __int64))
__MACHINEX64(unsigned __int64 __popcnt64(unsigned __int64))
__MACHINEARM_ARM64(void __cdecl __prefetch(const void *))
__MACHINEARM64(void __cdecl __prefetch2(const void *, uint8_t prfop))
__MACHINEARM(void __cdecl __prefetchw(const void *))
__MACHINEARM(unsigned __int64 __rdpmccntr64(void))
__MACHINEX64(unsigned __int64 __readcr0(void))
__MACHINEX64(unsigned __int64 __readcr2(void))
__MACHINEX64(unsigned __int64 __readcr3(void))
__MACHINEX64(unsigned __int64 __readcr4(void))
__MACHINEX64(unsigned __int64 __readcr8(void))
__MACHINEX64(unsigned __int64 __readdr(unsigned int))
__MACHINEX64(unsigned __int64 __readeflags(void))
__MACHINEX64(unsigned char __readgsbyte(unsigned long))
__MACHINEX64(unsigned long __readgsdword(unsigned long))
__MACHINEX64(unsigned __int64 __readgsqword(unsigned long))
__MACHINEX64(unsigned short __readgsword(unsigned long))
__MACHINEARM64(unsigned char __readx18byte(unsigned long))
__MACHINEARM64(unsigned long __readx18dword(unsigned long))
__MACHINEARM64(unsigned __int64 __readx18qword(unsigned long))
__MACHINEARM64(unsigned short __readx18word(unsigned long))
__MACHINEARM_ARM64(void __sev(void))
__MACHINEX64(unsigned __int64 __shiftleft128(unsigned __int64 _LowPart, unsigned __int64 _HighPart, unsigned char _Shift))
__MACHINEARM_ARM64(void __static_assert(int, const char *))
__MACHINEX64(void __stosq(unsigned __int64 *, unsigned __int64, size_t))
__MACHINEARM(unsigned int __swi(unsigned int, ...))
__MACHINEARM_ARM64(unsigned int __svc(unsigned int, ...))
__MACHINEARM64(unsigned int __hlt(unsigned int, ...))
__MACHINEARM64(unsigned int __sys(int, __int64))
__MACHINEARM(int __trap(int, ...))
__MACHINEARM64_X64(unsigned __int64 __umulh(unsigned __int64, unsigned __int64))
__MACHINEX64(unsigned char __vmx_on(unsigned __int64 *))
__MACHINEX64(unsigned char __vmx_vmclear(unsigned __int64 *))
__MACHINEX64(unsigned char __vmx_vmlaunch(void))
__MACHINEX64(unsigned char __vmx_vmptrld(unsigned __int64 *))
__MACHINEX64(unsigned char __vmx_vmread(size_t, size_t *))
__MACHINEX64(unsigned char __vmx_vmresume(void))
__MACHINEX64(unsigned char __vmx_vmwrite(size_t, size_t))
__MACHINEARM_ARM64(void __wfe(void))
__MACHINEARM_ARM64(void __wfi(void))
__MACHINEX64(void __writecr0(unsigned __int64))
__MACHINEX64(void __writecr2(unsigned __int64))
__MACHINEX64(void __writecr3(unsigned __int64))
__MACHINEX64(void __writecr4(unsigned __int64))
__MACHINEX64(void __writecr8(unsigned __int64))
__MACHINEX64(void __writedr(unsigned int, unsigned __int64))
__MACHINEX64(void __writeeflags(unsigned __int64))
__MACHINEX64(void __writegsbyte(unsigned long, unsigned char))
__MACHINEX64(void __writegsdword(unsigned long, unsigned long))
__MACHINEX64(void __writegsqword(unsigned long, unsigned __int64))
__MACHINEX64(void __writegsword(unsigned long, unsigned short))
__MACHINEARM64(void __writex18byte(unsigned long, unsigned char))
__MACHINEARM64(void __writex18dword(unsigned long, unsigned long))
__MACHINEARM64(void __writex18qword(unsigned long, unsigned __int64))
__MACHINEARM64(void __writex18word(unsigned long, unsigned short))
__MACHINEARM64_X64(unsigned char _bittest64(__int64 const *, __int64))
__MACHINEARM64_X64(unsigned char _bittestandcomplement64(__int64 *, __int64))
__MACHINEARM64_X64(unsigned char _bittestandreset64(__int64 *, __int64))
__MACHINEARM64_X64(unsigned char _bittestandset64(__int64 *, __int64))
__MACHINEARM64_X64(unsigned char _interlockedbittestandreset64(__int64 volatile *, __int64))
__MACHINEARM_ARM64(unsigned char _interlockedbittestandreset_acq(long volatile *, long))
__MACHINEARM_ARM64(unsigned char _interlockedbittestandreset_nf(long volatile *, long))
__MACHINEARM_ARM64(unsigned char _interlockedbittestandreset_rel(long volatile *, long))
__MACHINEARM64(unsigned char _interlockedbittestandreset64_acq(__int64 volatile *, __int64))
__MACHINEARM64(unsigned char _interlockedbittestandreset64_rel(__int64 volatile *, __int64))
__MACHINEARM64(unsigned char _interlockedbittestandreset64_nf(__int64 volatile *, __int64))
__MACHINEARM64_X64(unsigned char _interlockedbittestandset64(__int64 volatile *, __int64))
__MACHINEARM64(unsigned char _interlockedbittestandset64_acq(__int64 volatile *, __int64))
__MACHINEARM64(unsigned char _interlockedbittestandset64_rel(__int64 volatile *, __int64))
__MACHINEARM64(unsigned char _interlockedbittestandset64_nf(__int64 volatile *, __int64))
__MACHINEARM64(unsigned __int32 __crc32b(unsigned __int32, unsigned __int32))
__MACHINEARM64(unsigned __int32 __crc32h(unsigned __int32, unsigned __int32))
__MACHINEARM64(unsigned __int32 __crc32w(unsigned __int32, unsigned __int32))
__MACHINEARM64(unsigned __int32 __crc32d(unsigned __int32, unsigned __int64))
__MACHINEARM64(unsigned __int32 __crc32cb(unsigned __int32, unsigned __int32))
__MACHINEARM64(unsigned __int32 __crc32ch(unsigned __int32, unsigned __int32))
__MACHINEARM64(unsigned __int32 __crc32cw(unsigned __int32, unsigned __int32))
__MACHINEARM64(unsigned __int32 __crc32cd(unsigned __int32, unsigned __int64))
__MACHINEARM(int _isunordered(double, double))
__MACHINEARM(int _isunorderedf(float, float))
__MACHINEX64(unsigned __int64 _mm_crc32_u64(unsigned __int64, unsigned __int64))
__MACHINEX64(__int64 _mm_cvtsd_si64(__m128d))
__MACHINEX64(__int64 _mm_cvtsd_si64x(__m128d))
__MACHINEX64(__int64 _mm_cvtsi128_si64(__m128i))
__MACHINEX64(__int64 _mm_cvtsi128_si64x(__m128i))
__MACHINEX64(__m128d _mm_cvtsi64_sd(__m128d, __int64))
__MACHINEX64(__m128i _mm_cvtsi64_si128(__int64))
__MACHINEX64(__m128 _mm_cvtsi64_ss(__m128, __int64))
__MACHINEX64(__m128d _mm_cvtsi64x_sd(__m128d, __int64))
__MACHINEX64(__m128i _mm_cvtsi64x_si128(__int64))
__MACHINEX64(__m128 _mm_cvtsi64x_ss(__m128, __int64))
__MACHINEX64(__int64 _mm_cvtss_si64(__m128))
__MACHINEX64(__int64 _mm_cvtss_si64x(__m128))
__MACHINEX64(__int64 _mm_cvttsd_si64(__m128d))
__MACHINEX64(__int64 _mm_cvttsd_si64x(__m128d))
__MACHINEX64(__int64 _mm_cvttss_si64(__m128))
__MACHINEX64(__int64 _mm_cvttss_si64x(__m128))
__MACHINEX64(__int64 _mm_extract_epi64(__m128i, int))
__MACHINEX64(__m128i _mm_insert_epi64(__m128i, __int64, int))
__MACHINEX64(__int64 _mm_popcnt_u64(unsigned __int64))
#if defined(_CRT_WINDOWS) || defined(BUILD_WINDOWS)
__MACHINEX86_X64(__m128i _mm_stream_load_si128(__m128i *)) #else
__MACHINEX64(void _mm_stream_si64x(__int64 *, __int64))
__MACHINEX64(__int64 _mul128(__int64 _Multiplier, __int64 _Multiplicand, __int64 * _HighProduct))
__MACHINEARM_ARM64_X64(int __cdecl _setjmpex(jmp_buf))
__MACHINEX64(unsigned char __cdecl _addcarry_u64(unsigned char, unsigned __int64, unsigned __int64, unsigned __int64 *))
__MACHINEX64(unsigned char __cdecl _subborrow_u64(unsigned char, unsigned __int64, unsigned __int64, unsigned __int64 *))
#if defined (__cplusplus)
}
#endif /* defined (__cplusplus) */ #endif /* __midl */ #endif /* RC_INVOKED */