diff options
author | Silviu Baranga <silviu.baranga@arm.com> | 2016-04-28 11:29:08 +0000 |
---|---|---|
committer | Silviu Baranga <silviu.baranga@arm.com> | 2016-04-28 11:29:08 +0000 |
commit | 632fdc5919d9738a1174a347deef377dbe18f51b (patch) | |
tree | 9df9f69f173045b1fdf6eee4f2a1bde6df767b96 /clang/lib/Basic/Targets.cpp | |
parent | 3a45fab72b0ebc51fe1ce38392be29aaf29603e4 (diff) | |
download | bcm5719-llvm-632fdc5919d9738a1174a347deef377dbe18f51b.tar.gz bcm5719-llvm-632fdc5919d9738a1174a347deef377dbe18f51b.zip |
PR27216: Only define __ARM_FEATURE_FMA when the target has VFPv4
Summary:
According to the ACLE spec, "__ARM_FEATURE_FMA is defined to 1 if
the hardware floating-point architecture supports fused floating-point
multiply-accumulate".
This changes clang's behaviour from emitting this macro for v7-A and v7-R
cores to only emitting it when the target has VFPv4 (and therefore support
for the floating point multiply-accumulate instruction).
Fixes PR27216
Reviewers: t.p.northover, rengolin
Subscribers: aemerson, rengolin, cfe-commits
Differential Revision: http://reviews.llvm.org/D18963
llvm-svn: 267869
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 98827b89a15..4e516513b34 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -4931,7 +4931,7 @@ public: Builder.defineMacro("__ARM_FP16_ARGS", "1"); // ACLE 6.5.3 Fused multiply-accumulate (FMA) - if (ArchVersion >= 7 && (CPUProfile != "M" || CPUAttr == "7EM")) + if (ArchVersion >= 7 && (FPU & VFP4FPU)) Builder.defineMacro("__ARM_FEATURE_FMA", "1"); // Subtarget options. |