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