diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2013-08-30 14:05:34 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2013-08-30 14:05:34 +0000 |
commit | ffecc845837c414c6bdf945a9d6655e5bc772533 (patch) | |
tree | 1c4ed38af9d0facae5ad4c6430c39f8e644714a6 | |
parent | 8f429384b57475647064722842c071caaaea1882 (diff) | |
download | bcm5719-llvm-ffecc845837c414c6bdf945a9d6655e5bc772533.tar.gz bcm5719-llvm-ffecc845837c414c6bdf945a9d6655e5bc772533.zip |
Add support for -march=slm, aka Intel Atom Silvermont.
llvm-svn: 189670
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 7 | ||||
-rw-r--r-- | clang/test/Preprocessor/predefined-arch-macros.c | 36 |
2 files changed, 43 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index f588970a872..89b116d9be9 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -1637,6 +1637,7 @@ class X86TargetInfo : public TargetInfo { /// Atom processors //@{ CK_Atom, + CK_SLM, //@} /// \name Nehalem @@ -1805,6 +1806,7 @@ public: .Case("core2", CK_Core2) .Case("penryn", CK_Penryn) .Case("atom", CK_Atom) + .Case("slm", CK_SLM) .Case("corei7", CK_Corei7) .Case("corei7-avx", CK_Corei7AVX) .Case("core-avx-i", CK_CoreAVXi) @@ -1880,6 +1882,7 @@ public: case CK_Core2: case CK_Penryn: case CK_Atom: + case CK_SLM: case CK_Corei7: case CK_Corei7AVX: case CK_CoreAVXi: @@ -1977,6 +1980,7 @@ void X86TargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const { setFeatureEnabled(Features, "ssse3", true); break; case CK_Corei7: + case CK_SLM: setFeatureEnabled(Features, "sse4.2", true); break; case CK_Corei7AVX: @@ -2473,6 +2477,9 @@ void X86TargetInfo::getTargetDefines(const LangOptions &Opts, case CK_Atom: defineCPUMacros(Builder, "atom"); break; + case CK_SLM: + defineCPUMacros(Builder, "slm"); + break; case CK_Corei7: case CK_Corei7AVX: case CK_CoreAVXi: diff --git a/clang/test/Preprocessor/predefined-arch-macros.c b/clang/test/Preprocessor/predefined-arch-macros.c index 57b819f3335..d21ba5a1b19 100644 --- a/clang/test/Preprocessor/predefined-arch-macros.c +++ b/clang/test/Preprocessor/predefined-arch-macros.c @@ -665,6 +665,42 @@ // CHECK_ATOM_M64: #define __x86_64 1 // CHECK_ATOM_M64: #define __x86_64__ 1 // +// RUN: %clang -march=slm -m32 -E -dM %s -o - 2>&1 \ +// RUN: -target i386-unknown-linux \ +// RUN: | FileCheck %s -check-prefix=CHECK_SLM_M32 +// CHECK_SLM_M32: #define __MMX__ 1 +// CHECK_SLM_M32: #define __SSE2__ 1 +// CHECK_SLM_M32: #define __SSE3__ 1 +// CHECK_SLM_M32: #define __SSE4_1__ 1 +// CHECK_SLM_M32: #define __SSE4_2__ 1 +// CHECK_SLM_M32: #define __SSE__ 1 +// CHECK_SLM_M32: #define __SSSE3__ 1 +// CHECK_SLM_M32: #define __i386 1 +// CHECK_SLM_M32: #define __i386__ 1 +// CHECK_SLM_M32: #define __slm 1 +// CHECK_SLM_M32: #define __slm__ 1 +// CHECK_SLM_M32: #define __tune_slm__ 1 +// CHECK_SLM_M32: #define i386 1 +// RUN: %clang -march=slm -m64 -E -dM %s -o - 2>&1 \ +// RUN: -target i386-unknown-linux \ +// RUN: | FileCheck %s -check-prefix=CHECK_SLM_M64 +// CHECK_SLM_M64: #define __MMX__ 1 +// CHECK_SLM_M64: #define __SSE2_MATH__ 1 +// CHECK_SLM_M64: #define __SSE2__ 1 +// CHECK_SLM_M64: #define __SSE3__ 1 +// CHECK_SLM_M64: #define __SSE4_1__ 1 +// CHECK_SLM_M64: #define __SSE4_2__ 1 +// CHECK_SLM_M64: #define __SSE_MATH__ 1 +// CHECK_SLM_M64: #define __SSE__ 1 +// CHECK_SLM_M64: #define __SSSE3__ 1 +// CHECK_SLM_M64: #define __amd64 1 +// CHECK_SLM_M64: #define __amd64__ 1 +// CHECK_SLM_M64: #define __slm 1 +// CHECK_SLM_M64: #define __slm__ 1 +// CHECK_SLM_M64: #define __tune_slm__ 1 +// CHECK_SLM_M64: #define __x86_64 1 +// CHECK_SLM_M64: #define __x86_64__ 1 +// // RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \ // RUN: -target i386-unknown-linux \ // RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M32 |