Skip to content

[AArch64] Add ability to list extensions enabled for a target #95805

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Jun 26, 2024

Conversation

pratlucas
Copy link
Contributor

@pratlucas pratlucas commented Jun 17, 2024

This introduces the new --print-enabled-extensions command line option to AArch64, which prints the list of extensions that are enabled for the target specified by the combination of --target/-march/-mcpu values.

The goal of the this option is both to enable the manual inspection of the enabled extensions by users and to enhance the testability of architecture versions and CPU targets implemented in the compiler.

As part of this change, a new field for FEAT_* architecture feature names was added to the TableGen entries. The output of the existing --print-supported-extensions option was updated accordingly to show these in a separate column.

@llvmbot llvmbot added clang Clang issues not falling into any other category backend:AArch64 clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' clang:frontend Language frontend issues, e.g. anything involving "Sema" clang:codegen IR generation bugs: mangling, exceptions, etc. mc Machine (object) code labels Jun 17, 2024
@llvmbot
Copy link
Member

llvmbot commented Jun 17, 2024

@llvm/pr-subscribers-mc
@llvm/pr-subscribers-clang-codegen
@llvm/pr-subscribers-clang

@llvm/pr-subscribers-backend-aarch64

Author: Lucas Duarte Prates (pratlucas)

Changes

This introduces the new '--print-enabled-extensions' command line option
to AArch64, which prints the list of extensins that are enabled for the
target specified by the combination of '--target/-march/-mcpu' values.
The new option allows the manual inspection of the enabled extensions by
users and enables us to programatically test that the correct set of
extensions are enabled for specific architecture versions or CPU models.


Patch is 108.34 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/95805.diff

32 Files Affected:

  • (modified) clang/include/clang/Driver/Options.td (+5)
  • (modified) clang/include/clang/Frontend/FrontendOptions.h (+4)
  • (modified) clang/lib/Basic/Targets/AArch64.cpp (+1-1)
  • (modified) clang/lib/CodeGen/Targets/AArch64.cpp (+2-2)
  • (modified) clang/lib/Driver/Driver.cpp (+14-5)
  • (modified) clang/lib/Driver/ToolChain.cpp (+4-4)
  • (modified) clang/lib/Driver/ToolChains/Clang.cpp (+1-1)
  • (modified) clang/test/Driver/aarch64-v81a.c (+16)
  • (modified) clang/test/Driver/aarch64-v82a.c (+20)
  • (modified) clang/test/Driver/aarch64-v83a.c (+26)
  • (modified) clang/test/Driver/aarch64-v84a.c (+40)
  • (modified) clang/test/Driver/aarch64-v85a.c (+48)
  • (modified) clang/test/Driver/aarch64-v86a.c (+54)
  • (modified) clang/test/Driver/aarch64-v87a.c (+57)
  • (modified) clang/test/Driver/aarch64-v88a.c (+60)
  • (modified) clang/test/Driver/aarch64-v89a.c (+67)
  • (added) clang/test/Driver/aarch64-v8a.c (+31)
  • (modified) clang/test/Driver/aarch64-v91a.c (+63)
  • (modified) clang/test/Driver/aarch64-v92a.c (+66)
  • (modified) clang/test/Driver/aarch64-v93a.c (+69)
  • (modified) clang/test/Driver/aarch64-v94a.c (+75)
  • (modified) clang/test/Driver/aarch64-v95a.c (+78)
  • (added) clang/test/Driver/aarch64-v9a.c (+72)
  • (modified) clang/test/Driver/print-supported-extensions.c (+2-2)
  • (modified) clang/tools/driver/cc1_main.cpp (+39-1)
  • (modified) llvm/include/llvm/MC/MCSubtargetInfo.h (+3)
  • (modified) llvm/include/llvm/TargetParser/AArch64TargetParser.h (+8-4)
  • (modified) llvm/lib/MC/MCSubtargetInfo.cpp (+10)
  • (modified) llvm/lib/Target/AArch64/AArch64Features.td (+485-426)
  • (modified) llvm/lib/TargetParser/AArch64TargetParser.cpp (+38-14)
  • (modified) llvm/unittests/TargetParser/TargetParserTest.cpp (+2-8)
  • (modified) llvm/utils/TableGen/ARMTargetDefEmitter.cpp (+3-1)
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index 49b44893c25f2..6a520dc9e7062 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -5703,6 +5703,11 @@ def print_supported_extensions : Flag<["-", "--"], "print-supported-extensions">
   Visibility<[ClangOption, CC1Option, CLOption]>,
   HelpText<"Print supported -march extensions (RISC-V, AArch64 and ARM only)">,
   MarshallingInfoFlag<FrontendOpts<"PrintSupportedExtensions">>;
+def print_enabled_extensions : Flag<["-", "--"], "print-enabled-extensions">,
+  Visibility<[ClangOption, CC1Option, CLOption]>,
+  HelpText<"Print the -march/-mcpu extensions enabled for the given target"
+           " (AArch64 only)">,
+  MarshallingInfoFlag<FrontendOpts<"PrintEnabledExtensions">>;
 def : Flag<["-"], "mcpu=help">, Alias<print_supported_cpus>;
 def : Flag<["-"], "mtune=help">, Alias<print_supported_cpus>;
 def time : Flag<["-"], "time">,
diff --git a/clang/include/clang/Frontend/FrontendOptions.h b/clang/include/clang/Frontend/FrontendOptions.h
index ebb8e9e59c6b6..5e5034fe01eb5 100644
--- a/clang/include/clang/Frontend/FrontendOptions.h
+++ b/clang/include/clang/Frontend/FrontendOptions.h
@@ -306,6 +306,10 @@ class FrontendOptions {
   LLVM_PREFERRED_TYPE(bool)
   unsigned PrintSupportedExtensions : 1;
 
+  /// Print the extensions enabled for the current target.
+  LLVM_PREFERRED_TYPE(bool)
+  unsigned PrintEnabledExtensions : 1;
+
   /// Show the -version text.
   LLVM_PREFERRED_TYPE(bool)
   unsigned ShowVersion : 1;
diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp
index e125ad551f098..b2c3e839b7e6c 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -1101,7 +1101,7 @@ bool AArch64TargetInfo::initFeatureMap(
         std::optional<llvm::AArch64::ExtensionInfo> Extension =
             llvm::AArch64::parseArchExtension(Feature.substr(1));
         if (Extension)
-          UpdatedFeature = Extension->Feature.str();
+          UpdatedFeature = Extension->TargetFeature.str();
       }
       UpdatedFeaturesVec.push_back(UpdatedFeature);
     }
diff --git a/clang/lib/CodeGen/Targets/AArch64.cpp b/clang/lib/CodeGen/Targets/AArch64.cpp
index cfb4b5f58ef72..51a7221db8b83 100644
--- a/clang/lib/CodeGen/Targets/AArch64.cpp
+++ b/clang/lib/CodeGen/Targets/AArch64.cpp
@@ -966,8 +966,8 @@ void AArch64ABIInfo::appendAttributeMangling(StringRef AttrStr,
   llvm::SmallDenseSet<StringRef, 8> UniqueFeats;
   for (auto &Feat : Features)
     if (auto Ext = llvm::AArch64::parseArchExtension(Feat))
-      if (UniqueFeats.insert(Ext->Name).second)
-        Out << 'M' << Ext->Name;
+      if (UniqueFeats.insert(Ext->UserVisibleName).second)
+        Out << 'M' << Ext->UserVisibleName;
 }
 
 std::unique_ptr<TargetCodeGenInfo>
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 67bf0604acd6e..db7327e25f4ad 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -370,6 +370,7 @@ phases::ID Driver::getFinalPhase(const DerivedArgList &DAL,
     // -{fsyntax-only,-analyze,emit-ast} only run up to the compiler.
   } else if ((PhaseArg = DAL.getLastArg(options::OPT_fsyntax_only)) ||
              (PhaseArg = DAL.getLastArg(options::OPT_print_supported_cpus)) ||
+             (PhaseArg = DAL.getLastArg(options::OPT_print_enabled_extensions)) ||
              (PhaseArg = DAL.getLastArg(options::OPT_module_file_info)) ||
              (PhaseArg = DAL.getLastArg(options::OPT_verify_pch)) ||
              (PhaseArg = DAL.getLastArg(options::OPT_rewrite_objc)) ||
@@ -2171,7 +2172,8 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
   if (C.getArgs().hasArg(options::OPT_v) ||
       C.getArgs().hasArg(options::OPT__HASH_HASH_HASH) ||
       C.getArgs().hasArg(options::OPT_print_supported_cpus) ||
-      C.getArgs().hasArg(options::OPT_print_supported_extensions)) {
+      C.getArgs().hasArg(options::OPT_print_supported_extensions) ||
+      C.getArgs().hasArg(options::OPT_print_enabled_extensions)) {
     PrintVersion(C, llvm::errs());
     SuppressMissingInputWarning = true;
   }
@@ -4351,13 +4353,14 @@ void Driver::BuildActions(Compilation &C, DerivedArgList &Args,
   }
 
   for (auto Opt : {options::OPT_print_supported_cpus,
-                   options::OPT_print_supported_extensions}) {
+                   options::OPT_print_supported_extensions,
+                   options::OPT_print_enabled_extensions}) {
     // If --print-supported-cpus, -mcpu=? or -mtune=? is specified, build a
     // custom Compile phase that prints out supported cpu models and quits.
     //
-    // If --print-supported-extensions is specified, call the helper function
-    // RISCVMarchHelp in RISCVISAInfo.cpp that prints out supported extensions
-    // and quits.
+    // If either --print-supported-extensions or --print-enabled-extensions is
+    // specified, call the corresponding helper function that prints out the
+    // supported/enabled extensions and quits.
     if (Arg *A = Args.getLastArg(Opt)) {
       if (Opt == options::OPT_print_supported_extensions &&
           !C.getDefaultToolChain().getTriple().isRISCV() &&
@@ -4367,6 +4370,12 @@ void Driver::BuildActions(Compilation &C, DerivedArgList &Args,
             << "--print-supported-extensions";
         return;
       }
+      if (Opt == options::OPT_print_enabled_extensions &&
+          !C.getDefaultToolChain().getTriple().isAArch64()) {
+        C.getDriver().Diag(diag::err_opt_not_valid_on_target)
+            << "--print-enabled-extensions";
+        return;
+      }
 
       // Use the -mcpu=? flag as the dummy input to cc1.
       Actions.clear();
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index 40ab2e91125d1..a6f7ffaa0e7b1 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -195,11 +195,11 @@ static void getAArch64MultilibFlags(const Driver &D,
                                        UnifiedFeatures.end());
   std::vector<std::string> MArch;
   for (const auto &Ext : AArch64::Extensions)
-    if (FeatureSet.contains(Ext.Feature))
-      MArch.push_back(Ext.Name.str());
+    if (FeatureSet.contains(Ext.TargetFeature))
+      MArch.push_back(Ext.UserVisibleName.str());
   for (const auto &Ext : AArch64::Extensions)
-    if (FeatureSet.contains(Ext.NegFeature))
-      MArch.push_back(("no" + Ext.Name).str());
+    if (FeatureSet.contains(Ext.NegTargetFeature))
+      MArch.push_back(("no" + Ext.UserVisibleName).str());
   StringRef ArchName;
   for (const auto &ArchInfo : AArch64::ArchInfos)
     if (FeatureSet.contains(ArchInfo->ArchFeature))
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 331cf6e713d89..719ec1b41859b 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -1523,7 +1523,7 @@ static void CollectARMPACBTIOptions(const ToolChain &TC, const ArgList &Args,
       auto isPAuthLR = [](const char *member) {
         llvm::AArch64::ExtensionInfo pauthlr_extension =
             llvm::AArch64::getExtensionByID(llvm::AArch64::AEK_PAUTHLR);
-        return pauthlr_extension.Feature == member;
+        return pauthlr_extension.TargetFeature == member;
       };
 
       if (std::any_of(CmdArgs.begin(), CmdArgs.end(), isPAuthLR))
diff --git a/clang/test/Driver/aarch64-v81a.c b/clang/test/Driver/aarch64-v81a.c
index e84652ec7f11e..419a2e1892c0d 100644
--- a/clang/test/Driver/aarch64-v81a.c
+++ b/clang/test/Driver/aarch64-v81a.c
@@ -19,3 +19,19 @@
 // RUN: %clang --target=arm64 -mlittle-endian -march=armv8.1a -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-GENERICV81A %s
 // RUN: %clang --target=arm64 -mlittle-endian -march=armv8.1-a -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-GENERICV81A %s
 // ARM64-GENERICV81A: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "generic"{{.*}} "-target-feature" "+v8.1a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.1-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// ARCH-EXTENSION: FEAT_PAN
+// ARCH-EXTENSION: FEAT_CRC32
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_LSE
+// ARCH-EXTENSION: FEAT_RDM
+// FIXME: FEAT_AdvSIMD is optional from v8.0a
+// ARCH-EXTENSION: FEAT_AdvSIMD
diff --git a/clang/test/Driver/aarch64-v82a.c b/clang/test/Driver/aarch64-v82a.c
index 9dd355934c105..a91423a67b845 100644
--- a/clang/test/Driver/aarch64-v82a.c
+++ b/clang/test/Driver/aarch64-v82a.c
@@ -13,3 +13,23 @@
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.2a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV82A-BE %s
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.2-a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV82A-BE %s
 // GENERICV82A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v8.2a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.2-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_DPB
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// ARCH-EXTENSION: FEAT_UAO
+// ARCH-EXTENSION: FEAT_PAN2
+// ARCH-EXTENSION: FEAT_PAN
+// ARCH-EXTENSION: FEAT_CRC32
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_LSE
+// ARCH-EXTENSION: FEAT_RAS, FEAT_RASv1p1
+// ARCH-EXTENSION: FEAT_RDM
+// FIXME: FEAT_AdvSIMD is optional from v8.0a
+// ARCH-EXTENSION: FEAT_AdvSIMD
diff --git a/clang/test/Driver/aarch64-v83a.c b/clang/test/Driver/aarch64-v83a.c
index b0ff9fb3abc24..84f3c5e878328 100644
--- a/clang/test/Driver/aarch64-v83a.c
+++ b/clang/test/Driver/aarch64-v83a.c
@@ -13,3 +13,29 @@
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.3a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV83A-BE %s
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.3-a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV83A-BE %s
 // GENERICV83A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v8.3a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.3-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_DPB
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// FIXME: FEAT_CCIDX is optional from v8.3a
+// ARCH-EXTENSION: FEAT_CCIDX
+// ARCH-EXTENSION: FEAT_UAO
+// ARCH-EXTENSION: FEAT_PAN2
+// ARCH-EXTENSION: FEAT_PAN
+// ARCH-EXTENSION: FEAT_CRC32
+// ARCH-EXTENSION: FEAT_FCMA
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_JSCVT
+// ARCH-EXTENSION: FEAT_LSE
+// ARCH-EXTENSION: FEAT_PAuth
+// ARCH-EXTENSION: FEAT_RAS, FEAT_RASv1p1
+// ARCH-EXTENSION: FEAT_LRCPC
+// ARCH-EXTENSION: FEAT_RDM
+// FIXME: FEAT_AdvSIMD is optional from v8.0a
+// ARCH-EXTENSION: FEAT_AdvSIMD
diff --git a/clang/test/Driver/aarch64-v84a.c b/clang/test/Driver/aarch64-v84a.c
index 030990bfe5131..28062cc16d4e8 100644
--- a/clang/test/Driver/aarch64-v84a.c
+++ b/clang/test/Driver/aarch64-v84a.c
@@ -13,3 +13,43 @@
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.4a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV84A-BE %s
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.4-a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV84A-BE %s
 // GENERICV84A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v8.4a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.4-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_TLBIOS, FEAT_TLBIRANGE
+// FIXME: FEAT_AMUv1 is optional from v8.4a
+// ARCH-EXTENSION: FEAT_AMUv1
+// ARCH-EXTENSION: FEAT_DPB
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_LSE2
+// FIXME: FEAT_MPAM is optional from v8.4a
+// ARCH-EXTENSION: FEAT_MPAM
+// ARCH-EXTENSION: FEAT_LRCPC2
+// ARCH-EXTENSION: FEAT_TRF
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// FIXME: FEAT_CCIDX is optional from v8.3a
+// ARCH-EXTENSION: FEAT_CCIDX
+// ARCH-EXTENSION: FEAT_UAO
+// ARCH-EXTENSION: FEAT_SEL2
+// ARCH-EXTENSION: FEAT_PAN2
+// ARCH-EXTENSION: FEAT_PAN
+// FIXME: FEAT_NV/FEAT_NV2 are optional from v8.4a
+// ARCH-EXTENSION: FEAT_NV, FEAT_NV2
+// ARCH-EXTENSION: FEAT_CRC32
+// ARCH-EXTENSION: FEAT_DIT
+// ARCH-EXTENSION: FEAT_DotProd
+// ARCH-EXTENSION: FEAT_FCMA
+// ARCH-EXTENSION: FEAT_FlagM
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_JSCVT
+// ARCH-EXTENSION: FEAT_LSE
+// ARCH-EXTENSION: FEAT_PAuth
+// ARCH-EXTENSION: FEAT_RAS, FEAT_RASv1p1
+// ARCH-EXTENSION: FEAT_LRCPC
+// ARCH-EXTENSION: FEAT_RDM
+// FIXME: FEAT_AdvSIMD is optional from v8.0a
+// ARCH-EXTENSION: FEAT_AdvSIMD
diff --git a/clang/test/Driver/aarch64-v85a.c b/clang/test/Driver/aarch64-v85a.c
index 3e1e921dcc013..32945e435b402 100644
--- a/clang/test/Driver/aarch64-v85a.c
+++ b/clang/test/Driver/aarch64-v85a.c
@@ -13,3 +13,51 @@
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.5a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV85A-BE %s
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.5-a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV85A-BE %s
 // GENERICV85A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v8.5a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.5-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_TLBIOS, FEAT_TLBIRANGE
+// FIXME: FEAT_AMUv1 is optional from v8.4a
+// ARCH-EXTENSION: FEAT_AMUv1
+// ARCH-EXTENSION: FEAT_DPB
+// ARCH-EXTENSION: FEAT_DPB2
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_FRINTTS
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_CSV2_2
+// ARCH-EXTENSION: FEAT_LSE2
+// FIXME: FEAT_MPAM is optional from v8.4a
+// ARCH-EXTENSION: FEAT_MPAM
+// ARCH-EXTENSION: FEAT_LRCPC2
+// ARCH-EXTENSION: FEAT_FlagM2
+// ARCH-EXTENSION: FEAT_TRF
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// FIXME: FEAT_CCIDX is optional from v8.3a
+// ARCH-EXTENSION: FEAT_CCIDX
+// ARCH-EXTENSION: FEAT_UAO
+// ARCH-EXTENSION: FEAT_SEL2
+// ARCH-EXTENSION: FEAT_PAN2
+// ARCH-EXTENSION: FEAT_PAN
+// FIXME: FEAT_NV/FEAT_NV2 are optional from v8.4a
+// ARCH-EXTENSION: FEAT_NV, FEAT_NV2
+// ARCH-EXTENSION: FEAT_CRC32
+// ARCH-EXTENSION: FEAT_DIT
+// ARCH-EXTENSION: FEAT_DotProd
+// ARCH-EXTENSION: FEAT_FCMA
+// ARCH-EXTENSION: FEAT_FlagM
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_JSCVT
+// ARCH-EXTENSION: FEAT_LSE
+// ARCH-EXTENSION: FEAT_PAuth
+// ARCH-EXTENSION: FEAT_SPECRES
+// ARCH-EXTENSION: FEAT_RAS, FEAT_RASv1p1
+// ARCH-EXTENSION: FEAT_LRCPC
+// ARCH-EXTENSION: FEAT_RDM
+// ARCH-EXTENSION: FEAT_SB
+// FIXME: FEAT_AdvSIMD is optional from v8.0a
+// ARCH-EXTENSION: FEAT_AdvSIMD
+// FIXME: FEAT_SSBS/FEAT_SSBS2 are optional from v8.0a
+// ARCH-EXTENSION: FEAT_SSBS, FEAT_SSBS2
diff --git a/clang/test/Driver/aarch64-v86a.c b/clang/test/Driver/aarch64-v86a.c
index ba2b57979b518..c0ca90fe49d17 100644
--- a/clang/test/Driver/aarch64-v86a.c
+++ b/clang/test/Driver/aarch64-v86a.c
@@ -13,3 +13,57 @@
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.6a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV86A-BE %s
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.6-a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV86A-BE %s
 // GENERICV86A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v8.6a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.6-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_TLBIOS, FEAT_TLBIRANGE
+// FIXME: FEAT_AMUv1 is optional from v8.4a
+// ARCH-EXTENSION: FEAT_AMUv1
+// FIXME: FEAT_AMUv1p1 is optional from v8.6a
+// ARCH-EXTENSION: FEAT_AMUv1p1
+// ARCH-EXTENSION: FEAT_DPB
+// ARCH-EXTENSION: FEAT_DPB2
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_ECV
+// ARCH-EXTENSION: FEAT_FRINTTS
+// ARCH-EXTENSION: FEAT_FGT
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_CSV2_2
+// ARCH-EXTENSION: FEAT_LSE2
+// FIXME: FEAT_MPAM is optional from v8.4a
+// ARCH-EXTENSION: FEAT_MPAM
+// ARCH-EXTENSION: FEAT_LRCPC2
+// ARCH-EXTENSION: FEAT_FlagM2
+// ARCH-EXTENSION: FEAT_TRF
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// FIXME: FEAT_CCIDX is optional from v8.3a
+// ARCH-EXTENSION: FEAT_CCIDX
+// ARCH-EXTENSION: FEAT_UAO
+// ARCH-EXTENSION: FEAT_SEL2
+// ARCH-EXTENSION: FEAT_PAN2
+// ARCH-EXTENSION: FEAT_PAN
+// FIXME: FEAT_NV/FEAT_NV2 are optional from v8.4a
+// ARCH-EXTENSION: FEAT_NV, FEAT_NV2
+// ARCH-EXTENSION: FEAT_BF16
+// ARCH-EXTENSION: FEAT_CRC32
+// ARCH-EXTENSION: FEAT_DIT
+// ARCH-EXTENSION: FEAT_DotProd
+// ARCH-EXTENSION: FEAT_FCMA
+// ARCH-EXTENSION: FEAT_FlagM
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_I8MM
+// ARCH-EXTENSION: FEAT_JSCVT
+// ARCH-EXTENSION: FEAT_LSE
+// ARCH-EXTENSION: FEAT_PAuth
+// ARCH-EXTENSION: FEAT_SPECRES
+// ARCH-EXTENSION: FEAT_RAS, FEAT_RASv1p1
+// ARCH-EXTENSION: FEAT_LRCPC
+// ARCH-EXTENSION: FEAT_RDM
+// ARCH-EXTENSION: FEAT_SB
+// FIXME: FEAT_AdvSIMD is optional from v8.0a
+// ARCH-EXTENSION: FEAT_AdvSIMD
+// FIXME: FEAT_SSBS/FEAT_SSBS2 are optional from v8.0a
+// ARCH-EXTENSION: FEAT_SSBS, FEAT_SSBS2
diff --git a/clang/test/Driver/aarch64-v87a.c b/clang/test/Driver/aarch64-v87a.c
index ee4b68882739a..29001fe76f480 100644
--- a/clang/test/Driver/aarch64-v87a.c
+++ b/clang/test/Driver/aarch64-v87a.c
@@ -13,3 +13,60 @@
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.7a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV87A-BE %s
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.7-a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV87A-BE %s
 // GENERICV87A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v8.7a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.7-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_TLBIOS, FEAT_TLBIRANGE
+// FIXME: FEAT_AMUv1 is optional from v8.4a
+// ARCH-EXTENSION: FEAT_AMUv1
+// FIXME: FEAT_AMUv1p1 is optional from v8.6a
+// ARCH-EXTENSION: FEAT_AMUv1p1
+// ARCH-EXTENSION: FEAT_DPB
+// ARCH-EXTENSION: FEAT_DPB2
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_ECV
+// ARCH-EXTENSION: FEAT_FRINTTS
+// ARCH-EXTENSION: FEAT_FGT
+// ARCH-EXTENSION: FEAT_HCX
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_CSV2_2
+// ARCH-EXTENSION: FEAT_LSE2
+// FIXME: FEAT_MPAM is optional from v8.4a
+// ARCH-EXTENSION: FEAT_MPAM
+// ARCH-EXTENSION: FEAT_LRCPC2
+// ARCH-EXTENSION: FEAT_FlagM2
+// ARCH-EXTENSION: FEAT_TRF
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// ARCH-EXTENSION: FEAT_XS
+// FIXME: FEAT_CCIDX is optional from v8.3a
+// ARCH-EXTENSION: FEAT_CCIDX
+// ARCH-EXTENSION: FEAT_UAO
+// ARCH-EXTENSION: FEAT_SEL2
+// ARCH-EXTENSION: FEAT_PAN2
+// ARCH-EXTENSION: FEAT_PAN
+// FIXME: FEAT_NV/FEAT_NV2 are optional from v8.4a
+// ARCH-EXTENSION: FEAT_NV, FEAT_NV2
+// ARCH-EXTENSION: FEAT_BF16
+// ARCH-EXTENSION: FEAT_CRC32
+// ARCH-EXTENSION: FEAT_DIT
+// ARCH-EXTENSION: FEAT_DotProd
+// ARCH-EXTENSION: FEAT_FCMA
+// ARCH-EXTENSION: FEAT_FlagM
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_I8MM
+// ARCH-EXTENSI...
[truncated]

@llvmbot
Copy link
Member

llvmbot commented Jun 17, 2024

@llvm/pr-subscribers-clang-driver

Author: Lucas Duarte Prates (pratlucas)

Changes

This introduces the new '--print-enabled-extensions' command line option
to AArch64, which prints the list of extensins that are enabled for the
target specified by the combination of '--target/-march/-mcpu' values.
The new option allows the manual inspection of the enabled extensions by
users and enables us to programatically test that the correct set of
extensions are enabled for specific architecture versions or CPU models.


Patch is 108.34 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/95805.diff

32 Files Affected:

  • (modified) clang/include/clang/Driver/Options.td (+5)
  • (modified) clang/include/clang/Frontend/FrontendOptions.h (+4)
  • (modified) clang/lib/Basic/Targets/AArch64.cpp (+1-1)
  • (modified) clang/lib/CodeGen/Targets/AArch64.cpp (+2-2)
  • (modified) clang/lib/Driver/Driver.cpp (+14-5)
  • (modified) clang/lib/Driver/ToolChain.cpp (+4-4)
  • (modified) clang/lib/Driver/ToolChains/Clang.cpp (+1-1)
  • (modified) clang/test/Driver/aarch64-v81a.c (+16)
  • (modified) clang/test/Driver/aarch64-v82a.c (+20)
  • (modified) clang/test/Driver/aarch64-v83a.c (+26)
  • (modified) clang/test/Driver/aarch64-v84a.c (+40)
  • (modified) clang/test/Driver/aarch64-v85a.c (+48)
  • (modified) clang/test/Driver/aarch64-v86a.c (+54)
  • (modified) clang/test/Driver/aarch64-v87a.c (+57)
  • (modified) clang/test/Driver/aarch64-v88a.c (+60)
  • (modified) clang/test/Driver/aarch64-v89a.c (+67)
  • (added) clang/test/Driver/aarch64-v8a.c (+31)
  • (modified) clang/test/Driver/aarch64-v91a.c (+63)
  • (modified) clang/test/Driver/aarch64-v92a.c (+66)
  • (modified) clang/test/Driver/aarch64-v93a.c (+69)
  • (modified) clang/test/Driver/aarch64-v94a.c (+75)
  • (modified) clang/test/Driver/aarch64-v95a.c (+78)
  • (added) clang/test/Driver/aarch64-v9a.c (+72)
  • (modified) clang/test/Driver/print-supported-extensions.c (+2-2)
  • (modified) clang/tools/driver/cc1_main.cpp (+39-1)
  • (modified) llvm/include/llvm/MC/MCSubtargetInfo.h (+3)
  • (modified) llvm/include/llvm/TargetParser/AArch64TargetParser.h (+8-4)
  • (modified) llvm/lib/MC/MCSubtargetInfo.cpp (+10)
  • (modified) llvm/lib/Target/AArch64/AArch64Features.td (+485-426)
  • (modified) llvm/lib/TargetParser/AArch64TargetParser.cpp (+38-14)
  • (modified) llvm/unittests/TargetParser/TargetParserTest.cpp (+2-8)
  • (modified) llvm/utils/TableGen/ARMTargetDefEmitter.cpp (+3-1)
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index 49b44893c25f2..6a520dc9e7062 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -5703,6 +5703,11 @@ def print_supported_extensions : Flag<["-", "--"], "print-supported-extensions">
   Visibility<[ClangOption, CC1Option, CLOption]>,
   HelpText<"Print supported -march extensions (RISC-V, AArch64 and ARM only)">,
   MarshallingInfoFlag<FrontendOpts<"PrintSupportedExtensions">>;
+def print_enabled_extensions : Flag<["-", "--"], "print-enabled-extensions">,
+  Visibility<[ClangOption, CC1Option, CLOption]>,
+  HelpText<"Print the -march/-mcpu extensions enabled for the given target"
+           " (AArch64 only)">,
+  MarshallingInfoFlag<FrontendOpts<"PrintEnabledExtensions">>;
 def : Flag<["-"], "mcpu=help">, Alias<print_supported_cpus>;
 def : Flag<["-"], "mtune=help">, Alias<print_supported_cpus>;
 def time : Flag<["-"], "time">,
diff --git a/clang/include/clang/Frontend/FrontendOptions.h b/clang/include/clang/Frontend/FrontendOptions.h
index ebb8e9e59c6b6..5e5034fe01eb5 100644
--- a/clang/include/clang/Frontend/FrontendOptions.h
+++ b/clang/include/clang/Frontend/FrontendOptions.h
@@ -306,6 +306,10 @@ class FrontendOptions {
   LLVM_PREFERRED_TYPE(bool)
   unsigned PrintSupportedExtensions : 1;
 
+  /// Print the extensions enabled for the current target.
+  LLVM_PREFERRED_TYPE(bool)
+  unsigned PrintEnabledExtensions : 1;
+
   /// Show the -version text.
   LLVM_PREFERRED_TYPE(bool)
   unsigned ShowVersion : 1;
diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp
index e125ad551f098..b2c3e839b7e6c 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -1101,7 +1101,7 @@ bool AArch64TargetInfo::initFeatureMap(
         std::optional<llvm::AArch64::ExtensionInfo> Extension =
             llvm::AArch64::parseArchExtension(Feature.substr(1));
         if (Extension)
-          UpdatedFeature = Extension->Feature.str();
+          UpdatedFeature = Extension->TargetFeature.str();
       }
       UpdatedFeaturesVec.push_back(UpdatedFeature);
     }
diff --git a/clang/lib/CodeGen/Targets/AArch64.cpp b/clang/lib/CodeGen/Targets/AArch64.cpp
index cfb4b5f58ef72..51a7221db8b83 100644
--- a/clang/lib/CodeGen/Targets/AArch64.cpp
+++ b/clang/lib/CodeGen/Targets/AArch64.cpp
@@ -966,8 +966,8 @@ void AArch64ABIInfo::appendAttributeMangling(StringRef AttrStr,
   llvm::SmallDenseSet<StringRef, 8> UniqueFeats;
   for (auto &Feat : Features)
     if (auto Ext = llvm::AArch64::parseArchExtension(Feat))
-      if (UniqueFeats.insert(Ext->Name).second)
-        Out << 'M' << Ext->Name;
+      if (UniqueFeats.insert(Ext->UserVisibleName).second)
+        Out << 'M' << Ext->UserVisibleName;
 }
 
 std::unique_ptr<TargetCodeGenInfo>
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 67bf0604acd6e..db7327e25f4ad 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -370,6 +370,7 @@ phases::ID Driver::getFinalPhase(const DerivedArgList &DAL,
     // -{fsyntax-only,-analyze,emit-ast} only run up to the compiler.
   } else if ((PhaseArg = DAL.getLastArg(options::OPT_fsyntax_only)) ||
              (PhaseArg = DAL.getLastArg(options::OPT_print_supported_cpus)) ||
+             (PhaseArg = DAL.getLastArg(options::OPT_print_enabled_extensions)) ||
              (PhaseArg = DAL.getLastArg(options::OPT_module_file_info)) ||
              (PhaseArg = DAL.getLastArg(options::OPT_verify_pch)) ||
              (PhaseArg = DAL.getLastArg(options::OPT_rewrite_objc)) ||
@@ -2171,7 +2172,8 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
   if (C.getArgs().hasArg(options::OPT_v) ||
       C.getArgs().hasArg(options::OPT__HASH_HASH_HASH) ||
       C.getArgs().hasArg(options::OPT_print_supported_cpus) ||
-      C.getArgs().hasArg(options::OPT_print_supported_extensions)) {
+      C.getArgs().hasArg(options::OPT_print_supported_extensions) ||
+      C.getArgs().hasArg(options::OPT_print_enabled_extensions)) {
     PrintVersion(C, llvm::errs());
     SuppressMissingInputWarning = true;
   }
@@ -4351,13 +4353,14 @@ void Driver::BuildActions(Compilation &C, DerivedArgList &Args,
   }
 
   for (auto Opt : {options::OPT_print_supported_cpus,
-                   options::OPT_print_supported_extensions}) {
+                   options::OPT_print_supported_extensions,
+                   options::OPT_print_enabled_extensions}) {
     // If --print-supported-cpus, -mcpu=? or -mtune=? is specified, build a
     // custom Compile phase that prints out supported cpu models and quits.
     //
-    // If --print-supported-extensions is specified, call the helper function
-    // RISCVMarchHelp in RISCVISAInfo.cpp that prints out supported extensions
-    // and quits.
+    // If either --print-supported-extensions or --print-enabled-extensions is
+    // specified, call the corresponding helper function that prints out the
+    // supported/enabled extensions and quits.
     if (Arg *A = Args.getLastArg(Opt)) {
       if (Opt == options::OPT_print_supported_extensions &&
           !C.getDefaultToolChain().getTriple().isRISCV() &&
@@ -4367,6 +4370,12 @@ void Driver::BuildActions(Compilation &C, DerivedArgList &Args,
             << "--print-supported-extensions";
         return;
       }
+      if (Opt == options::OPT_print_enabled_extensions &&
+          !C.getDefaultToolChain().getTriple().isAArch64()) {
+        C.getDriver().Diag(diag::err_opt_not_valid_on_target)
+            << "--print-enabled-extensions";
+        return;
+      }
 
       // Use the -mcpu=? flag as the dummy input to cc1.
       Actions.clear();
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index 40ab2e91125d1..a6f7ffaa0e7b1 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -195,11 +195,11 @@ static void getAArch64MultilibFlags(const Driver &D,
                                        UnifiedFeatures.end());
   std::vector<std::string> MArch;
   for (const auto &Ext : AArch64::Extensions)
-    if (FeatureSet.contains(Ext.Feature))
-      MArch.push_back(Ext.Name.str());
+    if (FeatureSet.contains(Ext.TargetFeature))
+      MArch.push_back(Ext.UserVisibleName.str());
   for (const auto &Ext : AArch64::Extensions)
-    if (FeatureSet.contains(Ext.NegFeature))
-      MArch.push_back(("no" + Ext.Name).str());
+    if (FeatureSet.contains(Ext.NegTargetFeature))
+      MArch.push_back(("no" + Ext.UserVisibleName).str());
   StringRef ArchName;
   for (const auto &ArchInfo : AArch64::ArchInfos)
     if (FeatureSet.contains(ArchInfo->ArchFeature))
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 331cf6e713d89..719ec1b41859b 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -1523,7 +1523,7 @@ static void CollectARMPACBTIOptions(const ToolChain &TC, const ArgList &Args,
       auto isPAuthLR = [](const char *member) {
         llvm::AArch64::ExtensionInfo pauthlr_extension =
             llvm::AArch64::getExtensionByID(llvm::AArch64::AEK_PAUTHLR);
-        return pauthlr_extension.Feature == member;
+        return pauthlr_extension.TargetFeature == member;
       };
 
       if (std::any_of(CmdArgs.begin(), CmdArgs.end(), isPAuthLR))
diff --git a/clang/test/Driver/aarch64-v81a.c b/clang/test/Driver/aarch64-v81a.c
index e84652ec7f11e..419a2e1892c0d 100644
--- a/clang/test/Driver/aarch64-v81a.c
+++ b/clang/test/Driver/aarch64-v81a.c
@@ -19,3 +19,19 @@
 // RUN: %clang --target=arm64 -mlittle-endian -march=armv8.1a -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-GENERICV81A %s
 // RUN: %clang --target=arm64 -mlittle-endian -march=armv8.1-a -### -c %s 2>&1 | FileCheck -check-prefix=ARM64-GENERICV81A %s
 // ARM64-GENERICV81A: "-cc1"{{.*}} "-triple" "arm64{{.*}}" "-target-cpu" "generic"{{.*}} "-target-feature" "+v8.1a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.1-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// ARCH-EXTENSION: FEAT_PAN
+// ARCH-EXTENSION: FEAT_CRC32
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_LSE
+// ARCH-EXTENSION: FEAT_RDM
+// FIXME: FEAT_AdvSIMD is optional from v8.0a
+// ARCH-EXTENSION: FEAT_AdvSIMD
diff --git a/clang/test/Driver/aarch64-v82a.c b/clang/test/Driver/aarch64-v82a.c
index 9dd355934c105..a91423a67b845 100644
--- a/clang/test/Driver/aarch64-v82a.c
+++ b/clang/test/Driver/aarch64-v82a.c
@@ -13,3 +13,23 @@
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.2a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV82A-BE %s
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.2-a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV82A-BE %s
 // GENERICV82A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v8.2a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.2-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_DPB
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// ARCH-EXTENSION: FEAT_UAO
+// ARCH-EXTENSION: FEAT_PAN2
+// ARCH-EXTENSION: FEAT_PAN
+// ARCH-EXTENSION: FEAT_CRC32
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_LSE
+// ARCH-EXTENSION: FEAT_RAS, FEAT_RASv1p1
+// ARCH-EXTENSION: FEAT_RDM
+// FIXME: FEAT_AdvSIMD is optional from v8.0a
+// ARCH-EXTENSION: FEAT_AdvSIMD
diff --git a/clang/test/Driver/aarch64-v83a.c b/clang/test/Driver/aarch64-v83a.c
index b0ff9fb3abc24..84f3c5e878328 100644
--- a/clang/test/Driver/aarch64-v83a.c
+++ b/clang/test/Driver/aarch64-v83a.c
@@ -13,3 +13,29 @@
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.3a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV83A-BE %s
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.3-a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV83A-BE %s
 // GENERICV83A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v8.3a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.3-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_DPB
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// FIXME: FEAT_CCIDX is optional from v8.3a
+// ARCH-EXTENSION: FEAT_CCIDX
+// ARCH-EXTENSION: FEAT_UAO
+// ARCH-EXTENSION: FEAT_PAN2
+// ARCH-EXTENSION: FEAT_PAN
+// ARCH-EXTENSION: FEAT_CRC32
+// ARCH-EXTENSION: FEAT_FCMA
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_JSCVT
+// ARCH-EXTENSION: FEAT_LSE
+// ARCH-EXTENSION: FEAT_PAuth
+// ARCH-EXTENSION: FEAT_RAS, FEAT_RASv1p1
+// ARCH-EXTENSION: FEAT_LRCPC
+// ARCH-EXTENSION: FEAT_RDM
+// FIXME: FEAT_AdvSIMD is optional from v8.0a
+// ARCH-EXTENSION: FEAT_AdvSIMD
diff --git a/clang/test/Driver/aarch64-v84a.c b/clang/test/Driver/aarch64-v84a.c
index 030990bfe5131..28062cc16d4e8 100644
--- a/clang/test/Driver/aarch64-v84a.c
+++ b/clang/test/Driver/aarch64-v84a.c
@@ -13,3 +13,43 @@
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.4a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV84A-BE %s
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.4-a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV84A-BE %s
 // GENERICV84A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v8.4a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.4-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_TLBIOS, FEAT_TLBIRANGE
+// FIXME: FEAT_AMUv1 is optional from v8.4a
+// ARCH-EXTENSION: FEAT_AMUv1
+// ARCH-EXTENSION: FEAT_DPB
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_LSE2
+// FIXME: FEAT_MPAM is optional from v8.4a
+// ARCH-EXTENSION: FEAT_MPAM
+// ARCH-EXTENSION: FEAT_LRCPC2
+// ARCH-EXTENSION: FEAT_TRF
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// FIXME: FEAT_CCIDX is optional from v8.3a
+// ARCH-EXTENSION: FEAT_CCIDX
+// ARCH-EXTENSION: FEAT_UAO
+// ARCH-EXTENSION: FEAT_SEL2
+// ARCH-EXTENSION: FEAT_PAN2
+// ARCH-EXTENSION: FEAT_PAN
+// FIXME: FEAT_NV/FEAT_NV2 are optional from v8.4a
+// ARCH-EXTENSION: FEAT_NV, FEAT_NV2
+// ARCH-EXTENSION: FEAT_CRC32
+// ARCH-EXTENSION: FEAT_DIT
+// ARCH-EXTENSION: FEAT_DotProd
+// ARCH-EXTENSION: FEAT_FCMA
+// ARCH-EXTENSION: FEAT_FlagM
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_JSCVT
+// ARCH-EXTENSION: FEAT_LSE
+// ARCH-EXTENSION: FEAT_PAuth
+// ARCH-EXTENSION: FEAT_RAS, FEAT_RASv1p1
+// ARCH-EXTENSION: FEAT_LRCPC
+// ARCH-EXTENSION: FEAT_RDM
+// FIXME: FEAT_AdvSIMD is optional from v8.0a
+// ARCH-EXTENSION: FEAT_AdvSIMD
diff --git a/clang/test/Driver/aarch64-v85a.c b/clang/test/Driver/aarch64-v85a.c
index 3e1e921dcc013..32945e435b402 100644
--- a/clang/test/Driver/aarch64-v85a.c
+++ b/clang/test/Driver/aarch64-v85a.c
@@ -13,3 +13,51 @@
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.5a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV85A-BE %s
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.5-a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV85A-BE %s
 // GENERICV85A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v8.5a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.5-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_TLBIOS, FEAT_TLBIRANGE
+// FIXME: FEAT_AMUv1 is optional from v8.4a
+// ARCH-EXTENSION: FEAT_AMUv1
+// ARCH-EXTENSION: FEAT_DPB
+// ARCH-EXTENSION: FEAT_DPB2
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_FRINTTS
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_CSV2_2
+// ARCH-EXTENSION: FEAT_LSE2
+// FIXME: FEAT_MPAM is optional from v8.4a
+// ARCH-EXTENSION: FEAT_MPAM
+// ARCH-EXTENSION: FEAT_LRCPC2
+// ARCH-EXTENSION: FEAT_FlagM2
+// ARCH-EXTENSION: FEAT_TRF
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// FIXME: FEAT_CCIDX is optional from v8.3a
+// ARCH-EXTENSION: FEAT_CCIDX
+// ARCH-EXTENSION: FEAT_UAO
+// ARCH-EXTENSION: FEAT_SEL2
+// ARCH-EXTENSION: FEAT_PAN2
+// ARCH-EXTENSION: FEAT_PAN
+// FIXME: FEAT_NV/FEAT_NV2 are optional from v8.4a
+// ARCH-EXTENSION: FEAT_NV, FEAT_NV2
+// ARCH-EXTENSION: FEAT_CRC32
+// ARCH-EXTENSION: FEAT_DIT
+// ARCH-EXTENSION: FEAT_DotProd
+// ARCH-EXTENSION: FEAT_FCMA
+// ARCH-EXTENSION: FEAT_FlagM
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_JSCVT
+// ARCH-EXTENSION: FEAT_LSE
+// ARCH-EXTENSION: FEAT_PAuth
+// ARCH-EXTENSION: FEAT_SPECRES
+// ARCH-EXTENSION: FEAT_RAS, FEAT_RASv1p1
+// ARCH-EXTENSION: FEAT_LRCPC
+// ARCH-EXTENSION: FEAT_RDM
+// ARCH-EXTENSION: FEAT_SB
+// FIXME: FEAT_AdvSIMD is optional from v8.0a
+// ARCH-EXTENSION: FEAT_AdvSIMD
+// FIXME: FEAT_SSBS/FEAT_SSBS2 are optional from v8.0a
+// ARCH-EXTENSION: FEAT_SSBS, FEAT_SSBS2
diff --git a/clang/test/Driver/aarch64-v86a.c b/clang/test/Driver/aarch64-v86a.c
index ba2b57979b518..c0ca90fe49d17 100644
--- a/clang/test/Driver/aarch64-v86a.c
+++ b/clang/test/Driver/aarch64-v86a.c
@@ -13,3 +13,57 @@
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.6a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV86A-BE %s
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.6-a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV86A-BE %s
 // GENERICV86A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v8.6a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.6-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_TLBIOS, FEAT_TLBIRANGE
+// FIXME: FEAT_AMUv1 is optional from v8.4a
+// ARCH-EXTENSION: FEAT_AMUv1
+// FIXME: FEAT_AMUv1p1 is optional from v8.6a
+// ARCH-EXTENSION: FEAT_AMUv1p1
+// ARCH-EXTENSION: FEAT_DPB
+// ARCH-EXTENSION: FEAT_DPB2
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_ECV
+// ARCH-EXTENSION: FEAT_FRINTTS
+// ARCH-EXTENSION: FEAT_FGT
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_CSV2_2
+// ARCH-EXTENSION: FEAT_LSE2
+// FIXME: FEAT_MPAM is optional from v8.4a
+// ARCH-EXTENSION: FEAT_MPAM
+// ARCH-EXTENSION: FEAT_LRCPC2
+// ARCH-EXTENSION: FEAT_FlagM2
+// ARCH-EXTENSION: FEAT_TRF
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// FIXME: FEAT_CCIDX is optional from v8.3a
+// ARCH-EXTENSION: FEAT_CCIDX
+// ARCH-EXTENSION: FEAT_UAO
+// ARCH-EXTENSION: FEAT_SEL2
+// ARCH-EXTENSION: FEAT_PAN2
+// ARCH-EXTENSION: FEAT_PAN
+// FIXME: FEAT_NV/FEAT_NV2 are optional from v8.4a
+// ARCH-EXTENSION: FEAT_NV, FEAT_NV2
+// ARCH-EXTENSION: FEAT_BF16
+// ARCH-EXTENSION: FEAT_CRC32
+// ARCH-EXTENSION: FEAT_DIT
+// ARCH-EXTENSION: FEAT_DotProd
+// ARCH-EXTENSION: FEAT_FCMA
+// ARCH-EXTENSION: FEAT_FlagM
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_I8MM
+// ARCH-EXTENSION: FEAT_JSCVT
+// ARCH-EXTENSION: FEAT_LSE
+// ARCH-EXTENSION: FEAT_PAuth
+// ARCH-EXTENSION: FEAT_SPECRES
+// ARCH-EXTENSION: FEAT_RAS, FEAT_RASv1p1
+// ARCH-EXTENSION: FEAT_LRCPC
+// ARCH-EXTENSION: FEAT_RDM
+// ARCH-EXTENSION: FEAT_SB
+// FIXME: FEAT_AdvSIMD is optional from v8.0a
+// ARCH-EXTENSION: FEAT_AdvSIMD
+// FIXME: FEAT_SSBS/FEAT_SSBS2 are optional from v8.0a
+// ARCH-EXTENSION: FEAT_SSBS, FEAT_SSBS2
diff --git a/clang/test/Driver/aarch64-v87a.c b/clang/test/Driver/aarch64-v87a.c
index ee4b68882739a..29001fe76f480 100644
--- a/clang/test/Driver/aarch64-v87a.c
+++ b/clang/test/Driver/aarch64-v87a.c
@@ -13,3 +13,60 @@
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.7a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV87A-BE %s
 // RUN: %clang --target=aarch64_be -mbig-endian -march=armv8.7-a -### -c %s 2>&1 | FileCheck -check-prefix=GENERICV87A-BE %s
 // GENERICV87A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v8.7a"{{.*}} "-target-feature" "+neon"
+
+// ===== Architecture extensions =====
+
+// RUN: %clang -target aarch64 -march=armv8.7-a --print-enabled-extensions 2>&1 | FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ %s
+// ARCH-EXTENSION: FEAT_TLBIOS, FEAT_TLBIRANGE
+// FIXME: FEAT_AMUv1 is optional from v8.4a
+// ARCH-EXTENSION: FEAT_AMUv1
+// FIXME: FEAT_AMUv1p1 is optional from v8.6a
+// ARCH-EXTENSION: FEAT_AMUv1p1
+// ARCH-EXTENSION: FEAT_DPB
+// ARCH-EXTENSION: FEAT_DPB2
+// ARCH-EXTENSION: FEAT_ETE
+// ARCH-EXTENSION: FEAT_ECV
+// ARCH-EXTENSION: FEAT_FRINTTS
+// ARCH-EXTENSION: FEAT_FGT
+// ARCH-EXTENSION: FEAT_HCX
+// ARCH-EXTENSION: FEAT_LOR
+// ARCH-EXTENSION: FEAT_CSV2_2
+// ARCH-EXTENSION: FEAT_LSE2
+// FIXME: FEAT_MPAM is optional from v8.4a
+// ARCH-EXTENSION: FEAT_MPAM
+// ARCH-EXTENSION: FEAT_LRCPC2
+// ARCH-EXTENSION: FEAT_FlagM2
+// ARCH-EXTENSION: FEAT_TRF
+// ARCH-EXTENSION: FEAT_TRBE
+// ARCH-EXTENSION: FEAT_VHE
+// ARCH-EXTENSION: FEAT_XS
+// FIXME: FEAT_CCIDX is optional from v8.3a
+// ARCH-EXTENSION: FEAT_CCIDX
+// ARCH-EXTENSION: FEAT_UAO
+// ARCH-EXTENSION: FEAT_SEL2
+// ARCH-EXTENSION: FEAT_PAN2
+// ARCH-EXTENSION: FEAT_PAN
+// FIXME: FEAT_NV/FEAT_NV2 are optional from v8.4a
+// ARCH-EXTENSION: FEAT_NV, FEAT_NV2
+// ARCH-EXTENSION: FEAT_BF16
+// ARCH-EXTENSION: FEAT_CRC32
+// ARCH-EXTENSION: FEAT_DIT
+// ARCH-EXTENSION: FEAT_DotProd
+// ARCH-EXTENSION: FEAT_FCMA
+// ARCH-EXTENSION: FEAT_FlagM
+// FIXME: FEAT_FP is optional from v8.0a
+// ARCH-EXTENSION: FEAT_FP
+// ARCH-EXTENSION: FEAT_I8MM
+// ARCH-EXTENSI...
[truncated]

Copy link

github-actions bot commented Jun 17, 2024

⚠️ C/C++ code formatter, clang-format found issues in your code. ⚠️

You can test this locally with the following command:
git-clang-format --diff b5efd214297a50664cf3373362db29432c883ebd 97fc775791e66f0ce74026014a412ceec652c8cd --extensions 'c,cpp,h' -- clang/test/Driver/aarch64-v8a.c clang/test/Driver/aarch64-v9a.c clang/include/clang/Frontend/FrontendOptions.h clang/lib/Driver/Driver.cpp clang/lib/Driver/ToolChain.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/test/CodeGen/aarch64-targetattr.c clang/test/Driver/aarch64-fp16.c clang/test/Driver/aarch64-sve2.c clang/test/Driver/aarch64-v81a.c clang/test/Driver/aarch64-v82a.c clang/test/Driver/aarch64-v83a.c clang/test/Driver/aarch64-v84a.c clang/test/Driver/aarch64-v85a.c clang/test/Driver/aarch64-v86a.c clang/test/Driver/aarch64-v87a.c clang/test/Driver/aarch64-v88a.c clang/test/Driver/aarch64-v89a.c clang/test/Driver/aarch64-v91a.c clang/test/Driver/aarch64-v92a.c clang/test/Driver/aarch64-v93a.c clang/test/Driver/aarch64-v94a.c clang/test/Driver/aarch64-v95a.c clang/test/Driver/print-supported-extensions.c clang/test/Preprocessor/aarch64-target-features.c clang/tools/driver/cc1_main.cpp llvm/include/llvm/MC/MCSubtargetInfo.h llvm/include/llvm/TargetParser/AArch64TargetParser.h llvm/lib/MC/MCSubtargetInfo.cpp llvm/lib/TargetParser/AArch64TargetParser.cpp llvm/unittests/TargetParser/TargetParserTest.cpp llvm/utils/TableGen/ARMTargetDefEmitter.cpp
View the diff from clang-format here.
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index ccdfa1295d..619cbcc665 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -370,7 +370,8 @@ phases::ID Driver::getFinalPhase(const DerivedArgList &DAL,
     // -{fsyntax-only,-analyze,emit-ast} only run up to the compiler.
   } else if ((PhaseArg = DAL.getLastArg(options::OPT_fsyntax_only)) ||
              (PhaseArg = DAL.getLastArg(options::OPT_print_supported_cpus)) ||
-             (PhaseArg = DAL.getLastArg(options::OPT_print_enabled_extensions)) ||
+             (PhaseArg =
+                  DAL.getLastArg(options::OPT_print_enabled_extensions)) ||
              (PhaseArg = DAL.getLastArg(options::OPT_module_file_info)) ||
              (PhaseArg = DAL.getLastArg(options::OPT_verify_pch)) ||
              (PhaseArg = DAL.getLastArg(options::OPT_rewrite_objc)) ||
diff --git a/clang/tools/driver/cc1_main.cpp b/clang/tools/driver/cc1_main.cpp
index 3c0599c2e5..dd2d11c5a4 100644
--- a/clang/tools/driver/cc1_main.cpp
+++ b/clang/tools/driver/cc1_main.cpp
@@ -162,7 +162,7 @@ static int PrintSupportedExtensions(std::string TargetStr) {
   return 0;
 }
 
-static int PrintEnabledExtensions(const TargetOptions& TargetOpts) {
+static int PrintEnabledExtensions(const TargetOptions &TargetOpts) {
   std::string Error;
   const llvm::Target *TheTarget =
       llvm::TargetRegistry::lookupTarget(TargetOpts.Triple, Error);
@@ -177,7 +177,9 @@ static int PrintEnabledExtensions(const TargetOptions& TargetOpts) {
   llvm::TargetOptions BackendOptions;
   std::string FeaturesStr = llvm::join(TargetOpts.FeaturesAsWritten, ",");
   std::unique_ptr<llvm::TargetMachine> TheTargetMachine(
-      TheTarget->createTargetMachine(TargetOpts.Triple, TargetOpts.CPU, FeaturesStr, BackendOptions, std::nullopt));
+      TheTarget->createTargetMachine(TargetOpts.Triple, TargetOpts.CPU,
+                                     FeaturesStr, BackendOptions,
+                                     std::nullopt));
   const llvm::Triple &MachineTriple = TheTargetMachine->getTargetTriple();
   const llvm::MCSubtargetInfo *MCInfo = TheTargetMachine->getMCSubtargetInfo();
 
@@ -185,7 +187,7 @@ static int PrintEnabledExtensions(const TargetOptions& TargetOpts) {
   // We do that by capturing the key from the set of SubtargetFeatureKV entries
   // provided by MCSubtargetInfo, which match the '-target-feature' values.
   const std::vector<llvm::SubtargetFeatureKV> Features =
-    MCInfo->getEnabledProcessorFeatures();
+      MCInfo->getEnabledProcessorFeatures();
   std::set<llvm::StringRef> EnabledFeatureNames;
   for (const llvm::SubtargetFeatureKV &feature : Features)
     EnabledFeatureNames.insert(feature.Key);
diff --git a/llvm/lib/TargetParser/AArch64TargetParser.cpp b/llvm/lib/TargetParser/AArch64TargetParser.cpp
index 2dde4d2b7e..96b9ae1b5e 100644
--- a/llvm/lib/TargetParser/AArch64TargetParser.cpp
+++ b/llvm/lib/TargetParser/AArch64TargetParser.cpp
@@ -160,8 +160,7 @@ std::optional<AArch64::CpuInfo> AArch64::parseCpu(StringRef Name) {
 void AArch64::PrintSupportedExtensions() {
   outs() << "All available -march extensions for AArch64\n\n"
          << "    " << left_justify("Name", 20)
-         << left_justify("Architecture Feature(s)", 55)
-         << "Description\n";
+         << left_justify("Architecture Feature(s)", 55) << "Description\n";
   for (const auto &Ext : Extensions) {
     // Extensions without a feature cannot be used with -march.
     if (!Ext.UserVisibleName.empty() && !Ext.PosTargetFeature.empty()) {
@@ -174,8 +173,7 @@ void AArch64::PrintSupportedExtensions() {
   }
 }
 
-void
-AArch64::printEnabledExtensions(std::set<StringRef> EnabledFeatureNames) {
+void AArch64::printEnabledExtensions(std::set<StringRef> EnabledFeatureNames) {
   outs() << "Extensions enabled for the given AArch64 target\n\n"
          << "    " << left_justify("Architecture Feature(s)", 55)
          << "Description\n";
@@ -193,8 +191,7 @@ AArch64::printEnabledExtensions(std::set<StringRef> EnabledFeatureNames) {
 
   for (const auto &Ext : EnabledExtensionsInfo) {
     outs() << "    "
-           << format("%-55s%s\n",
-                     Ext.ArchFeatureName.str().c_str(),
+           << format("%-55s%s\n", Ext.ArchFeatureName.str().c_str(),
                      Ext.Description.str().c_str());
   }
 }
@@ -211,7 +208,8 @@ void AArch64::ExtensionSet::enable(ArchExtKind E) {
   if (Enabled.test(E))
     return;
 
-  LLVM_DEBUG(llvm::dbgs() << "Enable " << lookupExtensionByID(E).UserVisibleName << "\n");
+  LLVM_DEBUG(llvm::dbgs() << "Enable " << lookupExtensionByID(E).UserVisibleName
+                          << "\n");
 
   Touched.set(E);
   Enabled.set(E);
@@ -252,7 +250,8 @@ void AArch64::ExtensionSet::disable(ArchExtKind E) {
   if (!Enabled.test(E))
     return;
 
-  LLVM_DEBUG(llvm::dbgs() << "Disable " << lookupExtensionByID(E).UserVisibleName << "\n");
+  LLVM_DEBUG(llvm::dbgs() << "Disable "
+                          << lookupExtensionByID(E).UserVisibleName << "\n");
 
   Touched.set(E);
   Enabled.reset(E);
diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp
index fe20099382..8363c0f3b6 100644
--- a/llvm/unittests/TargetParser/TargetParserTest.cpp
+++ b/llvm/unittests/TargetParser/TargetParserTest.cpp
@@ -1442,8 +1442,8 @@ INSTANTIATE_TEST_SUITE_P(
                  AArch64::AEK_FP16, AArch64::AEK_FP16FML, AArch64::AEK_RAS,
                  AArch64::AEK_RCPC, AArch64::AEK_LSE, AArch64::AEK_SB,
                  AArch64::AEK_JSCVT, AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
-                 AArch64::AEK_FLAGM, AArch64::AEK_PERFMON,
-                 AArch64::AEK_PREDRES, AArch64::AEK_CCDP}),
+                 AArch64::AEK_FLAGM, AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
+                 AArch64::AEK_CCDP}),
             "8-R"),
         ARMCPUTestParams<AArch64::ExtensionBitset>(
             "cortex-r82ae", "armv8-r", "crypto-neon-fp-armv8",
@@ -1453,8 +1453,8 @@ INSTANTIATE_TEST_SUITE_P(
                  AArch64::AEK_FP16, AArch64::AEK_FP16FML, AArch64::AEK_RAS,
                  AArch64::AEK_RCPC, AArch64::AEK_LSE, AArch64::AEK_SB,
                  AArch64::AEK_JSCVT, AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
-                 AArch64::AEK_FLAGM, AArch64::AEK_PERFMON,
-                 AArch64::AEK_PREDRES, AArch64::AEK_CCDP}),
+                 AArch64::AEK_FLAGM, AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
+                 AArch64::AEK_CCDP}),
             "8-R"),
         ARMCPUTestParams<AArch64::ExtensionBitset>(
             "cortex-x1", "armv8.2-a", "crypto-neon-fp-armv8",
@@ -1473,7 +1473,8 @@ INSTANTIATE_TEST_SUITE_P(
                  AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
                  AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
                  AArch64::AEK_PAUTH, AArch64::AEK_PROFILE, AArch64::AEK_FLAGM,
-                 AArch64::AEK_PERFMON, AArch64::AEK_LSE2, AArch64::AEK_RCPC_IMMO}),
+                 AArch64::AEK_PERFMON, AArch64::AEK_LSE2,
+                 AArch64::AEK_RCPC_IMMO}),
             "8.2-A"),
         ARMCPUTestParams<AArch64::ExtensionBitset>(
             "cortex-x2", "armv9-a", "neon-fp-armv8",
@@ -1626,37 +1627,59 @@ INSTANTIATE_TEST_SUITE_P(
             "8.4-A"),
         ARMCPUTestParams<AArch64::ExtensionBitset>(
             "apple-a14", "armv8.4-a", "crypto-neon-fp-armv8",
-            AArch64::ExtensionBitset(
-                {AArch64::AEK_CRC,     AArch64::AEK_AES,
-                 AArch64::AEK_SHA2,    AArch64::AEK_SHA3,
-                 AArch64::AEK_FP,      AArch64::AEK_SIMD,
-                 AArch64::AEK_LSE,     AArch64::AEK_RAS,
-                 AArch64::AEK_RDM,     AArch64::AEK_RCPC,
-                 AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
-                 AArch64::AEK_FP16FML, AArch64::AEK_SHA3,
-                 AArch64::AEK_JSCVT,   AArch64::AEK_FCMA,
-                 AArch64::AEK_PAUTH,   AArch64::AEK_PERFMON,
-                 AArch64::AEK_PREDRES, AArch64::AEK_SB,
-                 AArch64::AEK_SSBS,    AArch64::AEK_CCDP,
-                 AArch64::AEK_FRINT3264, AArch64::AEK_SPECRESTRICT,
-                 AArch64::AEK_ALTERNATIVENZCV}),
+            AArch64::ExtensionBitset({AArch64::AEK_CRC,
+                                      AArch64::AEK_AES,
+                                      AArch64::AEK_SHA2,
+                                      AArch64::AEK_SHA3,
+                                      AArch64::AEK_FP,
+                                      AArch64::AEK_SIMD,
+                                      AArch64::AEK_LSE,
+                                      AArch64::AEK_RAS,
+                                      AArch64::AEK_RDM,
+                                      AArch64::AEK_RCPC,
+                                      AArch64::AEK_DOTPROD,
+                                      AArch64::AEK_FP16,
+                                      AArch64::AEK_FP16FML,
+                                      AArch64::AEK_SHA3,
+                                      AArch64::AEK_JSCVT,
+                                      AArch64::AEK_FCMA,
+                                      AArch64::AEK_PAUTH,
+                                      AArch64::AEK_PERFMON,
+                                      AArch64::AEK_PREDRES,
+                                      AArch64::AEK_SB,
+                                      AArch64::AEK_SSBS,
+                                      AArch64::AEK_CCDP,
+                                      AArch64::AEK_FRINT3264,
+                                      AArch64::AEK_SPECRESTRICT,
+                                      AArch64::AEK_ALTERNATIVENZCV}),
             "8.4-A"),
         ARMCPUTestParams<AArch64::ExtensionBitset>(
             "apple-m1", "armv8.4-a", "crypto-neon-fp-armv8",
-            AArch64::ExtensionBitset(
-                {AArch64::AEK_CRC,     AArch64::AEK_AES,
-                 AArch64::AEK_SHA2,    AArch64::AEK_SHA3,
-                 AArch64::AEK_FP,      AArch64::AEK_SIMD,
-                 AArch64::AEK_LSE,     AArch64::AEK_RAS,
-                 AArch64::AEK_RDM,     AArch64::AEK_RCPC,
-                 AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
-                 AArch64::AEK_FP16FML, AArch64::AEK_SHA3,
-                 AArch64::AEK_JSCVT,   AArch64::AEK_FCMA,
-                 AArch64::AEK_PAUTH,   AArch64::AEK_PERFMON,
-                 AArch64::AEK_PREDRES, AArch64::AEK_SB,
-                 AArch64::AEK_SSBS,    AArch64::AEK_CCDP,
-                 AArch64::AEK_FRINT3264, AArch64::AEK_SPECRESTRICT,
-                 AArch64::AEK_ALTERNATIVENZCV}),
+            AArch64::ExtensionBitset({AArch64::AEK_CRC,
+                                      AArch64::AEK_AES,
+                                      AArch64::AEK_SHA2,
+                                      AArch64::AEK_SHA3,
+                                      AArch64::AEK_FP,
+                                      AArch64::AEK_SIMD,
+                                      AArch64::AEK_LSE,
+                                      AArch64::AEK_RAS,
+                                      AArch64::AEK_RDM,
+                                      AArch64::AEK_RCPC,
+                                      AArch64::AEK_DOTPROD,
+                                      AArch64::AEK_FP16,
+                                      AArch64::AEK_FP16FML,
+                                      AArch64::AEK_SHA3,
+                                      AArch64::AEK_JSCVT,
+                                      AArch64::AEK_FCMA,
+                                      AArch64::AEK_PAUTH,
+                                      AArch64::AEK_PERFMON,
+                                      AArch64::AEK_PREDRES,
+                                      AArch64::AEK_SB,
+                                      AArch64::AEK_SSBS,
+                                      AArch64::AEK_CCDP,
+                                      AArch64::AEK_FRINT3264,
+                                      AArch64::AEK_SPECRESTRICT,
+                                      AArch64::AEK_ALTERNATIVENZCV}),
             "8.6-A"),
         ARMCPUTestParams<AArch64::ExtensionBitset>(
             "apple-a15", "armv8.6-a", "crypto-neon-fp-armv8",
@@ -2378,9 +2401,9 @@ TEST(TargetParserTest, AArch64ArchExtFeature) {
 }
 
 TEST(TargetParserTest, AArch64PrintSupportedExtensions) {
-  std::string expected =
-      "All available -march extensions for AArch64\n\n"
-      "    Name                Architecture Feature(s)                                Description\n";
+  std::string expected = "All available -march extensions for AArch64\n\n"
+                         "    Name                Architecture Feature(s)      "
+                         "                          Description\n";
 
   outs().flush();
   testing::internal::CaptureStdout();
@@ -2406,7 +2429,8 @@ TEST(TargetParserTest, AArch64PrintEnabledExtensions) {
   std::string ExpectedOutput =
       "Extensions enabled for the given AArch64 target\n\n"
       "    Architecture Feature(s)                                Description\n"
-      "    FEAT_CRC32                                             Enable ARMv8 CRC-32 checksum instructions\n";
+      "    FEAT_CRC32                                             Enable ARMv8 "
+      "CRC-32 checksum instructions\n";
 
   outs().flush();
   testing::internal::CaptureStdout();

Copy link
Collaborator

@DavidSpickett DavidSpickett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool idea, should be very useful.

The TableGen has changed so much since I last looked so I didn't look over that myself.

@DavidSpickett
Copy link
Collaborator

Also please list the impact, if any, on --print-supported-extensions in the commit message. I think it got a column with the FEAT_ names added, which is a nice improvement.

@jthackray
Copy link
Contributor

This is a good idea. Happy to approve, once all the FIXMEs are removed, since others have already made many salient suggestions, which I agree with.

@pratlucas pratlucas force-pushed the print-enabled-extensions branch from 8eb16a4 to 2bbb406 Compare June 19, 2024 10:34
This updates the implementation in AArch64Features.td to make the
TargetParser aware of all of the architecture extensions declared
in TableGen. This change makes this information accessible to
other components and will allow the reduction of code duplication
and the expansion of the testability of targets in an upcoming
patch.
This renames some of the fields in AArchte64TargetParser's ExtensionInfo
struct to better reflect their use cases and improve readability.
This introduces a new field to AArch64TargetParser's ExtensionInfo
struct that contains the extension description from the TableGen record.
This allows us to simplify the information flow for functionality such
as '--print-supported-extensions'.
…onInfo

This introduces a new textual field for the Architecture Feature names
to the AArch64 extensions in TableGen and TargetParser. So far, any
cross references between the extensions in the implementation and the
ones from the ISA has been covered only by the free text in ther
'Description' field. The new field adds a reliable and explicit mapping
between them, and enables enhancements in testability that will be
implemented in an upcoming patch.
This introduces the new '--print-enabled-extensions' command line option
to AArch64, which prints the list of extensins that are enabled for the
target specified by the combination of '--target/-march/-mcpu' values.
The new option allows the manual inspection of the enabled extensions by
users and enables us to programatically test that the correct set of
extensions are enabled for specific architecture versions or CPU models.
@llvm-ci
Copy link
Collaborator

llvm-ci commented Jun 26, 2024

LLVM Buildbot has detected a new failure on builder clangd-ubuntu-tsan running on clangd-ubuntu-clang while building clang,flang,llvm at step 6 "test-build-clangd-clangd-index-server-clangd-indexer-check-clangd".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/134/builds/680

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-clangd-clangd-index-server-clangd-indexer-check-clangd) failure: test (failure)
******************** TEST 'Clangd :: execute-command.test' FAILED ********************
Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: clangd -lit-test < /vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/llvm-project/clang-tools-extra/clangd/test/execute-command.test | /vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/build/bin/FileCheck -strict-whitespace /vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/llvm-project/clang-tools-extra/clangd/test/execute-command.test
+ clangd -lit-test
+ /vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/build/bin/FileCheck -strict-whitespace /vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/llvm-project/clang-tools-extra/clangd/test/execute-command.test
WARNING: ThreadSanitizer: unexpected memory mapping 0x79ffffe72000-0x7a0000300000
FATAL: ThreadSanitizer: unexpectedly found incompatible memory layout.
FATAL: Please file a bug.
FileCheck error: '<stdin>' is empty.
FileCheck command line:  /vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/build/bin/FileCheck -strict-whitespace /vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/llvm-project/clang-tools-extra/clangd/test/execute-command.test

--

********************


@llvm-ci
Copy link
Collaborator

llvm-ci commented Jun 26, 2024

LLVM Buildbot has detected a new failure on builder openmp-offload-sles-build-only running on rocm-worker-hw-04-sles while building clang,flang,llvm at step 6 "Add check check-clang".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/140/builds/823

Here is the relevant piece of the build log for the reference:

Step 6 (Add check check-clang) failure: test (failure)
******************** TEST 'Clang :: Driver/aarch64-v85a.c' FAILED ********************
Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64 -march=armv8.5a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c 2>&1 | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64 -march=armv8.5a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
RUN: at line 2: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64 -march=armv8.5-a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c 2>&1 | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64 -march=armv8.5-a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
RUN: at line 3: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64 -mlittle-endian -march=armv8.5a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c 2>&1 | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64 -mlittle-endian -march=armv8.5a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
RUN: at line 4: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64 -mlittle-endian -march=armv8.5-a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c 2>&1 | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64 -mlittle-endian -march=armv8.5-a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
RUN: at line 5: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.5a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c 2>&1 | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.5a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
RUN: at line 6: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.5-a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c 2>&1 | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.5-a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
RUN: at line 9: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64_be -march=armv8.5a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c 2>&1 | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A-BE /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A-BE /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64_be -march=armv8.5a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
RUN: at line 10: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64_be -march=armv8.5-a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c 2>&1 | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A-BE /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A-BE /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64_be -march=armv8.5-a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
RUN: at line 11: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64 -mbig-endian -march=armv8.5a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c 2>&1 | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A-BE /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A-BE /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64 -mbig-endian -march=armv8.5a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
RUN: at line 12: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64 -mbig-endian -march=armv8.5-a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c 2>&1 | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A-BE /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A-BE /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64 -mbig-endian -march=armv8.5-a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
RUN: at line 13: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64_be -mbig-endian -march=armv8.5a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c 2>&1 | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A-BE /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A-BE /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64_be -mbig-endian -march=armv8.5a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
RUN: at line 14: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64_be -mbig-endian -march=armv8.5-a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c 2>&1 | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A-BE /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=GENERICV85A-BE /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang --target=aarch64_be -mbig-endian -march=armv8.5-a -### -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
RUN: at line 19: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang -target aarch64 -march=armv8.5-a --print-enabled-extensions | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck -check-prefix=ARCH-EXTENSION --implicit-check-not FEAT_ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Driver/aarch64-v85a.c
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang -target aarch64 -march=armv8.5-a --print-enabled-extensions
clang version 19.0.0git (https://github.com/llvm/llvm-project.git b6240c371522c701be8a7a143aa166d277508cbe)
Target: aarch64
Thread model: posix
InstalledDir: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin
Build config: +assertions
No available targets are compatible with triple "aarch64"FileCheck error: '<stdin>' is empty.
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jun 26, 2024

LLVM Buildbot has detected a new failure on builder clang-ve-ninja running on hpce-ve-main while building clang,flang,llvm at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/12/builds/729

Here is the relevant piece of the build log for the reference:

Step 4 (annotate) failure: 'python ../llvm-zorg/zorg/buildbot/builders/annotated/ve-linux.py ...' (failure)
...
[300/306] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTImporterTest.cpp.o
[301/306] Building CXX object tools/clang/unittests/ASTMatchers/CMakeFiles/ASTMatchersTests.dir/ASTMatchersTraversalTest.cpp.o
[302/306] Linking CXX executable tools/clang/unittests/AST/ASTTests
[303/306] Linking CXX executable tools/clang/unittests/ASTMatchers/ASTMatchersTests
[304/306] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/SourceCodeTest.cpp.o
[305/306] Linking CXX executable tools/clang/unittests/Tooling/ToolingTests
[305/306] Running the Clang regression tests
-- Testing: 20667 tests, 48 workers --
llvm-lit: /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/utils/lit/lit/llvm/config.py:508: note: using clang: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang
Testing:  0.. 10.. 20.. 30.. 40..
FAIL: Clang :: Driver/aarch64-v82a.c (10125 of 20667)
******************** TEST 'Clang :: Driver/aarch64-v82a.c' FAILED ********************
Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 2: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 3: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mlittle-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mlittle-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 4: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mlittle-endian -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mlittle-endian -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 5: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 6: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 9: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 10: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 11: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mbig-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mbig-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 12: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mbig-endian -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mbig-endian -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 13: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -mbig-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -mbig-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
Step 8 (check-llvm) failure: check-llvm (failure)
...
[300/306] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTImporterTest.cpp.o
[301/306] Building CXX object tools/clang/unittests/ASTMatchers/CMakeFiles/ASTMatchersTests.dir/ASTMatchersTraversalTest.cpp.o
[302/306] Linking CXX executable tools/clang/unittests/AST/ASTTests
[303/306] Linking CXX executable tools/clang/unittests/ASTMatchers/ASTMatchersTests
[304/306] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/SourceCodeTest.cpp.o
[305/306] Linking CXX executable tools/clang/unittests/Tooling/ToolingTests
[305/306] Running the Clang regression tests
-- Testing: 20667 tests, 48 workers --
llvm-lit: /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/utils/lit/lit/llvm/config.py:508: note: using clang: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang
Testing:  0.. 10.. 20.. 30.. 40..
FAIL: Clang :: Driver/aarch64-v82a.c (10125 of 20667)
******************** TEST 'Clang :: Driver/aarch64-v82a.c' FAILED ********************
Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 2: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 3: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mlittle-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mlittle-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 4: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mlittle-endian -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mlittle-endian -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 5: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 6: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 9: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 10: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 11: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mbig-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mbig-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 12: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mbig-endian -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64 -mbig-endian -march=armv8.2-a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
RUN: at line 13: /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -mbig-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c 2>&1 | /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/clang --target=aarch64_be -mbig-endian -march=armv8.2a -### -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c
+ /scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/bin/FileCheck -check-prefix=GENERICV82A-BE /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Driver/aarch64-v82a.c

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jun 26, 2024

LLVM Buildbot has detected a new failure on builder arc-builder running on arc-worker while building clang,flang,llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/3/builds/630

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'Clang :: Driver/aarch64-v81a.c' FAILED ********************
Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: /buildbot/worker/arc-folder/build/bin/clang --target=aarch64_be -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A-BE /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=aarch64_be -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A-BE /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 2: /buildbot/worker/arc-folder/build/bin/clang --target=aarch64_be -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A-BE /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A-BE /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=aarch64_be -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 3: /buildbot/worker/arc-folder/build/bin/clang --target=aarch64 -mbig-endian -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A-BE /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A-BE /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=aarch64 -mbig-endian -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 4: /buildbot/worker/arc-folder/build/bin/clang --target=aarch64 -mbig-endian -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A-BE /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A-BE /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=aarch64 -mbig-endian -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 5: /buildbot/worker/arc-folder/build/bin/clang --target=aarch64_be -mbig-endian -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A-BE /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=aarch64_be -mbig-endian -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A-BE /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 6: /buildbot/worker/arc-folder/build/bin/clang --target=aarch64_be -mbig-endian -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A-BE /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A-BE /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=aarch64_be -mbig-endian -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 9: /buildbot/worker/arc-folder/build/bin/clang --target=aarch64 -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=aarch64 -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 10: /buildbot/worker/arc-folder/build/bin/clang --target=aarch64 -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=aarch64 -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 11: /buildbot/worker/arc-folder/build/bin/clang --target=aarch64 -mlittle-endian -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=aarch64 -mlittle-endian -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 12: /buildbot/worker/arc-folder/build/bin/clang --target=aarch64 -mlittle-endian -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=aarch64 -mlittle-endian -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 13: /buildbot/worker/arc-folder/build/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 14: /buildbot/worker/arc-folder/build/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 17: /buildbot/worker/arc-folder/build/bin/clang --target=arm64 -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=ARM64-GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=arm64 -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=ARM64-GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 18: /buildbot/worker/arc-folder/build/bin/clang --target=arm64 -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=ARM64-GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=arm64 -march=armv8.1-a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=ARM64-GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
RUN: at line 19: /buildbot/worker/arc-folder/build/bin/clang --target=arm64 -mlittle-endian -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c 2>&1 | /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=ARM64-GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/FileCheck -check-prefix=ARM64-GENERICV81A /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
+ /buildbot/worker/arc-folder/build/bin/clang --target=arm64 -mlittle-endian -march=armv8.1a -### -c /buildbot/worker/arc-folder/llvm-project/clang/test/Driver/aarch64-v81a.c
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jun 26, 2024

LLVM Buildbot has detected a new failure on builder clang-cmake-x86_64-avx512-linux running on avx512-intel64 while building clang,flang,llvm at step 7 "ninja check 1".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/133/builds/621

Here is the relevant piece of the build log for the reference:

Step 7 (ninja check 1) failure: stage 1 checked (failure)
******************** TEST 'Clang :: Driver/aarch64-v81a.c' FAILED ********************
Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64_be -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A-BE /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A-BE /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64_be -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 2: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64_be -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A-BE /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64_be -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A-BE /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 3: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64 -mbig-endian -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A-BE /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64 -mbig-endian -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A-BE /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 4: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64 -mbig-endian -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A-BE /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64 -mbig-endian -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A-BE /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 5: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64_be -mbig-endian -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A-BE /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A-BE /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64_be -mbig-endian -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 6: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64_be -mbig-endian -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A-BE /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64_be -mbig-endian -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A-BE /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 9: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64 -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64 -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 10: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64 -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64 -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 11: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64 -mlittle-endian -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64 -mlittle-endian -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 12: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64 -mlittle-endian -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64 -mlittle-endian -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 13: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 14: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=aarch64_be -mlittle-endian -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 17: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=arm64 -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=ARM64-GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=arm64 -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=ARM64-GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 18: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=arm64 -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=ARM64-GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=arm64 -march=armv8.1-a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=ARM64-GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
RUN: at line 19: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=arm64 -mlittle-endian -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c 2>&1 | /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=ARM64-GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/FileCheck -check-prefix=ARM64-GENERICV81A /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang --target=arm64 -mlittle-endian -march=armv8.1a -### -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Driver/aarch64-v81a.c
...

@jroelofs
Copy link
Contributor

Looks like the new tests in Driver are missing // REQUIRES: aarch64-registered-target

@pratlucas
Copy link
Contributor Author

Looks like the new tests in Driver are missing // REQUIRES: aarch64-registered-target

Yes, I'm adding those now. There was also an odd ThreadSanitizer failure in clangd (https://lab.llvm.org/buildbot/#/builders/134/builds/680), which I'm investigating to check if is indeed related to this change.

@DavidSpickett
Copy link
Collaborator

I very much doubt it is, your change is still in the next build (https://lab.llvm.org/buildbot/#/builders/134/builds/681) and that's green.

pratlucas added a commit to pratlucas/llvm-project that referenced this pull request Jun 26, 2024
…et" (llvm#95805)

This introduces the new `--print-enabled-extensions` command line option
to AArch64, which prints the list of extensions that are enabled for the
target specified by the combination of `--target`/`-march`/`-mcpu`
values.

The goal of the this option is both to enable the manual inspection of
the enabled extensions by users and to enhance the testability of
architecture versions and CPU targets implemented in the compiler.

As part of this change, a new field for `FEAT_*` architecture feature
names was added to the TableGen entries. The output of the existing
`--print-supported-extensions` option was updated accordingly to show
these in a separate column.
@pratlucas
Copy link
Contributor Author

Good catch. I also wasn't able to reproduce it locally.
I've created #96795 to re-land the changes with the updated tests.

pratlucas added a commit to pratlucas/llvm-project that referenced this pull request Jun 27, 2024
arsenm pushed a commit that referenced this pull request Jun 27, 2024
This introduces the new `--print-enabled-extensions` command line option
to AArch64, which prints the list of extensions that are enabled for the
target specified by the combination of `--target`/`-march`/`-mcpu`
values.

The goal of the this option is both to enable the manual inspection of
the enabled extensions by users and to enhance the testability of
architecture versions and CPU targets implemented in the compiler.

As part of this change, a new field for `FEAT_*` architecture feature
names was added to the TableGen entries. The output of the existing
`--print-supported-extensions` option was updated accordingly to show
these in a separate column.
arsenm pushed a commit that referenced this pull request Jun 27, 2024
#96768)

Reverts #95805 due to test failures caught by the
buildbots.
arsenm pushed a commit that referenced this pull request Jun 27, 2024
This introduces the new `--print-enabled-extensions` command line option
to AArch64, which prints the list of extensions that are enabled for the
target specified by the combination of `--target`/`-march`/`-mcpu`
values.

The goal of the this option is both to enable the manual inspection of
the enabled extensions by users and to enhance the testability of
architecture versions and CPU targets implemented in the compiler.

As part of this change, a new field for `FEAT_*` architecture feature
names was added to the TableGen entries. The output of the existing
`--print-supported-extensions` option was updated accordingly to show
these in a separate column.
arsenm pushed a commit that referenced this pull request Jun 27, 2024
#96768)

Reverts #95805 due to test failures caught by the
buildbots.
pratlucas added a commit that referenced this pull request Jun 28, 2024
…et" (#95805) (#96795)

This introduces the new `--print-enabled-extensions` command line option
to AArch64, which prints the list of extensions that are enabled for the
target specified by the combination of `--target`/`-march`/`-mcpu`
values.

The goal of the this option is both to enable the manual inspection of
the enabled extensions by users and to enhance the testability of
architecture versions and CPU targets implemented in the compiler.

As part of this change, a new field for `FEAT_*` architecture feature
names was added to the TableGen entries. The output of the existing
`--print-supported-extensions` option was updated accordingly to show
these in a separate column.
lravenclaw pushed a commit to lravenclaw/llvm-project that referenced this pull request Jul 3, 2024
…5805)

This introduces the new `--print-enabled-extensions` command line option
to AArch64, which prints the list of extensions that are enabled for the
target specified by the combination of `--target`/`-march`/`-mcpu`
values.

The goal of the this option is both to enable the manual inspection of
the enabled extensions by users and to enhance the testability of
architecture versions and CPU targets implemented in the compiler.

As part of this change, a new field for `FEAT_*` architecture feature
names was added to the TableGen entries. The output of the existing
`--print-supported-extensions` option was updated accordingly to show
these in a separate column.
lravenclaw pushed a commit to lravenclaw/llvm-project that referenced this pull request Jul 3, 2024
lravenclaw pushed a commit to lravenclaw/llvm-project that referenced this pull request Jul 3, 2024
…et" (llvm#95805) (llvm#96795)

This introduces the new `--print-enabled-extensions` command line option
to AArch64, which prints the list of extensions that are enabled for the
target specified by the combination of `--target`/`-march`/`-mcpu`
values.

The goal of the this option is both to enable the manual inspection of
the enabled extensions by users and to enhance the testability of
architecture versions and CPU targets implemented in the compiler.

As part of this change, a new field for `FEAT_*` architecture feature
names was added to the TableGen entries. The output of the existing
`--print-supported-extensions` option was updated accordingly to show
these in a separate column.
AlexisPerry pushed a commit to llvm-project-tlp/llvm-project that referenced this pull request Jul 9, 2024
…5805)

This introduces the new `--print-enabled-extensions` command line option
to AArch64, which prints the list of extensions that are enabled for the
target specified by the combination of `--target`/`-march`/`-mcpu`
values.

The goal of the this option is both to enable the manual inspection of
the enabled extensions by users and to enhance the testability of
architecture versions and CPU targets implemented in the compiler.

As part of this change, a new field for `FEAT_*` architecture feature
names was added to the TableGen entries. The output of the existing
`--print-supported-extensions` option was updated accordingly to show
these in a separate column.
AlexisPerry pushed a commit to llvm-project-tlp/llvm-project that referenced this pull request Jul 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:AArch64 clang:codegen IR generation bugs: mangling, exceptions, etc. clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' clang:frontend Language frontend issues, e.g. anything involving "Sema" clang Clang issues not falling into any other category mc Machine (object) code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants