diff options
Diffstat (limited to 'src/internal/cpu')
| -rw-r--r-- | src/internal/cpu/cpu.go | 1 | ||||
| -rw-r--r-- | src/internal/cpu/cpu_x86.go | 5 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/internal/cpu/cpu.go b/src/internal/cpu/cpu.go index 4dffeadb22..52459be3bb 100644 --- a/src/internal/cpu/cpu.go +++ b/src/internal/cpu/cpu.go @@ -56,6 +56,7 @@ var X86 struct { HasSSSE3 bool HasSSE41 bool HasSSE42 bool + HasVAES bool _ CacheLinePad } diff --git a/src/internal/cpu/cpu_x86.go b/src/internal/cpu/cpu_x86.go index 0e97651e3d..3c0a0adf28 100644 --- a/src/internal/cpu/cpu_x86.go +++ b/src/internal/cpu/cpu_x86.go @@ -28,7 +28,7 @@ const ( cpuid_AVX512VBMI2 = 1 << 6 cpuid_SSSE3 = 1 << 9 cpuid_AVX512GFNI = 1 << 8 - cpuid_AVX512VAES = 1 << 9 + cpuid_VAES = 1 << 9 cpuid_AVX512VNNI = 1 << 11 cpuid_AVX512BITALG = 1 << 12 cpuid_FMA = 1 << 12 @@ -173,6 +173,7 @@ func doinit() { X86.HasERMS = isSet(ebx7, cpuid_ERMS) X86.HasADX = isSet(ebx7, cpuid_ADX) X86.HasSHA = isSet(ebx7, cpuid_SHA) + X86.HasVAES = isSet(ecx7, cpuid_VAES) && X86.HasAVX X86.HasAVX512F = isSet(ebx7, cpuid_AVX512F) && osSupportsAVX512 if X86.HasAVX512F { @@ -185,7 +186,7 @@ func doinit() { X86.HasAVX512VPOPCNTDQ = isSet(ecx7, cpuid_AVX512VPOPCNTDQ) X86.HasAVX512VBMI = isSet(ecx7, cpuid_AVX512VBMI) X86.HasAVX512VBMI2 = isSet(ecx7, cpuid_AVX512VBMI2) - X86.HasAVX512VAES = isSet(ecx7, cpuid_AVX512VAES) + X86.HasAVX512VAES = isSet(ecx7, cpuid_VAES) && X86.HasAES && isSet(ebx7, cpuid_AVX512VL) X86.HasAVX512VNNI = isSet(ecx7, cpuid_AVX512VNNI) X86.HasAVX512VPCLMULQDQ = isSet(ecx7, cpuid_AVX512VPCLMULQDQ) X86.HasAVX512VBMI = isSet(ecx7, cpuid_AVX512_VBMI) |
