Skip to main content

6.1 组 1:整数 / uniform 标量 / EXEC / 分支(unit: valu-int + salu + branch,241 条)

VALU 整数与位操作(R / RU / I8)(84 条)​

ADD​

语法(Syntax)

add rd:v rs1:v rs2:v
add.vu rd:v rs1:v rs2:u
add.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
addR op opcode=0x2 f4=0x0fixed:4d = s1 + s2-
add.vuRU op opcode=0x8 f5=0x0fixed:4d = s1 + u2-
add.viI8 op opcode=0xa f3=0x0fixed:4d = s1 + sext(imm)-
SUB​

语法(Syntax)

sub rd:v rs1:v rs2:v
sub.vu rd:v rs1:v rs2:u
变体编码延迟语义标志
subR op opcode=0x2 f4=0x1fixed:4d = s1 - s2-
sub.vuRU op opcode=0x8 f5=0x1fixed:4d = s1 - u2-
SLL​

语法(Syntax)

sll rd:v rs1:v rs2:v
sll.vu rd:v rs1:v rs2:u
sll.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
sllR op opcode=0x2 f4=0x2fixed:4d = s1 << s2[4:0]-
sll.vuRU op opcode=0x8 f5=0x2fixed:4d = s1 << u2[4:0]-
sll.viI8 op opcode=0xa f3=0x4fixed:4d = s1 << sext(imm)[4:0]-
SLT​

语法(Syntax)

slt rd:v rs1:v rs2:v
slt.vu rd:v rs1:v rs2:u
slt.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
sltR op opcode=0x2 f4=0x3fixed:4d = (s1 <s s2) ? 1 : 0-
slt.vuRU op opcode=0x8 f5=0x3fixed:4d = (s1 <s u2) ? 1 : 0-
slt.viI8 op opcode=0xc f3=0x0fixed:4d = (s1 <s sext(imm)) ? 1 : 0-
SLTU​

语法(Syntax)

sltu rd:v rs1:v rs2:v
sltu.vu rd:v rs1:v rs2:u
sltu.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
sltuR op opcode=0x2 f4=0x4fixed:4d = (s1 <u s2) ? 1 : 0-
sltu.vuRU op opcode=0x8 f5=0x4fixed:4d = (s1 <u u2) ? 1 : 0-
sltu.viI8 op opcode=0xc f3=0x1fixed:4d = (s1 <u sext(imm)) ? 1 : 0-
XOR​

语法(Syntax)

xor rd:v rs1:v rs2:v
xor.vu rd:v rs1:v rs2:u
xor.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
xorR op opcode=0x2 f4=0x5fixed:4d = s1 ^ s2-
xor.vuRU op opcode=0x8 f5=0x5fixed:4d = s1 ^ u2-
xor.viI8 op opcode=0xa f3=0x3fixed:4d = s1 ^ sext(imm)-
SRL​

语法(Syntax)

srl rd:v rs1:v rs2:v
srl.vu rd:v rs1:v rs2:u
srl.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
srlR op opcode=0x2 f4=0x6fixed:4d = s1 >>u s2[4:0]-
srl.vuRU op opcode=0x8 f5=0x6fixed:4d = s1 >>u u2[4:0]-
srl.viI8 op opcode=0xa f3=0x5fixed:4d = s1 >>u sext(imm)[4:0]-
SRA​

语法(Syntax)

sra rd:v rs1:v rs2:v
sra.vu rd:v rs1:v rs2:u
sra.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
sraR op opcode=0x2 f4=0x7fixed:4d = s1 >>s s2[4:0]-
sra.vuRU op opcode=0x8 f5=0x7fixed:4d = s1 >>s u2[4:0]-
sra.viI8 op opcode=0xa f3=0x6fixed:4d = s1 >>s sext(imm)[4:0]-
OR​

语法(Syntax)

or rd:v rs1:v rs2:v
or.vu rd:v rs1:v rs2:u
or.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
orR op opcode=0x2 f4=0x8fixed:4d = s1 | s2-
or.vuRU op opcode=0x8 f5=0x8fixed:4d = s1 | u2-
or.viI8 op opcode=0xa f3=0x2fixed:4d = s1 | sext(imm)-
AND​

语法(Syntax)

and rd:v rs1:v rs2:v
and.vu rd:v rs1:v rs2:u
and.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
andR op opcode=0x2 f4=0x9fixed:4d = s1 & s2-
and.vuRU op opcode=0x8 f5=0x9fixed:4d = s1 & u2-
and.viI8 op opcode=0xa f3=0x1fixed:4d = s1 & sext(imm)-
MIN​

语法(Syntax)

min rd:v rs1:v rs2:v
min.vu rd:v rs1:v rs2:u
min.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
minR op opcode=0x2 f4=0xafixed:4d = min_s(s1, s2)-
min.vuRU op opcode=0x8 f5=0xafixed:4d = min_s(s1, u2)-
min.viI8 op opcode=0xc f3=0x2fixed:4d = min_s(s1, sext(imm))-
MAX​

语法(Syntax)

max rd:v rs1:v rs2:v
max.vu rd:v rs1:v rs2:u
max.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
maxR op opcode=0x2 f4=0xbfixed:4d = max_s(s1, s2)-
max.vuRU op opcode=0x8 f5=0xbfixed:4d = max_s(s1, u2)-
max.viI8 op opcode=0xc f3=0x3fixed:4d = max_s(s1, sext(imm))-
MINU​

语法(Syntax)

minu rd:v rs1:v rs2:v
minu.vu rd:v rs1:v rs2:u
minu.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
minuR op opcode=0x2 f4=0xcfixed:4d = min_u(s1, s2)-
minu.vuRU op opcode=0x8 f5=0xcfixed:4d = min_u(s1, u2)-
minu.viI8 op opcode=0xc f3=0x4fixed:4d = min_u(s1, sext(imm))-
MAXU​

语法(Syntax)

maxu rd:v rs1:v rs2:v
maxu.vu rd:v rs1:v rs2:u
maxu.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
maxuR op opcode=0x2 f4=0xdfixed:4d = max_u(s1, s2)-
maxu.vuRU op opcode=0x8 f5=0xdfixed:4d = max_u(s1, u2)-
maxu.viI8 op opcode=0xc f3=0x5fixed:4d = max_u(s1, sext(imm))-
ANDN​

语法(Syntax)

andn rd:v rs1:v rs2:v
andn.vu rd:v rs1:v rs2:u
变体编码延迟语义标志
andnR op opcode=0x2 f4=0xefixed:4d = s1 & ~s2-
andn.vuRU op opcode=0x8 f5=0xefixed:4d = s1 & ~u2-
ORN​

语法(Syntax)

orn rd:v rs1:v rs2:v
orn.vu rd:v rs1:v rs2:u
变体编码延迟语义标志
ornR op opcode=0x2 f4=0xffixed:4d = s1 | ~s2-
orn.vuRU op opcode=0x8 f5=0xffixed:4d = s1 | ~u2-
MUL​

语法(Syntax)

mul rd:v rs1:v rs2:v
mul.vu rd:v rs1:v rs2:u
mul.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
mulR op opcode=0x4 f4=0x0fixed:4d = (s1 * s2)[31:0]-
mul.vuRU op opcode=0x8 f5=0x10fixed:4d = (s1 * u2)[31:0]-
mul.viI8 op opcode=0xa f3=0x7fixed:4d = (s1 * sext(imm))[31:0]-
MULH​

语法(Syntax)

mulh rd:v rs1:v rs2:v
mulh.vu rd:v rs1:v rs2:u
变体编码延迟语义标志
mulhR op opcode=0x4 f4=0x1fixed:4d = (sext(s1) * sext(s2))[63:32]-
mulh.vuRU op opcode=0x8 f5=0x12fixed:4d = (sext(s1) * sext(u2))[63:32]-
MULHSU​

语法(Syntax)

mulhsu rd:v rs1:v rs2:v

描述:d = (sext(s1) * zext(s2))[63:32]

变体编码延迟标志
mulhsuR op opcode=0x4 f4=0x2fixed:4-
MULHU​

语法(Syntax)

mulhu rd:v rs1:v rs2:v
mulhu.vu rd:v rs1:v rs2:u
变体编码延迟语义标志
mulhuR op opcode=0x4 f4=0x3fixed:4d = (zext(s1) * zext(s2))[63:32]-
mulhu.vuRU op opcode=0x8 f5=0x11fixed:4d = (zext(s1) * zext(u2))[63:32]-
MAC​

语法(Syntax)

mac rd:v* rs1:v rs2:v
mac.vu rd:v* rs1:v rs2:u
变体编码延迟语义标志
macR op opcode=0x4 f4=0x4fixed:4d = d + s1 * s2(低 32 位)-
mac.vuRU op opcode=0x8 f5=0x13fixed:4d = d + s1 * u2(低 32 位)-
XNOR​

语法(Syntax)

xnor rd:v rs1:v rs2:v

描述:d = ~(s1 ^ s2)

变体编码延迟标志
xnorR op opcode=0x4 f4=0x5fixed:4-
ROL​

语法(Syntax)

rol rd:v rs1:v rs2:v

描述:d = rotl32(s1, s2[4:0])

变体编码延迟标志
rolR op opcode=0x4 f4=0x6fixed:4-
ROR​

语法(Syntax)

ror rd:v rs1:v rs2:v

描述:d = rotr32(s1, s2[4:0])

变体编码延迟标志
rorR op opcode=0x4 f4=0x7fixed:4-
CZERO​

语法(Syntax)

czero.eqz rd:v rs1:v rs2:v
czero.nez rd:v rs1:v rs2:v
变体编码延迟语义标志
czero.eqzR op opcode=0x4 f4=0x8fixed:4d = (s2 == 0) ? 0 : s1-
czero.nezR op opcode=0x4 f4=0x9fixed:4d = (s2 != 0) ? 0 : s1-
ADDSAT​

语法(Syntax)

addsat.i32 rd:v rs1:v rs2:v
addsat.u32 rd:v rs1:v rs2:v
变体编码延迟语义标志
addsat.i32R op opcode=0x4 f4=0xafixed:4d = sat_s32(s1 + s2)(有符号饱和)-
addsat.u32R op opcode=0x4 f4=0xbfixed:4d = sat_u32(s1 + s2)(无符号饱和)-
SUBSAT​

语法(Syntax)

subsat.i32 rd:v rs1:v rs2:v
subsat.u32 rd:v rs1:v rs2:v
变体编码延迟语义标志
subsat.i32R op opcode=0x4 f4=0xcfixed:4d = sat_s32(s1 - s2)(有符号饱和)-
subsat.u32R op opcode=0x4 f4=0xdfixed:4d = sat_u32(s1 - s2)(无符号饱和)-
BFM​

语法(Syntax)

bfm rd:v rs1:v rs2:v

描述:d = 位域掩码(宽度 s1[5:0],偏移 s2[4:0])

变体编码延迟标志
bfmR op opcode=0x4 f4=0xefixed:4-
MULWU​

语法(Syntax)

mulwu rd:vp^2 rs1:v rs2:v

描述:d64 = zext(s1) * zext(s2)(64 位乘积)

变体编码延迟标志
mulwuR op opcode=0x4 f4=0xffixed:4p64
ADD64​

语法(Syntax)

add64 rd:vp^2 rs1:vp^2 rs2:vp^2

描述:d64 = s1_64 + s2_64

变体编码延迟标志
add64R op opcode=0x6 f4=0x0fixed:4p64
SUB64​

语法(Syntax)

sub64 rd:vp^2 rs1:vp^2 rs2:vp^2

描述:d64 = s1_64 - s2_64

变体编码延迟标志
sub64R op opcode=0x6 f4=0x1fixed:4p64
ADDSX64​

语法(Syntax)

addsx64 rd:vp^2 rs1:vp^2 rs2:v

描述:d64 = s1_64 + sext64(s2)(地址 + 有符号 32 位偏移)

变体编码延迟标志
addsx64R op opcode=0x6 f4=0x2fixed:4p64
ADDZX64​

语法(Syntax)

addzx64 rd:vp^2 rs1:vp^2 rs2:v
addzx64.vu rd:vp^2 rs1:vp^2 rs2:u
变体编码延迟语义标志
addzx64R op opcode=0x6 f4=0x3fixed:4d64 = s1_64 + zext64(s2)(地址 + 无符号 32 位偏移)p64
addzx64.vuRU op opcode=0x8 f5=0x1cfixed:4d64 = s1_64 + zext64(u2)p64
SLL64​

语法(Syntax)

sll64 rd:vp^2 rs1:vp^2 rs2:v

描述:d64 = s1_64 << s2[5:0]

变体编码延迟标志
sll64R op opcode=0x6 f4=0x4fixed:4p64
SRL64​

语法(Syntax)

srl64 rd:vp^2 rs1:vp^2 rs2:v

描述:d64 = s1_64 >>u s2[5:0]

变体编码延迟标志
srl64R op opcode=0x6 f4=0x5fixed:4p64
SRA64​

语法(Syntax)

sra64 rd:vp^2 rs1:vp^2 rs2:v

描述:d64 = s1_64 >>s s2[5:0]

变体编码延迟标志
sra64R op opcode=0x6 f4=0x6fixed:4p64
MULW​

语法(Syntax)

mulw rd:vp^2 rs1:v rs2:v

描述:d64 = sext64(s1) * sext64(s2)

变体编码延迟标志
mulwR op opcode=0x6 f4=0x7fixed:4p64
SUBR​

语法(Syntax)

subr.vu rd:v rs1:v rs2:u
subr.vi rd:v rs1:v imm:s8
变体编码延迟语义标志
subr.vuRU op opcode=0x8 f5=0x14fixed:4d = u2 - s1-
subr.viI8 op opcode=0xc f3=0x6fixed:4d = sext(imm) - s1-
SLLR​

语法(Syntax)

sllr.vu rd:v rs1:v rs2:u

描述:d = u2 << s1[4:0]

变体编码延迟标志
sllr.vuRU op opcode=0x8 f5=0x15fixed:4-
SRLR​

语法(Syntax)

srlr.vu rd:v rs1:v rs2:u

描述:d = u2 >>u s1[4:0]

变体编码延迟标志
srlr.vuRU op opcode=0x8 f5=0x16fixed:4-
SRAR​

语法(Syntax)

srar.vu rd:v rs1:v rs2:u

描述:d = u2 >>s s1[4:0]

变体编码延迟标志
srar.vuRU op opcode=0x8 f5=0x17fixed:4-
MBCNT​

语法(Syntax)

mbcnt rd:v rs1:v rs2:u

描述:d = s1 + popcount(u2 & ((1 << lane) - 1))(压缩 / 子组排位计数)

变体编码延迟标志
mbcntRU op opcode=0x8 f5=0x18fixed:4-
CNDMASK​

语法(Syntax)

cndmask rd:v* rs1:v rs2:u

描述:d = u2[lane] ? s1 : d(按 uniform lane 掩码选择)

变体编码延迟标志
cndmaskRU op opcode=0x8 f5=0x19fixed:4-
MOVREL​

语法(Syntax)

movrel.s rd:v rs1:v rs2:u
movrel.d rd:v rs1:v rs2:u
变体编码延迟语义标志
movrel.sRU op opcode=0x8 f5=0x1afixed:4d = V[rs1 号 + u2](相对寻址读源;越出分配范围读 0)ir
movrel.dRU op opcode=0x8 f5=0x1bfixed:4V[rd 号 + u2] = s1(越出分配范围的写被丢弃)ir

VALU 一元 / uniform 广播 / 立即数(R1 / R1U / LI)(18 条)​

MOV​

语法(Syntax)

mov rd:v rs1:v
mov.vu rd:v rs1:u
变体编码延迟语义标志
movR1 op opcode=0xe f11=0x0fixed:4d = s1-
mov.vuR1U op opcode=0x10 f12=0x0fixed:4d = u1(uniform 广播到活跃 lane)-
NOT​

语法(Syntax)

not rd:v rs1:v

描述:d = ~s1

变体编码延迟标志
notR1 op opcode=0xe f11=0x1fixed:4-
CLZ​

语法(Syntax)

clz rd:v rs1:v

描述:d = clz(s1)(s1 = 0 时为 32)

变体编码延迟标志
clzR1 op opcode=0xe f11=0x2fixed:4-
CTZ​

语法(Syntax)

ctz rd:v rs1:v

描述:d = ctz(s1)(s1 = 0 时为 32)

变体编码延迟标志
ctzR1 op opcode=0xe f11=0x3fixed:4-
CPOP​

语法(Syntax)

cpop rd:v rs1:v

描述:d = popcount(s1)

变体编码延迟标志
cpopR1 op opcode=0xe f11=0x4fixed:4-
BREV​

语法(Syntax)

brev rd:v rs1:v

描述:d = bitreverse(s1)

变体编码延迟标志
brevR1 op opcode=0xe f11=0x5fixed:4-
REV8​

语法(Syntax)

rev8 rd:v rs1:v

描述:d = byteswap(s1)

变体编码延迟标志
rev8R1 op opcode=0xe f11=0x6fixed:4-
SEXT​

语法(Syntax)

sext.b rd:v rs1:v
sext.h rd:v rs1:v
变体编码延迟语义标志
sext.bR1 op opcode=0xe f11=0x7fixed:4d = sext(s1[7:0])-
sext.hR1 op opcode=0xe f11=0x8fixed:4d = sext(s1[15:0])-
ZEXT​

语法(Syntax)

zext.b rd:v rs1:v
zext.h rd:v rs1:v
变体编码延迟语义标志
zext.bR1 op opcode=0xe f11=0x9fixed:4d = zext(s1[7:0])-
zext.hR1 op opcode=0xe f11=0xafixed:4d = zext(s1[15:0])-
LANEID​

语法(Syntax)

laneid rd:v

描述:d = lane 号(0..31)

变体编码延迟标志
laneidR1 op opcode=0xe f11=0xbfixed:4-
NEG​

语法(Syntax)

neg rd:v rs1:v

描述:d = 0 - s1

变体编码延迟标志
negR1 op opcode=0xe f11=0xcfixed:4-
ABS​

语法(Syntax)

abs rd:v rs1:v

描述:d = abs_s(s1)(INT_MIN 回绕为 0x80000000)

变体编码延迟标志
absR1 op opcode=0xe f11=0xdfixed:4-
MOV64​

语法(Syntax)

mov64 rd:vp^2 rs1:vp^2
mov64.vu rd:vp^2 rs1:up^2
变体编码延迟语义标志
mov64R1 op opcode=0xe f11=0xefixed:4d64 = s1_64p64
mov64.vuR1U op opcode=0x10 f12=0x1fixed:4d64 = u1_64p64
MOVI​

语法(Syntax)

movi rd:v imm:s18

描述:d = sext(imm18)

变体编码延迟标志
moviLI op opcode=0x12fixed:4-

比较 → uniform 掩码(C / CU / CI)(26 条)​

CMP​

语法(Syntax)

cmp.eq.i32 rd:u rs1:v rs2:v
cmp.ne.i32 rd:u rs1:v rs2:v
cmp.lt.i32 rd:u rs1:v rs2:v
cmp.ge.i32 rd:u rs1:v rs2:v
cmp.lt.u32 rd:u rs1:v rs2:v
cmp.ge.u32 rd:u rs1:v rs2:v
cmp.eq.i32.vu rd:u rs1:v rs2:u
cmp.ne.i32.vu rd:u rs1:v rs2:u
cmp.lt.i32.vu rd:u rs1:v rs2:u
cmp.ge.i32.vu rd:u rs1:v rs2:u
cmp.lt.u32.vu rd:u rs1:v rs2:u
cmp.ge.u32.vu rd:u rs1:v rs2:u
cmp.eq.i64 rd:u rs1:vp^2 rs2:vp^2
cmp.ne.i64 rd:u rs1:vp^2 rs2:vp^2
cmp.lt.i64 rd:u rs1:vp^2 rs2:vp^2
cmp.ge.i64 rd:u rs1:vp^2 rs2:vp^2
cmp.lt.u64 rd:u rs1:vp^2 rs2:vp^2
cmp.ge.u64 rd:u rs1:vp^2 rs2:vp^2
cmp.eq.i32.vi rd:u rs1:v imm:s8
cmp.ne.i32.vi rd:u rs1:v imm:s8
cmp.lt.i32.vi rd:u rs1:v imm:s8
cmp.ge.i32.vi rd:u rs1:v imm:s8
cmp.lt.u32.vi rd:u rs1:v imm:s8
cmp.ge.u32.vi rd:u rs1:v imm:s8
cmp.gt.i32.vi rd:u rs1:v imm:s8
cmp.gt.u32.vi rd:u rs1:v imm:s8
变体编码延迟语义标志
cmp.eq.i32C op opcode=0x26 f5=0x0fixed:4U[d] = EXEC 内 s1 == s2 的 lane 掩码re ur
cmp.ne.i32C op opcode=0x26 f5=0x1fixed:4U[d] = EXEC 内 s1 != s2 的 lane 掩码re ur
cmp.lt.i32C op opcode=0x26 f5=0x2fixed:4U[d] = EXEC 内 s1 <s s2 的 lane 掩码re ur
cmp.ge.i32C op opcode=0x26 f5=0x3fixed:4U[d] = EXEC 内 s1 >=s s2 的 lane 掩码re ur
cmp.lt.u32C op opcode=0x26 f5=0x4fixed:4U[d] = EXEC 内 s1 <u s2 的 lane 掩码re ur
cmp.ge.u32C op opcode=0x26 f5=0x5fixed:4U[d] = EXEC 内 s1 >=u s2 的 lane 掩码re ur
cmp.eq.i32.vuCU op opcode=0x28 f6=0x0fixed:4U[d] = EXEC 内 s1 == u2 的 lane 掩码re ur
cmp.ne.i32.vuCU op opcode=0x28 f6=0x1fixed:4U[d] = EXEC 内 s1 != u2 的 lane 掩码re ur
cmp.lt.i32.vuCU op opcode=0x28 f6=0x2fixed:4U[d] = EXEC 内 s1 <s u2 的 lane 掩码re ur
cmp.ge.i32.vuCU op opcode=0x28 f6=0x3fixed:4U[d] = EXEC 内 s1 >=s u2 的 lane 掩码re ur
cmp.lt.u32.vuCU op opcode=0x28 f6=0x4fixed:4U[d] = EXEC 内 s1 <u u2 的 lane 掩码re ur
cmp.ge.u32.vuCU op opcode=0x28 f6=0x5fixed:4U[d] = EXEC 内 s1 >=u u2 的 lane 掩码re ur
cmp.eq.i64C op opcode=0x2a f5=0x0fixed:4U[d] = EXEC 内 s1_64 == s2_64 的 lane 掩码re ur p64
cmp.ne.i64C op opcode=0x2a f5=0x1fixed:4U[d] = EXEC 内 s1_64 != s2_64 的 lane 掩码re ur p64
cmp.lt.i64C op opcode=0x2a f5=0x2fixed:4U[d] = EXEC 内 s1_64 <s s2_64 的 lane 掩码re ur p64
cmp.ge.i64C op opcode=0x2a f5=0x3fixed:4U[d] = EXEC 内 s1_64 >=s s2_64 的 lane 掩码re ur p64
cmp.lt.u64C op opcode=0x2a f5=0x4fixed:4U[d] = EXEC 内 s1_64 <u s2_64 的 lane 掩码re ur p64
cmp.ge.u64C op opcode=0x2a f5=0x5fixed:4U[d] = EXEC 内 s1_64 >=u s2_64 的 lane 掩码re ur p64
cmp.eq.i32.viCI op opcode=0x2c f4=0x0fixed:4U[d] = EXEC 内 s1 == sext(imm) 的 lane 掩码re ur
cmp.ne.i32.viCI op opcode=0x2c f4=0x1fixed:4U[d] = EXEC 内 s1 != sext(imm) 的 lane 掩码re ur
cmp.lt.i32.viCI op opcode=0x2c f4=0x2fixed:4U[d] = EXEC 内 s1 <s sext(imm) 的 lane 掩码re ur
cmp.ge.i32.viCI op opcode=0x2c f4=0x3fixed:4U[d] = EXEC 内 s1 >=s sext(imm) 的 lane 掩码re ur
cmp.lt.u32.viCI op opcode=0x2c f4=0x4fixed:4U[d] = EXEC 内 s1 <u sext(imm) 的 lane 掩码re ur
cmp.ge.u32.viCI op opcode=0x2c f4=0x5fixed:4U[d] = EXEC 内 s1 >=u sext(imm) 的 lane 掩码re ur
cmp.gt.i32.viCI op opcode=0x2c f4=0x6fixed:4U[d] = EXEC 内 s1 >s sext(imm) 的 lane 掩码re ur
cmp.gt.u32.viCI op opcode=0x2c f4=0x7fixed:4U[d] = EXEC 内 s1 >u sext(imm) 的 lane 掩码re ur

VALU X 格式:选择、位域、乘加、med3、dp4a、perm(14 条)​

SEL​

语法(Syntax)

sel rd:v rs1:v rs2:v rs3:v

描述:d = (s3 != 0) ? s1 : s2

变体编码延迟标志
selX op opcode=0x1 f10=0x4fixed:5-
BFE​

语法(Syntax)

bfe.u32 rd:v rs1:v rs2:v rs3:v
bfe.i32 rd:v rs1:v rs2:v rs3:v
变体编码延迟语义标志
bfe.u32X op opcode=0x1 f10=0x5fixed:5d = (s1 >>u s2[4:0]) & mask(s3[5:0])-
bfe.i32X op opcode=0x1 f10=0x6fixed:5d = sext(field(s1, off=s2[4:0], width=s3[5:0]));越过 bit31 的部分读 0-
BFI​

语法(Syntax)

bfi rd:v rs1:v rs2:v rs3:v

描述:d = (s1 & s2) | (~s1 & s3)(s1 = bfm 型掩码)

变体编码延迟标志
bfiX op opcode=0x1 f10=0x7fixed:5-
PERM​

语法(Syntax)

perm.b32 rd:v rs1:v rs2:v rs3:v

描述:d 的字节 k = 按 s3 字节 k 从 {s1, s2}(s1 在高位)选择;0x0c→0x00、0x0d→0xff,其余保留读 0

变体编码延迟标志
perm.b32X op opcode=0x1 f10=0x8fixed:5-
MAD​

语法(Syntax)

mad.u32 rd:v rs1:v rs2:v rs3:v

描述:d = (s1 * s2 + s3)[31:0]

变体编码延迟标志
mad.u32X op opcode=0x1 f10=0x9fixed:5-
MAD64​

语法(Syntax)

mad64.u32 rd:vp^2 rs1:v rs2:v rs3:vp^2
mad64.i32 rd:vp^2 rs1:v rs2:v rs3:vp^2
变体编码延迟语义标志
mad64.u32X op opcode=0x1 f10=0xafixed:5d64 = zext(s1) * zext(s2) + s3_64p64
mad64.i32X op opcode=0x1 f10=0xbfixed:5d64 = sext(s1) * sext(s2) + s3_64p64
ALIGNBIT​

语法(Syntax)

alignbit rd:v rs1:v rs2:v rs3:v

描述:d = ({s1, s2} >> s3[4:0])[31:0](s1 在高位的 funnel shift)

变体编码延迟标志
alignbitX op opcode=0x1 f10=0xcfixed:5-
MED3​

语法(Syntax)

med3.i32 rd:v rs1:v rs2:v rs3:v
med3.u32 rd:v rs1:v rs2:v rs3:v
变体编码延迟语义标志
med3.i32X op opcode=0x1 f10=0xdfixed:5d = 有符号中位数(s1, s2, s3)-
med3.u32X op opcode=0x1 f10=0xefixed:5d = 无符号中位数(s1, s2, s3)-
DP4A​

语法(Syntax)

dp4a.i32 rd:v rs1:v rs2:v rs3:v
dp4a.u32 rd:v rs1:v rs2:v rs3:v
变体编码延迟语义标志
dp4a.i32X op opcode=0x1 f10=0xffixed:5d = s3 + sum_k sext(s1.b[k]) * sext(s2.b[k])-
dp4a.u32X op opcode=0x1 f10=0x10fixed:5d = s3 + sum_k zext(s1.b[k]) * zext(s2.b[k])-
SEL64​

语法(Syntax)

sel64 rd:vp^2 rs1:vp^2 rs2:vp^2 rs3:v

描述:d64 = (s3 != 0) ? s1_64 : s2_64

变体编码延迟标志
sel64X op opcode=0x1 f10=0x1cfixed:5p64

VALU literal 源(XL)(8 条)​

MOV​

语法(Syntax)

mov.vl rd:v imm:k32

描述:d = imm32

变体编码延迟标志
mov.vlXL op opcode=0x5 f11=0x0fixed:4-
ADD​

语法(Syntax)

add.vl rd:v rs1:v imm:k32

描述:d = s1 + imm32

变体编码延迟标志
add.vlXL op opcode=0x5 f11=0x1fixed:4-
SUBR​

语法(Syntax)

subr.vl rd:v rs1:v imm:k32

描述:d = imm32 - s1

变体编码延迟标志
subr.vlXL op opcode=0x5 f11=0x2fixed:4-
AND​

语法(Syntax)

and.vl rd:v rs1:v imm:k32

描述:d = s1 & imm32

变体编码延迟标志
and.vlXL op opcode=0x5 f11=0x3fixed:4-
OR​

语法(Syntax)

or.vl rd:v rs1:v imm:k32

描述:d = s1 | imm32

变体编码延迟标志
or.vlXL op opcode=0x5 f11=0x4fixed:4-
XOR​

语法(Syntax)

xor.vl rd:v rs1:v imm:k32

描述:d = s1 ^ imm32

变体编码延迟标志
xor.vlXL op opcode=0x5 f11=0x5fixed:4-
MUL​

语法(Syntax)

mul.vl rd:v rs1:v imm:k32

描述:d = s1 * imm32

变体编码延迟标志
mul.vlXL op opcode=0x5 f11=0x6fixed:4-
ADDSX64​

语法(Syntax)

addsx64.vl rd:vp^2 rs1:vp^2 imm:k32

描述:d64 = s1_64 + sext64(imm32)

变体编码延迟标志
addsx64.vlXL op opcode=0x5 f11=0xdfixed:4p64

SALU uniform 运算(UR / UI)(49 条)​

UADD​

语法(Syntax)

uadd rd:u rs1:u rs2:u

描述:U[d] = u1 + u2

变体编码延迟标志
uaddUR op opcode=0x3c f7=0x0fixed:2ei
USUB​

语法(Syntax)

usub rd:u rs1:u rs2:u

描述:U[d] = u1 - u2

变体编码延迟标志
usubUR op opcode=0x3c f7=0x1fixed:2ei
USLL​

语法(Syntax)

usll rd:u rs1:u rs2:u

描述:U[d] = u1 << u2[4:0]

变体编码延迟标志
usllUR op opcode=0x3c f7=0x2fixed:2ei
USLT​

语法(Syntax)

uslt rd:u rs1:u rs2:u

描述:U[d] = (int)u1 < (int)u2 ? 1 : 0

变体编码延迟标志
usltUR op opcode=0x3c f7=0x3fixed:2ei
USLTU​

语法(Syntax)

usltu rd:u rs1:u rs2:u

描述:U[d] = u1 <u u2 ? 1 : 0

变体编码延迟标志
usltuUR op opcode=0x3c f7=0x4fixed:2ei
UXOR​

语法(Syntax)

uxor rd:u rs1:u rs2:u

描述:U[d] = u1 ^ u2

变体编码延迟标志
uxorUR op opcode=0x3c f7=0x5fixed:2ei
USRL​

语法(Syntax)

usrl rd:u rs1:u rs2:u

描述:U[d] = u1 >>u u2[4:0]

变体编码延迟标志
usrlUR op opcode=0x3c f7=0x6fixed:2ei
USRA​

语法(Syntax)

usra rd:u rs1:u rs2:u

描述:U[d] = u1 >>s u2[4:0]

变体编码延迟标志
usraUR op opcode=0x3c f7=0x7fixed:2ei
UOR​

语法(Syntax)

uor rd:u rs1:u rs2:u

描述:U[d] = u1 | u2

变体编码延迟标志
uorUR op opcode=0x3c f7=0x8fixed:2ei
UAND​

语法(Syntax)

uand rd:u rs1:u rs2:u

描述:U[d] = u1 & u2

变体编码延迟标志
uandUR op opcode=0x3c f7=0x9fixed:2ei
UMIN​

语法(Syntax)

umin rd:u rs1:u rs2:u

描述:U[d] = min_s(u1, u2)

变体编码延迟标志
uminUR op opcode=0x3c f7=0xafixed:2ei
UMAX​

语法(Syntax)

umax rd:u rs1:u rs2:u

描述:U[d] = max_s(u1, u2)

变体编码延迟标志
umaxUR op opcode=0x3c f7=0xbfixed:2ei
UMINU​

语法(Syntax)

uminu rd:u rs1:u rs2:u

描述:U[d] = min_u(u1, u2)

变体编码延迟标志
uminuUR op opcode=0x3c f7=0xcfixed:2ei
UMAXU​

语法(Syntax)

umaxu rd:u rs1:u rs2:u

描述:U[d] = max_u(u1, u2)

变体编码延迟标志
umaxuUR op opcode=0x3c f7=0xdfixed:2ei
UANDN​

语法(Syntax)

uandn rd:u rs1:u rs2:u

描述:U[d] = u1 & ~u2

变体编码延迟标志
uandnUR op opcode=0x3c f7=0xefixed:2ei
UORN​

语法(Syntax)

uorn rd:u rs1:u rs2:u

描述:U[d] = u1 | ~u2

变体编码延迟标志
uornUR op opcode=0x3c f7=0xffixed:2ei
UXNOR​

语法(Syntax)

uxnor rd:u rs1:u rs2:u

描述:U[d] = ~(u1 ^ u2)

变体编码延迟标志
uxnorUR op opcode=0x3c f7=0x10fixed:2ei
UMUL​

语法(Syntax)

umul rd:u rs1:u rs2:u

描述:U[d] = (u1 * u2)[31:0]

变体编码延迟标志
umulUR op opcode=0x3c f7=0x11fixed:2ei
UMULH​

语法(Syntax)

umulh rd:u rs1:u rs2:u

描述:U[d] = (sext(u1) * sext(u2))[63:32]

变体编码延迟标志
umulhUR op opcode=0x3c f7=0x12fixed:2ei
UMULHU​

语法(Syntax)

umulhu rd:u rs1:u rs2:u

描述:U[d] = (zext(u1) * zext(u2))[63:32]

变体编码延迟标志
umulhuUR op opcode=0x3c f7=0x13fixed:2ei
UMULHSU​

语法(Syntax)

umulhsu rd:u rs1:u rs2:u

描述:U[d] = (sext(u1) * zext(u2))[63:32]

变体编码延迟标志
umulhsuUR op opcode=0x3c f7=0x14fixed:2ei
UCZERO​

语法(Syntax)

uczero.eqz rd:u rs1:u rs2:u
uczero.nez rd:u rs1:u rs2:u
变体编码延迟语义标志
uczero.eqzUR op opcode=0x3c f7=0x15fixed:2U[d] = (u2 == 0) ? 0 : u1ei
uczero.nezUR op opcode=0x3c f7=0x16fixed:2U[d] = (u2 != 0) ? 0 : u1ei
USEQ​

语法(Syntax)

useq rd:u rs1:u rs2:u

描述:U[d] = (u1 == u2) ? 1 : 0

变体编码延迟标志
useqUR op opcode=0x3c f7=0x17fixed:2ei
USNE​

语法(Syntax)

usne rd:u rs1:u rs2:u

描述:U[d] = (u1 != u2) ? 1 : 0

变体编码延迟标志
usneUR op opcode=0x3c f7=0x18fixed:2ei
USGE​

语法(Syntax)

usge rd:u rs1:u rs2:u

描述:U[d] = (int)u1 >= (int)u2 ? 1 : 0

变体编码延迟标志
usgeUR op opcode=0x3c f7=0x19fixed:2ei
USGEU​

语法(Syntax)

usgeu rd:u rs1:u rs2:u

描述:U[d] = u1 >=u u2 ? 1 : 0

变体编码延迟标志
usgeuUR op opcode=0x3c f7=0x1afixed:2ei
UBFM​

语法(Syntax)

ubfm rd:u rs1:u rs2:u

描述:U[d] = 位域掩码(宽度 u1[5:0],偏移 u2[4:0])

变体编码延迟标志
ubfmUR op opcode=0x3c f7=0x1bfixed:2ei
UBFE​

语法(Syntax)

ubfe.u32 rd:u rs1:u rs2:u
ubfe.i32 rd:u rs1:u rs2:u
变体编码延迟语义标志
ubfe.u32UR op opcode=0x3c f7=0x1cfixed:2U[d] = (u1 >>u u2[4:0]) & mask(u2[21:16])(u2[4:0] 偏移、u2[21:16] 宽度)ei
ubfe.i32UR op opcode=0x3c f7=0x1dfixed:2ubfe.u32 的符号扩展变体ei
UADD64​

语法(Syntax)

uadd64 rd:up^2 rs1:up^2 rs2:up^2

描述:U64[d] = U64[u1] + U64[u2]

变体编码延迟标志
uadd64UR op opcode=0x3c f7=0x1efixed:2ei p64
USUB64​

语法(Syntax)

usub64 rd:up^2 rs1:up^2 rs2:up^2

描述:U64[d] = U64[u1] - U64[u2]

变体编码延迟标志
usub64UR op opcode=0x3c f7=0x1ffixed:2ei p64
UADDSX64​

语法(Syntax)

uaddsx64 rd:up^2 rs1:up^2 rs2:u

描述:U64[d] = U64[u1] + sext64(u2)

变体编码延迟标志
uaddsx64UR op opcode=0x3c f7=0x20fixed:2ei p64
UADDZX64​

语法(Syntax)

uaddzx64 rd:up^2 rs1:up^2 rs2:u

描述:U64[d] = U64[u1] + zext64(u2)

变体编码延迟标志
uaddzx64UR op opcode=0x3c f7=0x21fixed:2ei p64
UROL​

语法(Syntax)

urol rd:u rs1:u rs2:u

描述:U[d] = rotl32(u1, u2[4:0])

变体编码延迟标志
urolUR op opcode=0x3c f7=0x22fixed:2ei
UROR​

语法(Syntax)

uror rd:u rs1:u rs2:u

描述:U[d] = rotr32(u1, u2[4:0])

变体编码延迟标志
urorUR op opcode=0x3c f7=0x23fixed:2ei
UADDI​

语法(Syntax)

uaddi rd:u rs1:u imm:s10

描述:U[d] = u1 + sext(imm)

变体编码延迟标志
uaddiUI op opcode=0x3e f3=0x0fixed:2ei
UANDI​

语法(Syntax)

uandi rd:u rs1:u imm:s10

描述:U[d] = u1 & sext(imm)

变体编码延迟标志
uandiUI op opcode=0x3e f3=0x1fixed:2ei
UORI​

语法(Syntax)

uori rd:u rs1:u imm:s10

描述:U[d] = u1 | sext(imm)

变体编码延迟标志
uoriUI op opcode=0x3e f3=0x2fixed:2ei
UXORI​

语法(Syntax)

uxori rd:u rs1:u imm:s10

描述:U[d] = u1 ^ sext(imm)

变体编码延迟标志
uxoriUI op opcode=0x3e f3=0x3fixed:2ei
USLLI​

语法(Syntax)

uslli rd:u rs1:u imm:s10

描述:U[d] = u1 << imm[4:0]

变体编码延迟标志
uslliUI op opcode=0x3e f3=0x4fixed:2ei
USRLI​

语法(Syntax)

usrli rd:u rs1:u imm:s10

描述:U[d] = u1 >>u imm[4:0]

变体编码延迟标志
usrliUI op opcode=0x3e f3=0x5fixed:2ei
USRAI​

语法(Syntax)

usrai rd:u rs1:u imm:s10

描述:U[d] = u1 >>s imm[4:0]

变体编码延迟标志
usraiUI op opcode=0x3e f3=0x6fixed:2ei
USLTI​

语法(Syntax)

uslti rd:u rs1:u imm:s10

描述:U[d] = (int)u1 < sext(imm) ? 1 : 0

变体编码延迟标志
usltiUI op opcode=0x3e f3=0x7fixed:2ei
USLTIU​

语法(Syntax)

usltiu rd:u rs1:u imm:s10

描述:U[d] = u1 <u sext(imm) ? 1 : 0

变体编码延迟标志
usltiuUI op opcode=0x40 f3=0x0fixed:2ei
USEQI​

语法(Syntax)

useqi rd:u rs1:u imm:s10

描述:U[d] = (u1 == sext(imm)) ? 1 : 0

变体编码延迟标志
useqiUI op opcode=0x40 f3=0x1fixed:2ei
USNEI​

语法(Syntax)

usnei rd:u rs1:u imm:s10

描述:U[d] = (u1 != sext(imm)) ? 1 : 0

变体编码延迟标志
usneiUI op opcode=0x40 f3=0x2fixed:2ei
UMULI​

语法(Syntax)

umuli rd:u rs1:u imm:s10

描述:U[d] = u1 * sext(imm)

变体编码延迟标志
umuliUI op opcode=0x40 f3=0x3fixed:2ei
UADD64I​

语法(Syntax)

uadd64i rd:up^2 rs1:up^2 imm:s10

描述:U64[d] = U64[u1] + sext64(imm)

变体编码延迟标志
uadd64iUI op opcode=0x40 f3=0x4fixed:2ei p64

SALU 一元与 EXEC 控制(U1)(19 条)​

UMOV​

语法(Syntax)

umov rd:u rs1:u

描述:U[d] = u1

变体编码延迟标志
umovU1 op opcode=0x42 f13=0x0fixed:2ei
UNOT​

语法(Syntax)

unot rd:u rs1:u

描述:U[d] = ~u1

变体编码延迟标志
unotU1 op opcode=0x42 f13=0x1fixed:2ei
UCLZ​

语法(Syntax)

uclz rd:u rs1:u

描述:U[d] = clz(u1)

变体编码延迟标志
uclzU1 op opcode=0x42 f13=0x2fixed:2ei
UCTZ​

语法(Syntax)

uctz rd:u rs1:u

描述:U[d] = ctz(u1)(掩码最低置位 lane;u1 = 0 → 32)

变体编码延迟标志
uctzU1 op opcode=0x42 f13=0x3fixed:2ei
UCPOP​

语法(Syntax)

ucpop rd:u rs1:u

描述:U[d] = popcount(u1)

变体编码延迟标志
ucpopU1 op opcode=0x42 f13=0x4fixed:2ei
UBREV​

语法(Syntax)

ubrev rd:u rs1:u

描述:U[d] = bitreverse(u1)

变体编码延迟标志
ubrevU1 op opcode=0x42 f13=0x5fixed:2ei
USEXT​

语法(Syntax)

usext.b rd:u rs1:u
usext.h rd:u rs1:u
变体编码延迟语义标志
usext.bU1 op opcode=0x42 f13=0x6fixed:2U[d] = sext(u1[7:0])ei
usext.hU1 op opcode=0x42 f13=0x7fixed:2U[d] = sext(u1[15:0])ei
UMOV64​

语法(Syntax)

umov64 rd:up^2 rs1:up^2

描述:U64[d] = U64[u1]

变体编码延迟标志
umov64U1 op opcode=0x42 f13=0x8fixed:2ei p64
UWQM​

语法(Syntax)

uwqm rd:u rs1:u

描述:U[d] = wqm(u1)(每 4 位 quad 组:任一置位 → 0xf)

变体编码延迟标志
uwqmU1 op opcode=0x42 f13=0x9fixed:2ei
EXEC​

语法(Syntax)

exec.get rd:u
exec.set rs1:u
exec.wqm rd:u
变体编码延迟语义标志
exec.getU1 op opcode=0x42 f13=0x10fixed:2U[d] = EXECei re
exec.setU1 op opcode=0x42 f13=0x11fixed:2EXEC = u1ei we
exec.wqmU1 op opcode=0x42 f13=0x18fixed:2U[d] = 旧 EXEC;EXEC = wqm(EXEC)(进入 whole-quad 模式)ei re we
SAVEEXEC​

语法(Syntax)

saveexec.and rd:u rs1:u
saveexec.or rd:u rs1:u
saveexec.xor rd:u rs1:u
saveexec.andn1 rd:u rs1:u
saveexec.andn2 rd:u rs1:u
saveexec.mov rd:u rs1:u
变体编码延迟语义标志
saveexec.andU1 op opcode=0x42 f13=0x12fixed:2U[d] = 旧 EXEC;EXEC = EXEC & u1ei re we
saveexec.orU1 op opcode=0x42 f13=0x13fixed:2U[d] = 旧 EXEC;EXEC = EXEC | u1ei re we
saveexec.xorU1 op opcode=0x42 f13=0x14fixed:2U[d] = 旧 EXEC;EXEC = EXEC ^ u1ei re we
saveexec.andn1U1 op opcode=0x42 f13=0x15fixed:2U[d] = 旧 EXEC;EXEC = u1 & ~EXEC(else 分支掩码)ei re we
saveexec.andn2U1 op opcode=0x42 f13=0x16fixed:2U[d] = 旧 EXEC;EXEC = EXEC & ~u1(循环继续掩码)ei re we
saveexec.movU1 op opcode=0x42 f13=0x17fixed:2U[d] = 旧 EXEC;EXEC = u1ei re we

uniform 立即数 / PC 相对(ULI)(3 条)​

UMOVI​

语法(Syntax)

umovi rd:u imm:s17

描述:U[d] = sext(imm17)

变体编码延迟标志
umoviULI op opcode=0x44 f2=0x0fixed:2ei
UPC​

语法(Syntax)

upc rd:u imm:o17

描述:U[d] = PC + imm(32 位代码偏移)

变体编码延迟标志
upcULI op opcode=0x44 f2=0x1fixed:2ei
UPCA​

语法(Syntax)

upca rd:up^2 imm:o17

描述:U64[d] = CODE_BASE + PC + imm(位置无关 64 位 VA)

变体编码延迟标志
upcaULI op opcode=0x44 f2=0x2fixed:2ei p64

uniform + 32 位 literal(UL)(10 条)​

UMOV​

语法(Syntax)

umov.l rd:u imm:k32

描述:U[d] = imm32

变体编码延迟标志
umov.lUL op opcode=0x11 f13=0x0fixed:2ei
UADD​

语法(Syntax)

uadd.l rd:u rs1:u imm:k32

描述:U[d] = u1 + imm32

变体编码延迟标志
uadd.lUL op opcode=0x11 f13=0x1fixed:2ei
UAND​

语法(Syntax)

uand.l rd:u rs1:u imm:k32

描述:U[d] = u1 & imm32

变体编码延迟标志
uand.lUL op opcode=0x11 f13=0x2fixed:2ei
UOR​

语法(Syntax)

uor.l rd:u rs1:u imm:k32

描述:U[d] = u1 | imm32

变体编码延迟标志
uor.lUL op opcode=0x11 f13=0x3fixed:2ei
UXOR​

语法(Syntax)

uxor.l rd:u rs1:u imm:k32

描述:U[d] = u1 ^ imm32

变体编码延迟标志
uxor.lUL op opcode=0x11 f13=0x4fixed:2ei
UMUL​

语法(Syntax)

umul.l rd:u rs1:u imm:k32

描述:U[d] = u1 * imm32

变体编码延迟标志
umul.lUL op opcode=0x11 f13=0x5fixed:2ei
USEQ​

语法(Syntax)

useq.l rd:u rs1:u imm:k32

描述:U[d] = (u1 == imm32) ? 1 : 0

变体编码延迟标志
useq.lUL op opcode=0x11 f13=0x6fixed:2ei
USLT​

语法(Syntax)

uslt.l rd:u rs1:u imm:k32

描述:U[d] = (int)u1 < (int)imm32 ? 1 : 0

变体编码延迟标志
uslt.lUL op opcode=0x11 f13=0x7fixed:2ei
USLTU​

语法(Syntax)

usltu.l rd:u rs1:u imm:k32

描述:U[d] = u1 <u imm32 ? 1 : 0

变体编码延迟标志
usltu.lUL op opcode=0x11 f13=0x8fixed:2ei
UADD64​

语法(Syntax)

uadd64.l rd:up^2 rs1:up^2 imm:k32

描述:U64[d] = U64[u1] + sext64(imm32)

变体编码延迟标志
uadd64.lUL op opcode=0x11 f13=0x9fixed:2ei p64

分支与跳转(10 条)​

JMP​

语法(Syntax)

jmp imm:o22

描述:PC += imm(PC 相对字节偏移)

变体编码延迟标志
jmpJ op opcode=0x46 f3=0x0fixed:1ei eb br
BEXECZ​

语法(Syntax)

bexecz imm:o22

描述:EXEC == 0 → PC += imm

变体编码延迟标志
bexeczJ op opcode=0x46 f3=0x1fixed:1ei eb br cd re
BEXECNZ​

语法(Syntax)

bexecnz imm:o22

描述:EXEC != 0 → PC += imm

变体编码延迟标志
bexecnzJ op opcode=0x46 f3=0x2fixed:1ei eb br cd re
JAL​

语法(Syntax)

jal rd:u imm:o19

描述:U[d] = PC + 4;PC += imm

变体编码延迟标志
jalJL op opcode=0x48fixed:1ei eb br cal
BZ​

语法(Syntax)

bz rs1:u imm:o17

描述:u1 == 0 → PC += imm

变体编码延迟标志
bzB op opcode=0x4a f2=0x0fixed:1ei eb br cd
BNZ​

语法(Syntax)

bnz rs1:u imm:o17

描述:u1 != 0 → PC += imm

变体编码延迟标志
bnzB op opcode=0x4a f2=0x1fixed:1ei eb br cd
BNONE​

语法(Syntax)

bnone rs1:u imm:o17

描述:(u1 & EXEC) == 0 → PC += imm

变体编码延迟标志
bnoneB op opcode=0x4a f2=0x2fixed:1ei eb br cd re
BANY​

语法(Syntax)

bany rs1:u imm:o17

描述:(u1 & EXEC) != 0 → PC += imm

变体编码延迟标志
banyB op opcode=0x4a f2=0x3fixed:1ei eb br cd re
JR​

语法(Syntax)

jr rs1:u imm:j10

描述:PC = (u1 + imm) & ~3

变体编码延迟标志
jrJR op opcode=0x4c f3=0x0fixed:1ei eb ix
JALR​

语法(Syntax)

jalr rd:u rs1:u imm:j10

描述:t = (u1 + imm) & ~3;U[d] = PC + 4;PC = t

变体编码延迟标志
jalrJR op opcode=0x4c f3=0x1fixed:1ei eb ix cal