RISC-V ISA Explorer · Single-Letter Extensions
B: Bit-Manip Bundle
Ratified 2024-04 · version 1.0.0
Umbrella for the Zba, Zbb and Zbs bit-manipulation extensions, signaled to software by a single misa bit.
Typical use: Aggregates Zba/Zbb/Zbs
Open B in the explorerDependencies
Requires
Members
Instructions (41)
| Mnemonic | Name | Encoding | Match | Mask |
|---|---|---|---|---|
ADD.UW | Add unsigned word | 0000100----------000-----0111011 | 0x800003b | 0xfe00707f |
ANDN | AND with inverted operand | 0100000----------111-----0110011 | 0x40007033 | 0xfe00707f |
BCLR | Single-Bit clear (Register) | 0100100----------001-----0110011 | 0x48001033 | 0xfe00707f |
BCLRI | Single-Bit clear (Immediate) | 010010-----------001-----0010011 | 0x48001013 | 0xfc00707f |
BEXT | Single-Bit extract (Register) | 0100100----------101-----0110011 | 0x48005033 | 0xfe00707f |
BEXTI | Single-Bit extract (Immediate) | 010010-----------101-----0010011 | 0x48005013 | 0xfc00707f |
BINV | Single-Bit invert (Register) | 0110100----------001-----0110011 | 0x68001033 | 0xfe00707f |
BINVI | Single-Bit invert (Immediate) | 011010-----------001-----0010011 | 0x68001013 | 0xfc00707f |
BSET | Single-Bit set (Register) | 0010100----------001-----0110011 | 0x28001033 | 0xfe00707f |
BSETI | Single-Bit set (Immediate) | 001010-----------001-----0010011 | 0x28001013 | 0xfc00707f |
CLZ | Count leading zero bits | 011000000000-----001-----0010011 | 0x60001013 | 0xfff0707f |
CLZW | Count leading zero bits in word | 011000000000-----001-----0011011 | 0x6000101b | 0xfff0707f |
CPOP | Count set bits | 011000000010-----001-----0010011 | 0x60201013 | 0xfff0707f |
CPOPW | Count set bits in word | 011000000010-----001-----0011011 | 0x6020101b | 0xfff0707f |
CTZ | Count trailing zero bits | 011000000001-----001-----0010011 | 0x60101013 | 0xfff0707f |
CTZW | Count trailing zero bits in word | 011000000001-----001-----0011011 | 0x6010101b | 0xfff0707f |
MAX | Maximum | 0000101----------110-----0110011 | 0xa006033 | 0xfe00707f |
MAXU | Unsigned maximum | 0000101----------111-----0110011 | 0xa007033 | 0xfe00707f |
MIN | Minimum | 0000101----------100-----0110011 | 0xa004033 | 0xfe00707f |
MINU | Unsigned minimum | 0000101----------101-----0110011 | 0xa005033 | 0xfe00707f |
ORC.B | Bitware OR-combine, byte granule | 001010000111-----101-----0010011 | 0x28705013 | 0xfff0707f |
ORN | OR with inverted operand | 0100000----------110-----0110011 | 0x40006033 | 0xfe00707f |
REV8 | Byte-reverse register (RV64 encoding) | 011010111000-----101-----0010011 | 0x6b805013 | 0xfff0707f |
ROL | Rotate left (Register) | 0110000----------001-----0110011 | 0x60001033 | 0xfe00707f |
ROLW | Rotate left word (Register) | 0110000----------001-----0111011 | 0x6000103b | 0xfe00707f |
ROR | Rotate right (Register) | 0110000----------101-----0110011 | 0x60005033 | 0xfe00707f |
RORI | Rotate right (Immediate) | 011000-----------101-----0010011 | 0x60005013 | 0xfc00707f |
RORIW | Rotate right word (Immediate) | 0110000----------101-----0011011 | 0x6000501b | 0xfe00707f |
RORW | Rotate right word (Register) | 0110000----------101-----0111011 | 0x6000503b | 0xfe00707f |
SEXT.B | Sign-extend byte | 011000000100-----001-----0010011 | 0x60401013 | 0xfff0707f |
SEXT.H | Sign-extend halfword | 011000000101-----001-----0010011 | 0x60501013 | 0xfff0707f |
SH1ADD | Shift left by 1 and add | 0010000----------010-----0110011 | 0x20002033 | 0xfe00707f |
SH1ADD.UW | Shift unsigned word left by 1 and add | 0010000----------010-----0111011 | 0x2000203b | 0xfe00707f |
SH2ADD | Shift left by 2 and add | 0010000----------100-----0110011 | 0x20004033 | 0xfe00707f |
SH2ADD.UW | Shift unsigned word left by 2 and add | 0010000----------100-----0111011 | 0x2000403b | 0xfe00707f |
SH3ADD | Shift left by 3 and add | 0010000----------110-----0110011 | 0x20006033 | 0xfe00707f |
SH3ADD.UW | Shift unsigned word left by 3 and add | 0010000----------110-----0111011 | 0x2000603b | 0xfe00707f |
SLLI.UW | Shift left unsigned word (Immediate) | 000010-----------001-----0011011 | 0x800101b | 0xfc00707f |
XNOR | Exclusive NOR | 0100000----------100-----0110011 | 0x40004033 | 0xfe00707f |
ZEXT.H | Zero-extend halfword | 000010000000-----100-----0111011 | 0x800403b | 0xfff0707f |
ZEXT.H.RV32 | 000010000000-----100-----0110011 | 0x8004033 | 0xfff0707f |