1 // RUN: %clang -target riscv32-unknown-elf -march=rv32i -### %s \ 2 // RUN: -fsyntax-only 2>&1 | FileCheck %s 3 // RUN: %clang -target riscv32-unknown-elf -march=rv32im -### %s \ 4 // RUN: -fsyntax-only 2>&1 | FileCheck %s 5 // RUN: %clang -target riscv32-unknown-elf -march=rv32ima -### %s \ 6 // RUN: -fsyntax-only 2>&1 | FileCheck %s 7 // RUN: %clang -target riscv32-unknown-elf -march=rv32imaf -### %s \ 8 // RUN: -fsyntax-only 2>&1 | FileCheck %s 9 // RUN: %clang -target riscv32-unknown-elf -march=rv32imafd -### %s \ 10 // RUN: -fsyntax-only 2>&1 | FileCheck %s 11 12 // RUN: %clang -target riscv32-unknown-elf -march=rv32ic -### %s \ 13 // RUN: -fsyntax-only 2>&1 | FileCheck %s 14 // RUN: %clang -target riscv32-unknown-elf -march=rv32imc -### %s \ 15 // RUN: -fsyntax-only 2>&1 | FileCheck %s 16 // RUN: %clang -target riscv32-unknown-elf -march=rv32imac -### %s \ 17 // RUN: -fsyntax-only 2>&1 | FileCheck %s 18 // RUN: %clang -target riscv32-unknown-elf -march=rv32imafc -### %s \ 19 // RUN: -fsyntax-only 2>&1 | FileCheck %s 20 // RUN: %clang -target riscv32-unknown-elf -march=rv32imafdc -### %s \ 21 // RUN: -fsyntax-only 2>&1 | FileCheck %s 22 23 // RUN: %clang -target riscv32-unknown-elf -march=rv32ia -### %s \ 24 // RUN: -fsyntax-only 2>&1 | FileCheck %s 25 // RUN: %clang -target riscv32-unknown-elf -march=rv32iaf -### %s \ 26 // RUN: -fsyntax-only 2>&1 | FileCheck %s 27 // RUN: %clang -target riscv32-unknown-elf -march=rv32iafd -### %s \ 28 // RUN: -fsyntax-only 2>&1 | FileCheck %s 29 30 // RUN: %clang -target riscv32-unknown-elf -march=rv32iac -### %s \ 31 // RUN: -fsyntax-only 2>&1 | FileCheck %s 32 // RUN: %clang -target riscv32-unknown-elf -march=rv32iafc -### %s \ 33 // RUN: -fsyntax-only 2>&1 | FileCheck %s 34 // RUN: %clang -target riscv32-unknown-elf -march=rv32iafdc -### %s \ 35 // RUN: -fsyntax-only 2>&1 | FileCheck %s 36 37 // RUN: %clang -target riscv32-unknown-elf -march=rv32g -### %s \ 38 // RUN: -fsyntax-only 2>&1 | FileCheck %s 39 // RUN: %clang -target riscv32-unknown-elf -march=rv32gc -### %s \ 40 // RUN: -fsyntax-only 2>&1 | FileCheck %s 41 42 // RUN: %clang -target riscv64-unknown-elf -march=rv64i -### %s \ 43 // RUN: -fsyntax-only 2>&1 | FileCheck %s 44 // RUN: %clang -target riscv64-unknown-elf -march=rv64im -### %s \ 45 // RUN: -fsyntax-only 2>&1 | FileCheck %s 46 // RUN: %clang -target riscv64-unknown-elf -march=rv64ima -### %s \ 47 // RUN: -fsyntax-only 2>&1 | FileCheck %s 48 // RUN: %clang -target riscv64-unknown-elf -march=rv64imaf -### %s \ 49 // RUN: -fsyntax-only 2>&1 | FileCheck %s 50 // RUN: %clang -target riscv64-unknown-elf -march=rv64imafd -### %s \ 51 // RUN: -fsyntax-only 2>&1 | FileCheck %s 52 53 // RUN: %clang -target riscv64-unknown-elf -march=rv64ic -### %s \ 54 // RUN: -fsyntax-only 2>&1 | FileCheck %s 55 // RUN: %clang -target riscv64-unknown-elf -march=rv64imc -### %s \ 56 // RUN: -fsyntax-only 2>&1 | FileCheck %s 57 // RUN: %clang -target riscv64-unknown-elf -march=rv64imac -### %s \ 58 // RUN: -fsyntax-only 2>&1 | FileCheck %s 59 // RUN: %clang -target riscv64-unknown-elf -march=rv64imafc -### %s \ 60 // RUN: -fsyntax-only 2>&1 | FileCheck %s 61 // RUN: %clang -target riscv64-unknown-elf -march=rv64imafdc -### %s \ 62 // RUN: -fsyntax-only 2>&1 | FileCheck %s 63 64 // RUN: %clang -target riscv64-unknown-elf -march=rv64ia -### %s \ 65 // RUN: -fsyntax-only 2>&1 | FileCheck %s 66 // RUN: %clang -target riscv64-unknown-elf -march=rv64iaf -### %s \ 67 // RUN: -fsyntax-only 2>&1 | FileCheck %s 68 // RUN: %clang -target riscv64-unknown-elf -march=rv64iafd -### %s \ 69 // RUN: -fsyntax-only 2>&1 | FileCheck %s 70 71 // RUN: %clang -target riscv64-unknown-elf -march=rv64iac -### %s \ 72 // RUN: -fsyntax-only 2>&1 | FileCheck %s 73 // RUN: %clang -target riscv64-unknown-elf -march=rv64iafc -### %s \ 74 // RUN: -fsyntax-only 2>&1 | FileCheck %s 75 // RUN: %clang -target riscv64-unknown-elf -march=rv64iafdc -### %s \ 76 // RUN: -fsyntax-only 2>&1 | FileCheck %s 77 78 // RUN: %clang -target riscv64-unknown-elf -march=rv64g -### %s \ 79 // RUN: -fsyntax-only 2>&1 | FileCheck %s 80 // RUN: %clang -target riscv64-unknown-elf -march=rv64gc -### %s \ 81 // RUN: -fsyntax-only 2>&1 | FileCheck %s 82 83 // CHECK-NOT: error: invalid arch name ' 84 85 // RUN: %clang -target riscv32-unknown-elf -march=rv32 -### %s \ 86 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32 %s 87 // RV32: error: invalid arch name 'rv32' 88 89 // RUN: %clang -target riscv32-unknown-elf -march=rv32m -### %s \ 90 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32M %s 91 // RV32M: error: invalid arch name 'rv32m' 92 93 // RUN: %clang -target riscv32-unknown-elf -march=rv32id -### %s \ 94 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32ID %s 95 // RV32ID: error: invalid arch name 'rv32id' 96 97 // RUN: %clang -target riscv32-unknown-elf -march=rv32l -### %s \ 98 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32L %s 99 // RV32L: error: invalid arch name 'rv32l' 100 101 // RUN: %clang -target riscv32-unknown-elf -march=rv32imadf -### %s \ 102 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32IMADF %s 103 // RV32IMADF: error: invalid arch name 'rv32imadf' 104 105 // RUN: %clang -target riscv32-unknown-elf -march=rv32imm -### %s \ 106 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32IMM %s 107 // RV32IMM: error: invalid arch name 'rv32imm' 108 109 // RUN: %clang -target riscv32-unknown-elf -march=RV32I -### %s \ 110 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32I-UPPER %s 111 // RV32I-UPPER: error: invalid arch name 'RV32I' 112 113 // RUN: %clang -target riscv64-unknown-elf -march=rv64 -### %s \ 114 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV64 %s 115 // RV64: error: invalid arch name 'rv64' 116 117 // RUN: %clang -target riscv64-unknown-elf -march=rv64m -### %s \ 118 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV64M %s 119 // RV64M: error: invalid arch name 'rv64m' 120 121 // RUN: %clang -target riscv64-unknown-elf -march=rv64id -### %s \ 122 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV64ID %s 123 // RV64ID: error: invalid arch name 'rv64id' 124 125 // RUN: %clang -target riscv64-unknown-elf -march=rv64l -### %s \ 126 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV64L %s 127 // RV64L: error: invalid arch name 'rv64l' 128 129 // RUN: %clang -target riscv64-unknown-elf -march=rv64imadf -### %s \ 130 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV64IMADF %s 131 // RV64IMADF: error: invalid arch name 'rv64imadf' 132 133 // RUN: %clang -target riscv64-unknown-elf -march=rv64imm -### %s \ 134 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV64IMM %s 135 // RV64IMM: error: invalid arch name 'rv64imm' 136 137 // RUN: %clang -target riscv64-unknown-elf -march=RV64I -### %s \ 138 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV64I-UPPER %s 139 // RV64I-UPPER: error: invalid arch name 'RV64I' 140 141 142 // Testing specific messages and unsupported extensions. 143 144 // RUN: %clang -target riscv32-unknown-elf -march=rv32e -### %s \ 145 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32E %s 146 // RV32E: error: invalid arch name 'rv32e', 147 // RV32E: standard user-level extension 'e' 148 149 // RUN: %clang -target riscv64-unknown-elf -march=rv64e -### %s \ 150 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV64E %s 151 // RV64E: error: invalid arch name 'rv64e', 152 // RV64E: standard user-level extension 'e' requires 'rv32' 153 154 // RUN: %clang -target riscv32-unknown-elf -march=rv32imC -### %s \ 155 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-LOWER %s 156 // RV32-LOWER: error: invalid arch name 'rv32imC', 157 // RV32-LOWER: string must be lowercase 158 159 // RUN: %clang -target riscv32-unknown-elf -march=unknown -### %s \ 160 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-STR %s 161 // RV32-STR: error: invalid arch name 'unknown', 162 // RV32-STR: string must begin with rv32{i,e,g} or rv64{i,g} 163 164 // RUN: %clang -target riscv32-unknown-elf -march=rv32q -### %s \ 165 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-LETTER %s 166 // RV32-LETTER: error: invalid arch name 'rv32q', 167 // RV32-LETTER: first letter should be 'e', 'i' or 'g' 168 169 // RUN: %clang -target riscv32-unknown-elf -march=rv32imcq -### %s \ 170 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-ORDER %s 171 // RV32-ORDER: error: invalid arch name 'rv32imcq', 172 // RV32-ORDER: standard user-level extension not given in canonical order 'q' 173 174 // RUN: %clang -target riscv32-unknown-elf -march=rv32imw -### %s \ 175 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-STD-INVAL %s 176 // RV32-STD-INVAL: error: invalid arch name 'rv32imw', 177 // RV32-STD-INVAL: invalid standard user-level extension 'w' 178 179 // RUN: %clang -target riscv32-unknown-elf -march=rv32imqc -### %s \ 180 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-STD %s 181 // RV32-STD: error: invalid arch name 'rv32imqc', 182 // RV32-STD: unsupported standard user-level extension 'q' 183 184 // RUN: %clang -target riscv32-unknown-elf -march=rv32xabc -### %s \ 185 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32X %s 186 // RV32X: error: invalid arch name 'rv32xabc', 187 // RV32X: first letter should be 'e', 'i' or 'g' 188 189 // RUN: %clang -target riscv32-unknown-elf -march=rv32sxabc -### %s \ 190 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32SX %s 191 // RV32SX: error: invalid arch name 'rv32sxabc', 192 // RV32SX: first letter should be 'e', 'i' or 'g' 193 194 // RUN: %clang -target riscv32-unknown-elf -march=rv32sabc -### %s \ 195 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32S %s 196 // RV32S: error: invalid arch name 'rv32sabc', 197 // RV32S: first letter should be 'e', 'i' or 'g' 198 199 // RUN: %clang -target riscv32-unknown-elf -march=rv32ix -### %s \ 200 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32X-NAME %s 201 // RV32X-NAME: error: invalid arch name 'rv32ix', 202 // RV32X-NAME: non-standard user-level extension name missing after 'x' 203 204 // RUN: %clang -target riscv32-unknown-elf -march=rv32isx -### %s \ 205 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32SX-NAME %s 206 // RV32SX-NAME: error: invalid arch name 'rv32isx', 207 // RV32SX-NAME: non-standard supervisor-level extension 208 // RV32SX-NAME: name missing after 'sx' 209 210 // RUN: %clang -target riscv32-unknown-elf -march=rv32is -### %s \ 211 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32S-NAME %s 212 // RV32S-NAME: error: invalid arch name 'rv32is', 213 // RV32S-NAME: standard supervisor-level extension 214 // RV32S-NAME: name missing after 's' 215 216 // RUN: %clang -target riscv32-unknown-elf -march=rv32ix_s_sx -### %s \ 217 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32ALL-NAME %s 218 // RV32ALL-NAME: error: invalid arch name 'rv32ix_s_sx', 219 // RV32ALL-NAME: non-standard user-level extension 220 // RV32ALL-NAME: name missing after 'x' 221 222 // RUN: %clang -target riscv32-unknown-elf -march=rv32ixabc -### %s \ 223 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32X-UNS %s 224 // RV32X-UNS: error: invalid arch name 'rv32ixabc', 225 // RV32X-UNS: unsupported non-standard user-level extension 'xabc' 226 227 // RUN: %clang -target riscv32-unknown-elf -march=rv32isa -### %s \ 228 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32S-UNS %s 229 // RV32S-UNS: error: invalid arch name 'rv32isa', 230 // RV32S-UNS: unsupported standard supervisor-level extension 'sa' 231 232 // RUN: %clang -target riscv32-unknown-elf -march=rv32isxabc -### %s \ 233 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32SX-UNS %s 234 // RV32SX-UNS: error: invalid arch name 'rv32isxabc', 235 // RV32SX-UNS: unsupported non-standard supervisor-level extension 'sxabc' 236 237 // RUN: %clang -target riscv32-unknown-elf -march=rv32ixabc_sp_sxlw -### %s \ 238 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32ALL %s 239 // RV32ALL: error: invalid arch name 'rv32ixabc_sp_sxlw', 240 // RV32ALL: unsupported non-standard user-level extension 'xabc' 241 242 // RUN: %clang -target riscv32-unknown-elf -march=rv32i20 -### %s \ 243 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-IVER %s 244 // RV32-IVER: error: invalid arch name 'rv32i20', unsupported 245 // RV32-IVER: version number 20 for extension 'i' 246 247 // RUN: %clang -target riscv32-unknown-elf -march=rv32imc5 -### %s \ 248 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-CVER %s 249 // RV32-CVER: error: invalid arch name 'rv32imc5', unsupported 250 // RV32-CVER: version number 5 for extension 'c' 251 252 // RUN: %clang -target riscv32-unknown-elf -march=rv32i2p -### %s \ 253 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-IMINOR-MISS %s 254 // RV32-IMINOR-MISS: error: invalid arch name 'rv32i2p', 255 // RV32-IMINOR-MISS: minor version number missing after 'p' for extension 'i' 256 257 // RUN: %clang -target riscv32-unknown-elf -march=rv32i2p0 -### %s \ 258 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-IMINOR0 %s 259 // RV32-IMINOR0: error: invalid arch name 'rv32i2p0', 260 // RV32-IMINOR0: unsupported version number 2.0 for extension 'i' 261 262 // RUN: %clang -target riscv32-unknown-elf -march=rv32i2p1 -### %s \ 263 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-IMINOR1 %s 264 // RV32-IMINOR1: error: invalid arch name 'rv32i2p1', unsupported 265 // RV32-IMINOR1: version number 2.1 for extension 'i' 266 267 // RUN: %clang -target riscv32-unknown-elf -march=rv32ixt2p -### %s \ 268 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-XMINOR-MISS %s 269 // RV32-XMINOR-MISS: error: invalid arch name 'rv32ixt2p', 270 // RV32-XMINOR-MISS: minor version number missing after 'p' for extension 'xt' 271 272 // RUN: %clang -target riscv32-unknown-elf -march=rv32ist2p0 -### %s \ 273 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-SMINOR0 %s 274 // RV32-SMINOR0: error: invalid arch name 'rv32ist2p0', 275 // RV32-SMINOR0: unsupported version number 2.0 for extension 'st' 276 277 // RUN: %clang -target riscv32-unknown-elf -march=rv32isxt2p1 -### %s \ 278 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-SXMINOR1 %s 279 // RV32-SXMINOR1: error: invalid arch name 'rv32isxt2p1', unsupported 280 // RV32-SXMINOR1: version number 2.1 for extension 'sxt' 281 282 // RUN: %clang -target riscv32-unknown-elf -march=rv32ixabc_ -### %s \ 283 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-XSEP %s 284 // RV32-XSEP: error: invalid arch name 'rv32ixabc_', 285 // RV32-XSEP: extension name missing after separator '_' 286 287 // RUN: %clang -target riscv32-unknown-elf -march=rv32ixabc_a -### %s \ 288 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-PREFIX %s 289 // RV32-PREFIX: error: invalid arch name 'rv32ixabc_a', 290 // RV32-PREFIX: invalid extension prefix 'a' 291 292 // RUN: %clang -target riscv32-unknown-elf -march=rv32isabc_xdef -### %s \ 293 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-X-ORDER %s 294 // RV32-X-ORDER: error: invalid arch name 'rv32isabc_xdef', 295 // RV32-X-ORDER: non-standard user-level extension not given 296 // RV32-X-ORDER: in canonical order 'xdef' 297 298 // RUN: %clang -target riscv32-unknown-elf -march=rv32isxabc_sdef -### %s \ 299 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-S-ORDER %s 300 // RV32-S-ORDER: error: invalid arch name 'rv32isxabc_sdef', 301 // RV32-S-ORDER: standard supervisor-level extension not given 302 // RV32-S-ORDER: in canonical order 'sdef' 303 304 // RUN: %clang -target riscv32-unknown-elf -march=rv32ixabc_xabc -### %s \ 305 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-XDUP %s 306 // RV32-XDUP: error: invalid arch name 'rv32ixabc_xabc', 307 // RV32-XDUP: duplicated non-standard user-level extension 'xabc' 308 309 // RUN: %clang -target riscv32-unknown-elf -march=rv32ixabc_xdef -### %s \ 310 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-X-X-INVAL %s 311 // RV32-X-X-INVAL: error: invalid arch name 'rv32ixabc_xdef', unsupported 312 // RV32-X-X-INVAL: non-standard user-level extension 'xabc' 313 314 // RUN: %clang -target riscv32-unknown-elf -march=rv32ixabc_sdef_sxghi -### %s \ 315 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-X-S-SX-INVAL %s 316 // RV32-X-S-SX-INVAL: error: invalid arch name 'rv32ixabc_sdef_sxghi', 317 // RV32-X-S-SX-INVAL: unsupported non-standard user-level extension 'xabc' 318 319 // RUN: %clang -target riscv32-unknown-elf -march=rv32i -### %s \ 320 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-TARGET %s 321 // RUN: %clang -target riscv64-unknown-elf -march=rv32i -### %s \ 322 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-TARGET %s 323 // RV32-TARGET: "-triple" "riscv32-unknown-unknown-elf" 324 325 // RUN: %clang -target riscv32-unknown-elf -march=rv64i -### %s \ 326 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV64-TARGET %s 327 // RUN: %clang -target riscv64-unknown-elf -march=rv64i -### %s \ 328 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV64-TARGET %s 329 // RV64-TARGET: "-triple" "riscv64-unknown-unknown-elf" 330 331 // RUN: %clang -target riscv32-unknown-elf -march=rv32ib -### %s \ 332 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-NOFLAG %s 333 // RV32-EXPERIMENTAL-NOFLAG: error: invalid arch name 'rv32ib' 334 // RV32-EXPERIMENTAL-NOFLAG: requires '-menable-experimental-extensions' 335 336 // RUN: %clang -target riscv32-unknown-elf -march=rv32ib -menable-experimental-extensions -### %s \ 337 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-NOVERS %s 338 // RV32-EXPERIMENTAL-NOVERS: error: invalid arch name 'rv32ib' 339 // RV32-EXPERIMENTAL-NOVERS: experimental extension requires explicit version number 340 341 // RUN: %clang -target riscv32-unknown-elf -march=rv32ib0p1 -menable-experimental-extensions -### %s \ 342 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-BADVERS %s 343 // RV32-EXPERIMENTAL-BADVERS: error: invalid arch name 'rv32ib0p1' 344 // RV32-EXPERIMENTAL-BADVERS: unsupported version number 0.1 for experimental extension 345 346 // RUN: %clang -target riscv32-unknown-elf -march=rv32ib0p92 -menable-experimental-extensions -### %s \ 347 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-GOODVERS %s 348 // RV32-EXPERIMENTAL-GOODVERS: "-target-feature" "+experimental-b" 349 350 // RUN: %clang -target riscv32-unknown-elf -march=rv32izbb -### %s \ 351 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-ZBB-NOFLAG %s 352 // RV32-EXPERIMENTAL-ZBB-NOFLAG: error: invalid arch name 'rv32izbb' 353 // RV32-EXPERIMENTAL-ZBB-NOFLAG: requires '-menable-experimental-extensions' 354 355 // RUN: %clang -target riscv32-unknown-elf -march=rv32izbb0p92 -menable-experimental-extensions -### %s \ 356 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-ZBB %s 357 // RV32-EXPERIMENTAL-ZBB: "-target-feature" "+experimental-zbb" 358 359 // RUN: %clang -target riscv32-unknown-elf -march=rv32izbb0p92_zbp0p92 -menable-experimental-extensions -### %s \ 360 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-ZBB-ZBP %s 361 // RV32-EXPERIMENTAL-ZBB-ZBP: "-target-feature" "+experimental-zbb" 362 // RV32-EXPERIMENTAL-ZBB-ZBP: "-target-feature" "+experimental-zbp" 363 364 // RUN: %clang -target riscv32-unknown-elf -march=rv32izbb0p92zbp0p92 -menable-experimental-extensions -### %s \ 365 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-ZBB-ZBP-UNDERSCORE %s 366 // RV32-EXPERIMENTAL-ZBB-ZBP-UNDERSCORE: error: invalid arch name 'rv32izbb0p92zbp0p92', multi-character extensions must be separated by underscores 367 368 // RUN: %clang -target riscv32-unknown-elf -march=rv32iv -### %s -c 2>&1 | \ 369 // RUN: FileCheck -check-prefix=RV32-EXPERIMENTAL-V-NOFLAG %s 370 // RV32-EXPERIMENTAL-V-NOFLAG: error: invalid arch name 'rv32iv' 371 // RV32-EXPERIMENTAL-V-NOFLAG: requires '-menable-experimental-extensions' 372 373 // RUN: %clang -target riscv32-unknown-elf -march=rv32iv -menable-experimental-extensions -### %s -c 2>&1 | \ 374 // RUN: FileCheck -check-prefix=RV32-EXPERIMENTAL-V-NOVERS %s 375 // RV32-EXPERIMENTAL-V-NOVERS: error: invalid arch name 'rv32iv' 376 // RV32-EXPERIMENTAL-V-NOVERS: experimental extension requires explicit version number 377 378 // RUN: %clang -target riscv32-unknown-elf -march=rv32iv0p1 -menable-experimental-extensions -### %s -c 2>&1 | \ 379 // RUN: FileCheck -check-prefix=RV32-EXPERIMENTAL-V-BADVERS %s 380 // RV32-EXPERIMENTAL-V-BADVERS: error: invalid arch name 'rv32iv0p1' 381 // RV32-EXPERIMENTAL-V-BADVERS: unsupported version number 0.1 for experimental extension 382 383 // RUN: %clang -target riscv32-unknown-elf -march=rv32iv0p9 -menable-experimental-extensions -### %s -c 2>&1 | \ 384 // RUN: FileCheck -check-prefix=RV32-EXPERIMENTAL-V-GOODVERS %s 385 // RV32-EXPERIMENTAL-V-GOODVERS: "-target-feature" "+experimental-v" 386 387 // RUN: %clang -target riscv32-unknown-elf -march=rv32izfh -### %s \ 388 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-ZFH-NOFLAG %s 389 // RV32-EXPERIMENTAL-ZFH-NOFLAG: error: invalid arch name 'rv32izfh' 390 // RV32-EXPERIMENTAL-ZFH-NOFLAG: requires '-menable-experimental-extensions' 391 392 // RUN: %clang -target riscv32-unknown-elf -march=rv32izfh0p1 -menable-experimental-extensions -### %s \ 393 // RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-ZFH %s 394 // RV32-EXPERIMENTAL-ZFH: "-target-feature" "+experimental-zfh" 395