Lines Matching full:features
66 // Decode AArch64 features from string like +[no]featureA+[no]featureB+...
68 std::vector<StringRef> &Features, in DecodeAArch64Features() argument
76 Features.push_back(FeatureName); in DecodeAArch64Features()
85 Features.push_back("+f32mm"); in DecodeAArch64Features()
93 std::vector<StringRef> &Features) { in DecodeAArch64Mcpu() argument
102 Features.push_back("+neon"); in DecodeAArch64Mcpu()
105 if (!llvm::AArch64::getArchFeatures(ArchKind, Features)) in DecodeAArch64Mcpu()
109 if (!llvm::AArch64::getExtensionFeatures(Extension, Features)) in DecodeAArch64Mcpu()
114 !DecodeAArch64Features(D, Split.second, Features, ArchKind)) in DecodeAArch64Mcpu()
123 std::vector<StringRef> &Features) { in getAArch64ArchFeaturesFromMarch() argument
129 !llvm::AArch64::getArchFeatures(ArchKind, Features) || in getAArch64ArchFeaturesFromMarch()
131 !DecodeAArch64Features(D, Split.second, Features, ArchKind))) in getAArch64ArchFeaturesFromMarch()
140 std::vector<StringRef> &Features) { in getAArch64ArchFeaturesFromMcpu() argument
143 if (!DecodeAArch64Mcpu(D, McpuLowerCase, CPU, Features)) in getAArch64ArchFeaturesFromMcpu()
152 std::vector<StringRef> &Features) { in getAArch64MicroArchFeaturesFromMtune() argument
165 Features.push_back("+zcm"); in getAArch64MicroArchFeaturesFromMtune()
166 Features.push_back("+zcz"); in getAArch64MicroArchFeaturesFromMtune()
174 std::vector<StringRef> &Features) { in getAArch64MicroArchFeaturesFromMcpu() argument
181 return getAArch64MicroArchFeaturesFromMtune(D, CPU, Args, Features); in getAArch64MicroArchFeaturesFromMcpu()
187 std::vector<StringRef> &Features) { in getAArch64TargetFeatures() argument
191 Features.push_back("+neon"); in getAArch64TargetFeatures()
193 success = getAArch64ArchFeaturesFromMarch(D, A->getValue(), Args, Features); in getAArch64TargetFeatures()
195 success = getAArch64ArchFeaturesFromMcpu(D, A->getValue(), Args, Features); in getAArch64TargetFeatures()
198 D, getAArch64TargetCPU(Args, Triple, A), Args, Features); in getAArch64TargetFeatures()
202 getAArch64MicroArchFeaturesFromMtune(D, A->getValue(), Args, Features); in getAArch64TargetFeatures()
205 getAArch64MicroArchFeaturesFromMcpu(D, A->getValue(), Args, Features); in getAArch64TargetFeatures()
209 D, getAArch64TargetCPU(Args, Triple, A), Args, Features); in getAArch64TargetFeatures()
215 Features.push_back("-fp-armv8"); in getAArch64TargetFeatures()
216 Features.push_back("-crypto"); in getAArch64TargetFeatures()
217 Features.push_back("-neon"); in getAArch64TargetFeatures()
223 Features.push_back("+tpidr-el3"); in getAArch64TargetFeatures()
225 Features.push_back("+tpidr-el2"); in getAArch64TargetFeatures()
227 Features.push_back("+tpidr-el1"); in getAArch64TargetFeatures()
260 Features.push_back("+harden-sls-retbr"); in getAArch64TargetFeatures()
262 Features.push_back("+harden-sls-blr"); in getAArch64TargetFeatures()
268 Features.push_back("+crc"); in getAArch64TargetFeatures()
270 Features.push_back("-crc"); in getAArch64TargetFeatures()
276 const auto ItRNoFullFP16 = std::find(Features.rbegin(), Features.rend(), "-fullfp16"); in getAArch64TargetFeatures()
277 const auto ItRFP16FML = std::find(Features.rbegin(), Features.rend(), "+fp16fml"); in getAArch64TargetFeatures()
278 if (llvm::is_contained(Features, "+v8.4a")) { in getAArch64TargetFeatures()
279 const auto ItRFullFP16 = std::find(Features.rbegin(), Features.rend(), "+fullfp16"); in getAArch64TargetFeatures()
283 if (std::find(Features.rbegin(), ItRFullFP16, "-fp16fml") == ItRFullFP16) in getAArch64TargetFeatures()
284 Features.push_back("+fp16fml"); in getAArch64TargetFeatures()
293 Features.push_back("-fp16fml"); in getAArch64TargetFeatures()
295 Features.push_back("+fullfp16"); in getAArch64TargetFeatures()
303 const auto ItBegin = Features.begin(); in getAArch64TargetFeatures()
304 const auto ItEnd = Features.end(); in getAArch64TargetFeatures()
305 const auto ItRBegin = Features.rbegin(); in getAArch64TargetFeatures()
306 const auto ItREnd = Features.rend(); in getAArch64TargetFeatures()
331 Features.push_back("+sm4"); in getAArch64TargetFeatures()
333 Features.push_back("+sha3"); in getAArch64TargetFeatures()
335 Features.push_back("+sha2"); in getAArch64TargetFeatures()
337 Features.push_back("+aes"); in getAArch64TargetFeatures()
347 Features.push_back("-sm4"); in getAArch64TargetFeatures()
349 Features.push_back("-sha3"); in getAArch64TargetFeatures()
351 Features.push_back("-sha2"); in getAArch64TargetFeatures()
353 Features.push_back("-aes"); in getAArch64TargetFeatures()
360 Features.push_back("+sha2"); in getAArch64TargetFeatures()
362 Features.push_back("+aes"); in getAArch64TargetFeatures()
370 Features.push_back("-sha2"); in getAArch64TargetFeatures()
372 Features.push_back("-aes"); in getAArch64TargetFeatures()
374 Features.push_back("-sm4"); in getAArch64TargetFeatures()
375 Features.push_back("-sha3"); in getAArch64TargetFeatures()
380 auto V8_6Pos = llvm::find(Features, "+v8.6a"); in getAArch64TargetFeatures()
381 if (V8_6Pos != std::end(Features)) in getAArch64TargetFeatures()
382 V8_6Pos = Features.insert(std::next(V8_6Pos), {"+i8mm", "+bf16"}); in getAArch64TargetFeatures()
384 bool HasSve = llvm::is_contained(Features, "+sve"); in getAArch64TargetFeatures()
393 Features.push_back("+strict-align"); in getAArch64TargetFeatures()
395 Features.push_back("+strict-align"); in getAArch64TargetFeatures()
398 Features.push_back("+reserve-x1"); in getAArch64TargetFeatures()
401 Features.push_back("+reserve-x2"); in getAArch64TargetFeatures()
404 Features.push_back("+reserve-x3"); in getAArch64TargetFeatures()
407 Features.push_back("+reserve-x4"); in getAArch64TargetFeatures()
410 Features.push_back("+reserve-x5"); in getAArch64TargetFeatures()
413 Features.push_back("+reserve-x6"); in getAArch64TargetFeatures()
416 Features.push_back("+reserve-x7"); in getAArch64TargetFeatures()
419 Features.push_back("+reserve-x9"); in getAArch64TargetFeatures()
422 Features.push_back("+reserve-x10"); in getAArch64TargetFeatures()
425 Features.push_back("+reserve-x11"); in getAArch64TargetFeatures()
428 Features.push_back("+reserve-x12"); in getAArch64TargetFeatures()
431 Features.push_back("+reserve-x13"); in getAArch64TargetFeatures()
434 Features.push_back("+reserve-x14"); in getAArch64TargetFeatures()
437 Features.push_back("+reserve-x15"); in getAArch64TargetFeatures()
440 Features.push_back("+reserve-x18"); in getAArch64TargetFeatures()
443 Features.push_back("+reserve-x20"); in getAArch64TargetFeatures()
446 Features.push_back("+reserve-x21"); in getAArch64TargetFeatures()
449 Features.push_back("+reserve-x22"); in getAArch64TargetFeatures()
452 Features.push_back("+reserve-x23"); in getAArch64TargetFeatures()
455 Features.push_back("+reserve-x24"); in getAArch64TargetFeatures()
458 Features.push_back("+reserve-x25"); in getAArch64TargetFeatures()
461 Features.push_back("+reserve-x26"); in getAArch64TargetFeatures()
464 Features.push_back("+reserve-x27"); in getAArch64TargetFeatures()
467 Features.push_back("+reserve-x28"); in getAArch64TargetFeatures()
470 Features.push_back("+reserve-x30"); in getAArch64TargetFeatures()
473 Features.push_back("+call-saved-x8"); in getAArch64TargetFeatures()
476 Features.push_back("+call-saved-x9"); in getAArch64TargetFeatures()
479 Features.push_back("+call-saved-x10"); in getAArch64TargetFeatures()
482 Features.push_back("+call-saved-x11"); in getAArch64TargetFeatures()
485 Features.push_back("+call-saved-x12"); in getAArch64TargetFeatures()
488 Features.push_back("+call-saved-x13"); in getAArch64TargetFeatures()
491 Features.push_back("+call-saved-x14"); in getAArch64TargetFeatures()
494 Features.push_back("+call-saved-x15"); in getAArch64TargetFeatures()
497 Features.push_back("+call-saved-x18"); in getAArch64TargetFeatures()
500 Features.push_back("+no-neg-immediates"); in getAArch64TargetFeatures()