Lines Matching full:feature

1 //===--- X86.cpp - Implement X86 target feature support -------------------===//
29 #define TARGET_BUILTIN(ID, TYPE, ATTRS, FEATURE) \ argument
30 {#ID, TYPE, ATTRS, FEATURE, HeaderDesc::NO_HEADER, ALL_LANGUAGES},
31 #define TARGET_HEADER_BUILTIN(ID, TYPE, ATTRS, HEADER, LANGS, FEATURE) \ argument
32 {#ID, TYPE, ATTRS, FEATURE, HeaderDesc::HEADER, LANGS},
37 #define TARGET_BUILTIN(ID, TYPE, ATTRS, FEATURE) \ argument
38 {#ID, TYPE, ATTRS, FEATURE, HeaderDesc::NO_HEADER, ALL_LANGUAGES},
39 #define TARGET_HEADER_BUILTIN(ID, TYPE, ATTRS, HEADER, LANGS, FEATURE) \ argument
40 {#ID, TYPE, ATTRS, FEATURE, HeaderDesc::HEADER, LANGS},
147 for (const auto &Feature : FeaturesVec) { in initFeatureMap() local
149 if (Feature == "+general-regs-only") { in initFeatureMap()
156 if (Feature.substr(1, 6) == "avx10.") { in initFeatureMap()
157 if (Feature[0] == '+') { in initFeatureMap()
159 if (StringRef(Feature).ends_with("512")) in initFeatureMap()
161 LastAVX10 = Feature; in initFeatureMap()
162 } else if (HasAVX10 && Feature == "-avx10.1-256") { in initFeatureMap()
165 } else if (HasAVX10_512 && Feature == "-avx10.1-512") { in initFeatureMap()
169 UpdatedAVX10FeaturesVec.push_back(Feature); in initFeatureMap()
171 } else if (!HasAVX512F && StringRef(Feature).starts_with("+avx512")) { in initFeatureMap()
173 LastAVX512 = Feature; in initFeatureMap()
174 } else if (HasAVX512F && Feature == "-avx512f") { in initFeatureMap()
176 } else if (HasEVEX512 != FE_TRUE && Feature == "+evex512") { in initFeatureMap()
179 } else if (HasEVEX512 != FE_FALSE && Feature == "-evex512") { in initFeatureMap()
184 UpdatedFeaturesVec.push_back(Feature); in initFeatureMap()
257 for (const auto &Feature : Features) { in handleTargetFeatures() local
258 if (Feature[0] != '+') in handleTargetFeatures()
261 if (Feature == "+mmx") { in handleTargetFeatures()
263 } else if (Feature == "+aes") { in handleTargetFeatures()
265 } else if (Feature == "+vaes") { in handleTargetFeatures()
267 } else if (Feature == "+pclmul") { in handleTargetFeatures()
269 } else if (Feature == "+vpclmulqdq") { in handleTargetFeatures()
271 } else if (Feature == "+lzcnt") { in handleTargetFeatures()
273 } else if (Feature == "+rdrnd") { in handleTargetFeatures()
275 } else if (Feature == "+fsgsbase") { in handleTargetFeatures()
277 } else if (Feature == "+bmi") { in handleTargetFeatures()
279 } else if (Feature == "+bmi2") { in handleTargetFeatures()
281 } else if (Feature == "+popcnt") { in handleTargetFeatures()
283 } else if (Feature == "+rtm") { in handleTargetFeatures()
285 } else if (Feature == "+prfchw") { in handleTargetFeatures()
287 } else if (Feature == "+rdseed") { in handleTargetFeatures()
289 } else if (Feature == "+adx") { in handleTargetFeatures()
291 } else if (Feature == "+tbm") { in handleTargetFeatures()
293 } else if (Feature == "+lwp") { in handleTargetFeatures()
295 } else if (Feature == "+fma") { in handleTargetFeatures()
297 } else if (Feature == "+f16c") { in handleTargetFeatures()
299 } else if (Feature == "+gfni") { in handleTargetFeatures()
301 } else if (Feature == "+evex512") { in handleTargetFeatures()
303 } else if (Feature == "+avx10.1-256") { in handleTargetFeatures()
305 } else if (Feature == "+avx10.1-512") { in handleTargetFeatures()
307 } else if (Feature == "+avx512cd") { in handleTargetFeatures()
309 } else if (Feature == "+avx512vpopcntdq") { in handleTargetFeatures()
311 } else if (Feature == "+avx512vnni") { in handleTargetFeatures()
313 } else if (Feature == "+avx512bf16") { in handleTargetFeatures()
315 } else if (Feature == "+avx512fp16") { in handleTargetFeatures()
318 } else if (Feature == "+avx512dq") { in handleTargetFeatures()
320 } else if (Feature == "+avx512bitalg") { in handleTargetFeatures()
322 } else if (Feature == "+avx512bw") { in handleTargetFeatures()
324 } else if (Feature == "+avx512vl") { in handleTargetFeatures()
326 } else if (Feature == "+avx512vbmi") { in handleTargetFeatures()
328 } else if (Feature == "+avx512vbmi2") { in handleTargetFeatures()
330 } else if (Feature == "+avx512ifma") { in handleTargetFeatures()
332 } else if (Feature == "+avx512vp2intersect") { in handleTargetFeatures()
334 } else if (Feature == "+sha") { in handleTargetFeatures()
336 } else if (Feature == "+sha512") { in handleTargetFeatures()
338 } else if (Feature == "+shstk") { in handleTargetFeatures()
340 } else if (Feature == "+sm3") { in handleTargetFeatures()
342 } else if (Feature == "+sm4") { in handleTargetFeatures()
344 } else if (Feature == "+movbe") { in handleTargetFeatures()
346 } else if (Feature == "+sgx") { in handleTargetFeatures()
348 } else if (Feature == "+cx8") { in handleTargetFeatures()
350 } else if (Feature == "+cx16") { in handleTargetFeatures()
352 } else if (Feature == "+fxsr") { in handleTargetFeatures()
354 } else if (Feature == "+xsave") { in handleTargetFeatures()
356 } else if (Feature == "+xsaveopt") { in handleTargetFeatures()
358 } else if (Feature == "+xsavec") { in handleTargetFeatures()
360 } else if (Feature == "+xsaves") { in handleTargetFeatures()
362 } else if (Feature == "+mwaitx") { in handleTargetFeatures()
364 } else if (Feature == "+pku") { in handleTargetFeatures()
366 } else if (Feature == "+clflushopt") { in handleTargetFeatures()
368 } else if (Feature == "+clwb") { in handleTargetFeatures()
370 } else if (Feature == "+wbnoinvd") { in handleTargetFeatures()
372 } else if (Feature == "+prefetchi") { in handleTargetFeatures()
374 } else if (Feature == "+clzero") { in handleTargetFeatures()
376 } else if (Feature == "+cldemote") { in handleTargetFeatures()
378 } else if (Feature == "+rdpid") { in handleTargetFeatures()
380 } else if (Feature == "+rdpru") { in handleTargetFeatures()
382 } else if (Feature == "+kl") { in handleTargetFeatures()
384 } else if (Feature == "+widekl") { in handleTargetFeatures()
386 } else if (Feature == "+retpoline-external-thunk") { in handleTargetFeatures()
388 } else if (Feature == "+sahf") { in handleTargetFeatures()
390 } else if (Feature == "+waitpkg") { in handleTargetFeatures()
392 } else if (Feature == "+movdiri") { in handleTargetFeatures()
394 } else if (Feature == "+movdir64b") { in handleTargetFeatures()
396 } else if (Feature == "+pconfig") { in handleTargetFeatures()
398 } else if (Feature == "+ptwrite") { in handleTargetFeatures()
400 } else if (Feature == "+invpcid") { in handleTargetFeatures()
402 } else if (Feature == "+enqcmd") { in handleTargetFeatures()
404 } else if (Feature == "+hreset") { in handleTargetFeatures()
406 } else if (Feature == "+amx-bf16") { in handleTargetFeatures()
408 } else if (Feature == "+amx-fp16") { in handleTargetFeatures()
410 } else if (Feature == "+amx-int8") { in handleTargetFeatures()
412 } else if (Feature == "+amx-tile") { in handleTargetFeatures()
414 } else if (Feature == "+amx-complex") { in handleTargetFeatures()
416 } else if (Feature == "+cmpccxadd") { in handleTargetFeatures()
418 } else if (Feature == "+raoint") { in handleTargetFeatures()
420 } else if (Feature == "+avxifma") { in handleTargetFeatures()
422 } else if (Feature == "+avxneconvert") { in handleTargetFeatures()
424 } else if (Feature == "+avxvnni") { in handleTargetFeatures()
426 } else if (Feature == "+avxvnniint16") { in handleTargetFeatures()
428 } else if (Feature == "+avxvnniint8") { in handleTargetFeatures()
430 } else if (Feature == "+serialize") { in handleTargetFeatures()
432 } else if (Feature == "+tsxldtrk") { in handleTargetFeatures()
434 } else if (Feature == "+uintr") { in handleTargetFeatures()
436 } else if (Feature == "+usermsr") { in handleTargetFeatures()
438 } else if (Feature == "+crc32") { in handleTargetFeatures()
440 } else if (Feature == "+x87") { in handleTargetFeatures()
442 } else if (Feature == "+fullbf16") { in handleTargetFeatures()
444 } else if (Feature == "+egpr") { in handleTargetFeatures()
446 } else if (Feature == "+inline-asm-use-gpr32") { in handleTargetFeatures()
448 } else if (Feature == "+push2pop2") { in handleTargetFeatures()
450 } else if (Feature == "+ppx") { in handleTargetFeatures()
452 } else if (Feature == "+ndd") { in handleTargetFeatures()
454 } else if (Feature == "+ccmp") { in handleTargetFeatures()
456 } else if (Feature == "+nf") { in handleTargetFeatures()
458 } else if (Feature == "+cf") { in handleTargetFeatures()
460 } else if (Feature == "+zu") { in handleTargetFeatures()
462 } else if (Feature == "+branch-hint") { in handleTargetFeatures()
466 X86SSEEnum Level = llvm::StringSwitch<X86SSEEnum>(Feature) in handleTargetFeatures()
492 XOPEnum XLevel = llvm::StringSwitch<XOPEnum>(Feature) in handleTargetFeatures()
755 // the feature flag only applies to 64-bit mode. in getTargetDefines()
1165 bool X86TargetInfo::hasFeature(StringRef Feature) const { in hasFeature()
1166 return llvm::StringSwitch<bool>(Feature) in hasFeature()
1310 // Valid CPUs have a 'key feature' that compares just better than its key in multiVersionSortPriority()
1311 // feature. in multiVersionSortPriority()
1319 // Now we know we have a feature, so get its priority and shift it a few so in multiVersionSortPriority()