================ @@ -131,35 +135,50 @@ bool X86TargetInfo::initFeatureMap( continue; } - if (Feature.substr(0, 7) == "+avx10.") { - HasAVX10 = true; - HasAVX512F = true; - if (Feature.substr(Feature.size() - 3, 3) == "512") { - HasEVEX512 = true; - } else if (Feature.substr(7, 2) == "1-") { - HasEVEX512 = false; + if (Feature.substr(1, 6) == "avx10.") { + if (Feature[0] == '+') { + HasAVX10 = true; + if (Feature.substr(Feature.size() - 3, 3) == "512") + HasAVX10_512 = true; + LastAVX10 = Feature; + } else if (HasAVX10 && Feature == "-avx10.1-256") { + HasAVX10 = false; + HasAVX10_512 = false; + } else if (HasAVX10_512 && Feature == "-avx10.1-512") { + HasAVX10_512 = false; } + // Postpone AVX10 features handling after AVX512 settled. + UpdatedAVX10FeaturesVec.push_back(Feature); + continue; } else if (!HasAVX512F && Feature.substr(0, 7) == "+avx512") { HasAVX512F = true; + LastAVX512 = Feature; } else if (HasAVX512F && Feature == "-avx512f") { HasAVX512F = false; - } else if (HasAVX10 && Feature == "-avx10.1-256") { - HasAVX10 = false; - HasAVX512F = false; - } else if (!HasEVEX512 && Feature == "+evex512") { + } else if (HasEVEX512 != true && Feature == "+evex512") { ---------------- KanRobert wrote:
You can check `has_value` for uninitialized value. But enum looks good to me, too. https://github.com/llvm/llvm-project/pull/71318 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits