22 ok(OldAffinity != 0,
"SetThreadAffinityMask(0x%Ix) failed\n", NewAffinity);
41#define REG_COUNT_SSE 8
42#define REG_COUNT_AVX 8
43#define REG_COUNT_AVX512 8
45#define REG_COUNT_SSE 16
46#define REG_COUNT_AVX 16
47#define REG_COUNT_AVX512 32
62 ok_(__FILE__,
line)(
equal,
"Variable %s Expected %I64x %I64x, got %I64x %I64x\n",
66#define ok_eq_m128i(a, b) ok_eq_m128i_(a, b, #a, __LINE__)
71 ok_(__FILE__,
line)(
equal,
"Variable %s Expected %I64x %I64x %I64x %I64x, got %I64x %I64x %I64x %I64x\n",
73 a.u64[3],
a.u64[2],
a.u64[1],
a.u64[0]);
76#define ok_eq_m256i(a, b) ok_eq_m256i_(a, b, #a, __LINE__)
81 ok_(__FILE__,
line)(
equal,
"Variable %s Expected %I64x %I64x %I64x %I64x %I64x %I64x %I64x %I64x, got %I64x %I64x %I64x %I64x %I64x %I64x %I64x %I64x\n",
83 b.u64[7],
b.u64[6],
b.u64[5],
b.u64[4],
84 b.u64[3],
b.u64[2],
b.u64[1],
b.u64[0],
85 a.u64[7],
a.u64[6],
a.u64[5],
a.u64[4],
86 a.u64[3],
a.u64[2],
a.u64[1],
a.u64[0]);
89#define ok_eq_m512i(a, b) ok_eq_m512i_(a, b, #a, __LINE__)
97 return ((
ULONG64)High32 << 32) | Low32;
144 static const M128U64 Zero128 = { 0 };
160 skip(
"SSE not supported\n");
175 ok(
FALSE,
"Failed to set SSE state\n");
185 skip(
"CreateThread failed\n");
212 static const M256U64 Zero256 = { 0 };
228 skip(
"AVX not supported\n");
243 ok(
FALSE,
"Failed to set AVX state\n");
253 skip(
"CreateThread failed\n");
280 static const M512U64 Zero512 = { 0 };
296 skip(
"AVX512 not supported\n");
311 ok(
FALSE,
"Failed to set AVX512 state\n");
321 skip(
"CreateThread failed\n");
VOID RandomFill512(M512U64 *Data512, ULONG Count)
static ULONG s_ProcessorNumber
void __fastcall set_AVX512_state(const M512U64 data[REG_COUNT_AVX512])
void __fastcall get_AVX512_state(M512U64 data[REG_COUNT_AVX512])
static VOID AdjustAffinity(VOID)
static DWORD WINAPI Thread_AVX(LPVOID Parameter)
BOOL ok_eq_m256i_(M256U64 a, M256U64 b, const char *variable, unsigned int line)
#define ok_eq_m128i(a, b)
BOOL ok_eq_m512i_(M512U64 a, M512U64 b, const char *variable, unsigned int line)
BOOL ok_eq_m128i_(M128U64 a, M128U64 b, const char *variable, unsigned int line)
VOID RandomFill128(M128U64 *Data128, ULONG Count)
#define ok_eq_m256i(a, b)
void __fastcall get_AVX_state(M256U64 data[REG_COUNT_AVX])
void __fastcall set_SSE_state(const M128U64 data[REG_COUNT_SSE])
ULONG64 GenRandom64(VOID)
static DWORD WINAPI Thread_SSE(LPVOID Parameter)
VOID RandomFill256(M256U64 *Data256, ULONG Count)
#define ok_eq_m512i(a, b)
static DWORD WINAPI Thread_AVX512(LPVOID Parameter)
void __fastcall set_AVX_state(const M256U64 data[REG_COUNT_AVX])
void __fastcall get_SSE_state(M128U64 data[REG_COUNT_SSE])
#define _DECLSPEC_INTRIN_TYPE
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
VOID WINAPI GetSystemInfo(IN LPSYSTEM_INFO lpSystemInfo)
BOOL WINAPI IsProcessorFeaturePresent(IN DWORD ProcessorFeature)
DWORD_PTR WINAPI SetThreadAffinityMask(IN HANDLE hThread, IN DWORD_PTR dwThreadAffinityMask)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define EXCEPTION_EXECUTE_HANDLER
NTSYSAPI ULONG NTAPI RtlRandom(_Inout_ PULONG Seed)
#define _SEH2_EXCEPT(...)
DWORD dwNumberOfProcessors
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
HANDLE WINAPI GetCurrentThread(void)
#define PF_XMMI_INSTRUCTIONS_AVAILABLE
#define PF_AVX_INSTRUCTIONS_AVAILABLE
#define PF_AVX512F_INSTRUCTIONS_AVAILABLE
_Inout_opt_ PVOID Parameter