1 // RUN: %clang -target aarch64-none-linux-gnu -x c -E -dM %s -o - | FileCheck %s
2 
3 // CHECK: __AARCH64EL__ 1
4 // CHECK: __ARM_64BIT_STATE 1
5 // CHECK: __ARM_ACLE 200
6 // CHECK: __ARM_ALIGN_MAX_STACK_PWR 4
7 // CHECK: __ARM_ARCH 8
8 // CHECK: __ARM_ARCH_ISA_A64 1
9 // CHECK: __ARM_ARCH_PROFILE 'A'
10 // CHECK-NOT: __ARM_FEATURE_BIG_ENDIAN
11 // CHECK: __ARM_FEATURE_CLZ 1
12 // CHECK-NOT: __ARM_FEATURE_CRYPTO 1
13 // CHECK: __ARM_FEATURE_DIV 1
14 // CHECK: __ARM_FEATURE_FMA 1
15 // CHECK: __ARM_FEATURE_UNALIGNED 1
16 // CHECK: __ARM_FP 0xe
17 // CHECK: __ARM_FP16_FORMAT_IEEE 1
18 // CHECK-NOT: __ARM_FP_FAST 1
19 // CHECK: __ARM_FP_FENV_ROUNDING 1
20 // CHECK-NOT: __ARM_NEON 1
21 // CHECK-NOT: __ARM_NEON_FP 7
22 // CHECK: __ARM_PCS_AAPCS64 1
23 // CHECK-NOT: __ARM_SIZEOF_MINIMAL_ENUM 1
24 // CHECK-NOT: __ARM_SIZEOF_WCHAR_T 2
25 
26 // RUN: %clang -target aarch64-none-linux-gnu -mfpu=crypto-neon-fp-armv8 -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-CRYPTO %s
27 // CHECK-CRYPTO: __ARM_FEATURE_CRYPTO 1
28 
29 // RUN: %clang -target aarch64-none-linux-gnu -ffast-math -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-FASTMATH %s
30 // CHECK-FASTMATH: __ARM_FP_FAST 1
31 
32 // RUN: %clang -target aarch64-none-linux-gnu -fshort-wchar -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-SHORTWCHAR %s
33 // CHECK-SHORTWCHAR: __ARM_SIZEOF_WCHAR_T 2
34 
35 // RUN: %clang -target aarch64-none-linux-gnu -fshort-enums -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-SHORTENUMS %s
36 // CHECK-SHORTENUMS: __ARM_SIZEOF_MINIMAL_ENUM 1
37 
38 // RUN: %clang -target aarch64-none-linux-gnu -mfpu=neon -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-NEON %s
39 // CHECK-NEON: __ARM_NEON 1
40 // CHECK-NEON: __ARM_NEON_FP 7
41