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

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 5 14:31:58 PDT 2017


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<bool>(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


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38601.117897.patch
Type: text/x-patch
Size: 2658 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171005/eac7fe43/attachment-0001.bin>


More information about the cfe-commits mailing list