summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorAbderrazek Zaafrani <a.zaafrani@samsung.com>2017-06-01 23:22:29 +0000
committerAbderrazek Zaafrani <a.zaafrani@samsung.com>2017-06-01 23:22:29 +0000
commita44e5f601d4235f8b2ab999dc3a9cc58585404a3 (patch)
tree1ded008db17950a7be93919ca9f86fa6c2aac829 /clang/lib/Basic/Targets.cpp
parent4e912aa5af44b3f3024cfcb4a3bfb932c49fc225 (diff)
downloadbcm5719-llvm-a44e5f601d4235f8b2ab999dc3a9cc58585404a3.tar.gz
bcm5719-llvm-a44e5f601d4235f8b2ab999dc3a9cc58585404a3.zip
[AArch64] Add ARMv8.2-A FP16 vefctor intrinsics
llvm-svn: 304493
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r--clang/lib/Basic/Targets.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 605f73802af..6fbbdbf19b1 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -6151,6 +6151,8 @@ class AArch64TargetInfo : public TargetInfo {
unsigned Crypto;
unsigned Unaligned;
unsigned V8_1A;
+ unsigned V8_2A;
+ unsigned HasFP16;
static const Builtin::Info BuiltinInfo[];
@@ -6282,6 +6284,8 @@ public:
if (V8_1A)
Builder.defineMacro("__ARM_FEATURE_QRDMX", "1");
+ if (V8_2A && FPU == NeonMode && HasFP16)
+ Builder.defineMacro("__ARM_FEATURE_FP16_VECTOR_ARITHMETIC", "1");
// All of the __sync_(bool|val)_compare_and_swap_(1|2|4|8) builtins work.
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");
@@ -6309,6 +6313,8 @@ public:
Crypto = 0;
Unaligned = 1;
V8_1A = 0;
+ V8_2A = 0;
+ HasFP16 = 0;
for (const auto &Feature : Features) {
if (Feature == "+neon")
@@ -6321,6 +6327,10 @@ public:
Unaligned = 0;
if (Feature == "+v8.1a")
V8_1A = 1;
+ if (Feature == "+v8.2a")
+ V8_2A = 1;
+ if (Feature == "+fp16")
+ HasFP16 = 1;
}
setDataLayout();
OpenPOWER on IntegriCloud