addr

Size: 1 dword.

Operands: v

addr

Size: 2 dwords.

Operands: v

data

Instruction input.

Size: 1 dword.

Operands: v, a

data

Instruction input.

Size: 2 dwords.

Operands: v, a

data

Instruction input.

Size: 3 dwords.

Operands: v, a

data

Instruction input.

Size: 4 dwords.

Operands: v, a

data0

Instruction input.

Size: 1 dword.

Operands: v, a

data0

Instruction input.

Size: 2 dwords.

Operands: v, a

data0

Instruction input.

Size: 3 dwords.

Operands: v, a

data0

Instruction input.

Size: 4 dwords.

Operands: v, a

data1

Instruction input.

Size: 1 dword.

Operands: v, a

data1

Instruction input.

Size: 2 dwords.

Operands: v, a

literal

Size: 1 dword.

Operands:

literal

Size: 1 dword.

Operands: imm16

saddr

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

saddr

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

sbase

A 128-bit buffer resource constant for scalar memory operations which provides a base address, a size and a stride.

Size: 4 dwords.

Operands: s, ttmp

sbase

A 64-bit base address for scalar memory operations.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

sbase

This operand is ignored by H/W and flat_scratch is supplied instead.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

scale_src0

Instruction input.

Size: 1 dword.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, fconst

scale_src1

Instruction input.

Size: 1 dword.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, fconst

sdata

Input data for an atomic instruction.

Optionally may serve as an output data:

  • If glc is specified, gets the memory value before the operation.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

sdata

Input data for an atomic instruction.

Optionally may serve as an output data:

  • If glc is specified, gets the memory value before the operation.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

sdata

Input data for an atomic instruction.

Optionally may serve as an output data:

  • If glc is specified, gets the memory value before the operation.

Size: 4 dwords.

Operands: s, ttmp

sdata

Instruction output.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

sdata

Instruction output.

Size: 1 dword.

Operands: simm8

sdata

Instruction output.

Size: 16 dwords.

Operands: s, ttmp

sdata

Instruction output.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

sdata

Instruction output.

Size: 4 dwords.

Operands: s, ttmp

sdata

Instruction output.

Size: 8 dwords.

Operands: s, ttmp

sdst

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec

sdst

Instruction output.

Size: 1 dword if wavefront size is 32, otherwise 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

sdst

Instruction output.

Size: 1 dword if wavefront size is 32, otherwise 2 dwords.

Operands: vcc

sdst

Instruction output.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

sdst

Instruction output.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec

sdst

Instruction output.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

sdst

Instruction output.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, exec

simm16

Size: 1 dword.

Operands: hwreg

simm16

Size: 1 dword.

Operands: imm16

simm16

Size: 1 dword.

Operands: label

simm16

Size: 1 dword.

Operands: sendmsg

simm16

Size: 1 dword.

Operands: waitcnt

simm16

Instruction output.

Size: 1 dword.

Operands: hwreg

soffset

An offset added to the base address to get memory address.

  • If offset is specified as a register, it supplies an unsigned byte offset.

  • If offset is specified as a 21-bit immediate, it supplies a signed byte offset.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, m0

soffset

An unsigned 20-bit offset added to the base address to get memory address.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, m0

soffset

An unsigned byte offset.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, fconst

src0

Instruction input.

Size: 1 dword.

Operands: a

src0

Instruction input.

Size: 1 dword.

Operands: v

src0

Instruction input.

Size: 1 dword.

Operands: v, a

src0

Instruction input.

Size: 1 dword.

Operands: v, lds_direct

src0

Instruction input.

Size: 1 dword.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, fconst

src0

Instruction input.

Size: 1 dword.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, fconst, literal

src0

Instruction input.

Size: 1 dword.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, lds_direct, fconst

src0

Instruction input.

Size: 1 dword.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, lds_direct, fconst, literal

src0

Instruction input.

Size: 2 dwords.

Operands: v, a

src0

Instruction input.

Size: 2 dwords.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, exec, vccz, execz, scc, fconst

src0

Instruction input.

Size: 2 dwords.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, exec, vccz, execz, scc, fconst, literal

src0

Instruction input.

Size: 4 dwords.

Operands: v, a

src0

Instruction input.

Size: 8 dwords.

Operands: v, a

src0

attr0.x through attr63.w, parameter attribute and channel to be interpolated

src1

Instruction input.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, m0

src1

Instruction input.

Size: 1 dword.

Operands: v, a

src1

Instruction input.

Size: 1 dword.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, fconst

src1

Instruction input.

Size: 16 dwords.

Operands: v

src1

Instruction input.

Size: 2 dwords.

Operands: v, a

src1

Instruction input.

Size: 2 dwords.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, exec, vccz, execz, scc, fconst

src1

Instruction input.

Size: 4 dwords.

Operands: v, a

src1

Instruction input.

Size: 8 dwords.

Operands: v, a

src2

Instruction input.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

src2

Instruction input.

Size: 1 dword.

Operands: v

src2

Instruction input.

Size: 1 dword.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, fconst

src2

Instruction input.

Size: 16 dwords.

Operands: v, a, fconst

src2

Instruction input.

Size: 2 dwords.

Operands: v, a, fconst

src2

Instruction input.

Size: 2 dwords.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, exec, vccz, execz, scc, fconst

src2

Instruction input.

Size: 32 dwords.

Operands: v, a, fconst

src2

Instruction input.

Size: 4 dwords.

Operands: v

src2

Instruction input.

Size: 4 dwords.

Operands: v, a, fconst

src2

Instruction input.

Size: 8 dwords.

Operands: v, a, fconst

srsrc

Buffer resource constant which defines the address and characteristics of the buffer in memory.

Size: 4 dwords.

Operands: s, ttmp

ssrc0

Instruction input.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

ssrc0

Instruction input.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, fconst, literal

ssrc0

Instruction input.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

ssrc0

Instruction input.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, exec, vccz, execz, scc, fconst

ssrc0

Instruction input.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, exec, vccz, execz, scc, fconst, literal

ssrc1

Instruction input.

Size: 1 dword.

Operands:

ssrc1

Instruction input.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, fconst, literal

ssrc1

Instruction input.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, exec, vccz, execz, scc, fconst

ssrc1

Instruction input.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, exec, vccz, execz, scc, fconst, literal

vaddr

This is an optional operand which may specify offset and/or index.

Size: 0, 1 or 2 dwords. Size is controlled by modifiers offen and idxen:

  • If only idxen is specified, this operand supplies an index. Size is 1 dword.

  • If only offen is specified, this operand supplies an offset. Size is 1 dword.

  • If both modifiers are specified, index is in the first register and offset is in the second. Size is 2 dwords.

  • If none of these modifiers are specified, this operand must be set to off.

Operands: v

vcc

Vector condition code.

Size: 1 dword.

Operands: vcc

vdata

Input data for an atomic instruction.

Optionally may serve as an output data:

  • If glc is specified, gets the memory value before the operation.

Size: 1 dword.

Operands: v, a

vdata

Input data for an atomic instruction.

Optionally may serve as an output data:

  • If glc is specified, gets the memory value before the operation.

Size: 2 dwords.

Operands: v, a

vdata

Input data for an atomic instruction.

Optionally may serve as an output data:

  • If glc is specified, gets the memory value before the operation.

Size: 4 dwords.

Operands: v, a

vdata

Instruction output.

Size: 1 dword.

Operands: v, a

vdata

Instruction output.

Size: 2 dwords.

Operands: v, a

vdata

Instruction output.

Size: 3 dwords.

Operands: v, a

vdata

Instruction output.

Size: 4 dwords.

Operands: v, a

vdst

Data returned by a 32-bit atomic flat instruction.

This is an optional operand. It must be used if and only if glc is specified.

Size: 1 dword.

Operands: v, a

vdst

Data returned by a 64-bit atomic flat instruction.

This is an optional operand. It must be used if and only if glc is specified.

Size: 2 dwords.

Operands: v, a

vdst

Instruction output.

Size: 1 dword.

Operands: a

vdst

Instruction output.

Size: 1 dword.

Operands: s, flat_scratch, xnack_mask, ttmp

vdst

Instruction output.

Size: 1 dword.

Operands: v

vdst

Instruction output.

Size: 1 dword.

Operands: v, a

vdst

Instruction output.

Size: 16 dwords.

Operands: v

vdst

Instruction output.

Size: 16 dwords.

Operands: v, a

vdst

Instruction output.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp

vdst

Instruction output.

Size: 2 dwords.

Operands: s, flat_scratch, xnack_mask, vcc, ttmp, exec

vdst

Instruction output.

Size: 2 dwords.

Operands: v

vdst

Instruction output.

Size: 2 dwords.

Operands: v, a

vdst

Instruction output.

Size: 3 dwords.

Operands: v, a

vdst

Instruction output.

Size: 32 dwords.

Operands: v

vdst

Instruction output.

Size: 32 dwords.

Operands: v, a

vdst

Instruction output.

Size: 4 dwords.

Operands: v

vdst

Instruction output.

Size: 4 dwords.

Operands: v, a

vdst

Instruction output.

Size: 6 dwords.

Operands: v

vdst

Instruction output.

Size: 8 dwords.

Operands: v, a

vsrc0

Instruction input.

Size: 1 dword.

Operands: a

vsrc0

Instruction input.

Size: 1 dword.

Operands: v

vsrc0

Instruction input.

Size: 1 dword.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, fconst

vsrc0

Instruction input.

Size: 1 dword.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, fconst, literal

vsrc0

Instruction input.

Size: 2 dwords.

Operands: v

vsrc0

Instruction input.

Size: 2 dwords.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, exec, vccz, execz, scc, fconst

vsrc1

Instruction input.

Size: 1 dword.

Operands: v

vsrc1

Instruction input.

Size: 1 dword.

Operands: v, s, flat_scratch, xnack_mask, vcc, ttmp, m0, exec, vccz, execz, scc, fconst

vsrc1

Instruction input.

Size: 2 dwords.

Operands: v