Which immediates can C.LI load?
C.LI has a signed 6-bit CI immediate field, so it can load values from -32 through 31.
Load a sign-extended 6-bit immediate into a nonzero rd: rd = imm. CI format.
C.LI uses the CI format to write a sign-extended 6-bit immediate to a nonzero rd and expands to addi rd, x0, imm. rd is a full 5-bit field; encodings with rd=x0 are HINTs rather than ordinary C.LI writeback.
Decodes the real 16-bit CR or CI encoding and distinguishes normal instructions, HINTs, and shared encodings.
The animation shows C-extension 16-bit fields directly instead of pretending this is a 32-bit scalar instruction.
0x556D = 0101010101101101x10 = 0xFFFFFFFB
This animation shows only officially defined decode, register reads, arithmetic, and architectural state, not a particular implementation's pipeline, cache, prediction, or timing.
C.LI is a 16-bit CI encoding that writes a signed 6-bit immediate to rd; the regular form requires nonzero rd.
Understand this scenario with real code like «c.li x10, 5 # x10 = 5».
C.LI has a signed 6-bit CI immediate field, so it can load values from -32 through 31.