From 5bb34ca4df0db3221577e28862a4c89d22313f45 Mon Sep 17 00:00:00 2001 From: Tim Northover Date: Thu, 21 Nov 2013 12:36:34 +0000 Subject: [PATCH] ARM: define & use __ARM_NEON on ARM32 (as per ACLE) There seem to be quite a few references to the old macro __ARM_NEON__ on the internet, so I don't think it's a good idea to remove it entirely (at least yet), but the canonical name does not have the trailing underscores so we should use that ourselves. llvm-svn: 195353 --- clang/lib/Basic/Targets.cpp | 4 +++- clang/utils/TableGen/NeonEmitter.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 8b35c9a8aa7a..858c3c2e63e3 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -4007,8 +4007,10 @@ public: // the VFP define, hence the soft float and arch check. This is subtly // different from gcc, we follow the intent which was that it should be set // when Neon instructions are actually available. - if ((FPU & NeonFPU) && !SoftFloat && CPUArchVer >= 7) + if ((FPU & NeonFPU) && !SoftFloat && CPUArchVer >= 7) { + Builder.defineMacro("__ARM_NEON"); Builder.defineMacro("__ARM_NEON__"); + } if (CRC) Builder.defineMacro("__ARM_FEATURE_CRC32"); diff --git a/clang/utils/TableGen/NeonEmitter.cpp b/clang/utils/TableGen/NeonEmitter.cpp index 2762ecb4389c..3a572d6d1bab 100644 --- a/clang/utils/TableGen/NeonEmitter.cpp +++ b/clang/utils/TableGen/NeonEmitter.cpp @@ -2459,7 +2459,7 @@ void NeonEmitter::run(raw_ostream &OS) { OS << "#ifndef __ARM_NEON_H\n"; OS << "#define __ARM_NEON_H\n\n"; - OS << "#if !defined(__ARM_NEON__) && !defined(__ARM_NEON)\n"; + OS << "#if !defined(__ARM_NEON)\n"; OS << "#error \"NEON support not enabled\"\n"; OS << "#endif\n\n";