blob: d377bda059d335e07962e081906472bd95563907 [file] [log] [blame]
; RUN: llc -mtriple=riscv32 -mattr=help 2>&1 | FileCheck %s
; RUN: llc -mtriple=riscv64 -mattr=help 2>&1 | FileCheck %s
; CHECK: Available features for this target:
; CHECK-EMPTY:
; CHECK-NEXT: 32bit - Implements RV32.
; CHECK-NEXT: 64bit - Implements RV64.
; CHECK-NEXT: a - 'A' (Atomic Instructions).
; CHECK-NEXT: auipc-addi-fusion - Enable AUIPC+ADDI macrofusion.
; CHECK-NEXT: b - 'B' (the collection of the Zba, Zbb, Zbs extensions).
; CHECK-NEXT: c - 'C' (Compressed Instructions).
; CHECK-NEXT: conditional-cmv-fusion - Enable branch+c.mv fusion.
; CHECK-NEXT: d - 'D' (Double-Precision Floating-Point).
; CHECK-NEXT: disable-latency-sched-heuristic - Disable latency scheduling heuristic.
; CHECK-NEXT: dlen-factor-2 - Vector unit DLEN(data path width) is half of VLEN.
; CHECK-NEXT: e - 'E' (Embedded Instruction Set with 16 GPRs).
; CHECK-NEXT: exact-asm - Enable Exact Assembly (Disables Compression and Relaxation).
; CHECK-NEXT: experimental - Experimental intrinsics.
; CHECK-NEXT: experimental-p - 'P' ('Base P' (Packed SIMD)).
; CHECK-NEXT: experimental-rvm23u32 - RISC-V experimental-rvm23u32 profile.
; CHECK-NEXT: experimental-smctr - 'Smctr' (Control Transfer Records Machine Level).
; CHECK-NEXT: experimental-ssctr - 'Ssctr' (Control Transfer Records Supervisor Level).
; CHECK-NEXT: experimental-svukte - 'Svukte' (Address-Independent Latency of User-Mode Faults to Supervisor Addresses).
; CHECK-NEXT: experimental-xqccmp - 'Xqccmp' (Qualcomm 16-bit Push/Pop and Double Moves).
; CHECK-NEXT: experimental-xqcia - 'Xqcia' (Qualcomm uC Arithmetic Extension).
; CHECK-NEXT: experimental-xqciac - 'Xqciac' (Qualcomm uC Load-Store Address Calculation Extension).
; CHECK-NEXT: experimental-xqcibi - 'Xqcibi' (Qualcomm uC Branch Immediate Extension).
; CHECK-NEXT: experimental-xqcibm - 'Xqcibm' (Qualcomm uC Bit Manipulation Extension).
; CHECK-NEXT: experimental-xqcicli - 'Xqcicli' (Qualcomm uC Conditional Load Immediate Extension).
; CHECK-NEXT: experimental-xqcicm - 'Xqcicm' (Qualcomm uC Conditional Move Extension).
; CHECK-NEXT: experimental-xqcics - 'Xqcics' (Qualcomm uC Conditional Select Extension).
; CHECK-NEXT: experimental-xqcicsr - 'Xqcicsr' (Qualcomm uC CSR Extension).
; CHECK-NEXT: experimental-xqciint - 'Xqciint' (Qualcomm uC Interrupts Extension).
; CHECK-NEXT: experimental-xqciio - 'Xqciio' (Qualcomm uC External Input Output Extension).
; CHECK-NEXT: experimental-xqcilb - 'Xqcilb' (Qualcomm uC Long Branch Extension).
; CHECK-NEXT: experimental-xqcili - 'Xqcili' (Qualcomm uC Load Large Immediate Extension).
; CHECK-NEXT: experimental-xqcilia - 'Xqcilia' (Qualcomm uC Large Immediate Arithmetic Extension).
; CHECK-NEXT: experimental-xqcilo - 'Xqcilo' (Qualcomm uC Large Offset Load Store Extension).
; CHECK-NEXT: experimental-xqcilsm - 'Xqcilsm' (Qualcomm uC Load Store Multiple Extension).
; CHECK-NEXT: experimental-xqcisim - 'Xqcisim' (Qualcomm uC Simulation Hint Extension).
; CHECK-NEXT: experimental-xqcisls - 'Xqcisls' (Qualcomm uC Scaled Load Store Extension).
; CHECK-NEXT: experimental-xqcisync - 'Xqcisync' (Qualcomm uC Sync Delay Extension).
; CHECK-NEXT: experimental-xrivosvisni - 'XRivosVisni' (Rivos Vector Integer Small New).
; CHECK-NEXT: experimental-xrivosvizip - 'XRivosVizip' (Rivos Vector Register Zips).
; CHECK-NEXT: experimental-zalasr - 'Zalasr' (Load-Acquire and Store-Release Instructions).
; CHECK-NEXT: experimental-zicfilp - 'Zicfilp' (Landing pad).
; CHECK-NEXT: experimental-zicfiss - 'Zicfiss' (Shadow stack).
; CHECK-NEXT: experimental-zvbc32e - 'Zvbc32e' (Vector Carryless Multiplication with 32-bits elements).
; CHECK-NEXT: experimental-zvkgs - 'Zvkgs' (Vector-Scalar GCM instructions for Cryptography).
; CHECK-NEXT: experimental-zvqdotq - 'Zvqdotq' (Vector quad widening 4D Dot Product).
; CHECK-NEXT: f - 'F' (Single-Precision Floating-Point).
; CHECK-NEXT: forced-atomics - Assume that lock-free native-width atomics are available.
; CHECK-NEXT: h - 'H' (Hypervisor).
; CHECK-NEXT: i - 'I' (Base Integer Instruction Set).
; CHECK-NEXT: ld-add-fusion - Enable LD+ADD macrofusion.
; CHECK-NEXT: log-vrgather - Has vrgather.vv with LMUL*log2(LMUL) latency
; CHECK-NEXT: lui-addi-fusion - Enable LUI+ADDI macro fusion.
; CHECK-NEXT: m - 'M' (Integer Multiplication and Division).
; CHECK-NEXT: mips-p8700 - MIPS p8700 processor.
; CHECK-NEXT: no-default-unroll - Disable default unroll preference..
; CHECK-NEXT: no-rvc-hints - Disable RVC Hint Instructions..
; CHECK-NEXT: no-sink-splat-operands - Disable sink splat operands to enable .vx, .vf,.wx, and .wf instructions.
; CHECK-NEXT: no-trailing-seq-cst-fence - Disable trailing fence for seq-cst store..
; CHECK-NEXT: optimized-nf2-segment-load-store - vlseg2eN.v and vsseg2eN.v are implemented as a wide memory op and shuffle.
; CHECK-NEXT: optimized-nf3-segment-load-store - vlseg3eN.v and vsseg3eN.v are implemented as a wide memory op and shuffle.
; CHECK-NEXT: optimized-nf4-segment-load-store - vlseg4eN.v and vsseg4eN.v are implemented as a wide memory op and shuffle.
; CHECK-NEXT: optimized-nf5-segment-load-store - vlseg5eN.v and vsseg5eN.v are implemented as a wide memory op and shuffle.
; CHECK-NEXT: optimized-nf6-segment-load-store - vlseg6eN.v and vsseg6eN.v are implemented as a wide memory op and shuffle.
; CHECK-NEXT: optimized-nf7-segment-load-store - vlseg7eN.v and vsseg7eN.v are implemented as a wide memory op and shuffle.
; CHECK-NEXT: optimized-nf8-segment-load-store - vlseg8eN.v and vsseg8eN.v are implemented as a wide memory op and shuffle.
; CHECK-NEXT: optimized-zero-stride-load - Optimized (perform fewer memory operations)zero-stride vector load.
; CHECK-NEXT: predictable-select-expensive - Prefer likely predicted branches over selects.
; CHECK-NEXT: prefer-vsetvli-over-read-vlenb - Prefer vsetvli over read vlenb CSR to calculate VLEN.
; CHECK-NEXT: prefer-w-inst - Prefer instructions with W suffix.
; CHECK-NEXT: relax - Enable Linker relaxation..
; CHECK-NEXT: reserve-x1 - Reserve X1.
; CHECK-NEXT: reserve-x10 - Reserve X10.
; CHECK-NEXT: reserve-x11 - Reserve X11.
; CHECK-NEXT: reserve-x12 - Reserve X12.
; CHECK-NEXT: reserve-x13 - Reserve X13.
; CHECK-NEXT: reserve-x14 - Reserve X14.
; CHECK-NEXT: reserve-x15 - Reserve X15.
; CHECK-NEXT: reserve-x16 - Reserve X16.
; CHECK-NEXT: reserve-x17 - Reserve X17.
; CHECK-NEXT: reserve-x18 - Reserve X18.
; CHECK-NEXT: reserve-x19 - Reserve X19.
; CHECK-NEXT: reserve-x2 - Reserve X2.
; CHECK-NEXT: reserve-x20 - Reserve X20.
; CHECK-NEXT: reserve-x21 - Reserve X21.
; CHECK-NEXT: reserve-x22 - Reserve X22.
; CHECK-NEXT: reserve-x23 - Reserve X23.
; CHECK-NEXT: reserve-x24 - Reserve X24.
; CHECK-NEXT: reserve-x25 - Reserve X25.
; CHECK-NEXT: reserve-x26 - Reserve X26.
; CHECK-NEXT: reserve-x27 - Reserve X27.
; CHECK-NEXT: reserve-x28 - Reserve X28.
; CHECK-NEXT: reserve-x29 - Reserve X29.
; CHECK-NEXT: reserve-x3 - Reserve X3.
; CHECK-NEXT: reserve-x30 - Reserve X30.
; CHECK-NEXT: reserve-x31 - Reserve X31.
; CHECK-NEXT: reserve-x4 - Reserve X4.
; CHECK-NEXT: reserve-x5 - Reserve X5.
; CHECK-NEXT: reserve-x6 - Reserve X6.
; CHECK-NEXT: reserve-x7 - Reserve X7.
; CHECK-NEXT: reserve-x8 - Reserve X8.
; CHECK-NEXT: reserve-x9 - Reserve X9.
; CHECK-NEXT: rva20s64 - RISC-V rva20s64 profile.
; CHECK-NEXT: rva20u64 - RISC-V rva20u64 profile.
; CHECK-NEXT: rva22s64 - RISC-V rva22s64 profile.
; CHECK-NEXT: rva22u64 - RISC-V rva22u64 profile.
; CHECK-NEXT: rva23s64 - RISC-V rva23s64 profile.
; CHECK-NEXT: rva23u64 - RISC-V rva23u64 profile.
; CHECK-NEXT: rvb23s64 - RISC-V rvb23s64 profile.
; CHECK-NEXT: rvb23u64 - RISC-V rvb23u64 profile.
; CHECK-NEXT: rvi20u32 - RISC-V rvi20u32 profile.
; CHECK-NEXT: rvi20u64 - RISC-V rvi20u64 profile.
; CHECK-NEXT: save-restore - Enable save/restore..
; CHECK-NEXT: sdext - 'Sdext' (External debugger).
; CHECK-NEXT: sdtrig - 'Sdtrig' (Debugger triggers).
; CHECK-NEXT: sha - 'Sha' (Augmented Hypervisor).
; CHECK-NEXT: shcounterenw - 'Shcounterenw' (Support writeable hcounteren enable bit for any hpmcounter that is not read-only zero).
; CHECK-NEXT: shgatpa - 'Shgatpa' (SvNNx4 mode supported for all modes supported by satp, as well as Bare).
; CHECK-NEXT: shifted-zextw-fusion - Enable SLLI+SRLI to be fused when computing (shifted) word zero extension.
; CHECK-NEXT: short-forward-branch-opt - Enable short forward branch optimization.
; CHECK-NEXT: shtvala - 'Shtvala' (htval provides all needed values).
; CHECK-NEXT: shvsatpa - 'Shvsatpa' (vsatp supports all modes supported by satp).
; CHECK-NEXT: shvstvala - 'Shvstvala' (vstval provides all needed values).
; CHECK-NEXT: shvstvecd - 'Shvstvecd' (vstvec supports Direct mode).
; CHECK-NEXT: sifive7 - SiFive 7-Series processors.
; CHECK-NEXT: smaia - 'Smaia' (Advanced Interrupt Architecture Machine Level).
; CHECK-NEXT: smcdeleg - 'Smcdeleg' (Counter Delegation Machine Level).
; CHECK-NEXT: smcsrind - 'Smcsrind' (Indirect CSR Access Machine Level).
; CHECK-NEXT: smdbltrp - 'Smdbltrp' (Double Trap Machine Level).
; CHECK-NEXT: smepmp - 'Smepmp' (Enhanced Physical Memory Protection).
; CHECK-NEXT: smmpm - 'Smmpm' (Machine-level Pointer Masking for M-mode).
; CHECK-NEXT: smnpm - 'Smnpm' (Machine-level Pointer Masking for next lower privilege mode).
; CHECK-NEXT: smrnmi - 'Smrnmi' (Resumable Non-Maskable Interrupts).
; CHECK-NEXT: smstateen - 'Smstateen' (Machine-mode view of the state-enable extension).
; CHECK-NEXT: ssaia - 'Ssaia' (Advanced Interrupt Architecture Supervisor Level).
; CHECK-NEXT: ssccfg - 'Ssccfg' (Counter Configuration Supervisor Level).
; CHECK-NEXT: ssccptr - 'Ssccptr' (Main memory supports page table reads).
; CHECK-NEXT: sscofpmf - 'Sscofpmf' (Count Overflow and Mode-Based Filtering).
; CHECK-NEXT: sscounterenw - 'Sscounterenw' (Support writeable scounteren enable bit for any hpmcounter that is not read-only zero).
; CHECK-NEXT: sscsrind - 'Sscsrind' (Indirect CSR Access Supervisor Level).
; CHECK-NEXT: ssdbltrp - 'Ssdbltrp' (Double Trap Supervisor Level).
; CHECK-NEXT: ssnpm - 'Ssnpm' (Supervisor-level Pointer Masking for next lower privilege mode).
; CHECK-NEXT: sspm - 'Sspm' (Indicates Supervisor-mode Pointer Masking).
; CHECK-NEXT: ssqosid - 'Ssqosid' (Quality-of-Service (QoS) Identifiers).
; CHECK-NEXT: ssstateen - 'Ssstateen' (Supervisor-mode view of the state-enable extension).
; CHECK-NEXT: ssstrict - 'Ssstrict' (No non-conforming extensions are present).
; CHECK-NEXT: sstc - 'Sstc' (Supervisor-mode timer interrupts).
; CHECK-NEXT: sstvala - 'Sstvala' (stval provides all needed values).
; CHECK-NEXT: sstvecd - 'Sstvecd' (stvec supports Direct mode).
; CHECK-NEXT: ssu64xl - 'Ssu64xl' (UXLEN=64 supported).
; CHECK-NEXT: supm - 'Supm' (Indicates User-mode Pointer Masking).
; CHECK-NEXT: svade - 'Svade' (Raise exceptions on improper A/D bits).
; CHECK-NEXT: svadu - 'Svadu' (Hardware A/D updates).
; CHECK-NEXT: svbare - 'Svbare' (satp mode Bare supported).
; CHECK-NEXT: svinval - 'Svinval' (Fine-Grained Address-Translation Cache Invalidation).
; CHECK-NEXT: svnapot - 'Svnapot' (NAPOT Translation Contiguity).
; CHECK-NEXT: svpbmt - 'Svpbmt' (Page-Based Memory Types).
; CHECK-NEXT: svvptc - 'Svvptc' (Obviating Memory-Management Instructions after Marking PTEs Valid).
; CHECK-NEXT: tagged-globals - Use an instruction sequence for taking the address of a global that allows a memory tag in the upper address bits.
; CHECK-NEXT: unaligned-scalar-mem - Has reasonably performant unaligned scalar loads and stores.
; CHECK-NEXT: unaligned-vector-mem - Has reasonably performant unaligned vector loads and stores.
; CHECK-NEXT: use-postra-scheduler - Schedule again after register allocation.
; CHECK-NEXT: v - 'V' (Vector Extension for Application Processors).
; CHECK-NEXT: ventana-veyron - Ventana Veyron-Series processors.
; CHECK-NEXT: vxrm-pipeline-flush - VXRM writes causes pipeline flush.
; CHECK-NEXT: xcvalu - 'XCValu' (CORE-V ALU Operations).
; CHECK-NEXT: xcvbi - 'XCVbi' (CORE-V Immediate Branching).
; CHECK-NEXT: xcvbitmanip - 'XCVbitmanip' (CORE-V Bit Manipulation).
; CHECK-NEXT: xcvelw - 'XCVelw' (CORE-V Event Load Word).
; CHECK-NEXT: xcvmac - 'XCVmac' (CORE-V Multiply-Accumulate).
; CHECK-NEXT: xcvmem - 'XCVmem' (CORE-V Post-incrementing Load & Store).
; CHECK-NEXT: xcvsimd - 'XCVsimd' (CORE-V SIMD ALU).
; CHECK-NEXT: xmipscmov - 'XMIPSCMov' (MIPS conditional move instruction (mips.ccmov)).
; CHECK-NEXT: xmipslsp - 'XMIPSLSP' (MIPS optimization for hardware load-store bonding).
; CHECK-NEXT: xsfcease - 'XSfcease' (SiFive sf.cease Instruction).
; CHECK-NEXT: xsfvcp - 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions).
; CHECK-NEXT: xsfvfnrclipxfqf - 'XSfvfnrclipxfqf' (SiFive FP32-to-int8 Ranged Clip Instructions).
; CHECK-NEXT: xsfvfwmaccqqq - 'XSfvfwmaccqqq' (SiFive Matrix Multiply Accumulate Instruction and 4-by-4)).
; CHECK-NEXT: xsfvqmaccdod - 'XSfvqmaccdod' (SiFive Int8 Matrix Multiplication Instructions (2-by-8 and 8-by-2)).
; CHECK-NEXT: xsfvqmaccqoq - 'XSfvqmaccqoq' (SiFive Int8 Matrix Multiplication Instructions (4-by-8 and 8-by-4)).
; CHECK-NEXT: xsifivecdiscarddlone - 'XSiFivecdiscarddlone' (SiFive sf.cdiscard.d.l1 Instruction).
; CHECK-NEXT: xsifivecflushdlone - 'XSiFivecflushdlone' (SiFive sf.cflush.d.l1 Instruction).
; CHECK-NEXT: xtheadba - 'XTHeadBa' (T-Head address calculation instructions).
; CHECK-NEXT: xtheadbb - 'XTHeadBb' (T-Head basic bit-manipulation instructions).
; CHECK-NEXT: xtheadbs - 'XTHeadBs' (T-Head single-bit instructions).
; CHECK-NEXT: xtheadcmo - 'XTHeadCmo' (T-Head cache management instructions).
; CHECK-NEXT: xtheadcondmov - 'XTHeadCondMov' (T-Head conditional move instructions).
; CHECK-NEXT: xtheadfmemidx - 'XTHeadFMemIdx' (T-Head FP Indexed Memory Operations).
; CHECK-NEXT: xtheadmac - 'XTHeadMac' (T-Head Multiply-Accumulate Instructions).
; CHECK-NEXT: xtheadmemidx - 'XTHeadMemIdx' (T-Head Indexed Memory Operations).
; CHECK-NEXT: xtheadmempair - 'XTHeadMemPair' (T-Head two-GPR Memory Operations).
; CHECK-NEXT: xtheadsync - 'XTHeadSync' (T-Head multicore synchronization instructions).
; CHECK-NEXT: xtheadvdot - 'XTHeadVdot' (T-Head Vector Extensions for Dot).
; CHECK-NEXT: xventanacondops - 'XVentanaCondOps' (Ventana Conditional Ops).
; CHECK-NEXT: xwchc - 'Xwchc' (WCH/QingKe additional compressed opcodes).
; CHECK-NEXT: za128rs - 'Za128rs' (Reservation Set Size of at Most 128 Bytes).
; CHECK-NEXT: za64rs - 'Za64rs' (Reservation Set Size of at Most 64 Bytes).
; CHECK-NEXT: zaamo - 'Zaamo' (Atomic Memory Operations).
; CHECK-NEXT: zabha - 'Zabha' (Byte and Halfword Atomic Memory Operations).
; CHECK-NEXT: zacas - 'Zacas' (Atomic Compare-And-Swap Instructions).
; CHECK-NEXT: zalrsc - 'Zalrsc' (Load-Reserved/Store-Conditional).
; CHECK-NEXT: zama16b - 'Zama16b' (Atomic 16-byte misaligned loads, stores and AMOs).
; CHECK-NEXT: zawrs - 'Zawrs' (Wait on Reservation Set).
; CHECK-NEXT: zba - 'Zba' (Address Generation Instructions).
; CHECK-NEXT: zbb - 'Zbb' (Basic Bit-Manipulation).
; CHECK-NEXT: zbc - 'Zbc' (Carry-Less Multiplication).
; CHECK-NEXT: zbkb - 'Zbkb' (Bitmanip instructions for Cryptography).
; CHECK-NEXT: zbkc - 'Zbkc' (Carry-less multiply instructions for Cryptography).
; CHECK-NEXT: zbkx - 'Zbkx' (Crossbar permutation instructions).
; CHECK-NEXT: zbs - 'Zbs' (Single-Bit Instructions).
; CHECK-NEXT: zca - 'Zca' (part of the C extension, excluding compressed floating point loads/stores).
; CHECK-NEXT: zcb - 'Zcb' (Compressed basic bit manipulation instructions).
; CHECK-NEXT: zcd - 'Zcd' (Compressed Double-Precision Floating-Point Instructions).
; CHECK-NEXT: zce - 'Zce' (Compressed extensions for microcontrollers).
; CHECK-NEXT: zcf - 'Zcf' (Compressed Single-Precision Floating-Point Instructions).
; CHECK-NEXT: zclsd - 'Zclsd' (Compressed Load/Store Pair Instructions).
; CHECK-NEXT: zcmop - 'Zcmop' (Compressed May-Be-Operations).
; CHECK-NEXT: zcmp - 'Zcmp' (sequenced instructions for code-size reduction).
; CHECK-NEXT: zcmt - 'Zcmt' (table jump instructions for code-size reduction).
; CHECK-NEXT: zdinx - 'Zdinx' (Double in Integer).
; CHECK-NEXT: zexth-fusion - Enable SLLI+SRLI to be fused to zero extension of halfword.
; CHECK-NEXT: zextw-fusion - Enable SLLI+SRLI to be fused to zero extension of word.
; CHECK-NEXT: zfa - 'Zfa' (Additional Floating-Point).
; CHECK-NEXT: zfbfmin - 'Zfbfmin' (Scalar BF16 Converts).
; CHECK-NEXT: zfh - 'Zfh' (Half-Precision Floating-Point).
; CHECK-NEXT: zfhmin - 'Zfhmin' (Half-Precision Floating-Point Minimal).
; CHECK-NEXT: zfinx - 'Zfinx' (Float in Integer).
; CHECK-NEXT: zhinx - 'Zhinx' (Half Float in Integer).
; CHECK-NEXT: zhinxmin - 'Zhinxmin' (Half Float in Integer Minimal).
; CHECK-NEXT: zic64b - 'Zic64b' (Cache Block Size Is 64 Bytes).
; CHECK-NEXT: zicbom - 'Zicbom' (Cache-Block Management Instructions).
; CHECK-NEXT: zicbop - 'Zicbop' (Cache-Block Prefetch Instructions).
; CHECK-NEXT: zicboz - 'Zicboz' (Cache-Block Zero Instructions).
; CHECK-NEXT: ziccamoa - 'Ziccamoa' (Main Memory Supports All Atomics in A).
; CHECK-NEXT: ziccif - 'Ziccif' (Main Memory Supports Instruction Fetch with Atomicity Requirement).
; CHECK-NEXT: zicclsm - 'Zicclsm' (Main Memory Supports Misaligned Loads/Stores).
; CHECK-NEXT: ziccrse - 'Ziccrse' (Main Memory Supports Forward Progress on LR/SC Sequences).
; CHECK-NEXT: zicntr - 'Zicntr' (Base Counters and Timers).
; CHECK-NEXT: zicond - 'Zicond' (Integer Conditional Operations).
; CHECK-NEXT: zicsr - 'Zicsr' (CSRs).
; CHECK-NEXT: zifencei - 'Zifencei' (fence.i).
; CHECK-NEXT: zihintntl - 'Zihintntl' (Non-Temporal Locality Hints).
; CHECK-NEXT: zihintpause - 'Zihintpause' (Pause Hint).
; CHECK-NEXT: zihpm - 'Zihpm' (Hardware Performance Counters).
; CHECK-NEXT: zilsd - 'Zilsd' (Load/Store Pair Instructions).
; CHECK-NEXT: zimop - 'Zimop' (May-Be-Operations).
; CHECK-NEXT: zk - 'Zk' (Standard scalar cryptography extension).
; CHECK-NEXT: zkn - 'Zkn' (NIST Algorithm Suite).
; CHECK-NEXT: zknd - 'Zknd' (NIST Suite: AES Decryption).
; CHECK-NEXT: zkne - 'Zkne' (NIST Suite: AES Encryption).
; CHECK-NEXT: zknh - 'Zknh' (NIST Suite: Hash Function Instructions).
; CHECK-NEXT: zkr - 'Zkr' (Entropy Source Extension).
; CHECK-NEXT: zks - 'Zks' (ShangMi Algorithm Suite).
; CHECK-NEXT: zksed - 'Zksed' (ShangMi Suite: SM4 Block Cipher Instructions).
; CHECK-NEXT: zksh - 'Zksh' (ShangMi Suite: SM3 Hash Function Instructions).
; CHECK-NEXT: zkt - 'Zkt' (Data Independent Execution Latency).
; CHECK-NEXT: zmmul - 'Zmmul' (Integer Multiplication).
; CHECK-NEXT: ztso - 'Ztso' (Memory Model - Total Store Order).
; CHECK-NEXT: zvbb - 'Zvbb' (Vector basic bit-manipulation instructions).
; CHECK-NEXT: zvbc - 'Zvbc' (Vector Carryless Multiplication).
; CHECK-NEXT: zve32f - 'Zve32f' (Vector Extensions for Embedded Processors with maximal 32 EEW and F extension).
; CHECK-NEXT: zve32x - 'Zve32x' (Vector Extensions for Embedded Processors with maximal 32 EEW).
; CHECK-NEXT: zve64d - 'Zve64d' (Vector Extensions for Embedded Processors with maximal 64 EEW, F and D extension).
; CHECK-NEXT: zve64f - 'Zve64f' (Vector Extensions for Embedded Processors with maximal 64 EEW and F extension).
; CHECK-NEXT: zve64x - 'Zve64x' (Vector Extensions for Embedded Processors with maximal 64 EEW).
; CHECK-NEXT: zvfbfmin - 'Zvfbfmin' (Vector BF16 Converts).
; CHECK-NEXT: zvfbfwma - 'Zvfbfwma' (Vector BF16 widening mul-add).
; CHECK-NEXT: zvfh - 'Zvfh' (Vector Half-Precision Floating-Point).
; CHECK-NEXT: zvfhmin - 'Zvfhmin' (Vector Half-Precision Floating-Point Minimal).
; CHECK-NEXT: zvkb - 'Zvkb' (Vector Bit-manipulation used in Cryptography).
; CHECK-NEXT: zvkg - 'Zvkg' (Vector GCM instructions for Cryptography).
; CHECK-NEXT: zvkn - 'Zvkn' (shorthand for 'Zvkned', 'Zvknhb', 'Zvkb', and 'Zvkt').
; CHECK-NEXT: zvknc - 'Zvknc' (shorthand for 'Zvknc' and 'Zvbc').
; CHECK-NEXT: zvkned - 'Zvkned' (Vector AES Encryption & Decryption (Single Round)).
; CHECK-NEXT: zvkng - 'Zvkng' (shorthand for 'Zvkn' and 'Zvkg').
; CHECK-NEXT: zvknha - 'Zvknha' (Vector SHA-2 (SHA-256 only)).
; CHECK-NEXT: zvknhb - 'Zvknhb' (Vector SHA-2 (SHA-256 and SHA-512)).
; CHECK-NEXT: zvks - 'Zvks' (shorthand for 'Zvksed', 'Zvksh', 'Zvkb', and 'Zvkt').
; CHECK-NEXT: zvksc - 'Zvksc' (shorthand for 'Zvks' and 'Zvbc').
; CHECK-NEXT: zvksed - 'Zvksed' (SM4 Block Cipher Instructions).
; CHECK-NEXT: zvksg - 'Zvksg' (shorthand for 'Zvks' and 'Zvkg').
; CHECK-NEXT: zvksh - 'Zvksh' (SM3 Hash Function Instructions).
; CHECK-NEXT: zvkt - 'Zvkt' (Vector Data-Independent Execution Latency).
; CHECK-NEXT: zvl1024b - 'Zvl1024b' (Minimum Vector Length 1024).
; CHECK-NEXT: zvl128b - 'Zvl128b' (Minimum Vector Length 128).
; CHECK-NEXT: zvl16384b - 'Zvl16384b' (Minimum Vector Length 16384).
; CHECK-NEXT: zvl2048b - 'Zvl2048b' (Minimum Vector Length 2048).
; CHECK-NEXT: zvl256b - 'Zvl256b' (Minimum Vector Length 256).
; CHECK-NEXT: zvl32768b - 'Zvl32768b' (Minimum Vector Length 32768).
; CHECK-NEXT: zvl32b - 'Zvl32b' (Minimum Vector Length 32).
; CHECK-NEXT: zvl4096b - 'Zvl4096b' (Minimum Vector Length 4096).
; CHECK-NEXT: zvl512b - 'Zvl512b' (Minimum Vector Length 512).
; CHECK-NEXT: zvl64b - 'Zvl64b' (Minimum Vector Length 64).
; CHECK-NEXT: zvl65536b - 'Zvl65536b' (Minimum Vector Length 65536).
; CHECK-NEXT: zvl8192b - 'Zvl8192b' (Minimum Vector Length 8192).
; CHECK-EMPTY: