xref: /aosp_15_r20/external/clang/test/Preprocessor/arm-acle-6.4.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang -target arm-eabi -x c -E -dM %s -o - | FileCheck %s
2*67e74705SXin Li // RUN: %clang -target thumb-eabi -x c -E -dM %s -o - | FileCheck %s
3*67e74705SXin Li 
4*67e74705SXin Li // CHECK-NOT: __ARM_64BIT_STATE
5*67e74705SXin Li // CHECK-NOT: __ARM_ARCH_ISA_A64
6*67e74705SXin Li // CHECK-NOT: __ARM_BIG_ENDIAN
7*67e74705SXin Li // CHECK:     __ARM_32BIT_STATE 1
8*67e74705SXin Li // CHECK:     __ARM_ACLE 200
9*67e74705SXin Li 
10*67e74705SXin Li // RUN: %clang -target armeb-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-BIGENDIAN
11*67e74705SXin Li // RUN: %clang -target thumbeb-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-BIGENDIAN
12*67e74705SXin Li 
13*67e74705SXin Li // CHECK-BIGENDIAN: __ARM_BIG_ENDIAN 1
14*67e74705SXin Li 
15*67e74705SXin Li // RUN: %clang -target armv7-none-linux-eabi -mno-unaligned-access -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-UNALIGNED
16*67e74705SXin Li 
17*67e74705SXin Li // CHECK-UNALIGNED-NOT: __ARM_FEATURE_UNALIGNED
18*67e74705SXin Li 
19*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -march=armv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V4
20*67e74705SXin Li 
21*67e74705SXin Li // CHECK-V4-NOT: __ARM_ARCH_ISA_THUMB
22*67e74705SXin Li // CHECK-V4-NOT: __ARM_ARCH_PROFILE
23*67e74705SXin Li // CHECK-V4-NOT: __ARM_FEATURE_CLZ
24*67e74705SXin Li // CHECK-V4-NOT: __ARM_FEATURE_LDREX
25*67e74705SXin Li // CHECK-V4-NOT: __ARM_FEATURE_UNALIGNED
26*67e74705SXin Li // CHECK-V4-NOT: __ARM_FEATURE_DSP
27*67e74705SXin Li // CHECK-V4-NOT: __ARM_FEATURE_SAT
28*67e74705SXin Li // CHECK-V4-NOT: __ARM_FEATURE_QBIT
29*67e74705SXin Li // CHECK-V4-NOT: __ARM_FEATURE_SIMD32
30*67e74705SXin Li // CHECK-V4-NOT: __ARM_FEATURE_IDIV
31*67e74705SXin Li // CHECK-V4:     __ARM_ARCH 4
32*67e74705SXin Li // CHECK-V4:     __ARM_ARCH_ISA_ARM 1
33*67e74705SXin Li 
34*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -march=armv4t -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V4T
35*67e74705SXin Li 
36*67e74705SXin Li // CHECK-V4T: __ARM_ARCH_ISA_THUMB 1
37*67e74705SXin Li 
38*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -march=armv5t -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V5
39*67e74705SXin Li 
40*67e74705SXin Li // CHECK-V5-NOT: __ARM_ARCH_PROFILE
41*67e74705SXin Li // CHECK-V5-NOT: __ARM_FEATURE_LDREX
42*67e74705SXin Li // CHECK-V5-NOT: __ARM_FEATURE_UNALIGNED
43*67e74705SXin Li // CHECK-V5-NOT: __ARM_FEATURE_DSP
44*67e74705SXin Li // CHECK-V5-NOT: __ARM_FEATURE_SAT
45*67e74705SXin Li // CHECK-V5-NOT: __ARM_FEATURE_QBIT
46*67e74705SXin Li // CHECK-V5-NOT: __ARM_FEATURE_SIMD32
47*67e74705SXin Li // CHECK-V5-NOT: __ARM_FEATURE_IDIV
48*67e74705SXin Li // CHECK-V5:     __ARM_ARCH 5
49*67e74705SXin Li // CHECK-V5:     __ARM_ARCH_ISA_ARM 1
50*67e74705SXin Li // CHECK-V5:     __ARM_ARCH_ISA_THUMB 1
51*67e74705SXin Li // CHECK-V5:     __ARM_FEATURE_CLZ 1
52*67e74705SXin Li 
53*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -march=armv5te -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V5E
54*67e74705SXin Li 
55*67e74705SXin Li // CHECK-V5E: __ARM_FEATURE_DSP 1
56*67e74705SXin Li // CHECK-V5E: __ARM_FEATURE_QBIT 1
57*67e74705SXin Li 
58*67e74705SXin Li // RUN: %clang -target armv6-none-netbsd-eabi -mcpu=arm1136jf-s -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V6
59*67e74705SXin Li 
60*67e74705SXin Li // CHECK-V6-NOT: __ARM_ARCH_PROFILE
61*67e74705SXin Li // CHECK-V6-NOT: __ARM_FEATURE_IDIV
62*67e74705SXin Li // CHECK-V6:     __ARM_ARCH 6
63*67e74705SXin Li // CHECK-V6:     __ARM_ARCH_ISA_ARM 1
64*67e74705SXin Li // CHECK-V6:     __ARM_ARCH_ISA_THUMB 1
65*67e74705SXin Li // CHECK-V6:     __ARM_FEATURE_CLZ 1
66*67e74705SXin Li // CHECK-V6:     __ARM_FEATURE_DSP 1
67*67e74705SXin Li // CHECK-V6:     __ARM_FEATURE_LDREX 0x4
68*67e74705SXin Li // CHECK-V6:     __ARM_FEATURE_QBIT 1
69*67e74705SXin Li // CHECK-V6:     __ARM_FEATURE_SAT 1
70*67e74705SXin Li // CHECK-V6:     __ARM_FEATURE_SIMD32 1
71*67e74705SXin Li // CHECK-V6:     __ARM_FEATURE_UNALIGNED 1
72*67e74705SXin Li 
73*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -march=armv6m -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V6M
74*67e74705SXin Li 
75*67e74705SXin Li // CHECK-V6M-NOT: __ARM_ARCH_ISA_ARM
76*67e74705SXin Li // CHECK-V6M-NOT: __ARM_FEATURE_CLZ
77*67e74705SXin Li // CHECK-V6M-NOT: __ARM_FEATURE_LDREX
78*67e74705SXin Li // CHECK-V6M-NOT: __ARM_FEATURE_UNALIGNED
79*67e74705SXin Li // CHECK-V6M-NOT: __ARM_FEATURE_DSP
80*67e74705SXin Li // CHECK-V6M-NOT: __ARM_FEATURE_QBIT
81*67e74705SXin Li // CHECK-V6M-NOT: __ARM_FEATURE_SAT
82*67e74705SXin Li // CHECK-V6M-NOT: __ARM_FEATURE_SIMD32
83*67e74705SXin Li // CHECK-V6M-NOT: __ARM_FEATURE_IDIV
84*67e74705SXin Li // CHECK-V6M:     __ARM_ARCH 6
85*67e74705SXin Li // CHECK-V6M:     __ARM_ARCH_ISA_THUMB 1
86*67e74705SXin Li // CHECK-V6M:     __ARM_ARCH_PROFILE 'M'
87*67e74705SXin Li 
88*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -march=armv6t2 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V6T2
89*67e74705SXin Li 
90*67e74705SXin Li // CHECK-V6T2: __ARM_ARCH_ISA_THUMB 2
91*67e74705SXin Li 
92*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -march=armv6k -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V6K
93*67e74705SXin Li 
94*67e74705SXin Li // CHECK-V6K: __ARM_FEATURE_LDREX 0xF
95*67e74705SXin Li 
96*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -march=armv7-a -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A
97*67e74705SXin Li 
98*67e74705SXin Li // CHECK-V7A: __ARM_ARCH 7
99*67e74705SXin Li // CHECK-V7A: __ARM_ARCH_ISA_ARM 1
100*67e74705SXin Li // CHECK-V7A: __ARM_ARCH_ISA_THUMB 2
101*67e74705SXin Li // CHECK-V7A: __ARM_ARCH_PROFILE 'A'
102*67e74705SXin Li // CHECK-V7A: __ARM_FEATURE_CLZ 1
103*67e74705SXin Li // CHECK-V7A: __ARM_FEATURE_DSP 1
104*67e74705SXin Li // CHECK-V7A: __ARM_FEATURE_LDREX 0xF
105*67e74705SXin Li // CHECK-V7A: __ARM_FEATURE_QBIT 1
106*67e74705SXin Li // CHECK-V7A: __ARM_FEATURE_SAT 1
107*67e74705SXin Li // CHECK-V7A: __ARM_FEATURE_SIMD32 1
108*67e74705SXin Li // CHECK-V7A: __ARM_FEATURE_UNALIGNED 1
109*67e74705SXin Li 
110*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a7 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-IDIV
111*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a12 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-IDIV
112*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a15 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-IDIV
113*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a17 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-IDIV
114*67e74705SXin Li 
115*67e74705SXin Li // CHECK-V7A-IDIV: __ARM_FEATURE_IDIV 1
116*67e74705SXin Li 
117*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a5 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-NO-IDIV
118*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a8 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-NO-IDIV
119*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a9 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-NO-IDIV
120*67e74705SXin Li 
121*67e74705SXin Li // CHECK-V7A-NO-IDIV-NOT: __ARM_FEATURE_IDIV
122*67e74705SXin Li 
123*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -march=armv7-r -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7R
124*67e74705SXin Li 
125*67e74705SXin Li // CHECK-V7R: __ARM_ARCH 7
126*67e74705SXin Li // CHECK-V7R: __ARM_ARCH_ISA_ARM 1
127*67e74705SXin Li // CHECK-V7R: __ARM_ARCH_ISA_THUMB 2
128*67e74705SXin Li // CHECK-V7R: __ARM_ARCH_PROFILE 'R'
129*67e74705SXin Li // CHECK-V7R: __ARM_FEATURE_CLZ 1
130*67e74705SXin Li // CHECK-V7R: __ARM_FEATURE_DSP 1
131*67e74705SXin Li // CHECK-V7R: __ARM_FEATURE_LDREX 0xF
132*67e74705SXin Li // CHECK-V7R: __ARM_FEATURE_QBIT 1
133*67e74705SXin Li // CHECK-V7R: __ARM_FEATURE_SAT 1
134*67e74705SXin Li // CHECK-V7R: __ARM_FEATURE_SIMD32 1
135*67e74705SXin Li // CHECK-V7R: __ARM_FEATURE_UNALIGNED 1
136*67e74705SXin Li 
137*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-r4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7R-NO-IDIV
138*67e74705SXin Li 
139*67e74705SXin Li // CHECK-V7R-NO-IDIV-NOT: __ARM_FEATURE_IDIV
140*67e74705SXin Li 
141*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-r5 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7R-IDIV
142*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-r7 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7R-IDIV
143*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-r8 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7R-IDIV
144*67e74705SXin Li 
145*67e74705SXin Li // CHECK-V7R-IDIV: __ARM_FEATURE_IDIV 1
146*67e74705SXin Li 
147*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -march=armv7-m -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7M
148*67e74705SXin Li 
149*67e74705SXin Li // CHECK-V7M-NOT: __ARM_ARCH_ISA_ARM
150*67e74705SXin Li // CHECK-V7M-NOT: __ARM_FEATURE_DSP
151*67e74705SXin Li // CHECK-V7M-NOT: __ARM_FEATURE_SIMD32
152*67e74705SXin Li // CHECK-V7M:     __ARM_ARCH 7
153*67e74705SXin Li // CHECK-V7M:     __ARM_ARCH_ISA_THUMB 2
154*67e74705SXin Li // CHECK-V7M:     __ARM_ARCH_PROFILE 'M'
155*67e74705SXin Li // CHECK-V7M:     __ARM_FEATURE_CLZ 1
156*67e74705SXin Li // CHECK-V7M:     __ARM_FEATURE_IDIV 1
157*67e74705SXin Li // CHECK-V7M:     __ARM_FEATURE_LDREX 0x7
158*67e74705SXin Li // CHECK-V7M:     __ARM_FEATURE_QBIT 1
159*67e74705SXin Li // CHECK-V7M:     __ARM_FEATURE_SAT 1
160*67e74705SXin Li // CHECK-V7M:     __ARM_FEATURE_UNALIGNED 1
161*67e74705SXin Li 
162*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -march=armv7e-m -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7EM
163*67e74705SXin Li 
164*67e74705SXin Li // CHECK-V7EM: __ARM_FEATURE_DSP 1
165*67e74705SXin Li // CHECK-V7EM: __ARM_FEATURE_SIMD32 1
166*67e74705SXin Li 
167*67e74705SXin Li // RUN: %clang -target arm-none-linux-eabi -march=armv8-a -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V8A
168*67e74705SXin Li 
169*67e74705SXin Li // CHECK-V8A: __ARM_ARCH 8
170*67e74705SXin Li // CHECK-V8A: __ARM_ARCH_ISA_ARM 1
171*67e74705SXin Li // CHECK-V8A: __ARM_ARCH_ISA_THUMB 2
172*67e74705SXin Li // CHECK-V8A: __ARM_ARCH_PROFILE 'A'
173*67e74705SXin Li // CHECK-V8A: __ARM_FEATURE_CLZ 1
174*67e74705SXin Li // CHECK-V8A: __ARM_FEATURE_DSP 1
175*67e74705SXin Li // CHECK-V8A: __ARM_FEATURE_IDIV 1
176*67e74705SXin Li // CHECK-V8A: __ARM_FEATURE_LDREX 0xF
177*67e74705SXin Li // CHECK-V8A: __ARM_FEATURE_QBIT 1
178*67e74705SXin Li // CHECK-V8A: __ARM_FEATURE_SAT 1
179*67e74705SXin Li // CHECK-V8A: __ARM_FEATURE_SIMD32 1
180*67e74705SXin Li // CHECK-V8A: __ARM_FEATURE_UNALIGNED 1
181*67e74705SXin Li 
182