diff options
author | Abderrazek Zaafrani <a.zaafrani@samsung.com> | 2017-06-01 23:22:29 +0000 |
---|---|---|
committer | Abderrazek Zaafrani <a.zaafrani@samsung.com> | 2017-06-01 23:22:29 +0000 |
commit | a44e5f601d4235f8b2ab999dc3a9cc58585404a3 (patch) | |
tree | 1ded008db17950a7be93919ca9f86fa6c2aac829 /clang/lib/Basic/Targets.cpp | |
parent | 4e912aa5af44b3f3024cfcb4a3bfb932c49fc225 (diff) | |
download | bcm5719-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.cpp | 10 |
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(); |