jak-project/docs/scratch/tie.txt
water111 a8342aef31
[graphics] TIE extractor (#1026)
* temp

* temp

* wip

* more progress on the instance asm

* first half of tie extraction, up to dma lists

* more tie extraction

* first part figured out maybe

* bp1 loop seems to work, bp2 loop does not

* bp1 and bp2 appear working. sadly ip is needed

* ip1 outline, not working ip2

* just kidding, ip2 seems to work

* extraction seems to work

* basic rendering working

* tie fixes

* performance optimization of tie renderer

* hook up tie to engine

* fix more bugs

* cleanup and perf improvements

* fix tests

* ref tests

* mm256i for gcc

* CLANG

* windows

* more compile fixes

* fix fast time of day

* small fixes

* fix after merge

* clang
2021-12-26 12:33:51 -05:00

1042 lines
57 KiB
Plaintext

b L9 | nop
mr32.xyzw vf21, vf21 | nop
b L42 | nop
nop | nop
b L43 | nop
nop | nop
b L1 | nop
;; INITIALIZATION
iaddi vi02, vi00, 0x0 | subx.xz vf21, vf23, vf21
iaddi vi01, vi00, 0x1 | nop
lq.xyzw vf21, 969(vi00) | nop
lq.xz vf23, 968(vi00) | nop
lq.xyzw vf22, 970(vi00) | nop
isw.x vi00, 971(vi00) | nop :e
isw.y vi01, 971(vi00) | nop
L1:
lq.xyz vf01, 966(vi00) | nop
ilwr.w vi04, vi02 | nop
ilw.w vi09, 1(vi02) | nop
mtir vi06, vf21.y | nop
lqi.xyzw vf02, vi02 | suby.xz vf21, vf21, vf21
lqi.xyzw vf03, vi02 | nop
lqi.xyzw vf04, vi02 | nop
lqi.xyzw vf05, vi02 | nop
mtir vi05, vf21.x | nop
lqi.xyzw vf06, vi02 | subw.w vf01, vf01, vf01
L2:
iadd vi03, vi04, vi05 | nop
iadd vi04, vi04, vi06 | nop
iaddi vi09, vi09, -0x1 | nop
sqi.xyzw vf01, vi03 | nop
sqi.xyzw vf02, vi03 | nop
sqi.xyzw vf03, vi03 | nop
sqi.xyzw vf04, vi03 | nop
sqi.xyzw vf05, vi03 | nop
sqi.xyzw vf06, vi03 | nop
sqi.xyzw vf01, vi04 | nop
sqi.xyzw vf02, vi04 | nop
sqi.xyzw vf03, vi04 | nop
sqi.xyzw vf04, vi04 | nop
sqi.xyzw vf05, vi04 | nop
sqi.xyzw vf06, vi04 | nop
ilwr.w vi04, vi02 | nop
lqi.xyzw vf02, vi02 | nop
lqi.xyzw vf03, vi02 | nop
lqi.xyzw vf04, vi02 | nop
lqi.xyzw vf05, vi02 | nop
ibgtz vi09, L2 | nop
lqi.xyzw vf06, vi02 | nop
mtir vi09, vf02.w | nop
iaddi vi02, vi02, -0x2 | subw.w vf07, vf07, vf07
ilwr.x vi07, vi02 | nop
ilwr.y vi08, vi02 | nop
ilwr.z vi04, vi02 | nop
iaddi vi09, vi09, -0x1 | nop
iaddi vi02, vi02, 0x1 | nop
ibeq vi00, vi09, L4 | nop
lq.xyz vf07, 967(vi08) | nop
L3:
iadd vi03, vi04, vi05 | nop
iadd vi04, vi04, vi06 | nop
iaddi vi09, vi09, -0x1 | nop
sq.xyzw vf07, 0(vi03) | nop
iswr.x vi07, vi03 | nop
sq.xyzw vf07, 0(vi04) | nop
iswr.x vi07, vi04 | nop
ilwr.x vi07, vi02 | nop
ilwr.y vi08, vi02 | nop
ilwr.z vi04, vi02 | nop
iaddi vi02, vi02, 0x1 | nop
ibne vi00, vi09, L3 | nop
lq.xyz vf07, 967(vi08) | nop
L4:
iaddiu vi07, vi07, 0x4000 | nop
iaddiu vi07, vi07, 0x4000 | nop
iadd vi03, vi04, vi05 | nop
iadd vi04, vi04, vi06 | nop
sq.xyzw vf07, 0(vi03) | nop
iswr.x vi07, vi03 | nop
sq.xyzw vf07, 0(vi04) | nop
iswr.x vi07, vi04 | nop
mtir vi06, vf04.x | nop
lq.xyzw vf05, 50(vi00) | nop
lq.xyzw vf15, 51(vi00) | nop
iaddiu vi05, vi00, 0x34 | nop
nop | nop
iaddiu vi06, vi06, 0x32 | itof0.xyzw vf05, vf05
lqi.xyzw vf06, vi05 | itof12.xyz vf15, vf15
lqi.xyzw vf16, vi05 | itof0.w vf15, vf15
64.0 | nop :i
ibeq vi06, vi05, L6 | muli.xyz vf05, vf05, I
mtir vi07, vf04.y | itof0.xyzw vf06, vf06
L5:
lqi.xyzw vf07, vi05 | itof12.xyz vf16, vf16
lqi.xyzw vf17, vi05 | itof0.w vf16, vf16
sq.xyzw vf15, -5(vi05) | nop
ibeq vi06, vi05, L6 | muli.xyz vf06, vf06, I
sq.xyzw vf05, -6(vi05) | itof0.xyzw vf07, vf07
lqi.xyzw vf05, vi05 | itof12.xyz vf17, vf17
lqi.xyzw vf15, vi05 | itof0.w vf17, vf17
sq.xyzw vf16, -5(vi05) | nop
ibeq vi06, vi05, L6 | muli.xyz vf07, vf07, I
sq.xyzw vf06, -6(vi05) | itof0.xyzw vf05, vf05
lqi.xyzw vf06, vi05 | itof12.xyz vf15, vf15
lqi.xyzw vf16, vi05 | itof0.w vf15, vf15
sq.xyzw vf17, -5(vi05) | nop
ibne vi06, vi05, L5 | muli.xyz vf05, vf05, I
sq.xyzw vf07, -6(vi05) | itof0.xyzw vf06, vf06
L6:
lq.xyzw vf09, -4(vi05) | nop
lq.xyzw vf05, -3(vi05) | nop
lq.xyzw vf15, -2(vi05) | nop
iadd vi07, vi07, vi05 | nop
iaddi vi07, vi07, -0x4 | nop
iaddi vi05, vi05, -0x1 | nop
iaddi vi08, vi05, -0x3 | nop
ibeq vi07, vi05, L8 | nop
nop | itof0.xyzw vf09, vf09
lqi.xyzw vf10, vi05 | itof0.xyzw vf05, vf05
lqi.xyzw vf06, vi05 | itof0.w vf15, vf15
lqi.xyzw vf16, vi05 | itof12.xyz vf15, vf15
nop | nop
nop | muli.xyz vf09, vf09, I
ibeq vi07, vi05, L8 | muli.xyz vf05, vf05, I
nop | itof0.xyzw vf10, vf10
L7:
lqi.xyzw vf11, vi05 | itof0.xyzw vf06, vf06
lqi.xyzw vf07, vi05 | itof0.w vf16, vf16
lqi.xyzw vf17, vi05 | itof12.xyz vf16, vf16
sqi.xyzw vf09, vi08 | nop
sqi.xyzw vf05, vi08 | muli.xyz vf10, vf10, I
ibeq vi07, vi05, L8 | muli.xyz vf06, vf06, I
sqi.xyzw vf15, vi08 | itof0.xyzw vf11, vf11
lqi.xyzw vf09, vi05 | itof0.xyzw vf07, vf07
lqi.xyzw vf05, vi05 | itof0.w vf17, vf17
lqi.xyzw vf15, vi05 | itof12.xyz vf17, vf17
sqi.xyzw vf10, vi08 | nop
sqi.xyzw vf06, vi08 | muli.xyz vf11, vf11, I
ibeq vi07, vi05, L8 | muli.xyz vf07, vf07, I
sqi.xyzw vf16, vi08 | itof0.xyzw vf09, vf09
lqi.xyzw vf10, vi05 | itof0.xyzw vf05, vf05
lqi.xyzw vf06, vi05 | itof0.w vf15, vf15
lqi.xyzw vf16, vi05 | itof12.xyz vf15, vf15
sqi.xyzw vf11, vi08 | nop
sqi.xyzw vf07, vi08 | muli.xyz vf09, vf09, I
ibne vi07, vi05, L7 | muli.xyz vf05, vf05, I
sqi.xyzw vf17, vi08 | itof0.xyzw vf10, vf10
L8:
mtir vi01, vf04.z | nop
mtir vi05, vf02.x | nop
mtir vi14, vf02.y | nop
mtir vi04, vf03.x | nop
mtir vi06, vf03.y | nop
mtir vi07, vf03.z | nop
mtir vi08, vf03.w | nop
isw.x vi01, 971(vi00) | nop
iaddi vi15, vi00, 0x0 | nop
mtir vi03, vf22.x | nop
iaddiu vi02, vi00, 0x32 | nop
mr32.xyzw vf21, vf21 | nop
mfir.y vf23, vi00 | nop :e
mfir.w vf23, vi00 | nop
L9:
lqi.xyzw vf05, vi02 | nop
lq.xyzw vf24, 6(vi03) | nop
lq.xyzw vf13, 3(vi03) | nop
lq.xyzw vf01, 0(vi03) | nop
lq.xyzw vf02, 1(vi03) | nop
lq.xyzw vf12, 2(vi03) | nop
mtir vi09, vf24.x | nop
lqi.xyzw vf15, vi02 | mulaw.xyzw ACC, vf13, vf00
lq.xyzw vf27, 4(vi03) | maddax.xyzw ACC, vf01, vf05
ilw.x vi01, 5(vi03) | madday.xyzw ACC, vf02, vf05
lq.xyzw vf11, 838(vi09) | maddz.xyzw vf09, vf12, vf05
lqi.xyzw vf06, vi02 | nop
lq.xyzw vf19, 5(vi03) | nop
iaddi vi03, vi03, 0x7 | nop
mtir vi09, vf24.y | addx.w vf20, vf19, vf00
div Q, vf00.w, vf09.w | mulaw.xyzw ACC, vf13, vf00
lqi.xyzw vf16, vi02 | maddax.xyzw ACC, vf01, vf06
mtir vi01, vf21.x | madday.xyzw ACC, vf02, vf06
lq.xyzw vf03, 838(vi09) | maddz.xyzw vf10, vf12, vf06
isub vi01, vi01, vi15 | ftoi4.w vf19, vf19
iadd vi04, vi04, vi01 | ftoi4.w vf20, vf20
iadd vi06, vi06, vi01 | nop
lqi.xyzw vf07, vi02 | mul.xyz vf09, vf09, Q
div Q, vf00.w, vf10.w | mul.xyz vf15, vf15, Q
mtir vi09, vf24.z | addx.w vf05, vf05, vf21
lqi.xyzw vf17, vi02 | mulaw.xyzw ACC, vf13, vf00
iadd vi07, vi07, vi01 | maddax.xyzw ACC, vf01, vf07
iadd vi08, vi08, vi01 | madday.xyzw ACC, vf02, vf07
lq.xyzw vf04, 838(vi09) | ftoi4.xyz vf19, vf09
ibeq vi04, vi12, L40 | maddz.xyzw vf09, vf12, vf07
iadd vi15, vi15, vi01 | nop
L10:
mtir vi12, vf05.w | nop
lqi.xyzw vf08, vi02 | mul.xyz vf10, vf10, Q
div Q, vf00.w, vf09.w | mul.xyz vf16, vf16, Q
mtir vi09, vf24.w | addx.w vf06, vf06, vf21
lqi.xyzw vf18, vi02 | mulaw.xyzw ACC, vf13, vf00
sq.xyzw vf15, 0(vi12) | maddax.xyzw ACC, vf01, vf08
sq.xyzw vf11, 1(vi12) | madday.xyzw ACC, vf02, vf08
lq.xyzw vf14, 838(vi09) | ftoi4.xyz vf20, vf10
ibeq vi04, vi12, L13 | maddz.xyzw vf10, vf12, vf08
sq.xyzw vf19, 2(vi12) | nop
lqi.xyzw vf24, vi03 | nop
mtir vi12, vf06.w | nop
lqi.xyzw vf05, vi02 | mul.xyz vf09, vf09, Q
div Q, vf00.w, vf10.w | mul.xyz vf17, vf17, Q
mtir vi09, vf24.x | addx.w vf07, vf07, vf21
lqi.xyzw vf15, vi02 | mulaw.xyzw ACC, vf13, vf00
sq.xyzw vf16, 0(vi12) | maddax.xyzw ACC, vf01, vf05
sq.xyzw vf03, 1(vi12) | madday.xyzw ACC, vf02, vf05
lq.xyzw vf11, 838(vi09) | ftoi4.xyz vf19, vf09
ibeq vi04, vi12, L12 | maddz.xyzw vf09, vf12, vf05
sq.xyzw vf20, 2(vi12) | nop
mtir vi12, vf07.w | nop
lqi.xyzw vf06, vi02 | mul.xyz vf10, vf10, Q
div Q, vf00.w, vf09.w | mul.xyz vf18, vf18, Q
mtir vi09, vf24.y | addx.w vf08, vf08, vf21
lqi.xyzw vf16, vi02 | mulaw.xyzw ACC, vf13, vf00
sq.xyzw vf17, 0(vi12) | maddax.xyzw ACC, vf01, vf06
sq.xyzw vf04, 1(vi12) | madday.xyzw ACC, vf02, vf06
lq.xyzw vf03, 838(vi09) | ftoi4.xyz vf20, vf10
ibeq vi04, vi12, L11 | maddz.xyzw vf10, vf12, vf06
sq.xyzw vf19, 2(vi12) | nop
mtir vi12, vf08.w | nop
lqi.xyzw vf07, vi02 | mul.xyz vf09, vf09, Q
div Q, vf00.w, vf10.w | mul.xyz vf15, vf15, Q
mtir vi09, vf24.z | addx.w vf05, vf05, vf21
lqi.xyzw vf17, vi02 | mulaw.xyzw ACC, vf13, vf00
sq.xyzw vf18, 0(vi12) | maddax.xyzw ACC, vf01, vf07
sq.xyzw vf14, 1(vi12) | madday.xyzw ACC, vf02, vf07
lq.xyzw vf04, 838(vi09) | ftoi4.xyz vf19, vf09
ibne vi04, vi12, L10 | maddz.xyzw vf09, vf12, vf07
sq.xyzw vf20, 2(vi12) | nop
mtir vi12, vf05.w | nop
ibne vi00, vi05, L24 | mul.xyz vf10, vf10, Q
lqi.xyzw vf08, vi02 | mul.xyz vf16, vf16, Q
div Q, vf00.w, vf09.w | addx.w vf06, vf06, vf21
mtir vi09, vf24.w | mulaw.xyzw ACC, vf13, vf00
lqi.xyzw vf24, vi03 | nop
sq.xyzw vf15, 0(vi12) | addx.w vf07, vf07, vf21
sq.xyzw vf11, 1(vi12) | maddax.xyzw ACC, vf01, vf08
lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf08
lq.xyzw vf14, 838(vi09) | ftoi4.xyz vf20, vf10
lqi.xyzw vf05, vi02 | maddz.xyzw vf10, vf12, vf08
sq.xyzw vf19, 2(vi12) | mul.xyz vf09, vf09, Q
mtir vi12, vf06.w | mul.xyz vf17, vf17, Q
lqi.xyzw vf15, vi02 | mulaw.xyzw ACC, vf13, vf00
mtir vi09, vf24.x | maddax.xyzw ACC, vf01, vf05
nop | madday.xyzw ACC, vf02, vf05
div Q, vf00.w, vf10.w | ftoi4.xyz vf19, vf09
sq.xyzw vf16, 0(vi12) | maddz.xyzw vf09, vf12, vf05
sq.xyzw vf03, 1(vi12) | nop
sq.xyzw vf20, 2(vi12) | nop
mtir vi12, vf07.w | nop
lq.xyzw vf11, 838(vi09) | addx.w vf08, vf08, vf21
div Q, vf00.w, vf09.w | mul.xyz vf10, vf10, Q
sq.xyzw vf17, 0(vi12) | mul.xyz vf18, vf18, Q
sq.xyzw vf04, 1(vi12) | addx.w vf18, vf18, vf21
sq.xyzw vf19, 2(vi12) | nop
b L14 | ftoi4.xyz vf20, vf10
mtir vi12, vf08.w | nop
L11:
mtir vi12, vf08.w | nop
ibne vi00, vi05, L23 | mul.xyz vf09, vf09, Q
lqi.xyzw vf07, vi02 | mul.xyz vf15, vf15, Q
div Q, vf00.w, vf10.w | addx.w vf05, vf05, vf21
mtir vi09, vf24.z | mulaw.xyzw ACC, vf13, vf00
sq.xyzw vf18, 0(vi12) | nop
sq.xyzw vf14, 1(vi12) | maddax.xyzw ACC, vf01, vf07
lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf07
lq.xyzw vf04, 838(vi09) | ftoi4.xyz vf19, vf09
lqi.xyzw vf08, vi02 | maddz.xyzw vf09, vf12, vf07
sq.xyzw vf20, 2(vi12) | mul.xyz vf10, vf10, Q
mtir vi12, vf05.w | mul.xyz vf16, vf16, Q
lqi.xyzw vf18, vi02 | mulaw.xyzw ACC, vf13, vf00
div Q, vf00.w, vf09.w | maddax.xyzw ACC, vf01, vf08
mtir vi09, vf24.w | addx.w vf06, vf06, vf21
lqi.xyzw vf24, vi03 | nop
sq.xyzw vf15, 0(vi12) | madday.xyzw ACC, vf02, vf08
sq.xyzw vf11, 1(vi12) | ftoi4.xyz vf20, vf10
sq.xyzw vf19, 2(vi12) | maddz.xyzw vf10, vf12, vf08
mtir vi12, vf06.w | nop
lq.xyzw vf14, 838(vi09) | addx.w vf07, vf07, vf21
div Q, vf00.w, vf10.w | mul.xyz vf09, vf09, Q
sq.xyzw vf16, 0(vi12) | mul.xyz vf17, vf17, Q
sq.xyzw vf03, 1(vi12) | addx.w vf17, vf17, vf21
sq.xyzw vf20, 2(vi12) | nop
b L17 | ftoi4.xyz vf19, vf09
mtir vi12, vf07.w | nop
L12:
mtir vi12, vf07.w | nop
ibne vi00, vi05, L22 | mul.xyz vf10, vf10, Q
lqi.xyzw vf06, vi02 | mul.xyz vf18, vf18, Q
div Q, vf00.w, vf09.w | addx.w vf08, vf08, vf21
mtir vi09, vf24.y | mulaw.xyzw ACC, vf13, vf00
sq.xyzw vf17, 0(vi12) | nop
sq.xyzw vf04, 1(vi12) | maddax.xyzw ACC, vf01, vf06
lqi.xyzw vf16, vi02 | madday.xyzw ACC, vf02, vf06
lq.xyzw vf03, 838(vi09) | ftoi4.xyz vf20, vf10
lqi.xyzw vf07, vi02 | maddz.xyzw vf10, vf12, vf06
sq.xyzw vf19, 2(vi12) | mul.xyz vf09, vf09, Q
mtir vi12, vf08.w | mul.xyz vf15, vf15, Q
lqi.xyzw vf17, vi02 | mulaw.xyzw ACC, vf13, vf00
div Q, vf00.w, vf10.w | maddax.xyzw ACC, vf01, vf07
mtir vi09, vf24.z | addx.w vf05, vf05, vf21
sq.xyzw vf18, 0(vi12) | madday.xyzw ACC, vf02, vf07
sq.xyzw vf14, 1(vi12) | ftoi4.xyz vf19, vf09
sq.xyzw vf20, 2(vi12) | maddz.xyzw vf09, vf12, vf07
mtir vi12, vf05.w | nop
lq.xyzw vf04, 838(vi09) | addx.w vf06, vf06, vf21
sq.xyzw vf15, 0(vi12) | mul.xyz vf10, vf10, Q
div Q, vf00.w, vf09.w | mul.xyz vf16, vf16, Q
sq.xyzw vf11, 1(vi12) | addx.w vf16, vf16, vf21
sq.xyzw vf19, 2(vi12) | nop
b L16 | ftoi4.xyz vf20, vf10
mtir vi12, vf06.w | nop
L13:
lqi.xyzw vf24, vi03 | nop
mtir vi12, vf06.w | nop
ibne vi00, vi05, L21 | mul.xyz vf09, vf09, Q
lqi.xyzw vf05, vi02 | mul.xyz vf17, vf17, Q
div Q, vf00.w, vf10.w | addx.w vf07, vf07, vf21
mtir vi09, vf24.x | mulaw.xyzw ACC, vf13, vf00
sq.xyzw vf16, 0(vi12) | maddax.xyzw ACC, vf01, vf05
sq.xyzw vf03, 1(vi12) | madday.xyzw ACC, vf02, vf05
lqi.xyzw vf15, vi02 | ftoi4.xyz vf19, vf09
lq.xyzw vf11, 838(vi09) | maddz.xyzw vf09, vf12, vf05
lqi.xyzw vf06, vi02 | addx.w vf08, vf08, vf21
sq.xyzw vf20, 2(vi12) | mul.xyz vf10, vf10, Q
mtir vi12, vf07.w | mul.xyz vf18, vf18, Q
div Q, vf00.w, vf09.w | mulaw.xyzw ACC, vf13, vf00
mtir vi09, vf24.y | maddax.xyzw ACC, vf01, vf06
lqi.xyzw vf16, vi02 | madday.xyzw ACC, vf02, vf06
sq.xyzw vf17, 0(vi12) | ftoi4.xyz vf20, vf10
sq.xyzw vf04, 1(vi12) | maddz.xyzw vf10, vf12, vf06
sq.xyzw vf19, 2(vi12) | nop
mtir vi12, vf08.w | nop
lq.xyzw vf03, 838(vi09) | addx.w vf05, vf05, vf21
div Q, vf00.w, vf10.w | mul.xyz vf09, vf09, Q
sq.xyzw vf18, 0(vi12) | mul.xyz vf15, vf15, Q
sq.xyzw vf14, 1(vi12) | addx.w vf15, vf15, vf21
sq.xyzw vf20, 2(vi12) | nop
b L15 | ftoi4.xyz vf19, vf09
mtir vi12, vf05.w | nop
L14:
lqi.xyzw vf06, vi02 | nop
mtir vi09, vf24.y | nop
mtir vi13, vf18.w | mulaw.xyzw ACC, vf13, vf00
sq.xyzw vf18, 0(vi12) | addx.w vf05, vf05, vf21
sq.xyzw vf14, 1(vi12) | maddax.xyzw ACC, vf01, vf06
sq.xyzw vf20, 2(vi12) | madday.xyzw ACC, vf02, vf06
lqi.xyzw vf16, vi02 | maddz.xyzw vf10, vf12, vf06
lq.xyzw vf03, 838(vi09) | mul.xyz vf09, vf09, Q
sq.xyzw vf18, 0(vi13) | mul.xyz vf15, vf15, Q
sq.xyzw vf14, 1(vi13) | addx.w vf15, vf15, vf21
sq.xyzw vf20, 2(vi13) | nop
div Q, vf00.w, vf10.w | nop
ibeq vi06, vi12, L18 | ftoi4.xyz vf19, vf09
mtir vi12, vf05.w | nop
L15:
lqi.xyzw vf07, vi02 | nop
mtir vi09, vf24.z | nop
mtir vi13, vf15.w | mulaw.xyzw ACC, vf13, vf00
sq.xyzw vf15, 0(vi12) | addx.w vf06, vf06, vf21
sq.xyzw vf11, 1(vi12) | maddax.xyzw ACC, vf01, vf07
sq.xyzw vf19, 2(vi12) | madday.xyzw ACC, vf02, vf07
lqi.xyzw vf17, vi02 | maddz.xyzw vf09, vf12, vf07
lq.xyzw vf04, 838(vi09) | mul.xyz vf10, vf10, Q
sq.xyzw vf15, 0(vi13) | mul.xyz vf16, vf16, Q
sq.xyzw vf11, 1(vi13) | addx.w vf16, vf16, vf21
sq.xyzw vf19, 2(vi13) | nop
div Q, vf00.w, vf09.w | nop
ibeq vi06, vi12, L19 | ftoi4.xyz vf20, vf10
mtir vi12, vf06.w | nop
L16:
lqi.xyzw vf08, vi02 | nop
mtir vi09, vf24.w | nop
lqi.xyzw vf24, vi03 | nop
mtir vi13, vf16.w | mulaw.xyzw ACC, vf13, vf00
sq.xyzw vf16, 0(vi12) | addx.w vf07, vf07, vf21
sq.xyzw vf03, 1(vi12) | maddax.xyzw ACC, vf01, vf08
sq.xyzw vf20, 2(vi12) | madday.xyzw ACC, vf02, vf08
lqi.xyzw vf18, vi02 | maddz.xyzw vf10, vf12, vf08
lq.xyzw vf14, 838(vi09) | mul.xyz vf09, vf09, Q
sq.xyzw vf16, 0(vi13) | mul.xyz vf17, vf17, Q
sq.xyzw vf03, 1(vi13) | addx.w vf17, vf17, vf21
sq.xyzw vf20, 2(vi13) | nop
div Q, vf00.w, vf10.w | nop
ibeq vi06, vi12, L20 | ftoi4.xyz vf19, vf09
mtir vi12, vf07.w | nop
L17:
lqi.xyzw vf05, vi02 | nop
mtir vi09, vf24.x | nop
mtir vi13, vf17.w | mulaw.xyzw ACC, vf13, vf00
sq.xyzw vf17, 0(vi12) | addx.w vf08, vf08, vf21
sq.xyzw vf04, 1(vi12) | maddax.xyzw ACC, vf01, vf05
sq.xyzw vf19, 2(vi12) | madday.xyzw ACC, vf02, vf05
lqi.xyzw vf15, vi02 | maddz.xyzw vf09, vf12, vf05
lq.xyzw vf11, 838(vi09) | mul.xyz vf10, vf10, Q
sq.xyzw vf17, 0(vi13) | mul.xyz vf18, vf18, Q
sq.xyzw vf04, 1(vi13) | addx.w vf18, vf18, vf21
sq.xyzw vf19, 2(vi13) | nop
div Q, vf00.w, vf09.w | nop
ibne vi06, vi12, L14 | ftoi4.xyz vf20, vf10
mtir vi12, vf08.w | nop
nop | nop
nop | nop
mtir vi13, vf18.w | nop
sq.xyzw vf18, 0(vi12) | addx.w vf05, vf05, vf21
sq.xyzw vf14, 1(vi12) | addx.w vf15, vf15, vf21
sq.xyzw vf20, 2(vi12) | mul.xyz vf09, vf09, Q
sq.xyzw vf18, 0(vi13) | mul.xyz vf15, vf15, Q
sq.xyzw vf14, 1(vi13) | nop
sq.xyzw vf20, 2(vi13) | nop
mtir vi12, vf05.w | ftoi4.xyz vf19, vf09
mtir vi13, vf15.w | nop
sq.xyzw vf15, 0(vi12) | nop
sq.xyzw vf11, 1(vi12) | nop
sq.xyzw vf19, 2(vi12) | nop
sq.xyzw vf15, 0(vi13) | nop
sq.xyzw vf11, 1(vi13) | nop
ibeq vi00, vi14, L26 | nop
sq.xyzw vf19, 2(vi13) | nop
b L40 | nop
nop | nop
L18:
nop | nop
nop | nop
mtir vi13, vf15.w | nop
sq.xyzw vf15, 0(vi12) | addx.w vf06, vf06, vf21
sq.xyzw vf11, 1(vi12) | addx.w vf16, vf16, vf21
sq.xyzw vf19, 2(vi12) | mul.xyz vf10, vf10, Q
sq.xyzw vf15, 0(vi13) | mul.xyz vf16, vf16, Q
sq.xyzw vf11, 1(vi13) | nop
sq.xyzw vf19, 2(vi13) | nop
mtir vi12, vf06.w | ftoi4.xyz vf20, vf10
mtir vi13, vf16.w | nop
sq.xyzw vf16, 0(vi12) | nop
sq.xyzw vf03, 1(vi12) | nop
sq.xyzw vf20, 2(vi12) | nop
sq.xyzw vf16, 0(vi13) | nop
sq.xyzw vf03, 1(vi13) | nop
ibeq vi00, vi14, L27 | nop
sq.xyzw vf20, 2(vi13) | nop
b L40 | nop
nop | nop
L19:
nop | nop
nop | nop
mtir vi13, vf16.w | nop
sq.xyzw vf16, 0(vi12) | addx.w vf07, vf07, vf21
sq.xyzw vf03, 1(vi12) | addx.w vf17, vf17, vf21
sq.xyzw vf20, 2(vi12) | mul.xyz vf09, vf09, Q
sq.xyzw vf16, 0(vi13) | mul.xyz vf17, vf17, Q
sq.xyzw vf03, 1(vi13) | nop
sq.xyzw vf20, 2(vi13) | nop
mtir vi12, vf07.w | ftoi4.xyz vf19, vf09
mtir vi13, vf17.w | nop
sq.xyzw vf17, 0(vi12) | nop
sq.xyzw vf04, 1(vi12) | nop
sq.xyzw vf19, 2(vi12) | nop
sq.xyzw vf17, 0(vi13) | nop
sq.xyzw vf04, 1(vi13) | nop
ibeq vi00, vi14, L28 | nop
sq.xyzw vf19, 2(vi13) | nop
b L40 | nop
nop | nop
L20:
nop | nop
nop | nop
mtir vi13, vf17.w | nop
sq.xyzw vf17, 0(vi12) | addx.w vf08, vf08, vf21
sq.xyzw vf04, 1(vi12) | addx.w vf18, vf18, vf21
sq.xyzw vf19, 2(vi12) | mul.xyz vf10, vf10, Q
sq.xyzw vf17, 0(vi13) | mul.xyz vf18, vf18, Q
sq.xyzw vf04, 1(vi13) | nop
sq.xyzw vf19, 2(vi13) | nop
mtir vi12, vf08.w | ftoi4.xyz vf20, vf10
mtir vi13, vf18.w | nop
sq.xyzw vf18, 0(vi12) | nop
sq.xyzw vf14, 1(vi12) | nop
sq.xyzw vf20, 2(vi12) | nop
sq.xyzw vf18, 0(vi13) | nop
sq.xyzw vf14, 1(vi13) | nop
ibeq vi00, vi14, L25 | nop
sq.xyzw vf20, 2(vi13) | nop
b L40 | nop
nop | nop
L21:
div Q, vf00.w, vf10.w | addx.w vf07, vf07, vf21
sq.xyzw vf16, 0(vi12) | addx.w vf08, vf08, vf21
sq.xyzw vf03, 1(vi12) | nop
sq.xyzw vf20, 2(vi12) | nop
iaddi vi02, vi02, -0x1 | ftoi4.xyz vf19, vf09
nop | nop
nop | nop
nop | mul.xyz vf10, vf10, Q
mtir vi12, vf07.w | mul.xyz vf18, vf18, Q
mtir vi13, vf08.w | nop
sq.xyzw vf17, 0(vi12) | nop
sq.xyzw vf04, 1(vi12) | nop
sq.xyzw vf19, 2(vi12) | ftoi4.xyz vf20, vf10
sq.xyzw vf18, 0(vi13) | nop
sq.xyzw vf14, 1(vi13) | nop
ibeq vi00, vi14, L25 | nop
sq.xyzw vf20, 2(vi13) | nop
b L40 | nop
nop | nop
L22:
div Q, vf00.w, vf09.w | addx.w vf08, vf08, vf21
sq.xyzw vf17, 0(vi12) | addx.w vf05, vf05, vf21
sq.xyzw vf04, 1(vi12) | nop
sq.xyzw vf19, 2(vi12) | nop
iaddi vi02, vi02, -0x1 | ftoi4.xyz vf20, vf10
nop | nop
nop | nop
nop | mul.xyz vf09, vf09, Q
mtir vi12, vf08.w | mul.xyz vf15, vf15, Q
mtir vi13, vf05.w | nop
sq.xyzw vf18, 0(vi12) | nop
sq.xyzw vf14, 1(vi12) | nop
sq.xyzw vf20, 2(vi12) | ftoi4.xyz vf19, vf09
sq.xyzw vf15, 0(vi13) | nop
sq.xyzw vf11, 1(vi13) | nop
ibeq vi00, vi14, L26 | nop
sq.xyzw vf19, 2(vi13) | nop
b L40 | nop
nop | nop
L23:
div Q, vf00.w, vf10.w | addx.w vf05, vf05, vf21
sq.xyzw vf18, 0(vi12) | addx.w vf06, vf06, vf21
sq.xyzw vf14, 1(vi12) | nop
sq.xyzw vf20, 2(vi12) | nop
iaddi vi02, vi02, -0x1 | ftoi4.xyz vf19, vf09
nop | nop
nop | nop
nop | mul.xyz vf10, vf10, Q
mtir vi12, vf05.w | mul.xyz vf16, vf16, Q
mtir vi13, vf06.w | nop
sq.xyzw vf15, 0(vi12) | nop
sq.xyzw vf11, 1(vi12) | nop
sq.xyzw vf19, 2(vi12) | ftoi4.xyz vf20, vf10
sq.xyzw vf16, 0(vi13) | nop
sq.xyzw vf03, 1(vi13) | nop
ibeq vi00, vi14, L27 | nop
sq.xyzw vf20, 2(vi13) | nop
b L40 | nop
nop | nop
L24:
div Q, vf00.w, vf09.w | addx.w vf06, vf06, vf21
sq.xyzw vf15, 0(vi12) | addx.w vf07, vf07, vf21
sq.xyzw vf11, 1(vi12) | nop
sq.xyzw vf19, 2(vi12) | nop
iaddi vi02, vi02, -0x1 | ftoi4.xyz vf20, vf10
nop | nop
nop | nop
nop | mul.xyz vf09, vf09, Q
mtir vi12, vf06.w | mul.xyz vf17, vf17, Q
mtir vi13, vf07.w | nop
sq.xyzw vf16, 0(vi12) | nop
sq.xyzw vf03, 1(vi12) | nop
sq.xyzw vf20, 2(vi12) | ftoi4.xyz vf19, vf09
sq.xyzw vf17, 0(vi13) | nop
sq.xyzw vf04, 1(vi13) | nop
ibeq vi00, vi14, L28 | nop
sq.xyzw vf19, 2(vi13) | nop
b L40 | nop
nop | nop
L25:
lqi.xyzw vf05, vi02 | nop
0.5 | subw.w vf28, vf00, vf00 :i
lqi.xyz vf28, vi02 | addi.y vf27, vf00, I
lqi.xyzw vf15, vi02 | nop
mtir vi09, vf24.x | nop
mtir vi10, vf24.y | addx.w vf28, vf28, vf21
mtir vi11, vf24.z | mulx.xyz vf05, vf05, vf27
nop | nop
lq.xyzw vf11, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | add.xyzw vf05, vf05, vf28
lq.xyzw vf30, 838(vi11) | nop
nop | nop
nop | nop
nop | mulay.xyzw ACC, vf29, vf27
lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27
lqi.xyzw vf06, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf05
lqi.xyzw vf16, vi02 | madday.xyzw ACC, vf02, vf05
nop | maddz.xyzw vf09, vf12, vf05
mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | maddz.xyzw vf11, vf11, vf27
mtir vi11, vf24.z | mulx.xyz vf06, vf06, vf27
nop | nop
lq.xyzw vf03, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | add.xyzw vf06, vf06, vf28
lq.xyzw vf30, 838(vi11) | nop
div Q, vf00.w, vf09.w | nop
nop | nop
nop | mulay.xyzw ACC, vf29, vf27
lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27
lqi.xyzw vf07, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf06
lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf06
nop | maddz.xyzw vf10, vf12, vf06
mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | mulx.xyz vf07, vf07, vf27
mtir vi11, vf24.z | maddz.xyzw vf03, vf03, vf27
nop | mul.xyz vf19, vf09, Q
lq.xyzw vf04, 838(vi09) | mul.xyz vf15, vf15, Q
lq.xyzw vf29, 838(vi10) | add.xyzw vf07, vf07, vf28
lq.xyzw vf30, 838(vi11) | nop
div Q, vf00.w, vf10.w | ftoi4.xyz vf19, vf19
nop | nop
b L29 | mulay.xyzw ACC, vf29, vf27
lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27
L26:
lqi.xyzw vf06, vi02 | nop
lqi.xyzw vf24, vi03 | subw.w vf28, vf00, vf00
0.5 | nop :i
lqi.xyz vf28, vi02 | addi.y vf27, vf00, I
lqi.xyzw vf16, vi02 | nop
mtir vi09, vf24.x | addx.w vf28, vf28, vf21
mtir vi10, vf24.y | nop
mtir vi11, vf24.z | mulx.xyz vf06, vf06, vf27
nop | nop
lq.xyzw vf03, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | add.xyzw vf06, vf06, vf28
lq.xyzw vf30, 838(vi11) | nop
nop | nop
nop | nop
nop | mulay.xyzw ACC, vf29, vf27
lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27
lqi.xyzw vf07, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf06
lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf06
nop | maddz.xyzw vf10, vf12, vf06
mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | maddz.xyzw vf03, vf03, vf27
mtir vi11, vf24.z | mulx.xyz vf07, vf07, vf27
nop | nop
lq.xyzw vf04, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | add.xyzw vf07, vf07, vf28
lq.xyzw vf30, 838(vi11) | nop
div Q, vf00.w, vf10.w | nop
nop | nop
nop | mulay.xyzw ACC, vf29, vf27
lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27
lqi.xyzw vf08, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf07
lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf07
nop | maddz.xyzw vf09, vf12, vf07
mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | mulx.xyz vf08, vf08, vf27
mtir vi11, vf24.z | maddz.xyzw vf04, vf04, vf27
nop | mul.xyz vf20, vf10, Q
lq.xyzw vf14, 838(vi09) | mul.xyz vf16, vf16, Q
lq.xyzw vf29, 838(vi10) | add.xyzw vf08, vf08, vf28
lq.xyzw vf30, 838(vi11) | nop
div Q, vf00.w, vf09.w | ftoi4.xyz vf20, vf20
nop | nop
b L30 | mulay.xyzw ACC, vf29, vf27
lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27
L27:
lqi.xyzw vf07, vi02 | nop
lqi.xyzw vf24, vi03 | subw.w vf28, vf00, vf00
0.5 | nop :i
lqi.xyz vf28, vi02 | addi.y vf27, vf00, I
lqi.xyzw vf17, vi02 | nop
mtir vi09, vf24.x | addx.w vf28, vf28, vf21
mtir vi10, vf24.y | nop
mtir vi11, vf24.z | mulx.xyz vf07, vf07, vf27
nop | nop
lq.xyzw vf04, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | add.xyzw vf07, vf07, vf28
lq.xyzw vf30, 838(vi11) | nop
nop | nop
nop | nop
nop | mulay.xyzw ACC, vf29, vf27
lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27
lqi.xyzw vf08, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf07
lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf07
nop | maddz.xyzw vf09, vf12, vf07
mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | maddz.xyzw vf04, vf04, vf27
mtir vi11, vf24.z | mulx.xyz vf08, vf08, vf27
nop | nop
lq.xyzw vf14, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | add.xyzw vf08, vf08, vf28
lq.xyzw vf30, 838(vi11) | nop
div Q, vf00.w, vf09.w | nop
nop | nop
nop | mulay.xyzw ACC, vf29, vf27
lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27
lqi.xyzw vf05, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf08
lqi.xyzw vf15, vi02 | madday.xyzw ACC, vf02, vf08
nop | maddz.xyzw vf10, vf12, vf08
mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | mulx.xyz vf05, vf05, vf27
mtir vi11, vf24.z | maddz.xyzw vf14, vf14, vf27
nop | mul.xyz vf19, vf09, Q
lq.xyzw vf11, 838(vi09) | mul.xyz vf17, vf17, Q
lq.xyzw vf29, 838(vi10) | add.xyzw vf05, vf05, vf28
lq.xyzw vf30, 838(vi11) | nop
div Q, vf00.w, vf10.w | ftoi4.xyz vf19, vf19
nop | nop
b L31 | mulay.xyzw ACC, vf29, vf27
lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27
L28:
lqi.xyzw vf08, vi02 | nop
lqi.xyzw vf24, vi03 | subw.w vf28, vf00, vf00
0.5 | nop :i
lqi.xyz vf28, vi02 | addi.y vf27, vf00, I
lqi.xyzw vf18, vi02 | nop
mtir vi09, vf24.x | addx.w vf28, vf28, vf21
mtir vi10, vf24.y | nop
mtir vi11, vf24.z | mulx.xyz vf08, vf08, vf27
nop | nop
lq.xyzw vf14, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | add.xyzw vf08, vf08, vf28
lq.xyzw vf30, 838(vi11) | nop
nop | nop
nop | nop
nop | mulay.xyzw ACC, vf29, vf27
lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27
lqi.xyzw vf05, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf08
lqi.xyzw vf15, vi02 | madday.xyzw ACC, vf02, vf08
nop | maddz.xyzw vf10, vf12, vf08
mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | maddz.xyzw vf14, vf14, vf27
mtir vi11, vf24.z | mulx.xyz vf05, vf05, vf27
nop | nop
lq.xyzw vf11, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | add.xyzw vf05, vf05, vf28
lq.xyzw vf30, 838(vi11) | nop
div Q, vf00.w, vf10.w | nop
nop | nop
nop | mulay.xyzw ACC, vf29, vf27
lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27
lqi.xyzw vf06, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf05
lqi.xyzw vf16, vi02 | madday.xyzw ACC, vf02, vf05
nop | maddz.xyzw vf09, vf12, vf05
mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | mulx.xyz vf06, vf06, vf27
mtir vi11, vf24.z | maddz.xyzw vf11, vf11, vf27
nop | mul.xyz vf20, vf10, Q
lq.xyzw vf03, 838(vi09) | mul.xyz vf18, vf18, Q
lq.xyzw vf29, 838(vi10) | add.xyzw vf06, vf06, vf28
lq.xyzw vf30, 838(vi11) | nop
div Q, vf00.w, vf09.w | ftoi4.xyz vf20, vf20
nop | nop
b L32 | mulay.xyzw ACC, vf29, vf27
lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27
L29:
lqi.xyzw vf08, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf07
lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf07
mtir vi12, vf05.w | maddz.xyzw vf09, vf12, vf07
mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | maddz.xyzw vf04, vf04, vf27
mtir vi11, vf24.z | mulx.xyz vf08, vf08, vf27
sq.xyzw vf15, 0(vi12) | mul.xyz vf20, vf10, Q
lq.xyzw vf14, 838(vi09) | mul.xyz vf16, vf16, Q
lq.xyzw vf29, 838(vi10) | nop
lq.xyzw vf30, 838(vi11) | nop
div Q, vf00.w, vf09.w | ftoi4.xyz vf20, vf20
sq.xyzw vf11, 1(vi12) | add.xyzw vf08, vf08, vf28
lqi.xyzw vf24, vi03 | mulay.xyzw ACC, vf29, vf27
ibeq vi07, vi12, L33 | nop
sq.xyzw vf19, 2(vi12) | maddy.xyzw vf29, vf30, vf27
L30:
lqi.xyzw vf05, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf08
lqi.xyzw vf15, vi02 | madday.xyzw ACC, vf02, vf08
mtir vi12, vf06.w | maddz.xyzw vf10, vf12, vf08
mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | maddz.xyzw vf14, vf14, vf27
mtir vi11, vf24.z | mulx.xyz vf05, vf05, vf27
sq.xyzw vf16, 0(vi12) | mul.xyz vf19, vf09, Q
lq.xyzw vf11, 838(vi09) | mul.xyz vf17, vf17, Q
lq.xyzw vf29, 838(vi10) | nop
lq.xyzw vf30, 838(vi11) | nop
div Q, vf00.w, vf10.w | ftoi4.xyz vf19, vf19
sq.xyzw vf03, 1(vi12) | add.xyzw vf05, vf05, vf28
lqi.xyzw vf24, vi03 | mulay.xyzw ACC, vf29, vf27
ibeq vi07, vi12, L34 | nop
sq.xyzw vf20, 2(vi12) | maddy.xyzw vf29, vf30, vf27
L31:
lqi.xyzw vf06, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf05
lqi.xyzw vf16, vi02 | madday.xyzw ACC, vf02, vf05
mtir vi12, vf07.w | maddz.xyzw vf09, vf12, vf05
mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | maddz.xyzw vf11, vf11, vf27
mtir vi11, vf24.z | mulx.xyz vf06, vf06, vf27
sq.xyzw vf17, 0(vi12) | mul.xyz vf20, vf10, Q
lq.xyzw vf03, 838(vi09) | mul.xyz vf18, vf18, Q
lq.xyzw vf29, 838(vi10) | nop
lq.xyzw vf30, 838(vi11) | nop
div Q, vf00.w, vf09.w | ftoi4.xyz vf20, vf20
sq.xyzw vf04, 1(vi12) | add.xyzw vf06, vf06, vf28
lqi.xyzw vf24, vi03 | mulay.xyzw ACC, vf29, vf27
ibeq vi07, vi12, L35 | nop
sq.xyzw vf19, 2(vi12) | maddy.xyzw vf29, vf30, vf27
L32:
lqi.xyzw vf07, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf06
lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf06
mtir vi12, vf08.w | maddz.xyzw vf10, vf12, vf06
mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | maddz.xyzw vf03, vf03, vf27
mtir vi11, vf24.z | mul.xyz vf19, vf09, Q
sq.xyzw vf18, 0(vi12) | mul.xyz vf15, vf15, Q
lq.xyzw vf04, 838(vi09) | mulx.xyz vf07, vf07, vf27
lq.xyzw vf29, 838(vi10) | nop
lq.xyzw vf30, 838(vi11) | nop
div Q, vf00.w, vf10.w | ftoi4.xyz vf19, vf19
sq.xyzw vf14, 1(vi12) | add.xyzw vf07, vf07, vf28
lqi.xyzw vf24, vi03 | mulay.xyzw ACC, vf29, vf27
ibne vi07, vi12, L29 | nop
sq.xyzw vf20, 2(vi12) | maddy.xyzw vf29, vf30, vf27
mtir vi12, vf05.w | addx.w vf15, vf15, vf21
lqi.xyzw vf08, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf07
lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf07
mtir vi13, vf15.w | maddz.xyzw vf09, vf12, vf07
mtir vi09, vf24.x | mul.xyz vf16, vf16, Q
mtir vi10, vf24.y | mul.xyz vf10, vf10, Q
mtir vi11, vf24.z | nop
sq.xyzw vf11, 1(vi12) | addx.w vf17, vf17, vf21
div Q, vf00.w, vf09.w | mulx.xyz vf08, vf08, vf27
sq.xyzw vf15, 0(vi12) | ftoi4.xyz vf20, vf10
sq.xyzw vf19, 2(vi12) | mulaw.xyzw ACC, vf29, vf27
sq.xyzw vf15, 0(vi13) | maddz.xyzw vf04, vf04, vf27
sq.xyzw vf11, 1(vi13) | add.xyzw vf08, vf08, vf28
sq.xyzw vf19, 2(vi13) | addx.w vf16, vf16, vf21
lq.xyzw vf14, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00
lq.xyzw vf30, 838(vi11) | nop
lqi.xyzw vf24, vi03 | nop
ibne vi08, vi12, L36 | nop
mtir vi12, vf06.w | maddax.xyzw ACC, vf01, vf08
b L40 | nop
nop | nop
L33:
mtir vi12, vf06.w | addx.w vf16, vf16, vf21
lqi.xyzw vf05, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf08
lqi.xyzw vf15, vi02 | madday.xyzw ACC, vf02, vf08
mtir vi13, vf16.w | maddz.xyzw vf10, vf12, vf08
mtir vi09, vf24.x | mul.xyz vf17, vf17, Q
mtir vi10, vf24.y | mul.xyz vf09, vf09, Q
mtir vi11, vf24.z | nop
sq.xyzw vf03, 1(vi12) | addx.w vf18, vf18, vf21
div Q, vf00.w, vf10.w | mulx.xyz vf05, vf05, vf27
sq.xyzw vf16, 0(vi12) | ftoi4.xyz vf19, vf09
sq.xyzw vf20, 2(vi12) | mulaw.xyzw ACC, vf29, vf27
sq.xyzw vf16, 0(vi13) | maddz.xyzw vf14, vf14, vf27
sq.xyzw vf03, 1(vi13) | add.xyzw vf05, vf05, vf28
sq.xyzw vf20, 2(vi13) | addx.w vf17, vf17, vf21
lq.xyzw vf11, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00
lq.xyzw vf30, 838(vi11) | nop
lqi.xyzw vf24, vi03 | nop
ibne vi08, vi12, L37 | nop
mtir vi12, vf07.w | maddax.xyzw ACC, vf01, vf05
b L40 | nop
nop | nop
L34:
mtir vi12, vf07.w | addx.w vf17, vf17, vf21
lqi.xyzw vf06, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf05
lqi.xyzw vf16, vi02 | madday.xyzw ACC, vf02, vf05
mtir vi13, vf17.w | maddz.xyzw vf09, vf12, vf05
mtir vi09, vf24.x | mul.xyz vf18, vf18, Q
mtir vi10, vf24.y | mul.xyz vf10, vf10, Q
mtir vi11, vf24.z | nop
sq.xyzw vf04, 1(vi12) | addx.w vf15, vf15, vf21
div Q, vf00.w, vf09.w | mulx.xyz vf06, vf06, vf27
sq.xyzw vf17, 0(vi12) | ftoi4.xyz vf20, vf10
sq.xyzw vf19, 2(vi12) | mulaw.xyzw ACC, vf29, vf27
sq.xyzw vf17, 0(vi13) | maddz.xyzw vf11, vf11, vf27
sq.xyzw vf04, 1(vi13) | add.xyzw vf06, vf06, vf28
sq.xyzw vf19, 2(vi13) | addx.w vf18, vf18, vf21
lq.xyzw vf03, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00
lq.xyzw vf30, 838(vi11) | nop
lqi.xyzw vf24, vi03 | nop
ibne vi08, vi12, L38 | nop
mtir vi12, vf08.w | maddax.xyzw ACC, vf01, vf06
b L40 | nop
nop | nop
L35:
mtir vi12, vf08.w | addx.w vf18, vf18, vf21
lqi.xyzw vf07, vi02 | mulaw.xyzw ACC, vf13, vf00
lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf06
lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf06
mtir vi13, vf18.w | maddz.xyzw vf10, vf12, vf06
mtir vi09, vf24.x | mul.xyz vf15, vf15, Q
mtir vi10, vf24.y | mul.xyz vf09, vf09, Q
mtir vi11, vf24.z | nop
sq.xyzw vf14, 1(vi12) | addx.w vf16, vf16, vf21
div Q, vf00.w, vf10.w | mulx.xyz vf07, vf07, vf27
sq.xyzw vf18, 0(vi12) | ftoi4.xyz vf19, vf09
sq.xyzw vf20, 2(vi12) | mulaw.xyzw ACC, vf29, vf27
sq.xyzw vf18, 0(vi13) | maddz.xyzw vf03, vf03, vf27
sq.xyzw vf14, 1(vi13) | add.xyzw vf07, vf07, vf28
sq.xyzw vf20, 2(vi13) | addx.w vf15, vf15, vf21
lq.xyzw vf04, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00
lq.xyzw vf30, 838(vi11) | nop
lqi.xyzw vf24, vi03 | nop
ibne vi08, vi12, L39 | nop
mtir vi12, vf05.w | maddax.xyzw ACC, vf01, vf07
b L40 | nop
nop | nop
L36:
lqi.xyzw vf05, vi02 | madday.xyzw ACC, vf02, vf08
lqi.xyz vf28, vi02 | maddz.xyzw vf10, vf12, vf08
lqi.xyzw vf15, vi02 | mul.xyz vf17, vf17, Q
mtir vi13, vf16.w | mul.xyz vf09, vf09, Q
mtir vi09, vf24.x | mulay.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | maddy.xyzw vf29, vf30, vf27
mtir vi11, vf24.z | nop
sq.xyzw vf03, 1(vi12) | ftoi4.xyz vf19, vf09
div Q, vf00.w, vf10.w | mulx.xyz vf05, vf05, vf27
sq.xyzw vf16, 0(vi12) | addx.w vf18, vf18, vf21
sq.xyzw vf20, 2(vi12) | mulaw.xyzw ACC, vf29, vf27
sq.xyzw vf16, 0(vi13) | maddz.xyzw vf14, vf14, vf27
sq.xyzw vf03, 1(vi13) | add.xyzw vf05, vf05, vf28
sq.xyzw vf20, 2(vi13) | nop
lq.xyzw vf11, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00
lq.xyzw vf30, 838(vi11) | nop
lqi.xyzw vf24, vi03 | nop
ibeq vi08, vi12, L40 | nop
mtir vi12, vf07.w | maddax.xyzw ACC, vf01, vf05
L37:
lqi.xyzw vf06, vi02 | madday.xyzw ACC, vf02, vf05
lqi.xyz vf28, vi02 | maddz.xyzw vf09, vf12, vf05
lqi.xyzw vf16, vi02 | mul.xyz vf18, vf18, Q
mtir vi13, vf17.w | mul.xyz vf10, vf10, Q
mtir vi09, vf24.x | mulay.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | maddy.xyzw vf29, vf30, vf27
mtir vi11, vf24.z | nop
sq.xyzw vf04, 1(vi12) | ftoi4.xyz vf20, vf10
div Q, vf00.w, vf09.w | mulx.xyz vf06, vf06, vf27
sq.xyzw vf17, 0(vi12) | addx.w vf15, vf15, vf21
sq.xyzw vf19, 2(vi12) | mulaw.xyzw ACC, vf29, vf27
sq.xyzw vf17, 0(vi13) | maddz.xyzw vf11, vf11, vf27
sq.xyzw vf04, 1(vi13) | add.xyzw vf06, vf06, vf28
sq.xyzw vf19, 2(vi13) | nop
lq.xyzw vf03, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00
lq.xyzw vf30, 838(vi11) | nop
lqi.xyzw vf24, vi03 | nop
ibeq vi08, vi12, L40 | nop
mtir vi12, vf08.w | maddax.xyzw ACC, vf01, vf06
L38:
lqi.xyzw vf07, vi02 | madday.xyzw ACC, vf02, vf06
lqi.xyz vf28, vi02 | maddz.xyzw vf10, vf12, vf06
lqi.xyzw vf17, vi02 | mul.xyz vf15, vf15, Q
mtir vi13, vf18.w | mul.xyz vf09, vf09, Q
mtir vi09, vf24.x | mulay.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | maddy.xyzw vf29, vf30, vf27
mtir vi11, vf24.z | nop
sq.xyzw vf14, 1(vi12) | ftoi4.xyz vf19, vf09
div Q, vf00.w, vf10.w | mulx.xyz vf07, vf07, vf27
sq.xyzw vf18, 0(vi12) | addx.w vf16, vf16, vf21
sq.xyzw vf20, 2(vi12) | mulaw.xyzw ACC, vf29, vf27
sq.xyzw vf18, 0(vi13) | maddz.xyzw vf03, vf03, vf27
sq.xyzw vf14, 1(vi13) | add.xyzw vf07, vf07, vf28
sq.xyzw vf20, 2(vi13) | nop
lq.xyzw vf04, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00
lq.xyzw vf30, 838(vi11) | nop
lqi.xyzw vf24, vi03 | nop
ibeq vi08, vi12, L40 | nop
mtir vi12, vf05.w | maddax.xyzw ACC, vf01, vf07
L39:
lqi.xyzw vf08, vi02 | madday.xyzw ACC, vf02, vf07
lqi.xyz vf28, vi02 | maddz.xyzw vf09, vf12, vf07
lqi.xyzw vf18, vi02 | mul.xyz vf16, vf16, Q
mtir vi13, vf15.w | mul.xyz vf10, vf10, Q
mtir vi09, vf24.x | mulay.xyzw ACC, vf29, vf27
mtir vi10, vf24.y | maddy.xyzw vf29, vf30, vf27
mtir vi11, vf24.z | nop
sq.xyzw vf11, 1(vi12) | ftoi4.xyz vf20, vf10
div Q, vf00.w, vf09.w | mulx.xyz vf08, vf08, vf27
sq.xyzw vf15, 0(vi12) | addx.w vf17, vf17, vf21
sq.xyzw vf19, 2(vi12) | mulaw.xyzw ACC, vf29, vf27
sq.xyzw vf15, 0(vi13) | maddz.xyzw vf04, vf04, vf27
sq.xyzw vf11, 1(vi13) | add.xyzw vf08, vf08, vf28
sq.xyzw vf19, 2(vi13) | nop
lq.xyzw vf14, 838(vi09) | nop
lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00
lq.xyzw vf30, 838(vi11) | nop
lqi.xyzw vf24, vi03 | nop
ibne vi08, vi12, L36 | nop
mtir vi12, vf06.w | maddax.xyzw ACC, vf01, vf08
L40:
ilw.x vi01, 971(vi00) | nop
ilw.y vi12, 971(vi00) | nop
lq.xyzw vf05, 972(vi00) | nop
lq.xyzw vf06, 973(vi00) | nop
lq.xyzw vf07, 974(vi00) | nop
sq.xyzw vf05, 976(vi00) | nop
ibne vi00, vi01, L41 | nop
sq.xyzw vf07, 977(vi00) | nop
sq.xyzw vf06, 977(vi00) | nop
L41:
iaddiu vi02, vi00, 0x3d0 | nop
isw.y vi01, 971(vi00) | nop
xgkick vi02 | nop
mtir vi01, vf21.x | nop
mtir vi12, vf23.w | nop
mr32.xyzw vf22, vf22 | nop
iaddiu vi02, vi00, 0x32 | nop
mfir.y vf23, vi00 | nop
xgkick vi01 | nop :e
mtir vi03, vf22.x | nop
L42:
mtir vi01, vf23.y | nop
mtir vi12, vf23.w | nop
mr32.xyzw vf22, vf22 | nop
iaddiu vi02, vi00, 0x32 | nop
iadd vi01, vi01, vi15 | nop
mfir.y vf23, vi12 | nop :e
mtir vi03, vf22.x | nop
L43:
nop | nop :e
nop | nop
lq. vf00, 0(vi00) | addx. vf00, vf00, vf00