From a0bff46edd445c4c2ef27e91fb8bd2eeaa519226 Mon Sep 17 00:00:00 2001 From: Ron Lieberman Date: Fri, 30 Apr 2021 06:24:15 -0500 Subject: [PATCH] [A+A] fix #2 swdev-283654 548.exchange2_r and 648.exchange2_s fail Need to inspect for -fveclib=AMDLIBM in both clang and lld paths to trigger closed opt. Change-Id: I479b2b85e62f16d4dea80b16ab6db9bd9de093a5 --- clang/lib/Driver/ToolChains/AmdOptArgs.cpp | 36 ++++++++++------------ clang/test/Driver/A+A.c | 2 ++ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/clang/lib/Driver/ToolChains/AmdOptArgs.cpp b/clang/lib/Driver/ToolChains/AmdOptArgs.cpp index dc145e65fa84e..ee99a69212ac7 100644 --- a/clang/lib/Driver/ToolChains/AmdOptArgs.cpp +++ b/clang/lib/Driver/ToolChains/AmdOptArgs.cpp @@ -116,28 +116,26 @@ static bool checkForPropOpts(const ToolChain &TC, const Driver &D, } if (Arg *A = Args.getLastArg(options::OPT_fveclib)) { - if (isLLD) { - StringRef Name = A->getValue(); - if ((Name == "Accelerate") || (Name == "none") || - (Name == "MASSV") || (Name == "SVML") || - (Name == "AMDLIBM")) + StringRef Name = A->getValue(); + if ((Name == "Accelerate") || (Name == "none") || + (Name == "MASSV") || (Name == "SVML") || + (Name == "AMDLIBM")) + addCmdArgs(Args, CmdArgs, isLLD, checkOnly, + Args.MakeArgString("-vector-library=" + Name)); + else if (( Name == "libmvec")) { + switch(TC.getTriple().getArch()) { + default: + break; + case llvm::Triple::x86_64: addCmdArgs(Args, CmdArgs, isLLD, checkOnly, - Args.MakeArgString("-vector-library=" + Name)); - else if (( Name == "libmvec")) { - switch(TC.getTriple().getArch()) { - default: - break; - case llvm::Triple::x86_64: - addCmdArgs(Args, CmdArgs, isLLD, checkOnly, - Args.MakeArgString("-vector-library=LIBMVEC-X86")); - break; - } - // fveclib supported prior to amd-opt, if its AMDLIBM then - // we want to trigger closed compiler, otherwise not. - if (Name == "AMDLIBM") - ClosedToolChainNeeded = true; + Args.MakeArgString("-vector-library=LIBMVEC-X86")); + break; } } + // fveclib supported prior to amd-opt, if its AMDLIBM then + // we want to trigger closed compiler, otherwise not. + if (Name == "AMDLIBM") + ClosedToolChainNeeded = true; } if (Arg *A = Args.getLastArg(options::OPT_fstruct_layout_EQ)) { diff --git a/clang/test/Driver/A+A.c b/clang/test/Driver/A+A.c index 8ec15b6edf256..a565bce6f028b 100644 --- a/clang/test/Driver/A+A.c +++ b/clang/test/Driver/A+A.c @@ -22,3 +22,5 @@ // RUN: %clang -famd-opt -O3 -### %s 2>&1 | FileCheck --check-prefix=CHECK-ALT-MISS %s // CHECK-ALT-MISS: warning: The [AMD] proprietary optimization compiler installation was not found +// RUN: %clang -fveclib=AMDLIBM -O3 -### %s 2>&1 | FileCheck --check-prefix=CHECK-VECLIB %s +// CHECK-VECLIB: warning: The [AMD] proprietary optimization compiler installation was not found