The RISC-V J-type instruction format is truly bonkers. A 21-bit offset is from pc is encoded in the immediate fields per this diagram. Bit 0 isn't encoded (it's always 0). The other bits are, in order from MSB to LSB, 20, 10–1, 11, 19–12.
Does this actually make the hardware simpler?