Don't disable SSE4A when disabling AVX.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 21 Aug 2013 13:28:02 +0000 (13:28 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 21 Aug 2013 13:28:02 +0000 (13:28 +0000)
Thanks for Craig Topper for noticing it.

llvm-svn: 188902

clang/lib/Basic/Targets.cpp
clang/test/Preprocessor/x86_target_features.c

index d5392fb..e2898cc 100644 (file)
@@ -2120,7 +2120,7 @@ void X86TargetInfo::setSSELevel(llvm::StringMap<bool> &Features,
     Features["popcnt"] = Features["sse42"] = false;
   case AVX:
     Features["fma"] = Features["avx"] = false;
-    setXOPLevel(Features, SSE4A, false);
+    setXOPLevel(Features, FMA4, false);
   case AVX2:
     Features["avx2"] = false;
   case AVX512F:
index 4cdd342..7d6a6d8 100644 (file)
 // AVX: #define __SSE_MATH__ 1
 // AVX: #define __SSE__ 1
 // AVX: #define __SSSE3__ 1
+
+
+// RUN: %clang -target i386-unknown-unknown -march=pentium-m -mxop -mno-avx -x c -E -dM -o - %s | FileCheck --check-prefix=SSE4A %s
+
+// SSE4A: #define __SSE2_MATH__ 1
+// SSE4A: #define __SSE2__ 1
+// SSE4A: #define __SSE3__ 1
+// SSE4A: #define __SSE4A__ 1
+// SSE4A: #define __SSE4_1__ 1
+// SSE4A: #define __SSE4_2__ 1
+// SSE4A: #define __SSE_MATH__ 1
+// SSE4A: #define __SSE__ 1
+// SSE4A: #define __SSSE3__ 1