Other-General Support-Other#
_readfsbase_u32#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
unsigned int
Intel Description
Read the FS segment base register and store the 32-bit result in “dst”.
Intel Implementation Psudeo-Code
dst[31:0] := FS_Segment_Base_Register
dst[63:32] := 0
_readfsbase_u64#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
unsigned __int64
Intel Description
Read the FS segment base register and store the 64-bit result in “dst”.
Intel Implementation Psudeo-Code
dst[63:0] := FS_Segment_Base_Register
_readgsbase_u32#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
unsigned int
Intel Description
Read the GS segment base register and store the 32-bit result in “dst”.
Intel Implementation Psudeo-Code
dst[31:0] := GS_Segment_Base_Register
dst[63:32] := 0
_readgsbase_u64#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
unsigned __int64
Intel Description
Read the GS segment base register and store the 64-bit result in “dst”.
Intel Implementation Psudeo-Code
dst[63:0] := GS_Segment_Base_Register
_writefsbase_u32#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
- Param Types:
unsigned int a
- Param ETypes:
UI32 a
void _writefsbase_u32(unsigned int a);
Intel Description
Write the unsigned 32-bit integer “a” to the FS segment base register.
Intel Implementation Psudeo-Code
FS_Segment_Base_Register[31:0] := a[31:0]
FS_Segment_Base_Register[63:32] := 0
_writefsbase_u64#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
- Param Types:
unsigned __int64 a
- Param ETypes:
UI64 a
void _writefsbase_u64(unsigned __int64 a);
Intel Description
Write the unsigned 64-bit integer “a” to the FS segment base register.
Intel Implementation Psudeo-Code
FS_Segment_Base_Register[63:0] := a[63:0]
_writegsbase_u32#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
- Param Types:
unsigned int a
- Param ETypes:
UI32 a
void _writegsbase_u32(unsigned int a);
Intel Description
Write the unsigned 32-bit integer “a” to the GS segment base register.
Intel Implementation Psudeo-Code
GS_Segment_Base_Register[31:0] := a[31:0]
GS_Segment_Base_Register[63:32] := 0
_writegsbase_u64#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
- Param Types:
unsigned __int64 a
- Param ETypes:
UI64 a
void _writegsbase_u64(unsigned __int64 a);
Intel Description
Write the unsigned 64-bit integer “a” to the GS segment base register.
Intel Implementation Psudeo-Code
GS_Segment_Base_Register[63:0] := a[63:0]
_hreset#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
- Param Types:
int __eax
- Param ETypes:
SI32 __eax
void _hreset(int __eax);
Intel Description
Provides a hint to the processor to selectively reset the prediction history of the current logical processor specified by a signed 32-bit integer “__eax”.
_allow_cpu_features#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
- Param Types:
unsigned __int64 a
- Param ETypes:
IMM a
void _allow_cpu_features(unsigned __int64 a);
Intel Description
Treat the processor-specific feature(s) specified in “a” as available. Multiple features may be OR’d together. See the valid feature flags below:
Intel Implementation Psudeo-Code
_FEATURE_GENERIC_IA32
_FEATURE_FPU
_FEATURE_CMOV
_FEATURE_MMX
_FEATURE_FXSAVE
_FEATURE_SSE
_FEATURE_SSE2
_FEATURE_SSE3
_FEATURE_SSSE3
_FEATURE_SSE4_1
_FEATURE_SSE4_2
_FEATURE_MOVBE
_FEATURE_POPCNT
_FEATURE_PCLMULQDQ
_FEATURE_AES
_FEATURE_F16C
_FEATURE_AVX
_FEATURE_RDRND
_FEATURE_FMA
_FEATURE_BMI
_FEATURE_LZCNT
_FEATURE_HLE
_FEATURE_RTM
_FEATURE_AVX2
_FEATURE_KNCNI
_FEATURE_AVX512F
_FEATURE_ADX
_FEATURE_RDSEED
_FEATURE_AVX512ER
_FEATURE_AVX512PF
_FEATURE_AVX512CD
_FEATURE_SHA
_FEATURE_MPX
_FEATURE_AVX512BW
_FEATURE_AVX512VL
_FEATURE_AVX512VBMI
_FEATURE_AVX512_4FMAPS
_FEATURE_AVX512_4VNNIW
_FEATURE_AVX512_VPOPCNTDQ
_FEATURE_AVX512_BITALG
_FEATURE_AVX512_VBMI2
_FEATURE_GFNI
_FEATURE_VAES
_FEATURE_VPCLMULQDQ
_FEATURE_AVX512_VNNI
_FEATURE_CLWB
_FEATURE_RDPID
_FEATURE_IBT
_FEATURE_SHSTK
_FEATURE_SGX
_FEATURE_WBNOINVD
_FEATURE_PCONFIG
_FEATURE_AXV512_4VNNIB
_FEATURE_AXV512_4FMAPH
_FEATURE_AXV512_BITALG2
_FEATURE_AXV512_VP2INTERSECT
_may_i_use_cpu_feature#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
int
- Param Types:
unsigned __int64 a
- Param ETypes:
IMM a
int _may_i_use_cpu_feature(unsigned __int64 a);
Intel Description
Dynamically query the processor to determine if the processor-specific feature(s) specified in “a” are available, and return true or false (1 or 0) if the set of features is available. Multiple features may be OR’d together. This function is limited to bitmask values in the first ‘page’ of the libirc cpu-id information. This intrinsic does not check the processor vendor. See the valid feature flags below:
Intel Implementation Psudeo-Code
_FEATURE_GENERIC_IA32
_FEATURE_FPU
_FEATURE_CMOV
_FEATURE_MMX
_FEATURE_FXSAVE
_FEATURE_SSE
_FEATURE_SSE2
_FEATURE_SSE3
_FEATURE_SSSE3
_FEATURE_SSE4_1
_FEATURE_SSE4_2
_FEATURE_MOVBE
_FEATURE_POPCNT
_FEATURE_PCLMULQDQ
_FEATURE_AES
_FEATURE_F16C
_FEATURE_AVX
_FEATURE_RDRND
_FEATURE_FMA
_FEATURE_BMI
_FEATURE_LZCNT
_FEATURE_HLE
_FEATURE_RTM
_FEATURE_AVX2
_FEATURE_KNCNI
_FEATURE_AVX512F
_FEATURE_ADX
_FEATURE_RDSEED
_FEATURE_AVX512ER
_FEATURE_AVX512PF
_FEATURE_AVX512CD
_FEATURE_SHA
_FEATURE_MPX
_FEATURE_AVX512BW
_FEATURE_AVX512VL
_FEATURE_AVX512VBMI
_FEATURE_AVX512_4FMAPS
_FEATURE_AVX512_4VNNIW
_FEATURE_AVX512_VPOPCNTDQ
_FEATURE_AVX512_BITALG
_FEATURE_AVX512_VBMI2
_FEATURE_GFNI
_FEATURE_VAES
_FEATURE_VPCLMULQDQ
_FEATURE_AVX512_VNNI
_FEATURE_CLWB
_FEATURE_RDPID
_FEATURE_IBT
_FEATURE_SHSTK
_FEATURE_SGX
_FEATURE_WBNOINVD
_FEATURE_PCONFIG
_FEATURE_AXV512_4VNNIB
_FEATURE_AXV512_4FMAPH
_FEATURE_AXV512_BITALG2
_FEATURE_AXV512_VP2INTERSECT
_FEATURE_AXV512_FP16
_may_i_use_cpu_feature_ext#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
int
- Param Types:
unsigned __int64 a, unsigned page
- Param ETypes:
IMM a, IMM page
int _may_i_use_cpu_feature_ext(unsigned __int64 a,
unsigned page)
Intel Description
Dynamically query the processor to determine if the processor-specific feature(s) specified in “a” are available, and return true or false (1 or 0) if the set of features is available. Multiple features may be OR’d together. This works identically to the previous variant, except it also accepts a ‘page’ index that permits checking features on the 2nd page of the libirc information. When provided with a ‘0’ in the ‘page’ parameter, this works identically to _may_i_use_cpu_feature. This intrinsic does not check the processor vendor. See the valid feature flags on the 2nd page below: (provided with a ‘1’ in the ‘page’ parameter)
Intel Implementation Psudeo-Code
_FEATURE_CLDEMOTE
_FEATURE_MOVDIRI
_FEATURE_MOVDIR64B
_FEATURE_WAITPKG
_FEATURE_AVX512_Bf16
_FEATURE_ENQCMD
_FEATURE_AVX_VNNI
_FEATURE_AMX_TILE
_FEATURE_AMX_INT8
_FEATURE_AMX_BF16
_FEATURE_KL
_FEATURE_WIDE_KL
_FEATURE_HRESET
_FEATURE_UINTR
_FEATURE_PREFETCHI
_FEATURE_AVXVNNIINT8
_FEATURE_CMPCCXADD
_FEATURE_AVXIFMA
_FEATURE_AVXNECONVERT
_FEATURE_RAOINT
_FEATURE_AMX_FP16
_FEATURE_AMX_COMPLEX
_FEATURE_SHA512
_FEATURE_SM3
_FEATURE_SM4
_FEATURE_AVXVNNIINT16
_FEATURE_USERMSR
_FEATURE_AVX10_1_256
_FEATURE_AVX10_1_512
_FEATURE_APXF
_FEATURE_MSRLIST
_FEATURE_WRMSRNS
_FEATURE_PBNDKB
_may_i_use_cpu_feature_str#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
int
int _may_i_use_cpu_feature_str(string literal feature, ...);
Intel Description
Dynamically query the processor to determine if the processor-specific feature(s) specified a series of compile-time string literals in “feature, …” are available, and return true or false (1 or 0) if the set of features is available. These feature names are converted to a bitmask and uses the same infrastructure as _may_i_use_cpu_feature_ext to validate it. The behavior is the same as the previous variants. This intrinsic does not check the processor vendor. Supported string literals are one-to-one corresponding in the “Operation” sections of _may_i_use_cpu_feature and _may_i_use_cpu_feature_ext. Example string literals are “avx2”, “bmi”, “avx512fp16”, “amx-int8”…
Intel Implementation Psudeo-Code
_rdpmc#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
__int64
- Param Types:
int a
- Param ETypes:
UI32 a
__int64 _rdpmc(int a);
Intel Description
Read the Performance Monitor Counter (PMC) specified by “a”, and store up to 64-bits in “dst”. The width of performance counters is implementation specific.
Intel Implementation Psudeo-Code
dst[63:0] := ReadPMC(a)
_rdpid_u32#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
unsigned int
unsigned int _rdpid_u32(void );
Intel Description
Copy the IA32_TSC_AUX MSR (signature value) into “dst”.
Intel Implementation Psudeo-Code
dst[31:0] := IA32_TSC_AUX[31:0]
__rdtscp#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
unsigned __int64
- Param Types:
unsigned int * mem_addr
- Param ETypes:
UI32 mem_addr
unsigned __int64 __rdtscp(unsigned int * mem_addr);
Intel Description
Copy the current 64-bit value of the processor’s time-stamp counter into “dst”, and store the IA32_TSC_AUX MSR (signature value) into memory at “mem_addr”.
Intel Implementation Psudeo-Code
dst[63:0] := TimeStampCounter
MEM[mem_addr+31:mem_addr] := IA32_TSC_AUX[31:0]
_xabort#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
- Param Types:
const unsigned int imm8
- Param ETypes:
IMM imm8
void _xabort(const unsigned int imm8);
Intel Description
- Force an RTM abort. The EAX register is updated to reflect an XABORT instruction caused the abort, and the “imm8” parameter will be provided in bits [31:24] of EAX.
Following an RTM abort, the logical processor resumes execution at the fallback address computed through the outermost XBEGIN instruction.
Intel Implementation Psudeo-Code
IF RTM_ACTIVE == 0
// nop
ELSE
// restore architectural register state
// discard memory updates performed in transaction
// update EAX with status and imm8 value
eax[31:24] := imm8[7:0]
RTM_NEST_COUNT := 0
RTM_ACTIVE := 0
IF _64_BIT_MODE
RIP := fallbackRIP
ELSE
EIP := fallbackEIP
FI
FI
_xbegin#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
unsigned int
unsigned int _xbegin(void );
Intel Description
- Specify the start of an RTM code region.
If the logical processor was not already in transactional execution, then this call causes the logical processor to transition into transactional execution. On an RTM abort, the logical processor discards all architectural register and memory updates performed during the RTM execution, restores architectural state, and starts execution beginning at the fallback address computed from the outermost XBEGIN instruction. Return status of ~0 (0xFFFF) if continuing inside transaction; all other codes are aborts.
Intel Implementation Psudeo-Code
IF RTM_NEST_COUNT < MAX_RTM_NEST_COUNT
RTM_NEST_COUNT := RTM_NEST_COUNT + 1
IF RTM_NEST_COUNT == 1
IF _64_BIT_MODE
fallbackRIP := RIP
ELSE IF _32_BIT_MODE
fallbackEIP := EIP
FI
RTM_ACTIVE := 1
// enter RTM execution, record register state, start tracking memory state
FI
ELSE
// RTM abort (see _xabort)
FI
_xend#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
void _xend(void );
Intel Description
- Specify the end of an RTM code region.
If this corresponds to the outermost scope, the logical processor will attempt to commit the logical processor state atomically. If the commit fails, the logical processor will perform an RTM abort.
Intel Implementation Psudeo-Code
IF RTM_ACTIVE == 1
RTM_NEST_COUNT := RTM_NEST_COUNT - 1
IF RTM_NEST_COUNT == 0
// try to commit transaction
IF FAIL_TO_COMMIT_TRANSACTION
// RTM abort (see _xabort)
ELSE
RTM_ACTIVE := 0
FI
FI
FI
_xtest#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
unsigned char
unsigned char _xtest(void );
Intel Description
Query the transactional execution status, return 1 if inside a transactionally executing RTM or HLE region, and return 0 otherwise.
Intel Implementation Psudeo-Code
IF (RTM_ACTIVE == 1 OR HLE_ACTIVE == 1)
dst := 1
ELSE
dst := 0
FI
_serialize#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
Intel Description
Serialize instruction execution, ensuring all modifications to flags, registers, and memory by previous instructions are completed before the next instruction is fetched.
_rdtsc#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
__int64
__int64 _rdtsc(void );
Intel Description
Copy the current 64-bit value of the processor’s time-stamp counter into “dst”.
Intel Implementation Psudeo-Code
dst[63:0] := TimeStampCounter
_clui#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
void _clui(void );
Intel Description
Clear the user interrupt flag (UIF).
_senduipi#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
- Param Types:
unsigned __int64 __a
- Param ETypes:
UI64 __a
void _senduipi(unsigned __int64 __a);
Intel Description
Send user interprocessor interrupts specified in unsigned 64-bit integer “__a”.
_stui#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
void _stui(void );
Intel Description
Sets the user interrupt flag (UIF).
_testui#
- Tech:
Other
- Category:
General Support
- Header:
immintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
unsigned char
unsigned char _testui(void );
Intel Description
Store the current user interrupt flag (UIF) in unsigned 8-bit integer “dst”.
_urdmsr#
- Tech:
Other
- Category:
General Support
- Header:
x86gprintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
unsigned __int64
- Param Types:
unsigned __int64 __A
- Param ETypes:
UI64 __A
unsigned __int64 _urdmsr(unsigned __int64 __A);
Intel Description
Reads the contents of a 64-bit MSR specified in “__A” into “dst”.
Intel Implementation Psudeo-Code
DEST := MSR[__A]
_uwrmsr#
- Tech:
Other
- Category:
General Support
- Header:
x86gprintrin.h
- Searchable:
Other-General Support-Other
- Return Type:
void
- Param Types:
unsigned __int64 __A, unsigned __int64 __B
- Param ETypes:
UI64 __A, UI64 __B
void _uwrmsr(unsigned __int64 __A, unsigned __int64 __B);
Intel Description
Writes the contents of “__B” into the 64-bit MSR specified in “__A”.
Intel Implementation Psudeo-Code
MSR[__A] := __B