Revision 1.0
VU Multiply Instructions
61
VU Multiply Instructions
Figure 3-9
VU Multiply Opcode Encoding
VU multiply instructions perform various multiplies, specified by the
following fields:
Element:
Vector or scalar element of
vt
.
A:
When
a
== 1
, Accumulate the product, otherwise round the product
and load the accumulator. The round value is determined by the
format.
Format:
Select various product and result options.
The
product
is the 32 bit signed result from the 16x16 signed multiply. Each
element of the
accumulator
is 48 bits wide (see “Accumulator” on page 36).
The
result
is the 16 bits of the accumulator written to
vd
. Double precision
(32 bit) operands are supported by multiplying and accumulating the low 16
bits from one vector operand and the upper 16 bits from another vector
operand in several multiply instructions. Formats for various product and
result options are shown in Table 3-4.
Table 3-4
VU Multiply Instruction Summary
Fmt
S, T signed
Prod
Shift
Round Value
Result
Clamping
Instructions
0 0 0
sign, sign
<< 1
+32768
b31-16
sign, b31-msb
vmulf, vmacf
0 0 1
sign, sign
<< 1
+32768
b31-16
uns, b31-msb
vmulu, vmacu
0 1 0
NA, sign
NA
+VT if Acc
b31-16
sign, b31-msb
vrndp, vrndn
0 1 1
sign, sign
<< 16
+31 if Prod
b32-17
sign, b32-msb
vmulq, vmacq
1 0 0
uns, uns
>> 16
0
b15-0
sign, b31-msb
vmudl, vmadl
1 0 1
sign, uns
0
0
b31-16
sign, b31-msb
vmudm, vmadm
format
0
2
3
5
0 0
a
4
Summary of Contents for Ultra64
Page 2: ...2 ...
Page 10: ...10 ...
Page 12: ...12 Figure 6 2 buildtask Operation 137 ...
Page 14: ...14 ...
Page 80: ...80 Vector Unit Instructions vmadm dres_int dres_int vconst 3 vmadn dres_frac vconst vconst 0 ...
Page 104: ...104 RSP Coprocessor 0 ...
Page 150: ...150 Advanced Information ...
Page 155: ...Revision 1 0 155 ...
Page 248: ...248 Exceptions None ...
Page 251: ...Revision 1 0 251 Exceptions None ...
Page 254: ...254 Exceptions None ...
Page 257: ...Revision 1 0 257 Exceptions None ...
Page 293: ...Revision 1 0 293 Exceptions None ...
Page 316: ...316 Exceptions None ...