ATOMS
Atomic Operation on Shared Memory
6 variants on SM75 (Turing)
ATOMS
R,[R],R
distilled:
@P0 ATOMS.ADD R0, [R0], R0 ;key:
ATOMS_R_R_R| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | pred | operand 0 | operand 1 | operand 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | modi 1 | 0 | 0 | 0 | modi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | modi 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | stall | y | r-bar | w-bar | b-mask | reuse | 0 | 0 | ||||||||||||||||||||
Modifier Group 1
| Binary | Value |
|---|---|
| 00 | (default) |
| 01 | S32 |
| 10 | 64 |
| 11 | INVALID3 |
Modifier Group 2
| Binary | Value |
|---|---|
| 0000 | ADD |
| 0001 | MIN |
| 0010 | MAX |
| 0011 | INC |
| 0100 | DEC |
| 0101 | AND |
| 0110 | OR |
| 0111 | XOR |
| 1000 | EXCH |
| 1001 | INVALID9 |
| 1010 | INVALID10 |
| 1011 | INVALID11 |
| 1100 | INVALID12 |
| 1101 | INVALID13 |
| 1110 | INVALID14 |
| 1111 | INVALID15 |
Operand 1 Modifiers
| Binary | Value |
|---|---|
| 00 | (default) |
| 01 | X4 |
| 10 | X8 |
| 11 | X16 |
ATOMS
R,[R+I],R
distilled:
@P0 ATOMS.ADD R0, [R0+0x1], R0 ;key:
ATOMS_R_R_I_R| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | pred | operand 0 | operand 1 | operand 3 | operand 2 | |||||||||||||||||||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | modi 1 | 0 | 0 | 0 | modi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | modi 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | stall | y | r-bar | w-bar | b-mask | reuse | 0 | 0 | ||||||||||||||||||||
Modifier Group 1
| Binary | Value |
|---|---|
| 00 | (default) |
| 01 | S32 |
| 10 | 64 |
| 11 | INVALID3 |
Modifier Group 2
| Binary | Value |
|---|---|
| 0000 | ADD |
| 0001 | MIN |
| 0010 | MAX |
| 0011 | INC |
| 0100 | DEC |
| 0101 | AND |
| 0110 | OR |
| 0111 | XOR |
| 1000 | EXCH |
| 1001 | INVALID9 |
| 1010 | INVALID10 |
| 1011 | INVALID11 |
| 1100 | INVALID12 |
| 1101 | INVALID13 |
| 1110 | INVALID14 |
| 1111 | INVALID15 |
Operand 1 Modifiers
| Binary | Value |
|---|---|
| 00 | (default) |
| 01 | X4 |
| 10 | X8 |
| 11 | X16 |
ATOMS
R,[R],R,R
distilled:
@P0 ATOMS.CAS R0, [R0], R0, R0 ;key:
ATOMS_R_R_R_R| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | pred | operand 0 | operand 1 | operand 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| operand 3 | 0 | modi 1 | 0 | 0 | 0 | modi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | modi 2 | modi 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | stall | y | r-bar | w-bar | b-mask | reuse | 0 | 0 | ||||||||||||||||||||||||
Modifier Group 1
| Binary | Value |
|---|---|
| 00 | (default) |
| 01 | S32 |
| 10 | 64 |
| 11 | INVALID3 |
Modifier Group 2
| Binary | Value |
|---|---|
| 0 | CAS |
| 1 | CAST |
Modifier Group 3
| Binary | Value |
|---|---|
| 0 | (default) |
| 1 | (default) |
Operand 1 Modifiers
| Binary | Value |
|---|---|
| 00 | (default) |
| 01 | X4 |
| 10 | X8 |
| 11 | X16 |
ATOMS
R,[R+I],R,R
distilled:
@P0 ATOMS.CAS R0, [R0+0x1], R0, R0 ;key:
ATOMS_R_R_I_R_R| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | pred | operand 0 | operand 1 | operand 3 | operand 2 | |||||||||||||||||||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| operand 4 | 0 | modi 1 | 0 | 0 | 0 | modi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | modi 2 | modi 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | stall | y | r-bar | w-bar | b-mask | reuse | 0 | 0 | ||||||||||||||||||||||||
Modifier Group 1
| Binary | Value |
|---|---|
| 00 | (default) |
| 01 | S32 |
| 10 | 64 |
| 11 | INVALID3 |
Modifier Group 2
| Binary | Value |
|---|---|
| 0 | CAS |
| 1 | CAST |
Modifier Group 3
| Binary | Value |
|---|---|
| 0 | (default) |
| 1 | (default) |
Operand 1 Modifiers
| Binary | Value |
|---|---|
| 00 | (default) |
| 01 | X4 |
| 10 | X8 |
| 11 | X16 |
ATOMS
R,[R+UR],R
distilled:
@P0 ATOMS.ADD R0, [R0+UR0], R0 ;key:
ATOMS_R_R_UR_R| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | pred | operand 0 | operand 1 | operand 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| operand 2 | 0 | 0 | modi 1 | 0 | 0 | 0 | modi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | modi 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | stall | y | r-bar | w-bar | b-mask | reuse | 0 | 0 | ||||||||||||||||||||||||||
Modifier Group 1
| Binary | Value |
|---|---|
| 00 | (default) |
| 01 | S32 |
| 10 | 64 |
| 11 | INVALID3 |
Modifier Group 2
| Binary | Value |
|---|---|
| 0000 | ADD |
| 0001 | MIN |
| 0010 | MAX |
| 0011 | INC |
| 0100 | DEC |
| 0101 | AND |
| 0110 | OR |
| 0111 | XOR |
| 1000 | EXCH |
| 1001 | INVALID9 |
| 1010 | INVALID10 |
| 1011 | INVALID11 |
| 1100 | INVALID12 |
| 1101 | INVALID13 |
| 1110 | INVALID14 |
| 1111 | INVALID15 |
Operand 1 Modifiers
| Binary | Value |
|---|---|
| 00 | (default) |
| 01 | X4 |
| 10 | X8 |
| 11 | X16 |
ATOMS
R,[R+UR+I],R
distilled:
@P0 ATOMS.ADD R0, [R0+UR0+0x1], R0 ;key:
ATOMS_R_R_UR_I_R| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | pred | operand 0 | operand 1 | operand 4 | operand 3 | |||||||||||||||||||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| operand 2 | 0 | 0 | modi 1 | 0 | 0 | 0 | modi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | modi 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | stall | y | r-bar | w-bar | b-mask | reuse | 0 | 0 | ||||||||||||||||||||||||||
Modifier Group 1
| Binary | Value |
|---|---|
| 00 | (default) |
| 01 | S32 |
| 10 | 64 |
| 11 | INVALID3 |
Modifier Group 2
| Binary | Value |
|---|---|
| 0000 | ADD |
| 0001 | MIN |
| 0010 | MAX |
| 0011 | INC |
| 0100 | DEC |
| 0101 | AND |
| 0110 | OR |
| 0111 | XOR |
| 1000 | EXCH |
| 1001 | INVALID9 |
| 1010 | INVALID10 |
| 1011 | INVALID11 |
| 1100 | INVALID12 |
| 1101 | INVALID13 |
| 1110 | INVALID14 |
| 1111 | INVALID15 |
Operand 1 Modifiers
| Binary | Value |
|---|---|
| 00 | (default) |
| 01 | X4 |
| 10 | X8 |
| 11 | X16 |