diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2017-02-06 17:04:22 +0000 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2017-02-06 17:04:22 +0000 |
commit | 82a86cb155d1dff1dea9d6adff946abb93b996dc (patch) | |
tree | fd0ac2994d6eaf30f7b1f0a367715b41c8f832f1 /clang/test/Preprocessor/predefined-arch-macros.c | |
parent | c7e81bf38108e5676991561bbfe2205e76f62d79 (diff) | |
download | bcm5719-llvm-82a86cb155d1dff1dea9d6adff946abb93b996dc.tar.gz bcm5719-llvm-82a86cb155d1dff1dea9d6adff946abb93b996dc.zip |
[SystemZ] Provide predefined __ARCH__ and __VX__ macros
GCC 7 will predefine two new macros on s390x:
- __ARCH__ indicates the ISA architecture level
- __VX__ indicates that the vector facility is available
This adds those macros to clang as well to ensure continued
compatibility with GCC.
llvm-svn: 294197
Diffstat (limited to 'clang/test/Preprocessor/predefined-arch-macros.c')
-rw-r--r-- | clang/test/Preprocessor/predefined-arch-macros.c | 93 |
1 files changed, 70 insertions, 23 deletions
diff --git a/clang/test/Preprocessor/predefined-arch-macros.c b/clang/test/Preprocessor/predefined-arch-macros.c index 883cc4d19b2..1e3d5c175c1 100644 --- a/clang/test/Preprocessor/predefined-arch-macros.c +++ b/clang/test/Preprocessor/predefined-arch-macros.c @@ -2035,35 +2035,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 +2112,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 |