brintos

brintos / llvm-project-archived public Read only

0
0
Text · 74.6 KiB · 56c738b Raw
1733 lines · c
1// RUN: %clang --target=riscv32-unknown-linux-gnu -march=rv32i -E -dM %s \2// RUN:   -o - | FileCheck %s3// RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64i -E -dM %s \4// RUN:   -o - | FileCheck %s5 6// CHECK-NOT: __riscv_32e {{.*$}}7// CHECK-NOT: __riscv_64e {{.*$}}8// CHECK-NOT: __riscv_a {{.*$}}9// CHECK-NOT: __riscv_atomic10// CHECK-NOT: __riscv_b {{.*$}}11// CHECK-NOT: __riscv_c {{.*$}}12// CHECK-NOT: __riscv_compressed {{.*$}}13// CHECK-NOT: __riscv_d {{.*$}}14// CHECK-NOT: __riscv_f {{.*$}}15// CHECK-NOT: __riscv_flen {{.*$}}16// CHECK-NOT: __riscv_fdiv {{.*$}}17// CHECK-NOT: __riscv_fsqrt {{.*$}}18// CHECK-NOT: __riscv_h {{.*$}}19// CHECK-NOT: __riscv_div {{.*$}}20// CHECK-NOT: __riscv_m {{.*$}}21// CHECK-NOT: __riscv_mul {{.*$}}22// CHECK-NOT: __riscv_muldiv {{.*$}}23// CHECK-NOT: __riscv_q {{.*$}}24// CHECK-NOT: __riscv_sdext{{.*$}}25// CHECK-NOT: __riscv_sdtrig{{.*$}}26// CHECK-NOT: __riscv_sha {{.*$}}27// CHECK-NOT: __riscv_shcounterenw {{.*$}}28// CHECK-NOT: __riscv_shgatpa {{.*$}}29// CHECK-NOT: __riscv_shlcofideleg {{.*$}}30// CHECK-NOT: __riscv_shtvala {{.*$}}31// CHECK-NOT: __riscv_shvsatpa {{.*$}}32// CHECK-NOT: __riscv_shvstvala {{.*$}}33// CHECK-NOT: __riscv_shvstvecd {{.*$}}34// CHECK-NOT: __riscv_smaia {{.*$}}35// CHECK-NOT: __riscv_smcdeleg {{.*$}}36// CHECK-NOT: __riscv_smcntrpmf {{.*$}}37// CHECK-NOT: __riscv_smcsrind {{.*$}}38// CHECK-NOT: __riscv_smctr{{.*$}}39// CHECK-NOT: __riscv_smdbltrp {{.*$}}40// CHECK-NOT: __riscv_smepmp {{.*$}}41// CHECK-NOT: __riscv_smmpm{{.*$}}42// CHECK-NOT: __riscv_smnpm{{.*$}}43// CHECK-NOT: __riscv_smpmpmt {{.*$}}44// CHECK-NOT: __riscv_smrnmi {{.*$}}45// CHECK-NOT: __riscv_smstateen {{.*$}}46// CHECK-NOT: __riscv_ssaia {{.*$}}47// CHECK-NOT: __riscv_ssccfg {{.*$}}48// CHECK-NOT: __riscv_ssccptr {{.*$}}49// CHECK-NOT: __riscv_sscofpmf {{.*$}}50// CHECK-NOT: __riscv_sscounterenw {{.*$}}51// CHECK-NOT: __riscv_sscsrind {{.*$}}52// CHECK-NOT: __riscv_ssctr{{.*$}}53// CHECK-NOT: __riscv_ssdbltrp {{.*$}}54// CHECK-NOT: __riscv_ssnpm{{.*$}}55// CHECK-NOT: __riscv_sspm{{.*$}}56// CHECK-NOT: __riscv_ssqosid{{.*$}}57// CHECK-NOT: __riscv_ssstateen {{.*$}}58// CHECK-NOT: __riscv_ssstrict {{.*$}}59// CHECK-NOT: __riscv_sstc {{.*$}}60// CHECK-NOT: __riscv_sstvala {{.*$}}61// CHECK-NOT: __riscv_sstvecd {{.*$}}62// CHECK-NOT: __riscv_ssu64xl {{.*$}}63// CHECK-NOT: __riscv_supm{{.*$}}64// CHECK-NOT: __riscv_svade {{.*$}}65// CHECK-NOT: __riscv_svadu {{.*$}}66// CHECK-NOT: __riscv_svbare {{.*$}}67// CHECK-NOT: __riscv_svinval {{.*$}}68// CHECK-NOT: __riscv_svnapot {{.*$}}69// CHECK-NOT: __riscv_svpbmt {{.*$}}70// CHECK-NOT: __riscv_svvptc {{.*$}}71// CHECK-NOT: __riscv_v {{.*$}}72// CHECK-NOT: __riscv_v_elen {{.*$}}73// CHECK-NOT: __riscv_v_elen_fp {{.*$}}74// CHECK-NOT: __riscv_v_intrinsic {{.*$}}75// CHECK-NOT: __riscv_v_min_vlen {{.*$}}76// CHECK-NOT: __riscv_vector {{.*$}}77// CHECK-NOT: __riscv_xventanacondops {{.*$}}78// CHECK-NOT: __riscv_za128rs {{.*$}}79// CHECK-NOT: __riscv_za64rs {{.*$}}80// CHECK-NOT: __riscv_zaamo {{.*$}}81// CHECK-NOT: __riscv_zabha {{.*$}}82// CHECK-NOT: __riscv_zacas {{.*$}}83// CHECK-NOT: __riscv_zalrsc {{.*$}}84// CHECK-NOT: __riscv_zama16b {{.*$}}85// CHECK-NOT: __riscv_zawrs {{.*$}}86// CHECK-NOT: __riscv_zba {{.*$}}87// CHECK-NOT: __riscv_zbb {{.*$}}88// CHECK-NOT: __riscv_zbc {{.*$}}89// CHECK-NOT: __riscv_zbkb {{.*$}}90// CHECK-NOT: __riscv_zbkc {{.*$}}91// CHECK-NOT: __riscv_zbkx {{.*$}}92// CHECK-NOT: __riscv_zbs {{.*$}}93// CHECK-NOT: __riscv_zca {{.*$}}94// CHECK-NOT: __riscv_zcb {{.*$}}95// CHECK-NOT: __riscv_zcd {{.*$}}96// CHECK-NOT: __riscv_zce {{.*$}}97// CHECK-NOT: __riscv_zcf {{.*$}}98// CHECK-NOT: __riscv_zclsd {{.*$}}99// CHECK-NOT: __riscv_zcmop {{.*$}}100// CHECK-NOT: __riscv_zcmp {{.*$}}101// CHECK-NOT: __riscv_zcmt {{.*$}}102// CHECK-NOT: __riscv_zdinx {{.*$}}103// CHECK-NOT: __riscv_zfa {{.*$}}104// CHECK-NOT: __riscv_zfbfmin {{.*$}}105// CHECK-NOT: __riscv_zfh {{.*$}}106// CHECK-NOT: __riscv_zfhmin {{.*$}}107// CHECK-NOT: __riscv_zfinx {{.*$}}108// CHECK-NOT: __riscv_zhinx {{.*$}}109// CHECK-NOT: __riscv_zhinxmin {{.*$}}110// CHECK-NOT: __riscv_zibi {{.*$}}111// CHECK-NOT: __riscv_zic64b {{.*$}}112// CHECK-NOT: __riscv_zicbom {{.*$}}113// CHECK-NOT: __riscv_zicbop {{.*$}}114// CHECK-NOT: __riscv_zicboz {{.*$}}115// CHECK-NOT: __riscv_ziccamoa {{.*$}}116// CHECK-NOT: __riscv_ziccamoc {{.*$}}117// CHECK-NOT: __riscv_ziccif {{.*$}}118// CHECK-NOT: __riscv_zicclsm {{.*$}}119// CHECK-NOT: __riscv_ziccrse {{.*$}}120// CHECK-NOT: __riscv_zicntr {{.*$}}121// CHECK-NOT: __riscv_zicond {{.*$}}122// CHECK-NOT: __riscv_zicsr {{.*$}}123// CHECK-NOT: __riscv_zifencei {{.*$}}124// CHECK-NOT: __riscv_zihintntl {{.*$}}125// CHECK-NOT: __riscv_zihintpause {{.*$}}126// CHECK-NOT: __riscv_zihpm {{.*$}}127// CHECK-NOT: __riscv_zilsd {{.*$}}128// CHECK-NOT: __riscv_zimop {{.*$}}129// CHECK-NOT: __riscv_zk {{.*$}}130// CHECK-NOT: __riscv_zkn {{.*$}}131// CHECK-NOT: __riscv_zknd {{.*$}}132// CHECK-NOT: __riscv_zkne {{.*$}}133// CHECK-NOT: __riscv_zknh {{.*$}}134// CHECK-NOT: __riscv_zkr {{.*$}}135// CHECK-NOT: __riscv_zks {{.*$}}136// CHECK-NOT: __riscv_zksed {{.*$}}137// CHECK-NOT: __riscv_zksh {{.*$}}138// CHECK-NOT: __riscv_zkt {{.*$}}139// CHECK-NOT: __riscv_zmmul {{.*$}}140// CHECK-NOT: __riscv_ztso {{.*$}}141// CHECK-NOT: __riscv_zvbb {{.*$}}142// CHECK-NOT: __riscv_zvbc {{.*$}}143// CHECK-NOT: __riscv_zve32f {{.*$}}144// CHECK-NOT: __riscv_zve32x {{.*$}}145// CHECK-NOT: __riscv_zve64d {{.*$}}146// CHECK-NOT: __riscv_zve64f {{.*$}}147// CHECK-NOT: __riscv_zve64x {{.*$}}148// CHECK-NOT: __riscv_zvfbfmin {{.*$}}149// CHECK-NOT: __riscv_zvfbfwma {{.*$}}150// CHECK-NOT: __riscv_zvfh {{.*$}}151// CHECK-NOT: __riscv_zvkb {{.*$}}152// CHECK-NOT: __riscv_zvkg {{.*$}}153// CHECK-NOT: __riscv_zvkn {{.*$}}154// CHECK-NOT: __riscv_zvknc {{.*$}}155// CHECK-NOT: __riscv_zvkned {{.*$}}156// CHECK-NOT: __riscv_zvkng {{.*$}}157// CHECK-NOT: __riscv_zvknha {{.*$}}158// CHECK-NOT: __riscv_zvknhb {{.*$}}159// CHECK-NOT: __riscv_zvks {{.*$}}160// CHECK-NOT: __riscv_zvksc {{.*$}}161// CHECK-NOT: __riscv_zvksed {{.*$}}162// CHECK-NOT: __riscv_zvksg {{.*$}}163// CHECK-NOT: __riscv_zvksh {{.*$}}164// CHECK-NOT: __riscv_zvkt {{.*$}}165// CHECK-NOT: __riscv_zvl32b {{.*$}}166// CHECK-NOT: __riscv_zvl64b {{.*$}}167// CHECK-NOT: __riscv_zvl128b {{.*$}}168// CHECK-NOT: __riscv_zvl256b {{.*$}}169// CHECK-NOT: __riscv_zvl512b {{.*$}}170// CHECK-NOT: __riscv_zvl1024b {{.*$}}171// CHECK-NOT: __riscv_zvl2048b {{.*$}}172// CHECK-NOT: __riscv_zvl4096b {{.*$}}173// CHECK-NOT: __riscv_zvl8192b {{.*$}}174// CHECK-NOT: __riscv_zvl16384b {{.*$}}175// CHECK-NOT: __riscv_zvl32768b {{.*$}}176// CHECK-NOT: __riscv_zvl65536b {{.*$}}177 178// Experimental extensions179 180// CHECK-NOT: __riscv_zalasr {{.*$}}181// CHECK-NOT: __riscv_zicfilp {{.*$}}182// CHECK-NOT: __riscv_zicfiss {{.*$}}183// CHECK-NOT: __riscv_zvbc32e {{.*$}}184// CHECK-NOT: __riscv_zvfbfa {{.*$}}185// CHECK-NOT: __riscv_zvfofp8min {{.*$}}186// CHECK-NOT: __riscv_zvkgs {{.*$}}187// CHECK-NOT: __riscv_zvqdotq {{.*$}}188 189// RUN: %clang --target=riscv32-unknown-linux-gnu \190// RUN:   -march=rv32ia -E -dM %s \191// RUN:   -o - | FileCheck --check-prefix=CHECK-A-EXT %s192// RUN: %clang --target=riscv64-unknown-linux-gnu \193// RUN:   -march=rv64ia -E -dM %s \194// RUN:   -o - | FileCheck --check-prefix=CHECK-A-EXT %s195// CHECK-A-EXT: __riscv_a 2001000{{$}}196// CHECK-A-EXT: __riscv_atomic 1197 198// RUN: %clang --target=riscv32-unknown-linux-gnu \199// RUN:   -march=rv32ib -E -dM %s \200// RUN:   -o - | FileCheck --check-prefix=CHECK-B-EXT %s201// RUN: %clang --target=riscv64-unknown-linux-gnu \202// RUN:   -march=rv64ib -E -dM %s \203// RUN:   -o - | FileCheck --check-prefix=CHECK-B-EXT %s204// CHECK-B-EXT: __riscv_b 1000000{{$}}205// CHECK-B-EXT: __riscv_zba 1000000{{$}}206// CHECK-B-EXT: __riscv_zbb 1000000{{$}}207// CHECK-B-EXT: __riscv_zbs 1000000{{$}}208 209// RUN: %clang --target=riscv32-unknown-linux-gnu \210// RUN:   -march=rv32ic -E -dM %s \211// RUN:   -o - | FileCheck --check-prefix=CHECK-C-EXT %s212// RUN: %clang --target=riscv64-unknown-linux-gnu \213// RUN:   -march=rv64ic -E -dM %s \214// RUN:   -o - | FileCheck --check-prefix=CHECK-C-EXT %s215// CHECK-C-EXT: __riscv_c 2000000{{$}}216// CHECK-C-EXT: __riscv_compressed 1217 218// RUN: %clang --target=riscv32-unknown-linux-gnu \219// RUN:   -march=rv32ifd -E -dM %s \220// RUN:   -o - | FileCheck --check-prefix=CHECK-D-EXT %s221// RUN: %clang --target=riscv64-unknown-linux-gnu \222// RUN:   -march=rv64ifd -E -dM %s \223// RUN:   -o - | FileCheck --check-prefix=CHECK-D-EXT %s224// CHECK-D-EXT: __riscv_d 2002000{{$}}225// CHECK-D-EXT: __riscv_fdiv 1226// CHECK-D-EXT: __riscv_flen 64227// CHECK-D-EXT: __riscv_fsqrt 1228 229// RUN: %clang --target=riscv32-unknown-linux-gnu \230// RUN:   -march=rv32e -E -dM %s \231// RUN:   -o - | FileCheck --check-prefixes=CHECK-E-EXT,CHECK-RV32E %s232// RUN: %clang --target=riscv64-unknown-linux-gnu \233// RUN:   -march=rv64e -E -dM %s \234// RUN:   -o - | FileCheck --check-prefixes=CHECK-E-EXT,CHECK-RV64E %s235// CHECK-RV32E: __riscv_32e 1236// CHECK-RV64E: __riscv_64e 1237// CHECK-E-EXT: __riscv_abi_rve 1238// CHECK-E-EXT: __riscv_e 2000000{{$}}239 240// RUN: %clang --target=riscv32-unknown-linux-gnu \241// RUN:   -march=rv32if -E -dM %s \242// RUN:   -o - | FileCheck --check-prefix=CHECK-F-EXT %s243// RUN: %clang --target=riscv64-unknown-linux-gnu \244// RUN:   -march=rv64if -E -dM %s \245// RUN:   -o - | FileCheck --check-prefix=CHECK-F-EXT %s246// CHECK-F-EXT: __riscv_f 2002000{{$}}247// CHECK-F-EXT: __riscv_fdiv 1248// CHECK-F-EXT: __riscv_flen 32249// CHECK-F-EXT: __riscv_fsqrt 1250 251// RUN: %clang --target=riscv32-unknown-linux-gnu \252// RUN:   -march=rv32ifd -mabi=ilp32 -E -dM %s \253// RUN:   -o - | FileCheck --check-prefix=CHECK-SOFT %s254// RUN: %clang --target=riscv64-unknown-linux-gnu \255// RUN:   -march=rv64ifd -mabi=lp64 -E -dM %s \256// RUN:   -o - | FileCheck --check-prefix=CHECK-SOFT %s257// CHECK-SOFT: __riscv_float_abi_soft 1258// CHECK-SOFT-NOT: __riscv_float_abi_single259// CHECK-SOFT-NOT: __riscv_float_abi_double260 261// RUN: %clang --target=riscv32-unknown-linux-gnu \262// RUN:   -march=rv32ifd -mabi=ilp32f -E -dM %s \263// RUN:   -o - | FileCheck --check-prefix=CHECK-SINGLE %s264// RUN: %clang --target=riscv64-unknown-linux-gnu \265// RUN:   -march=rv64ifd -mabi=lp64f -E -dM %s \266// RUN:   -o - | FileCheck --check-prefix=CHECK-SINGLE %s267// CHECK-SINGLE: __riscv_float_abi_single 1268// CHECK-SINGLE-NOT: __riscv_float_abi_soft269// CHECK-SINGLE-NOT: __riscv_float_abi_double270 271// RUN: %clang --target=riscv32-unknown-linux-gnu \272// RUN:   -march=rv32ifd -E -dM %s \273// RUN:   -o - | FileCheck --check-prefix=CHECK-DOUBLE %s274// RUN: %clang --target=riscv64-unknown-linux-gnu \275// RUN:   -march=rv64ifd -E -dM %s \276// RUN:   -o - | FileCheck --check-prefix=CHECK-DOUBLE %s277// CHECK-DOUBLE: __riscv_float_abi_double 1278// CHECK-DOUBLE-NOT: __riscv_float_abi_soft279// CHECK-DOUBLE-NOT: __riscv_float_abi_single280 281// RUN: %clang --target=riscv32-unknown-linux-gnu \282// RUN:   -march=rv32i -mabi=ilp32e -E -dM %s \283// RUN:   -o - | FileCheck --check-prefix=CHECK-ILP32E %s284// RUN: %clang --target=riscv64-unknown-linux-gnu \285// RUN:   -march=rv64i -mabi=lp64e -E -dM %s \286// RUN:   -o - | FileCheck --check-prefix=CHECK-LP64E %s287// CHECK-ILP32E: __riscv_abi_rve 1288// CHECK-LP64E: __riscv_abi_rve 1289 290// RUN: %clang --target=riscv32-unknown-linux-gnu \291// RUN:   -march=rv32ih -E -dM %s \292// RUN:   -o - | FileCheck --check-prefix=CHECK-H-EXT %s293// RUN: %clang --target=riscv64-unknown-linux-gnu \294// RUN:   -march=rv64ih -E -dM %s \295// RUN:   -o - | FileCheck --check-prefix=CHECK-H-EXT %s296// CHECK-H-EXT: __riscv_h 1000000{{$}}297 298// RUN: %clang --target=riscv32-unknown-linux-gnu \299// RUN:   -march=rv32i -E -dM %s \300// RUN:   -o - | FileCheck %s301// RUN: %clang --target=riscv64-unknown-linux-gnu \302// RUN:   -march=rv64i -E -dM %s \303// RUN:   -o - | FileCheck %s304// CHECK: __riscv_i 2001000{{$}}305 306// RUN: %clang --target=riscv32-unknown-linux-gnu \307// RUN:   -march=rv32im -E -dM %s \308// RUN:   -o - | FileCheck --check-prefix=CHECK-M-EXT %s309// RUN: %clang --target=riscv64-unknown-linux-gnu \310// RUN:   -march=rv64im -E -dM %s \311// RUN:   -o - | FileCheck --check-prefix=CHECK-M-EXT %s312// CHECK-M-EXT: __riscv_div 1313// CHECK-M-EXT: __riscv_m 2000000{{$}}314// CHECK-M-EXT: __riscv_mul 1315// CHECK-M-EXT: __riscv_muldiv 1316 317// RUN: %clang --target=riscv32-unknown-linux-gnu \318// RUN:   -march=rv32ifdq -E -dM %s \319// RUN:   -o - | FileCheck --check-prefix=CHECK-Q-EXT %s320// RUN: %clang --target=riscv64-unknown-linux-gnu \321// RUN:   -march=rv64ifdq -E -dM %s \322// RUN:   -o - | FileCheck --check-prefix=CHECK-Q-EXT %s323// CHECK-Q-EXT: __riscv_fdiv 1324// CHECK-Q-EXT: __riscv_flen 128325// CHECK-Q-EXT: __riscv_fsqrt 1326// CHECK-Q-EXT: __riscv_q 2002000{{$}}327 328// RUN: %clang --target=riscv32-unknown-linux-gnu \329// RUN:   -march=rv32isha -E -dM %s \330// RUN:   -o - | FileCheck --check-prefix=CHECK-SHCOUNTERENW-EXT %s331// RUN: %clang --target=riscv64-unknown-linux-gnu \332// RUN:   -march=rv64isha -E -dM %s \333// RUN:   -o - | FileCheck --check-prefix=CHECK-SHCOUNTERENW-EXT %s334// CHECK-SHA-EXT: __riscv_sha 1000000{{$}}335 336// RUN: %clang --target=riscv32-unknown-linux-gnu \337// RUN:   -march=rv32ishcounterenw -E -dM %s \338// RUN:   -o - | FileCheck --check-prefix=CHECK-SHCOUNTERENW-EXT %s339// RUN: %clang --target=riscv64-unknown-linux-gnu \340// RUN:   -march=rv64ishcounterenw -E -dM %s \341// RUN:   -o - | FileCheck --check-prefix=CHECK-SHCOUNTERENW-EXT %s342// CHECK-SHCOUNTERENW-EXT: __riscv_shcounterenw 1000000{{$}}343 344// RUN: %clang --target=riscv32-unknown-linux-gnu \345// RUN:   -march=rv32ishgatpa -E -dM %s \346// RUN:   -o - | FileCheck --check-prefix=CHECK-SHGATPA-EXT %s347// RUN: %clang --target=riscv64-unknown-linux-gnu \348// RUN:   -march=rv64ishgatpa -E -dM %s \349// RUN:   -o - | FileCheck --check-prefix=CHECK-SHGATPA-EXT %s350// CHECK-SHGATPA-EXT: __riscv_shgatpa 1000000{{$}}351 352// RUN: %clang --target=riscv32-unknown-linux-gnu \353// RUN:   -march=rv32ishlcofideleg -E -dM %s \354// RUN:   -o - | FileCheck --check-prefix=CHECK-SHLCOFIDELEG-EXT %s355// RUN: %clang --target=riscv64-unknown-linux-gnu \356// RUN:   -march=rv64ishlcofideleg -E -dM %s \357// RUN:   -o - | FileCheck --check-prefix=CHECK-SHLCOFIDELEG-EXT %s358// CHECK-SHLCOFIDELEG-EXT: __riscv_shlcofideleg 1000000{{$}}359 360// RUN: %clang --target=riscv32-unknown-linux-gnu \361// RUN:   -march=rv32ishtvala -E -dM %s \362// RUN:   -o - | FileCheck --check-prefix=CHECK-SHTVALA-EXT %s363// RUN: %clang --target=riscv64-unknown-linux-gnu \364// RUN:   -march=rv64ishtvala -E -dM %s \365// RUN:   -o - | FileCheck --check-prefix=CHECK-SHTVALA-EXT %s366// CHECK-SHTVALA-EXT: __riscv_shtvala 1000000{{$}}367 368// RUN: %clang --target=riscv32-unknown-linux-gnu \369// RUN:   -march=rv32ishvsatpa -E -dM %s \370// RUN:   -o - | FileCheck --check-prefix=CHECK-SHVSATPA-EXT %s371// RUN: %clang --target=riscv64-unknown-linux-gnu \372// RUN:   -march=rv64ishvsatpa -E -dM %s \373// RUN:   -o - | FileCheck --check-prefix=CHECK-SHVSATPA-EXT %s374// CHECK-SHVSATPA-EXT: __riscv_shvsatpa 1000000{{$}}375 376// RUN: %clang --target=riscv32-unknown-linux-gnu \377// RUN:   -march=rv32ishvstvala -E -dM %s \378// RUN:   -o - | FileCheck --check-prefix=CHECK-SHVSTVALA-EXT %s379// RUN: %clang --target=riscv64-unknown-linux-gnu \380// RUN:   -march=rv64ishvstvala -E -dM %s \381// RUN:   -o - | FileCheck --check-prefix=CHECK-SHVSTVALA-EXT %s382// CHECK-SHVSTVALA-EXT: __riscv_shvstvala 1000000{{$}}383 384// RUN: %clang --target=riscv32-unknown-linux-gnu \385// RUN:   -march=rv32ishvstvecd -E -dM %s \386// RUN:   -o - | FileCheck --check-prefix=CHECK-SHVSTVECD-EXT %s387// RUN: %clang --target=riscv64-unknown-linux-gnu \388// RUN:   -march=rv64ishvstvecd -E -dM %s \389// RUN:   -o - | FileCheck --check-prefix=CHECK-SHVSTVECD-EXT %s390// CHECK-SHVSTVECD-EXT: __riscv_shvstvecd 1000000{{$}}391 392// RUN: %clang --target=riscv32-unknown-linux-gnu \393// RUN:   -march=rv32issccfg -E -dM %s \394// RUN:   -o - | FileCheck --check-prefix=CHECK-SSCCFG-EXT %s395// RUN: %clang --target=riscv64-unknown-linux-gnu \396// RUN:   -march=rv64issccfg -E -dM %s \397// RUN:   -o - | FileCheck --check-prefix=CHECK-SSCCFG-EXT %s398// CHECK-SSCCFG-EXT: __riscv_ssccfg 1000000{{$}}399 400// RUN: %clang --target=riscv32-unknown-linux-gnu \401// RUN:   -march=rv32issccptr -E -dM %s \402// RUN:   -o - | FileCheck --check-prefix=CHECK-SSCCPTR-EXT %s403// RUN: %clang --target=riscv64-unknown-linux-gnu \404// RUN:   -march=rv64issccptr -E -dM %s \405// RUN:   -o - | FileCheck --check-prefix=CHECK-SSCCPTR-EXT %s406// CHECK-SSCCPTR-EXT: __riscv_ssccptr 1000000{{$}}407 408// RUN: %clang --target=riscv32-unknown-linux-gnu \409// RUN:   -march=rv32isscofpmf -E -dM %s \410// RUN:   -o - | FileCheck --check-prefix=CHECK-SSCOFPMF-EXT %s411// RUN: %clang --target=riscv64-unknown-linux-gnu \412// RUN:   -march=rv64isscofpmf -E -dM %s \413// RUN:   -o - | FileCheck --check-prefix=CHECK-SSCOFPMF-EXT %s414// CHECK-SSCOFPMF-EXT: __riscv_sscofpmf 1000000{{$}}415 416// RUN: %clang --target=riscv32-unknown-linux-gnu \417// RUN:   -march=rv32isscounterenw -E -dM %s \418// RUN:   -o - | FileCheck --check-prefix=CHECK-SSCOUNTERENW-EXT %s419// RUN: %clang --target=riscv64-unknown-linux-gnu \420// RUN:   -march=rv64isscounterenw -E -dM %s \421// RUN:   -o - | FileCheck --check-prefix=CHECK-SSCOUNTERENW-EXT %s422// CHECK-SSCOUNTERENW-EXT: __riscv_sscounterenw 1000000{{$}}423 424// RUN: %clang --target=riscv32-unknown-linux-gnu \425// RUN:   -march=rv32ismstateen -E -dM %s \426// RUN:   -o - | FileCheck --check-prefix=CHECK-SMSTATEEN-EXT %s427// RUN: %clang --target=riscv64-unknown-linux-gnu \428// RUN:   -march=rv64ismstateen -E -dM %s \429// RUN:   -o - | FileCheck --check-prefix=CHECK-SMSTATEEN-EXT %s430// CHECK-SMSTATEEN-EXT: __riscv_smstateen 1000000{{$}}431 432// RUN: %clang --target=riscv32-unknown-linux-gnu \433// RUN:   -march=rv32issstateen -E -dM %s \434// RUN:   -o - | FileCheck --check-prefix=CHECK-SSSTATEEN-EXT %s435// RUN: %clang --target=riscv64-unknown-linux-gnu \436// RUN:   -march=rv64issstateen -E -dM %s \437// RUN:   -o - | FileCheck --check-prefix=CHECK-SSSTATEEN-EXT %s438// CHECK-SSSTATEEN-EXT: __riscv_ssstateen 1000000{{$}}439 440// RUN: %clang --target=riscv32-unknown-linux-gnu \441// RUN:   -march=rv32issstrict -E -dM %s \442// RUN:   -o - | FileCheck --check-prefix=CHECK-SSSTRICT-EXT %s443// RUN: %clang --target=riscv64-unknown-linux-gnu \444// RUN:   -march=rv64issstrict -E -dM %s \445// RUN:   -o - | FileCheck --check-prefix=CHECK-SSSTRICT-EXT %s446// CHECK-SSSTRICT-EXT: __riscv_ssstrict 1000000{{$}}447 448// RUN: %clang --target=riscv32-unknown-linux-gnu \449// RUN:   -march=rv32isstc -E -dM %s \450// RUN:   -o - | FileCheck --check-prefix=CHECK-SSTC-EXT %s451// RUN: %clang --target=riscv64-unknown-linux-gnu \452// RUN:   -march=rv64isstc -E -dM %s \453// RUN:   -o - | FileCheck --check-prefix=CHECK-SSTC-EXT %s454// CHECK-SSTC-EXT: __riscv_sstc 1000000{{$}}455 456// RUN: %clang --target=riscv32-unknown-linux-gnu \457// RUN:   -march=rv32isstvala -E -dM %s \458// RUN:   -o - | FileCheck --check-prefix=CHECK-SSTVALA-EXT %s459// RUN: %clang --target=riscv64-unknown-linux-gnu \460// RUN:   -march=rv64isstvala -E -dM %s \461// RUN:   -o - | FileCheck --check-prefix=CHECK-SSTVALA-EXT %s462// CHECK-SSTVALA-EXT: __riscv_sstvala 1000000{{$}}463 464// RUN: %clang --target=riscv32-unknown-linux-gnu \465// RUN:   -march=rv32isstvecd -E -dM %s \466// RUN:   -o - | FileCheck --check-prefix=CHECK-SSTVECD-EXT %s467// RUN: %clang --target=riscv64-unknown-linux-gnu \468// RUN:   -march=rv64isstvecd -E -dM %s \469// RUN:   -o - | FileCheck --check-prefix=CHECK-SSTVECD-EXT %s470// CHECK-SSTVECD-EXT: __riscv_sstvecd 1000000{{$}}471 472// RUN: %clang --target=riscv32-unknown-linux-gnu \473// RUN:   -march=rv32issu64xl -E -dM %s \474// RUN:   -o - | FileCheck --check-prefix=CHECK-SSU64XL-EXT %s475// RUN: %clang --target=riscv64-unknown-linux-gnu \476// RUN:   -march=rv64issu64xl -E -dM %s \477// RUN:   -o - | FileCheck --check-prefix=CHECK-SSU64XL-EXT %s478// CHECK-SSU64XL-EXT: __riscv_ssu64xl 1000000{{$}}479 480// RUN: %clang --target=riscv32-unknown-linux-gnu \481// RUN:   -march=rv32isvade -E -dM %s \482// RUN:   -o - | FileCheck --check-prefix=CHECK-SVADE-EXT %s483// RUN: %clang --target=riscv64-unknown-linux-gnu \484// RUN:   -march=rv64isvade -E -dM %s \485// RUN:   -o - | FileCheck --check-prefix=CHECK-SVADE-EXT %s486// CHECK-SVADE-EXT: __riscv_svade 1000000{{$}}487 488// RUN: %clang --target=riscv32-unknown-linux-gnu \489// RUN:   -march=rv32isvadu -E -dM %s \490// RUN:   -o - | FileCheck --check-prefix=CHECK-SVADU-EXT %s491// RUN: %clang --target=riscv64-unknown-linux-gnu \492// RUN:   -march=rv64isvadu -E -dM %s \493// RUN:   -o - | FileCheck --check-prefix=CHECK-SVADU-EXT %s494// CHECK-SVADU-EXT: __riscv_svadu 1000000{{$}}495 496// RUN: %clang --target=riscv32-unknown-linux-gnu \497// RUN:   -march=rv32isvbare -E -dM %s \498// RUN:   -o - | FileCheck --check-prefix=CHECK-SVBARE-EXT %s499// RUN: %clang --target=riscv64-unknown-linux-gnu \500// RUN:   -march=rv64isvbare -E -dM %s \501// RUN:   -o - | FileCheck --check-prefix=CHECK-SVBARE-EXT %s502// CHECK-SVBARE-EXT: __riscv_svbare 1000000{{$}}503 504// RUN: %clang --target=riscv32-unknown-linux-gnu \505// RUN:   -march=rv32isvinval -E -dM %s \506// RUN:   -o - | FileCheck --check-prefix=CHECK-SVINVAL-EXT %s507// RUN: %clang --target=riscv64-unknown-linux-gnu \508// RUN:   -march=rv64isvinval -E -dM %s \509// RUN:   -o - | FileCheck --check-prefix=CHECK-SVINVAL-EXT %s510// CHECK-SVINVAL-EXT: __riscv_svinval 1000000{{$}}511 512// RUN: %clang --target=riscv32-unknown-linux-gnu \513// RUN:   -march=rv32isvnapot -E -dM %s \514// RUN:   -o - | FileCheck --check-prefix=CHECK-SVNAPOT-EXT %s515// RUN: %clang --target=riscv64-unknown-linux-gnu \516// RUN:   -march=rv64isvnapot -E -dM %s \517// RUN:   -o - | FileCheck --check-prefix=CHECK-SVNAPOT-EXT %s518// CHECK-SVNAPOT-EXT: __riscv_svnapot 1000000{{$}}519 520// RUN: %clang --target=riscv32-unknown-linux-gnu \521// RUN:   -march=rv32isvpbmt -E -dM %s \522// RUN:   -o - | FileCheck --check-prefix=CHECK-SVPBMT-EXT %s523// RUN: %clang --target=riscv64-unknown-linux-gnu \524// RUN:   -march=rv64isvpbmt -E -dM %s \525// RUN:   -o - | FileCheck --check-prefix=CHECK-SVPBMT-EXT %s526// CHECK-SVPBMT-EXT: __riscv_svpbmt 1000000{{$}}527 528// RUN: %clang --target=riscv32-unknown-linux-gnu \529// RUN:   -march=rv32isvvptc -E -dM %s \530// RUN:   -o - | FileCheck --check-prefix=CHECK-SVVPTC-EXT %s531// RUN: %clang --target=riscv64-unknown-linux-gnu \532// RUN:   -march=rv64isvvptc -E -dM %s \533// RUN:   -o - | FileCheck --check-prefix=CHECK-SVVPTC-EXT %s534// CHECK-SVVPTC-EXT: __riscv_svvptc 1000000{{$}}535 536// RUN: %clang --target=riscv32-unknown-linux-gnu \537// RUN:   -march=rv32iv1p0 -E -dM %s \538// RUN:   -o - | FileCheck --check-prefix=CHECK-V-EXT %s539// RUN: %clang --target=riscv64-unknown-linux-gnu \540// RUN:   -march=rv64iv1p0 -E -dM %s \541// RUN:   -o - | FileCheck --check-prefix=CHECK-V-EXT %s542// CHECK-V-EXT: __riscv_v 1000000{{$}}543// CHECK-V-EXT: __riscv_v_elen 64544// CHECK-V-EXT: __riscv_v_elen_fp 64545// CHECK-V-EXT: __riscv_v_intrinsic 1000000{{$}}546// CHECK-V-EXT: __riscv_v_min_vlen 128547// CHECK-V-EXT: __riscv_vector 1548 549// RUN: %clang --target=riscv32-unknown-linux-gnu \550// RUN:   -march=rv32ixventanacondops -E -dM %s \551// RUN:   -o - | FileCheck --check-prefix=CHECK-XVENTANACONDOPS-EXT %s552// RUN: %clang --target=riscv64-unknown-linux-gnu \553// RUN:   -march=rv64ixventanacondops -E -dM %s \554// RUN:   -o - | FileCheck --check-prefix=CHECK-XVENTANACONDOPS-EXT %s555// CHECK-XVENTANACONDOPS-EXT: __riscv_xventanacondops 1000000{{$}}556 557// RUN: %clang --target=riscv32-unknown-linux-gnu \558// RUN:   -march=rv32iza128rs -E -dM %s \559// RUN:   -o - | FileCheck --check-prefix=CHECK-ZA128RS-EXT %s560// RUN: %clang --target=riscv64-unknown-linux-gnu \561// RUN:   -march=rv64iza128rs -E -dM %s \562// RUN:   -o - | FileCheck --check-prefix=CHECK-ZA128RS-EXT %s563// CHECK-ZA128RS-EXT: __riscv_za128rs 1000000{{$}}564 565// RUN: %clang --target=riscv32-unknown-linux-gnu \566// RUN:   -march=rv32iza64rs -E -dM %s \567// RUN:   -o - | FileCheck --check-prefix=CHECK-ZA64RS-EXT %s568// RUN: %clang --target=riscv64-unknown-linux-gnu \569// RUN:   -march=rv64iza64rs -E -dM %s \570// RUN:   -o - | FileCheck --check-prefix=CHECK-ZA64RS-EXT %s571// CHECK-ZA64RS-EXT: __riscv_za64rs 1000000{{$}}572 573// RUN: %clang --target=riscv32 \574// RUN:   -march=rv32i_zaamo1p0 -E -dM %s \575// RUN:   -o - | FileCheck --check-prefix=CHECK-ZAAMO-EXT %s576// RUN: %clang --target=riscv64 \577// RUN:   -march=rv64i_zaamo1p0 -E -dM %s \578// RUN:   -o - | FileCheck --check-prefix=CHECK-ZAAMO-EXT %s579// CHECK-ZAAMO-EXT: __riscv_zaamo 1000000{{$}}580 581// RUN: %clang --target=riscv32 \582// RUN:   -march=rv32ia_zabha1p0 -E -dM %s \583// RUN:   -o - | FileCheck --check-prefix=CHECK-ZABHA-EXT %s584// RUN: %clang --target=riscv64 \585// RUN:   -march=rv64ia_zabha1p0 -E -dM %s \586// RUN:   -o - | FileCheck --check-prefix=CHECK-ZABHA-EXT %s587// CHECK-ZABHA-EXT: __riscv_zabha 1000000{{$}}588 589// RUN: %clang --target=riscv32 \590// RUN:   -march=rv32ia_zacas1p0 -E -dM %s \591// RUN:   -o - | FileCheck --check-prefix=CHECK-ZACAS-EXT %s592// RUN: %clang --target=riscv64 \593// RUN:   -march=rv64ia_zacas1p0 -E -dM %s \594// RUN:   -o - | FileCheck --check-prefix=CHECK-ZACAS-EXT %s595// CHECK-ZACAS-EXT: __riscv_zacas 1000000{{$}}596 597// RUN: %clang --target=riscv32 \598// RUN:   -march=rv32i_zalrsc1p0 -E -dM %s \599// RUN:   -o - | FileCheck --check-prefix=CHECK-ZALRSC-EXT %s600// RUN: %clang --target=riscv64 \601// RUN:   -march=rv64i_zalrsc1p0 -E -dM %s \602// RUN:   -o - | FileCheck --check-prefix=CHECK-ZALRSC-EXT %s603// CHECK-ZALRSC-EXT: __riscv_zalrsc 1000000{{$}}604 605// RUN: %clang --target=riscv32 -march=rv32izama16b -E -dM %s \606// RUN:   -o - | FileCheck --check-prefix=CHECK-ZAMA16B-EXT %s607// RUN: %clang --target=riscv64 -march=rv64izama16b -E -dM %s \608// RUN:   -o - | FileCheck --check-prefix=CHECK-ZAMA16B-EXT %s609// CHECK-ZAMA16B-EXT: __riscv_zama16b  1000000{{$}}610 611// RUN: %clang --target=riscv32-unknown-linux-gnu \612// RUN:   -march=rv32izawrs -E -dM %s \613// RUN:   -o - | FileCheck --check-prefix=CHECK-ZAWRS-EXT %s614// RUN: %clang --target=riscv64-unknown-linux-gnu \615// RUN:   -march=rv64izawrs -E -dM %s \616// RUN:   -o - | FileCheck --check-prefix=CHECK-ZAWRS-EXT %s617// CHECK-ZAWRS-EXT: __riscv_zawrs 1000000{{$}}618 619// RUN: %clang --target=riscv32-unknown-linux-gnu \620// RUN:   -march=rv32izba1p0 -E -dM %s \621// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s622// RUN: %clang --target=riscv32-unknown-linux-gnu \623// RUN:   -march=rv32izba -E -dM %s \624// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s625// RUN: %clang --target=riscv64-unknown-linux-gnu \626// RUN:   -march=rv64izba1p0 -E -dM %s \627// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s628// RUN: %clang --target=riscv64-unknown-linux-gnu \629// RUN:   -march=rv64izba -E -dM %s \630// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s631// CHECK-ZBA-EXT: __riscv_zba 1000000{{$}}632 633// RUN: %clang --target=riscv32-unknown-linux-gnu \634// RUN:   -march=rv32izbb1p0 -E -dM %s \635// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBB-EXT %s636// RUN: %clang --target=riscv32-unknown-linux-gnu \637// RUN:   -march=rv32izbb -E -dM %s \638// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBB-EXT %s639// RUN: %clang --target=riscv64-unknown-linux-gnu \640// RUN:   -march=rv64izbb1p0 -E -dM %s \641// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBB-EXT %s642// RUN: %clang --target=riscv64-unknown-linux-gnu \643// RUN:   -march=rv64izbb -E -dM %s \644// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBB-EXT %s645// CHECK-ZBB-EXT: __riscv_zbb 1000000{{$}}646 647// RUN: %clang --target=riscv32-unknown-linux-gnu \648// RUN:   -march=rv32izbc1p0 -E -dM %s \649// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s650// RUN: %clang --target=riscv32-unknown-linux-gnu \651// RUN:   -march=rv32izbc -E -dM %s \652// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s653// RUN: %clang --target=riscv64-unknown-linux-gnu \654// RUN:   -march=rv64izbc1p0 -E -dM %s \655// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s656// RUN: %clang --target=riscv64-unknown-linux-gnu \657// RUN:   -march=rv64izbc -E -dM %s \658// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s659// CHECK-ZBC-EXT: __riscv_zbc 1000000{{$}}660 661// RUN: %clang --target=riscv32-unknown-linux-gnu \662// RUN:   -march=rv32izbkb1p0 -E -dM %s \663// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBKB-EXT %s664// RUN: %clang --target=riscv64-unknown-linux-gnu \665// RUN:   -march=rv64izbkb1p0 -E -dM %s \666// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBKB-EXT %s667// CHECK-ZBKB-EXT: __riscv_zbkb668 669// RUN: %clang --target=riscv32-unknown-linux-gnu \670// RUN:   -march=rv32izbkc1p0 -E -dM %s \671// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBKC-EXT %s672// RUN: %clang --target=riscv64-unknown-linux-gnu \673// RUN:   -march=rv64izbkc1p0 -E -dM %s \674// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBKC-EXT %s675// CHECK-ZBKC-EXT: __riscv_zbkc676 677// RUN: %clang --target=riscv32-unknown-linux-gnu \678// RUN:   -march=rv32izbkx1p0 -E -dM %s \679// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBKX-EXT %s680// RUN: %clang --target=riscv64-unknown-linux-gnu \681// RUN:   -march=rv64izbkx1p0 -E -dM %s \682// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBKX-EXT %s683// CHECK-ZBKX-EXT: __riscv_zbkx684 685// RUN: %clang --target=riscv32-unknown-linux-gnu \686// RUN:   -march=rv32izbs1p0 -E -dM %s \687// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s688// RUN: %clang --target=riscv32-unknown-linux-gnu \689// RUN:   -march=rv32izbs -E -dM %s \690// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s691// RUN: %clang --target=riscv64-unknown-linux-gnu \692// RUN:   -march=rv64izbs1p0 -E -dM %s \693// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s694// RUN: %clang --target=riscv64-unknown-linux-gnu \695// RUN:   -march=rv64izbs -E -dM %s \696// RUN:   -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s697// CHECK-ZBS-EXT: __riscv_zbs 1000000{{$}}698 699// RUN: %clang --target=riscv32-unknown-linux-gnu \700// RUN:   -march=rv32izca1p0 -E -dM %s \701// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCA-EXT %s702// RUN: %clang --target=riscv64-unknown-linux-gnu \703// RUN:   -march=rv64izca1p0 -E -dM %s \704// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCA-EXT %s705// CHECK-ZCA-EXT: __riscv_zca 1000000{{$}}706 707// RUN: %clang --target=riscv32-unknown-linux-gnu \708// RUN:   -march=rv32izcb1p0 -E -dM %s \709// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCB-EXT %s710// RUN: %clang --target=riscv64-unknown-linux-gnu \711// RUN:   -march=rv64izcb1p0 -E -dM %s \712// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCB-EXT %s713// CHECK-ZCB-EXT: __riscv_zca 1000000{{$}}714// CHECK-ZCB-EXT: __riscv_zcb 1000000{{$}}715 716// RUN: %clang --target=riscv32-unknown-linux-gnu \717// RUN:   -march=rv32izcd1p0 -E -dM %s \718// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCD-EXT %s719// RUN: %clang --target=riscv64-unknown-linux-gnu \720// RUN:   -march=rv64izcd1p0 -E -dM %s \721// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCD-EXT %s722// CHECK-ZCD-EXT: __riscv_zcd 1000000{{$}}723 724// RUN: %clang --target=riscv32-unknown-linux-gnu \725// RUN:   -march=rv32izce1p0 -E -dM %s \726// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCE-EXT %s727// RUN: %clang --target=riscv64-unknown-linux-gnu \728// RUN:   -march=rv64izce1p0 -E -dM %s \729// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCE-EXT %s730// CHECK-ZCE-EXT: __riscv_zce 1000000{{$}}731 732// RUN: %clang --target=riscv32-unknown-linux-gnu \733// RUN:   -march=rv32izcf1p0 -E -dM %s \734// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCF-EXT %s735// CHECK-ZCF-EXT: __riscv_zcf 1000000{{$}}736 737// RUN: %clang --target=riscv32-unknown-linux-gnu \738// RUN:   -march=rv32i_zclsd1p0 -E -dM %s \739// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCLSD-EXT %s740// CHECK-ZCLSD-EXT: __riscv_zclsd  1000000{{$}}741 742// RUN: %clang --target=riscv32-unknown-linux-gnu \743// RUN:   -march=rv32i_zcmop1p0 -E -dM %s \744// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCMOP-EXT %s745// RUN: %clang --target=riscv64-unknown-linux-gnu \746// RUN:   -march=rv64i_zcmop1p0 -E -dM %s \747// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCMOP-EXT %s748// CHECK-ZCMOP-EXT: __riscv_zcmop  1000000{{$}}749 750// RUN: %clang --target=riscv32-unknown-linux-gnu \751// RUN:   -march=rv32izcmp1p0 -E -dM %s \752// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCMP-EXT %s753// RUN: %clang --target=riscv64-unknown-linux-gnu \754// RUN:   -march=rv64izcmp1p0 -E -dM %s \755// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCMP-EXT %s756// CHECK-ZCMP-EXT: __riscv_zca 1000000{{$}}757// CHECK-ZCMP-EXT: __riscv_zcmp 1000000{{$}}758 759// RUN: %clang --target=riscv32-unknown-linux-gnu \760// RUN:   -march=rv32izcmt1p0 -E -dM %s \761// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCMT-EXT %s762// RUN: %clang --target=riscv64-unknown-linux-gnu \763// RUN:   -march=rv64izcmt1p0 -E -dM %s \764// RUN:   -o - | FileCheck --check-prefix=CHECK-ZCMT-EXT %s765// CHECK-ZCMT-EXT: __riscv_zca 1000000{{$}}766// CHECK-ZCMT-EXT: __riscv_zcmt 1000000{{$}}767 768// RUN: %clang --target=riscv32-unknown-linux-gnu \769// RUN:   -march=rv32izdinx1p0 -E -dM %s \770// RUN:   -o - | FileCheck --check-prefix=CHECK-ZDINX-EXT %s771// RUN: %clang --target=riscv64-unknown-linux-gnu \772// RUN:   -march=rv64izdinx1p0 -E -dM %s \773// RUN:   -o - | FileCheck --check-prefix=CHECK-ZDINX-EXT %s774// CHECK-ZDINX-EXT: __riscv_zdinx 1000000{{$}}775// CHECK-ZDINX-EXT: __riscv_zfinx 1000000{{$}}776 777// RUN: %clang --target=riscv32-unknown-linux-gnu \778// RUN:   -march=rv32izfh1p0 -E -dM %s \779// RUN:   -o - | FileCheck --check-prefix=CHECK-ZFH-EXT %s780// RUN: %clang --target=riscv64-unknown-linux-gnu \781// RUN:   -march=rv64izfh1p0 -E -dM %s \782// RUN:   -o - | FileCheck --check-prefix=CHECK-ZFH-EXT %s783// CHECK-ZFH-EXT: __riscv_f 2002000{{$}}784// CHECK-ZFH-EXT: __riscv_zfh 1000000{{$}}785 786// RUN: %clang --target=riscv32-unknown-linux-gnu \787// RUN:   -march=rv32izfhmin1p0 -E -dM %s \788// RUN:   -o - | FileCheck --check-prefix=CHECK-ZFHMIN-EXT %s789// RUN: %clang --target=riscv64-unknown-linux-gnu \790// RUN:   -march=rv64izfhmin1p0 -E -dM %s \791// RUN:   -o - | FileCheck --check-prefix=CHECK-ZFHMIN-EXT %s792// CHECK-ZFHMIN-EXT: __riscv_f 2002000{{$}}793// CHECK-ZFHMIN-EXT: __riscv_zfhmin 1000000{{$}}794 795// RUN: %clang --target=riscv32-unknown-linux-gnu \796// RUN:   -march=rv32izfinx1p0 -E -dM %s \797// RUN:   -o - | FileCheck --check-prefix=CHECK-ZFINX-EXT %s798// RUN: %clang --target=riscv64-unknown-linux-gnu \799// RUN:   -march=rv64izfinx1p0 -E -dM %s \800// RUN:   -o - | FileCheck --check-prefix=CHECK-ZFINX-EXT %s801// CHECK-ZFINX-EXT: __riscv_zfinx 1000000{{$}}802 803// RUN: %clang --target=riscv32-unknown-linux-gnu \804// RUN:   -march=rv32izhinx1p0 -E -dM %s \805// RUN:   -o - | FileCheck --check-prefix=CHECK-ZHINX-EXT %s806// RUN: %clang --target=riscv64-unknown-linux-gnu \807// RUN:   -march=rv64izhinx1p0 -E -dM %s \808// RUN:   -o - | FileCheck --check-prefix=CHECK-ZHINX-EXT %s809// CHECK-ZHINX-EXT: __riscv_zhinx 1000000{{$}}810 811// RUN: %clang --target=riscv32-unknown-linux-gnu \812// RUN:   -march=rv32izhinxmin1p0 -E -dM %s \813// RUN:   -o - | FileCheck --check-prefix=CHECK-ZHINXMIN-EXT %s814// RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64izhinxmin1p0 -E -dM %s \815// RUN:   -o - | FileCheck --check-prefix=CHECK-ZHINXMIN-EXT %s816// CHECK-ZHINXMIN-EXT: __riscv_zhinxmin 1000000{{$}}817 818// RUN: %clang --target=riscv32 -menable-experimental-extensions \819// RUN:   -march=rv32i_zibi0p1 -E -dM %s \820// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIBI-EXT %s821// RUN: %clang --target=riscv64 -menable-experimental-extensions \822// RUN:   -march=rv64i_zibi0p1 -E -dM %s \823// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIBI-EXT %s824// CHECK-ZIBI-EXT: __riscv_zibi825 826// RUN: %clang --target=riscv32-unknown-linux-gnu \827// RUN:   -march=rv32izic64b -E -dM %s \828// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIC64B-EXT %s829// RUN: %clang --target=riscv64-unknown-linux-gnu \830// RUN:   -march=rv64izic64b -E -dM %s \831// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIC64B-EXT %s832// CHECK-ZIC64B-EXT: __riscv_zic64b 1000000{{$}}833 834// RUN: %clang --target=riscv32-unknown-linux-gnu \835// RUN:   -march=rv32izicbom -E -dM %s \836// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICBOM-EXT %s837// RUN: %clang --target=riscv64-unknown-linux-gnu \838// RUN:   -march=rv64izicbom -E -dM %s \839// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICBOM-EXT %s840// CHECK-ZICBOM-EXT: __riscv_zicbom 1000000{{$}}841 842// RUN: %clang --target=riscv32-unknown-linux-gnu \843// RUN:   -march=rv32izicbop -E -dM %s \844// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICBOP-EXT %s845// RUN: %clang --target=riscv64-unknown-linux-gnu \846// RUN:   -march=rv64izicbop -E -dM %s \847// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICBOP-EXT %s848// CHECK-ZICBOP-EXT: __riscv_zicbop 1000000{{$}}849 850// RUN: %clang --target=riscv32-unknown-linux-gnu \851// RUN:   -march=rv32izicboz -E -dM %s \852// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICBOZ-EXT %s853// RUN: %clang --target=riscv64-unknown-linux-gnu \854// RUN:   -march=rv64izicboz -E -dM %s \855// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICBOZ-EXT %s856// CHECK-ZICBOZ-EXT: __riscv_zicboz 1000000{{$}}857 858// RUN: %clang --target=riscv32-unknown-linux-gnu \859// RUN:   -march=rv32iziccamoa -E -dM %s \860// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICCAMOA-EXT %s861// RUN: %clang --target=riscv64-unknown-linux-gnu \862// RUN:   -march=rv64iziccamoa -E -dM %s \863// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICCAMOA-EXT %s864// CHECK-ZICCAMOA-EXT: __riscv_ziccamoa 1000000{{$}}865 866// RUN: %clang --target=riscv32-unknown-linux-gnu \867// RUN:   -march=rv32iziccamoc -E -dM %s \868// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICCAMOC-EXT %s869// RUN: %clang --target=riscv64-unknown-linux-gnu \870// RUN:   -march=rv64iziccamoc -E -dM %s \871// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICCAMOC-EXT %s872// CHECK-ZICCAMOC-EXT: __riscv_ziccamoc 1000000{{$}}873 874// RUN: %clang --target=riscv32-unknown-linux-gnu \875// RUN:   -march=rv32iziccif -E -dM %s \876// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICCIF-EXT %s877// RUN: %clang --target=riscv64-unknown-linux-gnu \878// RUN:   -march=rv64iziccif -E -dM %s \879// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICCIF-EXT %s880// CHECK-ZICCIF-EXT: __riscv_ziccif 1000000{{$}}881 882// RUN: %clang --target=riscv32-unknown-linux-gnu \883// RUN:   -march=rv32izicclsm -E -dM %s \884// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICCLSM-EXT %s885// RUN: %clang --target=riscv64-unknown-linux-gnu \886// RUN:   -march=rv64izicclsm -E -dM %s \887// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICCLSM-EXT %s888// CHECK-ZICCLSM-EXT: __riscv_zicclsm 1000000{{$}}889 890// RUN: %clang --target=riscv32-unknown-linux-gnu \891// RUN:   -march=rv32iziccrse -E -dM %s \892// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICCRSE-EXT %s893// RUN: %clang --target=riscv64-unknown-linux-gnu \894// RUN:   -march=rv64iziccrse -E -dM %s \895// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICCRSE-EXT %s896// CHECK-ZICCRSE-EXT: __riscv_ziccrse 1000000{{$}}897 898// RUN: %clang --target=riscv32-unknown-linux-gnu \899// RUN:   -march=rv32izicntr -E -dM %s \900// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICNTR-EXT %s901// RUN: %clang --target=riscv64-unknown-linux-gnu \902// RUN:   -march=rv64izicntr -E -dM %s \903// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICNTR-EXT %s904// CHECK-ZICNTR-EXT: __riscv_zicntr 2000000{{$}}905 906// RUN: %clang --target=riscv32 \907// RUN:   -march=rv32i_zicond -E -dM %s \908// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICOND-EXT %s909// RUN: %clang --target=riscv64 \910// RUN:   -march=rv64i_zicond -E -dM %s \911// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICOND-EXT %s912// CHECK-ZICOND-EXT: __riscv_zicond  1000000{{$}}913 914// RUN: %clang --target=riscv32-unknown-linux-gnu \915// RUN:   -march=rv32izicsr2p0 -E -dM %s \916// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICSR-EXT %s917// RUN: %clang --target=riscv64-unknown-linux-gnu \918// RUN:   -march=rv64izicsr2p0 -E -dM %s \919// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICSR-EXT %s920// CHECK-ZICSR-EXT: __riscv_zicsr 2000000{{$}}921 922// RUN: %clang --target=riscv32-unknown-linux-gnu \923// RUN:   -march=rv32izifencei2p0 -E -dM %s \924// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIFENCEI-EXT %s925// RUN: %clang --target=riscv64-unknown-linux-gnu \926// RUN:   -march=rv64izifencei2p0 -E -dM %s \927// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIFENCEI-EXT %s928// CHECK-ZIFENCEI-EXT: __riscv_zifencei 2000000{{$}}929 930// RUN: %clang --target=riscv32-unknown-linux-gnu \931// RUN:   -march=rv32izihintntl1p0 -E -dM %s \932// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIHINTNTL-EXT %s933// RUN: %clang --target=riscv64-unknown-linux-gnu \934// RUN:   -march=rv64izihintntl1p0 -E -dM %s \935// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIHINTNTL-EXT %s936// CHECK-ZIHINTNTL-EXT: __riscv_zihintntl 1000000{{$}}937 938// RUN: %clang --target=riscv32-unknown-linux-gnu \939// RUN:   -march=rv32izihintpause2p0 -E -dM %s \940// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIHINTPAUSE-EXT %s941// RUN: %clang --target=riscv64-unknown-linux-gnu \942// RUN:   -march=rv64izihintpause2p0 -E -dM %s \943// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIHINTPAUSE-EXT %s944// CHECK-ZIHINTPAUSE-EXT: __riscv_zihintpause 2000000{{$}}945 946// RUN: %clang --target=riscv32-unknown-linux-gnu \947// RUN:   -march=rv32izihpm -E -dM %s \948// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIHPM-EXT %s949// RUN: %clang --target=riscv64-unknown-linux-gnu \950// RUN:   -march=rv64izihpm -E -dM %s \951// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIHPM-EXT %s952// CHECK-ZIHPM-EXT: __riscv_zihpm 2000000{{$}}953 954// RUN: %clang --target=riscv32-unknown-linux-gnu \955// RUN:   -march=rv32i_zilsd1p0 -E -dM %s \956// RUN:   -o - | FileCheck --check-prefix=CHECK-ZILSD-EXT %s957// CHECK-ZILSD-EXT: __riscv_zilsd  1000000{{$}}958 959// RUN: %clang --target=riscv32-unknown-linux-gnu \960// RUN:   -march=rv32i_zimop1p0 -E -dM %s \961// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIMOP-EXT %s962// RUN: %clang --target=riscv64-unknown-linux-gnu \963// RUN:   -march=rv64i_zimop1p0 -E -dM %s \964// RUN:   -o - | FileCheck --check-prefix=CHECK-ZIMOP-EXT %s965// CHECK-ZIMOP-EXT: __riscv_zimop  1000000{{$}}966 967// RUN: %clang --target=riscv32-unknown-linux-gnu \968// RUN:   -march=rv32izk1p0 -E -dM %s \969// RUN:   -o - | FileCheck --check-prefix=CHECK-ZK-EXT %s970// RUN: %clang --target=riscv64-unknown-linux-gnu \971// RUN:   -march=rv64izk1p0 -E -dM %s \972// RUN:   -o - | FileCheck --check-prefix=CHECK-ZK-EXT %s973// CHECK-ZK-EXT: __riscv_zk974 975// RUN: %clang --target=riscv32-unknown-linux-gnu \976// RUN:   -march=rv32i_zkn_zkt_zkr -E -dM %s \977// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZK %s978// RUN: %clang --target=riscv64-unknown-linux-gnu \979// RUN:   -march=rv64i_zkn_zkt_zkr -E -dM %s \980// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZK %s981// CHECK-COMBINE-INTO-ZK: __riscv_zk 1982 983// RUN: %clang --target=riscv32-unknown-linux-gnu \984// RUN:   -march=rv32izkn1p0 -E -dM %s \985// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKN-EXT %s986// RUN: %clang --target=riscv64-unknown-linux-gnu \987// RUN:   -march=rv64izkn1p0 -E -dM %s \988// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKN-EXT %s989// CHECK-ZKN-EXT: __riscv_zkn990 991// RUN: %clang --target=riscv32-unknown-linux-gnu \992// RUN:   -march=rv32i_zbkb_zbkc_zbkx_zkne_zknd_zknh -E -dM %s \993// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKN %s994// RUN: %clang --target=riscv64-unknown-linux-gnu \995// RUN:   -march=rv64i_zbkb_zbkc_zbkx_zkne_zknd_zknh -E -dM %s \996// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKN %s997// CHECK-COMBINE-INTO-ZKN: __riscv_zkn 1998 999// RUN: %clang --target=riscv32-unknown-linux-gnu \1000// RUN:   -march=rv32izknd1p0 -E -dM %s \1001// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKND-EXT %s1002// RUN: %clang --target=riscv64-unknown-linux-gnu \1003// RUN:   -march=rv64izknd1p0 -E -dM %s \1004// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKND-EXT %s1005// CHECK-ZKND-EXT: __riscv_zknd1006 1007// RUN: %clang --target=riscv32-unknown-linux-gnu \1008// RUN:   -march=rv32izkne1p0 -E -dM %s \1009// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKNE-EXT %s1010// RUN: %clang --target=riscv64-unknown-linux-gnu \1011// RUN:   -march=rv64izkne1p0 -E -dM %s \1012// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKNE-EXT %s1013// CHECK-ZKNE-EXT: __riscv_zkne1014 1015// RUN: %clang --target=riscv32-unknown-linux-gnu \1016// RUN:   -march=rv32izknh1p0 -E -dM %s \1017// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKNH-EXT %s1018// RUN: %clang --target=riscv64-unknown-linux-gnu \1019// RUN:   -march=rv64izknh1p0 -E -dM %s \1020// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKNH-EXT %s1021// CHECK-ZKNH-EXT: __riscv_zknh1022 1023// RUN: %clang --target=riscv32-unknown-linux-gnu \1024// RUN:   -march=rv32izkr1p0 -E -dM %s \1025// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKR-EXT %s1026// RUN: %clang --target=riscv64-unknown-linux-gnu \1027// RUN:   -march=rv64izkr1p0 -E -dM %s \1028// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKR-EXT %s1029// CHECK-ZKR-EXT: __riscv_zkr1030 1031// RUN: %clang --target=riscv32-unknown-linux-gnu \1032// RUN:   -march=rv32i_zbkb_zbkc_zbkx_zksed_zksh -E -dM %s \1033// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKS %s1034// RUN: %clang --target=riscv64-unknown-linux-gnu \1035// RUN:   -march=rv64i_zbkb_zbkc_zbkx_zksed_zksh -E -dM %s \1036// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKS %s1037// CHECK-COMBINE-INTO-ZKS: __riscv_zks 11038 1039// RUN: %clang --target=riscv32-unknown-linux-gnu \1040// RUN:   -march=rv32izks1p0 -E -dM %s \1041// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKS-EXT %s1042// RUN: %clang --target=riscv64-unknown-linux-gnu \1043// RUN:   -march=rv64izks1p0 -E -dM %s \1044// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKS-EXT %s1045// CHECK-ZKS-EXT: __riscv_zks1046 1047// RUN: %clang --target=riscv32-unknown-linux-gnu \1048// RUN:   -march=rv32izksed1p0 -E -dM %s \1049// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKSED-EXT %s1050// RUN: %clang --target=riscv64-unknown-linux-gnu \1051// RUN:   -march=rv64izksed1p0 -E -dM %s \1052// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKSED-EXT %s1053// CHECK-ZKSED-EXT: __riscv_zksed1054 1055// RUN: %clang --target=riscv32-unknown-linux-gnu \1056// RUN:   -march=rv32izksh1p0 -E -dM %s \1057// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKSH-EXT %s1058// RUN: %clang --target=riscv64-unknown-linux-gnu \1059// RUN:   -march=rv64izksh1p0 -E -dM %s \1060// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKSH-EXT %s1061// CHECK-ZKSH-EXT: __riscv_zksh1062 1063// RUN: %clang --target=riscv32-unknown-linux-gnu \1064// RUN:   -march=rv32izkt1p0 -E -dM %s \1065// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKT-EXT %s1066// RUN: %clang --target=riscv64-unknown-linux-gnu \1067// RUN:   -march=rv64izkt1p0 -E -dM %s \1068// RUN:   -o - | FileCheck --check-prefix=CHECK-ZKT-EXT %s1069// CHECK-ZKT-EXT: __riscv_zkt1070 1071// RUN: %clang --target=riscv32-unknown-linux-gnu \1072// RUN:   -march=rv32izmmul1p0 -E -dM %s \1073// RUN:   -o - | FileCheck --check-prefix=CHECK-ZMMUL-EXT %s1074// RUN: %clang --target=riscv64-unknown-linux-gnu \1075// RUN:   -march=rv64izmmul1p0 -E -dM %s \1076// RUN:   -o - | FileCheck --check-prefix=CHECK-ZMMUL-EXT %s1077// CHECK-ZMMUL-EXT: __riscv_zmmul1078 1079// RUN: %clang --target=riscv32-unknown-linux-gnu \1080// RUN:   -march=rv32ifzve32f1p0 -E -dM %s \1081// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVE32F-EXT %s1082// RUN: %clang --target=riscv64-unknown-linux-gnu \1083// RUN:   -march=rv64ifzve32f1p0 -E -dM %s \1084// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVE32F-EXT %s1085// CHECK-ZVE32F-EXT: __riscv_v_elen 321086// CHECK-ZVE32F-EXT: __riscv_v_elen_fp 321087// CHECK-ZVE32F-EXT: __riscv_v_intrinsic 1000000{{$}}1088// CHECK-ZVE32F-EXT: __riscv_v_min_vlen 321089// CHECK-ZVE32F-EXT: __riscv_vector 11090// CHECK-ZVE32F-EXT: __riscv_zve32f 1000000{{$}}1091// CHECK-ZVE32F-EXT: __riscv_zve32x 1000000{{$}}1092 1093// RUN: %clang --target=riscv32-unknown-linux-gnu \1094// RUN:   -march=rv32izve32x1p0 -E -dM %s \1095// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVE32X-EXT %s1096// RUN: %clang --target=riscv64-unknown-linux-gnu \1097// RUN:   -march=rv64izve32x1p0 -E -dM %s \1098// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVE32X-EXT %s1099// CHECK-ZVE32X-EXT: __riscv_v_elen 321100// CHECK-ZVE32X-EXT: __riscv_v_elen_fp 01101// CHECK-ZVE32X-EXT: __riscv_v_intrinsic 1000000{{$}}1102// CHECK-ZVE32X-EXT: __riscv_v_min_vlen 321103// CHECK-ZVE32X-EXT: __riscv_vector 11104// CHECK-ZVE32X-EXT: __riscv_zve32x 1000000{{$}}1105 1106// RUN: %clang --target=riscv32-unknown-linux-gnu \1107// RUN:   -march=rv32ifdzve64d1p0 -E -dM %s \1108// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVE64D-EXT %s1109// RUN: %clang --target=riscv64-unknown-linux-gnu \1110// RUN:   -march=rv64ifdzve64d1p0 -E -dM %s \1111// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVE64D-EXT %s1112// CHECK-ZVE64D-EXT: __riscv_v_elen 641113// CHECK-ZVE64D-EXT: __riscv_v_elen_fp 641114// CHECK-ZVE64D-EXT: __riscv_v_intrinsic 1000000{{$}}1115// CHECK-ZVE64D-EXT: __riscv_v_min_vlen 641116// CHECK-ZVE64D-EXT: __riscv_vector 11117// CHECK-ZVE64D-EXT: __riscv_zve32f 1000000{{$}}1118// CHECK-ZVE64D-EXT: __riscv_zve32x 1000000{{$}}1119// CHECK-ZVE64D-EXT: __riscv_zve64d 1000000{{$}}1120// CHECK-ZVE64D-EXT: __riscv_zve64f 1000000{{$}}1121// CHECK-ZVE64D-EXT: __riscv_zve64x 1000000{{$}}1122 1123// RUN: %clang --target=riscv32-unknown-linux-gnu \1124// RUN:   -march=rv32ifzve64f1p0 -E -dM %s \1125// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVE64F-EXT %s1126// RUN: %clang --target=riscv64-unknown-linux-gnu \1127// RUN:   -march=rv64ifzve64f1p0 -E -dM %s \1128// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVE64F-EXT %s1129// CHECK-ZVE64F-EXT: __riscv_v_elen 641130// CHECK-ZVE64F-EXT: __riscv_v_elen_fp 321131// CHECK-ZVE64F-EXT: __riscv_v_intrinsic 1000000{{$}}1132// CHECK-ZVE64F-EXT: __riscv_v_min_vlen 641133// CHECK-ZVE64F-EXT: __riscv_vector 11134// CHECK-ZVE64F-EXT: __riscv_zve32f 1000000{{$}}1135// CHECK-ZVE64F-EXT: __riscv_zve32x 1000000{{$}}1136// CHECK-ZVE64F-EXT: __riscv_zve64f 1000000{{$}}1137// CHECK-ZVE64F-EXT: __riscv_zve64x 1000000{{$}}1138 1139// RUN: %clang --target=riscv32-unknown-linux-gnu \1140// RUN:   -march=rv32izve64x1p0 -E -dM %s \1141// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVE64X-EXT %s1142// RUN: %clang --target=riscv64-unknown-linux-gnu \1143// RUN:   -march=rv64izve64x1p0 -E -dM %s \1144// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVE64X-EXT %s1145// CHECK-ZVE64X-EXT: __riscv_v_elen 641146// CHECK-ZVE64X-EXT: __riscv_v_elen_fp 01147// CHECK-ZVE64X-EXT: __riscv_v_intrinsic 1000000{{$}}1148// CHECK-ZVE64X-EXT: __riscv_v_min_vlen 641149// CHECK-ZVE64X-EXT: __riscv_vector 11150// CHECK-ZVE64X-EXT: __riscv_zve32x 1000000{{$}}1151// CHECK-ZVE64X-EXT: __riscv_zve64x 1000000{{$}}1152 1153// RUN: %clang --target=riscv32-unknown-linux-gnu \1154// RUN:   -march=rv32izvfh1p0 -E -dM %s \1155// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVFH-EXT %s1156// RUN: %clang --target=riscv64-unknown-linux-gnu \1157// RUN:   -march=rv64izvfh1p0 -E -dM %s \1158// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVFH-EXT %s1159// CHECK-ZVFH-EXT: __riscv_zvfh1160 1161// RUN: %clang --target=riscv32-unknown-linux-gnu \1162// RUN:   -march=rv32izve32x1p0_zvl32b1p0 -E -dM %s \1163// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL32b %s1164// RUN: %clang --target=riscv64-unknown-linux-gnu \1165// RUN:   -march=rv64izve32x1p0_zvl32b1p0 -E -dM %s \1166// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL32b %s1167// CHECK-ZVL32b: __riscv_v_min_vlen 321168 1169// RUN: %clang --target=riscv32-unknown-linux-gnu \1170// RUN:   -march=rv32izve32x1p0_zvl64b1p0 -E -dM %s \1171// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL64b %s1172// RUN: %clang --target=riscv64-unknown-linux-gnu \1173// RUN:   -march=rv64izve32x1p0_zvl64b1p0 -E -dM %s \1174// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL64b %s1175// CHECK-ZVL64b: __riscv_v_min_vlen 641176 1177// RUN: %clang --target=riscv32-unknown-linux-gnu \1178// RUN:   -march=rv32iv1p0_zvl128b1p0 -E -dM %s \1179// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL128b %s1180// RUN: %clang --target=riscv64-unknown-linux-gnu \1181// RUN:   -march=rv64iv1p0_zvl128b1p0 -E -dM %s \1182// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL128b %s1183// CHECK-ZVL128b: __riscv_v_min_vlen 1281184 1185// RUN: %clang --target=riscv32-unknown-linux-gnu \1186// RUN:   -march=rv32iv1p0_zvl256b1p0 -E -dM %s \1187// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL256b %s1188// RUN: %clang --target=riscv64-unknown-linux-gnu \1189// RUN:   -march=rv64iv1p0_zvl256b1p0 -E -dM %s \1190// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL256b %s1191// CHECK-ZVL256b: __riscv_v_min_vlen 2561192 1193// RUN: %clang --target=riscv32-unknown-linux-gnu \1194// RUN:   -march=rv32iv1p0_zvl512b1p0 -E -dM %s \1195// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL512b %s1196// RUN: %clang --target=riscv64-unknown-linux-gnu \1197// RUN:   -march=rv64iv1p0_zvl512b1p0 -E -dM %s \1198// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL512b %s1199// CHECK-ZVL512b: __riscv_v_min_vlen 5121200 1201// RUN: %clang --target=riscv32-unknown-linux-gnu \1202// RUN:   -march=rv32iv1p0_zvl1024b1p0 -E -dM %s \1203// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL1024b %s1204// RUN: %clang --target=riscv64-unknown-linux-gnu \1205// RUN:   -march=rv64iv1p0_zvl1024b1p0 -E -dM %s \1206// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL1024b %s1207// CHECK-ZVL1024b: __riscv_v_min_vlen 10241208 1209// RUN: %clang --target=riscv32-unknown-linux-gnu \1210// RUN:   -march=rv32iv1p0_zvl2048b1p0 -E -dM %s \1211// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL2048b %s1212// RUN: %clang --target=riscv64-unknown-linux-gnu \1213// RUN:   -march=rv64iv1p0_zvl2048b1p0 -E -dM %s \1214// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL2048b %s1215// CHECK-ZVL2048b: __riscv_v_min_vlen 20481216 1217// RUN: %clang --target=riscv32-unknown-linux-gnu \1218// RUN:   -march=rv32iv1p0_zvl4096b1p0 -E -dM %s \1219// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL4096b %s1220// RUN: %clang --target=riscv64-unknown-linux-gnu \1221// RUN:   -march=rv64iv1p0_zvl4096b1p0 -E -dM %s \1222// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL4096b %s1223// CHECK-ZVL4096b: __riscv_v_min_vlen 40961224 1225// RUN: %clang --target=riscv32-unknown-linux-gnu \1226// RUN:   -march=rv32iv1p0_zvl8192b1p0 -E -dM %s \1227// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL8192b %s1228// RUN: %clang --target=riscv64-unknown-linux-gnu \1229// RUN:   -march=rv64iv1p0_zvl8192b1p0 -E -dM %s \1230// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL8192b %s1231// CHECK-ZVL8192b: __riscv_v_min_vlen 81921232 1233// RUN: %clang --target=riscv32-unknown-linux-gnu \1234// RUN:   -march=rv32iv1p0_zvl16384b1p0 -E -dM %s \1235// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL16384b %s1236// RUN: %clang --target=riscv64-unknown-linux-gnu \1237// RUN:   -march=rv64iv1p0_zvl16384b1p0 -E -dM %s \1238// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL16384b %s1239// CHECK-ZVL16384b: __riscv_v_min_vlen 163841240 1241// RUN: %clang --target=riscv32-unknown-linux-gnu \1242// RUN:   -march=rv32iv1p0_zvl32768b1p0 -E -dM %s \1243// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL32768b %s1244// RUN: %clang --target=riscv64-unknown-linux-gnu \1245// RUN:   -march=rv64iv1p0_zvl32768b1p0 -E -dM %s \1246// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL32768b %s1247// CHECK-ZVL32768b: __riscv_v_min_vlen 327681248 1249// RUN: %clang --target=riscv32-unknown-linux-gnu \1250// RUN:   -march=rv32iv1p0_zvl65536b1p0 -E -dM %s \1251// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL65536b %s1252// RUN: %clang --target=riscv64-unknown-linux-gnu \1253// RUN:   -march=rv64iv1p0_zvl65536b1p0 -E -dM %s \1254// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVL65536b %s1255// CHECK-ZVL65536b: __riscv_v_min_vlen 655361256 1257// RUN: %clang --target=riscv32 \1258// RUN:   -march=rv32ismaia1p0 -E -dM %s \1259// RUN:   -o - | FileCheck --check-prefix=CHECK-SMAIA-EXT %s1260// RUN: %clang --target=riscv64 \1261// RUN:   -march=rv64ismaia1p0 -E -dM %s \1262// RUN:   -o - | FileCheck --check-prefix=CHECK-SMAIA-EXT %s1263// CHECK-SMAIA-EXT: __riscv_smaia  1000000{{$}}1264 1265// RUN: %clang --target=riscv32 \1266// RUN:   -march=rv32issaia1p0 -E -dM %s \1267// RUN:   -o - | FileCheck --check-prefix=CHECK-SSAIA-EXT %s1268// RUN: %clang --target=riscv64 \1269// RUN:   -march=rv64issaia1p0 -E -dM %s \1270// RUN:   -o - | FileCheck --check-prefix=CHECK-SSAIA-EXT %s1271// CHECK-SSAIA-EXT: __riscv_ssaia  1000000{{$}}1272 1273// RUN: %clang --target=riscv32 \1274// RUN:   -march=rv32ismcntrpmf1p0 -E -dM %s \1275// RUN:   -o - | FileCheck --check-prefix=CHECK-SMCNTRPMF-EXT %s1276// RUN: %clang --target=riscv64 \1277// RUN:   -march=rv64ismcntrpmf1p0 -E -dM %s \1278// RUN:   -o - | FileCheck --check-prefix=CHECK-SMCNTRPMF-EXT %s1279// CHECK-SMCNTRPMF-EXT: __riscv_smcntrpmf  1000000{{$}}1280 1281// RUN: %clang --target=riscv32 \1282// RUN:   -march=rv32ismcsrind1p0 -E -dM %s \1283// RUN:   -o - | FileCheck --check-prefix=CHECK-SMCSRIND-EXT %s1284// RUN: %clang --target=riscv64 \1285// RUN:   -march=rv64ismcsrind1p0 -E -dM %s \1286// RUN:   -o - | FileCheck --check-prefix=CHECK-SMCSRIND-EXT %s1287// CHECK-SMCSRIND-EXT: __riscv_smcsrind  1000000{{$}}1288 1289// RUN: %clang --target=riscv32 \1290// RUN:   -march=rv32isscsrind1p0 -E -dM %s \1291// RUN:   -o - | FileCheck --check-prefix=CHECK-SSCSRIND-EXT %s1292// RUN: %clang --target=riscv64 \1293// RUN:   -march=rv64isscsrind1p0 -E -dM %s \1294// RUN:   -o - | FileCheck --check-prefix=CHECK-SSCSRIND-EXT %s1295// CHECK-SSCSRIND-EXT: __riscv_sscsrind  1000000{{$}}1296 1297// RUN: %clang --target=riscv32 \1298// RUN:   -march=rv32ismdbltrp1p0 -E -dM %s \1299// RUN:   -o - | FileCheck --check-prefix=CHECK-SMDBLTRP-EXT %s1300// RUN: %clang --target=riscv64 \1301// RUN:   -march=rv64ismdbltrp1p0 -E -dM %s \1302// RUN:   -o - | FileCheck --check-prefix=CHECK-SMDBLTRP-EXT %s1303// CHECK-SMDBLTRP-EXT: __riscv_smdbltrp  1000000{{$}}1304 1305// RUN: %clang --target=riscv32 \1306// RUN:   -march=rv32issdbltrp1p0 -E -dM %s \1307// RUN:   -o - | FileCheck --check-prefix=CHECK-SSDBLTRP-EXT %s1308// RUN: %clang --target=riscv64 \1309// RUN:   -march=rv64issdbltrp1p0 -E -dM %s \1310// RUN:   -o - | FileCheck --check-prefix=CHECK-SSDBLTRP-EXT %s1311// CHECK-SSDBLTRP-EXT: __riscv_ssdbltrp  1000000{{$}}1312 1313// RUN: %clang --target=riscv32 \1314// RUN:   -march=rv32i_ssqosid1p0 -E -dM %s \1315// RUN:   -o - | FileCheck --check-prefix=CHECK-SSQOSID-EXT %s1316// RUN: %clang --target=riscv64 \1317// RUN:   -march=rv64i_ssqosid1p0 -E -dM %s \1318// RUN:   -o - | FileCheck --check-prefix=CHECK-SSQOSID-EXT %s1319// CHECK-SSQOSID-EXT: __riscv_ssqosid 1000000{{$}}1320 1321// RUN: %clang --target=riscv32 \1322// RUN:   -march=rv32ismcdeleg1p0 -E -dM %s \1323// RUN:   -o - | FileCheck --check-prefix=CHECK-SMCDELEG-EXT %s1324// RUN: %clang --target=riscv64 \1325// RUN:   -march=rv64ismcdeleg1p0 -E -dM %s \1326// RUN:   -o - | FileCheck --check-prefix=CHECK-SMCDELEG-EXT %s1327// CHECK-SMCDELEG-EXT: __riscv_smcdeleg  1000000{{$}}1328 1329// RUN: %clang --target=riscv32 \1330// RUN:   -march=rv32ismepmp1p0 -E -dM %s \1331// RUN:   -o - | FileCheck --check-prefix=CHECK-SMEPMP-EXT %s1332// RUN: %clang --target=riscv64 \1333// RUN:   -march=rv64ismepmp1p0 -E -dM %s \1334// RUN:   -o - | FileCheck --check-prefix=CHECK-SMEPMP-EXT %s1335// CHECK-SMEPMP-EXT: __riscv_smepmp  1000000{{$}}1336 1337// RUN: %clang --target=riscv32 -menable-experimental-extensions \1338// RUN: -march=rv32ismpmpmt0p6 -x c -E -dM %s \1339// RUN: -o - | FileCheck --check-prefix=CHECK-SMPMPMT %s1340// RUN: %clang --target=riscv64 -menable-experimental-extensions \1341// RUN: -march=rv64ismpmpmt0p6 -x c -E -dM %s \1342// RUN: -o - | FileCheck --check-prefix=CHECK-SMPMPMT %s1343// CHECK-SMPMPMT: __riscv_smpmpmt  6000{{$}}1344 1345// RUN: %clang --target=riscv32 \1346// RUN:   -march=rv32ismrnmi1p0 -E -dM %s \1347// RUN:   -o - | FileCheck --check-prefix=CHECK-SMRNMI-EXT %s1348// RUN: %clang --target=riscv64 \1349// RUN:   -march=rv64ismrnmi1p0 -E -dM %s \1350// RUN:   -o - | FileCheck --check-prefix=CHECK-SMRNMI-EXT %s1351// CHECK-SMRNMI-EXT: __riscv_smrnmi  1000000{{$}}1352 1353// RUN: %clang --target=riscv32-unknown-linux-gnu \1354// RUN:   -march=rv32izfa -E -dM %s \1355// RUN:   -o - | FileCheck --check-prefix=CHECK-ZFA-EXT %s1356// RUN: %clang --target=riscv64-unknown-linux-gnu \1357// RUN:   -march=rv64izfa -E -dM %s \1358// RUN:   -o - | FileCheck --check-prefix=CHECK-ZFA-EXT %s1359// CHECK-ZFA-EXT: __riscv_zfa 1000000{{$}}1360 1361// RUN: %clang --target=riscv32 \1362// RUN:   -march=rv32i_zve64x_zvbb1p0 -E -dM %s \1363// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVBB-EXT %s1364// RUN: %clang --target=riscv64 \1365// RUN:   -march=rv64i_zve64x_zvbb1p0 -E -dM %s \1366// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVBB-EXT %s1367// CHECK-ZVBB-EXT: __riscv_zvbb  1000000{{$}}1368 1369// RUN: %clang --target=riscv32 \1370// RUN:   -march=rv32i_zve64x_zvbc1p0 -E -dM %s \1371// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVBC-EXT %s1372// RUN: %clang --target=riscv64 \1373// RUN:   -march=rv64i_zve64x_zvbc1p0 -E -dM %s \1374// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVBC-EXT %s1375// CHECK-ZVBC-EXT: __riscv_zvbc  1000000{{$}}1376 1377// RUN: %clang --target=riscv32 \1378// RUN:   -march=rv32i_zve64x_zvkb1p0 -E -dM %s \1379// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKB-EXT %s1380// RUN: %clang --target=riscv64 \1381// RUN:   -march=rv64i_zve64x_zvkb1p0 -E -dM %s \1382// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKB-EXT %s1383// CHECK-ZVKB-EXT: __riscv_zvkb  1000000{{$}}1384 1385// RUN: %clang --target=riscv32 \1386// RUN:   -march=rv32i_zve32x_zvkg1p0 -E -dM %s \1387// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKG-EXT %s1388// RUN: %clang --target=riscv64 \1389// RUN:   -march=rv64i_zve32x_zvkg1p0 -E -dM %s \1390// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKG-EXT %s1391// CHECK-ZVKG-EXT: __riscv_zvkg  1000000{{$}}1392 1393// RUN: %clang --target=riscv32 \1394// RUN:   -march=rv32i_zve64x_zvkn1p0 -E -dM %s \1395// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKN-EXT %s1396// RUN: %clang --target=riscv64 \1397// RUN:   -march=rv64i_zve64x_zvkn1p0 -E -dM %s \1398// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKN-EXT %s1399// CHECK-ZVKN-EXT: __riscv_zvkn 1000000{{$}}1400 1401// RUN: %clang --target=riscv32 \1402// RUN:   -march=rv32iv_zvkb1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -E -dM %s \1403// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKN %s1404// RUN: %clang --target=riscv64 \1405// RUN:   -march=rv64iv_zvkb1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -E -dM %s \1406// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKN %s1407// CHECK-COMBINE-INTO-ZVKN: __riscv_zvkn 1000000{{$}}1408 1409// RUN: %clang --target=riscv32 \1410// RUN:   -march=rv32i_zve64x_zvknc1p0 -E -dM %s \1411// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKNC-EXT %s1412// RUN: %clang --target=riscv64 \1413// RUN:   -march=rv64i_zve64x_zvknc1p0 -E -dM %s \1414// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKNC-EXT %s1415// CHECK-ZVKNC-EXT: __riscv_zvknc 1000000{{$}}1416 1417// RUN: %clang --target=riscv32 \1418// RUN:   -march=rv32iv_zvkb1p0_zvbc1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -E -dM %s \1419// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNC %s1420// RUN: %clang --target=riscv64 \1421// RUN:   -march=rv64iv_zvkb1p0_zvbc1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -E -dM %s \1422// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNC %s1423// CHECK-COMBINE-INTO-ZVKNC: __riscv_zvkn 1000000{{$}}1424// CHECK-COMBINE-INTO-ZVKNC: __riscv_zvknc 1000000{{$}}1425 1426// RUN: %clang --target=riscv32 \1427// RUN:   -march=rv32i_zve32x_zvkned1p0 -E -dM %s \1428// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKNED-EXT %s1429// RUN: %clang --target=riscv64 \1430// RUN:   -march=rv64i_zve32x_zvkned1p0 -E -dM %s \1431// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKNED-EXT %s1432// CHECK-ZVKNED-EXT: __riscv_zvkned 1000000{{$}}1433 1434// RUN: %clang --target=riscv32 \1435// RUN:   -march=rv32i_zve64x_zvkng1p0 -E -dM %s \1436// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKNG-EXT %s1437// RUN: %clang --target=riscv64 \1438// RUN:   -march=rv64i_zve64x_zvkng1p0 -E -dM %s \1439// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKNG-EXT %s1440// CHECK-ZVKNG-EXT: __riscv_zvkng 1000000{{$}}1441 1442// RUN: %clang --target=riscv32 \1443// RUN:   -march=rv32iv_zvkb1p0_zvkg1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -E -dM %s \1444// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNG %s1445// RUN: %clang --target=riscv64 \1446// RUN:   -march=rv64iv_zvkb1p0_zvkg1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -E -dM %s \1447// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNG %s1448// CHECK-COMBINE-INTO-ZVKNG: __riscv_zvkn 1000000{{$}}1449// CHECK-COMBINE-INTO-ZVKNG: __riscv_zvkng 1000000{{$}}1450 1451// RUN: %clang --target=riscv32 \1452// RUN:   -march=rv32i_zve32x_zvknha1p0 -E -dM %s \1453// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKNHA-EXT %s1454// RUN: %clang --target=riscv64 \1455// RUN:   -march=rv64i_zve32x_zvknha1p0 -E -dM %s \1456// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKNHA-EXT %s1457// CHECK-ZVKNHA-EXT: __riscv_zvknha 1000000{{$}}1458 1459// RUN: %clang --target=riscv32 \1460// RUN:   -march=rv32i_zve64x_zvknhb1p0 -E -dM %s \1461// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKNHB-EXT %s1462// RUN: %clang --target=riscv64 \1463// RUN:   -march=rv64i_zve64x_zvknhb1p0 -E -dM %s \1464// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKNHB-EXT %s1465// CHECK-ZVKNHB-EXT: __riscv_zvknhb  1000000{{$}}1466 1467// RUN: %clang --target=riscv32 \1468// RUN:   -march=rv32i_zve64x_zvks1p0 -E -dM %s \1469// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKS-EXT %s1470// RUN: %clang --target=riscv64 \1471// RUN:   -march=rv64i_zve64x_zvks1p0 -E -dM %s \1472// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKS-EXT %s1473// CHECK-ZVKS-EXT: __riscv_zvks 1000000{{$}}1474 1475// RUN: %clang --target=riscv32 \1476// RUN:   -march=rv32iv_zvkb1p0_zvksed1p0_zvksh1p0_zvkt1p0 -E -dM %s \1477// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKS %s1478// RUN: %clang --target=riscv64 \1479// RUN:   -march=rv64iv_zvkb1p0_zvksed1p0_zvksh1p0_zvkt1p0 -E -dM %s \1480// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKS %s1481// CHECK-COMBINE-INTO-ZVKS: __riscv_zvks 1000000{{$}}1482 1483// RUN: %clang --target=riscv32 \1484// RUN:   -march=rv32i_zve64x_zvksc1p0 -E -dM %s \1485// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKSC-EXT %s1486// RUN: %clang --target=riscv64 \1487// RUN:   -march=rv64i_zve64x_zvksc1p0 -E -dM %s \1488// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKSC-EXT %s1489// CHECK-ZVKSC-EXT: __riscv_zvksc 1000000{{$}}1490 1491// RUN: %clang --target=riscv32 \1492// RUN:   -march=rv32iv_zvkb1p0_zvbc1p0_zvksed1p0_zvksh1p0_zvkt1p0 -E -dM %s \1493// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSC %s1494// RUN: %clang --target=riscv64 \1495// RUN:   -march=rv64iv_zvkb1p0_zvbc1p0_zvksed1p0_zvksh1p0_zvkt1p0 -E -dM %s \1496// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSC %s1497// CHECK-COMBINE-INTO-ZVKSC: __riscv_zvks 1000000{{$}}1498// CHECK-COMBINE-INTO-ZVKSC: __riscv_zvksc 1000000{{$}}1499 1500// RUN: %clang --target=riscv32 \1501// RUN:   -march=rv32i_zve32x_zvksed1p0 -E -dM %s \1502// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKSED-EXT %s1503// RUN: %clang --target=riscv64 \1504// RUN:   -march=rv64i_zve32x_zvksed1p0 -E -dM %s \1505// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKSED-EXT %s1506// CHECK-ZVKSED-EXT: __riscv_zvksed  1000000{{$}}1507 1508// RUN: %clang --target=riscv32 \1509// RUN:   -march=rv32i_zve64x_zvksg1p0 -E -dM %s \1510// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKSG-EXT %s1511// RUN: %clang --target=riscv64 \1512// RUN:   -march=rv64i_zve64x_zvksg1p0 -E -dM %s \1513// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKSG-EXT %s1514// CHECK-ZVKSG-EXT: __riscv_zvksg 1000000{{$}}1515 1516// RUN: %clang --target=riscv32 \1517// RUN:   -march=rv32iv_zvkb1p0_zvkg1p0_zvksed1p0_zvksh1p0_zvkt1p0 -E -dM %s \1518// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSG %s1519// RUN: %clang --target=riscv64 \1520// RUN:   -march=rv64iv_zvkb1p0_zvkg1p0_zvksed1p0_zvksh1p0_zvkt1p0 -E -dM %s \1521// RUN:   -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSG %s1522// CHECK-COMBINE-INTO-ZVKSG: __riscv_zvks 1000000{{$}}1523// CHECK-COMBINE-INTO-ZVKSG: __riscv_zvksg 1000000{{$}}1524 1525// RUN: %clang --target=riscv32 \1526// RUN:   -march=rv32i_zve32x_zvksh1p0 -E -dM %s \1527// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKSH-EXT %s1528// RUN: %clang --target=riscv64 \1529// RUN:   -march=rv64i_zve32x_zvksh1p0 -E -dM %s \1530// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKSH-EXT %s1531// CHECK-ZVKSH-EXT: __riscv_zvksh  1000000{{$}}1532 1533// RUN: %clang --target=riscv32 \1534// RUN:   -march=rv32i_zve32x_zvkt1p0 -E -dM %s \1535// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKT-EXT %s1536// RUN: %clang --target=riscv64 \1537// RUN:   -march=rv64i_zve32x_zvkt1p0 -E -dM %s \1538// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKT-EXT %s1539// CHECK-ZVKT-EXT: __riscv_zvkt 1000000{{$}}1540 1541// Experimental extensions1542// RUN: %clang --target=riscv32 -menable-experimental-extensions \1543// RUN:   -march=rv32i_zalasr0p9 -E -dM %s \1544// RUN:   -o - | FileCheck --check-prefix=CHECK-ZALASR-EXT %s1545// RUN: %clang --target=riscv64 -menable-experimental-extensions \1546// RUN:   -march=rv64i_zalasr0p9 -E -dM %s \1547// RUN:   -o - | FileCheck --check-prefix=CHECK-ZALASR-EXT %s1548// CHECK-ZALASR-EXT: __riscv_zalasr 9000{{$}}1549 1550// RUN: %clang --target=riscv32 -menable-experimental-extensions \1551// RUN:   -march=rv32izfbfmin1p0 -E -dM %s \1552// RUN:   -o - | FileCheck --check-prefix=CHECK-ZFBFMIN-EXT %s1553// RUN: %clang --target=riscv64 -menable-experimental-extensions \1554// RUN:   -march=rv64izfbfmin1p0 -E -dM %s \1555// RUN:   -o - | FileCheck --check-prefix=CHECK-ZFBFMIN-EXT %s1556// CHECK-ZFBFMIN-EXT: __riscv_zfbfmin 1000000{{$}}1557 1558// RUN: %clang --target=riscv32 -menable-experimental-extensions \1559// RUN:   -march=rv32i_zicfilp1p0 -E -dM %s \1560// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICFILP-EXT %s1561// RUN: %clang --target=riscv64 -menable-experimental-extensions \1562// RUN:   -march=rv64i_zicfilp1p0 -E -dM %s \1563// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICFILP-EXT %s1564// CHECK-ZICFILP-EXT: __riscv_zicfilp 1000000{{$}}1565 1566// RUN: %clang --target=riscv32-unknown-linux-gnu \1567// RUN:   -march=rv32iztso1p0 -E -dM %s \1568// RUN:   -o - | FileCheck --check-prefix=CHECK-ZTSO-EXT %s1569// RUN: %clang --target=riscv64-unknown-linux-gnu \1570// RUN:   -march=rv64iztso1p0 -E -dM %s \1571// RUN:   -o - | FileCheck --check-prefix=CHECK-ZTSO-EXT %s1572// CHECK-ZTSO-EXT: __riscv_ztso 1000000{{$}}1573 1574// RUN: %clang --target=riscv32 -menable-experimental-extensions \1575// RUN:   -march=rv32ifzvfbfa0p1 -E -dM %s \1576// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVFBFA-EXT %s1577// RUN: %clang --target=riscv64 -menable-experimental-extensions \1578// RUN:   -march=rv64ifzvfbfa0p1 -E -dM %s \1579// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVFBFA-EXT %s1580// CHECK-ZVFBFA-EXT: __riscv_zvfbfa 1000{{$}}1581 1582// RUN: %clang --target=riscv32 -menable-experimental-extensions \1583// RUN:   -march=rv32ifzvfofp8min0p2 -E -dM %s \1584// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVFOFP8MIN-EXT %s1585// RUN: %clang --target=riscv64 -menable-experimental-extensions \1586// RUN:   -march=rv64ifzvfofp8min0p2 -E -dM %s \1587// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVFOFP8MIN-EXT %s1588// CHECK-ZVFOFP8MIN-EXT: __riscv_zvfofp8min 2000{{$}}1589 1590// RUN: %clang --target=riscv32 -menable-experimental-extensions \1591// RUN:   -march=rv32i_zve32x_zvbc32e0p7 -E -dM %s \1592// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVBC32E-EXT %s1593// RUN: %clang --target=riscv64 -menable-experimental-extensions \1594// RUN:   -march=rv64i_zve32x_zvbc32e0p7 -E -dM %s \1595// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVBC32E-EXT %s1596// CHECK-ZVBC32E-EXT: __riscv_zvbc32e 7000{{$}}1597 1598// RUN: %clang --target=riscv32 -menable-experimental-extensions \1599// RUN:   -march=rv32ifzvfbfmin1p0 -E -dM %s \1600// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVFBFMIN-EXT %s1601// RUN: %clang --target=riscv64 -menable-experimental-extensions \1602// RUN:   -march=rv64ifzvfbfmin1p0 -E -dM %s \1603// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVFBFMIN-EXT %s1604// CHECK-ZVFBFMIN-EXT: __riscv_zvfbfmin 1000000{{$}}1605 1606// RUN: %clang --target=riscv32 -menable-experimental-extensions \1607// RUN:   -march=rv32ifzvfbfwma1p0 -E -dM %s \1608// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVFBFWMA-EXT %s1609// RUN: %clang --target=riscv64 -menable-experimental-extensions \1610// RUN:   -march=rv64ifzvfbfwma1p0 -E -dM %s \1611// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVFBFWMA-EXT %s1612// CHECK-ZVFBFWMA-EXT: __riscv_zvfbfwma 1000000{{$}}1613 1614// RUN: %clang --target=riscv32 -menable-experimental-extensions \1615// RUN:   -march=rv32i_zve32x_zvkgs0p7 -E -dM %s \1616// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKGS-EXT %s1617// RUN: %clang --target=riscv64 -menable-experimental-extensions \1618// RUN:   -march=rv64i_zve32x_zvkgs0p7 -E -dM %s \1619// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVKGS-EXT %s1620// CHECK-ZVKGS-EXT: __riscv_zvkgs 7000{{$}}1621 1622// RUN: %clang --target=riscv32 -menable-experimental-extensions \1623// RUN:   -march=rv32i_zve32x_zvqdotq0p0 -E -dM %s \1624// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVQDOTQ-EXT %s1625// RUN: %clang --target=riscv64 -menable-experimental-extensions \1626// RUN:   -march=rv64i_zve32x_zvqdotq0p0 -E -dM %s \1627// RUN:   -o - | FileCheck --check-prefix=CHECK-ZVQDOTQ-EXT %s1628// CHECK-ZVQDOTQ-EXT: __riscv_zvqdotq 0{{$}}1629 1630// RUN: %clang -target riscv32 -menable-experimental-extensions \1631// RUN:   -march=rv32izicfiss1p0 -E -dM %s \1632// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICFISS-EXT %s1633// RUN: %clang -target riscv64 -menable-experimental-extensions \1634// RUN:   -march=rv64izicfiss1p0 -E -dM %s \1635// RUN:   -o - | FileCheck --check-prefix=CHECK-ZICFISS-EXT %s1636// CHECK-ZICFISS-EXT: __riscv_zicfiss 1000000{{$}}1637 1638// RUN: %clang --target=riscv32 \1639// RUN:   -march=rv32i_ssnpm1p0 -E -dM %s \1640// RUN:   -o - | FileCheck --check-prefix=CHECK-SSNPM-EXT %s1641// RUN: %clang --target=riscv64 \1642// RUN:   -march=rv64i_ssnpm1p0 -E -dM %s \1643// RUN:   -o - | FileCheck --check-prefix=CHECK-SSNPM-EXT %s1644// CHECK-SSNPM-EXT: __riscv_ssnpm 1000000{{$}}1645 1646// RUN: %clang --target=riscv32 -menable-experimental-extensions \1647// RUN:   -march=rv32i_smnpm1p0 -E -dM %s \1648// RUN:   -o - | FileCheck --check-prefix=CHECK-SMNPM-EXT %s1649// RUN: %clang --target=riscv64 -menable-experimental-extensions \1650// RUN:   -march=rv64i_smnpm1p0 -E -dM %s \1651// RUN:   -o - | FileCheck --check-prefix=CHECK-SMNPM-EXT %s1652// CHECK-SMNPM-EXT: __riscv_smnpm 1000000{{$}}1653 1654// RUN: %clang --target=riscv32 \1655// RUN:   -march=rv32i_smmpm1p0 -E -dM %s \1656// RUN:   -o - | FileCheck --check-prefix=CHECK-SMMPM-EXT %s1657// RUN: %clang --target=riscv64 \1658// RUN:   -march=rv64i_smmpm1p0 -E -dM %s \1659// RUN:   -o - | FileCheck --check-prefix=CHECK-SMMPM-EXT %s1660// CHECK-SMMPM-EXT: __riscv_smmpm 1000000{{$}}1661 1662// RUN: %clang --target=riscv32 \1663// RUN:   -march=rv32i_sspm1p0 -E -dM %s \1664// RUN:   -o - | FileCheck --check-prefix=CHECK-SSPM-EXT %s1665// RUN: %clang --target=riscv64 \1666// RUN:   -march=rv64i_sspm1p0 -E -dM %s \1667// RUN:   -o - | FileCheck --check-prefix=CHECK-SSPM-EXT %s1668// CHECK-SSPM-EXT: __riscv_sspm 1000000{{$}}1669 1670// RUN: %clang --target=riscv32 \1671// RUN:   -march=rv32i_supm1p0 -E -dM %s \1672// RUN:   -o - | FileCheck --check-prefix=CHECK-SUPM-EXT %s1673// RUN: %clang --target=riscv64 \1674// RUN:   -march=rv64i_supm1p0 -E -dM %s \1675// RUN:   -o - | FileCheck --check-prefix=CHECK-SUPM-EXT %s1676// CHECK-SUPM-EXT: __riscv_supm 1000000{{$}}1677 1678// RUN: %clang --target=riscv32 -menable-experimental-extensions \1679// RUN:   -march=rv32i_sdext1p0 -E -dM %s \1680// RUN:   -o - | FileCheck --check-prefix=CHECK-SDEXT-EXT %s1681// RUN: %clang --target=riscv64 -menable-experimental-extensions \1682// RUN:   -march=rv64i_sdext1p0 -E -dM %s \1683// RUN:   -o - | FileCheck --check-prefix=CHECK-SDEXT-EXT %s1684// CHECK-SDEXT-EXT: __riscv_sdext 1000000{{$}}1685 1686// RUN: %clang --target=riscv32 -menable-experimental-extensions \1687// RUN:   -march=rv32i_sdtrig1p0 -E -dM %s \1688// RUN:   -o - | FileCheck --check-prefix=CHECK-SDTRIG-EXT %s1689// RUN: %clang --target=riscv64 -menable-experimental-extensions \1690// RUN:   -march=rv64i_sdtrig1p0 -E -dM %s \1691// RUN:   -o - | FileCheck --check-prefix=CHECK-SDTRIG-EXT %s1692// CHECK-SDTRIG-EXT: __riscv_sdtrig 1000000{{$}}1693 1694// RUN: %clang --target=riscv32 -menable-experimental-extensions \1695// RUN:   -march=rv32i_smctr1p0 -E -dM %s \1696// RUN:   -o - | FileCheck --check-prefix=CHECK-SMCTR-EXT %s1697// RUN: %clang --target=riscv64 -menable-experimental-extensions \1698// RUN:   -march=rv64i_smctr1p0 -E -dM %s \1699// RUN:   -o - | FileCheck --check-prefix=CHECK-SMCTR-EXT %s1700// CHECK-SMCTR-EXT: __riscv_smctr 1000000{{$}}1701 1702// RUN: %clang --target=riscv32 -menable-experimental-extensions \1703// RUN:   -march=rv32i_ssctr1p0 -E -dM %s \1704// RUN:   -o - | FileCheck --check-prefix=CHECK-SSCTR-EXT %s1705// RUN: %clang --target=riscv64 -menable-experimental-extensions \1706// RUN:   -march=rv64i_ssctr1p0 -E -dM %s \1707// RUN:   -o - | FileCheck --check-prefix=CHECK-SSCTR-EXT %s1708// CHECK-SSCTR-EXT: __riscv_ssctr 1000000{{$}}1709 1710// RUN: %clang --target=riscv32 -menable-experimental-extensions \1711// RUN:   -march=rv32i_svukte0p3 -E -dM %s \1712// RUN:   -o - | FileCheck --check-prefix=CHECK-SVUKTE-EXT %s1713// RUN: %clang --target=riscv64 -menable-experimental-extensions \1714// RUN:   -march=rv64i_svukte0p3 -E -dM %s \1715// RUN:   -o - | FileCheck --check-prefix=CHECK-SVUKTE-EXT %s1716// CHECK-SVUKTE-EXT: __riscv_svukte 3000{{$}}1717 1718// Misaligned1719 1720// RUN: %clang --target=riscv32-unknown-linux-gnu -march=rv32i -E -dM %s \1721// RUN:   -o - | FileCheck %s --check-prefix=CHECK-MISALIGNED-AVOID1722// RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64i -E -dM %s \1723// RUN:   -o - | FileCheck %s --check-prefix=CHECK-MISALIGNED-AVOID1724// CHECK-MISALIGNED-AVOID: __riscv_misaligned_avoid 11725 1726// RUN: %clang --target=riscv32-unknown-linux-gnu -march=rv32i -E -dM %s \1727// RUN:   -mno-strict-align -o - | FileCheck %s --check-prefix=CHECK-MISALIGNED-FAST1728// RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64i -E -dM %s \1729// RUN:   -mno-strict-align -o - | FileCheck %s --check-prefix=CHECK-MISALIGNED-FAST1730// RUN: %clang --target=riscv64-unknown-linux-gnu -mcpu=sifive-p450 -E -dM %s \1731// RUN:  -o - | FileCheck %s --check-prefix=CHECK-MISALIGNED-FAST1732// CHECK-MISALIGNED-FAST: __riscv_misaligned_fast 11733