diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -2075,9 +2075,10 @@ // Handle -mtune. - // Default to "generic" unless -march is present. + // Default to "generic" unless -march is present or targetting the PS4. std::string TuneCPU; - if (!Args.hasArg(clang::driver::options::OPT_march_EQ)) + if (!Args.hasArg(clang::driver::options::OPT_march_EQ) && + !getToolChain().getTriple().isPS4CPU()) TuneCPU = "generic"; // Override based on -mtune. diff --git a/clang/test/Driver/ps4-cpu-defaults.cpp b/clang/test/Driver/ps4-cpu-defaults.cpp --- a/clang/test/Driver/ps4-cpu-defaults.cpp +++ b/clang/test/Driver/ps4-cpu-defaults.cpp @@ -1,6 +1,7 @@ // Check that on the PS4 we default to: -// -target-cpu btver2 and no exceptions +// -target-cpu btver2, no exceptions and not -tune-cpu generic // RUN: %clang -target x86_64-scei-ps4 -c %s -### 2>&1 | FileCheck %s // CHECK: "-target-cpu" "btver2" // CHECK-NOT: exceptions +// CHECK-NOT: "-tune-cpu"