================ @@ -679,20 +679,18 @@ llvm::ARM::FPUKind arm::getARMTargetFeatures(const Driver &D, CPUArgFPUKind != llvm::ARM::FK_INVALID ? CPUArgFPUKind : ArchArgFPUKind; (void)llvm::ARM::getFPUFeatures(FPUKind, Features); } else { - bool Generic = true; - if (!ForAS) { - std::string CPU = arm::getARMTargetCPU(CPUName, ArchName, Triple); - if (CPU != "generic") - Generic = false; - llvm::ARM::ArchKind ArchKind = - arm::getLLVMArchKindForARM(CPU, ArchName, Triple); - FPUKind = llvm::ARM::getDefaultFPU(CPU, ArchKind); - (void)llvm::ARM::getFPUFeatures(FPUKind, Features); - } + std::string CPU = arm::getARMTargetCPU(CPUName, ArchName, Triple); + bool Generic = CPU == "generic"; if (Generic && (Triple.isOSWindows() || Triple.isOSDarwin()) && getARMSubArchVersionNumber(Triple) >= 7) { FPUKind = llvm::ARM::parseFPU("neon"); (void)llvm::ARM::getFPUFeatures(FPUKind, Features); + } else if ((!Generic) || ---------------- Stylie777 wrote:
On reflection, this should have been an else block as the FPU was always handled so this did change behaviour. cc1as previously never handled the FPU at all, either in the Driver stage or once it had been called, so this is why `clang/test/Driver/armv8.1m.main.s` has changed, as previously the FPU's features were missed completely. They would be used in cc1 as that considers the FPU. https://github.com/llvm/llvm-project/pull/130623 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits