1 // RUN: %clang --target=riscv32 -### -c %s 2>&1 -march=rvi20u32 \ 2 // RUN: | FileCheck -check-prefix=RVI20U32 %s 3 // RVI20U32: "-target-feature" "-a" 4 // RVI20U32: "-target-feature" "-c" 5 // RVI20U32: "-target-feature" "-d" 6 // RVI20U32: "-target-feature" "-f" 7 // RVI20U32: "-target-feature" "-m" 8 9 // RUN: %clang --target=riscv64 -### -c %s 2>&1 -march=rvi20u64 \ 10 // RUN: | FileCheck -check-prefix=RVI20U64 %s 11 // RVI20U64: "-target-feature" "-a" 12 // RVI20U64: "-target-feature" "-c" 13 // RVI20U64: "-target-feature" "-d" 14 // RVI20U64: "-target-feature" "-f" 15 // RVI20U64: "-target-feature" "-m" 16 17 // RUN: %clang --target=riscv64 -### -c %s 2>&1 -march=rva20u64 \ 18 // RUN: | FileCheck -check-prefix=RVA20U64 %s 19 // RVA20U64: "-target-feature" "+m" 20 // RVA20U64: "-target-feature" "+a" 21 // RVA20U64: "-target-feature" "+f" 22 // RVA20U64: "-target-feature" "+d" 23 // RVA20U64: "-target-feature" "+c" 24 // RVA20U64: "-target-feature" "+ziccamoa" 25 // RVA20U64: "-target-feature" "+ziccif" 26 // RVA20U64: "-target-feature" "+zicclsm" 27 // RVA20U64: "-target-feature" "+ziccrse" 28 // RVA20U64: "-target-feature" "+zicntr" 29 // RVA20U64: "-target-feature" "+zicsr" 30 // RVA20U64: "-target-feature" "+za128rs" 31 32 // RUN: %clang --target=riscv64 -### -c %s 2>&1 -march=rva20s64 \ 33 // RUN: | FileCheck -check-prefix=RVA20S64 %s 34 // RVA20S64: "-target-feature" "+m" 35 // RVA20S64: "-target-feature" "+a" 36 // RVA20S64: "-target-feature" "+f" 37 // RVA20S64: "-target-feature" "+d" 38 // RVA20S64: "-target-feature" "+c" 39 // RVA20S64: "-target-feature" "+ziccamoa" 40 // RVA20S64: "-target-feature" "+ziccif" 41 // RVA20S64: "-target-feature" "+zicclsm" 42 // RVA20S64: "-target-feature" "+ziccrse" 43 // RVA20S64: "-target-feature" "+zicntr" 44 // RVA20S64: "-target-feature" "+zicsr" 45 // RVA20S64: "-target-feature" "+zifencei" 46 // RVA20S64: "-target-feature" "+za128rs" 47 // RVA20S64: "-target-feature" "+ssccptr" 48 // RVA20S64: "-target-feature" "+sstvala" 49 // RVA20S64: "-target-feature" "+sstvecd" 50 // RVA20S64: "-target-feature" "+svade" 51 // RVA20S64: "-target-feature" "+svbare" 52 53 // RUN: %clang --target=riscv64 -### -c %s 2>&1 -march=rva22u64 \ 54 // RUN: | FileCheck -check-prefix=RVA22U64 %s 55 // RVA22U64: "-target-feature" "+m" 56 // RVA22U64: "-target-feature" "+a" 57 // RVA22U64: "-target-feature" "+f" 58 // RVA22U64: "-target-feature" "+d" 59 // RVA22U64: "-target-feature" "+c" 60 // RVA22U64: "-target-feature" "+b" 61 // RVA22U64: "-target-feature" "+zic64b" 62 // RVA22U64: "-target-feature" "+zicbom" 63 // RVA22U64: "-target-feature" "+zicbop" 64 // RVA22U64: "-target-feature" "+zicboz" 65 // RVA22U64: "-target-feature" "+ziccamoa" 66 // RVA22U64: "-target-feature" "+ziccif" 67 // RVA22U64: "-target-feature" "+zicclsm" 68 // RVA22U64: "-target-feature" "+ziccrse" 69 // RVA22U64: "-target-feature" "+zicntr" 70 // RVA22U64: "-target-feature" "+zicsr" 71 // RVA22U64: "-target-feature" "+zihintpause" 72 // RVA22U64: "-target-feature" "+zihpm" 73 // RVA22U64: "-target-feature" "+za64rs" 74 // RVA22U64: "-target-feature" "+zfhmin" 75 // RVA22U64: "-target-feature" "+zba" 76 // RVA22U64: "-target-feature" "+zbb" 77 // RVA22U64: "-target-feature" "+zbs" 78 // RVA22U64: "-target-feature" "+zkt" 79 80 // RUN: %clang --target=riscv64 -### -c %s 2>&1 -march=rva22s64 \ 81 // RUN: | FileCheck -check-prefix=RVA22S64 %s 82 // RVA22S64: "-target-feature" "+m" 83 // RVA22S64: "-target-feature" "+a" 84 // RVA22S64: "-target-feature" "+f" 85 // RVA22S64: "-target-feature" "+d" 86 // RVA22S64: "-target-feature" "+c" 87 // RVA22S64: "-target-feature" "+b" 88 // RVA22S64: "-target-feature" "+zic64b" 89 // RVA22S64: "-target-feature" "+zicbom" 90 // RVA22S64: "-target-feature" "+zicbop" 91 // RVA22S64: "-target-feature" "+zicboz" 92 // RVA22S64: "-target-feature" "+ziccamoa" 93 // RVA22S64: "-target-feature" "+ziccif" 94 // RVA22S64: "-target-feature" "+zicclsm" 95 // RVA22S64: "-target-feature" "+ziccrse" 96 // RVA22S64: "-target-feature" "+zicntr" 97 // RVA22S64: "-target-feature" "+zicsr" 98 // RVA22S64: "-target-feature" "+zifencei" 99 // RVA22S64: "-target-feature" "+zihintpause" 100 // RVA22S64: "-target-feature" "+zihpm" 101 // RVA22S64: "-target-feature" "+za64rs" 102 // RVA22S64: "-target-feature" "+zfhmin" 103 // RVA22S64: "-target-feature" "+zba" 104 // RVA22S64: "-target-feature" "+zbb" 105 // RVA22S64: "-target-feature" "+zbs" 106 // RVA22S64: "-target-feature" "+zkt" 107 // RVA22S64: "-target-feature" "+ssccptr" 108 // RVA22S64: "-target-feature" "+sscounterenw" 109 // RVA22S64: "-target-feature" "+sstvala" 110 // RVA22S64: "-target-feature" "+sstvecd" 111 // RVA22S64: "-target-feature" "+svade" 112 // RVA22S64: "-target-feature" "+svbare" 113 // RVA22S64: "-target-feature" "+svinval" 114 // RVA22S64: "-target-feature" "+svpbmt" 115 116 // RUN: %clang --target=riscv64 -### -c %s 2>&1 -march=rva23u64 \ 117 // RUN: | FileCheck -check-prefix=RVA23U64 %s 118 // RVA23U64: "-target-feature" "+m" 119 // RVA23U64: "-target-feature" "+a" 120 // RVA23U64: "-target-feature" "+f" 121 // RVA23U64: "-target-feature" "+d" 122 // RVA23U64: "-target-feature" "+c" 123 // RVA23U64: "-target-feature" "+b" 124 // RVA23U64: "-target-feature" "+v" 125 // RVA23U64: "-target-feature" "+zic64b" 126 // RVA23U64: "-target-feature" "+zicbom" 127 // RVA23U64: "-target-feature" "+zicbop" 128 // RVA23U64: "-target-feature" "+zicboz" 129 // RVA23U64: "-target-feature" "+ziccamoa" 130 // RVA23U64: "-target-feature" "+ziccif" 131 // RVA23U64: "-target-feature" "+zicclsm" 132 // RVA23U64: "-target-feature" "+ziccrse" 133 // RVA23U64: "-target-feature" "+zicntr" 134 // RVA23U64: "-target-feature" "+zicond" 135 // RVA23U64: "-target-feature" "+zicsr" 136 // RVA23U64: "-target-feature" "+zihintntl" 137 // RVA23U64: "-target-feature" "+zihintpause" 138 // RVA23U64: "-target-feature" "+zihpm" 139 // RVA23U64: "-target-feature" "+zimop" 140 // RVA23U64: "-target-feature" "+za64rs" 141 // RVA23U64: "-target-feature" "+zawrs" 142 // RVA23U64: "-target-feature" "+zfa" 143 // RVA23U64: "-target-feature" "+zfhmin" 144 // RVA23U64: "-target-feature" "+zcb" 145 // RVA23U64: "-target-feature" "+zcmop" 146 // RVA23U64: "-target-feature" "+zba" 147 // RVA23U64: "-target-feature" "+zbb" 148 // RVA23U64: "-target-feature" "+zbs" 149 // RVA23U64: "-target-feature" "+zkt" 150 // RVA23U64: "-target-feature" "+zvbb" 151 // RVA23U64: "-target-feature" "+zvfhmin" 152 // RVA23U64: "-target-feature" "+zvkt" 153 // RVA23U64: "-target-feature" "+supm" 154 155 // RUN: %clang --target=riscv64 -### -c %s 2>&1 -march=rva23s64 \ 156 // RUN: | FileCheck -check-prefix=RVA23S64 %s 157 // RVA23S64: "-target-feature" "+m" 158 // RVA23S64: "-target-feature" "+a" 159 // RVA23S64: "-target-feature" "+f" 160 // RVA23S64: "-target-feature" "+d" 161 // RVA23S64: "-target-feature" "+c" 162 // RVA23S64: "-target-feature" "+b" 163 // RVA23S64: "-target-feature" "+v" 164 // RVA23S64: "-target-feature" "+h" 165 // RVA23S64: "-target-feature" "+zic64b" 166 // RVA23S64: "-target-feature" "+zicbom" 167 // RVA23S64: "-target-feature" "+zicbop" 168 // RVA23S64: "-target-feature" "+zicboz" 169 // RVA23S64: "-target-feature" "+ziccamoa" 170 // RVA23S64: "-target-feature" "+ziccif" 171 // RVA23S64: "-target-feature" "+zicclsm" 172 // RVA23S64: "-target-feature" "+ziccrse" 173 // RVA23S64: "-target-feature" "+zicntr" 174 // RVA23S64: "-target-feature" "+zicond" 175 // RVA23S64: "-target-feature" "+zicsr" 176 // RVA23S64: "-target-feature" "+zifencei" 177 // RVA23S64: "-target-feature" "+zihintntl" 178 // RVA23S64: "-target-feature" "+zihintpause" 179 // RVA23S64: "-target-feature" "+zihpm" 180 // RVA23S64: "-target-feature" "+zimop" 181 // RVA23S64: "-target-feature" "+za64rs" 182 // RVA23S64: "-target-feature" "+zawrs" 183 // RVA23S64: "-target-feature" "+zfa" 184 // RVA23S64: "-target-feature" "+zfhmin" 185 // RVA23S64: "-target-feature" "+zcb" 186 // RVA23S64: "-target-feature" "+zcmop" 187 // RVA23S64: "-target-feature" "+zba" 188 // RVA23S64: "-target-feature" "+zbb" 189 // RVA23S64: "-target-feature" "+zbs" 190 // RVA23S64: "-target-feature" "+zkt" 191 // RVA23S64: "-target-feature" "+zvbb" 192 // RVA23S64: "-target-feature" "+zvfhmin" 193 // RVA23S64: "-target-feature" "+zvkt" 194 // RVA23S64: "-target-feature" "+sha" 195 // RVA23S64: "-target-feature" "+shcounterenw" 196 // RVA23S64: "-target-feature" "+shgatpa" 197 // RVA23S64: "-target-feature" "+shtvala" 198 // RVA23S64: "-target-feature" "+shvsatpa" 199 // RVA23S64: "-target-feature" "+shvstvala" 200 // RVA23S64: "-target-feature" "+shvstvecd" 201 // RVA23S64: "-target-feature" "+ssccptr" 202 // RVA23S64: "-target-feature" "+sscofpmf" 203 // RVA23S64: "-target-feature" "+sscounterenw" 204 // RVA23S64: "-target-feature" "+ssnpm" 205 // RVA23S64: "-target-feature" "+ssstateen" 206 // RVA23S64: "-target-feature" "+sstc" 207 // RVA23S64: "-target-feature" "+sstvala" 208 // RVA23S64: "-target-feature" "+sstvecd" 209 // RVA23S64: "-target-feature" "+ssu64xl" 210 // RVA23S64: "-target-feature" "+supm" 211 // RVA23S64: "-target-feature" "+svade" 212 // RVA23S64: "-target-feature" "+svbare" 213 // RVA23S64: "-target-feature" "+svinval" 214 // RVA23S64: "-target-feature" "+svnapot" 215 // RVA23S64: "-target-feature" "+svpbmt" 216 217 // RUN: %clang --target=riscv64 -### -c %s 2>&1 -march=rvb23u64 \ 218 // RUN: | FileCheck -check-prefix=RVB23U64 %s 219 // RVB23U64: "-target-feature" "+m" 220 // RVB23U64: "-target-feature" "+a" 221 // RVB23U64: "-target-feature" "+f" 222 // RVB23U64: "-target-feature" "+d" 223 // RVB23U64: "-target-feature" "+c" 224 // RVB23U64: "-target-feature" "+b" 225 // RVB23U64: "-target-feature" "+zic64b" 226 // RVB23U64: "-target-feature" "+zicbom" 227 // RVB23U64: "-target-feature" "+zicbop" 228 // RVB23U64: "-target-feature" "+zicboz" 229 // RVB23U64: "-target-feature" "+ziccamoa" 230 // RVB23U64: "-target-feature" "+ziccif" 231 // RVB23U64: "-target-feature" "+zicclsm" 232 // RVB23U64: "-target-feature" "+ziccrse" 233 // RVB23U64: "-target-feature" "+zicntr" 234 // RVB23U64: "-target-feature" "+zicond" 235 // RVB23U64: "-target-feature" "+zicsr" 236 // RVB23U64: "-target-feature" "+zihintntl" 237 // RVB23U64: "-target-feature" "+zihintpause" 238 // RVB23U64: "-target-feature" "+zihpm" 239 // RVB23U64: "-target-feature" "+zimop" 240 // RVB23U64: "-target-feature" "+za64rs" 241 // RVB23U64: "-target-feature" "+zawrs" 242 // RVB23U64: "-target-feature" "+zfa" 243 // RVB23U64: "-target-feature" "+zcb" 244 // RVB23U64: "-target-feature" "+zcmop" 245 // RVB23U64: "-target-feature" "+zba" 246 // RVB23U64: "-target-feature" "+zbb" 247 // RVB23U64: "-target-feature" "+zbs" 248 // RVB23U64: "-target-feature" "+zkt" 249 250 // RUN: %clang --target=riscv64 -### -c %s 2>&1 -march=rvb23s64 \ 251 // RUN: | FileCheck -check-prefix=RVB23S64 %s 252 // RVB23S64: "-target-feature" "+m" 253 // RVB23S64: "-target-feature" "+a" 254 // RVB23S64: "-target-feature" "+f" 255 // RVB23S64: "-target-feature" "+d" 256 // RVB23S64: "-target-feature" "+c" 257 // RVB23S64: "-target-feature" "+b" 258 // RVB23S64: "-target-feature" "+zic64b" 259 // RVB23S64: "-target-feature" "+zicbom" 260 // RVB23S64: "-target-feature" "+zicbop" 261 // RVB23S64: "-target-feature" "+zicboz" 262 // RVB23S64: "-target-feature" "+ziccamoa" 263 // RVB23S64: "-target-feature" "+ziccif" 264 // RVB23S64: "-target-feature" "+zicclsm" 265 // RVB23S64: "-target-feature" "+ziccrse" 266 // RVB23S64: "-target-feature" "+zicntr" 267 // RVB23S64: "-target-feature" "+zicond" 268 // RVB23S64: "-target-feature" "+zicsr" 269 // RVB23S64: "-target-feature" "+zifencei" 270 // RVB23S64: "-target-feature" "+zihintntl" 271 // RVB23S64: "-target-feature" "+zihintpause" 272 // RVB23S64: "-target-feature" "+zihpm" 273 // RVB23S64: "-target-feature" "+zimop" 274 // RVB23S64: "-target-feature" "+za64rs" 275 // RVB23S64: "-target-feature" "+zawrs" 276 // RVB23S64: "-target-feature" "+zfa" 277 // RVB23S64: "-target-feature" "+zcb" 278 // RVB23S64: "-target-feature" "+zcmop" 279 // RVB23S64: "-target-feature" "+zba" 280 // RVB23S64: "-target-feature" "+zbb" 281 // RVB23S64: "-target-feature" "+zbs" 282 // RVB23S64: "-target-feature" "+zkt" 283 // RVB23S64: "-target-feature" "+ssccptr" 284 // RVB23S64: "-target-feature" "+sscofpmf" 285 // RVB23S64: "-target-feature" "+sscounterenw" 286 // RVB23S64: "-target-feature" "+sstc" 287 // RVB23S64: "-target-feature" "+sstvala" 288 // RVB23S64: "-target-feature" "+sstvecd" 289 // RVB23S64: "-target-feature" "+ssu64xl" 290 // RVB23S64: "-target-feature" "+svade" 291 // RVB23S64: "-target-feature" "+svbare" 292 // RVB23S64: "-target-feature" "+svinval" 293 // RVB23S64: "-target-feature" "+svnapot" 294 // RVB23S64: "-target-feature" "+svpbmt" 295 296 // RUN: %clang --target=riscv32 -### -c %s 2>&1 -march=rvm23u32 -menable-experimental-extensions \ 297 // RUN: | FileCheck -check-prefix=RVM23U32 %s 298 // RVM23U32: "-target-feature" "+m" 299 // RVM23U32: "-target-feature" "+b" 300 // RVM23U32: "-target-feature" "+zicbop" 301 // RVM23U32: "-target-feature" "+zicond" 302 // RVM23U32: "-target-feature" "+zicsr" 303 // RVM23U32: "-target-feature" "+zihintntl" 304 // RVM23U32: "-target-feature" "+zihintpause" 305 // RVM23U32: "-target-feature" "+zimop" 306 // RVM23U32: "-target-feature" "+zce" 307 // RVM23U32: "-target-feature" "+zcmop" 308 // RVM23U32: "-target-feature" "+zba" 309 // RVM23U32: "-target-feature" "+zbb" 310 // RVM23U32: "-target-feature" "+zbs" 311 312 // RUN: %clang --target=riscv64 -### -c %s 2>&1 -march=rva22u64_zfa \ 313 // RUN: | FileCheck -check-prefix=PROFILE-WITH-ADDITIONAL %s 314 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+m" 315 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+a" 316 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+f" 317 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+d" 318 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+c" 319 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+b" 320 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+zicbom" 321 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+zicbop" 322 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+zicboz" 323 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+zihintpause" 324 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+zfa" 325 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+zfhmin" 326 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+zba" 327 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+zbb" 328 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+zbs" 329 // PROFILE-WITH-ADDITIONAL: "-target-feature" "+zkt" 330 331 // RUN: not %clang --target=riscv64 -### -c %s 2>&1 -march=rva19u64_zfa | FileCheck -check-prefix=INVALID-PROFILE %s 332 // INVALID-PROFILE: error: invalid arch name 'rva19u64_zfa', string must begin with rv32{i,e,g}, rv64{i,e,g}, or a supported profile name 333 334 // RUN: not %clang --target=riscv64 -### -c %s 2>&1 -march=rva22u64zfa | FileCheck -check-prefix=INVALID-ADDITIONAL %s 335 // INVALID-ADDITIONAL: error: invalid arch name 'rva22u64zfa', additional extensions must be after separator '_' 336 337 // RUN: not %clang --target=riscv32 -### -c %s 2>&1 -march=rvm23u32 | FileCheck -check-prefix=EXPERIMENTAL-NOFLAG %s 338 // EXPERIMENTAL-NOFLAG: error: invalid arch name 'rvm23u32' 339 // EXPERIMENTAL-NOFLAG: requires '-menable-experimental-extensions' for profile 'rvm23u32' 340