[clang-format] Fix a bug in aligning comments above PPDirective (#72791)
[llvm-project.git] / clang / test / Preprocessor / riscv-target-features.c
blob6fc921a8c6ee155d65d9a2d762487f6392da8194
1 // RUN: %clang --target=riscv32-unknown-linux-gnu -march=rv32i -x c -E -dM %s \
2 // RUN: -o - | FileCheck %s
3 // RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64i -x c -E -dM %s \
4 // RUN: -o - | FileCheck %s
6 // CHECK-NOT: __riscv_a {{.*$}}
7 // CHECK-NOT: __riscv_atomic
8 // CHECK-NOT: __riscv_c {{.*$}}
9 // CHECK-NOT: __riscv_compressed {{.*$}}
10 // CHECK-NOT: __riscv_d {{.*$}}
11 // CHECK-NOT: __riscv_f {{.*$}}
12 // CHECK-NOT: __riscv_flen {{.*$}}
13 // CHECK-NOT: __riscv_fdiv {{.*$}}
14 // CHECK-NOT: __riscv_fsqrt {{.*$}}
15 // CHECK-NOT: __riscv_h {{.*$}}
16 // CHECK-NOT: __riscv_div {{.*$}}
17 // CHECK-NOT: __riscv_m {{.*$}}
18 // CHECK-NOT: __riscv_mul {{.*$}}
19 // CHECK-NOT: __riscv_muldiv {{.*$}}
20 // CHECK-NOT: __riscv_svinval {{.*$}}
21 // CHECK-NOT: __riscv_svnapot {{.*$}}
22 // CHECK-NOT: __riscv_svpbmt {{.*$}}
23 // CHECK-NOT: __riscv_v {{.*$}}
24 // CHECK-NOT: __riscv_v_elen {{.*$}}
25 // CHECK-NOT: __riscv_v_elen_fp {{.*$}}
26 // CHECK-NOT: __riscv_v_intrinsic {{.*$}}
27 // CHECK-NOT: __riscv_v_min_vlen {{.*$}}
28 // CHECK-NOT: __riscv_vector {{.*$}}
29 // CHECK-NOT: __riscv_xcvalu {{.*$}}
30 // CHECK-NOT: __riscv_xcvbi {{.*$}}
31 // CHECK-NOT: __riscv_xcvbitmanip {{.*$}}
32 // CHECK-NOT: __riscv_xcvelw {{.*$}}
33 // CHECK-NOT: __riscv_xcvmac {{.*$}}
34 // CHECK-NOT: __riscv_xcvmem {{.*$}}
35 // CHECK-NOT: __riscv_xcvsimd {{.*$}}
36 // CHECK-NOT: __riscv_xsfcie {{.*$}}
37 // CHECK-NOT: __riscv_xsfvcp {{.*$}}
38 // CHECK-NOT: __riscv_xsfvfnrclipxfqf {{.*$}}
39 // CHECK-NOT: __riscv_xsfvfwmaccqqq {{.*$}}
40 // CHECK-NOT: __riscv_xsfqmaccdod {{.*$}}
41 // CHECK-NOT: __riscv_xsfvqmaccqoq {{.*$}}
42 // CHECK-NOT: __riscv_xtheadba {{.*$}}
43 // CHECK-NOT: __riscv_xtheadbb {{.*$}}
44 // CHECK-NOT: __riscv_xtheadbs {{.*$}}
45 // CHECK-NOT: __riscv_xtheadcmo {{.*$}}
46 // CHECK-NOT: __riscv_xtheadcondmov {{.*$}}
47 // CHECK-NOT: __riscv_xtheadfmemidx {{.*$}}
48 // CHECK-NOT: __riscv_xtheadmac {{.*$}}
49 // CHECK-NOT: __riscv_xtheadmemidx {{.*$}}
50 // CHECK-NOT: __riscv_xtheadmempair {{.*$}}
51 // CHECK-NOT: __riscv_xtheadsync {{.*$}}
52 // CHECK-NOT: __riscv_xtheadvdot {{.*$}}
53 // CHECK-NOT: __riscv_xventanacondops {{.*$}}
54 // CHECK-NOT: __riscv_zawrs {{.*$}}
55 // CHECK-NOT: __riscv_zba {{.*$}}
56 // CHECK-NOT: __riscv_zbb {{.*$}}
57 // CHECK-NOT: __riscv_zbc {{.*$}}
58 // CHECK-NOT: __riscv_zbkb {{.*$}}
59 // CHECK-NOT: __riscv_zbkc {{.*$}}
60 // CHECK-NOT: __riscv_zbkx {{.*$}}
61 // CHECK-NOT: __riscv_zbs {{.*$}}
62 // CHECK-NOT: __riscv_zca {{.*$}}
63 // CHECK-NOT: __riscv_zcb {{.*$}}
64 // CHECK-NOT: __riscv_zcd {{.*$}}
65 // CHECK-NOT: __riscv_zce {{.*$}}
66 // CHECK-NOT: __riscv_zcf {{.*$}}
67 // CHECK-NOT: __riscv_zcmp {{.*$}}
68 // CHECK-NOT: __riscv_zcmt {{.*$}}
69 // CHECK-NOT: __riscv_zdinx {{.*$}}
70 // CHECK-NOT: __riscv_zfh {{.*$}}
71 // CHECK-NOT: __riscv_zfhmin {{.*$}}
72 // CHECK-NOT: __riscv_zfinx {{.*$}}
73 // CHECK-NOT: __riscv_zhinx {{.*$}}
74 // CHECK-NOT: __riscv_zhinxmin {{.*$}}
75 // CHECK-NOT: __riscv_zicbom {{.*$}}
76 // CHECK-NOT: __riscv_zicbop {{.*$}}
77 // CHECK-NOT: __riscv_zicboz {{.*$}}
78 // CHECK-NOT: __riscv_zicntr {{.*$}}
79 // CHECK-NOT: __riscv_zicsr {{.*$}}
80 // CHECK-NOT: __riscv_zifencei {{.*$}}
81 // CHECK-NOT: __riscv_zihintntl {{.*$}}
82 // CHECK-NOT: __riscv_zihintpause {{.*$}}
83 // CHECK-NOT: __riscv_zihpm {{.*$}}
84 // CHECK-NOT: __riscv_zk {{.*$}}
85 // CHECK-NOT: __riscv_zkn {{.*$}}
86 // CHECK-NOT: __riscv_zknd {{.*$}}
87 // CHECK-NOT: __riscv_zkne {{.*$}}
88 // CHECK-NOT: __riscv_zknh {{.*$}}
89 // CHECK-NOT: __riscv_zkr {{.*$}}
90 // CHECK-NOT: __riscv_zks {{.*$}}
91 // CHECK-NOT: __riscv_zksed {{.*$}}
92 // CHECK-NOT: __riscv_zksh {{.*$}}
93 // CHECK-NOT: __riscv_zkt {{.*$}}
94 // CHECK-NOT: __riscv_zmmul {{.*$}}
95 // CHECK-NOT: __riscv_zve32f {{.*$}}
96 // CHECK-NOT: __riscv_zve32x {{.*$}}
97 // CHECK-NOT: __riscv_zve64d {{.*$}}
98 // CHECK-NOT: __riscv_zve64f {{.*$}}
99 // CHECK-NOT: __riscv_zve64x {{.*$}}
100 // CHECK-NOT: __riscv_zvfh {{.*$}}
101 // CHECK-NOT: __riscv_zvl32b {{.*$}}
102 // CHECK-NOT: __riscv_zvl64b {{.*$}}
103 // CHECK-NOT: __riscv_zvl128b {{.*$}}
104 // CHECK-NOT: __riscv_zvl256b {{.*$}}
105 // CHECK-NOT: __riscv_zvl512b {{.*$}}
106 // CHECK-NOT: __riscv_zvl1024b {{.*$}}
107 // CHECK-NOT: __riscv_zvl2048b {{.*$}}
108 // CHECK-NOT: __riscv_zvl4096b {{.*$}}
109 // CHECK-NOT: __riscv_zvl8192b {{.*$}}
110 // CHECK-NOT: __riscv_zvl16384b {{.*$}}
111 // CHECK-NOT: __riscv_zvl32768b {{.*$}}
112 // CHECK-NOT: __riscv_zvl65536b {{.*$}}
114 // Experimental extensions
116 // CHECK-NOT: __riscv_smaia {{.*$}}
117 // CHECK-NOT: __riscv_ssaia {{.*$}}
118 // CHECK-NOT: __riscv_zacas {{.*$}}
119 // CHECK-NOT: __riscv_zfa {{.*$}}
120 // CHECK-NOT: __riscv_zfbfmin {{.*$}}
121 // CHECK-NOT: __riscv_zicfilp {{.*$}}
122 // CHECK-NOT: __riscv_zicond {{.*$}}
123 // CHECK-NOT: __riscv_ztso {{.*$}}
124 // CHECK-NOT: __riscv_zvbb {{.*$}}
125 // CHECK-NOT: __riscv_zvbc {{.*$}}
126 // CHECK-NOT: __riscv_zvfbfmin {{.*$}}
127 // CHECK-NOT: __riscv_zvfbfwma {{.*$}}
128 // CHECK-NOT: __riscv_zvkg {{.*$}}
129 // CHECK-NOT: __riscv_zvkn {{.*$}}
130 // CHECK-NOT: __riscv_zvknc {{.*$}}
131 // CHECK-NOT: __riscv_zvkned {{.*$}}
132 // CHECK-NOT: __riscv_zvkng {{.*$}}
133 // CHECK-NOT: __riscv_zvknha {{.*$}}
134 // CHECK-NOT: __riscv_zvknhb {{.*$}}
135 // CHECK-NOT: __riscv_zvks {{.*$}}
136 // CHECK-NOT: __riscv_zvksc {{.*$}}
137 // CHECK-NOT: __riscv_zvksed {{.*$}}
138 // CHECK-NOT: __riscv_zvksg {{.*$}}
139 // CHECK-NOT: __riscv_zvksh {{.*$}}
140 // CHECK-NOT: __riscv_zvkt {{.*$}}
142 // RUN: %clang --target=riscv32-unknown-linux-gnu \
143 // RUN: -march=rv32ia -x c -E -dM %s \
144 // RUN: -o - | FileCheck --check-prefix=CHECK-A-EXT %s
145 // RUN: %clang --target=riscv64-unknown-linux-gnu \
146 // RUN: -march=rv64ia -x c -E -dM %s \
147 // RUN: -o - | FileCheck --check-prefix=CHECK-A-EXT %s
148 // CHECK-A-EXT: __riscv_a 2001000{{$}}
149 // CHECK-A-EXT: __riscv_atomic 1
151 // RUN: %clang --target=riscv32-unknown-linux-gnu \
152 // RUN: -march=rv32ic -x c -E -dM %s \
153 // RUN: -o - | FileCheck --check-prefix=CHECK-C-EXT %s
154 // RUN: %clang --target=riscv64-unknown-linux-gnu \
155 // RUN: -march=rv64ic -x c -E -dM %s \
156 // RUN: -o - | FileCheck --check-prefix=CHECK-C-EXT %s
157 // CHECK-C-EXT: __riscv_c 2000000{{$}}
158 // CHECK-C-EXT: __riscv_compressed 1
160 // RUN: %clang --target=riscv32-unknown-linux-gnu \
161 // RUN: -march=rv32ifd -x c -E -dM %s \
162 // RUN: -o - | FileCheck --check-prefix=CHECK-D-EXT %s
163 // RUN: %clang --target=riscv64-unknown-linux-gnu \
164 // RUN: -march=rv64ifd -x c -E -dM %s \
165 // RUN: -o - | FileCheck --check-prefix=CHECK-D-EXT %s
166 // CHECK-D-EXT: __riscv_d 2002000{{$}}
167 // CHECK-D-EXT: __riscv_fdiv 1
168 // CHECK-D-EXT: __riscv_flen 64
169 // CHECK-D-EXT: __riscv_fsqrt 1
171 // RUN: %clang --target=riscv32-unknown-linux-gnu \
172 // RUN: -march=rv32if -x c -E -dM %s \
173 // RUN: -o - | FileCheck --check-prefix=CHECK-F-EXT %s
174 // RUN: %clang --target=riscv64-unknown-linux-gnu \
175 // RUN: -march=rv64if -x c -E -dM %s \
176 // RUN: -o - | FileCheck --check-prefix=CHECK-F-EXT %s
177 // CHECK-F-EXT: __riscv_f 2002000{{$}}
178 // CHECK-F-EXT: __riscv_fdiv 1
179 // CHECK-F-EXT: __riscv_flen 32
180 // CHECK-F-EXT: __riscv_fsqrt 1
182 // RUN: %clang --target=riscv32-unknown-linux-gnu \
183 // RUN: -march=rv32ifd -mabi=ilp32 -x c -E -dM %s \
184 // RUN: -o - | FileCheck --check-prefix=CHECK-SOFT %s
185 // RUN: %clang --target=riscv64-unknown-linux-gnu \
186 // RUN: -march=rv64ifd -mabi=lp64 -x c -E -dM %s \
187 // RUN: -o - | FileCheck --check-prefix=CHECK-SOFT %s
188 // CHECK-SOFT: __riscv_float_abi_soft 1
189 // CHECK-SOFT-NOT: __riscv_float_abi_single
190 // CHECK-SOFT-NOT: __riscv_float_abi_double
192 // RUN: %clang --target=riscv32-unknown-linux-gnu \
193 // RUN: -march=rv32ifd -mabi=ilp32f -x c -E -dM %s \
194 // RUN: -o - | FileCheck --check-prefix=CHECK-SINGLE %s
195 // RUN: %clang --target=riscv64-unknown-linux-gnu \
196 // RUN: -march=rv64ifd -mabi=lp64f -x c -E -dM %s \
197 // RUN: -o - | FileCheck --check-prefix=CHECK-SINGLE %s
198 // CHECK-SINGLE: __riscv_float_abi_single 1
199 // CHECK-SINGLE-NOT: __riscv_float_abi_soft
200 // CHECK-SINGLE-NOT: __riscv_float_abi_double
202 // RUN: %clang --target=riscv32-unknown-linux-gnu \
203 // RUN: -march=rv32ifd -x c -E -dM %s \
204 // RUN: -o - | FileCheck --check-prefix=CHECK-DOUBLE %s
205 // RUN: %clang --target=riscv64-unknown-linux-gnu \
206 // RUN: -march=rv64ifd -x c -E -dM %s \
207 // RUN: -o - | FileCheck --check-prefix=CHECK-DOUBLE %s
208 // CHECK-DOUBLE: __riscv_float_abi_double 1
209 // CHECK-DOUBLE-NOT: __riscv_float_abi_soft
210 // CHECK-DOUBLE-NOT: __riscv_float_abi_single
212 // RUN: %clang --target=riscv32-unknown-linux-gnu \
213 // RUN: -march=rv32ih -x c -E -dM %s \
214 // RUN: -o - | FileCheck --check-prefix=CHECK-H-EXT %s
215 // RUN: %clang --target=riscv64-unknown-linux-gnu \
216 // RUN: -march=rv64ih -x c -E -dM %s \
217 // RUN: -o - | FileCheck --check-prefix=CHECK-H-EXT %s
218 // CHECK-H-EXT: __riscv_h 1000000{{$}}
220 // RUN: %clang --target=riscv32-unknown-linux-gnu \
221 // RUN: -march=rv32i -x c -E -dM %s \
222 // RUN: -o - | FileCheck %s
223 // RUN: %clang --target=riscv64-unknown-linux-gnu \
224 // RUN: -march=rv64i -x c -E -dM %s \
225 // RUN: -o - | FileCheck %s
226 // CHECK: __riscv_i 2001000{{$}}
228 // RUN: %clang --target=riscv32-unknown-linux-gnu \
229 // RUN: -march=rv32im -x c -E -dM %s \
230 // RUN: -o - | FileCheck --check-prefix=CHECK-M-EXT %s
231 // RUN: %clang --target=riscv64-unknown-linux-gnu \
232 // RUN: -march=rv64im -x c -E -dM %s \
233 // RUN: -o - | FileCheck --check-prefix=CHECK-M-EXT %s
234 // CHECK-M-EXT: __riscv_div 1
235 // CHECK-M-EXT: __riscv_m 2000000{{$}}
236 // CHECK-M-EXT: __riscv_mul 1
237 // CHECK-M-EXT: __riscv_muldiv 1
239 // RUN: %clang --target=riscv32-unknown-linux-gnu \
240 // RUN: -march=rv32isvinval -x c -E -dM %s \
241 // RUN: -o - | FileCheck --check-prefix=CHECK-SVINVAL-EXT %s
242 // RUN: %clang --target=riscv64-unknown-linux-gnu \
243 // RUN: -march=rv64isvinval -x c -E -dM %s \
244 // RUN: -o - | FileCheck --check-prefix=CHECK-SVINVAL-EXT %s
245 // CHECK-SVINVAL-EXT: __riscv_svinval 1000000{{$}}
247 // RUN: %clang --target=riscv32-unknown-linux-gnu \
248 // RUN: -march=rv32isvnapot -x c -E -dM %s \
249 // RUN: -o - | FileCheck --check-prefix=CHECK-SVNAPOT-EXT %s
250 // RUN: %clang --target=riscv64-unknown-linux-gnu \
251 // RUN: -march=rv64isvnapot -x c -E -dM %s \
252 // RUN: -o - | FileCheck --check-prefix=CHECK-SVNAPOT-EXT %s
253 // CHECK-SVNAPOT-EXT: __riscv_svnapot 1000000{{$}}
255 // RUN: %clang --target=riscv32-unknown-linux-gnu \
256 // RUN: -march=rv32isvpbmt -x c -E -dM %s \
257 // RUN: -o - | FileCheck --check-prefix=CHECK-SVPBMT-EXT %s
258 // RUN: %clang --target=riscv64-unknown-linux-gnu \
259 // RUN: -march=rv64isvpbmt -x c -E -dM %s \
260 // RUN: -o - | FileCheck --check-prefix=CHECK-SVPBMT-EXT %s
261 // CHECK-SVPBMT-EXT: __riscv_svpbmt 1000000{{$}}
263 // RUN: %clang --target=riscv32-unknown-linux-gnu \
264 // RUN: -march=rv32iv1p0 -x c -E -dM %s \
265 // RUN: -o - | FileCheck --check-prefix=CHECK-V-EXT %s
266 // RUN: %clang --target=riscv64-unknown-linux-gnu \
267 // RUN: -march=rv64iv1p0 -x c -E -dM %s \
268 // RUN: -o - | FileCheck --check-prefix=CHECK-V-EXT %s
269 // CHECK-V-EXT: __riscv_v 1000000{{$}}
270 // CHECK-V-EXT: __riscv_v_elen 64
271 // CHECK-V-EXT: __riscv_v_elen_fp 64
272 // CHECK-V-EXT: __riscv_v_intrinsic 12000{{$}}
273 // CHECK-V-EXT: __riscv_v_min_vlen 128
274 // CHECK-V-EXT: __riscv_vector 1
276 // RUN: %clang --target=riscv32-unknown-linux-gnu \
277 // RUN: -march=rv32ixcvalu -x c -E -dM %s \
278 // RUN: -o - | FileCheck --check-prefix=CHECK-XCVALU-EXT %s
279 // RUN: %clang --target=riscv64-unknown-linux-gnu \
280 // RUN: -march=rv64ixcvalu -x c -E -dM %s \
281 // RUN: -o - | FileCheck --check-prefix=CHECK-XCVALU-EXT %s
282 // CHECK-XCVALU-EXT: __riscv_xcvalu 1000000{{$}}
284 // RUN: %clang --target=riscv32-unknown-linux-gnu \
285 // RUN: -march=rv32ixcvbi -x c -E -dM %s \
286 // RUN: -o - | FileCheck --check-prefix=CHECK-XCVBI-EXT %s
287 // RUN: %clang --target=riscv64-unknown-linux-gnu \
288 // RUN: -march=rv64ixcvbi -x c -E -dM %s \
289 // RUN: -o - | FileCheck --check-prefix=CHECK-XCVBI-EXT %s
290 // CHECK-XCVBI-EXT: __riscv_xcvbi 1000000{{$}}
292 // RUN: %clang --target=riscv32-unknown-linux-gnu \
293 // RUN: -march=rv32ixcvbitmanip -x c -E -dM %s \
294 // RUN: -o - | FileCheck --check-prefix=CHECK-XCVBITMANIP-EXT %s
295 // RUN: %clang --target=riscv64-unknown-linux-gnu \
296 // RUN: -march=rv64ixcvbitmanip -x c -E -dM %s \
297 // RUN: -o - | FileCheck --check-prefix=CHECK-XCVBITMANIP-EXT %s
298 // CHECK-XCVBITMANIP-EXT: __riscv_xcvbitmanip 1000000{{$}}
300 // RUN: %clang --target=riscv32-unknown-linux-gnu \
301 // RUN: -march=rv32ixcvmac -x c -E -dM %s \
302 // RUN: -o - | FileCheck --check-prefix=CHECK-XCVMAC-EXT %s
303 // RUN: %clang --target=riscv64-unknown-linux-gnu \
304 // RUN: -march=rv64ixcvmac -x c -E -dM %s \
305 // RUN: -o - | FileCheck --check-prefix=CHECK-XCVMAC-EXT %s
306 // CHECK-XCVMAC-EXT: __riscv_xcvmac 1000000{{$}}
308 // RUN: %clang --target=riscv32-unknown-linux-gnu \
309 // RUN: -march=rv32ixcvsimd -x c -E -dM %s \
310 // RUN: -o - | FileCheck --check-prefix=CHECK-XCVSIMD-EXT %s
311 // RUN: %clang --target=riscv64-unknown-linux-gnu \
312 // RUN: -march=rv64ixcvsimd -x c -E -dM %s \
313 // RUN: -o - | FileCheck --check-prefix=CHECK-XCVSIMD-EXT %s
314 // CHECK-XCVSIMD-EXT: __riscv_xcvsimd 1000000{{$}}
316 // RUN: %clang --target=riscv32-unknown-linux-gnu \
317 // RUN: -march=rv32ixsfcie -x c -E -dM %s \
318 // RUN: -o - | FileCheck --check-prefix=CHECK-XSFCIE-EXT %s
319 // RUN: %clang --target=riscv64-unknown-linux-gnu \
320 // RUN: -march=rv64ixsfcie -x c -E -dM %s \
321 // RUN: -o - | FileCheck --check-prefix=CHECK-XSFCIE-EXT %s
322 // CHECK-XSFCIE-EXT: __riscv_xsfcie 1000000{{$}}
324 // RUN: %clang --target=riscv32-unknown-linux-gnu \
325 // RUN: -march=rv32ixsfvcp -x c -E -dM %s \
326 // RUN: -o - | FileCheck --check-prefix=CHECK-XSFVCP-EXT %s
327 // RUN: %clang --target=riscv64-unknown-linux-gnu \
328 // RUN: -march=rv64ixsfvcp -x c -E -dM %s \
329 // RUN: -o - | FileCheck --check-prefix=CHECK-XSFVCP-EXT %s
330 // CHECK-XSFVCP-EXT: __riscv_xsfvcp 1000000{{$}}
332 // RUN: %clang --target=riscv32-unknown-linux-gnu \
333 // RUN: -march=rv32ixsfvfnrclipxfqf -x c -E -dM %s \
334 // RUN: -o - | FileCheck --check-prefix=CHECK-XSFVFNRCLIPXFQF-EXT %s
335 // RUN: %clang --target=riscv64-unknown-linux-gnu \
336 // RUN: -march=rv64ixsfvfnrclipxfqf -x c -E -dM %s \
337 // RUN: -o - | FileCheck --check-prefix=CHECK-XSFVFNRCLIPXFQF-EXT %s
338 // CHECK-XSFVFNRCLIPXFQF-EXT: __riscv_xsfvfnrclipxfqf 1000000{{$}}
340 // RUN: %clang --target=riscv32-unknown-linux-gnu \
341 // RUN: -march=rv32ixsfvfwmaccqqq -x c -E -dM %s \
342 // RUN: -o - | FileCheck --check-prefix=CHECK-XSFVFWMACCQQQ-EXT %s
343 // RUN: %clang --target=riscv64-unknown-linux-gnu \
344 // RUN: -march=rv64ixsfvfwmaccqqq -x c -E -dM %s \
345 // RUN: -o - | FileCheck --check-prefix=CHECK-XSFVFWMACCQQQ-EXT %s
346 // CHECK-XSFVFWMACCQQQ-EXT: __riscv_xsfvfwmaccqqq 1000000{{$}}
348 // RUN: %clang --target=riscv32-unknown-linux-gnu \
349 // RUN: -march=rv32ixsfvqmaccdod -x c -E -dM %s \
350 // RUN: -o - | FileCheck --check-prefix=CHECK-XSFVQMACCDOD-EXT %s
351 // RUN: %clang --target=riscv64-unknown-linux-gnu \
352 // RUN: -march=rv64ixsfvqmaccdod -x c -E -dM %s \
353 // RUN: -o - | FileCheck --check-prefix=CHECK-XSFVQMACCDOD-EXT %s
354 // CHECK-XSFVQMACCDOD-EXT: __riscv_xsfvqmaccdod 1000000{{$}}
356 // RUN: %clang --target=riscv32-unknown-linux-gnu \
357 // RUN: -march=rv32ixsfvqmaccqoq -x c -E -dM %s \
358 // RUN: -o - | FileCheck --check-prefix=CHECK-XSFVQMACCQOQ-EXT %s
359 // RUN: %clang --target=riscv64-unknown-linux-gnu \
360 // RUN: -march=rv64ixsfvqmaccqoq -x c -E -dM %s \
361 // RUN: -o - | FileCheck --check-prefix=CHECK-XSFVQMACCQOQ-EXT %s
362 // CHECK-XSFVQMACCQOQ-EXT: __riscv_xsfvqmaccqoq 1000000{{$}}
364 // RUN: %clang --target=riscv32-unknown-linux-gnu \
365 // RUN: -march=rv32ixtheadba -x c -E -dM %s \
366 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBA-EXT %s
367 // RUN: %clang --target=riscv64-unknown-linux-gnu \
368 // RUN: -march=rv64ixtheadba -x c -E -dM %s \
369 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBA-EXT %s
370 // CHECK-XTHEADBA-EXT: __riscv_xtheadba 1000000{{$}}
372 // RUN: %clang --target=riscv32-unknown-linux-gnu \
373 // RUN: -march=rv32ixtheadbb -x c -E -dM %s \
374 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBB-EXT %s
375 // RUN: %clang --target=riscv64-unknown-linux-gnu \
376 // RUN: -march=rv64ixtheadbb -x c -E -dM %s \
377 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBB-EXT %s
378 // CHECK-XTHEADBB-EXT: __riscv_xtheadbb 1000000{{$}}
380 // RUN: %clang --target=riscv32-unknown-linux-gnu \
381 // RUN: -march=rv32ixtheadbs -x c -E -dM %s \
382 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBS-EXT %s
383 // RUN: %clang --target=riscv64-unknown-linux-gnu \
384 // RUN: -march=rv64ixtheadbs -x c -E -dM %s \
385 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBS-EXT %s
386 // CHECK-XTHEADBS-EXT: __riscv_xtheadbs 1000000{{$}}
388 // RUN: %clang --target=riscv32-unknown-linux-gnu \
389 // RUN: -march=rv32ixtheadcmo -x c -E -dM %s \
390 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADCMO-EXT %s
391 // RUN: %clang --target=riscv64-unknown-linux-gnu \
392 // RUN: -march=rv64ixtheadcmo -x c -E -dM %s \
393 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADCMO-EXT %s
394 // CHECK-XTHEADCMO-EXT: __riscv_xtheadcmo 1000000{{$}}
396 // RUN: %clang --target=riscv32-unknown-linux-gnu \
397 // RUN: -march=rv32ixtheadcondmov -x c -E -dM %s \
398 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADCONDMOV-EXT %s
399 // RUN: %clang --target=riscv64-unknown-linux-gnu \
400 // RUN: -march=rv64ixtheadcondmov -x c -E -dM %s \
401 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADCONDMOV-EXT %s
402 // CHECK-XTHEADCONDMOV-EXT: __riscv_xtheadcondmov 1000000{{$}}
404 // RUN: %clang --target=riscv32-unknown-linux-gnu \
405 // RUN: -march=rv32ixtheadfmemidx -x c -E -dM %s \
406 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADFMEMIDX-EXT %s
407 // RUN: %clang --target=riscv64-unknown-linux-gnu \
408 // RUN: -march=rv64ixtheadfmemidx -x c -E -dM %s \
409 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADFMEMIDX-EXT %s
410 // CHECK-XTHEADFMEMIDX-EXT: __riscv_xtheadfmemidx 1000000{{$}}
412 // RUN: %clang --target=riscv32-unknown-linux-gnu \
413 // RUN: -march=rv32ixtheadmac -x c -E -dM %s \
414 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMAC-EXT %s
415 // RUN: %clang --target=riscv64-unknown-linux-gnu \
416 // RUN: -march=rv64ixtheadmac -x c -E -dM %s \
417 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMAC-EXT %s
418 // CHECK-XTHEADMAC-EXT: __riscv_xtheadmac 1000000{{$}}
420 // RUN: %clang --target=riscv32-unknown-linux-gnu \
421 // RUN: -march=rv32ixtheadmemidx -x c -E -dM %s \
422 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMEMIDX-EXT %s
423 // RUN: %clang --target=riscv64-unknown-linux-gnu \
424 // RUN: -march=rv64ixtheadmemidx -x c -E -dM %s \
425 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMEMIDX-EXT %s
426 // CHECK-XTHEADMEMIDX-EXT: __riscv_xtheadmemidx 1000000{{$}}
428 // RUN: %clang --target=riscv32-unknown-linux-gnu \
429 // RUN: -march=rv32ixtheadmempair -x c -E -dM %s \
430 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMEMPAIR-EXT %s
431 // RUN: %clang --target=riscv64-unknown-linux-gnu \
432 // RUN: -march=rv64ixtheadmempair -x c -E -dM %s \
433 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMEMPAIR-EXT %s
434 // CHECK-XTHEADMEMPAIR-EXT: __riscv_xtheadmempair 1000000{{$}}
436 // RUN: %clang --target=riscv32-unknown-linux-gnu \
437 // RUN: -march=rv32ixtheadsync -x c -E -dM %s \
438 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADSYNC-EXT %s
439 // RUN: %clang --target=riscv64-unknown-linux-gnu \
440 // RUN: -march=rv64ixtheadsync -x c -E -dM %s \
441 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADSYNC-EXT %s
442 // CHECK-XTHEADSYNC-EXT: __riscv_xtheadsync 1000000{{$}}
444 // RUN: %clang --target=riscv32-unknown-linux-gnu \
445 // RUN: -march=rv32ixtheadvdot -x c -E -dM %s \
446 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADVDOT-EXT %s
447 // RUN: %clang --target=riscv64-unknown-linux-gnu \
448 // RUN: -march=rv64ixtheadvdot -x c -E -dM %s \
449 // RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADVDOT-EXT %s
450 // CHECK-XTHEADVDOT-EXT: __riscv_xtheadvdot 1000000{{$}}
452 // RUN: %clang --target=riscv32-unknown-linux-gnu \
453 // RUN: -march=rv32ixventanacondops -x c -E -dM %s \
454 // RUN: -o - | FileCheck --check-prefix=CHECK-XVENTANACONDOPS-EXT %s
455 // RUN: %clang --target=riscv64-unknown-linux-gnu \
456 // RUN: -march=rv64ixventanacondops -x c -E -dM %s \
457 // RUN: -o - | FileCheck --check-prefix=CHECK-XVENTANACONDOPS-EXT %s
458 // CHECK-XVENTANACONDOPS-EXT: __riscv_xventanacondops 1000000{{$}}
460 // RUN: %clang --target=riscv32-unknown-linux-gnu \
461 // RUN: -march=rv32izawrs -x c -E -dM %s \
462 // RUN: -o - | FileCheck --check-prefix=CHECK-ZAWRS-EXT %s
463 // RUN: %clang --target=riscv64-unknown-linux-gnu \
464 // RUN: -march=rv64izawrs -x c -E -dM %s \
465 // RUN: -o - | FileCheck --check-prefix=CHECK-ZAWRS-EXT %s
466 // CHECK-ZAWRS-EXT: __riscv_zawrs 1000000{{$}}
468 // RUN: %clang --target=riscv32-unknown-linux-gnu \
469 // RUN: -march=rv32izba1p0 -x c -E -dM %s \
470 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s
471 // RUN: %clang --target=riscv32-unknown-linux-gnu \
472 // RUN: -march=rv32izba -x c -E -dM %s \
473 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s
474 // RUN: %clang --target=riscv64-unknown-linux-gnu \
475 // RUN: -march=rv64izba1p0 -x c -E -dM %s \
476 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s
477 // RUN: %clang --target=riscv64-unknown-linux-gnu \
478 // RUN: -march=rv64izba -x c -E -dM %s \
479 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s
480 // CHECK-ZBA-EXT: __riscv_zba 1000000{{$}}
482 // RUN: %clang --target=riscv32-unknown-linux-gnu \
483 // RUN: -march=rv32izbb1p0 -x c -E -dM %s \
484 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBB-EXT %s
485 // RUN: %clang --target=riscv32-unknown-linux-gnu \
486 // RUN: -march=rv32izbb -x c -E -dM %s \
487 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBB-EXT %s
488 // RUN: %clang --target=riscv64-unknown-linux-gnu \
489 // RUN: -march=rv64izbb1p0 -x c -E -dM %s \
490 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBB-EXT %s
491 // RUN: %clang --target=riscv64-unknown-linux-gnu \
492 // RUN: -march=rv64izbb -x c -E -dM %s \
493 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBB-EXT %s
494 // CHECK-ZBB-EXT: __riscv_zbb 1000000{{$}}
496 // RUN: %clang --target=riscv32-unknown-linux-gnu \
497 // RUN: -march=rv32izbc1p0 -x c -E -dM %s \
498 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s
499 // RUN: %clang --target=riscv32-unknown-linux-gnu \
500 // RUN: -march=rv32izbc -x c -E -dM %s \
501 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s
502 // RUN: %clang --target=riscv64-unknown-linux-gnu \
503 // RUN: -march=rv64izbc1p0 -x c -E -dM %s \
504 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s
505 // RUN: %clang --target=riscv64-unknown-linux-gnu \
506 // RUN: -march=rv64izbc -x c -E -dM %s \
507 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s
508 // CHECK-ZBC-EXT: __riscv_zbc 1000000{{$}}
510 // RUN: %clang --target=riscv32-unknown-linux-gnu \
511 // RUN: -march=rv32izbkb1p0 -x c -E -dM %s \
512 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBKB-EXT %s
513 // RUN: %clang --target=riscv64-unknown-linux-gnu \
514 // RUN: -march=rv64izbkb1p0 -x c -E -dM %s \
515 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBKB-EXT %s
516 // CHECK-ZBKB-EXT: __riscv_zbkb
518 // RUN: %clang --target=riscv32-unknown-linux-gnu \
519 // RUN: -march=rv32izbkc1p0 -x c -E -dM %s \
520 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBKC-EXT %s
521 // RUN: %clang --target=riscv64-unknown-linux-gnu \
522 // RUN: -march=rv64izbkc1p0 -x c -E -dM %s \
523 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBKC-EXT %s
524 // CHECK-ZBKC-EXT: __riscv_zbkc
526 // RUN: %clang --target=riscv32-unknown-linux-gnu \
527 // RUN: -march=rv32izbkx1p0 -x c -E -dM %s \
528 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBKX-EXT %s
529 // RUN: %clang --target=riscv64-unknown-linux-gnu \
530 // RUN: -march=rv64izbkx1p0 -x c -E -dM %s \
531 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBKX-EXT %s
532 // CHECK-ZBKX-EXT: __riscv_zbkx
534 // RUN: %clang --target=riscv32-unknown-linux-gnu \
535 // RUN: -march=rv32izbs1p0 -x c -E -dM %s \
536 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s
537 // RUN: %clang --target=riscv32-unknown-linux-gnu \
538 // RUN: -march=rv32izbs -x c -E -dM %s \
539 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s
540 // RUN: %clang --target=riscv64-unknown-linux-gnu \
541 // RUN: -march=rv64izbs1p0 -x c -E -dM %s \
542 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s
543 // RUN: %clang --target=riscv64-unknown-linux-gnu \
544 // RUN: -march=rv64izbs -x c -E -dM %s \
545 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s
546 // CHECK-ZBS-EXT: __riscv_zbs 1000000{{$}}
548 // RUN: %clang --target=riscv32-unknown-linux-gnu \
549 // RUN: -march=rv32izca1p0 -x c -E -dM %s \
550 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCA-EXT %s
551 // RUN: %clang --target=riscv64-unknown-linux-gnu \
552 // RUN: -march=rv64izca1p0 -x c -E -dM %s \
553 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCA-EXT %s
554 // CHECK-ZCA-EXT: __riscv_zca 1000000{{$}}
556 // RUN: %clang --target=riscv32-unknown-linux-gnu \
557 // RUN: -march=rv32izcb1p0 -x c -E -dM %s \
558 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCB-EXT %s
559 // RUN: %clang --target=riscv64-unknown-linux-gnu \
560 // RUN: -march=rv64izcb1p0 -x c -E -dM %s \
561 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCB-EXT %s
562 // CHECK-ZCB-EXT: __riscv_zca 1000000{{$}}
563 // CHECK-ZCB-EXT: __riscv_zcb 1000000{{$}}
565 // RUN: %clang --target=riscv32-unknown-linux-gnu \
566 // RUN: -march=rv32izcd1p0 -x c -E -dM %s \
567 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCD-EXT %s
568 // RUN: %clang --target=riscv64-unknown-linux-gnu \
569 // RUN: -march=rv64izcd1p0 -x c -E -dM %s \
570 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCD-EXT %s
571 // CHECK-ZCD-EXT: __riscv_zcd 1000000{{$}}
573 // RUN: %clang --target=riscv32-unknown-linux-gnu \
574 // RUN: -march=rv32izce1p0 -x c -E -dM %s \
575 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCE-EXT %s
576 // RUN: %clang --target=riscv64-unknown-linux-gnu \
577 // RUN: -march=rv64izce1p0 -x c -E -dM %s \
578 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCE-EXT %s
579 // CHECK-ZCE-EXT: __riscv_zce 1000000{{$}}
581 // RUN: %clang --target=riscv32-unknown-linux-gnu \
582 // RUN: -march=rv32izcf1p0 -x c -E -dM %s \
583 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCF-EXT %s
584 // CHECK-ZCF-EXT: __riscv_zcf 1000000{{$}}
586 // RUN: %clang --target=riscv32-unknown-linux-gnu \
587 // RUN: -march=rv32izcmp1p0 -x c -E -dM %s \
588 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCMP-EXT %s
589 // RUN: %clang --target=riscv64-unknown-linux-gnu \
590 // RUN: -march=rv64izcmp1p0 -x c -E -dM %s \
591 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCMP-EXT %s
592 // CHECK-ZCMP-EXT: __riscv_zca 1000000{{$}}
593 // CHECK-ZCMP-EXT: __riscv_zcmp 1000000{{$}}
595 // RUN: %clang --target=riscv32-unknown-linux-gnu \
596 // RUN: -march=rv32izcmt1p0 -x c -E -dM %s \
597 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCMT-EXT %s
598 // RUN: %clang --target=riscv64-unknown-linux-gnu \
599 // RUN: -march=rv64izcmt1p0 -x c -E -dM %s \
600 // RUN: -o - | FileCheck --check-prefix=CHECK-ZCMT-EXT %s
601 // CHECK-ZCMT-EXT: __riscv_zca 1000000{{$}}
602 // CHECK-ZCMT-EXT: __riscv_zcmt 1000000{{$}}
604 // RUN: %clang --target=riscv32-unknown-linux-gnu \
605 // RUN: -march=rv32izdinx1p0 -x c -E -dM %s \
606 // RUN: -o - | FileCheck --check-prefix=CHECK-ZDINX-EXT %s
607 // RUN: %clang --target=riscv64-unknown-linux-gnu \
608 // RUN: -march=rv64izdinx1p0 -x c -E -dM %s \
609 // RUN: -o - | FileCheck --check-prefix=CHECK-ZDINX-EXT %s
610 // CHECK-ZDINX-EXT: __riscv_zdinx 1000000{{$}}
611 // CHECK-ZDINX-EXT: __riscv_zfinx 1000000{{$}}
613 // RUN: %clang --target=riscv32-unknown-linux-gnu \
614 // RUN: -march=rv32izfh1p0 -x c -E -dM %s \
615 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFH-EXT %s
616 // RUN: %clang --target=riscv64-unknown-linux-gnu \
617 // RUN: -march=rv64izfh1p0 -x c -E -dM %s \
618 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFH-EXT %s
619 // CHECK-ZFH-EXT: __riscv_f 2002000{{$}}
620 // CHECK-ZFH-EXT: __riscv_zfh 1000000{{$}}
622 // RUN: %clang --target=riscv32-unknown-linux-gnu \
623 // RUN: -march=rv32izfhmin1p0 -x c -E -dM %s \
624 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFHMIN-EXT %s
625 // RUN: %clang --target=riscv64-unknown-linux-gnu \
626 // RUN: -march=rv64izfhmin1p0 -x c -E -dM %s \
627 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFHMIN-EXT %s
628 // CHECK-ZFHMIN-EXT: __riscv_f 2002000{{$}}
629 // CHECK-ZFHMIN-EXT: __riscv_zfhmin 1000000{{$}}
631 // RUN: %clang --target=riscv32-unknown-linux-gnu \
632 // RUN: -march=rv32izfinx1p0 -x c -E -dM %s \
633 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFINX-EXT %s
634 // RUN: %clang --target=riscv64-unknown-linux-gnu \
635 // RUN: -march=rv64izfinx1p0 -x c -E -dM %s \
636 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFINX-EXT %s
637 // CHECK-ZFINX-EXT: __riscv_zfinx 1000000{{$}}
639 // RUN: %clang --target=riscv32-unknown-linux-gnu \
640 // RUN: -march=rv32izhinx1p0 -x c -E -dM %s \
641 // RUN: -o - | FileCheck --check-prefix=CHECK-ZHINX-EXT %s
642 // RUN: %clang --target=riscv64-unknown-linux-gnu \
643 // RUN: -march=rv64izhinx1p0 -x c -E -dM %s \
644 // RUN: -o - | FileCheck --check-prefix=CHECK-ZHINX-EXT %s
645 // CHECK-ZHINX-EXT: __riscv_zhinx 1000000{{$}}
647 // RUN: %clang --target=riscv32-unknown-linux-gnu \
648 // RUN: -march=rv32izhinxmin1p0 -x c -E -dM %s \
649 // RUN: -o - | FileCheck --check-prefix=CHECK-ZHINXMIN-EXT %s
650 // RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64izhinxmin1p0 -x c -E -dM %s \
651 // RUN: -o - | FileCheck --check-prefix=CHECK-ZHINXMIN-EXT %s
652 // CHECK-ZHINXMIN-EXT: __riscv_zhinxmin 1000000{{$}}
654 // RUN: %clang --target=riscv32-unknown-linux-gnu \
655 // RUN: -march=rv32izicbom -x c -E -dM %s \
656 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOM-EXT %s
657 // RUN: %clang --target=riscv64-unknown-linux-gnu \
658 // RUN: -march=rv64izicbom -x c -E -dM %s \
659 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOM-EXT %s
660 // CHECK-ZICBOM-EXT: __riscv_zicbom 1000000{{$}}
662 // RUN: %clang --target=riscv32-unknown-linux-gnu \
663 // RUN: -march=rv32izicbop -x c -E -dM %s \
664 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOP-EXT %s
665 // RUN: %clang --target=riscv64-unknown-linux-gnu \
666 // RUN: -march=rv64izicbop -x c -E -dM %s \
667 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOP-EXT %s
668 // CHECK-ZICBOP-EXT: __riscv_zicbop 1000000{{$}}
670 // RUN: %clang --target=riscv32-unknown-linux-gnu \
671 // RUN: -march=rv32izicboz -x c -E -dM %s \
672 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOZ-EXT %s
673 // RUN: %clang --target=riscv64-unknown-linux-gnu \
674 // RUN: -march=rv64izicboz -x c -E -dM %s \
675 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOZ-EXT %s
676 // CHECK-ZICBOZ-EXT: __riscv_zicboz 1000000{{$}}
678 // RUN: %clang --target=riscv32-unknown-linux-gnu \
679 // RUN: -march=rv32izicntr -x c -E -dM %s \
680 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICNTR-EXT %s
681 // RUN: %clang --target=riscv64-unknown-linux-gnu \
682 // RUN: -march=rv64izicntr -x c -E -dM %s \
683 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICNTR-EXT %s
684 // CHECK-ZICNTR-EXT: __riscv_zicntr 2000000{{$}}
686 // RUN: %clang --target=riscv32-unknown-linux-gnu \
687 // RUN: -march=rv32izicsr2p0 -x c -E -dM %s \
688 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICSR-EXT %s
689 // RUN: %clang --target=riscv64-unknown-linux-gnu \
690 // RUN: -march=rv64izicsr2p0 -x c -E -dM %s \
691 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICSR-EXT %s
692 // CHECK-ZICSR-EXT: __riscv_zicsr 2000000{{$}}
694 // RUN: %clang --target=riscv32-unknown-linux-gnu \
695 // RUN: -march=rv32izifencei2p0 -x c -E -dM %s \
696 // RUN: -o - | FileCheck --check-prefix=CHECK-ZIFENCEI-EXT %s
697 // RUN: %clang --target=riscv64-unknown-linux-gnu \
698 // RUN: -march=rv64izifencei2p0 -x c -E -dM %s \
699 // RUN: -o - | FileCheck --check-prefix=CHECK-ZIFENCEI-EXT %s
700 // CHECK-ZIFENCEI-EXT: __riscv_zifencei 2000000{{$}}
702 // RUN: %clang --target=riscv32-unknown-linux-gnu \
703 // RUN: -march=rv32izihintntl1p0 -x c -E -dM %s \
704 // RUN: -o - | FileCheck --check-prefix=CHECK-ZIHINTNTL-EXT %s
705 // RUN: %clang --target=riscv64-unknown-linux-gnu \
706 // RUN: -march=rv64izihintntl1p0 -x c -E -dM %s \
707 // RUN: -o - | FileCheck --check-prefix=CHECK-ZIHINTNTL-EXT %s
708 // CHECK-ZIHINTNTL-EXT: __riscv_zihintntl 1000000{{$}}
710 // RUN: %clang --target=riscv32-unknown-linux-gnu \
711 // RUN: -march=rv32izihintpause2p0 -x c -E -dM %s \
712 // RUN: -o - | FileCheck --check-prefix=CHECK-ZIHINTPAUSE-EXT %s
713 // RUN: %clang --target=riscv64-unknown-linux-gnu \
714 // RUN: -march=rv64izihintpause2p0 -x c -E -dM %s \
715 // RUN: -o - | FileCheck --check-prefix=CHECK-ZIHINTPAUSE-EXT %s
716 // CHECK-ZIHINTPAUSE-EXT: __riscv_zihintpause 2000000{{$}}
718 // RUN: %clang --target=riscv32-unknown-linux-gnu \
719 // RUN: -march=rv32izihpm -x c -E -dM %s \
720 // RUN: -o - | FileCheck --check-prefix=CHECK-ZIHPM-EXT %s
721 // RUN: %clang --target=riscv64-unknown-linux-gnu \
722 // RUN: -march=rv64izihpm -x c -E -dM %s \
723 // RUN: -o - | FileCheck --check-prefix=CHECK-ZIHPM-EXT %s
724 // CHECK-ZIHPM-EXT: __riscv_zihpm 2000000{{$}}
726 // RUN: %clang --target=riscv32-unknown-linux-gnu \
727 // RUN: -march=rv32izk1p0 -x c -E -dM %s \
728 // RUN: -o - | FileCheck --check-prefix=CHECK-ZK-EXT %s
729 // RUN: %clang --target=riscv64-unknown-linux-gnu \
730 // RUN: -march=rv64izk1p0 -x c -E -dM %s \
731 // RUN: -o - | FileCheck --check-prefix=CHECK-ZK-EXT %s
732 // CHECK-ZK-EXT: __riscv_zk
734 // RUN: %clang --target=riscv32-unknown-linux-gnu \
735 // RUN: -march=rv32i_zkn_zkt_zkr -x c -E -dM %s \
736 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZK %s
737 // RUN: %clang --target=riscv64-unknown-linux-gnu \
738 // RUN: -march=rv64i_zkn_zkt_zkr -x c -E -dM %s \
739 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZK %s
740 // CHECK-COMBINE-INTO-ZK: __riscv_zk 1
742 // RUN: %clang --target=riscv32-unknown-linux-gnu \
743 // RUN: -march=rv32izkn1p0 -x c -E -dM %s \
744 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKN-EXT %s
745 // RUN: %clang --target=riscv64-unknown-linux-gnu \
746 // RUN: -march=rv64izkn1p0 -x c -E -dM %s \
747 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKN-EXT %s
748 // CHECK-ZKN-EXT: __riscv_zkn
750 // RUN: %clang --target=riscv32-unknown-linux-gnu \
751 // RUN: -march=rv32i_zbkb_zbkc_zbkx_zkne_zknd_zknh -x c -E -dM %s \
752 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKN %s
753 // RUN: %clang --target=riscv64-unknown-linux-gnu \
754 // RUN: -march=rv64i_zbkb_zbkc_zbkx_zkne_zknd_zknh -x c -E -dM %s \
755 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKN %s
756 // CHECK-COMBINE-INTO-ZKN: __riscv_zkn 1
758 // RUN: %clang --target=riscv32-unknown-linux-gnu \
759 // RUN: -march=rv32izknd1p0 -x c -E -dM %s \
760 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKND-EXT %s
761 // RUN: %clang --target=riscv64-unknown-linux-gnu \
762 // RUN: -march=rv64izknd1p0 -x c -E -dM %s \
763 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKND-EXT %s
764 // CHECK-ZKND-EXT: __riscv_zknd
766 // RUN: %clang --target=riscv32-unknown-linux-gnu \
767 // RUN: -march=rv32izkne1p0 -x c -E -dM %s \
768 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKNE-EXT %s
769 // RUN: %clang --target=riscv64-unknown-linux-gnu \
770 // RUN: -march=rv64izkne1p0 -x c -E -dM %s \
771 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKNE-EXT %s
772 // CHECK-ZKNE-EXT: __riscv_zkne
774 // RUN: %clang --target=riscv32-unknown-linux-gnu \
775 // RUN: -march=rv32izknh1p0 -x c -E -dM %s \
776 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKNH-EXT %s
777 // RUN: %clang --target=riscv64-unknown-linux-gnu \
778 // RUN: -march=rv64izknh1p0 -x c -E -dM %s \
779 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKNH-EXT %s
780 // CHECK-ZKNH-EXT: __riscv_zknh
782 // RUN: %clang --target=riscv32-unknown-linux-gnu \
783 // RUN: -march=rv32izkr1p0 -x c -E -dM %s \
784 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKR-EXT %s
785 // RUN: %clang --target=riscv64-unknown-linux-gnu \
786 // RUN: -march=rv64izkr1p0 -x c -E -dM %s \
787 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKR-EXT %s
788 // CHECK-ZKR-EXT: __riscv_zkr
790 // RUN: %clang --target=riscv32-unknown-linux-gnu \
791 // RUN: -march=rv32i_zbkb_zbkc_zbkx_zksed_zksh -x c -E -dM %s \
792 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKS %s
793 // RUN: %clang --target=riscv64-unknown-linux-gnu \
794 // RUN: -march=rv64i_zbkb_zbkc_zbkx_zksed_zksh -x c -E -dM %s \
795 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKS %s
796 // CHECK-COMBINE-INTO-ZKS: __riscv_zks 1
798 // RUN: %clang --target=riscv32-unknown-linux-gnu \
799 // RUN: -march=rv32izks1p0 -x c -E -dM %s \
800 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKS-EXT %s
801 // RUN: %clang --target=riscv64-unknown-linux-gnu \
802 // RUN: -march=rv64izks1p0 -x c -E -dM %s \
803 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKS-EXT %s
804 // CHECK-ZKS-EXT: __riscv_zks
806 // RUN: %clang --target=riscv32-unknown-linux-gnu \
807 // RUN: -march=rv32izksed1p0 -x c -E -dM %s \
808 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKSED-EXT %s
809 // RUN: %clang --target=riscv64-unknown-linux-gnu \
810 // RUN: -march=rv64izksed1p0 -x c -E -dM %s \
811 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKSED-EXT %s
812 // CHECK-ZKSED-EXT: __riscv_zksed
814 // RUN: %clang --target=riscv32-unknown-linux-gnu \
815 // RUN: -march=rv32izksh1p0 -x c -E -dM %s \
816 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKSH-EXT %s
817 // RUN: %clang --target=riscv64-unknown-linux-gnu \
818 // RUN: -march=rv64izksh1p0 -x c -E -dM %s \
819 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKSH-EXT %s
820 // CHECK-ZKSH-EXT: __riscv_zksh
822 // RUN: %clang --target=riscv32-unknown-linux-gnu \
823 // RUN: -march=rv32izkt1p0 -x c -E -dM %s \
824 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKT-EXT %s
825 // RUN: %clang --target=riscv64-unknown-linux-gnu \
826 // RUN: -march=rv64izkt1p0 -x c -E -dM %s \
827 // RUN: -o - | FileCheck --check-prefix=CHECK-ZKT-EXT %s
828 // CHECK-ZKT-EXT: __riscv_zkt
830 // RUN: %clang --target=riscv32-unknown-linux-gnu \
831 // RUN: -march=rv32izmmul1p0 -x c -E -dM %s \
832 // RUN: -o - | FileCheck --check-prefix=CHECK-ZMMUL-EXT %s
833 // RUN: %clang --target=riscv64-unknown-linux-gnu \
834 // RUN: -march=rv64izmmul1p0 -x c -E -dM %s \
835 // RUN: -o - | FileCheck --check-prefix=CHECK-ZMMUL-EXT %s
836 // CHECK-ZMMUL-EXT: __riscv_zmmul
838 // RUN: %clang --target=riscv32-unknown-linux-gnu \
839 // RUN: -march=rv32ifzve32f1p0 -x c -E -dM %s \
840 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE32F-EXT %s
841 // RUN: %clang --target=riscv64-unknown-linux-gnu \
842 // RUN: -march=rv64ifzve32f1p0 -x c -E -dM %s \
843 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE32F-EXT %s
844 // CHECK-ZVE32F-EXT: __riscv_v_elen 32
845 // CHECK-ZVE32F-EXT: __riscv_v_elen_fp 32
846 // CHECK-ZVE32F-EXT: __riscv_v_intrinsic 12000{{$}}
847 // CHECK-ZVE32F-EXT: __riscv_v_min_vlen 32
848 // CHECK-ZVE32F-EXT: __riscv_vector 1
849 // CHECK-ZVE32F-EXT: __riscv_zve32f 1000000{{$}}
850 // CHECK-ZVE32F-EXT: __riscv_zve32x 1000000{{$}}
852 // RUN: %clang --target=riscv32-unknown-linux-gnu \
853 // RUN: -march=rv32izve32x1p0 -x c -E -dM %s \
854 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE32X-EXT %s
855 // RUN: %clang --target=riscv64-unknown-linux-gnu \
856 // RUN: -march=rv64izve32x1p0 -x c -E -dM %s \
857 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE32X-EXT %s
858 // CHECK-ZVE32X-EXT: __riscv_v_elen 32
859 // CHECK-ZVE32X-EXT: __riscv_v_elen_fp 0
860 // CHECK-ZVE32X-EXT: __riscv_v_intrinsic 12000{{$}}
861 // CHECK-ZVE32X-EXT: __riscv_v_min_vlen 32
862 // CHECK-ZVE32X-EXT: __riscv_vector 1
863 // CHECK-ZVE32X-EXT: __riscv_zve32x 1000000{{$}}
865 // RUN: %clang --target=riscv32-unknown-linux-gnu \
866 // RUN: -march=rv32ifdzve64d1p0 -x c -E -dM %s \
867 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64D-EXT %s
868 // RUN: %clang --target=riscv64-unknown-linux-gnu \
869 // RUN: -march=rv64ifdzve64d1p0 -x c -E -dM %s \
870 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64D-EXT %s
871 // CHECK-ZVE64D-EXT: __riscv_v_elen 64
872 // CHECK-ZVE64D-EXT: __riscv_v_elen_fp 64
873 // CHECK-ZVE64D-EXT: __riscv_v_intrinsic 12000{{$}}
874 // CHECK-ZVE64D-EXT: __riscv_v_min_vlen 64
875 // CHECK-ZVE64D-EXT: __riscv_vector 1
876 // CHECK-ZVE64D-EXT: __riscv_zve32f 1000000{{$}}
877 // CHECK-ZVE64D-EXT: __riscv_zve32x 1000000{{$}}
878 // CHECK-ZVE64D-EXT: __riscv_zve64d 1000000{{$}}
879 // CHECK-ZVE64D-EXT: __riscv_zve64f 1000000{{$}}
880 // CHECK-ZVE64D-EXT: __riscv_zve64x 1000000{{$}}
882 // RUN: %clang --target=riscv32-unknown-linux-gnu \
883 // RUN: -march=rv32ifzve64f1p0 -x c -E -dM %s \
884 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64F-EXT %s
885 // RUN: %clang --target=riscv64-unknown-linux-gnu \
886 // RUN: -march=rv64ifzve64f1p0 -x c -E -dM %s \
887 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64F-EXT %s
888 // CHECK-ZVE64F-EXT: __riscv_v_elen 64
889 // CHECK-ZVE64F-EXT: __riscv_v_elen_fp 32
890 // CHECK-ZVE64F-EXT: __riscv_v_intrinsic 12000{{$}}
891 // CHECK-ZVE64F-EXT: __riscv_v_min_vlen 64
892 // CHECK-ZVE64F-EXT: __riscv_vector 1
893 // CHECK-ZVE64F-EXT: __riscv_zve32f 1000000{{$}}
894 // CHECK-ZVE64F-EXT: __riscv_zve32x 1000000{{$}}
895 // CHECK-ZVE64F-EXT: __riscv_zve64f 1000000{{$}}
896 // CHECK-ZVE64F-EXT: __riscv_zve64x 1000000{{$}}
898 // RUN: %clang --target=riscv32-unknown-linux-gnu \
899 // RUN: -march=rv32izve64x1p0 -x c -E -dM %s \
900 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64X-EXT %s
901 // RUN: %clang --target=riscv64-unknown-linux-gnu \
902 // RUN: -march=rv64izve64x1p0 -x c -E -dM %s \
903 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64X-EXT %s
904 // CHECK-ZVE64X-EXT: __riscv_v_elen 64
905 // CHECK-ZVE64X-EXT: __riscv_v_elen_fp 0
906 // CHECK-ZVE64X-EXT: __riscv_v_intrinsic 12000{{$}}
907 // CHECK-ZVE64X-EXT: __riscv_v_min_vlen 64
908 // CHECK-ZVE64X-EXT: __riscv_vector 1
909 // CHECK-ZVE64X-EXT: __riscv_zve32x 1000000{{$}}
910 // CHECK-ZVE64X-EXT: __riscv_zve64x 1000000{{$}}
912 // RUN: %clang --target=riscv32-unknown-linux-gnu \
913 // RUN: -march=rv32izvfh1p0 -x c -E -dM %s \
914 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVFH-EXT %s
915 // RUN: %clang --target=riscv64-unknown-linux-gnu \
916 // RUN: -march=rv64izvfh1p0 -x c -E -dM %s \
917 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVFH-EXT %s
918 // CHECK-ZVFH-EXT: __riscv_zvfh
920 // RUN: %clang --target=riscv32-unknown-linux-gnu \
921 // RUN: -march=rv32izve32x1p0_zvl32b1p0 -x c -E -dM %s \
922 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL32b %s
923 // RUN: %clang --target=riscv64-unknown-linux-gnu \
924 // RUN: -march=rv64izve32x1p0_zvl32b1p0 -x c -E -dM %s \
925 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL32b %s
926 // CHECK-ZVL32b: __riscv_v_min_vlen 32
928 // RUN: %clang --target=riscv32-unknown-linux-gnu \
929 // RUN: -march=rv32izve32x1p0_zvl64b1p0 -x c -E -dM %s \
930 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL64b %s
931 // RUN: %clang --target=riscv64-unknown-linux-gnu \
932 // RUN: -march=rv64izve32x1p0_zvl64b1p0 -x c -E -dM %s \
933 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL64b %s
934 // CHECK-ZVL64b: __riscv_v_min_vlen 64
936 // RUN: %clang --target=riscv32-unknown-linux-gnu \
937 // RUN: -march=rv32iv1p0_zvl128b1p0 -x c -E -dM %s \
938 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL128b %s
939 // RUN: %clang --target=riscv64-unknown-linux-gnu \
940 // RUN: -march=rv64iv1p0_zvl128b1p0 -x c -E -dM %s \
941 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL128b %s
942 // CHECK-ZVL128b: __riscv_v_min_vlen 128
944 // RUN: %clang --target=riscv32-unknown-linux-gnu \
945 // RUN: -march=rv32iv1p0_zvl256b1p0 -x c -E -dM %s \
946 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL256b %s
947 // RUN: %clang --target=riscv64-unknown-linux-gnu \
948 // RUN: -march=rv64iv1p0_zvl256b1p0 -x c -E -dM %s \
949 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL256b %s
950 // CHECK-ZVL256b: __riscv_v_min_vlen 256
952 // RUN: %clang --target=riscv32-unknown-linux-gnu \
953 // RUN: -march=rv32iv1p0_zvl512b1p0 -x c -E -dM %s \
954 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL512b %s
955 // RUN: %clang --target=riscv64-unknown-linux-gnu \
956 // RUN: -march=rv64iv1p0_zvl512b1p0 -x c -E -dM %s \
957 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL512b %s
958 // CHECK-ZVL512b: __riscv_v_min_vlen 512
960 // RUN: %clang --target=riscv32-unknown-linux-gnu \
961 // RUN: -march=rv32iv1p0_zvl1024b1p0 -x c -E -dM %s \
962 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL1024b %s
963 // RUN: %clang --target=riscv64-unknown-linux-gnu \
964 // RUN: -march=rv64iv1p0_zvl1024b1p0 -x c -E -dM %s \
965 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL1024b %s
966 // CHECK-ZVL1024b: __riscv_v_min_vlen 1024
968 // RUN: %clang --target=riscv32-unknown-linux-gnu \
969 // RUN: -march=rv32iv1p0_zvl2048b1p0 -x c -E -dM %s \
970 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL2048b %s
971 // RUN: %clang --target=riscv64-unknown-linux-gnu \
972 // RUN: -march=rv64iv1p0_zvl2048b1p0 -x c -E -dM %s \
973 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL2048b %s
974 // CHECK-ZVL2048b: __riscv_v_min_vlen 2048
976 // RUN: %clang --target=riscv32-unknown-linux-gnu \
977 // RUN: -march=rv32iv1p0_zvl4096b1p0 -x c -E -dM %s \
978 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL4096b %s
979 // RUN: %clang --target=riscv64-unknown-linux-gnu \
980 // RUN: -march=rv64iv1p0_zvl4096b1p0 -x c -E -dM %s \
981 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL4096b %s
982 // CHECK-ZVL4096b: __riscv_v_min_vlen 4096
984 // RUN: %clang --target=riscv32-unknown-linux-gnu \
985 // RUN: -march=rv32iv1p0_zvl8192b1p0 -x c -E -dM %s \
986 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL8192b %s
987 // RUN: %clang --target=riscv64-unknown-linux-gnu \
988 // RUN: -march=rv64iv1p0_zvl8192b1p0 -x c -E -dM %s \
989 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL8192b %s
990 // CHECK-ZVL8192b: __riscv_v_min_vlen 8192
992 // RUN: %clang --target=riscv32-unknown-linux-gnu \
993 // RUN: -march=rv32iv1p0_zvl16384b1p0 -x c -E -dM %s \
994 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL16384b %s
995 // RUN: %clang --target=riscv64-unknown-linux-gnu \
996 // RUN: -march=rv64iv1p0_zvl16384b1p0 -x c -E -dM %s \
997 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL16384b %s
998 // CHECK-ZVL16384b: __riscv_v_min_vlen 16384
1000 // RUN: %clang --target=riscv32-unknown-linux-gnu \
1001 // RUN: -march=rv32iv1p0_zvl32768b1p0 -x c -E -dM %s \
1002 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL32768b %s
1003 // RUN: %clang --target=riscv64-unknown-linux-gnu \
1004 // RUN: -march=rv64iv1p0_zvl32768b1p0 -x c -E -dM %s \
1005 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL32768b %s
1006 // CHECK-ZVL32768b: __riscv_v_min_vlen 32768
1008 // RUN: %clang --target=riscv32-unknown-linux-gnu \
1009 // RUN: -march=rv32iv1p0_zvl65536b1p0 -x c -E -dM %s \
1010 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL65536b %s
1011 // RUN: %clang --target=riscv64-unknown-linux-gnu \
1012 // RUN: -march=rv64iv1p0_zvl65536b1p0 -x c -E -dM %s \
1013 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVL65536b %s
1014 // CHECK-ZVL65536b: __riscv_v_min_vlen 65536
1016 // Experimental extensions
1018 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1019 // RUN: -march=rv32ismaia1p0 -x c -E -dM %s \
1020 // RUN: -o - | FileCheck --check-prefix=CHECK-SMAIA-EXT %s
1021 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1022 // RUN: -march=rv64ismaia1p0 -x c -E -dM %s \
1023 // RUN: -o - | FileCheck --check-prefix=CHECK-SMAIA-EXT %s
1024 // CHECK-SMAIA-EXT: __riscv_smaia 1000000{{$}}
1026 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1027 // RUN: -march=rv32issaia1p0 -x c -E -dM %s \
1028 // RUN: -o - | FileCheck --check-prefix=CHECK-SSAIA-EXT %s
1029 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1030 // RUN: -march=rv64issaia1p0 -x c -E -dM %s \
1031 // RUN: -o - | FileCheck --check-prefix=CHECK-SSAIA-EXT %s
1032 // CHECK-SSAIA-EXT: __riscv_ssaia 1000000{{$}}
1034 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1035 // RUN: -march=rv32i_zacas1p0 -x c -E -dM %s \
1036 // RUN: -o - | FileCheck --check-prefix=CHECK-ZACAS-EXT %s
1037 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1038 // RUN: -march=rv64i_zacas1p0 -x c -E -dM %s \
1039 // RUN: -o - | FileCheck --check-prefix=CHECK-ZACAS-EXT %s
1040 // CHECK-ZACAS-EXT: __riscv_zacas 1000000{{$}}
1042 // RUN: %clang --target=riscv32-unknown-linux-gnu \
1043 // RUN: -march=rv32izfa -x c -E -dM %s \
1044 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFA-EXT %s
1045 // RUN: %clang --target=riscv64-unknown-linux-gnu \
1046 // RUN: -march=rv64izfa -x c -E -dM %s \
1047 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFA-EXT %s
1048 // CHECK-ZFA-EXT: __riscv_zfa 1000000{{$}}
1050 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1051 // RUN: -march=rv32izfbfmin0p8 -x c -E -dM %s \
1052 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFBFMIN-EXT %s
1053 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1054 // RUN: -march=rv64izfbfmin0p8 -x c -E -dM %s \
1055 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFBFMIN-EXT %s
1056 // CHECK-ZFBFMIN-EXT: __riscv_zfbfmin 8000{{$}}
1058 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1059 // RUN: -march=rv32i_zicfilp0p2 -x c -E -dM %s \
1060 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICFILP-EXT %s
1061 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1062 // RUN: -march=rv64i_zicfilp0p2 -x c -E -dM %s \
1063 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICFILP-EXT %s
1064 // CHECK-ZICFILP-EXT: __riscv_zicfilp 2000{{$}}
1066 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1067 // RUN: -march=rv32i_zicond1p0 -x c -E -dM %s \
1068 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICOND-EXT %s
1069 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1070 // RUN: -march=rv64i_zicond1p0 -x c -E -dM %s \
1071 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICOND-EXT %s
1072 // CHECK-ZICOND-EXT: __riscv_zicond 1000000{{$}}
1074 // RUN: %clang --target=riscv32-unknown-linux-gnu -menable-experimental-extensions \
1075 // RUN: -march=rv32iztso0p1 -x c -E -dM %s \
1076 // RUN: -o - | FileCheck --check-prefix=CHECK-ZTSO-EXT %s
1077 // RUN: %clang --target=riscv64-unknown-linux-gnu -menable-experimental-extensions \
1078 // RUN: -march=rv64iztso0p1 -x c -E -dM %s \
1079 // RUN: -o - | FileCheck --check-prefix=CHECK-ZTSO-EXT %s
1080 // CHECK-ZTSO-EXT: __riscv_ztso 1000{{$}}
1082 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1083 // RUN: -march=rv32i_zve64x_zvbb1p0 -x c -E -dM %s \
1084 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVBB-EXT %s
1085 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1086 // RUN: -march=rv64i_zve64x_zvbb1p0 -x c -E -dM %s \
1087 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVBB-EXT %s
1088 // CHECK-ZVBB-EXT: __riscv_zvbb 1000000{{$}}
1090 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1091 // RUN: -march=rv32i_zve64x_zvbc1p0 -x c -E -dM %s \
1092 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVBC-EXT %s
1093 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1094 // RUN: -march=rv64i_zve64x_zvbc1p0 -x c -E -dM %s \
1095 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVBC-EXT %s
1096 // CHECK-ZVBC-EXT: __riscv_zvbc 1000000{{$}}
1098 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1099 // RUN: -march=rv32ifzvfbfmin0p8 -x c -E -dM %s \
1100 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVFBFMIN-EXT %s
1101 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1102 // RUN: -march=rv64ifzvfbfmin0p8 -x c -E -dM %s \
1103 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVFBFMIN-EXT %s
1104 // CHECK-ZVFBFMIN-EXT: __riscv_zvfbfmin 8000{{$}}
1106 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1107 // RUN: -march=rv32ifzvfbfwma0p8 -x c -E -dM %s \
1108 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVFBFWMA-EXT %s
1109 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1110 // RUN: -march=rv64ifzvfbfwma0p8 -x c -E -dM %s \
1111 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVFBFWMA-EXT %s
1112 // CHECK-ZVFBFWMA-EXT: __riscv_zvfbfwma 8000{{$}}
1114 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1115 // RUN: -march=rv32i_zve32x_zvkg1p0 -x c -E -dM %s \
1116 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKG-EXT %s
1117 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1118 // RUN: -march=rv64i_zve32x_zvkg1p0 -x c -E -dM %s \
1119 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKG-EXT %s
1120 // CHECK-ZVKG-EXT: __riscv_zvkg 1000000{{$}}
1122 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1123 // RUN: -march=rv32i_zve64x_zvkn1p0 -x c -E -dM %s \
1124 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKN-EXT %s
1125 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1126 // RUN: -march=rv64i_zve64x_zvkn1p0 -x c -E -dM %s \
1127 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKN-EXT %s
1128 // CHECK-ZVKN-EXT: __riscv_zvkn 1000000{{$}}
1130 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1131 // RUN: -march=rv32iv_zvbb1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s \
1132 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKN %s
1133 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1134 // RUN: -march=rv64iv_zvbb1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s \
1135 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKN %s
1136 // CHECK-COMBINE-INTO-ZVKN: __riscv_zvkn 1000000{{$}}
1138 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1139 // RUN: -march=rv32i_zve64x_zvknc1p0 -x c -E -dM %s \
1140 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNC-EXT %s
1141 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1142 // RUN: -march=rv64i_zve64x_zvknc1p0 -x c -E -dM %s \
1143 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNC-EXT %s
1144 // CHECK-ZVKNC-EXT: __riscv_zvknc 1000000{{$}}
1146 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1147 // RUN: -march=rv32iv_zvbb1p0_zvbc1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s \
1148 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNC %s
1149 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1150 // RUN: -march=rv64iv_zvbb1p0_zvbc1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s \
1151 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNC %s
1152 // CHECK-COMBINE-INTO-ZVKNC: __riscv_zvkn 1000000{{$}}
1153 // CHECK-COMBINE-INTO-ZVKNC: __riscv_zvknc 1000000{{$}}
1155 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1156 // RUN: -march=rv32i_zve32x_zvkned1p0 -x c -E -dM %s \
1157 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNED-EXT %s
1158 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1159 // RUN: -march=rv64i_zve32x_zvkned1p0 -x c -E -dM %s \
1160 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNED-EXT %s
1161 // CHECK-ZVKNED-EXT: __riscv_zvkned 1000000{{$}}
1163 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1164 // RUN: -march=rv32i_zve64x_zvkng1p0 -x c -E -dM %s \
1165 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNG-EXT %s
1166 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1167 // RUN: -march=rv64i_zve64x_zvkng1p0 -x c -E -dM %s \
1168 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNG-EXT %s
1169 // CHECK-ZVKNG-EXT: __riscv_zvkng 1000000{{$}}
1171 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1172 // RUN: -march=rv32iv_zvbb1p0_zvkg1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s \
1173 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNG %s
1174 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1175 // RUN: -march=rv64iv_zvbb1p0_zvkg1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s \
1176 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNG %s
1177 // CHECK-COMBINE-INTO-ZVKNG: __riscv_zvkn 1000000{{$}}
1178 // CHECK-COMBINE-INTO-ZVKNG: __riscv_zvkng 1000000{{$}}
1180 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1181 // RUN: -march=rv32i_zve32x_zvknha1p0 -x c -E -dM %s \
1182 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNHA-EXT %s
1183 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1184 // RUN: -march=rv64i_zve32x_zvknha1p0 -x c -E -dM %s \
1185 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNHA-EXT %s
1186 // CHECK-ZVKNHA-EXT: __riscv_zvknha 1000000{{$}}
1188 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1189 // RUN: -march=rv32i_zve64x_zvknhb1p0 -x c -E -dM %s \
1190 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNHB-EXT %s
1191 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1192 // RUN: -march=rv64i_zve64x_zvknhb1p0 -x c -E -dM %s \
1193 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNHB-EXT %s
1194 // CHECK-ZVKNHB-EXT: __riscv_zvknhb 1000000{{$}}
1196 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1197 // RUN: -march=rv32i_zve64x_zvks1p0 -x c -E -dM %s \
1198 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKS-EXT %s
1199 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1200 // RUN: -march=rv64i_zve64x_zvks1p0 -x c -E -dM %s \
1201 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKS-EXT %s
1202 // CHECK-ZVKS-EXT: __riscv_zvks 1000000{{$}}
1204 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1205 // RUN: -march=rv32iv_zvbb1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s \
1206 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKS %s
1207 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1208 // RUN: -march=rv64iv_zvbb1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s \
1209 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKS %s
1210 // CHECK-COMBINE-INTO-ZVKS: __riscv_zvks 1000000{{$}}
1212 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1213 // RUN: -march=rv32i_zve64x_zvksc1p0 -x c -E -dM %s \
1214 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSC-EXT %s
1215 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1216 // RUN: -march=rv64i_zve64x_zvksc1p0 -x c -E -dM %s \
1217 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSC-EXT %s
1218 // CHECK-ZVKSC-EXT: __riscv_zvksc 1000000{{$}}
1220 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1221 // RUN: -march=rv32iv_zvbb1p0_zvbc1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s \
1222 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSC %s
1223 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1224 // RUN: -march=rv64iv_zvbb1p0_zvbc1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s \
1225 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSC %s
1226 // CHECK-COMBINE-INTO-ZVKSC: __riscv_zvks 1000000{{$}}
1227 // CHECK-COMBINE-INTO-ZVKSC: __riscv_zvksc 1000000{{$}}
1229 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1230 // RUN: -march=rv32i_zve32x_zvksed1p0 -x c -E -dM %s \
1231 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSED-EXT %s
1232 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1233 // RUN: -march=rv64i_zve32x_zvksed1p0 -x c -E -dM %s \
1234 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSED-EXT %s
1235 // CHECK-ZVKSED-EXT: __riscv_zvksed 1000000{{$}}
1237 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1238 // RUN: -march=rv32i_zve64x_zvksg1p0 -x c -E -dM %s \
1239 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSG-EXT %s
1240 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1241 // RUN: -march=rv64i_zve64x_zvksg1p0 -x c -E -dM %s \
1242 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSG-EXT %s
1243 // CHECK-ZVKSG-EXT: __riscv_zvksg 1000000{{$}}
1245 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1246 // RUN: -march=rv32iv_zvbb1p0_zvkg1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s \
1247 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSG %s
1248 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1249 // RUN: -march=rv64iv_zvbb1p0_zvkg1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s \
1250 // RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSG %s
1251 // CHECK-COMBINE-INTO-ZVKSG: __riscv_zvks 1000000{{$}}
1252 // CHECK-COMBINE-INTO-ZVKSG: __riscv_zvksg 1000000{{$}}
1254 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1255 // RUN: -march=rv32i_zve32x_zvksh1p0 -x c -E -dM %s \
1256 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSH-EXT %s
1257 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1258 // RUN: -march=rv64i_zve32x_zvksh1p0 -x c -E -dM %s \
1259 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSH-EXT %s
1260 // CHECK-ZVKSH-EXT: __riscv_zvksh 1000000{{$}}
1262 // RUN: %clang --target=riscv32 -menable-experimental-extensions \
1263 // RUN: -march=rv32i_zve32x_zvkt1p0 -x c -E -dM %s \
1264 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKT-EXT %s
1265 // RUN: %clang --target=riscv64 -menable-experimental-extensions \
1266 // RUN: -march=rv64i_zve32x_zvkt1p0 -x c -E -dM %s \
1267 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKT-EXT %s
1268 // CHECK-ZVKT-EXT: __riscv_zvkt 1000000{{$}}
1270 // RUN: %clang --target=riscv32-unknown-linux-gnu -march=rv32i -x c -E -dM %s \
1271 // RUN: -o - | FileCheck %s --check-prefix=CHECK-MISALIGNED-AVOID
1272 // RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64i -x c -E -dM %s \
1273 // RUN: -o - | FileCheck %s --check-prefix=CHECK-MISALIGNED-AVOID
1274 // CHECK-MISALIGNED-AVOID: __riscv_misaligned_avoid 1
1276 // RUN: %clang --target=riscv32-unknown-linux-gnu -march=rv32i -E -dM %s \
1277 // RUN: -munaligned-access -o - | FileCheck %s --check-prefix=CHECK-MISALIGNED-FAST
1278 // RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64i -E -dM %s \
1279 // RUN: -munaligned-access -o - | FileCheck %s --check-prefix=CHECK-MISALIGNED-FAST
1280 // CHECK-MISALIGNED-FAST: __riscv_misaligned_fast 1