-#define kHasMMX 0x00000001
-#define kHasSSE 0x00000002
-#define kHasSSE2 0x00000004
-#define kHasSSE3 0x00000008
-#define kCache32 0x00000010 /* cache line size is 32 bytes */
-#define kCache64 0x00000020
-#define kCache128 0x00000040
-#define kFastThreadLocalStorage 0x00000080 /* TLS ptr is kept in a user-mode-readable register */
-#define kHasSupplementalSSE3 0x00000100
-#define k64Bit 0x00000200 /* processor supports EM64T (not what mode you're running in) */
-#define kHasSSE4_1 0x00000400
-#define kHasSSE4_2 0x00000800
-#define kHasAES 0x00001000
-#define kInOrderPipeline 0x00002000
-#define kSlow 0x00004000 /* tsc < nanosecond */
-#define kUP 0x00008000 /* set if (kNumCPUs == 1) */
-#define kNumCPUs 0x00FF0000 /* number of CPUs (see _NumCPUs() below) */
-#define kNumCPUsShift 16
-#define kHasAVX1_0 0x01000000
-#define kHasRDRAND 0x02000000
-#define kHasF16C 0x04000000
-#define kHasENFSTRG 0x08000000
-#define kHasFMA 0x10000000
-#define kHasAVX2_0 0x20000000
-#define kHasBMI1 0x40000000
-#define kHasBMI2 0x80000000
-/* Extending into 64-bits from here: */
-#define kHasRTM 0x0000000100000000ULL
-#define kHasHLE 0x0000000200000000ULL
-#define kHasRDSEED 0x0000000800000000ULL
-#define kHasADX 0x0000000400000000ULL
-#define kHasMPX 0x0000001000000000ULL
-#define kHasSGX 0x0000002000000000ULL
-
-
-#ifndef __ASSEMBLER__
+#define kHasMMX 0x00000001
+#define kHasSSE 0x00000002
+#define kHasSSE2 0x00000004
+#define kHasSSE3 0x00000008
+#define kCache32 0x00000010 /* cache line size is 32 bytes */
+#define kCache64 0x00000020
+#define kCache128 0x00000040
+#define kFastThreadLocalStorage 0x00000080 /* TLS ptr is kept in a user-mode-readable register */
+#define kHasSupplementalSSE3 0x00000100
+#define k64Bit 0x00000200 /* processor supports EM64T (not what mode you're running in) */
+#define kHasSSE4_1 0x00000400
+#define kHasSSE4_2 0x00000800
+#define kHasAES 0x00001000
+#define kInOrderPipeline 0x00002000
+#define kSlow 0x00004000 /* tsc < nanosecond */
+#define kUP 0x00008000 /* set if (kNumCPUs == 1) */
+#define kNumCPUs 0x00FF0000 /* number of CPUs (see _NumCPUs() below) */
+#define kNumCPUsShift 16
+#define kHasAVX1_0 0x01000000
+#define kHasRDRAND 0x02000000
+#define kHasF16C 0x04000000
+#define kHasENFSTRG 0x08000000
+#define kHasFMA 0x10000000
+#define kHasAVX2_0 0x20000000
+#define kHasBMI1 0x40000000
+#define kHasBMI2 0x80000000
+/* Extending into 64-bits from here: */
+#define kHasRTM 0x0000000100000000ULL
+#define kHasHLE 0x0000000200000000ULL
+#define kHasRDSEED 0x0000000800000000ULL
+#define kHasADX 0x0000000400000000ULL
+#define kHasMPX 0x0000001000000000ULL
+#define kHasSGX 0x0000002000000000ULL
+#define kHasAVX512F 0x0000004000000000ULL
+#define kHasAVX512CD 0x0000008000000000ULL
+#define kHasAVX512DQ 0x0000010000000000ULL
+#define kHasAVX512BW 0x0000020000000000ULL
+#define kHasAVX512IFMA 0x0000040000000000ULL
+#define kHasAVX512VBMI 0x0000080000000000ULL
+#define kHasAVX512VL 0x0000100000000000ULL
+#define kHasVAES 0x0000200000000000ULL
+#define kHasVPCLMULQDQ 0x0000400000000000ULL
+#define kHasAVX512VNNI 0x0000800000000000ULL
+#define kHasAVX512BITALG 0x0001000000000000ULL
+#define kHasAVX512VPOPCNTDQ 0x0002000000000000ULL
+
+
+#ifndef __ASSEMBLER__