diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-04-16 16:02:28 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-04-16 16:02:28 +0000 |
commit | 7442d6faa2719e4e7d33a7021c406c5a4facd74d (patch) | |
tree | c72b9241553fc9966179aba84f90f17bfa9235c3 /test/Preprocessor | |
parent | b52119637f743680a99710ce5fdb6646da2772af (diff) |
Notes
Diffstat (limited to 'test/Preprocessor')
-rw-r--r-- | test/Preprocessor/aarch64-target-features.c | 4 | ||||
-rw-r--r-- | test/Preprocessor/arm-acle-6.4.c | 15 | ||||
-rw-r--r-- | test/Preprocessor/arm-acle-6.5.c | 3 | ||||
-rw-r--r-- | test/Preprocessor/arm-target-features.c | 32 | ||||
-rw-r--r-- | test/Preprocessor/init.c | 292 | ||||
-rw-r--r-- | test/Preprocessor/predefined-arch-macros.c | 149 | ||||
-rw-r--r-- | test/Preprocessor/x86_target_features.c | 4 |
7 files changed, 461 insertions, 38 deletions
diff --git a/test/Preprocessor/aarch64-target-features.c b/test/Preprocessor/aarch64-target-features.c index aef788dd083e5..c9c7f2dc4a4e1 100644 --- a/test/Preprocessor/aarch64-target-features.c +++ b/test/Preprocessor/aarch64-target-features.c @@ -97,7 +97,7 @@ // RUN: %clang -target aarch64 -mcpu=exynos-m2 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MCPU-M1 %s // RUN: %clang -target aarch64 -mcpu=exynos-m3 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MCPU-M1 %s // RUN: %clang -target aarch64 -mcpu=kryo -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MCPU-KRYO %s -// RUN: %clang -target aarch64 -mcpu=vulcan -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MCPU-VULCAN %s +// RUN: %clang -target aarch64 -mcpu=thunderx2t99 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MCPU-THUNDERX2T99 %s // CHECK-MCPU-CYCLONE: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+crypto" "-target-feature" "+zcm" "-target-feature" "+zcz" // CHECK-MCPU-A35: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" // CHECK-MCPU-A53: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" @@ -106,7 +106,7 @@ // CHECK-MCPU-CORTEX-A73: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" // CHECK-MCPU-M1: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" // CHECK-MCPU-KRYO: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" -// CHECK-MCPU-VULCAN: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" +// CHECK-MCPU-THUNDERX2T99: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" // RUN: %clang -target x86_64-apple-macosx -arch arm64 -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-ARCH-ARM64 %s // CHECK-ARCH-ARM64: "-target-cpu" "cyclone" "-target-feature" "+neon" "-target-feature" "+crypto" "-target-feature" "+zcm" "-target-feature" "+zcz" diff --git a/test/Preprocessor/arm-acle-6.4.c b/test/Preprocessor/arm-acle-6.4.c index 11be2c172f3ba..3102bd48cabc1 100644 --- a/test/Preprocessor/arm-acle-6.4.c +++ b/test/Preprocessor/arm-acle-6.4.c @@ -120,6 +120,21 @@ // CHECK-V7A-NO-IDIV-NOT: __ARM_FEATURE_IDIV +// RUN: %clang -target arm-none-linux-eabi -march=armv7ve -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7VE + +// CHECK-V7VE: __ARM_ARCH 7 +// CHECK-V7VE: __ARM_ARCH_ISA_ARM 1 +// CHECK-V7VE: __ARM_ARCH_ISA_THUMB 2 +// CHECK-V7VE: __ARM_ARCH_PROFILE 'A' +// CHECK-V7VE: __ARM_FEATURE_CLZ 1 +// CHECK-V7VE: __ARM_FEATURE_DSP 1 +// CHECK-V7VE: __ARM_FEATURE_IDIV 1 +// CHECK-V7VE: __ARM_FEATURE_LDREX 0xF +// CHECK-V7VE: __ARM_FEATURE_QBIT 1 +// CHECK-V7VE: __ARM_FEATURE_SAT 1 +// CHECK-V7VE: __ARM_FEATURE_SIMD32 1 +// CHECK-V7VE: __ARM_FEATURE_UNALIGNED 1 + // RUN: %clang -target arm-none-linux-eabi -march=armv7-r -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7R // CHECK-V7R: __ARM_ARCH 7 diff --git a/test/Preprocessor/arm-acle-6.5.c b/test/Preprocessor/arm-acle-6.5.c index cc158c82cd8ab..7ad91bd7fc854 100644 --- a/test/Preprocessor/arm-acle-6.5.c +++ b/test/Preprocessor/arm-acle-6.5.c @@ -24,6 +24,7 @@ // RUN: %clang -target arm-eabi -mfpu=neon -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP // RUN: %clang -target armv6-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP // RUN: %clang -target armv7a-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP +// RUN: %clang -target armv7ve-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP // CHECK-SP-DP: __ARM_FP 0xC @@ -51,6 +52,8 @@ // RUN: %clang -target armv7a-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA // RUN: %clang -target armv7a-eabi -mfpu=vfpv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-FMA +// RUN: %clang -target armv7ve-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA +// RUN: %clang -target armv7ve-eabi -mfpu=vfpv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-FMA // RUN: %clang -target armv7r-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA // RUN: %clang -target armv7r-eabi -mfpu=vfpv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-FMA // RUN: %clang -target armv7em-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-FMA diff --git a/test/Preprocessor/arm-target-features.c b/test/Preprocessor/arm-target-features.c index f45c5ba07f0fd..81dab475fc9df 100644 --- a/test/Preprocessor/arm-target-features.c +++ b/test/Preprocessor/arm-target-features.c @@ -27,6 +27,13 @@ // CHECK-V7-NOT: __ARM_FEATURE_DIRECTED_ROUNDING // CHECK-V7: #define __ARM_FP 0xC +// RUN: %clang -target armv7ve-none-linux-gnu -x c -E -dM %s -o - | FileCheck -match-full-lines --check-prefix=CHECK-V7VE %s +// CHECK-V7VE: #define __ARMEL__ 1 +// CHECK-V7VE: #define __ARM_ARCH 7 +// CHECK-V7VE: #define __ARM_ARCH_7VE__ 1 +// CHECK-V7VE: #define __ARM_ARCH_EXT_IDIV__ 1 +// CHECK-V7VE: #define __ARM_FP 0xC + // RUN: %clang -target x86_64-apple-macosx10.10 -arch armv7s -x c -E -dM %s -o - | FileCheck -match-full-lines --check-prefix=CHECK-V7S %s // CHECK-V7S: #define __ARMEL__ 1 // CHECK-V7S: #define __ARM_ARCH 7 @@ -391,6 +398,31 @@ // M7-THUMB:#define __ARM_FP 0xE // M7-THUMB:#define __ARM_FPV5__ 1 +// Test whether predefines are as expected when targeting v8m cores +// RUN: %clang -target arm -mcpu=cortex-m23 -x c -E -dM %s -o - | FileCheck -match-full-lines --check-prefix=M23 %s +// M23: #define __ARM_ARCH 8 +// M23: #define __ARM_ARCH_8M_BASE__ 1 +// M23: #define __ARM_ARCH_EXT_IDIV__ 1 +// M23-NOT: __ARM_ARCH_ISA_ARM +// M23: #define __ARM_ARCH_ISA_THUMB 1 +// M23: #define __ARM_ARCH_PROFILE 'M' +// M23-NOT: __ARM_FEATURE_CRC32 +// M23-NOT: __ARM_FEATURE_DSP +// M23-NOT: __ARM_FP 0x{{.*}} +// M23-NOT: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 + +// RUN: %clang -target arm -mcpu=cortex-m33 -x c -E -dM %s -o - | FileCheck -match-full-lines --check-prefix=M33 %s +// M33: #define __ARM_ARCH 8 +// M33: #define __ARM_ARCH_8M_MAIN__ 1 +// M33: #define __ARM_ARCH_EXT_IDIV__ 1 +// M33-NOT: __ARM_ARCH_ISA_ARM +// M33: #define __ARM_ARCH_ISA_THUMB 2 +// M33: #define __ARM_ARCH_PROFILE 'M' +// M33-NOT: __ARM_FEATURE_CRC32 +// M33: #define __ARM_FEATURE_DSP 1 +// M33: #define __ARM_FP 0x6 +// M33: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 + // Test whether predefines are as expected when targeting krait. // RUN: %clang -target armv7 -mcpu=krait -x c -E -dM %s -o - | FileCheck -match-full-lines --check-prefix=KRAIT %s // RUN: %clang -target armv7 -mthumb -mcpu=krait -x c -E -dM %s -o - | FileCheck -match-full-lines --check-prefix=KRAIT %s diff --git a/test/Preprocessor/init.c b/test/Preprocessor/init.c index 8b8901931e7a4..d48d476d70099 100644 --- a/test/Preprocessor/init.c +++ b/test/Preprocessor/init.c @@ -15,7 +15,7 @@ // CXX1Z:#define __GXX_EXPERIMENTAL_CXX0X__ 1 // CXX1Z:#define __GXX_RTTI 1 // CXX1Z:#define __GXX_WEAK__ 1 -// CXX1Z:#define __cplusplus 201406L +// CXX1Z:#define __cplusplus 201703L // CXX1Z:#define __private_extern__ extern // // @@ -115,7 +115,7 @@ // // GXX1Z:#define __GNUG__ {{.*}} // GXX1Z:#define __GXX_WEAK__ 1 -// GXX1Z:#define __cplusplus 201406L +// GXX1Z:#define __cplusplus 201703L // GXX1Z:#define __private_extern__ extern // // @@ -831,6 +831,198 @@ // AARCH64-NETBSD:#define __WINT_WIDTH__ 32 // AARCH64-NETBSD:#define __aarch64__ 1 // +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=aarch64-openbsd < /dev/null | FileCheck -match-full-lines -check-prefix AARCH64-OPENBSD %s +// +// AARCH64-OPENBSD:#define _LP64 1 +// AARCH64-OPENBSD-NOT:#define __AARCH64EB__ 1 +// AARCH64-OPENBSD:#define __AARCH64EL__ 1 +// AARCH64-OPENBSD-NOT:#define __AARCH_BIG_ENDIAN 1 +// AARCH64-OPENBSD:#define __ARM_64BIT_STATE 1 +// AARCH64-OPENBSD:#define __ARM_ARCH 8 +// AARCH64-OPENBSD:#define __ARM_ARCH_ISA_A64 1 +// AARCH64-OPENBSD-NOT:#define __ARM_BIG_ENDIAN 1 +// AARCH64-OPENBSD:#define __BIGGEST_ALIGNMENT__ 16 +// AARCH64-OPENBSD:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +// AARCH64-OPENBSD:#define __CHAR16_TYPE__ unsigned short +// AARCH64-OPENBSD:#define __CHAR32_TYPE__ unsigned int +// AARCH64-OPENBSD:#define __CHAR_BIT__ 8 +// AARCH64-OPENBSD:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +// AARCH64-OPENBSD:#define __DBL_DIG__ 15 +// AARCH64-OPENBSD:#define __DBL_EPSILON__ 2.2204460492503131e-16 +// AARCH64-OPENBSD:#define __DBL_HAS_DENORM__ 1 +// AARCH64-OPENBSD:#define __DBL_HAS_INFINITY__ 1 +// AARCH64-OPENBSD:#define __DBL_HAS_QUIET_NAN__ 1 +// AARCH64-OPENBSD:#define __DBL_MANT_DIG__ 53 +// AARCH64-OPENBSD:#define __DBL_MAX_10_EXP__ 308 +// AARCH64-OPENBSD:#define __DBL_MAX_EXP__ 1024 +// AARCH64-OPENBSD:#define __DBL_MAX__ 1.7976931348623157e+308 +// AARCH64-OPENBSD:#define __DBL_MIN_10_EXP__ (-307) +// AARCH64-OPENBSD:#define __DBL_MIN_EXP__ (-1021) +// AARCH64-OPENBSD:#define __DBL_MIN__ 2.2250738585072014e-308 +// AARCH64-OPENBSD:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ +// AARCH64-OPENBSD:#define __ELF__ 1 +// AARCH64-OPENBSD:#define __FLT_DENORM_MIN__ 1.40129846e-45F +// AARCH64-OPENBSD:#define __FLT_DIG__ 6 +// AARCH64-OPENBSD:#define __FLT_EPSILON__ 1.19209290e-7F +// AARCH64-OPENBSD:#define __FLT_EVAL_METHOD__ 0 +// AARCH64-OPENBSD:#define __FLT_HAS_DENORM__ 1 +// AARCH64-OPENBSD:#define __FLT_HAS_INFINITY__ 1 +// AARCH64-OPENBSD:#define __FLT_HAS_QUIET_NAN__ 1 +// AARCH64-OPENBSD:#define __FLT_MANT_DIG__ 24 +// AARCH64-OPENBSD:#define __FLT_MAX_10_EXP__ 38 +// AARCH64-OPENBSD:#define __FLT_MAX_EXP__ 128 +// AARCH64-OPENBSD:#define __FLT_MAX__ 3.40282347e+38F +// AARCH64-OPENBSD:#define __FLT_MIN_10_EXP__ (-37) +// AARCH64-OPENBSD:#define __FLT_MIN_EXP__ (-125) +// AARCH64-OPENBSD:#define __FLT_MIN__ 1.17549435e-38F +// AARCH64-OPENBSD:#define __FLT_RADIX__ 2 +// AARCH64-OPENBSD:#define __INT16_C_SUFFIX__ +// AARCH64-OPENBSD:#define __INT16_FMTd__ "hd" +// AARCH64-OPENBSD:#define __INT16_FMTi__ "hi" +// AARCH64-OPENBSD:#define __INT16_MAX__ 32767 +// AARCH64-OPENBSD:#define __INT16_TYPE__ short +// AARCH64-OPENBSD:#define __INT32_C_SUFFIX__ +// AARCH64-OPENBSD:#define __INT32_FMTd__ "d" +// AARCH64-OPENBSD:#define __INT32_FMTi__ "i" +// AARCH64-OPENBSD:#define __INT32_MAX__ 2147483647 +// AARCH64-OPENBSD:#define __INT32_TYPE__ int +// AARCH64-OPENBSD:#define __INT64_C_SUFFIX__ LL +// AARCH64-OPENBSD:#define __INT64_FMTd__ "lld" +// AARCH64-OPENBSD:#define __INT64_FMTi__ "lli" +// AARCH64-OPENBSD:#define __INT64_MAX__ 9223372036854775807LL +// AARCH64-OPENBSD:#define __INT64_TYPE__ long long int +// AARCH64-OPENBSD:#define __INT8_C_SUFFIX__ +// AARCH64-OPENBSD:#define __INT8_FMTd__ "hhd" +// AARCH64-OPENBSD:#define __INT8_FMTi__ "hhi" +// AARCH64-OPENBSD:#define __INT8_MAX__ 127 +// AARCH64-OPENBSD:#define __INT8_TYPE__ signed char +// AARCH64-OPENBSD:#define __INTMAX_C_SUFFIX__ LL +// AARCH64-OPENBSD:#define __INTMAX_FMTd__ "lld" +// AARCH64-OPENBSD:#define __INTMAX_FMTi__ "lli" +// AARCH64-OPENBSD:#define __INTMAX_MAX__ 9223372036854775807LL +// AARCH64-OPENBSD:#define __INTMAX_TYPE__ long long int +// AARCH64-OPENBSD:#define __INTMAX_WIDTH__ 64 +// AARCH64-OPENBSD:#define __INTPTR_FMTd__ "ld" +// AARCH64-OPENBSD:#define __INTPTR_FMTi__ "li" +// AARCH64-OPENBSD:#define __INTPTR_MAX__ 9223372036854775807L +// AARCH64-OPENBSD:#define __INTPTR_TYPE__ long int +// AARCH64-OPENBSD:#define __INTPTR_WIDTH__ 64 +// AARCH64-OPENBSD:#define __INT_FAST16_FMTd__ "hd" +// AARCH64-OPENBSD:#define __INT_FAST16_FMTi__ "hi" +// AARCH64-OPENBSD:#define __INT_FAST16_MAX__ 32767 +// AARCH64-OPENBSD:#define __INT_FAST16_TYPE__ short +// AARCH64-OPENBSD:#define __INT_FAST32_FMTd__ "d" +// AARCH64-OPENBSD:#define __INT_FAST32_FMTi__ "i" +// AARCH64-OPENBSD:#define __INT_FAST32_MAX__ 2147483647 +// AARCH64-OPENBSD:#define __INT_FAST32_TYPE__ int +// AARCH64-OPENBSD:#define __INT_FAST64_FMTd__ "ld" +// AARCH64-OPENBSD:#define __INT_FAST64_FMTi__ "li" +// AARCH64-OPENBSD:#define __INT_FAST64_MAX__ 9223372036854775807L +// AARCH64-OPENBSD:#define __INT_FAST64_TYPE__ long int +// AARCH64-OPENBSD:#define __INT_FAST8_FMTd__ "hhd" +// AARCH64-OPENBSD:#define __INT_FAST8_FMTi__ "hhi" +// AARCH64-OPENBSD:#define __INT_FAST8_MAX__ 127 +// AARCH64-OPENBSD:#define __INT_FAST8_TYPE__ signed char +// AARCH64-OPENBSD:#define __INT_LEAST16_FMTd__ "hd" +// AARCH64-OPENBSD:#define __INT_LEAST16_FMTi__ "hi" +// AARCH64-OPENBSD:#define __INT_LEAST16_MAX__ 32767 +// AARCH64-OPENBSD:#define __INT_LEAST16_TYPE__ short +// AARCH64-OPENBSD:#define __INT_LEAST32_FMTd__ "d" +// AARCH64-OPENBSD:#define __INT_LEAST32_FMTi__ "i" +// AARCH64-OPENBSD:#define __INT_LEAST32_MAX__ 2147483647 +// AARCH64-OPENSD:#define __INT_LEAST32_TYPE__ int +// AARCH64-OPENBSD:#define __INT_LEAST64_FMTd__ "ld" +// AARCH64-OPENBSD:#define __INT_LEAST64_FMTi__ "li" +// AARCH64-OPENBSD:#define __INT_LEAST64_MAX__ 9223372036854775807L +// AARCH64-OPENBSD:#define __INT_LEAST64_TYPE__ long int +// AARCH64-OPENBSD:#define __INT_LEAST8_FMTd__ "hhd" +// AARCH64-OPENBSD:#define __INT_LEAST8_FMTi__ "hhi" +// AARCH64-OPENBSD:#define __INT_LEAST8_MAX__ 127 +// AARCH64-OPENBSD:#define __INT_LEAST8_TYPE__ signed char +// AARCH64-OPENBSD:#define __INT_MAX__ 2147483647 +// AARCH64-OPENBSD:#define __LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L +// AARCH64-OPENBSD:#define __LDBL_DIG__ 33 +// AARCH64-OPENBSD:#define __LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L +// AARCH64-OPENBSD:#define __LDBL_HAS_DENORM__ 1 +// AARCH64-OPENBSD:#define __LDBL_HAS_INFINITY__ 1 +// AARCH64-OPENBSD:#define __LDBL_HAS_QUIET_NAN__ 1 +// AARCH64-OPENBSD:#define __LDBL_MANT_DIG__ 113 +// AARCH64-OPENBSD:#define __LDBL_MAX_10_EXP__ 4932 +// AARCH64-OPENBSD:#define __LDBL_MAX_EXP__ 16384 +// AARCH64-OPENBSD:#define __LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L +// AARCH64-OPENBSD:#define __LDBL_MIN_10_EXP__ (-4931) +// AARCH64-OPENBSD:#define __LDBL_MIN_EXP__ (-16381) +// AARCH64-OPENBSD:#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +// AARCH64-OPENBSD:#define __LITTLE_ENDIAN__ 1 +// AARCH64-OPENBSD:#define __LONG_LONG_MAX__ 9223372036854775807LL +// AARCH64-OPENBSD:#define __LONG_MAX__ 9223372036854775807L +// AARCH64-OPENBSD:#define __LP64__ 1 +// AARCH64-OPENBSD:#define __OpenBSD__ 1 +// AARCH64-OPENBSD:#define __POINTER_WIDTH__ 64 +// AARCH64-OPENBSD:#define __PTRDIFF_TYPE__ long int +// AARCH64-OPENBSD:#define __PTRDIFF_WIDTH__ 64 +// AARCH64-OPENBSD:#define __SCHAR_MAX__ 127 +// AARCH64-OPENBSD:#define __SHRT_MAX__ 32767 +// AARCH64-OPENBSD:#define __SIG_ATOMIC_MAX__ 2147483647 +// AARCH64-OPENBSD:#define __SIG_ATOMIC_WIDTH__ 32 +// AARCH64-OPENBSD:#define __SIZEOF_DOUBLE__ 8 +// AARCH64-OPENBSD:#define __SIZEOF_FLOAT__ 4 +// AARCH64-OPENBSD:#define __SIZEOF_INT__ 4 +// AARCH64-OPENBSD:#define __SIZEOF_LONG_DOUBLE__ 16 +// AARCH64-OPENBSD:#define __SIZEOF_LONG_LONG__ 8 +// AARCH64-OPENBSD:#define __SIZEOF_LONG__ 8 +// AARCH64-OPENBSD:#define __SIZEOF_POINTER__ 8 +// AARCH64-OPENBSD:#define __SIZEOF_PTRDIFF_T__ 8 +// AARCH64-OPENBSD:#define __SIZEOF_SHORT__ 2 +// AARCH64-OPENBSD:#define __SIZEOF_SIZE_T__ 8 +// AARCH64-OPENBSD:#define __SIZEOF_WCHAR_T__ 4 +// AARCH64-OPENBSD:#define __SIZEOF_WINT_T__ 4 +// AARCH64-OPENBSD:#define __SIZE_MAX__ 18446744073709551615UL +// AARCH64-OPENBSD:#define __SIZE_TYPE__ long unsigned int +// AARCH64-OPENBSD:#define __SIZE_WIDTH__ 64 +// AARCH64-OPENBSD:#define __UINT16_C_SUFFIX__ +// AARCH64-OPENBSD:#define __UINT16_MAX__ 65535 +// AARCH64-OPENBSD:#define __UINT16_TYPE__ unsigned short +// AARCH64-OPENBSD:#define __UINT32_C_SUFFIX__ U +// AARCH64-OPENBSD:#define __UINT32_MAX__ 4294967295U +// AARCH64-OPENBSD:#define __UINT32_TYPE__ unsigned int +// AARCH64-OPENBSD:#define __UINT64_C_SUFFIX__ ULL +// AARCH64-OPENBSD:#define __UINT64_MAX__ 18446744073709551615ULL +// AARCH64-OPENBSD:#define __UINT64_TYPE__ long long unsigned int +// AARCH64-OPENBSD:#define __UINT8_C_SUFFIX__ +// AARCH64-OPENBSD:#define __UINT8_MAX__ 255 +// AARCH64-OPENBSD:#define __UINT8_TYPE__ unsigned char +// AARCH64-OPENBSD:#define __UINTMAX_C_SUFFIX__ ULL +// AARCH64-OPENBSD:#define __UINTMAX_MAX__ 18446744073709551615ULL +// AARCH64-OPENBSD:#define __UINTMAX_TYPE__ long long unsigned int +// AARCH64-OPENBSD:#define __UINTMAX_WIDTH__ 64 +// AARCH64-OPENBSD:#define __UINTPTR_MAX__ 18446744073709551615UL +// AARCH64-OPENBSD:#define __UINTPTR_TYPE__ long unsigned int +// AARCH64-OPENBSD:#define __UINTPTR_WIDTH__ 64 +// AARCH64-OPENBSD:#define __UINT_FAST16_MAX__ 65535 +// AARCH64-OPENBSD:#define __UINT_FAST16_TYPE__ unsigned short +// AARCH64-OPENBSD:#define __UINT_FAST32_MAX__ 4294967295U +// AARCH64-OPENBSD:#define __UINT_FAST32_TYPE__ unsigned int +// AARCH64-OPENBSD:#define __UINT_FAST64_MAX__ 18446744073709551615UL +// AARCH64-OPENBSD:#define __UINT_FAST64_TYPE__ long unsigned int +// AARCH64-OPENBSD:#define __UINT_FAST8_MAX__ 255 +// AARCH64-OPENBSD:#define __UINT_FAST8_TYPE__ unsigned char +// AARCH64-OPENBSD:#define __UINT_LEAST16_MAX__ 65535 +// AARCH64-OPENBSD:#define __UINT_LEAST16_TYPE__ unsigned short +// AARCH64-OPENBSD:#define __UINT_LEAST32_MAX__ 4294967295U +// AARCH64-OPENBSD:#define __UINT_LEAST32_TYPE__ unsigned int +// AARCH64-OPENBSD:#define __UINT_LEAST64_MAX__ 18446744073709551615UL +// AARCH64-OPENBSD:#define __UINT_LEAST64_TYPE__ long unsigned int +// AARCH64-OPENBSD:#define __UINT_LEAST8_MAX__ 255 +// AARCH64-OPENBSD:#define __UINT_LEAST8_TYPE__ unsigned char +// AARCH64-OPENBSD:#define __USER_LABEL_PREFIX__ +// AARCH64-OPENBSD:#define __WCHAR_MAX__ 2147483647 +// AARCH64-OPENBSD:#define __WCHAR_TYPE__ int +// AARCH64-OPENBSD:#define __WCHAR_WIDTH__ 32 +// AARCH64-OPENBSD:#define __WINT_TYPE__ int +// AARCH64-OPENBSD:#define __WINT_WIDTH__ 32 +// AARCH64-OPENBSD:#define __aarch64__ 1 +// // RUN: %clang_cc1 -E -dM -ffreestanding -triple=aarch64-freebsd11 < /dev/null | FileCheck -match-full-lines -check-prefix AARCH64-FREEBSD %s // // AARCH64-FREEBSD:#define _LP64 1 @@ -3040,6 +3232,7 @@ // MIPS32BE:#define __llvm__ 1 // MIPS32BE:#define __mips 32 // MIPS32BE:#define __mips__ 1 +// MIPS32BE:#define __mips_abicalls 1 // MIPS32BE:#define __mips_fpr 32 // MIPS32BE:#define __mips_hard_float 1 // MIPS32BE:#define __mips_o32 1 @@ -3246,6 +3439,7 @@ // MIPS32EL:#define __llvm__ 1 // MIPS32EL:#define __mips 32 // MIPS32EL:#define __mips__ 1 +// MIPS32EL:#define __mips_abicalls 1 // MIPS32EL:#define __mips_fpr 32 // MIPS32EL:#define __mips_hard_float 1 // MIPS32EL:#define __mips_o32 1 @@ -3555,6 +3749,7 @@ // MIPSN32BE: #define __mips64 1 // MIPSN32BE: #define __mips64__ 1 // MIPSN32BE: #define __mips__ 1 +// MIPSN32BE: #define __mips_abicalls 1 // MIPSN32BE: #define __mips_fpr 64 // MIPSN32BE: #define __mips_hard_float 1 // MIPSN32BE: #define __mips_isa_rev 2 @@ -3861,6 +4056,7 @@ // MIPSN32EL: #define __mips64 1 // MIPSN32EL: #define __mips64__ 1 // MIPSN32EL: #define __mips__ 1 +// MIPSN32EL: #define __mips_abicalls 1 // MIPSN32EL: #define __mips_fpr 64 // MIPSN32EL: #define __mips_hard_float 1 // MIPSN32EL: #define __mips_isa_rev 2 @@ -4073,6 +4269,7 @@ // MIPS64BE:#define __mips64 1 // MIPS64BE:#define __mips64__ 1 // MIPS64BE:#define __mips__ 1 +// MIPS64BE:#define __mips_abicalls 1 // MIPS64BE:#define __mips_fpr 64 // MIPS64BE:#define __mips_hard_float 1 // MIPS64BE:#define __mips_n64 1 @@ -4282,6 +4479,7 @@ // MIPS64EL:#define __mips64 1 // MIPS64EL:#define __mips64__ 1 // MIPS64EL:#define __mips__ 1 +// MIPS64EL:#define __mips_abicalls 1 // MIPS64EL:#define __mips_fpr 64 // MIPS64EL:#define __mips_hard_float 1 // MIPS64EL:#define __mips_n64 1 @@ -4513,6 +4711,45 @@ // MIPS-XXR6:#define __mips_fpr 64 // MIPS-XXR6:#define __mips_nan2008 1 // +// RUN: %clang_cc1 -target-cpu mips32 \ +// RUN: -E -dM -triple=mips-unknown-netbsd -mrelocation-model pic < /dev/null \ +// RUN: | FileCheck -match-full-lines -check-prefix MIPS-ABICALLS-NETBSD %s +// MIPS-ABICALLS-NETBSD-NOT: #define __ABICALLS__ 1 +// MIPS-ABICALLS-NETBSD: #define __mips_abicalls 1 +// +// RUN: %clang_cc1 -target-cpu mips64 \ +// RUN: -E -dM -triple=mips64-unknown-netbsd -mrelocation-model pic < \ +// RUN: /dev/null | FileCheck -match-full-lines \ +// RUN: -check-prefix MIPS-ABICALLS-NETBSD64 %s +// MIPS-ABICALLS-NETBSD64-NOT: #define __ABICALLS__ 1 +// MIPS-ABICALLS-NETBSD64: #define __mips_abicalls 1 +// +// RUN: %clang_cc1 -target-cpu mips32 \ +// RUN: -E -dM -triple=mips-unknown-freebsd -mrelocation-model pic < /dev/null \ +// RUN: | FileCheck -match-full-lines -check-prefix MIPS-ABICALLS-FREEBSD %s +// MIPS-ABICALLS-FREEBSD: #define __ABICALLS__ 1 +// MIPS-ABICALLS-FREEBSD: #define __mips_abicalls 1 +// +// RUN: %clang_cc1 -target-cpu mips64 \ +// RUN: -E -dM -triple=mips64-unknown-freebsd -mrelocation-model pic < \ +// RUN: /dev/null | FileCheck -match-full-lines \ +// RUN: -check-prefix MIPS-ABICALLS-FREEBSD64 %s +// MIPS-ABICALLS-FREEBSD64: #define __ABICALLS__ 1 +// MIPS-ABICALLS-FREEBSD64: #define __mips_abicalls 1 +// +// RUN: %clang_cc1 -target-cpu mips32 \ +// RUN: -E -dM -triple=mips-unknown-openbsd -mrelocation-model pic < /dev/null \ +// RUN: | FileCheck -match-full-lines -check-prefix MIPS-ABICALLS-OPENBSD %s +// MIPS-ABICALLS-OPENBSD: #define __ABICALLS__ 1 +// MIPS-ABICALLS-OPENBSD: #define __mips_abicalls 1 +// +// RUN: %clang_cc1 -target-cpu mips64 \ +// RUN: -E -dM -triple=mips64-unknown-openbsd -mrelocation-model pic < \ +// RUN: /dev/null | FileCheck -match-full-lines \ +// RUN: -check-prefix MIPS-ABICALLS-OPENBSD64 %s +// MIPS-ABICALLS-OPENBSD64: #define __ABICALLS__ 1 +// MIPS-ABICALLS-OPENBSD64: #define __mips_abicalls 1 +// // RUN: %clang_cc1 -E -dM -ffreestanding -triple=msp430-none-none < /dev/null | FileCheck -match-full-lines -check-prefix MSP430 %s // RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=msp430-none-none < /dev/null | FileCheck -match-full-lines -check-prefix MSP430 -check-prefix MSP430-CXX %s // @@ -5087,7 +5324,7 @@ // PPC603E:#define _ARCH_PPCGR 1 // PPC603E:#define _BIG_ENDIAN 1 // PPC603E-NOT:#define _LP64 -// PPC603E:#define __BIGGEST_ALIGNMENT__ 8 +// PPC603E:#define __BIGGEST_ALIGNMENT__ 16 // PPC603E:#define __BIG_ENDIAN__ 1 // PPC603E:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // PPC603E:#define __CHAR16_TYPE__ unsigned short @@ -5199,6 +5436,7 @@ // PPC603E:#define __LDBL_MIN_10_EXP__ (-291) // PPC603E:#define __LDBL_MIN_EXP__ (-968) // PPC603E:#define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L +// PPC603E:#define __LONGDOUBLE128 1 // PPC603E:#define __LONG_DOUBLE_128__ 1 // PPC603E:#define __LONG_LONG_MAX__ 9223372036854775807LL // PPC603E:#define __LONG_MAX__ 2147483647L @@ -5287,7 +5525,7 @@ // PPC64:#define _ARCH_PWR7 1 // PPC64:#define _BIG_ENDIAN 1 // PPC64:#define _LP64 1 -// PPC64:#define __BIGGEST_ALIGNMENT__ 8 +// PPC64:#define __BIGGEST_ALIGNMENT__ 16 // PPC64:#define __BIG_ENDIAN__ 1 // PPC64:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // PPC64:#define __CHAR16_TYPE__ unsigned short @@ -5323,6 +5561,7 @@ // PPC64:#define __FLT_MIN_EXP__ (-125) // PPC64:#define __FLT_MIN__ 1.17549435e-38F // PPC64:#define __FLT_RADIX__ 2 +// PPC64:#define __HAVE_BSWAP__ 1 // PPC64:#define __INT16_C_SUFFIX__ // PPC64:#define __INT16_FMTd__ "hd" // PPC64:#define __INT16_FMTi__ "hi" @@ -5400,6 +5639,7 @@ // PPC64:#define __LDBL_MIN_10_EXP__ (-291) // PPC64:#define __LDBL_MIN_EXP__ (-968) // PPC64:#define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L +// PPC64:#define __LONGDOUBLE128 1 // PPC64:#define __LONG_DOUBLE_128__ 1 // PPC64:#define __LONG_LONG_MAX__ 9223372036854775807LL // PPC64:#define __LONG_MAX__ 9223372036854775807L @@ -5491,7 +5731,7 @@ // PPC64LE:#define _CALL_ELF 2 // PPC64LE:#define _LITTLE_ENDIAN 1 // PPC64LE:#define _LP64 1 -// PPC64LE:#define __BIGGEST_ALIGNMENT__ 8 +// PPC64LE:#define __BIGGEST_ALIGNMENT__ 16 // PPC64LE:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // PPC64LE:#define __CHAR16_TYPE__ unsigned short // PPC64LE:#define __CHAR32_TYPE__ unsigned int @@ -5526,6 +5766,7 @@ // PPC64LE:#define __FLT_MIN_EXP__ (-125) // PPC64LE:#define __FLT_MIN__ 1.17549435e-38F // PPC64LE:#define __FLT_RADIX__ 2 +// PPC64LE:#define __HAVE_BSWAP__ 1 // PPC64LE:#define __INT16_C_SUFFIX__ // PPC64LE:#define __INT16_FMTd__ "hd" // PPC64LE:#define __INT16_FMTi__ "hi" @@ -5604,6 +5845,7 @@ // PPC64LE:#define __LDBL_MIN_EXP__ (-968) // PPC64LE:#define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L // PPC64LE:#define __LITTLE_ENDIAN__ 1 +// PPC64LE:#define __LONGDOUBLE128 1 // PPC64LE:#define __LONG_DOUBLE_128__ 1 // PPC64LE:#define __LONG_LONG_MAX__ 9223372036854775807LL // PPC64LE:#define __LONG_MAX__ 9223372036854775807L @@ -5635,6 +5877,7 @@ // PPC64LE:#define __SIZE_MAX__ 18446744073709551615UL // PPC64LE:#define __SIZE_TYPE__ long unsigned int // PPC64LE:#define __SIZE_WIDTH__ 64 +// PPC64LE:#define __STRUCT_PARM_ALIGN__ 16 // PPC64LE:#define __UINT16_C_SUFFIX__ // PPC64LE:#define __UINT16_MAX__ 65535 // PPC64LE:#define __UINT16_TYPE__ unsigned short @@ -5855,6 +6098,9 @@ // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-none-none -target-cpu power8 -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix PPCPOWER8 %s // +// ppc64le also defaults to power8. +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64le-none-none -target-cpu ppc64le -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix PPCPOWER8 %s +// // PPCPOWER8:#define _ARCH_PPC 1 // PPCPOWER8:#define _ARCH_PPC64 1 // PPCPOWER8:#define _ARCH_PPCGR 1 @@ -5903,8 +6149,9 @@ // PPC64-LINUX:#define _ARCH_PPC 1 // PPC64-LINUX:#define _ARCH_PPC64 1 // PPC64-LINUX:#define _BIG_ENDIAN 1 +// PPC64-LINUX:#define _CALL_LINUX 1 // PPC64-LINUX:#define _LP64 1 -// PPC64-LINUX:#define __BIGGEST_ALIGNMENT__ 8 +// PPC64-LINUX:#define __BIGGEST_ALIGNMENT__ 16 // PPC64-LINUX:#define __BIG_ENDIAN__ 1 // PPC64-LINUX:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // PPC64-LINUX:#define __CHAR16_TYPE__ unsigned short @@ -5940,6 +6187,7 @@ // PPC64-LINUX:#define __FLT_MIN_EXP__ (-125) // PPC64-LINUX:#define __FLT_MIN__ 1.17549435e-38F // PPC64-LINUX:#define __FLT_RADIX__ 2 +// PPC64-LINUX:#define __HAVE_BSWAP__ 1 // PPC64-LINUX:#define __INT16_C_SUFFIX__ // PPC64-LINUX:#define __INT16_FMTd__ "hd" // PPC64-LINUX:#define __INT16_FMTi__ "hi" @@ -6017,6 +6265,7 @@ // PPC64-LINUX:#define __LDBL_MIN_10_EXP__ (-291) // PPC64-LINUX:#define __LDBL_MIN_EXP__ (-968) // PPC64-LINUX:#define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L +// PPC64-LINUX:#define __LONGDOUBLE128 1 // PPC64-LINUX:#define __LONG_DOUBLE_128__ 1 // PPC64-LINUX:#define __LONG_LONG_MAX__ 9223372036854775807LL // PPC64-LINUX:#define __LONG_MAX__ 9223372036854775807L @@ -6105,12 +6354,17 @@ // PPC64-ELFv1:#define _CALL_ELF 1 // PPC64-ELFv2:#define _CALL_ELF 2 // +// Most of this is encompassed in other places. +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64le-unknown-linux-gnu -target-abi elfv2 < /dev/null | FileCheck -match-full-lines -check-prefix PPC64LE-LINUX %s +// +// PPC64LE-LINUX:#define _CALL_LINUX 1 +// // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-none-none -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix PPC %s // // PPC:#define _ARCH_PPC 1 // PPC:#define _BIG_ENDIAN 1 // PPC-NOT:#define _LP64 -// PPC:#define __BIGGEST_ALIGNMENT__ 8 +// PPC:#define __BIGGEST_ALIGNMENT__ 16 // PPC:#define __BIG_ENDIAN__ 1 // PPC:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // PPC:#define __CHAR16_TYPE__ unsigned short @@ -6146,6 +6400,7 @@ // PPC:#define __FLT_MIN_EXP__ (-125) // PPC:#define __FLT_MIN__ 1.17549435e-38F // PPC:#define __FLT_RADIX__ 2 +// PPC:#define __HAVE_BSWAP__ 1 // PPC:#define __INT16_C_SUFFIX__ // PPC:#define __INT16_FMTd__ "hd" // PPC:#define __INT16_FMTi__ "hi" @@ -6223,6 +6478,7 @@ // PPC:#define __LDBL_MIN_10_EXP__ (-291) // PPC:#define __LDBL_MIN_EXP__ (-968) // PPC:#define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L +// PPC:#define __LONGDOUBLE128 1 // PPC:#define __LONG_DOUBLE_128__ 1 // PPC:#define __LONG_LONG_MAX__ 9223372036854775807LL // PPC:#define __LONG_MAX__ 2147483647L @@ -6301,7 +6557,7 @@ // PPC-LINUX:#define _ARCH_PPC 1 // PPC-LINUX:#define _BIG_ENDIAN 1 // PPC-LINUX-NOT:#define _LP64 -// PPC-LINUX:#define __BIGGEST_ALIGNMENT__ 8 +// PPC-LINUX:#define __BIGGEST_ALIGNMENT__ 16 // PPC-LINUX:#define __BIG_ENDIAN__ 1 // PPC-LINUX:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // PPC-LINUX:#define __CHAR16_TYPE__ unsigned short @@ -6337,6 +6593,7 @@ // PPC-LINUX:#define __FLT_MIN_EXP__ (-125) // PPC-LINUX:#define __FLT_MIN__ 1.17549435e-38F // PPC-LINUX:#define __FLT_RADIX__ 2 +// PPC-LINUX:#define __HAVE_BSWAP__ 1 // PPC-LINUX:#define __INT16_C_SUFFIX__ // PPC-LINUX:#define __INT16_FMTd__ "hd" // PPC-LINUX:#define __INT16_FMTi__ "hi" @@ -6414,6 +6671,7 @@ // PPC-LINUX:#define __LDBL_MIN_10_EXP__ (-291) // PPC-LINUX:#define __LDBL_MIN_EXP__ (-968) // PPC-LINUX:#define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L +// PPC-LINUX:#define __LONGDOUBLE128 1 // PPC-LINUX:#define __LONG_DOUBLE_128__ 1 // PPC-LINUX:#define __LONG_LONG_MAX__ 9223372036854775807LL // PPC-LINUX:#define __LONG_MAX__ 2147483647L @@ -6489,6 +6747,10 @@ // PPC-LINUX:#define __powerpc__ 1 // PPC-LINUX:#define __ppc__ 1 // +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-unknown-linux-gnu -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix PPC32-LINUX %s +// +// PPC32-LINUX-NOT: _CALL_LINUX +// // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-apple-darwin8 < /dev/null | FileCheck -match-full-lines -check-prefix PPC-DARWIN %s // // PPC-DARWIN:#define _ARCH_PPC 1 @@ -6528,6 +6790,7 @@ // PPC-DARWIN:#define __FLT_MIN_EXP__ (-125) // PPC-DARWIN:#define __FLT_MIN__ 1.17549435e-38F // PPC-DARWIN:#define __FLT_RADIX__ 2 +// PPC-DARWIN:#define __HAVE_BSWAP__ 1 // PPC-DARWIN:#define __INT16_C_SUFFIX__ // PPC-DARWIN:#define __INT16_FMTd__ "hd" // PPC-DARWIN:#define __INT16_FMTi__ "hi" @@ -6605,6 +6868,7 @@ // PPC-DARWIN:#define __LDBL_MIN_10_EXP__ (-291) // PPC-DARWIN:#define __LDBL_MIN_EXP__ (-968) // PPC-DARWIN:#define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L +// PPC-DARWIN:#define __LONGDOUBLE128 1 // PPC-DARWIN:#define __LONG_DOUBLE_128__ 1 // PPC-DARWIN:#define __LONG_LONG_MAX__ 9223372036854775807LL // PPC-DARWIN:#define __LONG_MAX__ 2147483647L @@ -6684,7 +6948,10 @@ // PPC-DARWIN:#define __WINT_WIDTH__ 32 // PPC-DARWIN:#define __powerpc__ 1 // PPC-DARWIN:#define __ppc__ 1 -// + +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-apple-darwin8 < /dev/null | FileCheck -match-full-lines -check-prefix PPC64-DARWIN %s +// PPC64-DARWIN:#define __STRUCT_PARM_ALIGN__ 16 + // RUN: %clang_cc1 -x cl -E -dM -ffreestanding -triple=amdgcn < /dev/null | FileCheck -match-full-lines -check-prefix AMDGCN --check-prefix AMDGPU %s // RUN: %clang_cc1 -x cl -E -dM -ffreestanding -triple=r600 -target-cpu caicos < /dev/null | FileCheck -match-full-lines --check-prefix AMDGPU %s // @@ -8466,6 +8733,7 @@ // PS4:#define __unix__ 1 // PS4:#define __x86_64 1 // PS4:#define __x86_64__ 1 +// PS4:#define unix 1 // // RUN: %clang_cc1 -E -dM -triple=x86_64-pc-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix X86-64-DECLSPEC %s // RUN: %clang_cc1 -E -dM -fms-extensions -triple=x86_64-unknown-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix X86-64-DECLSPEC %s @@ -8523,8 +8791,12 @@ // LANAI: #define __lanai__ 1 // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=amd64-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=aarch64-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s // RUN: %clang_cc1 -E -dM -ffreestanding -triple=arm-unknown-openbsd6.1-gnueabi < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s // RUN: %clang_cc1 -E -dM -ffreestanding -triple=i386-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips64-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips64el-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s // RUN: %clang_cc1 -E -dM -ffreestanding -triple=sparc64-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s // OPENBSD:#define __ELF__ 1 // OPENBSD:#define __INT16_TYPE__ short @@ -8705,6 +8977,7 @@ // WEBASSEMBLY32-NEXT:#define __LONG_MAX__ 2147483647L // WEBASSEMBLY32-NOT:#define __LP64__ // WEBASSEMBLY32-NEXT:#define __NO_INLINE__ 1 +// WEBASSEMBLY32-NEXT:#define __OBJC_BOOL_IS_BOOL 0 // WEBASSEMBLY32-NEXT:#define __ORDER_BIG_ENDIAN__ 4321 // WEBASSEMBLY32-NEXT:#define __ORDER_LITTLE_ENDIAN__ 1234 // WEBASSEMBLY32-NEXT:#define __ORDER_PDP_ENDIAN__ 3412 @@ -9020,6 +9293,7 @@ // WEBASSEMBLY64-NEXT:#define __LONG_MAX__ 9223372036854775807L // WEBASSEMBLY64-NEXT:#define __LP64__ 1 // WEBASSEMBLY64-NEXT:#define __NO_INLINE__ 1 +// WEBASSEMBLY64-NEXT:#define __OBJC_BOOL_IS_BOOL 0 // WEBASSEMBLY64-NEXT:#define __ORDER_BIG_ENDIAN__ 4321 // WEBASSEMBLY64-NEXT:#define __ORDER_LITTLE_ENDIAN__ 1234 // WEBASSEMBLY64-NEXT:#define __ORDER_PDP_ENDIAN__ 3412 diff --git a/test/Preprocessor/predefined-arch-macros.c b/test/Preprocessor/predefined-arch-macros.c index 883cc4d19b29a..a0eb8cbcca9ad 100644 --- a/test/Preprocessor/predefined-arch-macros.c +++ b/test/Preprocessor/predefined-arch-macros.c @@ -525,7 +525,6 @@ // CHECK_CORE_AVX2_M32: #define __PCLMUL__ 1 // CHECK_CORE_AVX2_M32: #define __POPCNT__ 1 // CHECK_CORE_AVX2_M32: #define __RDRND__ 1 -// CHECK_CORE_AVX2_M32: #define __RTM__ 1 // CHECK_CORE_AVX2_M32: #define __SSE2__ 1 // CHECK_CORE_AVX2_M32: #define __SSE3__ 1 // CHECK_CORE_AVX2_M32: #define __SSE4_1__ 1 @@ -555,7 +554,6 @@ // CHECK_CORE_AVX2_M64: #define __PCLMUL__ 1 // CHECK_CORE_AVX2_M64: #define __POPCNT__ 1 // CHECK_CORE_AVX2_M64: #define __RDRND__ 1 -// CHECK_CORE_AVX2_M64: #define __RTM__ 1 // CHECK_CORE_AVX2_M64: #define __SSE2_MATH__ 1 // CHECK_CORE_AVX2_M64: #define __SSE2__ 1 // CHECK_CORE_AVX2_M64: #define __SSE3__ 1 @@ -591,7 +589,6 @@ // CHECK_BROADWELL_M32: #define __POPCNT__ 1 // CHECK_BROADWELL_M32: #define __RDRND__ 1 // CHECK_BROADWELL_M32: #define __RDSEED__ 1 -// CHECK_BROADWELL_M32: #define __RTM__ 1 // CHECK_BROADWELL_M32: #define __SSE2__ 1 // CHECK_BROADWELL_M32: #define __SSE3__ 1 // CHECK_BROADWELL_M32: #define __SSE4_1__ 1 @@ -623,7 +620,6 @@ // CHECK_BROADWELL_M64: #define __POPCNT__ 1 // CHECK_BROADWELL_M64: #define __RDRND__ 1 // CHECK_BROADWELL_M64: #define __RDSEED__ 1 -// CHECK_BROADWELL_M64: #define __RTM__ 1 // CHECK_BROADWELL_M64: #define __SSE2_MATH__ 1 // CHECK_BROADWELL_M64: #define __SSE2__ 1 // CHECK_BROADWELL_M64: #define __SSE3__ 1 @@ -651,15 +647,18 @@ // CHECK_SKL_M32: #define __AVX__ 1 // CHECK_SKL_M32: #define __BMI2__ 1 // CHECK_SKL_M32: #define __BMI__ 1 +// CHECK_SKL_M32: #define __CLFLUSHOPT__ 1 // CHECK_SKL_M32: #define __F16C__ 1 // CHECK_SKL_M32: #define __FMA__ 1 // CHECK_SKL_M32: #define __LZCNT__ 1 // CHECK_SKL_M32: #define __MMX__ 1 +// CHECK_SKL_M32: #define __MPX__ 1 // CHECK_SKL_M32: #define __PCLMUL__ 1 // CHECK_SKL_M32: #define __POPCNT__ 1 // CHECK_SKL_M32: #define __RDRND__ 1 // CHECK_SKL_M32: #define __RDSEED__ 1 // CHECK_SKL_M32: #define __RTM__ 1 +// CHECK_SKL_M32: #define __SGX__ 1 // CHECK_SKL_M32: #define __SSE2__ 1 // CHECK_SKL_M32: #define __SSE3__ 1 // CHECK_SKL_M32: #define __SSE4_1__ 1 @@ -681,15 +680,18 @@ // CHECK_SKL_M64: #define __AVX__ 1 // CHECK_SKL_M64: #define __BMI2__ 1 // CHECK_SKL_M64: #define __BMI__ 1 +// CHECK_SKL_M64: #define __CLFLUSHOPT__ 1 // CHECK_SKL_M64: #define __F16C__ 1 // CHECK_SKL_M64: #define __FMA__ 1 // CHECK_SKL_M64: #define __LZCNT__ 1 // CHECK_SKL_M64: #define __MMX__ 1 +// CHECK_SKL_M64: #define __MPX__ 1 // CHECK_SKL_M64: #define __PCLMUL__ 1 // CHECK_SKL_M64: #define __POPCNT__ 1 // CHECK_SKL_M64: #define __RDRND__ 1 // CHECK_SKL_M64: #define __RDSEED__ 1 // CHECK_SKL_M64: #define __RTM__ 1 +// CHECK_SKL_M64: #define __SGX__ 1 // CHECK_SKL_M64: #define __SSE2_MATH__ 1 // CHECK_SKL_M64: #define __SSE2__ 1 // CHECK_SKL_M64: #define __SSE3__ 1 @@ -725,6 +727,7 @@ // CHECK_KNL_M32: #define __MMX__ 1 // CHECK_KNL_M32: #define __PCLMUL__ 1 // CHECK_KNL_M32: #define __POPCNT__ 1 +// CHECK_KNL_M32: #define __PREFETCHWT1__ 1 // CHECK_KNL_M32: #define __RDRND__ 1 // CHECK_KNL_M32: #define __RTM__ 1 // CHECK_KNL_M32: #define __SSE2__ 1 @@ -760,6 +763,7 @@ // CHECK_KNL_M64: #define __MMX__ 1 // CHECK_KNL_M64: #define __PCLMUL__ 1 // CHECK_KNL_M64: #define __POPCNT__ 1 +// CHECK_KNL_M64: #define __PREFETCHWT1__ 1 // CHECK_KNL_M64: #define __RDRND__ 1 // CHECK_KNL_M64: #define __RTM__ 1 // CHECK_KNL_M64: #define __SSE2_MATH__ 1 @@ -793,14 +797,18 @@ // CHECK_SKX_M32: #define __AVX__ 1 // CHECK_SKX_M32: #define __BMI2__ 1 // CHECK_SKX_M32: #define __BMI__ 1 +// CHECK_SKX_M32: #define __CLFLUSHOPT__ 1 +// CHECK_SKX_M32: #define __CLWB__ 1 // CHECK_SKX_M32: #define __F16C__ 1 // CHECK_SKX_M32: #define __FMA__ 1 // CHECK_SKX_M32: #define __LZCNT__ 1 // CHECK_SKX_M32: #define __MMX__ 1 +// CHECK_SKX_M32: #define __MPX__ 1 // CHECK_SKX_M32: #define __PCLMUL__ 1 // CHECK_SKX_M32: #define __POPCNT__ 1 // CHECK_SKX_M32: #define __RDRND__ 1 // CHECK_SKX_M32: #define __RTM__ 1 +// CHECK_SKX_M32: #define __SGX__ 1 // CHECK_SKX_M32: #define __SSE2__ 1 // CHECK_SKX_M32: #define __SSE3__ 1 // CHECK_SKX_M32: #define __SSE4_1__ 1 @@ -831,14 +839,18 @@ // CHECK_SKX_M64: #define __AVX__ 1 // CHECK_SKX_M64: #define __BMI2__ 1 // CHECK_SKX_M64: #define __BMI__ 1 +// CHECK_SKX_M64: #define __CLFLUSHOPT__ 1 +// CHECK_SKX_M64: #define __CLWB__ 1 // CHECK_SKX_M64: #define __F16C__ 1 // CHECK_SKX_M64: #define __FMA__ 1 // CHECK_SKX_M64: #define __LZCNT__ 1 // CHECK_SKX_M64: #define __MMX__ 1 +// CHECK_SKX_M64: #define __MPX__ 1 // CHECK_SKX_M64: #define __PCLMUL__ 1 // CHECK_SKX_M64: #define __POPCNT__ 1 // CHECK_SKX_M64: #define __RDRND__ 1 // CHECK_SKX_M64: #define __RTM__ 1 +// CHECK_SKX_M64: #define __SGX__ 1 // CHECK_SKX_M64: #define __SSE2_MATH__ 1 // CHECK_SKX_M64: #define __SSE2__ 1 // CHECK_SKX_M64: #define __SSE3__ 1 @@ -874,14 +886,17 @@ // CHECK_CNL_M32: #define __AVX__ 1 // CHECK_CNL_M32: #define __BMI2__ 1 // CHECK_CNL_M32: #define __BMI__ 1 +// CHECK_CNL_M32: #define __CLFLUSHOPT__ 1 // CHECK_CNL_M32: #define __F16C__ 1 // CHECK_CNL_M32: #define __FMA__ 1 // CHECK_CNL_M32: #define __LZCNT__ 1 // CHECK_CNL_M32: #define __MMX__ 1 +// CHECK_CNL_M32: #define __MPX__ 1 // CHECK_CNL_M32: #define __PCLMUL__ 1 // CHECK_CNL_M32: #define __POPCNT__ 1 // CHECK_CNL_M32: #define __RDRND__ 1 // CHECK_CNL_M32: #define __RTM__ 1 +// CHECK_CNL_M32: #define __SGX__ 1 // CHECK_CNL_M32: #define __SHA__ 1 // CHECK_CNL_M32: #define __SSE2__ 1 // CHECK_CNL_M32: #define __SSE3__ 1 @@ -912,14 +927,17 @@ // CHECK_CNL_M64: #define __AVX__ 1 // CHECK_CNL_M64: #define __BMI2__ 1 // CHECK_CNL_M64: #define __BMI__ 1 +// CHECK_CNL_M64: #define __CLFLUSHOPT__ 1 // CHECK_CNL_M64: #define __F16C__ 1 // CHECK_CNL_M64: #define __FMA__ 1 // CHECK_CNL_M64: #define __LZCNT__ 1 // CHECK_CNL_M64: #define __MMX__ 1 +// CHECK_CNL_M64: #define __MPX__ 1 // CHECK_CNL_M64: #define __PCLMUL__ 1 // CHECK_CNL_M64: #define __POPCNT__ 1 // CHECK_CNL_M64: #define __RDRND__ 1 // CHECK_CNL_M64: #define __RTM__ 1 +// CHECK_CNL_M64: #define __SGX__ 1 // CHECK_CNL_M64: #define __SHA__ 1 // CHECK_CNL_M64: #define __SSE2__ 1 // CHECK_CNL_M64: #define __SSE3__ 1 @@ -1860,6 +1878,8 @@ // CHECK_ZNVER1_M32: #define __AVX__ 1 // CHECK_ZNVER1_M32: #define __BMI2__ 1 // CHECK_ZNVER1_M32: #define __BMI__ 1 +// CHECK_ZNVER1_M32: #define __CLFLUSHOPT__ 1 +// CHECK_ZNVER1_M32: #define __CLZERO__ 1 // CHECK_ZNVER1_M32: #define __F16C__ 1 // CHECK_ZNVER1_M32: #define __FMA__ 1 // CHECK_ZNVER1_M32: #define __FSGSBASE__ 1 @@ -1900,6 +1920,8 @@ // CHECK_ZNVER1_M64: #define __AVX__ 1 // CHECK_ZNVER1_M64: #define __BMI2__ 1 // CHECK_ZNVER1_M64: #define __BMI__ 1 +// CHECK_ZNVER1_M64: #define __CLFLUSHOPT__ 1 +// CHECK_ZNVER1_M64: #define __CLZERO__ 1 // CHECK_ZNVER1_M64: #define __F16C__ 1 // CHECK_ZNVER1_M64: #define __FMA__ 1 // CHECK_ZNVER1_M64: #define __FSGSBASE__ 1 @@ -1935,6 +1957,14 @@ // End X86/GCC/Linux tests ------------------ // Begin PPC/GCC/Linux tests ---------------- +// Check that VSX also turns on altivec. +// RUN: %clang -mvsx -E -dM %s -o - 2>&1 \ +// RUN: -target powerpc-unknown-linux \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_VSX_M32 +// +// CHECK_PPC_VSX_M32: #define __ALTIVEC__ 1 +// CHECK_PPC_VSX_M32: #define __VSX__ 1 +// // RUN: %clang -mvsx -E -dM %s -o - 2>&1 \ // RUN: -target powerpc64-unknown-linux \ // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_VSX_M64 @@ -1958,6 +1988,24 @@ // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_CRYPTO_M64 // // CHECK_PPC_CRYPTO_M64: #define __CRYPTO__ 1 + +// HTM is available on power8 or later which includes all of powerpc64le as an +// ABI choice. Test that, the cpus, and the option. +// RUN: %clang -mhtm -E -dM %s -o - 2>&1 \ +// RUN: -target powerpc64-unknown-linux \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_HTM +// RUN: %clang -E -dM %s -o - 2>&1 \ +// RUN: -target powerpc64le-unknown-linux \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_HTM +// RUN: %clang -mcpu=pwr8 -E -dM %s -o - 2>&1 \ +// RUN: -target powerpc64-unknown-linux \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_HTM +// RUN: %clang -mcpu=pwr9 -E -dM %s -o - 2>&1 \ +// RUN: -target powerpc64-unknown-linux \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_HTM +// +// CHECK_PPC_HTM: #define __HTM__ 1 + // // RUN: %clang -mcpu=ppc64 -E -dM %s -o - 2>&1 \ // RUN: -target powerpc64-unknown-unknown \ @@ -2035,35 +2083,76 @@ // Begin SystemZ/GCC/Linux tests ---------------- // +// RUN: %clang -march=arch8 -E -dM %s -o - 2>&1 \ +// RUN: -target s390x-unknown-linux \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH8 // RUN: %clang -march=z10 -E -dM %s -o - 2>&1 \ // RUN: -target s390x-unknown-linux \ -// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_Z10 -// -// CHECK_SYSTEMZ_Z10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 -// CHECK_SYSTEMZ_Z10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 -// CHECK_SYSTEMZ_Z10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 -// CHECK_SYSTEMZ_Z10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 -// CHECK_SYSTEMZ_Z10: #define __LONG_DOUBLE_128__ 1 -// CHECK_SYSTEMZ_Z10: #define __s390__ 1 -// CHECK_SYSTEMZ_Z10: #define __s390x__ 1 -// CHECK_SYSTEMZ_Z10: #define __zarch__ 1 +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH8 +// +// CHECK_SYSTEMZ_ARCH8: #define __ARCH__ 8 +// CHECK_SYSTEMZ_ARCH8: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +// CHECK_SYSTEMZ_ARCH8: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +// CHECK_SYSTEMZ_ARCH8: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +// CHECK_SYSTEMZ_ARCH8: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +// CHECK_SYSTEMZ_ARCH8: #define __LONG_DOUBLE_128__ 1 +// CHECK_SYSTEMZ_ARCH8: #define __s390__ 1 +// CHECK_SYSTEMZ_ARCH8: #define __s390x__ 1 +// CHECK_SYSTEMZ_ARCH8: #define __zarch__ 1 +// +// RUN: %clang -march=arch9 -E -dM %s -o - 2>&1 \ +// RUN: -target s390x-unknown-linux \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH9 +// RUN: %clang -march=z196 -E -dM %s -o - 2>&1 \ +// RUN: -target s390x-unknown-linux \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH9 +// +// CHECK_SYSTEMZ_ARCH9: #define __ARCH__ 9 +// CHECK_SYSTEMZ_ARCH9: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +// CHECK_SYSTEMZ_ARCH9: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +// CHECK_SYSTEMZ_ARCH9: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +// CHECK_SYSTEMZ_ARCH9: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +// CHECK_SYSTEMZ_ARCH9: #define __LONG_DOUBLE_128__ 1 +// CHECK_SYSTEMZ_ARCH9: #define __s390__ 1 +// CHECK_SYSTEMZ_ARCH9: #define __s390x__ 1 +// CHECK_SYSTEMZ_ARCH9: #define __zarch__ 1 // +// RUN: %clang -march=arch10 -E -dM %s -o - 2>&1 \ +// RUN: -target s390x-unknown-linux \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH10 // RUN: %clang -march=zEC12 -E -dM %s -o - 2>&1 \ // RUN: -target s390x-unknown-linux \ -// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ZEC12 -// RUN: %clang -march=arch10 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH10 +// +// CHECK_SYSTEMZ_ARCH10: #define __ARCH__ 10 +// CHECK_SYSTEMZ_ARCH10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +// CHECK_SYSTEMZ_ARCH10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +// CHECK_SYSTEMZ_ARCH10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +// CHECK_SYSTEMZ_ARCH10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +// CHECK_SYSTEMZ_ARCH10: #define __HTM__ 1 +// CHECK_SYSTEMZ_ARCH10: #define __LONG_DOUBLE_128__ 1 +// CHECK_SYSTEMZ_ARCH10: #define __s390__ 1 +// CHECK_SYSTEMZ_ARCH10: #define __s390x__ 1 +// CHECK_SYSTEMZ_ARCH10: #define __zarch__ 1 +// +// RUN: %clang -march=arch11 -E -dM %s -o - 2>&1 \ +// RUN: -target s390x-unknown-linux \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH11 +// RUN: %clang -march=z13 -E -dM %s -o - 2>&1 \ // RUN: -target s390x-unknown-linux \ -// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ZEC12 -// -// CHECK_SYSTEMZ_ZEC12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 -// CHECK_SYSTEMZ_ZEC12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 -// CHECK_SYSTEMZ_ZEC12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 -// CHECK_SYSTEMZ_ZEC12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 -// CHECK_SYSTEMZ_ZEC12: #define __HTM__ 1 -// CHECK_SYSTEMZ_ZEC12: #define __LONG_DOUBLE_128__ 1 -// CHECK_SYSTEMZ_ZEC12: #define __s390__ 1 -// CHECK_SYSTEMZ_ZEC12: #define __s390x__ 1 -// CHECK_SYSTEMZ_ZEC12: #define __zarch__ 1 +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH11 +// +// CHECK_SYSTEMZ_ARCH11: #define __ARCH__ 11 +// CHECK_SYSTEMZ_ARCH11: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +// CHECK_SYSTEMZ_ARCH11: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +// CHECK_SYSTEMZ_ARCH11: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +// CHECK_SYSTEMZ_ARCH11: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +// CHECK_SYSTEMZ_ARCH11: #define __HTM__ 1 +// CHECK_SYSTEMZ_ARCH11: #define __LONG_DOUBLE_128__ 1 +// CHECK_SYSTEMZ_ARCH11: #define __VX__ 1 +// CHECK_SYSTEMZ_ARCH11: #define __s390__ 1 +// CHECK_SYSTEMZ_ARCH11: #define __s390x__ 1 +// CHECK_SYSTEMZ_ARCH11: #define __zarch__ 1 // // RUN: %clang -mhtm -E -dM %s -o - 2>&1 \ // RUN: -target s390x-unknown-linux \ @@ -2071,6 +2160,12 @@ // // CHECK_SYSTEMZ_HTM: #define __HTM__ 1 // +// RUN: %clang -mvx -E -dM %s -o - 2>&1 \ +// RUN: -target s390x-unknown-linux \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_VX +// +// CHECK_SYSTEMZ_VX: #define __VX__ 1 +// // RUN: %clang -fzvector -E -dM %s -o - 2>&1 \ // RUN: -target s390x-unknown-linux \ // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ZVECTOR diff --git a/test/Preprocessor/x86_target_features.c b/test/Preprocessor/x86_target_features.c index 43cf615546b1a..a201900ba7623 100644 --- a/test/Preprocessor/x86_target_features.c +++ b/test/Preprocessor/x86_target_features.c @@ -352,3 +352,7 @@ // NOXSAVE-NOT: #define __XSAVEOPT__ 1 // NOXSAVE-NOT: #define __XSAVE__ 1 + +// RUN: %clang -target i386-unknown-unknown -march=atom -mclflushopt -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=CLFLUSHOPT %s + +// CLFLUSHOPT: #define __CLFLUSHOPT__ 1 |