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