Is it always equivalent to a same-named 32-bit instruction?
Not always. Some C/Zc instructions compress common 32-bit operations, while others have dedicated stack-frame or table-jump semantics.
Zcb 16-bit multiply: multiply two signed XLEN operands and write the low XLEN product bits.
C.MUL (Zcb, CA format) multiplies rsd' and rs2' as signed XLEN values and writes the low XLEN product bits to rsd'. Both compressed registers are x8-x15; Zcb depends on Zca, and M or Zmmul must also be configured.
Shows only ISA-visible 16-bit encoding, operands, and state, not a pipeline, cache, or timing.
Continue to Commit result to reveal architectural state.
C.MUL's two CA compressed-register fields map to x8-x15; the result retains only the low XLEN bits of the signed product.
Understand this scenario with real code like «c.mul x10, x11 # x10 = (x10 * x11)[XLEN-1:0]».
Not always. Some C/Zc instructions compress common 32-bit operations, while others have dedicated stack-frame or table-jump semantics.
Many 16-bit encodings can represent only a compressed register subset or fixed registers such as sp, ra, a0/a1.