1// RUN: %clang -target aarch64-none-linux-gnu -x c -E -dM %s -o - | FileCheck %s
2// RUN: %clang -target arm64-none-linux-gnu -x c -E -dM %s -o - | FileCheck %s
3
4// CHECK: __AARCH64EL__ 1
5// CHECK: __ARM_64BIT_STATE 1
6// CHECK: __ARM_ACLE 200
7// CHECK: __ARM_ALIGN_MAX_STACK_PWR 4
8// CHECK: __ARM_ARCH 8
9// CHECK: __ARM_ARCH_ISA_A64 1
10// CHECK: __ARM_ARCH_PROFILE 'A'
11// CHECK-NOT: __ARM_FEATURE_BIG_ENDIAN
12// CHECK: __ARM_FEATURE_CLZ 1
13// CHECK-NOT: __ARM_FEATURE_CRC32 1
14// CHECK-NOT: __ARM_FEATURE_CRYPTO 1
15// CHECK: __ARM_FEATURE_DIV 1
16// CHECK: __ARM_FEATURE_FMA 1
17// CHECK: __ARM_FEATURE_UNALIGNED 1
18// CHECK: __ARM_FP 0xe
19// CHECK: __ARM_FP16_FORMAT_IEEE 1
20// CHECK-NOT: __ARM_FP_FAST 1
21// CHECK: __ARM_FP_FENV_ROUNDING 1
22// CHECK: __ARM_NEON 1
23// CHECK: __ARM_NEON_FP 0xe
24// CHECK: __ARM_PCS_AAPCS64 1
25// CHECK-NOT: __ARM_SIZEOF_MINIMAL_ENUM 1
26// CHECK-NOT: __ARM_SIZEOF_WCHAR_T 2
27
28// RUN: %clang -target aarch64-none-linux-gnu -mfpu=crypto-neon-fp-armv8 -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-CRYPTO %s
29// RUN: %clang -target arm64-none-linux-gnu -mfpu=crypto-neon-fp-armv8 -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-CRYPTO %s
30// CHECK-CRYPTO: __ARM_FEATURE_CRYPTO 1
31
32// RUN: %clang -target aarch64-none-linux-gnu -mcrc -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-CRC32 %s
33// RUN: %clang -target arm64-none-linux-gnu -mcrc -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-CRC32 %s
34// CHECK-CRC32: __ARM_FEATURE_CRC32 1
35
36// RUN: %clang -target aarch64-none-linux-gnu -ffast-math -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-FASTMATH %s
37// RUN: %clang -target arm64-none-linux-gnu -ffast-math -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-FASTMATH %s
38// CHECK-FASTMATH: __ARM_FP_FAST 1
39
40// RUN: %clang -target aarch64-none-linux-gnu -fshort-wchar -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-SHORTWCHAR %s
41// RUN: %clang -target arm64-none-linux-gnu -fshort-wchar -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-SHORTWCHAR %s
42// CHECK-SHORTWCHAR: __ARM_SIZEOF_WCHAR_T 2
43
44// RUN: %clang -target aarch64-none-linux-gnu -fshort-enums -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-SHORTENUMS %s
45// RUN: %clang -target arm64-none-linux-gnu -fshort-enums -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-SHORTENUMS %s
46// CHECK-SHORTENUMS: __ARM_SIZEOF_MINIMAL_ENUM 1
47
48// RUN: %clang -target aarch64-none-linux-gnu -mfpu=neon -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-NEON %s
49// RUN: %clang -target arm64-none-linux-gnu -mfpu=neon -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-NEON %s
50// CHECK-NEON: __ARM_NEON 1
51// CHECK-NEON: __ARM_NEON_FP 0xe
52
53// RUN: %clang -target aarch64-none-linux-gnu -mcpu=cortex-a53 -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-FEATURE %s
54// RUN: %clang -target aarch64-none-linux-gnu -mcpu=cortex-a57 -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-FEATURE %s
55// RUN: %clang -target aarch64-none-linux-gnu -mcpu=cyclone -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-FEATURE %s
56// CHECK-FEATURE: __ARM_FEATURE_CRC32 1
57// CHECK-FEATURE: __ARM_FEATURE_CRYPTO 1
58// CHECK-FEATURE: __ARM_NEON 1
59// CHECK-FEATURE: __ARM_NEON_FP 0xe
60
61
62