Lines Matching refs:Features

105     llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, StringRef CPU,
110 setFeatureEnabledImpl(Features, "sse2", true);
116 setFeatureEnabledImpl(Features, "x87", true);
121 setFeatureEnabledImpl(Features, "cx8", true);
136 setFeatureEnabledImpl(Features, "avx512bf16", true);
140 setFeatureEnabledImpl(Features, "avx512vnni", true);
143 setFeatureEnabledImpl(Features, "avx512f", true);
144 setFeatureEnabledImpl(Features, "avx512cd", true);
145 setFeatureEnabledImpl(Features, "avx512dq", true);
146 setFeatureEnabledImpl(Features, "avx512bw", true);
147 setFeatureEnabledImpl(Features, "avx512vl", true);
148 setFeatureEnabledImpl(Features, "clwb", true);
149 setFeatureEnabledImpl(Features, "pku", true);
154 setFeatureEnabledImpl(Features, "avx512vp2intersect", true);
155 setFeatureEnabledImpl(Features, "movdiri", true);
156 setFeatureEnabledImpl(Features, "movdir64b", true);
157 setFeatureEnabledImpl(Features, "shstk", true);
162 setFeatureEnabledImpl(Features, "pconfig", true);
163 setFeatureEnabledImpl(Features, "wbnoinvd", true);
167 setFeatureEnabledImpl(Features, "vaes", true);
168 setFeatureEnabledImpl(Features, "gfni", true);
169 setFeatureEnabledImpl(Features, "vpclmulqdq", true);
170 setFeatureEnabledImpl(Features, "avx512bitalg", true);
171 setFeatureEnabledImpl(Features, "avx512vbmi2", true);
172 setFeatureEnabledImpl(Features, "avx512vnni", true);
173 setFeatureEnabledImpl(Features, "avx512vpopcntdq", true);
174 setFeatureEnabledImpl(Features, "rdpid", true);
175 setFeatureEnabledImpl(Features, "clwb", true);
178 setFeatureEnabledImpl(Features, "avx512f", true);
179 setFeatureEnabledImpl(Features, "avx512cd", true);
180 setFeatureEnabledImpl(Features, "avx512dq", true);
181 setFeatureEnabledImpl(Features, "avx512bw", true);
182 setFeatureEnabledImpl(Features, "avx512vl", true);
183 setFeatureEnabledImpl(Features, "avx512ifma", true);
184 setFeatureEnabledImpl(Features, "avx512vbmi", true);
185 setFeatureEnabledImpl(Features, "pku", true);
186 setFeatureEnabledImpl(Features, "sha", true);
189 setFeatureEnabledImpl(Features, "sgx", true);
192 setFeatureEnabledImpl(Features, "xsavec", true);
193 setFeatureEnabledImpl(Features, "xsaves", true);
194 setFeatureEnabledImpl(Features, "clflushopt", true);
195 setFeatureEnabledImpl(Features, "aes", true);
198 setFeatureEnabledImpl(Features, "rdseed", true);
199 setFeatureEnabledImpl(Features, "adx", true);
200 setFeatureEnabledImpl(Features, "prfchw", true);
203 setFeatureEnabledImpl(Features, "avx2", true);
204 setFeatureEnabledImpl(Features, "lzcnt", true);
205 setFeatureEnabledImpl(Features, "bmi", true);
206 setFeatureEnabledImpl(Features, "bmi2", true);
207 setFeatureEnabledImpl(Features, "fma", true);
208 setFeatureEnabledImpl(Features, "invpcid", true);
209 setFeatureEnabledImpl(Features, "movbe", true);
212 setFeatureEnabledImpl(Features, "rdrnd", true);
213 setFeatureEnabledImpl(Features, "f16c", true);
214 setFeatureEnabledImpl(Features, "fsgsbase", true);
217 setFeatureEnabledImpl(Features, "avx", true);
218 setFeatureEnabledImpl(Features, "xsave", true);
219 setFeatureEnabledImpl(Features, "xsaveopt", true);
222 setFeatureEnabledImpl(Features, "pclmul", true);
225 setFeatureEnabledImpl(Features, "sse4.2", true);
228 setFeatureEnabledImpl(Features, "sse4.1", true);
231 setFeatureEnabledImpl(Features, "ssse3", true);
232 setFeatureEnabledImpl(Features, "sahf", true);
235 setFeatureEnabledImpl(Features, "cx16", true);
239 setFeatureEnabledImpl(Features, "sse3", true);
244 setFeatureEnabledImpl(Features, "sse2", true);
248 setFeatureEnabledImpl(Features, "sse", true);
251 setFeatureEnabledImpl(Features, "fxsr", true);
256 setFeatureEnabledImpl(Features, "mmx", true);
260 setFeatureEnabledImpl(Features, "cldemote", true);
261 setFeatureEnabledImpl(Features, "movdiri", true);
262 setFeatureEnabledImpl(Features, "movdir64b", true);
263 setFeatureEnabledImpl(Features, "gfni", true);
264 setFeatureEnabledImpl(Features, "waitpkg", true);
267 setFeatureEnabledImpl(Features, "ptwrite", true);
268 setFeatureEnabledImpl(Features, "rdpid", true);
269 setFeatureEnabledImpl(Features, "sgx", true);
272 setFeatureEnabledImpl(Features, "sha", true);
273 setFeatureEnabledImpl(Features, "rdseed", true);
274 setFeatureEnabledImpl(Features, "xsave", true);
275 setFeatureEnabledImpl(Features, "xsaveopt", true);
276 setFeatureEnabledImpl(Features, "xsavec", true);
277 setFeatureEnabledImpl(Features, "xsaves", true);
278 setFeatureEnabledImpl(Features, "clflushopt", true);
279 setFeatureEnabledImpl(Features, "fsgsbase", true);
280 setFeatureEnabledImpl(Features, "aes", true);
283 setFeatureEnabledImpl(Features, "rdrnd", true);
284 setFeatureEnabledImpl(Features, "pclmul", true);
285 setFeatureEnabledImpl(Features, "sse4.2", true);
286 setFeatureEnabledImpl(Features, "prfchw", true);
289 setFeatureEnabledImpl(Features, "movbe", true);
290 setFeatureEnabledImpl(Features, "ssse3", true);
291 setFeatureEnabledImpl(Features, "fxsr", true);
292 setFeatureEnabledImpl(Features, "cx16", true);
293 setFeatureEnabledImpl(Features, "sahf", true);
294 setFeatureEnabledImpl(Features, "mmx", true);
299 setFeatureEnabledImpl(Features, "avx512vpopcntdq", true);
302 setFeatureEnabledImpl(Features, "avx512f", true);
303 setFeatureEnabledImpl(Features, "avx512cd", true);
304 setFeatureEnabledImpl(Features, "avx512er", true);
305 setFeatureEnabledImpl(Features, "avx512pf", true);
306 setFeatureEnabledImpl(Features, "prfchw", true);
307 setFeatureEnabledImpl(Features, "prefetchwt1", true);
308 setFeatureEnabledImpl(Features, "fxsr", true);
309 setFeatureEnabledImpl(Features, "rdseed", true);
310 setFeatureEnabledImpl(Features, "adx", true);
311 setFeatureEnabledImpl(Features, "lzcnt", true);
312 setFeatureEnabledImpl(Features, "bmi", true);
313 setFeatureEnabledImpl(Features, "bmi2", true);
314 setFeatureEnabledImpl(Features, "fma", true);
315 setFeatureEnabledImpl(Features, "rdrnd", true);
316 setFeatureEnabledImpl(Features, "f16c", true);
317 setFeatureEnabledImpl(Features, "fsgsbase", true);
318 setFeatureEnabledImpl(Features, "aes", true);
319 setFeatureEnabledImpl(Features, "pclmul", true);
320 setFeatureEnabledImpl(Features, "cx16", true);
321 setFeatureEnabledImpl(Features, "xsaveopt", true);
322 setFeatureEnabledImpl(Features, "xsave", true);
323 setFeatureEnabledImpl(Features, "movbe", true);
324 setFeatureEnabledImpl(Features, "sahf", true);
325 setFeatureEnabledImpl(Features, "mmx", true);
332 setFeatureEnabledImpl(Features, "3dnow", true);
336 setFeatureEnabledImpl(Features, "sse4a", true);
337 setFeatureEnabledImpl(Features, "lzcnt", true);
338 setFeatureEnabledImpl(Features, "popcnt", true);
339 setFeatureEnabledImpl(Features, "sahf", true);
342 setFeatureEnabledImpl(Features, "sse3", true);
345 setFeatureEnabledImpl(Features, "sse2", true);
348 setFeatureEnabledImpl(Features, "sse", true);
349 setFeatureEnabledImpl(Features, "fxsr", true);
353 setFeatureEnabledImpl(Features, "3dnowa", true);
357 setFeatureEnabledImpl(Features, "avx", true);
358 setFeatureEnabledImpl(Features, "aes", true);
359 setFeatureEnabledImpl(Features, "pclmul", true);
360 setFeatureEnabledImpl(Features, "bmi", true);
361 setFeatureEnabledImpl(Features, "f16c", true);
362 setFeatureEnabledImpl(Features, "xsaveopt", true);
363 setFeatureEnabledImpl(Features, "movbe", true);
366 setFeatureEnabledImpl(Features, "ssse3", true);
367 setFeatureEnabledImpl(Features, "sse4a", true);
368 setFeatureEnabledImpl(Features, "lzcnt", true);
369 setFeatureEnabledImpl(Features, "popcnt", true);
370 setFeatureEnabledImpl(Features, "prfchw", true);
371 setFeatureEnabledImpl(Features, "cx16", true);
372 setFeatureEnabledImpl(Features, "fxsr", true);
373 setFeatureEnabledImpl(Features, "sahf", true);
374 setFeatureEnabledImpl(Features, "mmx", true);
378 setFeatureEnabledImpl(Features, "clwb", true);
379 setFeatureEnabledImpl(Features, "rdpid", true);
380 setFeatureEnabledImpl(Features, "wbnoinvd", true);
383 setFeatureEnabledImpl(Features, "adx", true);
384 setFeatureEnabledImpl(Features, "aes", true);
385 setFeatureEnabledImpl(Features, "avx2", true);
386 setFeatureEnabledImpl(Features, "bmi", true);
387 setFeatureEnabledImpl(Features, "bmi2", true);
388 setFeatureEnabledImpl(Features, "clflushopt", true);
389 setFeatureEnabledImpl(Features, "clzero", true);
390 setFeatureEnabledImpl(Features, "cx16", true);
391 setFeatureEnabledImpl(Features, "f16c", true);
392 setFeatureEnabledImpl(Features, "fma", true);
393 setFeatureEnabledImpl(Features, "fsgsbase", true);
394 setFeatureEnabledImpl(Features, "fxsr", true);
395 setFeatureEnabledImpl(Features, "lzcnt", true);
396 setFeatureEnabledImpl(Features, "mmx", true);
397 setFeatureEnabledImpl(Features, "mwaitx", true);
398 setFeatureEnabledImpl(Features, "movbe", true);
399 setFeatureEnabledImpl(Features, "pclmul", true);
400 setFeatureEnabledImpl(Features, "popcnt", true);
401 setFeatureEnabledImpl(Features, "prfchw", true);
402 setFeatureEnabledImpl(Features, "rdrnd", true);
403 setFeatureEnabledImpl(Features, "rdseed", true);
404 setFeatureEnabledImpl(Features, "sahf", true);
405 setFeatureEnabledImpl(Features, "sha", true);
406 setFeatureEnabledImpl(Features, "sse4a", true);
407 setFeatureEnabledImpl(Features, "xsave", true);
408 setFeatureEnabledImpl(Features, "xsavec", true);
409 setFeatureEnabledImpl(Features, "xsaveopt", true);
410 setFeatureEnabledImpl(Features, "xsaves", true);
414 setFeatureEnabledImpl(Features, "avx2", true);
415 setFeatureEnabledImpl(Features, "bmi2", true);
416 setFeatureEnabledImpl(Features, "mwaitx", true);
419 setFeatureEnabledImpl(Features, "fsgsbase", true);
420 setFeatureEnabledImpl(Features, "xsaveopt", true);
423 setFeatureEnabledImpl(Features, "bmi", true);
424 setFeatureEnabledImpl(Features, "fma", true);
425 setFeatureEnabledImpl(Features, "f16c", true);
426 setFeatureEnabledImpl(Features, "tbm", true);
430 setFeatureEnabledImpl(Features, "xop", true);
431 setFeatureEnabledImpl(Features, "lwp", true);
432 setFeatureEnabledImpl(Features, "lzcnt", true);
433 setFeatureEnabledImpl(Features, "aes", true);
434 setFeatureEnabledImpl(Features, "pclmul", true);
435 setFeatureEnabledImpl(Features, "prfchw", true);
436 setFeatureEnabledImpl(Features, "cx16", true);
437 setFeatureEnabledImpl(Features, "fxsr", true);
438 setFeatureEnabledImpl(Features, "xsave", true);
439 setFeatureEnabledImpl(Features, "sahf", true);
440 setFeatureEnabledImpl(Features, "mmx", true);
443 if (!TargetInfo::initFeatureMap(Features, Diags, CPU, FeaturesVec))
450 auto I = Features.find("sse4.2");
451 if (I != Features.end() && I->getValue() &&
453 Features["popcnt"] = true;
456 I = Features.find("3dnow");
457 if (I != Features.end() && I->getValue() &&
459 Features["prfchw"] = true;
463 I = Features.find("sse");
464 if (I != Features.end() && I->getValue() &&
466 Features["mmx"] = true;
471 void X86TargetInfo::setSSELevel(llvm::StringMap<bool> &Features,
476 Features["avx512f"] = true;
477 Features["fma"] = true;
478 Features["f16c"] = true;
481 Features["avx2"] = true;
484 Features["avx"] = true;
485 Features["xsave"] = true;
488 Features["sse4.2"] = true;
491 Features["sse4.1"] = true;
494 Features["ssse3"] = true;
497 Features["sse3"] = true;
500 Features["sse2"] = true;
503 Features["sse"] = true;
514 Features["sse"] = false;
517 Features["sse2"] = Features["pclmul"] = Features["aes"] = false;
518 Features["sha"] = Features["gfni"] = false;
521 Features["sse3"] = false;
522 setXOPLevel(Features, NoXOP, false);
525 Features["ssse3"] = false;
528 Features["sse4.1"] = false;
531 Features["sse4.2"] = false;
534 Features["fma"] = Features["avx"] = Features["f16c"] = false;
535 Features["xsave"] = Features["xsaveopt"] = Features["vaes"] = false;
536 Features["vpclmulqdq"] = false;
537 setXOPLevel(Features, FMA4, false);
540 Features["avx2"] = false;
543 Features["avx512f"] = Features["avx512cd"] = Features["avx512er"] = false;
544 Features["avx512pf"] = Features["avx512dq"] = Features["avx512bw"] = false;
545 Features["avx512vl"] = Features["avx512vbmi"] = false;
546 Features["avx512ifma"] = Features["avx512vpopcntdq"] = false;
547 Features["avx512bitalg"] = Features["avx512vnni"] = false;
548 Features["avx512vbmi2"] = Features["avx512bf16"] = false;
549 Features["avx512vp2intersect"] = false;
554 void X86TargetInfo::setMMXLevel(llvm::StringMap<bool> &Features,
559 Features["3dnowa"] = true;
562 Features["3dnow"] = true;
565 Features["mmx"] = true;
576 Features["mmx"] = false;
579 Features["3dnow"] = false;
582 Features["3dnowa"] = false;
587 void X86TargetInfo::setXOPLevel(llvm::StringMap<bool> &Features, XOPEnum Level,
592 Features["xop"] = true;
595 Features["fma4"] = true;
596 setSSELevel(Features, AVX, true);
599 Features["sse4a"] = true;
600 setSSELevel(Features, SSE3, true);
611 Features["sse4a"] = false;
614 Features["fma4"] = false;
617 Features["xop"] = false;
622 void X86TargetInfo::setFeatureEnabledImpl(llvm::StringMap<bool> &Features,
628 Features[Name] = Enabled;
631 setMMXLevel(Features, MMX, Enabled);
633 setSSELevel(Features, SSE1, Enabled);
635 setSSELevel(Features, SSE2, Enabled);
637 setSSELevel(Features, SSE3, Enabled);
639 setSSELevel(Features, SSSE3, Enabled);
641 setSSELevel(Features, SSE42, Enabled);
643 setSSELevel(Features, SSE41, Enabled);
645 setMMXLevel(Features, AMD3DNow, Enabled);
647 setMMXLevel(Features, AMD3DNowAthlon, Enabled);
650 setSSELevel(Features, SSE2, Enabled);
652 Features["vaes"] = false;
655 setSSELevel(Features, AVX, Enabled);
656 Features["aes"] = true;
660 setSSELevel(Features, SSE2, Enabled);
662 Features["vpclmulqdq"] = false;
665 setSSELevel(Features, AVX, Enabled);
666 Features["pclmul"] = true;
670 setSSELevel(Features, SSE2, Enabled);
672 setSSELevel(Features, AVX, Enabled);
674 setSSELevel(Features, AVX2, Enabled);
676 setSSELevel(Features, AVX512F, Enabled);
679 setSSELevel(Features, AVX512F, Enabled);
683 Features["avx512bw"] = true;
686 Features["avx512vbmi"] = false;
687 Features["avx512vbmi2"] = false;
688 Features["avx512bitalg"] = false;
689 Features["avx512bf16"] = false;
693 setSSELevel(Features, AVX, Enabled);
695 setSSELevel(Features, AVX512F, Enabled);
697 setXOPLevel(Features, FMA4, Enabled);
699 setXOPLevel(Features, XOP, Enabled);
701 setXOPLevel(Features, SSE4A, Enabled);
704 setSSELevel(Features, AVX, Enabled);
706 setSSELevel(Features, AVX512F, Enabled);
709 setSSELevel(Features, SSE2, Enabled);
716 setSSELevel(Features, SSE42, Enabled);
718 setSSELevel(Features, SSE41, Enabled);
721 Features["xsaveopt"] = false;
724 Features["xsave"] = true;
730 bool X86TargetInfo::handleTargetFeatures(std::vector<std::string> &Features,
732 for (const auto &Feature : Features) {
1535 llvm_unreachable("No Feature Priority for non-CPUSupports Features");
1583 StringRef Name, llvm::SmallVectorImpl<StringRef> &Features) const {
1589 WholeList.split(Features, ',', /*MaxSplit=*/-1, /*KeepEmpty=*/false);