[llvm-branch-commits] [clang] clang/AMDGPU: Stop passing redundant -target-cpu to cc1 (PR #206483)

Matt Arsenault via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Jun 29 06:15:09 PDT 2026


https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/206483

Now that the exact target is encoded in the triple's subarch field,
-target-cpu is redundant. This avoids polluting the resultant IR with
unwanted "target-cpu" attributes. The net result is the desired codegen
when compiling libraries for a major subarch and linking it into a
program compiled for a specific arch. e.g., compiling for "gfx9-generic"
would pollute the IR with "target-cpu"="gfx9-generic", so codegen
would ultimately be performed for the generic target even after
linking into the concrete gfx9 cpu. The specialization will now be
achieved by merging the triples without the linker or optimization
passes needing to fixup function attributes.

>From 293811494a5ad81d70c24b85c9a98f6f9dd63132 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Fri, 12 Jun 2026 15:14:32 +0200
Subject: [PATCH] clang/AMDGPU: Stop passing redundant -target-cpu to cc1

Now that the exact target is encoded in the triple's subarch field,
-target-cpu is redundant. This avoids polluting the resultant IR with
unwanted "target-cpu" attributes. The net result is the desired codegen
when compiling libraries for a major subarch and linking it into a
program compiled for a specific arch. e.g., compiling for "gfx9-generic"
would pollute the IR with "target-cpu"="gfx9-generic", so codegen
would ultimately be performed for the generic target even after
linking into the concrete gfx9 cpu. The specialization will now be
achieved by merging the triples without the linker or optimization
passes needing to fixup function attributes.
---
 clang/lib/Basic/Targets/AMDGPU.cpp            |   1 +
 clang/lib/Driver/ToolChains/CommonArgs.cpp    |  30 +++--
 clang/test/CodeGenHIP/hip-cumode.hip          |   4 +-
 clang/test/Driver/amdgpu-hip-system-arch.c    |   2 +-
 clang/test/Driver/amdgpu-macros.cl            |   6 +-
 clang/test/Driver/amdgpu-mcpu.cl              | 124 +++++++++---------
 .../Driver/amdgpu-openmp-sanitize-options.c   |   4 +-
 clang/test/Driver/amdgpu-openmp-toolchain.c   |   6 +-
 .../test/Driver/amdgpu-xnack-sramecc-flags.c  |  20 +--
 .../Driver/cuda-flush-denormals-to-zero.cu    |  12 +-
 clang/test/Driver/hip-cuid-hash.hip           |   8 +-
 clang/test/Driver/hip-cuid.hip                |  12 +-
 clang/test/Driver/hip-default-gpu-arch.hip    |   2 +-
 clang/test/Driver/hip-device-compile.hip      |   2 -
 .../test/Driver/hip-gsplit-dwarf-options.hip  |   8 +-
 clang/test/Driver/hip-macros.hip              |   6 +-
 clang/test/Driver/hip-offload-arch.hip        |   8 +-
 clang/test/Driver/hip-rdc-device-only.hip     |  28 ++--
 clang/test/Driver/hip-sanitize-options.hip    |  52 ++++----
 clang/test/Driver/hip-save-temps.hip          |   8 +-
 clang/test/Driver/hip-target-id.hip           |  10 +-
 .../test/Driver/hip-toolchain-device-only.hip |   2 -
 clang/test/Driver/hip-toolchain-mllvm.hip     |   2 -
 clang/test/Driver/hip-toolchain-no-rdc.hip    |   6 +-
 .../Driver/hip-toolchain-rdc-separate.hip     |   4 -
 .../Driver/hip-toolchain-rdc-static-lib.hip   |   4 -
 clang/test/Driver/hip-toolchain-rdc.hip       |   4 -
 clang/test/Driver/hip-unbundle-preproc.hipi   |   4 +-
 clang/test/Driver/hip-wavefront-size.hip      |  10 +-
 clang/test/Driver/openmp-offload-infer.c      |   2 +-
 clang/test/Driver/openmp-system-arch.c        |   8 +-
 clang/test/Driver/target-id.cl                |   2 +-
 .../amdgpu-subarch-cc1-target-cpu.cl          |  24 ++++
 33 files changed, 214 insertions(+), 211 deletions(-)
 create mode 100644 clang/test/Preprocessor/amdgpu-subarch-cc1-target-cpu.cl

diff --git a/clang/lib/Basic/Targets/AMDGPU.cpp b/clang/lib/Basic/Targets/AMDGPU.cpp
index 67d8f65c2975d..ca1cb59f07a30 100644
--- a/clang/lib/Basic/Targets/AMDGPU.cpp
+++ b/clang/lib/Basic/Targets/AMDGPU.cpp
@@ -16,6 +16,7 @@
 #include "clang/Basic/LangOptions.h"
 #include "clang/Basic/MacroBuilder.h"
 #include "clang/Basic/TargetBuiltins.h"
+#include "clang/Basic/TargetID.h"
 #include "llvm/ADT/SmallString.h"
 #include "llvm/TargetParser/AMDGPUTargetParser.h"
 using namespace clang;
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 3855b4855555d..dff3a6dd1eb74 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -360,15 +360,15 @@ static void renderRemarksHotnessOptions(const ArgList &Args,
 }
 
 static bool shouldIgnoreUnsupportedTargetFeature(const Arg &TargetFeatureArg,
-                                                 llvm::Triple T,
-                                                 StringRef Processor) {
+                                                 const llvm::Triple &T) {
   // Warn no-cumode for AMDGCN processors not supporing WGP mode.
-  if (!T.isAMDGPU())
+  if (!T.isAMDGCN())
     return false;
-  auto GPUKind = T.isAMDGCN() ? llvm::AMDGPU::parseArchAMDGCN(Processor)
-                              : llvm::AMDGPU::parseArchR600(Processor);
-  auto GPUFeatures = T.isAMDGCN() ? llvm::AMDGPU::getArchAttrAMDGCN(GPUKind)
-                                  : llvm::AMDGPU::getArchAttrR600(GPUKind);
+
+  llvm::AMDGPU::GPUKind GK =
+      llvm::AMDGPU::getGPUKindFromSubArch(T.getSubArch());
+  unsigned GPUFeatures = llvm::AMDGPU::getArchAttrAMDGCN(GK);
+
   if (GPUFeatures & llvm::AMDGPU::FEATURE_WGP)
     return false;
   return TargetFeatureArg.getOption().matches(options::OPT_mno_cumode);
@@ -394,12 +394,11 @@ void tools::handleTargetFeaturesGroup(const Driver &D,
     assert(Name.starts_with("m") && "Invalid feature name.");
     Name = Name.substr(1);
 
-    auto Proc = getCPUName(D, Args, Triple);
-    if (shouldIgnoreUnsupportedTargetFeature(*A, Triple, Proc)) {
+    if (shouldIgnoreUnsupportedTargetFeature(*A, Triple)) {
       if (Warned.count(Name) == 0) {
         D.getDiags().Report(
             clang::diag::warn_drv_unsupported_option_for_processor)
-            << A->getAsString(Args) << Proc;
+            << A->getAsString(Args) << Triple.getArchName();
         Warned.insert(Name);
       }
       continue;
@@ -683,6 +682,17 @@ void tools::AddTargetFeature(const ArgList &Args,
 /// Get the (LLVM) name of the AMDGPU gpu we are targeting.
 static std::string getAMDGPUTargetGPU(const llvm::Triple &T,
                                       const ArgList &Args) {
+  // When the triple already encodes a specific subarch (e.g.
+  // amdgpu9.0a-amd-amdhsa), the processor is implied by the triple and there is
+  // no need to additionally pass -target-cpu. A major-family subarch (e.g.
+  // amdgpu9) is not specific enough, so fall through to -mcpu in that case.
+  if (T.isAMDGCN()) {
+    llvm::Triple::SubArchType SubArch = T.getSubArch();
+    if (SubArch != llvm::Triple::NoSubArch &&
+        SubArch != llvm::AMDGPU::getMajorSubArch(SubArch))
+      return "";
+  }
+
   if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) {
     auto GPUName = getProcessorFromTargetID(T, A->getValue());
     return llvm::StringSwitch<std::string>(GPUName)
diff --git a/clang/test/CodeGenHIP/hip-cumode.hip b/clang/test/CodeGenHIP/hip-cumode.hip
index 61fd53c644e8c..08287173cf6a1 100644
--- a/clang/test/CodeGenHIP/hip-cumode.hip
+++ b/clang/test/CodeGenHIP/hip-cumode.hip
@@ -5,7 +5,7 @@
 // RUN: %clang -S -o - --offload-arch=gfx906 --cuda-device-only -nogpuinc -nogpulib -mcumode \
 // RUN:   %s 2>&1 | FileCheck --check-prefix=NOWGP %s
 // RUN: %clang -S -o - --offload-arch=gfx906 --cuda-device-only -nogpuinc -nogpulib -mno-cumode \
-// RUN:   %s 2>&1 | FileCheck -DOFFLOAD_ARCH=gfx906 --check-prefixes=NOWGP,WARN-CUMODE %s
+// RUN:   %s 2>&1 | FileCheck -DOFFLOAD_ARCH=amdgpu9.06 --check-prefixes=NOWGP,WARN-CUMODE %s
 // RUN: %clang -S -o - --offload-arch=gfx1030 --cuda-device-only -nogpuinc -nogpulib \
 // RUN:   %s 2>&1 | FileCheck --check-prefix=CUMODE-OFF %s
 // RUN: %clang -S -o - --offload-arch=gfx1030 --cuda-device-only -nogpuinc -nogpulib -mcumode \
@@ -17,7 +17,7 @@
 // RUN: %clang -S -o - --offload-arch=gfx1250 --cuda-device-only -nogpuinc -nogpulib -mcumode \
 // RUN:   %s 2>&1 | FileCheck --check-prefix=NOWGP %s
 // RUN: %clang -S -o - --offload-arch=gfx1250 --cuda-device-only -nogpuinc -nogpulib -mno-cumode \
-// RUN:   %s 2>&1 | FileCheck -DOFFLOAD_ARCH=gfx1250 --check-prefixes=NOWGP,WARN-CUMODE %s
+// RUN:   %s 2>&1 | FileCheck -DOFFLOAD_ARCH=amdgpu12.50 --check-prefixes=NOWGP,WARN-CUMODE %s
 // WARN-CUMODE: warning: ignoring '-mno-cumode' option as it is not currently supported for processor '[[OFFLOAD_ARCH]]' [-Woption-ignored]
 // NOWGP-NOT: .amdhsa_workgroup_processor_mode
 // CUMODE-ON: .amdhsa_workgroup_processor_mode 0
diff --git a/clang/test/Driver/amdgpu-hip-system-arch.c b/clang/test/Driver/amdgpu-hip-system-arch.c
index a6e298cd37b20..eebedb520ab03 100644
--- a/clang/test/Driver/amdgpu-hip-system-arch.c
+++ b/clang/test/Driver/amdgpu-hip-system-arch.c
@@ -29,7 +29,7 @@
 // RUN:   | FileCheck %s --check-prefix=ARCH-GFX906
 // RUN:   %clang -### --target=x86_64-unknown-linux-gnu -nogpuinc -nogpulib --offload-new-driver --offload-arch=native --amdgpu-arch-tool=%t/amdgpu_arch_gfx906 -x hip %s 2>&1 \
 // RUN:   | FileCheck %s --check-prefix=ARCH-GFX906
-// ARCH-GFX906: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa"{{.*}}"-target-cpu" "gfx906"
+// ARCH-GFX906: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa"
 
 // case when CLANG_TOOLCHAIN_PROGRAM_TIMEOUT is malformed.
 // RUN: env CLANG_TOOLCHAIN_PROGRAM_TIMEOUT=foo \
diff --git a/clang/test/Driver/amdgpu-macros.cl b/clang/test/Driver/amdgpu-macros.cl
index f162b0cc541df..793922980639e 100644
--- a/clang/test/Driver/amdgpu-macros.cl
+++ b/clang/test/Driver/amdgpu-macros.cl
@@ -182,7 +182,7 @@
 // RUN: %clang -E -dM -target amdgcn -mcpu=gfx906 -mcumode \
 // RUN:   %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s
 // RUN: %clang -E -dM -target amdgcn -mcpu=gfx906 -mno-cumode \
-// RUN:   %s 2>&1 | FileCheck -DMCPU=gfx906 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
+// RUN:   %s 2>&1 | FileCheck -DMCPU=amdgpu9.06 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
 // RUN: %clang -E -dM -target amdgcn -mcpu=gfx1030 \
 // RUN:   %s 2>&1 | FileCheck --check-prefix=CUMODE-OFF %s
 // RUN: %clang -E -dM -target amdgcn -mcpu=gfx1030 -mcumode \
@@ -194,13 +194,13 @@
 // RUN: %clang -E -dM -target amdgcn -mcpu=gfx1250 -mcumode \
 // RUN:   %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s
 // RUN: %clang -E -dM -target amdgcn -mcpu=gfx1250 -mno-cumode \
-// RUN:   %s 2>&1 | FileCheck -DMCPU=gfx1250 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
+// RUN:   %s 2>&1 | FileCheck -DMCPU=amdgpu12.50 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
 // RUN: %clang -E -dM -target amdgcn -mcpu=gfx1251 \
 // RUN:   %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s
 // RUN: %clang -E -dM -target amdgcn -mcpu=gfx1251 -mcumode \
 // RUN:   %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s
 // RUN: %clang -E -dM -target amdgcn -mcpu=gfx1251 -mno-cumode \
-// RUN:   %s 2>&1 | FileCheck -DMCPU=gfx1251 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
+// RUN:   %s 2>&1 | FileCheck -DMCPU=amdgpu12.51 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
 // WARN-CUMODE-DAG: warning: ignoring '-mno-cumode' option as it is not currently supported for processor '[[MCPU]]' [-Woption-ignored]
 // CUMODE-ON-DAG: #define __AMDGCN_CUMODE__ 1
 // CUMODE-OFF-DAG: #define __AMDGCN_CUMODE__ 0
diff --git a/clang/test/Driver/amdgpu-mcpu.cl b/clang/test/Driver/amdgpu-mcpu.cl
index 931e08fcd9f01..7d9bd7ef546b7 100644
--- a/clang/test/Driver/amdgpu-mcpu.cl
+++ b/clang/test/Driver/amdgpu-mcpu.cl
@@ -133,66 +133,66 @@
 // RUN: %clang -### -target amdgcn -mcpu=gfx12-5-generic %s 2>&1 | FileCheck --check-prefix=GFX12_5_GENERIC %s
 // RUN: %clang -### -target amdgcn -mcpu=gfx13-generic %s 2>&1 | FileCheck --check-prefix=GFX13_GENERIC %s
 
-// GCNDEFAULT-NOT: -target-cpu
-// GFX600:    "-target-cpu" "gfx600"
-// GFX601:    "-target-cpu" "gfx601"
-// GFX602:    "-target-cpu" "gfx602"
-// GFX700:    "-target-cpu" "gfx700"
-// GFX701:    "-target-cpu" "gfx701"
-// GFX702:    "-target-cpu" "gfx702"
-// GFX703:    "-target-cpu" "gfx703"
-// GFX704:    "-target-cpu" "gfx704"
-// GFX705:    "-target-cpu" "gfx705"
-// GFX801:    "-target-cpu" "gfx801"
-// GFX802:    "-target-cpu" "gfx802"
-// GFX803:    "-target-cpu" "gfx803"
-// GFX805:    "-target-cpu" "gfx805"
-// GFX810:    "-target-cpu" "gfx810"
-// GFX900:    "-target-cpu" "gfx900"
-// GFX902:    "-target-cpu" "gfx902"
-// GFX904:    "-target-cpu" "gfx904"
-// GFX906:    "-target-cpu" "gfx906"
-// GFX908:    "-target-cpu" "gfx908"
-// GFX909:    "-target-cpu" "gfx909"
-// GFX90A:    "-target-cpu" "gfx90a"
-// GFX90C:    "-target-cpu" "gfx90c"
-// GFX942:    "-target-cpu" "gfx942"
-// GFX950:    "-target-cpu" "gfx950"
-// GFX1010:   "-target-cpu" "gfx1010"
-// GFX1011:   "-target-cpu" "gfx1011"
-// GFX1012:   "-target-cpu" "gfx1012"
-// GFX1013:   "-target-cpu" "gfx1013"
-// GFX1030:   "-target-cpu" "gfx1030"
-// GFX1031:   "-target-cpu" "gfx1031"
-// GFX1032:   "-target-cpu" "gfx1032"
-// GFX1033:   "-target-cpu" "gfx1033"
-// GFX1034:   "-target-cpu" "gfx1034"
-// GFX1035:   "-target-cpu" "gfx1035"
-// GFX1036:   "-target-cpu" "gfx1036"
-// GFX1100:   "-target-cpu" "gfx1100"
-// GFX1101:   "-target-cpu" "gfx1101"
-// GFX1102:   "-target-cpu" "gfx1102"
-// GFX1103:   "-target-cpu" "gfx1103"
-// GFX1150:   "-target-cpu" "gfx1150"
-// GFX1151:   "-target-cpu" "gfx1151"
-// GFX1152:   "-target-cpu" "gfx1152"
-// GFX1153:   "-target-cpu" "gfx1153"
-// GFX1154:   "-target-cpu" "gfx1154"
-// GFX1170:   "-target-cpu" "gfx1170"
-// GFX1171:   "-target-cpu" "gfx1171"
-// GFX1172:   "-target-cpu" "gfx1172"
-// GFX1200:   "-target-cpu" "gfx1200"
-// GFX1201:   "-target-cpu" "gfx1201"
-// GFX1250:   "-target-cpu" "gfx1250"
-// GFX1251:   "-target-cpu" "gfx1251"
-// GFX1310:   "-target-cpu" "gfx1310"
+// GCNDEFAULT: "-triple" "amdgpu--"
+// GFX600:    "-triple" "amdgpu6.00--"
+// GFX601:    "-triple" "amdgpu6.01--"
+// GFX602:    "-triple" "amdgpu6.02--"
+// GFX700:    "-triple" "amdgpu7.00--"
+// GFX701:    "-triple" "amdgpu7.01--"
+// GFX702:    "-triple" "amdgpu7.02--"
+// GFX703:    "-triple" "amdgpu7.03--"
+// GFX704:    "-triple" "amdgpu7.04--"
+// GFX705:    "-triple" "amdgpu7.05--"
+// GFX801:    "-triple" "amdgpu8.01--"
+// GFX802:    "-triple" "amdgpu8.02--"
+// GFX803:    "-triple" "amdgpu8.03--"
+// GFX805:    "-triple" "amdgpu8.05--"
+// GFX810:    "-triple" "amdgpu8.10--"
+// GFX900:    "-triple" "amdgpu9.00--"
+// GFX902:    "-triple" "amdgpu9.02--"
+// GFX904:    "-triple" "amdgpu9.04--"
+// GFX906:    "-triple" "amdgpu9.06--"
+// GFX908:    "-triple" "amdgpu9.08--"
+// GFX909:    "-triple" "amdgpu9.09--"
+// GFX90A:    "-triple" "amdgpu9.0a--"
+// GFX90C:    "-triple" "amdgpu9.0c--"
+// GFX942:    "-triple" "amdgpu9.42--"
+// GFX950:    "-triple" "amdgpu9.50--"
+// GFX1010:   "-triple" "amdgpu10.10--"
+// GFX1011:   "-triple" "amdgpu10.11--"
+// GFX1012:   "-triple" "amdgpu10.12--"
+// GFX1013:   "-triple" "amdgpu10.13--"
+// GFX1030:   "-triple" "amdgpu10.30--"
+// GFX1031:   "-triple" "amdgpu10.31--"
+// GFX1032:   "-triple" "amdgpu10.32--"
+// GFX1033:   "-triple" "amdgpu10.33--"
+// GFX1034:   "-triple" "amdgpu10.34--"
+// GFX1035:   "-triple" "amdgpu10.35--"
+// GFX1036:   "-triple" "amdgpu10.36--"
+// GFX1100:   "-triple" "amdgpu11.00--"
+// GFX1101:   "-triple" "amdgpu11.01--"
+// GFX1102:   "-triple" "amdgpu11.02--"
+// GFX1103:   "-triple" "amdgpu11.03--"
+// GFX1150:   "-triple" "amdgpu11.50--"
+// GFX1151:   "-triple" "amdgpu11.51--"
+// GFX1152:   "-triple" "amdgpu11.52--"
+// GFX1153:   "-triple" "amdgpu11.53--"
+// GFX1154:   "-triple" "amdgpu11.54--"
+// GFX1170:   "-triple" "amdgpu11.70--"
+// GFX1171:   "-triple" "amdgpu11.71--"
+// GFX1172:   "-triple" "amdgpu11.72--"
+// GFX1200:   "-triple" "amdgpu12.00--"
+// GFX1201:   "-triple" "amdgpu12.01--"
+// GFX1250:   "-triple" "amdgpu12.50--"
+// GFX1251:   "-triple" "amdgpu12.51--"
+// GFX1310:   "-triple" "amdgpu13.10--"
 
-// GFX9_GENERIC:      "-target-cpu" "gfx9-generic"
-// GFX9_4_GENERIC:    "-target-cpu" "gfx9-4-generic"
-// GFX10_1_GENERIC:   "-target-cpu" "gfx10-1-generic"
-// GFX10_3_GENERIC:   "-target-cpu" "gfx10-3-generic"
-// GFX11_GENERIC:     "-target-cpu" "gfx11-generic"
-// GFX11_7_GENERIC:   "-target-cpu" "gfx11-7-generic"
-// GFX12_GENERIC:     "-target-cpu" "gfx12-generic"
-// GFX12_5_GENERIC:   "-target-cpu" "gfx12-5-generic"
-// GFX13_GENERIC:     "-target-cpu" "gfx13-generic"
+// GFX9_GENERIC:      "-triple" "amdgpu9--"
+// GFX9_4_GENERIC:    "-triple" "amdgpu9.4--"
+// GFX10_1_GENERIC:   "-triple" "amdgpu10.1--"
+// GFX10_3_GENERIC:   "-triple" "amdgpu10.3--"
+// GFX11_GENERIC:     "-triple" "amdgpu11--"
+// GFX11_7_GENERIC:   "-triple" "amdgpu11.7--"
+// GFX12_GENERIC:     "-triple" "amdgpu12--"
+// GFX12_5_GENERIC:   "-triple" "amdgpu12.5--"
+// GFX13_GENERIC:     "-triple" "amdgpu13--"
diff --git a/clang/test/Driver/amdgpu-openmp-sanitize-options.c b/clang/test/Driver/amdgpu-openmp-sanitize-options.c
index 9d2d4a27bf334..052595a2132ec 100644
--- a/clang/test/Driver/amdgpu-openmp-sanitize-options.c
+++ b/clang/test/Driver/amdgpu-openmp-sanitize-options.c
@@ -104,8 +104,8 @@
 // HOSTSANCOMBINATION: {{"[^"]*clang[^"]*" "-cc1" "-triple" "x86_64-unknown-linux-gnu".* "-fopenmp".* "-fsanitize=address,fuzzer,fuzzer-no-link".* "--offload-targets=amdgpu-amd-amdhsa".* "-x" "c".*}}
 // HOSTSANCOMBINATION2: {{"[^"]*clang[^"]*" "-cc1" "-triple" "x86_64-unknown-linux-gnu".* "-fopenmp".* "-fsanitize=address,fuzzer,fuzzer-no-link,leak".* "--offload-targets=amdgpu-amd-amdhsa".* "-x" "c".*}}
 
-// GPUSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "amdgpu.+-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu".* "-emit-llvm-bc" "-flto=full" "-flto-unit".* "-mlink-bitcode-file" "[^"]*asanrtl.bc".* "-mlink-builtin-bitcode" "[^"]*ockl.bc".* "-target-cpu" "(gfx908|gfx900|gfx1250|gfx1251)".* "-fopenmp".* "-fsanitize=address".* "-x" "c".*}}
-// NOGPUSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "amdgpu.+-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu".* "-emit-llvm-bc" "-flto=full" "-flto-unit".* "-target-cpu" "(gfx908|gfx900)".* "-fopenmp".* "-x" "c".*}}
+// GPUSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "amdgpu.+-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu".* "-emit-llvm-bc" "-flto=full" "-flto-unit".* "-mlink-bitcode-file" "[^"]*asanrtl.bc".* "-mlink-builtin-bitcode" "[^"]*ockl.bc".* "-fopenmp".* "-fsanitize=address".* "-x" "c".*}}
+// NOGPUSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "amdgpu.+-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu".* "-emit-llvm-bc" "-flto=full" "-flto-unit".* "-fopenmp".* "-x" "c".*}}
 
 // SAN: {{"[^"]*llvm-offload-binary[^"]*" "-o".* "--image=file=.*.o,triple=amdgpu.*-amd-amdhsa,arch=(gfx908|gfx1250|gfx1251)(:xnack\-|:xnack\+)?,kind=openmp(,feature=(\-xnack|\+xnack))?"}}
 // SAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "x86_64-unknown-linux-gnu".* "-fopenmp".* "-fsanitize=address".* "--offload-targets=amdgpu-amd-amdhsa".* "-x" "ir".*}}
diff --git a/clang/test/Driver/amdgpu-openmp-toolchain.c b/clang/test/Driver/amdgpu-openmp-toolchain.c
index 2461587cbf5aa..207a357f5f6d0 100644
--- a/clang/test/Driver/amdgpu-openmp-toolchain.c
+++ b/clang/test/Driver/amdgpu-openmp-toolchain.c
@@ -7,7 +7,8 @@
 
 // verify the tools invocations
 // CHECK: "-cc1" "-triple" "x86_64-unknown-linux-gnu"{{.*}}"-emit-llvm-bc"{{.*}}"-x" "c"
-// CHECK: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"{{.*}}"-flto=full" "-flto-unit"{{.*}}"-target-cpu" "gfx906"
+// CHECK: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"{{.*}}"-flto=full" "-flto-unit"
+// CHECK-NOT: "-target-cpu"
 // CHECK: "-cc1" "-triple" "x86_64-unknown-linux-gnu"{{.*}}"-emit-obj"
 // CHECK: clang-linker-wrapper{{.*}}"--device-compiler=amdgpu-amd-amdhsa=-flto=full"{{.*}} "-o" "a.out"
 
@@ -63,7 +64,8 @@
 
 // RUN: %clang -### -target x86_64-pc-linux-gnu -fopenmp --offload-arch=gfx90a:sramecc-:xnack+ \
 // RUN:   -nogpulib %s 2>&1 | FileCheck %s --check-prefix=CHECK-TARGET-ID
-// CHECK-TARGET-ID: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa" {{.*}} "-target-cpu" "gfx90a" "-target-feature" "+xnack" "-target-feature" "-sramecc"
+// CHECK-TARGET-ID: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa" {{.*}} "-target-feature" "+xnack" "-target-feature" "-sramecc"
+// CHECK-TARGET-ID-NOT: "-target-cpu"
 // CHECK-TARGET-ID: llvm-offload-binary{{.*}}arch=gfx90a:sramecc-:xnack+,kind=openmp
 
 // RUN: not %clang -### -target x86_64-pc-linux-gnu -fopenmp --offload-arch=gfx90a,gfx90a:xnack+ \
diff --git a/clang/test/Driver/amdgpu-xnack-sramecc-flags.c b/clang/test/Driver/amdgpu-xnack-sramecc-flags.c
index 214ea6c46ef3d..364c3acdbfbc1 100644
--- a/clang/test/Driver/amdgpu-xnack-sramecc-flags.c
+++ b/clang/test/Driver/amdgpu-xnack-sramecc-flags.c
@@ -71,7 +71,7 @@
 // Test offload with target ID features synthesized from --offload-arch
 // RUN: %clang -### --target=x86_64-unknown-linux-gnu -fopenmp --offload-arch=gfx90a:xnack+:sramecc- \
 // RUN:   -nogpulib %s 2>&1 | FileCheck -check-prefix=OMP-TARGETID %s
-// OMP-TARGETID: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa" {{.*}} "-target-cpu" "gfx90a"
+// OMP-TARGETID: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa"
 // OMP-TARGETID-SAME: "-target-feature" "+xnack"
 // OMP-TARGETID-SAME: "-target-feature" "-sramecc"
 
@@ -79,7 +79,7 @@
 // RUN: %clang -### --target=x86_64-unknown-linux-gnu -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa \
 // RUN:   -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx908:xnack-:sramecc+ \
 // RUN:   -nogpulib %s 2>&1 | FileCheck -check-prefix=OMP-MARCH %s
-// OMP-MARCH: "-cc1" "-triple" "amdgpu9.08-amd-amdhsa" {{.*}} "-target-cpu" "gfx908"
+// OMP-MARCH: "-cc1" "-triple" "amdgpu9.08-amd-amdhsa"
 // OMP-MARCH-SAME: "-target-feature" "-xnack"
 // OMP-MARCH-SAME: "-target-feature" "+sramecc"
 
@@ -89,7 +89,7 @@
 // RUN:   -Xopenmp-target=amdgcn-amd-amdhsa -mxnack \
 // RUN:   -Xopenmp-target=amdgcn-amd-amdhsa -mno-sramecc \
 // RUN:   -nogpulib %s 2>&1 | FileCheck -check-prefix=OMP-FLAGS %s
-// OMP-FLAGS: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa" {{.*}} "-target-cpu" "gfx90a"
+// OMP-FLAGS: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa"
 // OMP-FLAGS-SAME: "-target-feature" "+xnack"
 // OMP-FLAGS-SAME: "-target-feature" "-sramecc"
 
@@ -98,7 +98,7 @@
 // RUN:   -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx90a:xnack- \
 // RUN:   -Xopenmp-target=amdgcn-amd-amdhsa -mxnack \
 // RUN:   -nogpulib %s 2>&1 | FileCheck -check-prefix=OMP-TARGETID-WINS %s
-// OMP-TARGETID-WINS: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa" {{.*}} "-target-cpu" "gfx90a"
+// OMP-TARGETID-WINS: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa"
 // OMP-TARGETID-WINS-SAME: "-target-feature" "-xnack"
 
 // Test offload using base architecture gfx90a with -mxnack flag for xnack+
@@ -106,7 +106,7 @@
 // RUN:   --offload-arch=gfx90a \
 // RUN:   -Xopenmp-target=amdgcn-amd-amdhsa -mxnack \
 // RUN:   -nogpulib %s 2>&1 | FileCheck -check-prefix=OMP-GFX90A-XNACK-ON %s
-// OMP-GFX90A-XNACK-ON: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa" {{.*}} "-target-cpu" "gfx90a"
+// OMP-GFX90A-XNACK-ON: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa"
 // OMP-GFX90A-XNACK-ON-SAME: "-target-feature" "+xnack"
 
 // Test offload using base architecture gfx90a with -mno-xnack flag for xnack-
@@ -114,7 +114,7 @@
 // RUN:   --offload-arch=gfx90a \
 // RUN:   -Xopenmp-target=amdgcn-amd-amdhsa -mno-xnack \
 // RUN:   -nogpulib %s 2>&1 | FileCheck -check-prefix=OMP-GFX90A-XNACK-OFF %s
-// OMP-GFX90A-XNACK-OFF: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa" {{.*}} "-target-cpu" "gfx90a"
+// OMP-GFX90A-XNACK-OFF: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa"
 // OMP-GFX90A-XNACK-OFF-SAME: "-target-feature" "-xnack"
 
 // Test offload with multiple device compilations for same base architecture.
@@ -123,9 +123,9 @@
 // RUN: %clang -### --target=x86_64-unknown-linux-gnu -fopenmp \
 // RUN:   --offload-arch=gfx90a:xnack+ --offload-arch=gfx90a:xnack- -mxnack \
 // RUN:   -nogpulib %s 2>&1 | FileCheck -check-prefix=OMP-MULTI-XNACK %s
-// OMP-MULTI-XNACK: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa" {{.*}} "-target-cpu" "gfx90a"
+// OMP-MULTI-XNACK: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa"
 // OMP-MULTI-XNACK-SAME: "-target-feature" "+xnack"
-// OMP-MULTI-XNACK: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa" {{.*}} "-target-cpu" "gfx90a"
+// OMP-MULTI-XNACK: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa"
 // OMP-MULTI-XNACK-SAME: "-target-feature" "-xnack"
 
 // Test that -Xopenmp-target flags apply to all targets with matching triple.
@@ -135,9 +135,9 @@
 // RUN:   --offload-arch=gfx906 --offload-arch=gfx90a \
 // RUN:   -Xopenmp-target=amdgcn-amd-amdhsa -mxnack \
 // RUN:   -nogpulib %s 2>&1 | FileCheck -check-prefix=OMP-MULTI-ARCH %s
-// OMP-MULTI-ARCH: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa" {{.*}} "-target-cpu" "gfx906"
+// OMP-MULTI-ARCH: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa"
 // OMP-MULTI-ARCH-SAME: "-target-feature" "+xnack"
-// OMP-MULTI-ARCH: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa" {{.*}} "-target-cpu" "gfx90a"
+// OMP-MULTI-ARCH: "-cc1" "-triple" "amdgpu9.0a-amd-amdhsa"
 // OMP-MULTI-ARCH-SAME: "-target-feature" "+xnack"
 
 // Test that top-level -mxnack flags (not specified to the device are ignored).
diff --git a/clang/test/Driver/cuda-flush-denormals-to-zero.cu b/clang/test/Driver/cuda-flush-denormals-to-zero.cu
index ea808f2302fbb..533a649763ab5 100644
--- a/clang/test/Driver/cuda-flush-denormals-to-zero.cu
+++ b/clang/test/Driver/cuda-flush-denormals-to-zero.cu
@@ -46,11 +46,11 @@
 // NOFTZ-NOT: "-fdenormal-fp-math-f32"
 
 // MIXED-DEFAULT-MODE-NOT: -denormal-fp-math
-// MIXED-DEFAULT-MODE: "-fdenormal-fp-math-f32=preserve-sign,preserve-sign"
-// MIXED-DEFAULT-MODE-SAME: "-target-cpu" "gfx803"
+// MIXED-DEFAULT-MODE: "-triple" "amdgpu8.03
+// MIXED-DEFAULT-MODE-SAME: "-fdenormal-fp-math-f32=preserve-sign,preserve-sign"
 // MIXED-DEFAULT-MODE-NOT: -denormal-fp-math
 
-// FTZX2: "-fdenormal-fp-math-f32=preserve-sign,preserve-sign"
-// FTZX2-SAME: "-target-cpu" "gfx803"
-// FTZX2: "-fdenormal-fp-math-f32=preserve-sign,preserve-sign"
-// FTZX2-SAME: "-target-cpu" "gfx900"
+// FTZX2: "-triple" "amdgpu8.03
+// FTZX2-SAME: "-fdenormal-fp-math-f32=preserve-sign,preserve-sign"
+// FTZX2: "-triple" "amdgpu9.00
+// FTZX2-SAME: "-fdenormal-fp-math-f32=preserve-sign,preserve-sign"
diff --git a/clang/test/Driver/hip-cuid-hash.hip b/clang/test/Driver/hip-cuid-hash.hip
index a4167d664537e..ecafc6c4d22c6 100644
--- a/clang/test/Driver/hip-cuid-hash.hip
+++ b/clang/test/Driver/hip-cuid-hash.hip
@@ -31,8 +31,8 @@
 
 // RUN: FileCheck %s -check-prefixes=DIFF -input-file %t.out
 
-// SAME: "-cc1"{{.*}} "-target-cpu" "gfx906" {{.*}}"-cuid=[[CUID:[0-9a-f]+]]"
-// SAME: "-cc1"{{.*}} "-target-cpu" "gfx906" {{.*}}"-cuid=[[CUID]]"
+// SAME: "-cc1"{{.*}} "-triple" "amdgpu9.06{{.*}}"-cuid=[[CUID:[0-9a-f]+]]"
+// SAME: "-cc1"{{.*}} "-triple" "amdgpu9.06{{.*}}"-cuid=[[CUID]]"
 
-// DIFF: "-cc1"{{.*}} "-target-cpu" "gfx906" {{.*}}"-cuid=[[CUID:[0-9a-f]+]]"
-// DIFF-NOT: "-target-cpu" "gfx906" {{.*}}"-cuid=[[CUID]]"
+// DIFF: "-cc1"{{.*}} "-triple" "amdgpu9.06{{.*}}"-cuid=[[CUID:[0-9a-f]+]]"
+// DIFF-NOT: "-triple" "amdgpu9.06{{.*}}"-cuid=[[CUID]]"
diff --git a/clang/test/Driver/hip-cuid.hip b/clang/test/Driver/hip-cuid.hip
index 858fc64a0328c..682420bb18156 100644
--- a/clang/test/Driver/hip-cuid.hip
+++ b/clang/test/Driver/hip-cuid.hip
@@ -99,18 +99,18 @@
 // RUN:   -c -nogpuinc -nogpulib \
 // RUN:   %S/Inputs/hip_multiple_inputs/a.cu \
 // RUN:   %S/Inputs/hip_multiple_inputs/b.hip \
-// RUN: 2>&1 | FileCheck -check-prefixes=COMMON,HEX %s
+// RUN: 2>&1 | FileCheck -check-prefixes=COMMON,NVPTX,HEX %s
 
 // INVALID: invalid value 'invalid' in '-fuse-cuid=invalid'
 
 // COMMON: "-cc1"{{.*}} "-triple" "[[TRIP0:(amdgpu9.00-amd-amdhsa|nvptx64-nvidia-cuda)]]"
-// COMMON-SAME: "-target-cpu" "[[G1:(gfx900|sm_60)]]"
+// NVPTX-SAME: "-target-cpu" "[[G1:sm_60]]"
 // HEX-SAME: "-cuid=[[CUID:[0-9a-f]+]]"
 // FIXED-SAME: "-cuid=[[CUID:xyz_123]]"
 // COMMON-SAME: "{{.*}}a.cu"
 
 // COMMON: "-cc1"{{.*}} "-triple" "[[TRIP1:(amdgpu9.06-amd-amdhsa|nvptx64-nvidia-cuda)]]"
-// COMMON-SAME: "-target-cpu" "[[G2:(gfx906|sm_70)]]"
+// NVPTX-SAME: "-target-cpu" "[[G2:sm_70]]"
 // COMMON-SAME: "-cuid=[[CUID]]"
 // COMMON-SAME: "{{.*}}a.cu"
 
@@ -119,14 +119,14 @@
 // COMMON-SAME: "{{.*}}a.cu"
 
 // COMMON: "-cc1"{{.*}} "-triple" "[[TRIP0]]"
-// COMMON-SAME: "-target-cpu" "[[G1]]"
+// NVPTX-SAME: "-target-cpu" "[[G1]]"
 // HEX-NOT: "-cuid=[[CUID]]"
 // HEX-SAME: "-cuid=[[CUID2:[0-9a-f]+]]"
 // FIXED-SAME: "-cuid=[[CUID2:xyz_123]]"
 // COMMON-SAME: "{{.*}}b.hip"
 
 // COMMON: "-cc1"{{.*}} "-triple" "[[TRIP1]]"
-// COMMON-SAME: "-target-cpu" "[[G2]]"
+// NVPTX-SAME: "-target-cpu" "[[G2]]"
 // HEX-NOT: "-cuid=[[CUID]]"
 // COMMON-SAME: "-cuid=[[CUID2]]"
 // COMMON-SAME: "{{.*}}b.hip"
@@ -145,11 +145,9 @@
 // HOST-SAME: "{{.*}}b.hip"
 
 // DEVICE: "-cc1"{{.*}} "-triple" "amdgpu9.00-amd-amdhsa"
-// DEVICE-SAME: "-target-cpu" "gfx900"
 // DEVICE-SAME: "-cuid=[[CUID:xyz_123]]"
 // DEVICE-SAME: "{{.*}}a.cu"
 
 // DEVICE: "-cc1"{{.*}} "-triple" "amdgpu9.00-amd-amdhsa"
-// DEVICE-SAME: "-target-cpu" "gfx900"
 // DEVICE-SAME: "-cuid=[[CUID]]"
 // DEVICE-SAME: "{{.*}}b.hip"
diff --git a/clang/test/Driver/hip-default-gpu-arch.hip b/clang/test/Driver/hip-default-gpu-arch.hip
index d55a3ea151f9a..ed0bb84839aa4 100644
--- a/clang/test/Driver/hip-default-gpu-arch.hip
+++ b/clang/test/Driver/hip-default-gpu-arch.hip
@@ -1,3 +1,3 @@
 // RUN: %clang -### -nogpulib -nogpuinc -c %s 2>&1 | FileCheck %s
 
-// CHECK: {{.*}}clang{{.*}}"-target-cpu" "gfx906"
+// CHECK: {{.*}}clang{{.*}}"-triple" "amdgpu9.06
diff --git a/clang/test/Driver/hip-device-compile.hip b/clang/test/Driver/hip-device-compile.hip
index dc21ba60869d3..1b3b38f962624 100644
--- a/clang/test/Driver/hip-device-compile.hip
+++ b/clang/test/Driver/hip-device-compile.hip
@@ -66,7 +66,6 @@
 // CHECK-SAME: "-main-file-name" "a.cu"
 // CHECK-SAME: "-fcuda-is-device"
 // CHECK-SAME: {{".*lib1.bc"}}
-// CHECK-SAME: "-target-cpu" "gfx900"
 // BC-SAME: "-o" "a.bc"
 // BCBUN-SAME: "-o" "{{.*}}.bc"
 // LL-SAME: "-o" "a.ll"
@@ -140,5 +139,4 @@
 // NOLTO: {{".*clang.*"}} "-cc1" "-triple" "amdgpu9.00-amd-amdhsa"
 // NOLTO-SAME: "-S"
 // NOLTO-NOT: "-flto
-// NOLTO-SAME: "-target-cpu" "gfx900"
 // NOLTO-SAME: "-o" "a-hip-amdgpu9.00-amd-amdhsa-gfx900.s"
diff --git a/clang/test/Driver/hip-gsplit-dwarf-options.hip b/clang/test/Driver/hip-gsplit-dwarf-options.hip
index 8215e8a330827..331acebc43618 100644
--- a/clang/test/Driver/hip-gsplit-dwarf-options.hip
+++ b/clang/test/Driver/hip-gsplit-dwarf-options.hip
@@ -20,10 +20,10 @@
 // RUN:   --offload-arch=gfx900 \
 // RUN:   -ggdb -gsplit-dwarf 2>&1 | FileCheck %s --check-prefix=LINK
 
-// CHECK-DAG: {{".*clang.*".* "-target-cpu" "gfx906".* "-split-dwarf-output" "hip-gsplit-dwarf-options_gfx906:xnack\+.dwo"}}
-// CHECK-DAG: {{".*clang.*".* "-target-cpu" "gfx900".* "-split-dwarf-output" "hip-gsplit-dwarf-options_gfx900.dwo"}}
+// CHECK-DAG: {{".*clang.*".* "-triple" "amdgpu9.06.* "-split-dwarf-output" "hip-gsplit-dwarf-options_gfx906:xnack\+.dwo"}}
+// CHECK-DAG: {{".*clang.*".* "-triple" "amdgpu9.00.* "-split-dwarf-output" "hip-gsplit-dwarf-options_gfx900.dwo"}}
 // CHECK-DAG: {{".*clang.*".* "-target-cpu" "x86-64".* "-split-dwarf-output" "hip-gsplit-dwarf-options.dwo"}}
 
-// LINK-DAG: {{".*clang.*".* "-target-cpu" "gfx906".* "-split-dwarf-output" "a-hip-gsplit-dwarf-options_gfx906:xnack\+.dwo"}}
-// LINK-DAG: {{".*clang.*".* "-target-cpu" "gfx900".* "-split-dwarf-output" "a-hip-gsplit-dwarf-options_gfx900.dwo"}}
+// LINK-DAG: {{".*clang.*".* "-triple" "amdgpu9.06.* "-split-dwarf-output" "a-hip-gsplit-dwarf-options_gfx906:xnack\+.dwo"}}
+// LINK-DAG: {{".*clang.*".* "-triple" "amdgpu9.00.* "-split-dwarf-output" "a-hip-gsplit-dwarf-options_gfx900.dwo"}}
 // LINK-DAG: {{".*clang.*".* "-target-cpu" "x86-64".* "-split-dwarf-output" "a-hip-gsplit-dwarf-options.dwo"}}
diff --git a/clang/test/Driver/hip-macros.hip b/clang/test/Driver/hip-macros.hip
index c9222ef82936c..a22338430e9a1 100644
--- a/clang/test/Driver/hip-macros.hip
+++ b/clang/test/Driver/hip-macros.hip
@@ -4,7 +4,7 @@
 // RUN: %clang -E -dM --offload-arch=gfx906 --cuda-device-only -nogpuinc -nogpulib -mcumode \
 // RUN:   %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s
 // RUN: %clang -E -dM --offload-arch=gfx906 --cuda-device-only -nogpuinc -nogpulib -mno-cumode \
-// RUN:   %s 2>&1 | FileCheck -DOFFLOAD_ARCH=gfx906 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
+// RUN:   %s 2>&1 | FileCheck -DOFFLOAD_ARCH=amdgpu9.06 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
 // RUN: %clang -E -dM --offload-arch=gfx1030 --cuda-device-only -nogpuinc -nogpulib \
 // RUN:   %s 2>&1 | FileCheck --check-prefix=CUMODE-OFF %s
 // RUN: %clang -E -dM --offload-arch=gfx1030 --cuda-device-only -nogpuinc -nogpulib -mcumode \
@@ -16,12 +16,12 @@
 // RUN: %clang -E -dM --offload-arch=gfx1250 --cuda-device-only -nogpuinc -nogpulib -mcumode \
 // RUN:   %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s
 // RUN: %clang -E -dM --offload-arch=gfx1250 --cuda-device-only -nogpuinc -nogpulib -mno-cumode \
-// RUN:   %s 2>&1 | FileCheck -DOFFLOAD_ARCH=gfx1250 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
+// RUN:   %s 2>&1 | FileCheck -DOFFLOAD_ARCH=amdgpu12.50 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
 
 // Check no duplicate warnings.
 // RUN: %clang -E -dM --offload-arch=gfx906 --cuda-device-only -nogpuinc -nogpulib -mcumode \
 // RUN:   -mno-cumode -mno-cumode \
-// RUN:   %s 2>&1 | FileCheck -DOFFLOAD_ARCH=gfx906 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
+// RUN:   %s 2>&1 | FileCheck -DOFFLOAD_ARCH=amdgpu9.06 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
 
 // WARN-CUMODE-DAG: warning: ignoring '-mno-cumode' option as it is not currently supported for processor '[[OFFLOAD_ARCH]]' [-Woption-ignored]
 // WARN-CUMODE-NOT: warning: ignoring '-mno-cumode' option as it is not currently supported for processor '[[OFFLOAD_ARCH]]' [-Woption-ignored]
diff --git a/clang/test/Driver/hip-offload-arch.hip b/clang/test/Driver/hip-offload-arch.hip
index a467d900aa564..20bbb9f973b1f 100644
--- a/clang/test/Driver/hip-offload-arch.hip
+++ b/clang/test/Driver/hip-offload-arch.hip
@@ -5,8 +5,8 @@
 // RUN:   %s 2>&1 | FileCheck %s
 
 
-// CHECK: "-cc1" "-triple" "amdgpu10.30-amd-amdhsa"{{.*}}"-target-cpu" "gfx1030"
-// CHECK: "-cc1" "-triple" "amdgpu10.31-amd-amdhsa"{{.*}}"-target-cpu" "gfx1031"
+// CHECK: "-cc1" "-triple" "amdgpu10.30-amd-amdhsa"
+// CHECK: "-cc1" "-triple" "amdgpu10.31-amd-amdhsa"
 
 // RUN: %clang -### --target=x86_64-linux-gnu --offload-targets=amdgpu9-amd-amdhsa \
 // RUN:   --offload-arch=gfx900 \
@@ -15,8 +15,8 @@
 // RUN:   %s 2>&1 | FileCheck -check-prefix=SUBARCH-TRIPLE %s
 
 // SUBARCH-TRIPLE-NOT: "-cc1"
-// SUBARCH-TRIPLE: "-cc1" "-triple" "amdgpu9.00-amd-amdhsa"{{.*}}"-target-cpu" "gfx900"
-// SUBARCH-TRIPLE-NEXT: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa"{{.*}}"-target-cpu" "gfx906"
+// SUBARCH-TRIPLE: "-cc1" "-triple" "amdgpu9.00-amd-amdhsa"
+// SUBARCH-TRIPLE-NEXT: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa"
 // SUBARCH-TRIPLE-NOT: "-cc1"
 // SUBARCH-TRIPLE: "-cc1" "-triple" "x86_64-unknown-linux-gnu"
 // SUBARCH-TRIPLE-NOT: "-cc1"
diff --git a/clang/test/Driver/hip-rdc-device-only.hip b/clang/test/Driver/hip-rdc-device-only.hip
index 921f1d3c8b4e7..ac137c0ca3ecf 100644
--- a/clang/test/Driver/hip-rdc-device-only.hip
+++ b/clang/test/Driver/hip-rdc-device-only.hip
@@ -68,7 +68,6 @@
 // COMMON-SAME: {{.*}} "-main-file-name" "a.cu"
 // COMMON-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fvisibility=hidden"
 // COMMON-SAME: "-fapply-global-visibility-to-externs"
-// COMMON-SAME: "-target-cpu" "gfx803"
 // COMMON-SAME: "-fgpu-rdc"
 // EMITBC-SAME: {{.*}} "-o" {{".*a.*\.(bc|o)"}} "-x" "hip"
 // EMITLL-SAME: {{.*}} "-o" {{".*a.*\.(s|ll)"}} "-x" "hip"
@@ -81,7 +80,6 @@
 // COMMON-SAME: {{.*}} "-main-file-name" "a.cu"
 // COMMON-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fvisibility=hidden"
 // COMMON-SAME: "-fapply-global-visibility-to-externs"
-// COMMON-SAME: "-target-cpu" "gfx900"
 // COMMON-SAME: "-fgpu-rdc"
 // EMITBC-SAME: {{.*}} "-o" {{".*a.*\.(bc|o)"}} "-x" "hip"
 // EMITLL-SAME: {{.*}} "-o" {{".*a.*\.(s|ll)"}} "-x" "hip"
@@ -98,7 +96,6 @@
 // COMMON-SAME: {{.*}} "-main-file-name" "b.hip"
 // COMMON-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fvisibility=hidden"
 // COMMON-SAME: "-fapply-global-visibility-to-externs"
-// COMMON-SAME: "-target-cpu" "gfx803"
 // COMMON-SAME: "-fgpu-rdc"
 // EMITBC-SAME: {{.*}} "-o" {{".*b.*\.(bc|o)"}} "-x" "hip"
 // EMITLL-SAME: {{.*}} "-o" {{".*b.*\.(s|ll)"}} "-x" "hip"
@@ -111,7 +108,6 @@
 // COMMON-SAME: {{.*}} "-main-file-name" "b.hip"
 // COMMON-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fvisibility=hidden"
 // COMMON-SAME: "-fapply-global-visibility-to-externs"
-// COMMON-SAME: "-target-cpu" "gfx900"
 // COMMON-SAME: "-fgpu-rdc"
 // EMITBC-SAME: {{.*}} "-o" {{".*b.*\.(bc|o)"}} "-x" "hip"
 // EMITLL-SAME: {{.*}} "-o" {{".*b.*\.(s|ll)"}} "-x" "hip"
@@ -123,28 +119,28 @@
 
 // SAVETEMP: [[CLANG:".*clang.*"]] "-cc1" "-triple" "amdgpu8.03-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // SAVETEMP-SAME: "-E"
-// SAVETEMP-SAME: {{.*}} "-main-file-name" "a.cu" {{.*}} "-target-cpu" "gfx803"
+// SAVETEMP-SAME: {{.*}} "-main-file-name" "a.cu"
 // SAVETEMP-SAME: {{.*}} "-o" [[A_GFX803_CUI:"a.*hipi"]] "-x" "hip" {{".*a.cu"}}
 // SAVETEMP-NEXT: [[CLANG]] "-cc1" "-triple" "amdgpu8.03-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // SAVETEMP-SAME: "-emit-llvm-bc"
-// SAVETEMP-SAME: {{.*}} "-main-file-name" "a.cu" {{.*}} "-target-cpu" "gfx803"
+// SAVETEMP-SAME: {{.*}} "-main-file-name" "a.cu"
 // SAVETEMP-SAME: {{.*}} "-o" [[A_GFX803_TMP_BC:"a.*tmp.bc"]] "-x" "hip-cpp-output" [[A_GFX803_CUI]]
 // SAVETEMP-NEXT: [[CLANG]] "-cc1" "-triple" "amdgpu8.03-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // SAVETEMP-SAME: "-emit-llvm"
-// SAVETEMP-SAME: {{.*}} "-main-file-name" "a.cu" {{.*}} "-target-cpu" "gfx803"
+// SAVETEMP-SAME: {{.*}} "-main-file-name" "a.cu"
 // SAVETEMP-SAME: {{.*}} "-o" {{"a.*\.s"}} "-x" "ir" [[A_GFX803_TMP_BC]]
 
 // SAVETEMP: [[CLANG]] "-cc1" "-triple" "amdgpu9.00-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // SAVETEMP-SAME: "-E"
-// SAVETEMP-SAME: {{.*}} "-main-file-name" "a.cu" {{.*}} "-target-cpu" "gfx900"
+// SAVETEMP-SAME: {{.*}} "-main-file-name" "a.cu"
 // SAVETEMP-SAME: {{.*}} "-o" [[A_GFX900_CUI:"a.*hipi"]] "-x" "hip" {{".*a.cu"}}
 // SAVETEMP-NEXT: [[CLANG]] "-cc1" "-triple" "amdgpu9.00-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // SAVETEMP-SAME: "-emit-llvm-bc"
-// SAVETEMP-SAME: {{.*}} "-main-file-name" "a.cu" {{.*}} "-target-cpu" "gfx900"
+// SAVETEMP-SAME: {{.*}} "-main-file-name" "a.cu"
 // SAVETEMP-SAME: {{.*}} "-o" [[A_GFX900_TMP_BC:"a.*tmp.bc"]] "-x" "hip-cpp-output" [[A_GFX900_CUI]]
 // SAVETEMP-NEXT: [[CLANG]] "-cc1" "-triple" "amdgpu9.00-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // SAVETEMP-SAME: "-emit-llvm"
-// SAVETEMP-SAME: {{.*}} "-main-file-name" "a.cu" {{.*}} "-target-cpu" "gfx900"
+// SAVETEMP-SAME: {{.*}} "-main-file-name" "a.cu"
 // SAVETEMP-SAME: {{.*}} "-o" {{"a.*\.s"}} "-x" "ir" [[A_GFX900_TMP_BC]]
 
 // SAVETEMP: "{{.*}}clang-offload-bundler" "-type=s"
@@ -153,28 +149,28 @@
 
 // SAVETEMP: [[CLANG]] "-cc1" "-triple" "amdgpu8.03-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // SAVETEMP-SAME: "-E"
-// SAVETEMP-SAME: {{.*}} "-main-file-name" "b.hip" {{.*}} "-target-cpu" "gfx803"
+// SAVETEMP-SAME: {{.*}} "-main-file-name" "b.hip"
 // SAVETEMP-SAME: {{.*}} "-o" [[B_GFX803_CUI:"b.*hipi"]] "-x" "hip" {{".*b.hip"}}
 // SAVETEMP-NEXT: [[CLANG]] "-cc1" "-triple" "amdgpu8.03-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // SAVETEMP-SAME: "-emit-llvm-bc"
-// SAVETEMP-SAME: {{.*}} "-main-file-name" "b.hip" {{.*}} "-target-cpu" "gfx803"
+// SAVETEMP-SAME: {{.*}} "-main-file-name" "b.hip"
 // SAVETEMP-SAME: {{.*}} "-o" [[B_GFX803_TMP_BC:"b.*tmp.bc"]] "-x" "hip-cpp-output" [[B_GFX803_CUI]]
 // SAVETEMP-NEXT: [[CLANG]] "-cc1" "-triple" "amdgpu8.03-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // SAVETEMP-SAME: "-emit-llvm"
-// SAVETEMP-SAME: {{.*}} "-main-file-name" "b.hip" {{.*}} "-target-cpu" "gfx803"
+// SAVETEMP-SAME: {{.*}} "-main-file-name" "b.hip"
 // SAVETEMP-SAME: {{.*}} "-o" {{"b.*\.s"}} "-x" "ir" [[B_GFX803_TMP_BC]]
 
 // SAVETEMP: [[CLANG]] "-cc1" "-triple" "amdgpu9.00-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // SAVETEMP-SAME: "-E"
-// SAVETEMP-SAME: {{.*}} "-main-file-name" "b.hip" {{.*}} "-target-cpu" "gfx900"
+// SAVETEMP-SAME: {{.*}} "-main-file-name" "b.hip"
 // SAVETEMP-SAME: {{.*}} "-o" [[B_GFX900_CUI:"b.*hipi"]] "-x" "hip" {{".*b.hip"}}
 // SAVETEMP-NEXT: [[CLANG]] "-cc1" "-triple" "amdgpu9.00-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // SAVETEMP-SAME: "-emit-llvm-bc"
-// SAVETEMP-SAME: {{.*}} "-main-file-name" "b.hip" {{.*}} "-target-cpu" "gfx900"
+// SAVETEMP-SAME: {{.*}} "-main-file-name" "b.hip"
 // SAVETEMP-SAME: {{.*}} "-o" [[B_GFX900_TMP_BC:"b.*tmp.bc"]] "-x" "hip-cpp-output" [[B_GFX900_CUI]]
 // SAVETEMP-NEXT: [[CLANG]] "-cc1" "-triple" "amdgpu9.00-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // SAVETEMP-SAME: "-emit-llvm"
-// SAVETEMP-SAME: {{.*}} "-main-file-name" "b.hip" {{.*}} "-target-cpu" "gfx900"
+// SAVETEMP-SAME: {{.*}} "-main-file-name" "b.hip"
 // SAVETEMP-SAME: {{.*}} "-o" {{"b.*\.s"}} "-x" "ir" [[B_GFX900_TMP_BC]]
 
 // SAVETEMP: "{{.*}}clang-offload-bundler" "-type=s"
diff --git a/clang/test/Driver/hip-sanitize-options.hip b/clang/test/Driver/hip-sanitize-options.hip
index 00f9f315cb0f7..a7313d4542406 100644
--- a/clang/test/Driver/hip-sanitize-options.hip
+++ b/clang/test/Driver/hip-sanitize-options.hip
@@ -118,41 +118,41 @@
 // XNACK: warning: ignoring 'leak' in '-fsanitize=leak' option as it is not currently supported for target 'amdgpu-amd-amdhsa'
 // XNACK: warning: ignoring '-fsanitize=address' option for offload arch 'gfx900:xnack-' as it is not currently supported there. Use it with an offload arch containing 'xnack+' instead
 // XNACK: warning: ignoring '-fsanitize=address' option for offload arch 'gfx906' as it is not currently supported there. Use it with an offload arch containing 'xnack+' instead
-// XNACK-DAG: {{"[^"]*clang[^"]*".* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-cpu" "gfx900".* "-target-feature" "\+xnack".* "-fsanitize=address"}}
-// XNACK-DAG: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx900".* "-target-feature" "-xnack"}}
-// XNACK-DAG: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx906"}}
+// XNACK-DAG: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-feature" "\+xnack".* "-fsanitize=address"}}
+// XNACK-DAG: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-target-feature" "-xnack"}}
+// XNACK-DAG: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.06}}
 // XNACK-DAG: {{"[^"]*clang[^"]*".* "-triple" "x86_64-unknown-linux-gnu".* "-fsanitize=address,leak"}}
-// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx900".* "-target-feature" "+xnack".* "-fsanitize=address,leak"}}
-// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx900".* "-target-feature" "-xnack".* "-fsanitize=address,leak"}}
-// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx906".* "-fsanitize=address,leak"}}
-// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx900".* "-target-feature" "-xnack".* "-fsanitize=address"}}
-// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx906".* "-fsanitize=address"}}
-// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-cpu" "gfx900".* "-target-feature" "-xnack"}}
-// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-cpu" "gfx906"}}
+// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-target-feature" "+xnack".* "-fsanitize=address,leak"}}
+// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-target-feature" "-xnack".* "-fsanitize=address,leak"}}
+// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.06.* "-fsanitize=address,leak"}}
+// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-target-feature" "-xnack".* "-fsanitize=address"}}
+// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.06.* "-fsanitize=address"}}
+// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-feature" "-xnack"}}
+// XNACKNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.06.* "-mlink-bitcode-file" ".*asanrtl.bc"}}
 // XNACKNEG-NOT: {{"[^"]*lld(\.exe){0,1}".* ".*hip.bc"}}
 
-// NOGPU-DAG: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx900".* "-target-feature" "\+xnack"}}
-// NOGPU-DAG: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx900".* "-target-feature" "-xnack"}}
-// NOGPU-DAG: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx906"}}
+// NOGPU-DAG: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-target-feature" "\+xnack"}}
+// NOGPU-DAG: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-target-feature" "-xnack"}}
+// NOGPU-DAG: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.06}}
 // NOGPU-DAG: {{"[^"]*clang[^"]*".* "-triple" "x86_64-unknown-linux-gnu".* "-fsanitize=address,leak"}}
 // NOGPUNEG-NOT: warning: ignoring '-fsanitize=leak' option as it is not currently supported for target 'amdgpu9-amd-amdhsa'
 // NOGPUNEG-NOT: warning: ignoring '-fsanitize=address' option for offload arch 'gfx900:xnack-' as it is not currently supported there. Use it with an offload arch containing 'xnack+' instead
 // NOGPUNEG-NOT: warning: ignoring '-fsanitize=address' option for offload arch 'gfx906' as it is not currently supported there. Use it with an offload arch containing 'xnack+' instead
-// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-cpu" "gfx900".* "-target-feature" "\+xnack".* "-fsanitize=address"}}
-// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx900".* "-target-feature" "\+xnack".* "-fsanitize=address,leak"}}
-// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx900".* "-target-feature" "-xnack".* "-fsanitize=address,leak"}}
-// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx906".* "-fsanitize=address,leak"}}
-// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx900".* "-target-feature" "\+xnack".* "-fsanitize=address"}}
-// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx900".* "-target-feature" "-xnack".* "-fsanitize=address"}}
-// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx906".* "-fsanitize=address"}}
-// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-cpu" "gfx900".* "-target-feature" "\+xnack"}}
-// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-cpu" "gfx900".* "-target-feature" "-xnack"}}
-// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-cpu" "gfx906"}}
+// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-feature" "\+xnack".* "-fsanitize=address"}}
+// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-target-feature" "\+xnack".* "-fsanitize=address,leak"}}
+// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-target-feature" "-xnack".* "-fsanitize=address,leak"}}
+// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.06.* "-fsanitize=address,leak"}}
+// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-target-feature" "\+xnack".* "-fsanitize=address"}}
+// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-target-feature" "-xnack".* "-fsanitize=address"}}
+// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.06.* "-fsanitize=address"}}
+// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-mlink-bitcode-file" ".*asanrtl.bc".* "-triple" "amdgpu9.00.* "-target-feature" "\+xnack"}}
+// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-feature" "-xnack"}}
+// NOGPUNEG-NOT: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.06.* "-mlink-bitcode-file" ".*asanrtl.bc"}}
 // NOGPUNEG-NOT: {{"[^"]*lld(\.exe){0,1}".* ".*hip.bc"}}
 
 // INVALIDCOMBINATION1-DAG: warning: ignoring 'fuzzer' in '-fsanitize=address,fuzzer' option as it is not currently supported for target 'amdgpu-amd-amdhsa' [-Woption-ignored]
 // INVALIDCOMBINATION2-DAG: warning: ignoring 'fuzzer' in '-fsanitize=fuzzer,address' option as it is not currently supported for target 'amdgpu-amd-amdhsa' [-Woption-ignored]
-// INVALIDCOMBINATION-DAG: {{"[^"]*clang[^"]*".* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-cpu" "gfx900".* "-target-feature" "\+xnack".* "-fsanitize=address"}}
+// INVALIDCOMBINATION-DAG: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-feature" "\+xnack".* "-fsanitize=address"}}
 // INVALIDCOMBINATION-DAG: {{"[^"]*clang[^"]*".* "-triple" "x86_64-unknown-linux-gnu".* "-fsanitize=address,fuzzer,fuzzer-no-link"}}
 
 // MULT1: warning: ignoring 'leak' in '-fsanitize=leak' option as it is not currently supported for target 'amdgpu-amd-amdhsa' [-Woption-ignored]
@@ -165,8 +165,8 @@
 // MULT2: warning: ignoring 'fuzzer' in '-fsanitize=fuzzer,address' option as it is not currently supported for target 'amdgpu-amd-amdhsa' [-Woption-ignored]
 // MULT2: warning: ignoring '-fsanitize=fuzzer,address' option for offload arch 'gfx908:xnack-' as it is not currently supported there. Use it with an offload arch containing 'xnack+' instead [-Woption-ignored]
 
-// XNACK2-DAG: {{"[^"]*clang[^"]*".* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-cpu" "gfx900".* "-target-feature" "\+xnack".* "-fsanitize=address"}}
-// XNACK2-DAG: {{"[^"]*clang[^"]*".* "-target-cpu" "gfx908"}}
+// XNACK2-DAG: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.00.* "-mlink-bitcode-file" ".*asanrtl.bc".* "-target-feature" "\+xnack".* "-fsanitize=address"}}
+// XNACK2-DAG: {{"[^"]*clang[^"]*".* "-triple" "amdgpu9.08}}
 // XNACK2-DAG: {{"[^"]*clang[^"]*".* "-triple" "x86_64-unknown-linux-gnu".* "-fsanitize=address,fuzzer,fuzzer-no-link,leak"}}
 
 // UNSUPPORTEDERROR: error: 'leak' in '-fsanitize=leak' option is not currently supported for target 'amdgpu-amd-amdhsa'
diff --git a/clang/test/Driver/hip-save-temps.hip b/clang/test/Driver/hip-save-temps.hip
index cddf8ef8c60cc..d2c83c6119533 100644
--- a/clang/test/Driver/hip-save-temps.hip
+++ b/clang/test/Driver/hip-save-temps.hip
@@ -35,11 +35,11 @@
 // RDCL: "{{.*clang.*}}" "-cc1as" {{.*}} "-o" "hip-save-temps-host-x86_64-unknown-linux-gnu.o"
 
 // device object paths
-// CHECK: {{".*clang.*"}} "-cc1" {{.*}} "-E" {{.*}} [[CPU:"-target-cpu" "gfx900"]] {{.*}}  "-o" "hip-save-temps-hip-amdgpu9.00-amd-amdhsa-gfx900.hipi"
-// NORDC: {{".*clang.*"}} "-cc1" {{.*}} "-emit-llvm-bc" {{.*}} [[CPU]] {{.*}} "-disable-llvm-passes" {{.*}} "-o" "hip-save-temps-hip-amdgpu9.00-amd-amdhsa-gfx900.bc"
-// RDC: {{".*clang.*"}} "-cc1" {{.*}} "-emit-llvm-bc" {{.*}} [[CPU]] {{.*}} "-disable-llvm-passes" {{.*}} "-o" "hip-save-temps-hip-amdgpu9.00-amd-amdhsa-gfx900.tmp.bc"
+// CHECK: {{".*clang.*"}} "-cc1" "-triple" "amdgpu9.00-amd-amdhsa" {{.*}} "-E" {{.*}} "-o" "hip-save-temps-hip-amdgpu9.00-amd-amdhsa-gfx900.hipi"
+// NORDC: {{".*clang.*"}} "-cc1" "-triple" "amdgpu9.00-amd-amdhsa" {{.*}} "-emit-llvm-bc" {{.*}} "-disable-llvm-passes" {{.*}} "-o" "hip-save-temps-hip-amdgpu9.00-amd-amdhsa-gfx900.bc"
+// RDC: {{".*clang.*"}} "-cc1" "-triple" "amdgpu9.00-amd-amdhsa" {{.*}} "-emit-llvm-bc" {{.*}} "-disable-llvm-passes" {{.*}} "-o" "hip-save-temps-hip-amdgpu9.00-amd-amdhsa-gfx900.tmp.bc"
 
-// RDC: {{".*clang.*"}} "-cc1" {{.*}} "-emit-llvm-bc" {{.*}} [[CPU]] {{.*}} "-o" "hip-save-temps-hip-amdgpu9.00-amd-amdhsa-gfx900.{{(bc|o)}}"
+// RDC: {{".*clang.*"}} "-cc1" "-triple" "amdgpu9.00-amd-amdhsa" {{.*}} "-emit-llvm-bc" {{.*}} "-o" "hip-save-temps-hip-amdgpu9.00-amd-amdhsa-gfx900.{{(bc|o)}}"
 // CHECK-NOT: "{{.*}}llvm-link"
 // CHECK-NOT: "{{.*}}opt"
 // CHECK-NOT: "{{.*}}llc"
diff --git a/clang/test/Driver/hip-target-id.hip b/clang/test/Driver/hip-target-id.hip
index bd602369ccca0..0a01ff382ee27 100644
--- a/clang/test/Driver/hip-target-id.hip
+++ b/clang/test/Driver/hip-target-id.hip
@@ -22,25 +22,17 @@
 // RUN:   %s 2>&1 | FileCheck --check-prefixes=CHECK %s
 
 // CHECK: [[CLANG:"[^"]*clang[^"]*"]] "-cc1" "-triple" "amdgpu9.08-amd-amdhsa"
-// CHECK-SAME: "-target-cpu" "gfx908"
 // CHECK-SAME: "-target-feature" "+xnack"
 // CHECK-SAME: "-target-feature" "+sramecc"
 
-// TMP: [[CLANG:"[^"]*clang[^"]*"]] "-cc1as" "-triple" "amdgcn-amd-amdhsa"
-// TMP-SAME: "-target-cpu" "gfx908"
-// TMP-SAME: "-target-feature" "+xnack"
-// TMP-SAME: "-target-feature" "+sramecc"
-
 // TMP: [[CLANG:"[^"]*clang[^"]*"]] "-cc1as" "-triple" "amdgpu9.08-amd-amdhsa"
-// TMP-SAME: "-target-cpu" "gfx908"
-// TMP-SAME: "-target-feature" "+sramecc"
 // TMP-SAME: "-target-feature" "+xnack"
+// TMP-SAME: "-target-feature" "+sramecc"
 
 // CHECK: [[LLD:"[^"]*lld[^"]*"]] {{.*}} "-plugin-opt=mcpu=gfx908"
 // CHECK-SAME: "-plugin-opt=-mattr=+xnack,+sramecc"
 
 // CHECK: [[CLANG]] "-cc1" "-triple" "amdgpu9.08-amd-amdhsa"
-// CHECK-SAME: "-target-cpu" "gfx908"
 // CHECK-SAME: "-target-feature" "+xnack"
 // CHECK-SAME: "-target-feature" "-sramecc"
 
diff --git a/clang/test/Driver/hip-toolchain-device-only.hip b/clang/test/Driver/hip-toolchain-device-only.hip
index 01ea00eef1f61..1ea127c2ca735 100644
--- a/clang/test/Driver/hip-toolchain-device-only.hip
+++ b/clang/test/Driver/hip-toolchain-device-only.hip
@@ -7,7 +7,6 @@
 
 // CHECK: [[CLANG:".*clang.*"]] "-cc1"{{.*}} "-triple" "amdgpu8.03-amd-amdhsa"
 // CHECK-SAME: "-fcuda-is-device"
-// CHECK-SAME: "-target-cpu" "gfx803"
 // CHECK-SAME: {{.*}} "-o" [[OBJ_DEV_A_803:".*o"]] "-x" "hip"
 
 // CHECK: [[LLD: ".*lld.*"]] "-flavor" "gnu" "-m" "elf64_amdgpu" "--no-undefined" "-shared"
@@ -16,7 +15,6 @@
 // CHECK: [[CLANG:".*clang.*"]] "-cc1"{{.*}} "-triple" "amdgpu9.00-amd-amdhsa"
 // CHECK-SAME: "-emit-llvm-bc"
 // CHECK-SAME: "-fcuda-is-device"
-// CHECK-SAME: "-target-cpu" "gfx900"
 // CHECK-SAME: {{.*}} "-o" [[OBJ_DEV_A_900:".*o"]] "-x" "hip"
 
 // CHECK: [[LLD]] "-flavor" "gnu" "-m" "elf64_amdgpu" "--no-undefined" "-shared"
diff --git a/clang/test/Driver/hip-toolchain-mllvm.hip b/clang/test/Driver/hip-toolchain-mllvm.hip
index 36c9a4774d5da..cf683adac0e24 100644
--- a/clang/test/Driver/hip-toolchain-mllvm.hip
+++ b/clang/test/Driver/hip-toolchain-mllvm.hip
@@ -28,12 +28,10 @@
 
 // CHECK: [[CLANG:".*clang.*"]] "-cc1" "-triple" "amdgpu8.03-amd-amdhsa"
 // CHECK-SAME: "-aux-triple" "x86_64-unknown-linux-gnu"
-// CHECK-SAME: {{.*}} "-target-cpu" "gfx803"
 // CHECK-SAME: {{.*}} "-mllvm" "-unroll-count=10" {{.*}}
 
 // CHECK: [[CLANG]] "-cc1" "-triple" "amdgpu9.00-amd-amdhsa"
 // CHECK-SAME: "-aux-triple" "x86_64-unknown-linux-gnu"
-// CHECK-SAME: {{.*}} "-target-cpu" "gfx900"
 // CHECK-SAME: {{.*}} "-mllvm" "-unroll-count=10" {{.*}}
 
 // NEG-NOT: {{".*opt"}}
diff --git a/clang/test/Driver/hip-toolchain-no-rdc.hip b/clang/test/Driver/hip-toolchain-no-rdc.hip
index 76bae3456e215..a053a4c5e9602 100644
--- a/clang/test/Driver/hip-toolchain-no-rdc.hip
+++ b/clang/test/Driver/hip-toolchain-no-rdc.hip
@@ -74,7 +74,6 @@
 // CHECK-SAME: "-fvisibility=hidden"
 // CHECK-SAME: "-fapply-global-visibility-to-externs"
 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
-// CHECK-SAME: "-target-cpu" "gfx803"
 // CHECK-SAME: {{.*}} "-o" "[[OBJ_DEV_A_803:.*(o|bc)]]" "-x" "hip"
 // CHECK-SAME: {{.*}} [[A_SRC:".*a.cu"]]
 
@@ -97,7 +96,6 @@
 // CHECK-SAME: "-fvisibility=hidden"
 // CHECK-SAME: "-fapply-global-visibility-to-externs"
 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
-// CHECK-SAME: "-target-cpu" "gfx900"
 // CHECK-SAME: {{.*}} "-o" "[[OBJ_DEV_A_900:.*(o|bc)]]" "-x" "hip"
 // CHECK-SAME: {{.*}} [[A_SRC]]
 
@@ -149,7 +147,6 @@
 // CHECK-SAME: "-fvisibility=hidden"
 // CHECK-SAME: "-fapply-global-visibility-to-externs"
 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
-// CHECK-SAME: "-target-cpu" "gfx803"
 // CHECK-SAME: {{.*}} "-o" "[[OBJ_DEV_B_803:.*(o|bc)]]" "-x" "hip"
 // CHECK-SAME: {{.*}} [[B_SRC:".*b.hip"]]
 
@@ -172,7 +169,6 @@
 // CHECK-SAME: "-fvisibility=hidden"
 // CHECK-SAME: "-fapply-global-visibility-to-externs"
 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
-// CHECK-SAME: "-target-cpu" "gfx900"
 // CHECK-SAME: {{.*}} "-o" "[[OBJ_DEV_B_900:.*(o|bc)]]" "-x" "hip"
 // CHECK-SAME: {{.*}} [[B_SRC]]
 
@@ -231,7 +227,7 @@
 // Check mixed AMDGCNSPIRV and concrete GPU arch.
 //
 
-// AMDGCNSPIRV: "-cc1" "-triple" "amdgpu9.00-amd-amdhsa" {{.*}}"-emit-obj" {{.*}} "-target-cpu" "gfx900"{{.*}} "-o" "[[GFX900_OBJ:.*o]]"
+// AMDGCNSPIRV: "-cc1" "-triple" "amdgpu9.00-amd-amdhsa" {{.*}}"-emit-obj" {{.*}} "-o" "[[GFX900_OBJ:.*o]]"
 // AMDGCNSPIRV: {{".*lld.*"}} {{.*}}"-plugin-opt=mcpu=gfx900" {{.*}} "-o" "[[GFX900_CO:.*out]]" {{.*}}"[[GFX900_OBJ]]"
 // AMDGCNSPIRV: "-cc1" "-triple" "spirv64-amd-amdhsa" {{.*}}"-emit-llvm-bc" {{.*}}"-flto=full"{{.*}} "-fembed-bitcode=marker" "-disable-llvm-passes" {{.*}} "-o" "[[AMDGCNSPV_BC:.*bc]]"
 // AMDGCNSPIRV: {{".*llvm-link.*"}} "-o" "[[AMDGCNSPV_TMP:.*bc]]" "[[AMDGCNSPV_BC]]"
diff --git a/clang/test/Driver/hip-toolchain-rdc-separate.hip b/clang/test/Driver/hip-toolchain-rdc-separate.hip
index 63399eb2f0c8f..49a2f11e12caf 100644
--- a/clang/test/Driver/hip-toolchain-rdc-separate.hip
+++ b/clang/test/Driver/hip-toolchain-rdc-separate.hip
@@ -17,7 +17,6 @@
 // CHECK-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fvisibility=hidden"
 // CHECK-SAME: "-fapply-global-visibility-to-externs"
 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
-// CHECK-SAME: "-target-cpu" "gfx803"
 // CHECK-SAME: "-fgpu-rdc"
 // CHECK-SAME: {{.*}} "-o" "[[A_BC1:.*o]]" "-x" "hip"
 // CHECK-SAME: {{.*}} [[A_SRC:".*a.cu"]]
@@ -29,7 +28,6 @@
 // CHECK-SAME: {{.*}} "-main-file-name" "a.cu"
 // CHECK-SAME: "-fcuda-is-device"
 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
-// CHECK-SAME: "-target-cpu" "gfx900"
 // CHECK-SAME: "-fgpu-rdc"
 // CHECK-SAME: {{.*}} "-o" "[[A_BC2:.*o]]" "-x" "hip"
 // CHECK-SAME: {{.*}} [[A_SRC]]
@@ -54,7 +52,6 @@
 // CHECK-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fvisibility=hidden"
 // CHECK-SAME: "-fapply-global-visibility-to-externs"
 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
-// CHECK-SAME: "-target-cpu" "gfx803"
 // CHECK-SAME: "-fgpu-rdc"
 // CHECK-SAME: {{.*}} "-o" "[[B_BC1:.*o]]" "-x" "hip"
 // CHECK-SAME: {{.*}} [[B_SRC:".*b.hip"]]
@@ -66,7 +63,6 @@
 // CHECK-SAME: {{.*}} "-main-file-name" "b.hip"
 // CHECK-SAME: "-fcuda-is-device"
 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
-// CHECK-SAME: "-target-cpu" "gfx900"
 // CHECK-SAME: "-fgpu-rdc"
 // CHECK-SAME: {{.*}} "-o" "[[B_BC2:.*o]]" "-x" "hip"
 // CHECK-SAME: {{.*}} [[B_SRC]]
diff --git a/clang/test/Driver/hip-toolchain-rdc-static-lib.hip b/clang/test/Driver/hip-toolchain-rdc-static-lib.hip
index 3aa6caf3b805a..c7435c0cb9015 100644
--- a/clang/test/Driver/hip-toolchain-rdc-static-lib.hip
+++ b/clang/test/Driver/hip-toolchain-rdc-static-lib.hip
@@ -31,7 +31,6 @@
 // CHECK-SAME: "-flto=full" "-flto-unit"
 // CHECK-SAME: {{.*}} "-main-file-name" "a.cu"
 // CHECK-SAME: "-fcuda-is-device"
-// CHECK-SAME: "-target-cpu" "gfx803"
 // CHECK-SAME: "-fgpu-rdc"
 // CHECK-SAME: {{.*}} "-o" [[A_BC1:".*o"]] "-x" "hip"
 // CHECK-SAME: {{.*}} [[A_SRC]]
@@ -42,7 +41,6 @@
 // CHECK-SAME: "-flto=full" "-flto-unit"
 // CHECK-SAME: {{.*}} "-main-file-name" "b.hip"
 // CHECK-SAME: "-fcuda-is-device"
-// CHECK-SAME: "-target-cpu" "gfx803"
 // CHECK-SAME: "-fgpu-rdc"
 // CHECK-SAME: {{.*}} "-o" [[B_BC1:".*o"]] "-x" "hip"
 // CHECK-SAME: {{.*}} [[B_SRC]]
@@ -62,7 +60,6 @@
 // CHECK-SAME: "-flto=full" "-flto-unit"
 // CHECK-SAME: {{.*}} "-main-file-name" "a.cu"
 // CHECK-SAME: "-fcuda-is-device"
-// CHECK-SAME: "-target-cpu" "gfx900"
 // CHECK-SAME: "-fgpu-rdc"
 // CHECK-SAME: {{.*}} "-o" [[A_BC2:".*o"]] "-x" "hip"
 // CHECK-SAME: {{.*}} [[A_SRC]]
@@ -73,7 +70,6 @@
 // CHECK-SAME: "-flto=full" "-flto-unit"
 // CHECK-SAME: {{.*}} "-main-file-name" "b.hip"
 // CHECK-SAME: "-fcuda-is-device"
-// CHECK-SAME: "-target-cpu" "gfx900"
 // CHECK-SAME: "-fgpu-rdc"
 // CHECK-SAME: {{.*}} "-o" [[B_BC2:".*o"]] "-x" "hip"
 // CHECK-SAME: {{.*}} [[B_SRC]]
diff --git a/clang/test/Driver/hip-toolchain-rdc.hip b/clang/test/Driver/hip-toolchain-rdc.hip
index 3c8d7922f3e7a..5a13995f60104 100644
--- a/clang/test/Driver/hip-toolchain-rdc.hip
+++ b/clang/test/Driver/hip-toolchain-rdc.hip
@@ -99,7 +99,6 @@
 // CHECK-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fvisibility=hidden"
 // CHECK-SAME: "-fapply-global-visibility-to-externs"
 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
-// CHECK-SAME: "-target-cpu" "gfx803"
 // CHECK-SAME: "-fgpu-rdc"
 // CHECK-SAME: {{.*}} "-o" [[A_BC1:".*o"]] "-x" "hip"
 // CHECK-SAME: {{.*}} [[A_SRC]]
@@ -112,7 +111,6 @@
 // CHECK-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fvisibility=hidden"
 // CHECK-SAME: "-fapply-global-visibility-to-externs"
 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
-// CHECK-SAME: "-target-cpu" "gfx803"
 // CHECK-SAME: "-fgpu-rdc"
 // CHECK-SAME: {{.*}} "-o" [[B_BC1:".*o"]] "-x" "hip"
 // CHECK-SAME: {{.*}} [[B_SRC]]
@@ -132,7 +130,6 @@
 // CHECK-SAME: {{.*}} "-main-file-name" "a.cu"
 // CHECK-SAME: "-fcuda-is-device"
 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
-// CHECK-SAME: "-target-cpu" "gfx900"
 // CHECK-SAME: {{.*}} "-o" [[A_BC2:".*o"]] "-x" "hip"
 // CHECK-SAME: {{.*}} [[A_SRC]]
 
@@ -143,7 +140,6 @@
 // CHECK-SAME: {{.*}} "-main-file-name" "b.hip"
 // CHECK-SAME: "-fcuda-is-device"
 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
-// CHECK-SAME: "-target-cpu" "gfx900"
 // CHECK-SAME: "-fgpu-rdc"
 // CHECK-SAME: {{.*}} "-o" [[B_BC2:".*o"]] "-x" "hip"
 // CHECK-SAME: {{.*}} [[B_SRC]]
diff --git a/clang/test/Driver/hip-unbundle-preproc.hipi b/clang/test/Driver/hip-unbundle-preproc.hipi
index 2cbc0db59062a..5b975b5f94dd3 100644
--- a/clang/test/Driver/hip-unbundle-preproc.hipi
+++ b/clang/test/Driver/hip-unbundle-preproc.hipi
@@ -7,7 +7,7 @@
 // RUN:   %s 2>&1 | FileCheck %s
 
 // CHECK: {{".*clang-offload-bundler.*"}} {{.*}}"-output=[[HOST_PP:.*hipi]]" "-output=[[DEV_PP:.*hipi]]" "-unbundle"
-// CHECK: {{".*clang.*"}} "-cc1" {{.*}}"-target-cpu" "gfx803" {{.*}}"-o" "[[DEV_O:[^"]*]]" {{.*}}"[[DEV_PP]]"
+// CHECK: {{".*clang.*"}} "-cc1" {{.*}}"-triple" "amdgpu8.03{{.*}}"-o" "[[DEV_O:[^"]*]]" {{.*}}"[[DEV_PP]]"
 // CHECK: {{".*lld.*"}} {{.*}}"-o" "[[DEV_ISA:.*]]" "[[DEV_O]]"
 // CHECK: {{".*clang-offload-bundler.*"}} {{.*}}"-input={{.*}}" "-input=[[DEV_ISA]]" "-output=[[FATBIN:.*]]"
 // CHECK: {{".*clang.*"}} {{.*}}"-triple" "x86_64-unknown-linux-gnu"{{.*}} "-fcuda-include-gpubinary" "[[FATBIN]]" {{.*}}"-o" "[[HOST_O:.*o]]" {{.*}}"[[HOST_PP]]"
@@ -20,7 +20,7 @@
 // RDC: {{".*clang-offload-bundler.*"}} {{.*}}"-output=[[HOST_PP:.*hipi]]" "-output=[[DEV_PP:.*hipi]]" "-unbundle"
 // RDC: {{".*clang.*"}} {{.*}}"-triple" "x86_64-unknown-linux-gnu"{{.*}} "-o" "[[HOST_O:.*o]]" {{.*}}"[[HOST_PP]]"
 // RDC: {{".*clang-offload-bundler.*"}} {{.*}}"-output=[[HOST_PP:.*hipi]]" "-output=[[DEV_PP:.*hipi]]" "-unbundle"
-// RDC: {{".*clang.*"}} "-cc1" {{.*}}"-target-cpu" "gfx803" {{.*}}"-o" "[[DEV_BC:[^"]*]]" {{.*}}"[[DEV_PP]]"
+// RDC: {{".*clang.*"}} "-cc1" {{.*}}"-triple" "amdgpu8.03{{.*}}"-o" "[[DEV_BC:[^"]*]]" {{.*}}"[[DEV_PP]]"
 // RDC: {{".*lld.*"}} {{.*}}"-o" "[[DEV_ISA:.*]]" "[[DEV_BC]]"
 // RDC: {{".*clang-offload-bundler.*"}} {{.*}}"-input={{.*}}" "-input=[[DEV_ISA]]" "-output=[[FATBIN:.*]]"
 // RDC: {{".*clang.*"}} "-o" "[[FATBIN_O:.*o]]"
diff --git a/clang/test/Driver/hip-wavefront-size.hip b/clang/test/Driver/hip-wavefront-size.hip
index 2d64ca15b7446..44d4fdacfe8c2 100644
--- a/clang/test/Driver/hip-wavefront-size.hip
+++ b/clang/test/Driver/hip-wavefront-size.hip
@@ -2,18 +2,20 @@
 // RUN:   --cuda-gpu-arch=gfx900 \
 // RUN:   --rocm-path=%S/Inputs/rocm --cuda-device-only %s \
 // RUN:   2>&1 | FileCheck %s --check-prefixes=WAVE64
-// WAVE64: "-mlink-builtin-bitcode" "{{.*}}oclc_wavefrontsize64_on.bc"{{.*}} "-target-cpu" "gfx900"
+// WAVE64: "-cc1" "-triple" "amdgpu9.00-amd-amdhsa"
+// WAVE64-SAME: "-mlink-builtin-bitcode" "{{.*}}oclc_wavefrontsize64_on.bc"
 
 // RUN: %clang -### --target=x86_64-linux-gnu \
 // RUN:   --cuda-gpu-arch=gfx1010 \
 // RUN:   --rocm-path=%S/Inputs/rocm --cuda-device-only %s \
 // RUN:   2>&1 | FileCheck %s --check-prefixes=WAVE32
-// WAVE32: "-mlink-builtin-bitcode" "{{.*}}oclc_wavefrontsize64_off.bc"{{.*}} "-target-cpu" "gfx1010"
+// WAVE32: "-cc1" "-triple" "amdgpu10.10-amd-amdhsa"
+// WAVE32-SAME: "-mlink-builtin-bitcode" "{{.*}}oclc_wavefrontsize64_off.bc"
 
 // RUN: %clang -### --target=x86_64-linux-gnu \
 // RUN:   --cuda-gpu-arch=gfx1010 \
 // RUN:   --cuda-gpu-arch=gfx900 \
 // RUN:   --rocm-path=%S/Inputs/rocm --cuda-device-only %s \
 // RUN:   2>&1 | FileCheck %s --check-prefixes=BOTH
-// BOTH-DAG: "-mlink-builtin-bitcode" "{{.*}}oclc_wavefrontsize64_on.bc"{{.*}} "-target-cpu" "gfx900"
-// BOTH-DAG: "-mlink-builtin-bitcode" "{{.*}}oclc_wavefrontsize64_off.bc"{{.*}} "-target-cpu" "gfx1010"
+// BOTH-DAG: "-triple" "amdgpu9.00-amd-amdhsa"{{.*}}"-mlink-builtin-bitcode" "{{.*}}oclc_wavefrontsize64_on.bc"
+// BOTH-DAG: "-triple" "amdgpu10.10-amd-amdhsa"{{.*}}"-mlink-builtin-bitcode" "{{.*}}oclc_wavefrontsize64_off.bc"
diff --git a/clang/test/Driver/openmp-offload-infer.c b/clang/test/Driver/openmp-offload-infer.c
index 336a7db59e10c..69684780d0f78 100644
--- a/clang/test/Driver/openmp-offload-infer.c
+++ b/clang/test/Driver/openmp-offload-infer.c
@@ -6,7 +6,7 @@
 
 // verify the tools invocations
 // CHECK: "-cc1" "-triple" "x86_64-unknown-linux-gnu"{{.*}}"-emit-llvm-bc"{{.*}}"-x" "c"
-// CHECK: "-cc1" "-triple" "amdgpu8.03-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"{{.*}}"-target-cpu" "gfx803"
+// CHECK: "-cc1" "-triple" "amdgpu8.03-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu"
 // CHECK: "-cc1" "-triple" "nvptx64-nvidia-cuda" "-aux-triple" "x86_64-unknown-linux-gnu"{{.*}}"-target-cpu" "sm_52"
 // CHECK: "-cc1" "-triple" "x86_64-unknown-linux-gnu"{{.*}}"-emit-obj"
 // CHECK: clang-linker-wrapper{{.*}} "-o" "a.out"
diff --git a/clang/test/Driver/openmp-system-arch.c b/clang/test/Driver/openmp-system-arch.c
index 6dd1776e2f851..464d93dfa9489 100644
--- a/clang/test/Driver/openmp-system-arch.c
+++ b/clang/test/Driver/openmp-system-arch.c
@@ -34,7 +34,7 @@
 // RUN:   %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -fopenmp=libomp -fopenmp-targets=amdgcn-amd-amdhsa \
 // RUN:     --nvptx-arch-tool=%t/nvptx_arch_fail --amdgpu-arch-tool=%t/amdgpu_arch_gfx906 %s 2>&1 \
 // RUN:   | FileCheck %s --check-prefix=ARCH-GFX906
-// ARCH-GFX906: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa"{{.*}}"-target-cpu" "gfx906"
+// ARCH-GFX906: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa"{{.*}}
 
 // case when nvptx-arch succeeds.
 // RUN:   %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -fopenmp=libomp --offload-arch=native \
@@ -49,15 +49,15 @@
 // RUN:   %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -fopenmp=libomp --offload-arch=native \
 // RUN:     --offload-arch-tool=%t/offload_arch_sm_70_gfx906 %s 2>&1 \
 // RUN:   | FileCheck %s --check-prefix=ARCH-SM_70-GFX906
-// ARCH-SM_70-GFX906: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa"{{.*}}"-target-cpu" "gfx906"
+// ARCH-SM_70-GFX906: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa"{{.*}}
 // ARCH-SM_70-GFX906: "-cc1" "-triple" "nvptx64-nvidia-cuda"{{.*}}"-target-cpu" "sm_70"
 
 // case when both nvptx-arch and amdgpu-arch succeed with other archs.
 // RUN:   %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -fopenmp=libomp --offload-arch=native,sm_75,gfx1030 \
 // RUN:     --offload-arch-tool=%t/offload_arch_sm_70_gfx906 %s 2>&1 \
 // RUN:   | FileCheck %s --check-prefix=ARCH-MULTIPLE
-// ARCH-MULTIPLE: "-cc1" "-triple" "amdgpu10.30-amd-amdhsa"{{.*}}"-target-cpu" "gfx1030"
-// ARCH-MULTIPLE: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa"{{.*}}"-target-cpu" "gfx906"
+// ARCH-MULTIPLE: "-cc1" "-triple" "amdgpu10.30-amd-amdhsa"{{.*}}
+// ARCH-MULTIPLE: "-cc1" "-triple" "amdgpu9.06-amd-amdhsa"{{.*}}
 // ARCH-MULTIPLE: "-cc1" "-triple" "nvptx64-nvidia-cuda"{{.*}}"-target-cpu" "sm_70"
 // ARCH-MULTIPLE: "-cc1" "-triple" "nvptx64-nvidia-cuda"{{.*}}"-target-cpu" "sm_75"
 
diff --git a/clang/test/Driver/target-id.cl b/clang/test/Driver/target-id.cl
index 685d5f8665b63..727706c05be78 100644
--- a/clang/test/Driver/target-id.cl
+++ b/clang/test/Driver/target-id.cl
@@ -21,7 +21,7 @@
 // RUN: %clang -### -target amdgcn-amd-amdhsa \
 // RUN:   -nostdlib %s 2>&1 | FileCheck -check-prefix=NONE %s
 
-// CHECK: "-target-cpu" "gfx908"
+// CHECK: "-triple" "amdgpu9.08
 // CHECK-SAME: "-target-feature" "+xnack"
 // CHECK-SAME: "-target-feature" "-sramecc"
 
diff --git a/clang/test/Preprocessor/amdgpu-subarch-cc1-target-cpu.cl b/clang/test/Preprocessor/amdgpu-subarch-cc1-target-cpu.cl
new file mode 100644
index 0000000000000..7008e53a34c6a
--- /dev/null
+++ b/clang/test/Preprocessor/amdgpu-subarch-cc1-target-cpu.cl
@@ -0,0 +1,24 @@
+// Test the behavior of -target-cpu for cc1 with amdgpu subarches. -target-cpu
+// usage is an edge case, typical invocations should use a subarch in the triple
+// and omit the -target-cpu argument. If -target-cpu is used, it should still be
+// respected (particularly in the case where the triple is a major subarch
+// covering the -target-cpu).
+
+// Specific subarch, no -target-cpu: GPU implied by the subarch.
+// RUN: %clang_cc1 -triple amdgpu9.0a-amd-amdhsa -E -dM %s 2>&1 | \
+// RUN:   FileCheck --check-prefix=GFX90A %s
+// GFX90A-DAG: #define __amdgcn_processor__ "gfx90a"
+// GFX90A-DAG: #define __gfx90a__ 1
+// GFX90A-DAG: #define __GFX9__ 1
+
+// Generic-family subarch, no -target-cpu: GPU is the generic target.
+// RUN: %clang_cc1 -triple amdgpu9-amd-amdhsa -E -dM %s 2>&1 | \
+// RUN:   FileCheck --check-prefix=GFX9-GENERIC %s
+// GFX9-GENERIC-DAG: #define __amdgcn_processor__ "gfx9_generic"
+// GFX9-GENERIC-DAG: #define __gfx9_generic__ 1
+
+// An explicit -target-cpu overrides the subarch (manual cc1 invocation).
+// RUN: %clang_cc1 -triple amdgpu9-amd-amdhsa -target-cpu gfx900 -E -dM %s 2>&1 | \
+// RUN:   FileCheck --check-prefix=OVERRIDE %s
+// OVERRIDE-DAG: #define __amdgcn_processor__ "gfx900"
+// OVERRIDE-DAG: #define __gfx900__ 1



More information about the llvm-branch-commits mailing list