xref: /aosp_15_r20/external/clang/test/Preprocessor/arm-acle-6.5.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=none -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FP
2*67e74705SXin Li // RUN: %clang -target armv4-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FP
3*67e74705SXin Li // RUN: %clang -target armv5-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FP
4*67e74705SXin Li // RUN: %clang -target armv6m-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FP
5*67e74705SXin Li // RUN: %clang -target armv7r-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FP
6*67e74705SXin Li // RUN: %clang -target armv7m-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FP
7*67e74705SXin Li 
8*67e74705SXin Li // CHECK-NO-FP-NOT: __ARM_FP 0x{{.*}}
9*67e74705SXin Li 
10*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=vfpv3xd -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-ONLY
11*67e74705SXin Li 
12*67e74705SXin Li // CHECK-SP-ONLY: __ARM_FP 0x4
13*67e74705SXin Li 
14*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=vfpv3xd-fp16 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-HP
15*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=fpv4-sp-d16 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-HP
16*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=fpv5-sp-d16 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-HP
17*67e74705SXin Li 
18*67e74705SXin Li // CHECK-SP-HP: __ARM_FP 0x6
19*67e74705SXin Li 
20*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=vfp -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP
21*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=vfpv2 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP
22*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=vfpv3 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP
23*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=vfp3-d16 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP
24*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=neon -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP
25*67e74705SXin Li // RUN: %clang -target armv6-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP
26*67e74705SXin Li // RUN: %clang -target armv7a-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP
27*67e74705SXin Li 
28*67e74705SXin Li // CHECK-SP-DP: __ARM_FP 0xC
29*67e74705SXin Li 
30*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=vfpv3-fp16 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP-HP
31*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=vfpv3-d16-fp16 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP-HP
32*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=vfpv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP-HP
33*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=vfpv4-d16 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP-HP
34*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=fpv5-d16 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP-HP
35*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=fp-armv8 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP-HP
36*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=neon-fp16 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP-HP
37*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=neon-vfpv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP-HP
38*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=neon-fp-armv8 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP-HP
39*67e74705SXin Li // RUN: %clang -target arm-eabi -mfpu=crypto-neon-fp-armv8 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP-HP
40*67e74705SXin Li // RUN: %clang -target armv8-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP-HP
41*67e74705SXin Li 
42*67e74705SXin Li // CHECK-SP-DP-HP: __ARM_FP 0xE
43*67e74705SXin Li 
44*67e74705SXin Li // RUN: %clang -target armv4-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA
45*67e74705SXin Li // RUN: %clang -target armv5-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA
46*67e74705SXin Li // RUN: %clang -target armv6-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA
47*67e74705SXin Li // RUN: %clang -target armv6m-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA
48*67e74705SXin Li // RUN: %clang -target armv7m-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA
49*67e74705SXin Li 
50*67e74705SXin Li // CHECK-NO-FMA-NOT: __ARM_FEATURE_FMA
51*67e74705SXin Li 
52*67e74705SXin Li // RUN: %clang -target armv7a-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA
53*67e74705SXin Li // RUN: %clang -target armv7a-eabi -mfpu=vfpv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-FMA
54*67e74705SXin Li // RUN: %clang -target armv7r-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA
55*67e74705SXin Li // RUN: %clang -target armv7r-eabi -mfpu=vfpv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-FMA
56*67e74705SXin Li // RUN: %clang -target armv7em-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-FMA
57*67e74705SXin Li // RUN: %clang -target armv8-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA
58*67e74705SXin Li // RUN: %clang -target armv8-eabi -mfpu=vfpv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-FMA
59*67e74705SXin Li 
60*67e74705SXin Li // CHECK-FMA: __ARM_FEATURE_FMA 1
61*67e74705SXin Li 
62*67e74705SXin Li // RUN: %clang -target armv4-eabi -mfpu=neon -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-NEON
63*67e74705SXin Li // RUN: %clang -target armv5-eabi -mfpu=neon -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-NEON
64*67e74705SXin Li // RUN: %clang -target armv6-eabi -mfpu=neon -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-NEON
65*67e74705SXin Li 
66*67e74705SXin Li // CHECK-NO-NEON-NOT: __ARM_NEON
67*67e74705SXin Li // CHECK-NO-NEON-NOT: __ARM_NEON_FP 0x{{.*}}
68*67e74705SXin Li 
69*67e74705SXin Li // RUN: %clang -target armv7-eabi -mfpu=neon -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NEON-SP
70*67e74705SXin Li 
71*67e74705SXin Li // CHECK-NEON-SP: __ARM_NEON 1
72*67e74705SXin Li // CHECK-NEON-SP: __ARM_NEON_FP 0x4
73*67e74705SXin Li 
74*67e74705SXin Li // RUN: %clang -target armv7-eabi -mfpu=neon-fp16 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NEON-SP-HP
75*67e74705SXin Li // RUN: %clang -target armv7-eabi -mfpu=neon-vfpv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NEON-SP-HP
76*67e74705SXin Li // RUN: %clang -target armv7-eabi -mfpu=neon-fp-armv8 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NEON-SP-HP
77*67e74705SXin Li // RUN: %clang -target armv7-eabi -mfpu=crypto-neon-fp-armv8 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NEON-SP-HP
78*67e74705SXin Li 
79*67e74705SXin Li // CHECK-NEON-SP-HP: __ARM_NEON 1
80*67e74705SXin Li // CHECK-NEON-SP-HP: __ARM_NEON_FP 0x6
81*67e74705SXin Li 
82*67e74705SXin Li // RUN: %clang -target armv4-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-EXTENSIONS
83*67e74705SXin Li // RUN: %clang -target armv5-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-EXTENSIONS
84*67e74705SXin Li // RUN: %clang -target armv6-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-EXTENSIONS
85*67e74705SXin Li // RUN: %clang -target armv7-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-EXTENSIONS
86*67e74705SXin Li 
87*67e74705SXin Li // CHECK-NO-EXTENSIONS-NOT: __ARM_FEATURE_CRC32
88*67e74705SXin Li // CHECK-NO-EXTENSIONS-NOT: __ARM_FEATURE_CRYPTO
89*67e74705SXin Li // CHECK-NO-EXTENSIONS-NOT: __ARM_FEATURE_DIRECTED_ROUNDING
90*67e74705SXin Li // CHECK-NO-EXTENSIONS-NOT: __ARM_FEATURE_NUMERIC_MAXMIN
91*67e74705SXin Li 
92*67e74705SXin Li // RUN: %clang -target armv8-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-EXTENSIONS
93*67e74705SXin Li 
94*67e74705SXin Li // CHECK-EXTENSIONS: __ARM_FEATURE_CRC32 1
95*67e74705SXin Li // CHECK-EXTENSIONS: __ARM_FEATURE_CRYPTO 1
96*67e74705SXin Li // CHECK-EXTENSIONS: __ARM_FEATURE_DIRECTED_ROUNDING 1
97*67e74705SXin Li // CHECK-EXTENSIONS: __ARM_FEATURE_NUMERIC_MAXMIN 1
98*67e74705SXin Li 
99