forked from OSchip/llvm-project
Make the msse4/mno-sse4 flags aliases of the maximum sse values
they enable/disable. This fixes two things: a) sse4 isn't actually a target feature, don't treat it as one. b) we weren't correctly disabling sse4.1 when we'd pass -mno-sse4 after enabling it, thus passing preprocessor directives and (soon) passing the function attribute as well when we shouldn't. llvm-svn: 233223
This commit is contained in:
parent
533849c615
commit
f43966f38d
|
@ -1185,9 +1185,9 @@ def mno_stackrealign : Flag<["-"], "mno-stackrealign">, Group<m_Group>;
|
|||
def mno_sse2 : Flag<["-"], "mno-sse2">, Group<m_x86_Features_Group>;
|
||||
def mno_sse3 : Flag<["-"], "mno-sse3">, Group<m_x86_Features_Group>;
|
||||
def mno_sse4a : Flag<["-"], "mno-sse4a">, Group<m_x86_Features_Group>;
|
||||
def mno_sse4 : Flag<["-"], "mno-sse4">, Group<m_x86_Features_Group>;
|
||||
def mno_sse4_1 : Flag<["-"], "mno-sse4.1">, Group<m_x86_Features_Group>;
|
||||
def mno_sse4_2 : Flag<["-"], "mno-sse4.2">, Group<m_x86_Features_Group>;
|
||||
def mno_sse4 : Flag<["-"], "mno-sse4">, Alias<mno_sse4_1>;
|
||||
def mno_sse : Flag<["-"], "mno-sse">, Group<m_x86_Features_Group>;
|
||||
def mno_ssse3 : Flag<["-"], "mno-ssse3">, Group<m_x86_Features_Group>;
|
||||
def mno_aes : Flag<["-"], "mno-aes">, Group<m_x86_Features_Group>;
|
||||
|
@ -1310,9 +1310,9 @@ def mimplicit_float : Flag<["-"], "mimplicit-float">, Group<m_Group>;
|
|||
def msse2 : Flag<["-"], "msse2">, Group<m_x86_Features_Group>;
|
||||
def msse3 : Flag<["-"], "msse3">, Group<m_x86_Features_Group>;
|
||||
def msse4a : Flag<["-"], "msse4a">, Group<m_x86_Features_Group>;
|
||||
def msse4 : Flag<["-"], "msse4">, Group<m_x86_Features_Group>;
|
||||
def msse4_1 : Flag<["-"], "msse4.1">, Group<m_x86_Features_Group>;
|
||||
def msse4_2 : Flag<["-"], "msse4.2">, Group<m_x86_Features_Group>;
|
||||
def msse4 : Flag<["-"], "msse4">, Alias<msse4_2>;
|
||||
def msse : Flag<["-"], "msse">, Group<m_x86_Features_Group>;
|
||||
def mssse3 : Flag<["-"], "mssse3">, Group<m_x86_Features_Group>;
|
||||
def maes : Flag<["-"], "maes">, Group<m_x86_Features_Group>;
|
||||
|
|
|
@ -2580,11 +2580,6 @@ void X86TargetInfo::setXOPLevel(llvm::StringMap<bool> &Features, XOPEnum Level,
|
|||
|
||||
void X86TargetInfo::setFeatureEnabledImpl(llvm::StringMap<bool> &Features,
|
||||
StringRef Name, bool Enabled) {
|
||||
// FIXME: This *really* should not be here. We need some way of translating
|
||||
// options into llvm subtarget features.
|
||||
if (Name == "sse4")
|
||||
Name = "sse4.2";
|
||||
|
||||
Features[Name] = Enabled;
|
||||
|
||||
if (Name == "mmx") {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang -target i386-unknown-unknown -### -S %s -msse -msse4 -mno-sse -mno-mmx -msse 2>&1 | FileCheck %s
|
||||
// CHECK: "pentium4" "-target-feature" "+sse4" "-target-feature" "-mmx" "-target-feature" "+sse"
|
||||
// CHECK: "pentium4" "-target-feature" "+sse4.2" "-target-feature" "-mmx" "-target-feature" "+sse"
|
||||
// Note that we filter out all but the last -m(no)sse.
|
||||
|
||||
// Test that we don't produce an error with -mieee-fp.
|
||||
|
|
|
@ -9,6 +9,10 @@
|
|||
// SSE4: #define __SSE__ 1
|
||||
// SSE4: #define __SSSE3__ 1
|
||||
|
||||
// RUN: %clang -target i386-unknown-unknown -march=core2 -msse4.1 -mno-sse4 -x c -E -dM -o - %s | FileCheck --check-prefix=NOSSE4 %s
|
||||
|
||||
// NOSSE4-NOT: #define __SSE4_1__ 1
|
||||
|
||||
// RUN: %clang -target i386-unknown-unknown -march=core2 -msse4 -mno-sse2 -x c -E -dM -o - %s | FileCheck --check-prefix=SSE %s
|
||||
|
||||
// SSE-NOT: #define __SSE2_MATH__ 1
|
||||
|
|
Loading…
Reference in New Issue