
TM1300 Data Book
Philips Semiconductors
A-172
PRODUCT SPECIFICATION
Sum of products of unsigned 16-bit halfwords
SYNTAX
[ IF rguard ] ufir16 rsrc1 rsrc2
→
rdest
FUNCTION
if
rguard
then
rdest
←
zero_ext16to32(rsrc1<31:16>)
×
zero_ext16to32(rsrc2<31:16>) +
zero_ext16to32(rsrc1<15:0>)
×
zero_ext16to32(rsrc2<15:0>)
ATTRIBUTES
Function unit
Operation code
Number of operands
Modifier
Modifier range
Latency
Issue slots
dspmul
94
2
No
—
3
2, 3
DESCRIPTION
As shown below, the
ufir16
operation computes two separate products of the two pairs of corresponding 16-bit
halfwords of rsrc1 and rsrc2 the two products are summed, and the result is written to rdest All halfwords are
considered unsigned; thus, the intermediate products and the final sum of products are unsigned. All intermediate
computations are performed without loss of precision; the final sum of products is clipped into the range [0xffffffff..0]
before being written into rdest
The
ufir16
operation optionally takes a guard, specified in rguard If a guard is present, its LSB controls the
modification of the destination register. If the LSB of rguardis 1, rdestis written; otherwise, rdestis not changed.
EXAMPLES
Initial Values
Operation
Result
r30 = 0x00020003, r40 = 0x00010002
r10 = 0, r60 = 0x80000064, r70 = 0x00648000
r20 = 1, r60 = 0x80000064, r70 = 0x00648000
r30 = 0x00020003, r70 = 0x00648000
ufir16 r30 r40
→
r50
IF r10 ufir16 r60 r70
→
r80
IF r20 ufir16 r60 r70
→
r90
ufir16 r30 r70
→
r100
r50
←
8
no change, since guard is false
r90
←
0x00640000
r100
←
0x000180c8
0
1
3
rsrc1
0
1
3
rsrc2
0
3
rdest
×
×
+
unsigned
unsigned
unsigned
unsigned
unsigned
0
3
Clip to [2
32
–1..0]
Full-precision
33-bit result
unsigned
SEE ALSO
ifir16 ifir8ii ifir8ui
ufir8uu
ufir16