VU Execution Times
============================
Vers. 0.1 2004/09/12 by blue
For correction or comments mail to blue at neoscientists.org
Updates are available from http://www.neoscientists.org/
===================================================================
VU Micro Mode Upper Instructions
------------------------------------------------------------------
instr. | description | throughput/latency
--------+-----------------------------------+--------------------
ABS | absolute value | 1/4
ADD | add | 1/4
ADDi | add to I | 1/4
ADDq | add to Q | 1/4
ADDbc | broadcast add | 1/4
ADDA | add to accu | 1/4
ADDAi | add I to accu | 1/4
ADDAq | add Q to accu | 1/4
ADDAbc | broadcast add to accu | 1/4
CLIP | clipping judgement | 1/4
FTOI0 | convert to fixed point | 1/4
FTOI4 | convert to fixed point | 1/4
FTOI12 | convert to fixed point | 1/4
FTOI15 | convert to fixed point | 1/4
ITOF0 | convert to floating point | 1/4
ITOF4 | convert to floating point | 1/4
ITOF12 | convert to floating point | 1/4
ITOF15 | convert to floating point | 1/4
MADD | product sum | 1/4
MADDi | product sum with I | 1/4
MADDq | product sum by Q | 1/4
MADDbc | broadcast product sum | 1/4
MADDA | product sum to accu | 1/4
MADDAi | product sum by I to accu | 1/4
MADDAq | product sum by Q to accu | 1/4
MAX | maximum value | 1/4
MAXi | maximum value | 1/4
MAXbc | maximum value | 1/4
MINI | minimum value | 1/4
MINIi | minimum value | 1/4
MINIbc | minimum value | 1/4
MSUB | multiply and subtract | 1/4
MSUBi | multiply and sub with I | 1/4
MSUBq | multiply and sub by Q | 1/4
MSUBbc | broadcast multiply and sub | 1/4
MSUBA | multiply and sub to accu | 1/4
MSUBAi | multiply and sub with I to accu | 1/4
MSUBAq | multiply and sub by Q to accu | 1/4
MSUBAbc | broadcast mul and sub to accu | 1/4
MUL | multiply | 1/4
MULi | multiply by I | 1/4
MULq | multiply by Q | 1/4
MULbc | multiply by broadcast | 1/4
MULA | multiply to accu | 1/4
MULAi | multiply by I to accu | 1/4
MULAq | multiply by Q to accu | 1/4
MULAbc | broadc. mul by broadcast to accu | 1/4
NOP | no operation | 1/4
OPMULA | vector outer product | 1/4
OPMSUB | vector outer product | 1/4
SUB | subtract | 1/4
SUBi | subtract I | 1/4
SUBq | subtract Q | 1/4
SUBbc | broadcast subtract | 1/4
SUBA | subtract to accu | 1/4
SUBAi | subtract I to accu | 1/4
SUBAq | subtract Q to accu | 1/4
SUBAbc | broadcast subtract to accu | 1/4
===================================================================
VU Micro Mode Lower Instructions
------------------------------------------------------------------
instr. | description | throughput/latency
--------+-----------------------------------+--------------------
B | unconditional branch | 2/2
BAL | save address and branch uncond. | 2/2
DIV | divide | 7/7
EATAN | arctangent | 53/54
EATANxy | arctangent | 53/54
EATANxz | arctangent | 53/54
EEXP | exponent | 43/44
ELENG | length | 17/18
ERCPR | reciprocal number | 11/12
ERLENG | reciprocal number of length | 23/24
ERSADD | reciprocal number of sum of sqrs | 17/18
ERSQRT | reciprocal number of sqrt | 17/18
ESADD | sum of square numbers | 10/11
ESIN | sine | 28/29
ESQRT | square root | 11/12
ESUM | sum of each field | 11/12
FCAND | test clipping flag | 1/1
FCEQ | test clipping flag | 1/1
FCGET | test clipping flag | 1/1
FCOR | test clipping flag | 1/1
FCSET | set clipping flag | 1/4
FMAND | test MAC flag check | 1/1
FMEQ | test MAC flag check | 1/1
FMOR | test MAC flag check | 1/1
FSAND | test status flag check | 1/1
FSEQ | test status flag check | 1/1
FSOR | test status flag | 1/1
FSSET | set sticky flags | 1/4
IADD | add integer | 1/1
IADDI | add immediate integer | 1/1
IADDIU | add immediate integer unsigned | 1/1
IAND | logical product | 1/1
IBEQ | conditional branch | 2/2
IBGEZ | conditional branch | 2/2
IBGTZ | conditional branch | 2/2
IBLEZ | conditional branch | 2/2
IBLTZ | conditional branch | 2/2
IBNE | conditional branch | 2/2
ILW | integer load word with offset | 1/4
ILWR | integer load word | 1/4
IOR | logical sum | 1/1
ISUB | integer subtract | 1/1
ISUBIU | integer subtract unsigned | 1/1
ISW | integer store word with offset | 1/4
ISWR | integer store word | 1/4
JALR | jump address link register | 2/2
JR | jump register | 2/2
LOI | load immediate to I (pseudo) | 1/1
LQ | load qword | 1/4
LQD | load qword with pre-decrement | 1/4
LQI | load qword with post-increment | 1/4
MFIR | move from int reg to float reg | 1/4
MFP | move from P to float reg | 1/4
MOVE | transfer between float regs | 1/4
MR32 | move with rotate | 1/4
MTIR | move from float reg to int reg | 1/1
RGET | get random number | 1/4
RINIT | random number initialise | 1/1
RNEXT | next random number | 1/4
RSQRT | square root division | 13/13
RXOR | random number set | 1/1
SQ | store qword | 1/4
SQD | store qword with pre-decrement | 1/4
SQI | store qword with post-increment | 1/4
SQRT | square root | 7/7
WAITP | P register synchronize | 1~54/1~54
WAITQ | Q register synchronize | 1~13/1~13
XGKICK | GIF control | 1~/1~
XITOP | VIF control | 1/1
XTOP | VIF control | 1/1