RISC-V ISA Explorer · Vector Subsets (Zv/Zve)
Zvfh: Vector Half-Precision FP
Ratified 2023-06 · version 1.0.0
Full IEEE binary16 arithmetic on vector elements, including compares, reductions, and 8-bit integer conversions.
Typical use: Half-precision vector arithmetic
Open Zvfh in the explorerDependencies
Requires
Instructions (101)
| Mnemonic | Name | Encoding | Match | Mask |
|---|---|---|---|---|
VFADD.VF | Vector floating-point add scalar | 000000-----------101-----1010111 | 0x5057 | 0xfc00707f |
VFADD.VV | Vector floating-point add | 000000-----------001-----1010111 | 0x1057 | 0xfc00707f |
VFCLASS.V | 010011------10000001-----1010111 | 0x4c081057 | 0xfc0ff07f | |
VFCVT.F.X.V | Vector integer to floating-point conversion | 010010------00011001-----1010111 | 0x48019057 | 0xfc0ff07f |
VFCVT.F.XU.V | Vector unsigned integer to floating-point conversion | 010010------00010001-----1010111 | 0x48011057 | 0xfc0ff07f |
VFCVT.RTZ.X.F.V | Vector floating-point to integer conversion with truncation | 010010------00111001-----1010111 | 0x48039057 | 0xfc0ff07f |
VFCVT.RTZ.XU.F.V | Vector floating-point to unsigned integer conversion with truncation | 010010------00110001-----1010111 | 0x48031057 | 0xfc0ff07f |
VFCVT.X.F.V | Vector floating-point to integer conversion | 010010------00001001-----1010111 | 0x48009057 | 0xfc0ff07f |
VFCVT.XU.F.V | Vector floating-point to unsigned integer conversion | 010010------00000001-----1010111 | 0x48001057 | 0xfc0ff07f |
VFDIV.VF | Vector floating-point divide scalar | 100000-----------101-----1010111 | 0x80005057 | 0xfc00707f |
VFDIV.VV | Vector floating-point divide | 100000-----------001-----1010111 | 0x80001057 | 0xfc00707f |
VFMACC.VF | 101100-----------101-----1010111 | 0xb0005057 | 0xfc00707f | |
VFMACC.VV | 101100-----------001-----1010111 | 0xb0001057 | 0xfc00707f | |
VFMADD.VF | 101000-----------101-----1010111 | 0xa0005057 | 0xfc00707f | |
VFMADD.VV | 101000-----------001-----1010111 | 0xa0001057 | 0xfc00707f | |
VFMAX.VF | 000110-----------101-----1010111 | 0x18005057 | 0xfc00707f | |
VFMAX.VV | 000110-----------001-----1010111 | 0x18001057 | 0xfc00707f | |
VFMERGE.VFM | 0101110----------101-----1010111 | 0x5c005057 | 0xfe00707f | |
VFMIN.VF | 000100-----------101-----1010111 | 0x10005057 | 0xfc00707f | |
VFMIN.VV | 000100-----------001-----1010111 | 0x10001057 | 0xfc00707f | |
VFMSAC.VF | 101110-----------101-----1010111 | 0xb8005057 | 0xfc00707f | |
VFMSAC.VV | 101110-----------001-----1010111 | 0xb8001057 | 0xfc00707f | |
VFMSUB.VF | 101010-----------101-----1010111 | 0xa8005057 | 0xfc00707f | |
VFMSUB.VV | 101010-----------001-----1010111 | 0xa8001057 | 0xfc00707f | |
VFMUL.VF | Vector floating-point multiply scalar | 100100-----------101-----1010111 | 0x90005057 | 0xfc00707f |
VFMUL.VV | Vector floating-point multiply | 100100-----------001-----1010111 | 0x90001057 | 0xfc00707f |
VFMV.F.S | Vector floating-point to scalar move | 0100001-----00000001-----1010111 | 0x42001057 | 0xfe0ff07f |
VFMV.S.F | Vector scalar to floating-point move | 010000100000-----101-----1010111 | 0x42005057 | 0xfff0707f |
VFMV.V.F | Vector floating-point to vector move | 010111100000-----101-----1010111 | 0x5e005057 | 0xfff0707f |
VFNCVT.F.F.W | Vector floating-point narrowing conversion | 010010------10100001-----1010111 | 0x480a1057 | 0xfc0ff07f |
VFNCVT.F.X.W | Vector integer to floating-point narrowing conversion | 010010------10011001-----1010111 | 0x48099057 | 0xfc0ff07f |
VFNCVT.F.XU.W | Vector unsigned integer to floating-point narrowing conversion | 010010------10010001-----1010111 | 0x48091057 | 0xfc0ff07f |
VFNCVT.ROD.F.F.W | Vector floating-point narrowing conversion with round-to-odd | 010010------10101001-----1010111 | 0x480a9057 | 0xfc0ff07f |
VFNCVT.RTZ.X.F.W | Vector floating-point to integer narrowing conversion with truncation | 010010------10111001-----1010111 | 0x480b9057 | 0xfc0ff07f |
VFNCVT.RTZ.XU.F.W | Vector floating-point to unsigned integer narrowing conversion with truncation | 010010------10110001-----1010111 | 0x480b1057 | 0xfc0ff07f |
VFNCVT.X.F.W | Vector floating-point to integer narrowing conversion | 010010------10001001-----1010111 | 0x48089057 | 0xfc0ff07f |
VFNCVT.XU.F.W | Vector floating-point to unsigned integer narrowing conversion | 010010------10000001-----1010111 | 0x48081057 | 0xfc0ff07f |
VFNMACC.VF | 101101-----------101-----1010111 | 0xb4005057 | 0xfc00707f | |
VFNMACC.VV | 101101-----------001-----1010111 | 0xb4001057 | 0xfc00707f | |
VFNMADD.VF | 101001-----------101-----1010111 | 0xa4005057 | 0xfc00707f | |
VFNMADD.VV | 101001-----------001-----1010111 | 0xa4001057 | 0xfc00707f | |
VFNMSAC.VF | 101111-----------101-----1010111 | 0xbc005057 | 0xfc00707f | |
VFNMSAC.VV | 101111-----------001-----1010111 | 0xbc001057 | 0xfc00707f | |
VFNMSUB.VF | 101011-----------101-----1010111 | 0xac005057 | 0xfc00707f | |
VFNMSUB.VV | 101011-----------001-----1010111 | 0xac001057 | 0xfc00707f | |
VFRDIV.VF | 100001-----------101-----1010111 | 0x84005057 | 0xfc00707f | |
VFREC7.V | 010011------00101001-----1010111 | 0x4c029057 | 0xfc0ff07f | |
VFREDMAX.VS | 000111-----------001-----1010111 | 0x1c001057 | 0xfc00707f | |
VFREDMIN.VS | 000101-----------001-----1010111 | 0x14001057 | 0xfc00707f | |
VFREDOSUM.VS | 000011-----------001-----1010111 | 0xc001057 | 0xfc00707f | |
VFREDUSUM.VS | 000001-----------001-----1010111 | 0x4001057 | 0xfc00707f | |
VFRSQRT7.V | 010011------00100001-----1010111 | 0x4c021057 | 0xfc0ff07f | |
VFRSUB.VF | 100111-----------101-----1010111 | 0x9c005057 | 0xfc00707f | |
VFSGNJ.VF | 001000-----------101-----1010111 | 0x20005057 | 0xfc00707f | |
VFSGNJ.VV | 001000-----------001-----1010111 | 0x20001057 | 0xfc00707f | |
VFSGNJN.VF | 001001-----------101-----1010111 | 0x24005057 | 0xfc00707f | |
VFSGNJN.VV | 001001-----------001-----1010111 | 0x24001057 | 0xfc00707f | |
VFSGNJX.VF | 001010-----------101-----1010111 | 0x28005057 | 0xfc00707f | |
VFSGNJX.VV | 001010-----------001-----1010111 | 0x28001057 | 0xfc00707f | |
VFSLIDE1DOWN.VF | 001111-----------101-----1010111 | 0x3c005057 | 0xfc00707f | |
VFSLIDE1UP.VF | 001110-----------101-----1010111 | 0x38005057 | 0xfc00707f | |
VFSQRT.V | 010011------00000001-----1010111 | 0x4c001057 | 0xfc0ff07f | |
VFSUB.VF | Vector floating-point subtract scalar | 000010-----------101-----1010111 | 0x8005057 | 0xfc00707f |
VFSUB.VV | Vector floating-point subtract | 000010-----------001-----1010111 | 0x8001057 | 0xfc00707f |
VFWADD.VF | Vector floating-point widening addition with scalar | 110000-----------101-----1010111 | 0xc0005057 | 0xfc00707f |
VFWADD.VV | Vector floating-point widening addition | 110000-----------001-----1010111 | 0xc0001057 | 0xfc00707f |
VFWADD.WF | 110100-----------101-----1010111 | 0xd0005057 | 0xfc00707f | |
VFWADD.WV | 110100-----------001-----1010111 | 0xd0001057 | 0xfc00707f | |
VFWCVT.F.F.V | Vector floating-point widening conversion | 010010------01100001-----1010111 | 0x48061057 | 0xfc0ff07f |
VFWCVT.F.X.V | Vector integer to floating-point widening conversion | 010010------01011001-----1010111 | 0x48059057 | 0xfc0ff07f |
VFWCVT.F.XU.V | Vector unsigned integer to floating-point widening conversion | 010010------01010001-----1010111 | 0x48051057 | 0xfc0ff07f |
VFWCVT.RTZ.X.F.V | Vector floating-point to integer widening conversion with truncation | 010010------01111001-----1010111 | 0x48079057 | 0xfc0ff07f |
VFWCVT.RTZ.XU.F.V | Vector floating-point to unsigned integer widening conversion with truncation | 010010------01110001-----1010111 | 0x48071057 | 0xfc0ff07f |
VFWCVT.X.F.V | Vector floating-point to integer widening conversion | 010010------01001001-----1010111 | 0x48049057 | 0xfc0ff07f |
VFWCVT.XU.F.V | Vector floating-point to unsigned integer widening conversion | 010010------01000001-----1010111 | 0x48041057 | 0xfc0ff07f |
VFWMACC.VF | 111100-----------101-----1010111 | 0xf0005057 | 0xfc00707f | |
VFWMACC.VV | 111100-----------001-----1010111 | 0xf0001057 | 0xfc00707f | |
VFWMSAC.VF | 111110-----------101-----1010111 | 0xf8005057 | 0xfc00707f | |
VFWMSAC.VV | 111110-----------001-----1010111 | 0xf8001057 | 0xfc00707f | |
VFWMUL.VF | 111000-----------101-----1010111 | 0xe0005057 | 0xfc00707f | |
VFWMUL.VV | 111000-----------001-----1010111 | 0xe0001057 | 0xfc00707f | |
VFWNMACC.VF | 111101-----------101-----1010111 | 0xf4005057 | 0xfc00707f | |
VFWNMACC.VV | 111101-----------001-----1010111 | 0xf4001057 | 0xfc00707f | |
VFWNMSAC.VF | 111111-----------101-----1010111 | 0xfc005057 | 0xfc00707f | |
VFWNMSAC.VV | 111111-----------001-----1010111 | 0xfc001057 | 0xfc00707f | |
VFWREDOSUM.VS | 110011-----------001-----1010111 | 0xcc001057 | 0xfc00707f | |
VFWREDUSUM.VS | 110001-----------001-----1010111 | 0xc4001057 | 0xfc00707f | |
VFWSUB.VF | Vector floating-point widening subtraction with scalar | 110010-----------101-----1010111 | 0xc8005057 | 0xfc00707f |
VFWSUB.VV | Vector floating-point widening subtraction | 110010-----------001-----1010111 | 0xc8001057 | 0xfc00707f |
VFWSUB.WF | 110110-----------101-----1010111 | 0xd8005057 | 0xfc00707f | |
VFWSUB.WV | 110110-----------001-----1010111 | 0xd8001057 | 0xfc00707f | |
VMFEQ.VF | 011000-----------101-----1010111 | 0x60005057 | 0xfc00707f | |
VMFEQ.VV | 011000-----------001-----1010111 | 0x60001057 | 0xfc00707f | |
VMFGE.VF | 011111-----------101-----1010111 | 0x7c005057 | 0xfc00707f | |
VMFGT.VF | 011101-----------101-----1010111 | 0x74005057 | 0xfc00707f | |
VMFLE.VF | 011001-----------101-----1010111 | 0x64005057 | 0xfc00707f | |
VMFLE.VV | 011001-----------001-----1010111 | 0x64001057 | 0xfc00707f | |
VMFLT.VF | 011011-----------101-----1010111 | 0x6c005057 | 0xfc00707f | |
VMFLT.VV | 011011-----------001-----1010111 | 0x6c001057 | 0xfc00707f | |
VMFNE.VF | 011100-----------101-----1010111 | 0x70005057 | 0xfc00707f | |
VMFNE.VV | 011100-----------001-----1010111 | 0x70001057 | 0xfc00707f |