[PATCH] D38601: Enable amdfam15,amdfam15h, and amdfam10h support

2017-10-05 Thread Erich Keane via Phabricator via cfe-commits
erichkeane abandoned this revision.
erichkeane added a comment.

Talking to Craig, this is just wrong for these features.  Attribute-target does 
some funky things in order to make this work, so I'll just bring those 'hacks' 
into my other patch.


https://reviews.llvm.org/D38601



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D38601: Enable amdfam15,amdfam15h, and amdfam10h support

2017-10-05 Thread Erich Keane via Phabricator via cfe-commits
erichkeane created this revision.

buildin_cpu_is already supports amdfam10h and amdfam15h, the 'sans-h'
version to the check and enable it.

Addtionally, add amdfam15 as an alias for bdver1, like amdfam10 is for
barcelona.


https://reviews.llvm.org/D38601

Files:
  lib/Basic/Targets/X86.cpp
  test/CodeGen/target-builtin-noerror.c
  test/Preprocessor/predefined-arch-macros.c


Index: lib/Basic/Targets/X86.cpp
===
--- lib/Basic/Targets/X86.cpp
+++ lib/Basic/Targets/X86.cpp
@@ -1291,8 +1291,8 @@
 bool X86TargetInfo::validateCpuIs(StringRef FeatureStr) const {
   return llvm::StringSwitch(FeatureStr)
   .Case("amd", true)
-  .Case("amdfam10h", true)
-  .Case("amdfam15h", true)
+  .Cases("amdfam10h", "amdfam10", true)
+  .Cases("amdfam15h", "amdfam15", true)
   .Case("atom", true)
   .Case("barcelona", true)
   .Case("bdver1", true)
@@ -1563,7 +1563,7 @@
   .Cases("amdfam10", "barcelona", CK_AMDFAM10)
   .Case("btver1", CK_BTVER1)
   .Case("btver2", CK_BTVER2)
-  .Case("bdver1", CK_BDVER1)
+  .Cases("amdfam15", "bdver1", CK_BDVER1)
   .Case("bdver2", CK_BDVER2)
   .Case("bdver3", CK_BDVER3)
   .Case("bdver4", CK_BDVER4)
Index: test/CodeGen/target-builtin-noerror.c
===
--- test/CodeGen/target-builtin-noerror.c
+++ test/CodeGen/target-builtin-noerror.c
@@ -80,7 +80,9 @@
 void verifycpustrings() {
   (void)__builtin_cpu_is("amd");
   (void)__builtin_cpu_is("amdfam10h");
+  (void)__builtin_cpu_is("amdfam10");
   (void)__builtin_cpu_is("amdfam15h");
+  (void)__builtin_cpu_is("amdfam15");
   (void)__builtin_cpu_is("atom");
   (void)__builtin_cpu_is("barcelona");
   (void)__builtin_cpu_is("bdver1");
Index: test/Preprocessor/predefined-arch-macros.c
===
--- test/Preprocessor/predefined-arch-macros.c
+++ test/Preprocessor/predefined-arch-macros.c
@@ -1673,6 +1673,9 @@
 // RUN: %clang -march=bdver1 -m32 -E -dM %s -o - 2>&1 \
 // RUN: -target i386-unknown-linux \
 // RUN:   | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER1_M32
+// RUN: %clang -march=amdfam15 -m32 -E -dM %s -o - 2>&1 \
+// RUN: -target i386-unknown-linux \
+// RUN:   | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER1_M32
 // CHECK_BDVER1_M32-NOT: #define __3dNOW_A__ 1
 // CHECK_BDVER1_M32-NOT: #define __3dNOW__ 1
 // CHECK_BDVER1_M32: #define __AES__ 1
@@ -1703,6 +1706,9 @@
 // RUN: %clang -march=bdver1 -m64 -E -dM %s -o - 2>&1 \
 // RUN: -target i386-unknown-linux \
 // RUN:   | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER1_M64
+// RUN: %clang -march=amdfam15 -m64 -E -dM %s -o - 2>&1 \
+// RUN: -target i386-unknown-linux \
+// RUN:   | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER1_M64
 // CHECK_BDVER1_M64-NOT: #define __3dNOW_A__ 1
 // CHECK_BDVER1_M64-NOT: #define __3dNOW__ 1
 // CHECK_BDVER1_M64: #define __AES__ 1


Index: lib/Basic/Targets/X86.cpp
===
--- lib/Basic/Targets/X86.cpp
+++ lib/Basic/Targets/X86.cpp
@@ -1291,8 +1291,8 @@
 bool X86TargetInfo::validateCpuIs(StringRef FeatureStr) const {
   return llvm::StringSwitch(FeatureStr)
   .Case("amd", true)
-  .Case("amdfam10h", true)
-  .Case("amdfam15h", true)
+  .Cases("amdfam10h", "amdfam10", true)
+  .Cases("amdfam15h", "amdfam15", true)
   .Case("atom", true)
   .Case("barcelona", true)
   .Case("bdver1", true)
@@ -1563,7 +1563,7 @@
   .Cases("amdfam10", "barcelona", CK_AMDFAM10)
   .Case("btver1", CK_BTVER1)
   .Case("btver2", CK_BTVER2)
-  .Case("bdver1", CK_BDVER1)
+  .Cases("amdfam15", "bdver1", CK_BDVER1)
   .Case("bdver2", CK_BDVER2)
   .Case("bdver3", CK_BDVER3)
   .Case("bdver4", CK_BDVER4)
Index: test/CodeGen/target-builtin-noerror.c
===
--- test/CodeGen/target-builtin-noerror.c
+++ test/CodeGen/target-builtin-noerror.c
@@ -80,7 +80,9 @@
 void verifycpustrings() {
   (void)__builtin_cpu_is("amd");
   (void)__builtin_cpu_is("amdfam10h");
+  (void)__builtin_cpu_is("amdfam10");
   (void)__builtin_cpu_is("amdfam15h");
+  (void)__builtin_cpu_is("amdfam15");
   (void)__builtin_cpu_is("atom");
   (void)__builtin_cpu_is("barcelona");
   (void)__builtin_cpu_is("bdver1");
Index: test/Preprocessor/predefined-arch-macros.c
===
--- test/Preprocessor/predefined-arch-macros.c
+++ test/Preprocessor/predefined-arch-macros.c
@@ -1673,6 +1673,9 @@
 // RUN: %clang -march=bdver1 -m32 -E -dM %s -o - 2>&1 \
 // RUN: -target i386-unknown-linux \
 // RUN:   | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER1_M32
+// RUN: %clang -march=amdfam15 -m32 -E -dM %s -o - 2>&1 \
+// RUN: -target i386-unknown-linux \
+// RUN:   | FileCheck -mat