r317504 - [X86] Add 3dnow and 3dnowa to the list of valid target features

Martin Storsjo via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 6 12:33:13 PST 2017


Author: mstorsjo
Date: Mon Nov  6 12:33:13 2017
New Revision: 317504

URL: http://llvm.org/viewvc/llvm-project?rev=317504&view=rev
Log:
[X86] Add 3dnow and 3dnowa to the list of valid target features

These were missed in SVN r316783, which broke compiling mingw-w64 CRT.

Differential Revision: https://reviews.llvm.org/D39631

Added:
    cfe/trunk/test/Headers/mm3dnow.c
Modified:
    cfe/trunk/lib/Basic/Targets/X86.cpp

Modified: cfe/trunk/lib/Basic/Targets/X86.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/X86.cpp?rev=317504&r1=317503&r2=317504&view=diff
==============================================================================
--- cfe/trunk/lib/Basic/Targets/X86.cpp (original)
+++ cfe/trunk/lib/Basic/Targets/X86.cpp Mon Nov  6 12:33:13 2017
@@ -1121,6 +1121,8 @@ void X86TargetInfo::getTargetDefines(con
 
 bool X86TargetInfo::isValidFeatureName(StringRef Name) const {
   return llvm::StringSwitch<bool>(Name)
+      .Case("3dnow", true)
+      .Case("3dnowa", true)
       .Case("aes", true)
       .Case("avx", true)
       .Case("avx2", true)

Added: cfe/trunk/test/Headers/mm3dnow.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/mm3dnow.c?rev=317504&view=auto
==============================================================================
--- cfe/trunk/test/Headers/mm3dnow.c (added)
+++ cfe/trunk/test/Headers/mm3dnow.c Mon Nov  6 12:33:13 2017
@@ -0,0 +1,16 @@
+// RUN: %clang_cc1 -fsyntax-only -ffreestanding %s -verify
+// RUN: %clang_cc1 -fsyntax-only -ffreestanding -x c++ %s -verify
+// expected-no-diagnostics
+
+#if defined(i386) || defined(__x86_64__)
+#include <mm3dnow.h>
+
+int __attribute__((__target__(("3dnow")))) foo(int a) {
+  _m_femms();
+  return 4;
+}
+
+__m64 __attribute__((__target__(("3dnowa")))) bar(__m64 a) {
+  return _m_pf2iw(a);
+}
+#endif




More information about the cfe-commits mailing list