Note: round brackets, instead of square brackets, are used to represent an optional component. This is to avoid confusion with memory operands which are surrounded by square brackets.
Also, immea and composite operand may be mentioned in the parts below. Please visit these two links for more information regarding their meaning.
Floating Point Instructions
FADD
Instruction Usage:
FADD(.FTZ)(.rnd)(.SAT) reg0, (-)(|)reg1(|), (-)(|)composite operand(|);
If the third operand is a floating point number, it will be a 32-bit floaitng point number with the last 12 bits truncated. If the negative sign in the immediate value is before 'F', then a modifier bit will be flipped. If the negative sign comes after the 'F', then the 20-bit immediate value will have the negative bit set.
Template opcode:
0000 000000 1110 000000 000000 0000000000000000000000 0000000000 001010
mod reg0 reg1 immea mod2
mod bit |
meaning |
0 |
0: default |
|
1: -reg1 |
1 |
0: default |
|
1: -composite operand |
2 |
0: default |
|
1: |
3 |
0: default |
|
1: |
4 |
0: default |
|
1: .FTZ |
mod2 0 |
meaning |
0 |
default |
1 |
.FMA |
mod2 1:2 |
.rnd |
00 |
default (.rn) |
10 |
.RM |
01 |
.RP |
11 |
.RZ |
mod2 8 |
meaning |
0 |
default |
1 |
.SAT |
FADD32I
Instruction usage:
FADD32I(.FTZ) reg0, (-/|)reg1(|), 0xabcd;
Template opcode
0100 000000 1110 000000 000000 00000000000000000000000000000000 010100
mod reg0 reg1 0xabcd
mod bit |
meaning |
0 |
0: default |
|
1: -reg1 |
2 |
0: default |
|
1: |
4 |
0: default |
|
1: .FTZ |
FMUL
Instruction usage:
FMUL(.FTZ)(.rnd)(.SAT) reg0, reg1, (-)composite operand;
Template opcode:
0000 000000 1110 000000 000000 0000000000000000000000 0000000000 011010
mod reg0 reg1 immea mod2
mod2 0 |
meaning |
0 |
default |
1 |
-composite operand |
mod2 1:2 |
.rnd |
00 |
default(.rn) |
10 |
.RM |
01 |
.RP |
11 |
.RZ |
mod 0:1 |
.meaning |
00 |
default |
10 |
.FMA |
10 |
.FMA2 |
11 |
Invalid |
mod 2:3 |
meaning |
00 |
default |
10 |
.FTZ |
01 |
.FMZ |
11 |
Invalid |
mod 4 |
meaning |
0 |
default |
1 |
.SAT |
FMUL32I
Instruction usage:
FMUL32I(.FTZ)(.SAT) reg0, reg1, F(-)123.123;
Template opcode:
0100 000000 1110 000000 000000 00000000000000000000000000000000 001100
mod reg0 reg1 fp number
mod 0:1 |
meaning |
00 |
default |
10 |
.FMA |
10 |
.FMA2 |
11 |
Invalid |
mod 2:3 |
meaning |
00 |
default |
10 |
.FTZ |
01 |
.FMZ |
11 |
Invalid |
mod 4 |
meaning |
0 |
default |
1 |
.SAT |
FFMA
Instruction Usage:
FFMA(.FTZ)(.roundOp)(.SAT) reg0, reg1, (-)composite operand, (-)reg3;
Or,
FFMA(.FTZ)(.roundOp)(.SAT) reg0, reg1, (-)reg2, (-)composite operand;
Note that either the third or the fourth operand is a composite operand, but the other one must be a register.
Template Opcode
0000 000000 1110 000000 000000 0000000000000000000000 0 000000 000 001100
mod reg0 reg1 immea reg3 mod2
mod2 1:2 |
.rnd |
00 |
default (.rn) |
10 |
.RM |
01 |
.RP |
11 |
.RZ |
mod 0 |
meaning |
0 |
default |
1 |
-composite operand |
mod 1 |
meaning |
0 |
default |
1 |
-reg3 |
mod 2:3 |
meaning |
00 |
default |
10 |
.FTZ |
01 |
.FMZ |
11 |
Invalid |
mod 4 |
meaning |
0 |
default |
1 |
.SAT |
FSETP
Instruction usage:
FSETP.compOp(.logicOp) p (,|p), (-)(|)reg1(|), (-)(|)composite operand(|) (,opp);
For what p, |p and opp mean, please refer to the setp instruction section in the ptx manual.
Template opcode:
0000 000000 1110 111 000 000000 0000000000000000000000 0 1110 000000 00100
mod |p p reg1 immea opp mod2
mod bit |
meaning |
0 |
0: default |
|
1: -reg1 |
1 |
0: default |
|
1: -composite operand |
2 |
0: default |
|
1: |
3 |
0: default |
|
1: |
mod2 0:3 value |
.compOp |
1 |
.LT |
2 |
.EQ |
3 |
.LE |
4 |
.GT |
5 |
.NE |
6 |
.GE |
7 |
.NUM |
8 |
.NAN |
9 |
.LTU |
10 |
.EQU |
11 |
.LEU |
12 |
.GTU |
14 |
.GEU |
mod2 4:5 value |
.logicOp |
0 |
.AND |
1 |
.OR |
2 |
.XOR |
FCMP
Instruction usage:
FCMP.CompOp(.FTZ) reg0, reg1, composite operand, reg3;
Template opcode
0000 000000 1110 000000 000000 0000000000000000000000 0 000000 0000 11100
mod reg0 reg1 immea reg3 mod2
mod 4 |
meaning |
0 |
default |
1 |
.FTZ |
mod2 0:3 value |
.CompOp |
1 |
.LT |
2 |
.EQ |
3 |
.LE |
4 |
.GT |
5 |
.NE |
6 |
.GE |
7 |
.NUM |
8 |
.NAN |
9 |
.LTU |
10 |
.EQU |
11 |
.LEU |
12 |
.GTU |
14 |
.GEU |
MUFU
Instruction usage:
MUFU.(Op)(.SAT) reg0, reg1;
Template opcode
0000 000000 1110 000000 000000 0000 0000000000000000000000000000 010011
mod reg0 reg1 mod2
mod bit |
meaning |
0 |
0: default |
|
1: -reg1 |
2 |
0: default |
|
1: |
4 |
0: default |
|
1: .SAT |
mod2 value |
.Op |
0 |
.COS |
1 |
.SIN |
2 |
.EX2 |
3 |
.LG2 |
4 |
.RCP |
5 |
.RSQ |
6 |
.RCP64H |
7 |
.RSQ64H |
DADD
Instruciton usage
DADD(.rnd) reg0, (-)(|)reg1(|), (-)(|)composite operand(|);
Template opcode
1000 000000 1110 000000 000000 0000000000000000000000 0000000000 110010
mod reg0 reg1 immea mod2
mod bit |
meaning |
0 |
0: default |
|
1: -reg1 |
1 |
0: default |
|
1: -composite operand |
2 |
0: default |
|
1: |
3 |
0: default |
|
1: |
mod2 1:2 |
.rnd |
00 |
default (.rn) |
10 |
.RM |
01 |
.RP |
11 |
.RZ |
DMUL
DMUL(.rnd) reg0, reg1, (-)composite operand;
Template opcode
1000 000000 1110 000000 000000 0000000000000000000000 0000000000 001010
mod reg0 reg1 immea mod2
mod 0 |
meaning |
0 |
default |
1 |
-composite operand |
mod2 1:2 |
.rnd |
00 |
default (.rn) |
10 |
.RM |
01 |
.RP |
11 |
.RZ |
DFMA
Instruction usage:
DFMA reg0, reg1, (-)composite operand, (-)reg3;
Or,
DFMA reg0, reg1, (-)reg2, (-)composite operand;
Note that either the third or the fourth operand is a composite operand, but the other one must be a register.
Template opcode
1000 000000 1110 000000 000000 0000000000000000000000 0 000000 000 000100
mod reg0 reg1 immea reg3 mod2
mod 0 |
meaning |
0 |
default |
1 |
-composite operand |
mod 1 |
meaning |
0 |
default |
1 |
-reg3 |
DSETP
Instruction usage:
DSETP.compOp(.logicOp) p (,|p), (-)(|)reg1(|), (-)(|)composite operand(|) (,opp);
1000 000000 1110 111 000 000000 0000000000000000000000 0 1110 000000 11000
mod |p p reg1 immea opp mod2
mod bit |
meaning |
0 |
0: default |
|
1: -reg1 |
1 |
0: default |
|
1: -composite operand |
2 |
0: default |
|
1: |
3 |
0: default |
|
1: |
mod2 0:3 value |
.compOp |
1 |
.LT |
2 |
.EQ |
3 |
.LE |
4 |
.GT |
5 |
.NE |
6 |
.GE |
7 |
.NUM |
8 |
.NAN |
9 |
.LTU |
10 |
.EQU |
11 |
.LEU |
12 |
.GTU |
14 |
.GEU |
mod2 4:5 value |
.logicOp |
0 |
.AND |
1 |
.OR |
2 |
.XOR |