Skip to content

Commit 4a691c6

Browse files
committed
Merging r316181:
------------------------------------------------------------------------ r316181 | jvesely | 2017-10-19 13:40:13 -0700 (Thu, 19 Oct 2017) | 4 lines AMDGPU: Parse r600 CPU name early and expose FMAF capability Improve amdgcn macro test Differential Revision: https://reviews.llvm.org/D38667 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@319032 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 64309d1 commit 4a691c6

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

lib/Basic/Targets.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2169,7 +2169,7 @@ class AMDGPUTargetInfo final : public TargetInfo {
21692169
public:
21702170
AMDGPUTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
21712171
: TargetInfo(Triple) ,
2172-
GPU(isAMDGCN(Triple) ? GK_GFX6 : GK_R600),
2172+
GPU(isAMDGCN(Triple) ? GK_GFX6 : parseR600Name(Opts.CPU)),
21732173
hasFP64(false),
21742174
hasFMAF(false),
21752175
hasLDEXPF(false),
@@ -2179,6 +2179,12 @@ class AMDGPUTargetInfo final : public TargetInfo {
21792179
hasFMAF = true;
21802180
hasLDEXPF = true;
21812181
}
2182+
if (getTriple().getArch() == llvm::Triple::r600) {
2183+
if (GPU == GK_EVERGREEN_DOUBLE_OPS || GPU == GK_CAYMAN) {
2184+
hasFMAF = true;
2185+
}
2186+
}
2187+
21822188
auto IsGenericZero = isGenericZero(Triple);
21832189
resetDataLayout(getTriple().getArch() == llvm::Triple::amdgcn ?
21842190
(IsGenericZero ? DataLayoutStringSIGenericIsZero :

test/Preprocessor/predefined-arch-macros.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2283,10 +2283,20 @@
22832283
// RUN: -target amdgcn-unknown-unknown \
22842284
// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_AMDGCN
22852285
// CHECK_AMDGCN: #define __AMDGCN__ 1
2286+
// CHECK_AMDGCN: #define __HAS_FMAF__ 1
2287+
// CHECK_AMDGCN: #define __HAS_FP64__ 1
2288+
// CHECK_AMDGCN: #define __HAS_LDEXPF__ 1
22862289

22872290
// Begin r600 tests ----------------
22882291
//
22892292
// RUN: %clang -march=amdgcn -E -dM %s -o - 2>&1 \
22902293
// RUN: -target r600-unknown-unknown \
22912294
// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_R600
22922295
// CHECK_R600: #define __R600__ 1
2296+
// CHECK_R600-NOT: #define __HAS_FMAF__ 1
2297+
2298+
// RUN: %clang -march=amdgcn -mcpu=cypress -E -dM %s -o - 2>&1 \
2299+
// RUN: -target r600-unknown-unknown \
2300+
// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_R600_FP64
2301+
// CHECK_R600_FP64-DAG: #define __R600__ 1
2302+
// CHECK_R600_FP64-DAG: #define __HAS_FMAF__ 1

0 commit comments

Comments
 (0)