@@ -41,6 +41,9 @@ const (
41
41
cpuid_ADX = 1 << 19
42
42
cpuid_SHA = 1 << 29
43
43
44
+ // edx bits
45
+ cpuid_AMX = 1 << 24
46
+
44
47
// edx bits for CPUID 0x80000001
45
48
cpuid_RDTSCP = 1 << 27
46
49
)
@@ -73,6 +76,7 @@ func doinit() {
73
76
options = append (options ,
74
77
option {Name : "avx" , Feature : & X86 .HasAVX },
75
78
option {Name : "avx2" , Feature : & X86 .HasAVX2 },
79
+ option {Name : "amx" , Feature : & X86 .HasAMX },
76
80
option {Name : "bmi1" , Feature : & X86 .HasBMI1 },
77
81
option {Name : "bmi2" , Feature : & X86 .HasBMI2 },
78
82
option {Name : "fma" , Feature : & X86 .HasFMA })
@@ -121,14 +125,14 @@ func doinit() {
121
125
return
122
126
}
123
127
124
- _ , ebx7 , _ , _ := cpuid (7 , 0 )
128
+ _ , ebx7 , _ , edx7 := cpuid (7 , 0 )
125
129
X86 .HasBMI1 = isSet (ebx7 , cpuid_BMI1 )
126
130
X86 .HasAVX2 = isSet (ebx7 , cpuid_AVX2 ) && osSupportsAVX
131
+ X86 .HasAMX = isSet (edx7 , cpuid_AMX ) && osSupportsAVX
127
132
X86 .HasBMI2 = isSet (ebx7 , cpuid_BMI2 )
128
133
X86 .HasERMS = isSet (ebx7 , cpuid_ERMS )
129
134
X86 .HasADX = isSet (ebx7 , cpuid_ADX )
130
135
X86 .HasSHA = isSet (ebx7 , cpuid_SHA )
131
-
132
136
var maxExtendedInformation uint32
133
137
maxExtendedInformation , _ , _ , _ = cpuid (0x80000000 , 0 )
134
138
0 commit comments