Revision 1.0
VU Multiply Instructions
65
Vector Multiply Examples
The following code fragments illustrate various multiplies. In this section,
the following notation is used:
•
I
is a signed 16-bit integer.
•
F
is an unsigned 16-bit fraction.
•
IF
is a 32-bit number, with the signed upper 16 bits contained in
one register, and the unsigned lower 16 bits contained in a second
register.
•
_int
is a named vector register holding a signed 16 bit number.
•
_frac
is a named vector register holding an unsigned 16 bit
fraction.
•
dev_null
is a named vector register containing all zeros.
IFxI:
#
# mixed precision multiply:
# IF * I = IF
#
vmudn res_frac, s_frac, t_int
vmadh res_int, s_int, t_int
vmadn res_frac, dev_null, dev_null[0]
IxIF:
#
# mixed precision multiply:
# I * IF = IF
#
vmudm res_frac, s_int, t_frac
vmadh res_int, s_int, t_int
vmadn res_frac, dev_null, dev_null[0]
IFxF:
#
# mixed precision multiply:
# IF * F = IF
#
vmudl res_frac, s_frac, t_frac
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 ...