[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