UNZIP

RISC-V UNZIP Instruction Details

Instruction ManualI-type

RV32 bit deinterleave (Zbkb), RV32-only.

Instruction Syntax

unzip rd, rs1
Operand Breakdown
Destination rd: general-purpose register receiving the result.
Source rs1: register holding the first operand.
Immediate imm: 12-bit signed value, sign-extended before operation with rs1.
ZbkbBit Manipulation

Instruction Behavior

UNZIP (Zbkb, RV32-only) gathers even-numbered bits of rs1 into the low 16 bits of rd and odd-numbered bits into the high 16 bits: for i=0..15, rd[i]=rs1[2*i] and rd[i+16]=rs1[2*i+1]. It is the inverse of ZIP.

Quick Understanding & Search Notes

UNZIP is a Zbkb cryptographic bit-manipulation instruction; this page follows the official B-extension operation.

The official encoding and semantics are RV32-only.
These instructions rearrange bit/byte fields and do not access memory.

Common Usage Scenarios

Crypto & Security

Understand this scenario with real code like «unzip a0, a1».

Logical Operations

Understand this scenario with real code like «unzip a0, a1».

Pre-Use Checklist

Syntax Check
  • Confirm the current instruction format is I-type.
  • Confirm the operand order matches the example.
Semantic Check
  • Ensure the destination register usage is compatible with the calling convention.
  • Confirm this is not the lower-level form of a pseudo-instruction expansion.

Pitfalls / Common Confusions

UNZIP is defined only on RV32; there is no RV64 form.
It deinterleaves bits, not bytes or halfwords.
This instruction is RV32-only; there is no RV64 form.

FAQ

Does UNZIP access memory?

No. It only rearranges bit fields or performs register lookup within integer registers.

Which extension contains UNZIP?

It belongs to the Zbkb cryptographic bit-manipulation extension.