From b98ce37c69b42569d15848978dac24106f842e14 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Fri, 30 Aug 2013 14:05:34 +0000 Subject: [PATCH] Add support for -march=slm, aka Intel Atom Silvermont. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189670 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Basic/Targets.cpp | 7 +++++ test/Preprocessor/predefined-arch-macros.c | 36 ++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index f588970a87..89b116d9be 100644 --- a/lib/Basic/Targets.cpp +++ b/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 &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/test/Preprocessor/predefined-arch-macros.c b/test/Preprocessor/predefined-arch-macros.c index 57b819f333..d21ba5a1b1 100644 --- a/test/Preprocessor/predefined-arch-macros.c +++ b/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 -- 2.40.0