150#if defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
151 if(tok ==
"sse2" || tok ==
"simd") {
152 return {CPUID::CPUID_SSE2_BIT};
155 return {CPUID::CPUID_SSSE3_BIT};
158 if(tok ==
"aesni" || tok ==
"aes_ni") {
159 return {CPUID::CPUID_AESNI_BIT};
162 return {CPUID::CPUID_CLMUL_BIT};
165 return {CPUID::CPUID_AVX2_BIT};
167 if(tok ==
"avx512") {
168 return {CPUID::CPUID_AVX512_BIT};
171 if(tok ==
"sha" || tok ==
"intel_sha") {
172 return {CPUID::CPUID_SHA_BIT};
175 return {CPUID::CPUID_RDTSC_BIT};
178 return {CPUID::CPUID_BMI_BIT};
181 return {CPUID::CPUID_ADX_BIT};
183 if(tok ==
"rdrand") {
184 return {CPUID::CPUID_RDRAND_BIT};
186 if(tok ==
"rdseed") {
187 return {CPUID::CPUID_RDSEED_BIT};
189 if(tok ==
"avx512_aes") {
190 return {CPUID::CPUID_AVX512_AES_BIT};
192 if(tok ==
"avx512_clmul") {
193 return {CPUID::CPUID_AVX512_CLMUL_BIT};
196#elif defined(BOTAN_TARGET_CPU_IS_PPC_FAMILY)
197 if(tok ==
"altivec" || tok ==
"simd")
198 return {CPUID::CPUID_ALTIVEC_BIT};
199 if(tok ==
"power_crypto")
200 return {CPUID::CPUID_POWER_CRYPTO_BIT};
201 if(tok ==
"darn_rng")
202 return {CPUID::CPUID_DARN_BIT};
204#elif defined(BOTAN_TARGET_CPU_IS_ARM_FAMILY)
205 if(tok ==
"neon" || tok ==
"simd")
206 return {CPUID::CPUID_ARM_NEON_BIT};
208 return {CPUID::CPUID_ARM_SVE_BIT};
209 if(tok ==
"armv8sha1" || tok ==
"arm_sha1")
210 return {CPUID::CPUID_ARM_SHA1_BIT};
211 if(tok ==
"armv8sha2" || tok ==
"arm_sha2")
212 return {CPUID::CPUID_ARM_SHA2_BIT};
213 if(tok ==
"armv8aes" || tok ==
"arm_aes")
214 return {CPUID::CPUID_ARM_AES_BIT};
215 if(tok ==
"armv8pmull" || tok ==
"arm_pmull")
216 return {CPUID::CPUID_ARM_PMULL_BIT};
217 if(tok ==
"armv8sha3" || tok ==
"arm_sha3")
218 return {CPUID::CPUID_ARM_SHA3_BIT};
219 if(tok ==
"armv8sha2_512" || tok ==
"arm_sha2_512")
220 return {CPUID::CPUID_ARM_SHA2_512_BIT};
221 if(tok ==
"armv8sm3" || tok ==
"arm_sm3")
222 return {CPUID::CPUID_ARM_SM3_BIT};
223 if(tok ==
"armv8sm4" || tok ==
"arm_sm4")
224 return {CPUID::CPUID_ARM_SM4_BIT};