Skip to content

Commit e67d4f7

Browse files
committed
Move FEATUREs from FEATURE_COMPATs
1 parent a9a59ed commit e67d4f7

File tree

1 file changed

+22
-21
lines changed

1 file changed

+22
-21
lines changed

llvm/include/llvm/TargetParser/X86TargetParser.def

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ X86_CPU_SUBTYPE_ALIAS(INTEL_COREI7_PANTHERLAKE, "wildcatlake")
139139
#define X86_MICROARCH_LEVEL(ENUM, STR, PRIORITY, ABI_VALUE)
140140
#endif
141141

142+
// These are the feature we can multiversion on. There are gaps because LLVM
143+
// doesn't support each support that GCC does.
142144
X86_FEATURE_COMPAT(CMOV, "cmov", 0, 0)
143145
X86_FEATURE_COMPAT(MMX, "mmx", 1, 1)
144146
X86_FEATURE_COMPAT(POPCNT, "popcnt", 9, 2)
@@ -163,12 +165,8 @@ X86_FEATURE_COMPAT(AVX512VL, "avx512vl", 20, 20)
163165
X86_FEATURE_COMPAT(AVX512BW, "avx512bw", 21, 21)
164166
X86_FEATURE_COMPAT(AVX512DQ, "avx512dq", 22, 22)
165167
X86_FEATURE_COMPAT(AVX512CD, "avx512cd", 23, 23)
166-
X86_FEATURE (NF, "nf")
167-
X86_FEATURE (CF, "cf")
168168
X86_FEATURE_COMPAT(AVX512VBMI, "avx512vbmi", 24, 26)
169169
X86_FEATURE_COMPAT(AVX512IFMA, "avx512ifma", 25, 27)
170-
X86_FEATURE (AVX5124VNNIW, "avx5124vnniw")
171-
X86_FEATURE (AVX5124FMAPS, "avx5124fmaps")
172170
X86_FEATURE_COMPAT(AVX512VPOPCNTDQ, "avx512vpopcntdq", 26, 30)
173171
X86_FEATURE_COMPAT(AVX512VBMI2, "avx512vbmi2", 27, 31)
174172
X86_FEATURE_COMPAT(GFNI, "gfni", 28, 32)
@@ -177,35 +175,24 @@ X86_FEATURE_COMPAT(AVX512VNNI, "avx512vnni", 30, 34)
177175
X86_FEATURE_COMPAT(AVX512BITALG, "avx512bitalg", 31, 35)
178176
X86_FEATURE_COMPAT(AVX512BF16, "avx512bf16", 32, 36)
179177
X86_FEATURE_COMPAT(AVX512VP2INTERSECT, "avx512vp2intersect", 33, 37)
180-
181-
// Below Features has some missings comparing to gcc, it's because gcc has some
182-
// not one-to-one mapped in llvm.
183178
X86_FEATURE_COMPAT(ADX, "adx", 0, 40)
184-
X86_FEATURE (64BIT, "64bit")
185179
X86_FEATURE_COMPAT(CLDEMOTE, "cldemote", 0, 42)
186180
X86_FEATURE_COMPAT(CLFLUSHOPT, "clflushopt", 0, 43)
187181
X86_FEATURE_COMPAT(CLWB, "clwb", 0, 44)
188182
X86_FEATURE_COMPAT(CLZERO, "clzero", 0, 45)
189183
X86_FEATURE_COMPAT(CMPXCHG16B, "cx16", 0, 46)
190-
X86_FEATURE (CMPXCHG8B, "cx8")
191184
X86_FEATURE_COMPAT(ENQCMD, "enqcmd", 0, 48)
192185
X86_FEATURE_COMPAT(F16C, "f16c", 0, 49)
193186
X86_FEATURE_COMPAT(FSGSBASE, "fsgsbase", 0, 50)
194-
X86_FEATURE (CRC32, "crc32")
195-
X86_FEATURE (INVPCID, "invpcid")
196-
X86_FEATURE (RDPRU, "rdpru")
197187
X86_FEATURE_COMPAT(SAHF, "sahf", 0, 54)
198-
X86_FEATURE (VZEROUPPER, "vzeroupper")
199188
X86_FEATURE_COMPAT(LWP, "lwp", 0, 56)
200189
X86_FEATURE_COMPAT(LZCNT, "lzcnt", 0, 57)
201190
X86_FEATURE_COMPAT(MOVBE, "movbe", 0, 58)
202191
X86_FEATURE_COMPAT(MOVDIR64B, "movdir64b", 0, 59)
203192
X86_FEATURE_COMPAT(MOVDIRI, "movdiri", 0, 60)
204193
X86_FEATURE_COMPAT(MWAITX, "mwaitx", 0, 61)
205-
X86_FEATURE (X87, "x87")
206194
X86_FEATURE_COMPAT(PCONFIG, "pconfig", 0, 63)
207195
X86_FEATURE_COMPAT(PKU, "pku", 0, 64)
208-
X86_FEATURE (EVEX512, "evex512")
209196
X86_FEATURE_COMPAT(PRFCHW, "prfchw", 0, 66)
210197
X86_FEATURE_COMPAT(PTWRITE, "ptwrite", 0, 67)
211198
X86_FEATURE_COMPAT(RDPID, "rdpid", 0, 68)
@@ -231,18 +218,13 @@ X86_FEATURE_COMPAT(AMX_BF16, "amx-bf16", 0, 87)
231218
X86_FEATURE_COMPAT(UINTR, "uintr", 0, 88)
232219
X86_FEATURE_COMPAT(HRESET, "hreset", 0, 89)
233220
X86_FEATURE_COMPAT(KL, "kl", 0, 90)
234-
X86_FEATURE (FXSR, "fxsr")
235221
X86_FEATURE_COMPAT(WIDEKL, "widekl", 0, 92)
236222
X86_FEATURE_COMPAT(AVXVNNI, "avxvnni", 0, 93)
237223
X86_FEATURE_COMPAT(AVX512FP16, "avx512fp16", 0, 94)
238224
X86_MICROARCH_LEVEL(X86_64_BASELINE, "x86-64", 0, 95)
239225
X86_MICROARCH_LEVEL(X86_64_V2, "x86-64-v2", 0, 96)
240226
X86_MICROARCH_LEVEL(X86_64_V3, "x86-64-v3", 0, 97)
241227
X86_MICROARCH_LEVEL(X86_64_V4, "x86-64-v4", 0, 98)
242-
X86_FEATURE (CCMP, "ccmp")
243-
X86_FEATURE (Push2Pop2, "push2pop2")
244-
X86_FEATURE (PPX, "ppx")
245-
X86_FEATURE (NDD, "ndd")
246228
X86_FEATURE_COMPAT(AVXIFMA, "avxifma", 0, 99)
247229
X86_FEATURE_COMPAT(AVXVNNIINT8, "avxvnniint8", 0, 100)
248230
X86_FEATURE_COMPAT(AVXNECONVERT, "avxneconvert", 0, 101)
@@ -256,7 +238,6 @@ X86_FEATURE_COMPAT(SM3, "sm3", 0, 108)
256238
X86_FEATURE_COMPAT(SHA512, "sha512", 0, 109)
257239
X86_FEATURE_COMPAT(SM4, "sm4", 0, 110)
258240
X86_FEATURE_COMPAT(APXF, "apxf", 0, 111)
259-
X86_FEATURE (EGPR, "egpr")
260241
X86_FEATURE_COMPAT(USERMSR, "usermsr", 0, 112)
261242
X86_FEATURE_COMPAT(AVX10_1, "avx10.1", 34, 114)
262243
X86_FEATURE_COMPAT(AVX10_2, "avx10.2", 35, 116)
@@ -265,6 +246,26 @@ X86_FEATURE_COMPAT(AMX_TF32, "amx-tf32", 0, 118)
265246
X86_FEATURE_COMPAT(AMX_FP8, "amx-fp8", 0, 120)
266247
X86_FEATURE_COMPAT(MOVRS, "movrs", 0, 121)
267248
X86_FEATURE_COMPAT(AMX_MOVRS, "amx-movrs", 0, 122)
249+
250+
// Features we don't multiversion on.
251+
X86_FEATURE (NF, "nf")
252+
X86_FEATURE (CF, "cf")
253+
X86_FEATURE (AVX5124VNNIW, "avx5124vnniw")
254+
X86_FEATURE (AVX5124FMAPS, "avx5124fmaps")
255+
X86_FEATURE (64BIT, "64bit")
256+
X86_FEATURE (CMPXCHG8B, "cx8")
257+
X86_FEATURE (CRC32, "crc32")
258+
X86_FEATURE (INVPCID, "invpcid")
259+
X86_FEATURE (RDPRU, "rdpru")
260+
X86_FEATURE (VZEROUPPER, "vzeroupper")
261+
X86_FEATURE (X87, "x87")
262+
X86_FEATURE (EVEX512, "evex512")
263+
X86_FEATURE (FXSR, "fxsr")
264+
X86_FEATURE (CCMP, "ccmp")
265+
X86_FEATURE (Push2Pop2, "push2pop2")
266+
X86_FEATURE (PPX, "ppx")
267+
X86_FEATURE (NDD, "ndd")
268+
X86_FEATURE (EGPR, "egpr")
268269
X86_FEATURE (ZU, "zu")
269270

270271
// These features aren't really CPU features, but the frontend can set them.

0 commit comments

Comments
 (0)