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 5 6 // CHECK-NOT: __riscv_div 7 // CHECK-NOT: __riscv_m 8 // CHECK-NOT: __riscv_mul 9 // CHECK-NOT: __riscv_muldiv 10 // CHECK-NOT: __riscv_a 2000000{{$}} 11 // CHECK-NOT: __riscv_atomic 12 // CHECK-NOT: __riscv_f 2000000{{$}} 13 // CHECK-NOT: __riscv_d 14 // CHECK-NOT: __riscv_flen 15 // CHECK-NOT: __riscv_fdiv 16 // CHECK-NOT: __riscv_fsqrt 17 // CHECK-NOT: __riscv_c 2000000{{$}} 18 // CHECK-NOT: __riscv_compressed 19 // CHECK-NOT: __riscv_b 20 // CHECK-NOT: __riscv_bitmanip 21 // CHECK-NOT: __riscv_zba 22 // CHECK-NOT: __riscv_zbb 23 // CHECK-NOT: __riscv_zbc 24 // CHECK-NOT: __riscv_zbe 25 // CHECK-NOT: __riscv_zbf 26 // CHECK-NOT: __riscv_zbm 27 // CHECK-NOT: __riscv_zbp 28 // CHECK-NOT: __riscv_zbr 29 // CHECK-NOT: __riscv_zbs 30 // CHECK-NOT: __riscv_zbt 31 // CHECK-NOT: __riscv_zfh 32 // CHECK-NOT: __riscv_v 33 // CHECK-NOT: __riscv_vector 34 // CHECK-NOT: __riscv_zbkc 35 // CHECK-NOT: __riscv_zbkx 36 // CHECK-NOT: __riscv_zbkb 37 // CHECK-NOT: __riscv_zkne 38 // CHECK-NOT: __riscv_zknd 39 // CHECK-NOT: __riscv_zknh 40 // CHECK-NOT: __riscv_zksh 41 // CHECK-NOT: __riscv_zksed 42 // CHECK-NOT: __riscv_zkr 43 // CHECK-NOT: __riscv_zkt 44 // CHECK-NOT: __riscv_zk 45 // CHECK-NOT: __riscv_zicbom 46 // CHECK-NOT: __riscv_zicboz 47 48 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32im -x c -E -dM %s \ 49 // RUN: -o - | FileCheck --check-prefix=CHECK-M-EXT %s 50 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64im -x c -E -dM %s \ 51 // RUN: -o - | FileCheck --check-prefix=CHECK-M-EXT %s 52 // CHECK-M-EXT: __riscv_div 1 53 // CHECK-M-EXT: __riscv_m 2000000{{$}} 54 // CHECK-M-EXT: __riscv_mul 1 55 // CHECK-M-EXT: __riscv_muldiv 1 56 57 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ia -x c -E -dM %s \ 58 // RUN: -o - | FileCheck --check-prefix=CHECK-A-EXT %s 59 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ia -x c -E -dM %s \ 60 // RUN: -o - | FileCheck --check-prefix=CHECK-A-EXT %s 61 // CHECK-A-EXT: __riscv_a 2000000{{$}} 62 // CHECK-A-EXT: __riscv_atomic 1 63 64 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32if -x c -E -dM %s \ 65 // RUN: -o - | FileCheck --check-prefix=CHECK-F-EXT %s 66 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64if -x c -E -dM %s \ 67 // RUN: -o - | FileCheck --check-prefix=CHECK-F-EXT %s 68 // CHECK-F-EXT: __riscv_f 2000000{{$}} 69 // CHECK-F-EXT: __riscv_fdiv 1 70 // CHECK-F-EXT: __riscv_flen 32 71 // CHECK-F-EXT: __riscv_fsqrt 1 72 73 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -x c -E -dM %s \ 74 // RUN: -o - | FileCheck --check-prefix=CHECK-D-EXT %s 75 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -x c -E -dM %s \ 76 // RUN: -o - | FileCheck --check-prefix=CHECK-D-EXT %s 77 // CHECK-D-EXT: __riscv_d 2000000{{$}} 78 // CHECK-D-EXT: __riscv_fdiv 1 79 // CHECK-D-EXT: __riscv_flen 64 80 // CHECK-D-EXT: __riscv_fsqrt 1 81 82 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -mabi=ilp32 -x c -E -dM %s \ 83 // RUN: -o - | FileCheck --check-prefix=CHECK-SOFT %s 84 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -mabi=lp64 -x c -E -dM %s \ 85 // RUN: -o - | FileCheck --check-prefix=CHECK-SOFT %s 86 // CHECK-SOFT: __riscv_float_abi_soft 1 87 // CHECK-SOFT-NOT: __riscv_float_abi_single 88 // CHECK-SOFT-NOT: __riscv_float_abi_double 89 90 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -mabi=ilp32f -x c -E -dM %s \ 91 // RUN: -o - | FileCheck --check-prefix=CHECK-SINGLE %s 92 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -mabi=lp64f -x c -E -dM %s \ 93 // RUN: -o - | FileCheck --check-prefix=CHECK-SINGLE %s 94 // CHECK-SINGLE: __riscv_float_abi_single 1 95 // CHECK-SINGLE-NOT: __riscv_float_abi_soft 96 // CHECK-SINGLE-NOT: __riscv_float_abi_double 97 98 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -x c -E -dM %s \ 99 // RUN: -o - | FileCheck --check-prefix=CHECK-DOUBLE %s 100 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -x c -E -dM %s \ 101 // RUN: -o - | FileCheck --check-prefix=CHECK-DOUBLE %s 102 // CHECK-DOUBLE: __riscv_float_abi_double 1 103 // CHECK-DOUBLE-NOT: __riscv_float_abi_soft 104 // CHECK-DOUBLE-NOT: __riscv_float_abi_single 105 106 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ic -x c -E -dM %s \ 107 // RUN: -o - | FileCheck --check-prefix=CHECK-C-EXT %s 108 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ic -x c -E -dM %s \ 109 // RUN: -o - | FileCheck --check-prefix=CHECK-C-EXT %s 110 // CHECK-C-EXT: __riscv_c 2000000{{$}} 111 // CHECK-C-EXT: __riscv_compressed 1 112 113 // RUN: %clang -target riscv32-unknown-linux-gnu \ 114 // RUN: -march=rv32izba1p0 -x c -E -dM %s \ 115 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s 116 // RUN: %clang -target riscv32-unknown-linux-gnu \ 117 // RUN: -march=rv32izba -x c -E -dM %s \ 118 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s 119 // RUN: %clang -target riscv64-unknown-linux-gnu \ 120 // RUN: -march=rv64izba1p0 -x c -E -dM %s \ 121 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s 122 // RUN: %clang -target riscv64-unknown-linux-gnu \ 123 // RUN: -march=rv64izba -x c -E -dM %s \ 124 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s 125 // CHECK-ZBA-NOT: __riscv_b 126 // CHECK-ZBA-EXT: __riscv_zba 1000000{{$}} 127 128 // RUN: %clang -target riscv32-unknown-linux-gnu \ 129 // RUN: -march=rv32izbb1p0 -x c -E -dM %s \ 130 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBB-EXT %s 131 // RUN: %clang -target riscv32-unknown-linux-gnu \ 132 // RUN: -march=rv32izbb -x c -E -dM %s \ 133 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBB-EXT %s 134 // RUN: %clang -target riscv64-unknown-linux-gnu \ 135 // RUN: -march=rv64izbb1p0 -x c -E -dM %s \ 136 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBB-EXT %s 137 // RUN: %clang -target riscv64-unknown-linux-gnu \ 138 // RUN: -march=rv64izbb -x c -E -dM %s \ 139 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBB-EXT %s 140 // CHECK-ZBB-NOT: __riscv_b 141 // CHECK-ZBB-EXT: __riscv_zbb 1000000{{$}} 142 143 // RUN: %clang -target riscv32-unknown-linux-gnu \ 144 // RUN: -march=rv32izbc1p0 -x c -E -dM %s \ 145 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s 146 // RUN: %clang -target riscv32-unknown-linux-gnu \ 147 // RUN: -march=rv32izbc -x c -E -dM %s \ 148 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s 149 // RUN: %clang -target riscv64-unknown-linux-gnu \ 150 // RUN: -march=rv64izbc1p0 -x c -E -dM %s \ 151 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s 152 // RUN: %clang -target riscv64-unknown-linux-gnu \ 153 // RUN: -march=rv64izbc -x c -E -dM %s \ 154 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s 155 // CHECK-ZBC-NOT: __riscv_b 156 // CHECK-ZBC-EXT: __riscv_zbc 1000000{{$}} 157 158 // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \ 159 // RUN: -march=rv32izbe0p93 -x c -E -dM %s \ 160 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBE-EXT %s 161 // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \ 162 // RUN: -march=rv64izbe0p93 -x c -E -dM %s \ 163 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBE-EXT %s 164 // CHECK-ZBE-NOT: __riscv_b 165 // CHECK-ZBE-EXT: __riscv_zbe 93000{{$}} 166 167 // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \ 168 // RUN: -march=rv32izbf0p93 -x c -E -dM %s \ 169 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBF-EXT %s 170 // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \ 171 // RUN: -march=rv64izbf0p93 -x c -E -dM %s \ 172 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBF-EXT %s 173 // CHECK-ZBF-NOT: __riscv_b 174 // CHECK-ZBF-EXT: __riscv_zbf 93000{{$}} 175 176 // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \ 177 // RUN: -march=rv32izbm0p93 -x c -E -dM %s \ 178 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBM-EXT %s 179 // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \ 180 // RUN: -march=rv64izbm0p93 -x c -E -dM %s \ 181 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBM-EXT %s 182 // CHECK-ZBM-NOT: __riscv_b 183 // CHECK-ZBM-EXT: __riscv_zbm 93000{{$}} 184 185 // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \ 186 // RUN: -march=rv32izbp0p93 -x c -E -dM %s \ 187 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBP-EXT %s 188 // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \ 189 // RUN: -march=rv64izbp0p93 -x c -E -dM %s \ 190 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBP-EXT %s 191 // CHECK-ZBP-NOT: __riscv_b 192 // CHECK-ZBP-EXT: __riscv_zbp 93000{{$}} 193 194 // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \ 195 // RUN: -march=rv32izbr0p93 -x c -E -dM %s \ 196 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBR-EXT %s 197 // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \ 198 // RUN: -march=rv64izbr0p93 -x c -E -dM %s \ 199 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBR-EXT %s 200 // CHECK-ZBR-NOT: __riscv_b 201 // CHECK-ZBR-EXT: __riscv_zbr 93000{{$}} 202 203 // RUN: %clang -target riscv32-unknown-linux-gnu \ 204 // RUN: -march=rv32izbs1p0 -x c -E -dM %s \ 205 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s 206 // RUN: %clang -target riscv32-unknown-linux-gnu \ 207 // RUN: -march=rv32izbs -x c -E -dM %s \ 208 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s 209 // RUN: %clang -target riscv64-unknown-linux-gnu \ 210 // RUN: -march=rv64izbs1p0 -x c -E -dM %s \ 211 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s 212 // RUN: %clang -target riscv64-unknown-linux-gnu \ 213 // RUN: -march=rv64izbs -x c -E -dM %s \ 214 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s 215 // CHECK-ZBS-NOT: __riscv_b 216 // CHECK-ZBS-EXT: __riscv_zbs 1000000{{$}} 217 218 // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \ 219 // RUN: -march=rv32izbt0p93 -x c -E -dM %s \ 220 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBT-EXT %s 221 // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \ 222 // RUN: -march=rv64izbt0p93 -x c -E -dM %s \ 223 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBT-EXT %s 224 // CHECK-ZBT-NOT: __riscv_b 225 // CHECK-ZBT-EXT: __riscv_zbt 93000{{$}} 226 227 // RUN: %clang -target riscv32-unknown-linux-gnu \ 228 // RUN: -march=rv32iv1p0 -x c -E -dM %s \ 229 // RUN: -o - | FileCheck --check-prefix=CHECK-V-EXT %s 230 // RUN: %clang -target riscv64-unknown-linux-gnu \ 231 // RUN: -march=rv64iv1p0 -x c -E -dM %s \ 232 // RUN: -o - | FileCheck --check-prefix=CHECK-V-EXT %s 233 // CHECK-V-EXT: __riscv_v 1000000{{$}} 234 // CHECK-V-EXT: __riscv_vector 1 235 236 // RUN: %clang -target riscv32-unknown-linux-gnu \ 237 // RUN: -march=rv32izfhmin1p0 -x c -E -dM %s \ 238 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFHMIN-EXT %s 239 // RUN: %clang -target riscv64-unknown-linux-gnu \ 240 // RUN: -march=rv64izfhmin1p0 -x c -E -dM %s \ 241 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFHMIN-EXT %s 242 // CHECK-ZFHMIN-EXT: __riscv_f 2000000{{$}} 243 // CHECK-ZFHMIN-EXT: __riscv_zfhmin 1000000{{$}} 244 245 // RUN: %clang -target riscv32-unknown-linux-gnu \ 246 // RUN: -march=rv32izfh1p0 -x c -E -dM %s \ 247 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFH-EXT %s 248 // RUN: %clang -target riscv64-unknown-linux-gnu \ 249 // RUN: -march=rv64izfh1p0 -x c -E -dM %s \ 250 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFH-EXT %s 251 // CHECK-ZFH-EXT: __riscv_f 2000000{{$}} 252 // CHECK-ZFH-EXT: __riscv_zfh 1000000{{$}} 253 254 // RUN: %clang -target riscv32-unknown-linux-gnu \ 255 // RUN: -march=rv64iv1p0 -x c -E -dM %s -o - \ 256 // RUN: | FileCheck --check-prefix=CHECK-V-MINVLEN %s 257 // CHECK-V-MINVLEN: __riscv_v_elen 64 258 // CHECK-V-MINVLEN: __riscv_v_elen_fp 64 259 // CHECK-V-MINVLEN: __riscv_v_min_vlen 128 260 261 // RUN: %clang -target riscv32-unknown-linux-gnu \ 262 // RUN: -march=rv64iv1p0_zvl256b1p0 -x c -E -dM %s -o - \ 263 // RUN: | FileCheck --check-prefix=CHECK-ZVL256b %s 264 // CHECK-ZVL256b: __riscv_v_min_vlen 256 265 266 // RUN: %clang -target riscv32-unknown-linux-gnu \ 267 // RUN: -march=rv64iv1p0_zvl512b1p0 -x c -E -dM %s -o - \ 268 // RUN: | FileCheck --check-prefix=CHECK-ZVL512b %s 269 // CHECK-ZVL512b: __riscv_v_min_vlen 512 270 271 // RUN: %clang -target riscv32-unknown-linux-gnu \ 272 // RUN: -march=rv64iv1p0_zvl1024b1p0 -x c -E -dM %s -o - \ 273 // RUN: | FileCheck --check-prefix=CHECK-ZVL1024b %s 274 // CHECK-ZVL1024b: __riscv_v_min_vlen 1024 275 276 // RUN: %clang -target riscv32-unknown-linux-gnu \ 277 // RUN: -march=rv64iv1p0_zvl2048b1p0 -x c -E -dM %s -o - \ 278 // RUN: | FileCheck --check-prefix=CHECK-ZVL2048b %s 279 // CHECK-ZVL2048b: __riscv_v_min_vlen 2048 280 281 // RUN: %clang -target riscv32-unknown-linux-gnu \ 282 // RUN: -march=rv64iv1p0_zvl4096b1p0 -x c -E -dM %s -o - \ 283 // RUN: | FileCheck --check-prefix=CHECK-ZVL4096b %s 284 // CHECK-ZVL4096b: __riscv_v_min_vlen 4096 285 286 // RUN: %clang -target riscv32-unknown-linux-gnu \ 287 // RUN: -march=rv64iv1p0_zvl8192b1p0 -x c -E -dM %s -o - \ 288 // RUN: | FileCheck --check-prefix=CHECK-ZVL8192b %s 289 // CHECK-ZVL8192b: __riscv_v_min_vlen 8192 290 291 // RUN: %clang -target riscv32-unknown-linux-gnu \ 292 // RUN: -march=rv64iv1p0_zvl16384b1p0 -x c -E -dM %s -o - \ 293 // RUN: | FileCheck --check-prefix=CHECK-ZVL16384b %s 294 // CHECK-ZVL16384b: __riscv_v_min_vlen 16384 295 296 // RUN: %clang -target riscv32-unknown-linux-gnu \ 297 // RUN: -march=rv64iv1p0_zvl32768b1p0 -x c -E -dM %s -o - \ 298 // RUN: | FileCheck --check-prefix=CHECK-ZVL32768b %s 299 // CHECK-ZVL32768b: __riscv_v_min_vlen 32768 300 301 // RUN: %clang -target riscv32-unknown-linux-gnu \ 302 // RUN: -march=rv64iv1p0_zvl65536b1p0 -x c -E -dM %s -o - \ 303 // RUN: | FileCheck --check-prefix=CHECK-ZVL65536b %s 304 // CHECK-ZVL65536b: __riscv_v_min_vlen 65536 305 306 // RUN: %clang -target riscv64-unknown-linux-gnu \ 307 // RUN: -march=rv64ifdzve64d1p0 -x c -E -dM %s -o - \ 308 // RUN: | FileCheck --check-prefix=CHECK-ZVE64D-EXT %s 309 // CHECK-ZVE64D-EXT: __riscv_v_elen 64 310 // CHECK-ZVE64D-EXT: __riscv_v_elen_fp 64 311 // CHECK-ZVE64D-EXT: __riscv_v_min_vlen 64 312 // CHECK-ZVE64D-EXT: __riscv_vector 1 313 // CHECK-ZVE64D-EXT: __riscv_zve32f 1000000{{$}} 314 // CHECK-ZVE64D-EXT: __riscv_zve32x 1000000{{$}} 315 // CHECK-ZVE64D-EXT: __riscv_zve64d 1000000{{$}} 316 // CHECK-ZVE64D-EXT: __riscv_zve64f 1000000{{$}} 317 // CHECK-ZVE64D-EXT: __riscv_zve64x 1000000{{$}} 318 319 // RUN: %clang -target riscv64-unknown-linux-gnu \ 320 // RUN: -march=rv64ifzve64f1p0 -x c -E -dM %s -o - \ 321 // RUN: | FileCheck --check-prefix=CHECK-ZVE64F-EXT %s 322 // CHECK-ZVE64F-EXT: __riscv_v_elen 64 323 // CHECK-ZVE64F-EXT: __riscv_v_elen_fp 32 324 // CHECK-ZVE64F-EXT: __riscv_v_min_vlen 64 325 // CHECK-ZVE64F-EXT: __riscv_vector 1 326 // CHECK-ZVE64F-EXT: __riscv_zve32f 1000000{{$}} 327 // CHECK-ZVE64F-EXT: __riscv_zve32x 1000000{{$}} 328 // CHECK-ZVE64F-EXT: __riscv_zve64f 1000000{{$}} 329 // CHECK-ZVE64F-EXT: __riscv_zve64x 1000000{{$}} 330 331 // RUN: %clang -target riscv64-unknown-linux-gnu \ 332 // RUN: -march=rv64izve64x1p0 -x c -E -dM %s -o - \ 333 // RUN: | FileCheck --check-prefix=CHECK-ZVE64X-EXT %s 334 // CHECK-ZVE64X-EXT: __riscv_v_elen 64 335 // CHECK-ZVE64X-EXT: __riscv_v_elen_fp 0 336 // CHECK-ZVE64X-EXT: __riscv_v_min_vlen 64 337 // CHECK-ZVE64X-EXT: __riscv_vector 1 338 // CHECK-ZVE64X-EXT: __riscv_zve32x 1000000{{$}} 339 // CHECK-ZVE64X-EXT: __riscv_zve64x 1000000{{$}} 340 341 // RUN: %clang -target riscv64-unknown-linux-gnu \ 342 // RUN: -march=rv64ifzve32f1p0 -x c -E -dM %s -o - \ 343 // RUN: | FileCheck --check-prefix=CHECK-ZVE32F-EXT %s 344 // CHECK-ZVE32F-EXT: __riscv_v_elen 32 345 // CHECK-ZVE32F-EXT: __riscv_v_elen_fp 32 346 // CHECK-ZVE32F-EXT: __riscv_v_min_vlen 32 347 // CHECK-ZVE32F-EXT: __riscv_vector 1 348 // CHECK-ZVE32F-EXT: __riscv_zve32f 1000000{{$}} 349 // CHECK-ZVE32F-EXT: __riscv_zve32x 1000000{{$}} 350 351 // RUN: %clang -target riscv64-unknown-linux-gnu \ 352 // RUN: -march=rv64izve32x1p0 -x c -E -dM %s -o - \ 353 // RUN: | FileCheck --check-prefix=CHECK-ZVE32X-EXT %s 354 // CHECK-ZVE32X-EXT: __riscv_v_elen 32 355 // CHECK-ZVE32X-EXT: __riscv_v_elen_fp 0 356 // CHECK-ZVE32X-EXT: __riscv_v_min_vlen 32 357 // CHECK-ZVE32X-EXT: __riscv_vector 1 358 // CHECK-ZVE32X-EXT: __riscv_zve32x 1000000{{$}} 359 360 // RUN: %clang -target riscv64-unknown-linux-gnu \ 361 // RUN: -march=rv64izbkc1p0 -x c -E -dM %s -o - \ 362 // RUN: | FileCheck --check-prefix=CHECK-ZBKC-EXT %s 363 // CHECK-ZBKC-EXT: __riscv_zbkc 364 365 // RUN: %clang -target riscv64-unknown-linux-gnu \ 366 // RUN: -march=rv64izbkx1p0 -x c -E -dM %s -o - \ 367 // RUN: | FileCheck --check-prefix=CHECK-ZBKX-EXT %s 368 // CHECK-ZBKX-EXT: __riscv_zbkx 369 370 // RUN: %clang -target riscv64-unknown-linux-gnu \ 371 // RUN: -march=rv64izbkb1p0 -x c -E -dM %s -o - \ 372 // RUN: | FileCheck --check-prefix=CHECK-ZBKB-EXT %s 373 // CHECK-ZBKB-EXT: __riscv_zbkb 374 375 // RUN: %clang -target riscv64-unknown-linux-gnu \ 376 // RUN: -march=rv64izknd1p0 -x c -E -dM %s -o - \ 377 // RUN: | FileCheck --check-prefix=CHECK-ZKND-EXT %s 378 // CHECK-ZKND-EXT: __riscv_zknd 379 380 // RUN: %clang -target riscv64-unknown-linux-gnu \ 381 // RUN: -march=rv64izkne1p0 -x c -E -dM %s -o - \ 382 // RUN: | FileCheck --check-prefix=CHECK-ZKNE-EXT %s 383 // CHECK-ZKNE-EXT: __riscv_zkne 384 385 // RUN: %clang -target riscv64-unknown-linux-gnu \ 386 // RUN: -march=rv64izknh1p0 -x c -E -dM %s -o - \ 387 // RUN: | FileCheck --check-prefix=CHECK-ZKNH-EXT %s 388 // CHECK-ZKNH-EXT: __riscv_zknh 389 390 // RUN: %clang -target riscv64-unknown-linux-gnu \ 391 // RUN: -march=rv64izksh1p0 -x c -E -dM %s -o - \ 392 // RUN: | FileCheck --check-prefix=CHECK-ZKSH-EXT %s 393 // CHECK-ZKSH-EXT: __riscv_zksh 394 395 // RUN: %clang -target riscv64-unknown-linux-gnu \ 396 // RUN: -march=rv64izksed1p0 -x c -E -dM %s -o - \ 397 // RUN: | FileCheck --check-prefix=CHECK-ZKSED-EXT %s 398 // CHECK-ZKSED-EXT: __riscv_zksed 399 400 // RUN: %clang -target riscv64-unknown-linux-gnu \ 401 // RUN: -march=rv64izkr1p0 -x c -E -dM %s -o - \ 402 // RUN: | FileCheck --check-prefix=CHECK-ZKR-EXT %s 403 // CHECK-ZKR-EXT: __riscv_zkr 404 405 // RUN: %clang -target riscv64-unknown-linux-gnu \ 406 // RUN: -march=rv64izkt1p0 -x c -E -dM %s -o - \ 407 // RUN: | FileCheck --check-prefix=CHECK-ZKT-EXT %s 408 // CHECK-ZKT-EXT: __riscv_zkt 409 410 // RUN: %clang -target riscv64-unknown-linux-gnu \ 411 // RUN: -march=rv64izk1p0 -x c -E -dM %s -o - \ 412 // RUN: | FileCheck --check-prefix=CHECK-ZK-EXT %s 413 // CHECK-ZK-EXT: __riscv_zk 414 415 // RUN: %clang -target riscv32-unknown-linux-gnu \ 416 // RUN: -march=rv32i_zkn_zkt_zkr -x c -E -dM %s -o - \ 417 // RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZK %s 418 // RUN: %clang -target riscv64-unknown-linux-gnu \ 419 // RUN: -march=rv64i_zkn_zkt_zkr -x c -E -dM %s -o - \ 420 // RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZK %s 421 // CHECK-COMBINE-INTO-ZK: __riscv_zk 1 422 423 // RUN: %clang -target riscv32-unknown-linux-gnu \ 424 // RUN: -march=rv32i_zbkb_zbkc_zbkx_zkne_zknd_zknh -x c -E -dM %s -o - \ 425 // RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKN %s 426 // RUN: %clang -target riscv64-unknown-linux-gnu \ 427 // RUN: -march=rv64i_zbkb_zbkc_zbkx_zkne_zknd_zknh -x c -E -dM %s -o - \ 428 // RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKN %s 429 // CHECK-COMBINE-INTO-ZKN: __riscv_zkn 1 430 431 // RUN: %clang -target riscv32-unknown-linux-gnu \ 432 // RUN: -march=rv32i_zbkb_zbkc_zbkx_zksed_zksh -x c -E -dM %s -o - \ 433 // RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKS %s 434 // RUN: %clang -target riscv64-unknown-linux-gnu \ 435 // RUN: -march=rv64i_zbkb_zbkc_zbkx_zksed_zksh -x c -E -dM %s -o - \ 436 // RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKS %s 437 // CHECK-COMBINE-INTO-ZKS: __riscv_zks 1 438 439 // RUN: %clang -target riscv32 -march=rv32izicbom -x c -E -dM %s \ 440 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOM-EXT %s 441 // RUN: %clang -target riscv64 -march=rv64izicbom -x c -E -dM %s \ 442 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOM-EXT %s 443 // CHECK-ZICBOM-EXT: __riscv_zicbom 1000000{{$}} 444 445 // RUN: %clang -target riscv32 -march=rv32izicboz -x c -E -dM %s \ 446 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOZ-EXT %s 447 // RUN: %clang -target riscv64 -march=rv64izicboz -x c -E -dM %s \ 448 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOZ-EXT %s 449 // CHECK-ZICBOZ-EXT: __riscv_zicboz 1000000{{$}} 450 451 // RUN: %clang -target riscv32 -march=rv32izicbop -x c -E -dM %s \ 452 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOP-EXT %s 453 // RUN: %clang -target riscv64 -march=rv64izicbop -x c -E -dM %s \ 454 // RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOP-EXT %s 455 // CHECK-ZICBOP-EXT: __riscv_zicbop 1000000{{$}} 456