5353void __init_cpu_features_resolver (unsigned long hwcap,
5454 const __ifunc_arg_t *arg) {}
5555
56- void CONSTRUCTOR_ATTRIBUTE __init_cpu_features (void ) {
56+ void CONSTRUCTOR_ATTRIBUTE __init_cpu_features (void ) {
5757 if (__atomic_load_n (&__aarch64_cpu_features.features , __ATOMIC_RELAXED))
5858 return ;
5959
60- #define setCPUFeature (F ) features |= 1ULL << F
60+ #define setCPUFeature (F ) features |= 1ULL << F
6161
6262 uint64_t features = 0 ;
6363
@@ -75,27 +75,26 @@ void CONSTRUCTOR_ATTRIBUTE __init_cpu_features(void) {
7575 int WinApiFeature;
7676 enum CPUFeatures CPUFeature;
7777 } FeatMap[] = {
78- {PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE, FEAT_CRC},
79- {PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE, FEAT_LSE},
80- {PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE, FEAT_DOTPROD},
81- {PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE, FEAT_JSCVT},
82- {PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE, FEAT_RCPC},
83- {PF_ARM_SVE_INSTRUCTIONS_AVAILABLE, FEAT_SVE},
84- {PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE, FEAT_SVE2},
85- {PF_ARM_SVE_AES_INSTRUCTIONS_AVAILABLE, FEAT_SVE_AES},
86- {PF_ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE, FEAT_SVE_BF16},
87- {PF_ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE, FEAT_SVE_EBF16},
88- {PF_ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE, FEAT_SVE_SHA3},
89- {PF_ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE, FEAT_SVE_SM4},
90- {PF_ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE, FEAT_SVE_F32MM},
91- {PF_ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE, FEAT_SVE_F64MM},
78+ {PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE, FEAT_CRC},
79+ {PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE, FEAT_LSE},
80+ {PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE, FEAT_DOTPROD},
81+ {PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE, FEAT_JSCVT},
82+ {PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE, FEAT_RCPC},
83+ {PF_ARM_SVE_INSTRUCTIONS_AVAILABLE, FEAT_SVE},
84+ {PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE, FEAT_SVE2},
85+ {PF_ARM_SVE_AES_INSTRUCTIONS_AVAILABLE, FEAT_SVE_AES},
86+ {PF_ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE, FEAT_SVE_BF16},
87+ {PF_ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE, FEAT_SVE_EBF16},
88+ {PF_ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE, FEAT_SVE_SHA3},
89+ {PF_ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE, FEAT_SVE_SM4},
90+ {PF_ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE, FEAT_SVE_F32MM},
91+ {PF_ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE, FEAT_SVE_F64MM},
9292 };
9393
94- for (size_t I = 0 , E = sizeof (FeatMap) / sizeof (FeatMap[0 ]);
95- I != E; ++I)
96- if ((FeatMap[I]. WinApiFeature != - 1 ) && IsProcessorFeaturePresent (FeatMap[I].WinApiFeature ))
94+ for (size_t I = 0 , E = sizeof (FeatMap) / sizeof (FeatMap[0 ]); I != E; ++I)
95+ if ((FeatMap[I]. WinApiFeature != - 1 ) &&
96+ IsProcessorFeaturePresent (FeatMap[I].WinApiFeature ))
9797 setCPUFeature (FeatMap[I].CPUFeature );
9898
99- __atomic_store (&__aarch64_cpu_features.features , &features,
100- __ATOMIC_RELAXED);
99+ __atomic_store (&__aarch64_cpu_features.features , &features, __ATOMIC_RELAXED);
101100}
0 commit comments