RISC-V Opcode Map
Reverse lookup instructions by their hexadecimal encoding.
| Opcode | Mnemonic | Syntax | Format | Name |
|---|---|---|---|---|
| 0x10001013 | SHA256SUM0 | SHA256SUM0 rd, rs1 | I-Type | SHA-256 Sum0 |
| 0x10601013 | SHA512SIG0 | SHA512SIG0 rd, rs1 | R-Type | SHA-512 Sigma0 |
| 0x10701013 | SHA512SIG1 | SHA512SIG1 rd, rs1 | R-Type | SHA-512 Sigma1 |
| 0x10401013 | SHA512SUM0 | SHA512SUM0 rd, rs1 | R-Type | SHA-512 Sum0 |
| 0x10501013 | SHA512SUM1 | SHA512SUM1 rd, rs1 | R-Type | SHA-512 Sum1 |
| 0x00001033 | SLL | SLL rd, rs1, rs2 | R-Type | Shift Left Logical |
| 0x00001013 | SLLI | SLLI rd, rs1, shamt | I-Type (Shift) | Shift Left Logical Immediate |
| 0x0000101B | SLLIW | SLLIW rd, rs1, shamt | I-Type (Shift) | Shift Left Logical Immediate Word |
| 0x0000103B | SLLW | SLLW rd, rs1, rs2 | R-Type | Shift Left Logical Word |
| 0x00002033 | SLT | SLT rd, rs1, rs2 | R-Type | Set Less Than |
| 0x00002013 | SLTI | SLTI rd, rs1, imm | I-Type | Set Less Than Immediate |
| 0x00003013 | SLTIU | SLTIU rd, rs1, imm | I-Type | Set Less Than Immediate Unsigned |
| 0x00003033 | SLTU | SLTU rd, rs1, rs2 | R-Type | Set Less Than Unsigned |
| 0x10801013 | SM3P0 | SM3P0 rd, rs1 | R-Type | SM3 P0 Transformation |
| 0x10901013 | SM3P1 | SM3P1 rd, rs1 | R-Type | SM3 P1 Transformation |
| 0x30000033 | SM4ED | SM4ED rd, rs1, rs2, bs | R-Type | SM4 Encryption/Decryption |
| 0x34000033 | SM4KS | SM4KS rd, rs1, rs2, bs | R-Type | SM4 Key Schedule |
| 0x00003033 | SNEZ | SNEZ rd, rs | R-Type | Set if Not Equal to Zero |
| 0x40005033 | SRA | SRA rd, rs1, rs2 | R-Type | Shift Right Arithmetic |
| 0x4000501B | SRAIW | SRAIW rd, rs1, shamt | I-Type (Shift) | Shift Right Arithmetic Immediate Word |
| 0x4000503B | SRAW | SRAW rd, rs1, rs2 | R-Type | Shift Right Arithmetic Word |
| 0x10200073 | SRET | SRET | R-Type (System) | Supervisor Return |
| 0x00005033 | SRL | SRL rd, rs1, rs2 | R-Type | Shift Right Logical |
| 0x0000501B | SRLIW | SRLIW rd, rs1, shamt | I-Type (Shift) | Shift Right Logical Immediate Word |
| 0x0000503B | SRLW | SRLW rd, rs1, rs2 | R-Type | Shift Right Logical Word |
| 0x40000033 | SUB | SUB rd, rs1, rs2 | R-Type | Subtract |
| 0x4000003B | SUBW | SUBW rd, rs1, rs2 | R-Type | Subtract Word |
| 0x00002023 | SW | SW rs2, offset(rs1) | S-Type | Store Word |
| 0x00200073 | URET | URET | R-Type (System) | User Return |
| 0x24002057 | VAADD.VV | VAADD.VV vd, vs2, vs1, vm | OPIVV | Vector Averaging Add |
| 0x20002057 | VAADDU.VV | VAADDU.VV vd, vs2, vs1, vm | OPIVV | Vector Averaging Add Unsigned |
| 0x40000057 | VADC.VVM | VADC.VVM vd, vs2, vs1, v0 | OPIVV | Vector Add with Carry |
| 0x00003057 | VADD.VI | VADD.VI vd, vs2, imm, vm | OPIVI | Vector Add Immediate |
| 0x00000057 | VADD.VV | VADD.VV vd, vs2, vs1, vm | OPIVV | Vector Integer Add |
| 0xA200A077 | VAESDF.VV | VAESDF.VV vd, vs2, vs1 | OPIVV | Vector AES Decryption Final Round |
| 0xA2002077 | VAESDM.VV | VAESDM.VV vd, vs2, vs1 | OPIVV | Vector AES Decryption Middle Round |
| 0xA201A077 | VAESEF.VV | VAESEF.VV vd, vs2, vs1 | OPIVV | Vector AES Encryption Final Round |
| 0xA2012077 | VAESEM.VV | VAESEM.VV vd, vs2, vs1 | OPIVV | Vector AES Encryption Middle Round |
| 0x8A002077 | VAESKF1.VI | VAESKF1.VI vd, vs2, uimm | OPIVI | Vector AES Key Expansion 1 |
| 0xAA002077 | VAESKF2.VI | VAESKF2.VI vd, vs2, uimm | OPIVI | Vector AES Key Expansion 2 |
| 0x0000702F | VAMOADDD.V | VAMOADDD.V vd, (rs1), vs2, vm | VAMO | Vector Atomic Add Doubleword |
| 0x0000602F | VAMOADDW.V | VAMOADDW.V vd, (rs1), vs2, vm | VAMO | Vector Atomic Add Word |
| 0x6000702F | VAMOANDD.V | VAMOANDD.V vd, (rs1), vs2, vm | VAMO | Vector Atomic AND Doubleword |
| 0x6000602F | VAMOANDW.V | VAMOANDW.V vd, (rs1), vs2, vm | VAMO | Vector Atomic AND Word |
| 0xA000702F | VAMOMAXD.V | VAMOMAXD.V vd, (rs1), vs2, vm | VAMO | Vector Atomic Max Doubleword |
| 0xE000602F | VAMOMAXU.V | VAMOMAXU.V vd, (rs1), vs2, vm | VAMO | Vector Atomic Max Unsigned |
| 0xA000602F | VAMOMAXW.V | VAMOMAXW.V vd, (rs1), vs2, vm | VAMO | Vector Atomic Max Word |
| 0x8000702F | VAMOMIND.V | VAMOMIND.V vd, (rs1), vs2, vm | VAMO | Vector Atomic Min Doubleword |
| 0xC000602F | VAMOMINU.V | VAMOMINU.V vd, (rs1), vs2, vm | VAMO | Vector Atomic Min Unsigned |
| 0x8000602F | VAMOMINW.V | VAMOMINW.V vd, (rs1), vs2, vm | VAMO | Vector Atomic Min Word |
| 0x4000702F | VAMOORD.V | VAMOORD.V vd, (rs1), vs2, vm | VAMO | Vector Atomic OR Doubleword |
| 0x4000602F | VAMOORW.V | VAMOORW.V vd, (rs1), vs2, vm | VAMO | Vector Atomic OR Word |
| 0x2000702F | VAMOXORD.V | VAMOXORD.V vd, (rs1), vs2, vm | VAMO | Vector Atomic XOR Doubleword |
| 0x2000602F | VAMOXORW.V | VAMOXORW.V vd, (rs1), vs2, vm | VAMO | Vector Atomic XOR Word |
| 0x24003057 | VAND.VI | VAND.VI vd, vs2, imm, vm | OPIVI | Vector AND Immediate |
| 0x04000057 | VANDN.VV | VANDN.VV vd, vs2, vs1, vm | OPIVV | Vector Bitwise AND-NOT |
| 0x04004057 | VANDN.VX | VANDN.VX vd, vs2, rs1, vm | OPIVX | Vector Bitwise AND-NOT Scalar |
| 0x2C002057 | VASUB.VV | VASUB.VV vd, vs2, vs1, vm | OPIVV | Vector Averaging Subtract Signed |
| 0x28002057 | VASUBU.VV | VASUBU.VV vd, vs2, vs1, vm | OPIVV | Vector Averaging Subtract Unsigned |
| 0x48042057 | VBREV8.V | VBREV8.V vd, vs2, vm | OPIVV | Vector Byte Reverse |
| 0x30002057 | VCLMUL.VV | VCLMUL.VV vd, vs2, vs1, vm | OPIVV | Vector Carry-less Multiply |
| 0x34002057 | VCLMULH.VV | VCLMULH.VV vd, vs2, vs1, vm | OPIVV | Vector Carry-less Multiply High |
| 0x48062057 | VCLZ.V | VCLZ.V vd, vs2, vm | OPIVV | Vector Count Leading Zeros |
| 0x5E002057 | VCOMPRESS.VM | VCOMPRESS.VM vd, vs2, vs1 | OPMVV | Vector Compress |
| 0x40082057 | VCPOP.M | VCPOP.M rd, vs2, vm | OPMVX | Vector Mask Population Count |
| 0x48072057 | VCPOP.V | VCPOP.V vd, vs2, vm | OPIVV | Vector Population Count |
| 0x4806A057 | VCTZ.V | VCTZ.V vd, vs2, vm | OPIVV | Vector Count Trailing Zeros |
| 0x84002057 | VDIV.VV | VDIV.VV vd, vs2, vs1, vm | OPIVV | Vector Integer Divide Signed |
| 0x80002057 | VDIVU.VV | VDIVU.VV vd, vs2, vs1, vm | OPIVV | Vector Integer Divide Unsigned |
| 0x00001057 | VFADD.VV | VFADD.VV vd, vs2, vs1, vm | OPFVV | Vector Float Add |
| 0x4C081057 | VFCLASS.V | VFCLASS.V vd, vs2, vm | OPFVV | Vector Float Classify |
| 0x48019057 | VFCVT.F.X.V | VFCVT.F.X.V vd, vs2, vm | OPFVV | Vector Signed Integer to Float Convert |
| 0x48009057 | VFCVT.X.F.V | VFCVT.X.F.V vd, vs2, vm | OPFVV | Vector Float to Signed Integer Convert |
| 0x80001057 | VFDIV.VV | VFDIV.VV vd, vs2, vs1, vm | OPFVV | Vector Float Divide |
| 0x4008A057 | VFIRST.M | VFIRST.M rd, vs2, vm | OPMVX | Vector Find First Set Mask Bit |
| 0xA0001057 | VFMADD.VV | VFMADD.VV vd, vs1, vs2, vm | OPFVV | Vector Float Fused Multiply-Add |
| 0x18001057 | VFMAX.VV | VFMAX.VV vd, vs2, vs1, vm | OPFVV | Vector Float Maximum |
| 0x10001057 | VFMIN.VV | VFMIN.VV vd, vs2, vs1, vm | OPFVV | Vector Float Minimum |
| 0x90001057 | VFMUL.VV | VFMUL.VV vd, vs2, vs1, vm | OPFVV | Vector Float Multiply |
| 0x42001057 | VFMV.F.S | VFMV.F.S fd, vs2 | OPFVW | Vector Move Float to Scalar |
| 0x42005057 | VFMV.S.F | VFMV.S.F vd, fs1 | OPFVW | Vector Move Scalar to Float |
| 0x480A1057 | VFNCVT.F.F.W | VFNCVT.F.F.W vd, vs2, vm | OPFVV | Vector Narrowing Float Convert |
| 0x48089057 | VFNCVT.X.F.W | VFNCVT.X.F.W vd, vs2, vm | OPFVV | Vector Narrowing Float to Signed Int |
| 0x4C029057 | VFREC7.V | VFREC7.V vd, vs2, vm | OPFVV | Vector Float Reciprocal Estimate 7-bit |
| 0x1C001057 | VFREDMAX.VS | VFREDMAX.VS vd, vs2, vs1, vm | OPFVV | Vector Float Reduction Maximum |
| 0x0C001057 | VFREDOSUM.VS | VFREDOSUM.VS vd, vs2, vs1, vm | OPFVV | Vector Ordered Float Reduction Sum |
| 0x04001057 | VFREDUSUM.VS | VFREDUSUM.VS vd, vs2, vs1, vm | OPFVV | Vector Unordered Float Reduction Sum |
| 0x4C021057 | VFRSQRT7.V | VFRSQRT7.V vd, vs2, vm | OPFVV | Vector Float Reciprocal Sqrt Estimate 7-bit |
| 0x20001057 | VFSGNJ.VV | VFSGNJ.VV vd, vs2, vs1, vm | OPFVV | Vector Float Sign Injection |
| 0x4C001057 | VFSQRT.V | VFSQRT.V vd, vs2, vm | OPFVV | Vector Float Square Root |
| 0xC0001057 | VFWADD.VV | VFWADD.VV vd, vs2, vs1, vm | OPFVV | Vector Widening Float Add |
| 0x48061057 | VFWCVT.F.F.V | VFWCVT.F.F.V vd, vs2, vm | OPFVV | Vector Widening Float to Float Convert |
| 0x48059057 | VFWCVT.F.X.V | VFWCVT.F.X.V vd, vs2, vm | OPFVV | Vector Widening Integer to Float Convert |
| 0x48049057 | VFWCVT.X.F.V | VFWCVT.X.F.V vd, vs2, vm | OPFVV | Vector Widening Float to Signed Int |
| 0xE0001057 | VFWMUL.VV | VFWMUL.VV vd, vs2, vs1, vm | OPFVV | Vector Widening Float Multiply |
| 0xCC001057 | VFWREDOSUM.VS | VFWREDOSUM.VS vd, vs2, vs1, vm | OPFVV | Vector Widening Ordered Float Reduction Sum |
| 0xC4001057 | VFWREDUSUM.VS | VFWREDUSUM.VS vd, vs2, vs1, vm | OPFVV | Vector Widening Unordered Float Reduction Sum |
| 0xB2002077 | VGHSH.VV | VGHSH.VV vd, vs2, vs1 | OPIVV | Vector GCM Hash |
| 0x5008A057 | VID.V | VID.V vd, vm | OPMVV | Vector Element Index |
| 0x50082057 | VIOTA.M | VIOTA.M vd, vs2, vm | OPMVV | Vector Iota |