;; Register use (after init and effect setup) ;; to be extra annoying, they often stash stuff in ;; w (and sometimes z) and use xyz for other stuff. ;; vf01 = [lt0_dir.xyz, pfog0] ;; vf02 = [lt1_dir.xyz, fog-min] ;; vf03 = [lt2_dir.xyz, fog-max] ;; vf04 = [lt0_color] ;; vf05 = [lt1_color] ;; vf06 = [lt2_color] ;; vf07 = [lt_ambient] ;; vf17 = [2048, 255, -65537, xyz-add.x] ;; vf18 = [st-out-X, st-out-X, -65537, xyz-add.y] (X = a if xtop = 0, X = b otherwise) ;; vf19 = [st-magic, st-magic, -65537, xyz-add.z] ;; vf22 = hvdf-offset (does get set to others, but is always restored) ;; vf29 = [??, ??, ??, 0.003921569] ;; Low Memory use (after init and effect setup) ;; 1 - [adgif_giftag, use_mercprime] ;; 2 - hvdf-offset ;; 3 - [p0x, p1y, p2z, p2w] (note p2w, not p3w here!) ;; 4 - [p3x, p3y, p3z, p3w] ;; 5 - [p0x*sc, p1y*sc, p2z*sc, p2w*sc] (where sc is the xyz-scale of the header) ;; 132 - not double buffered, lights + merc-ctrl-header (per ctrl) ;; 132 ;; 133 light 1 dir, w has flags (0x44 for ignore alpha, ) ;; 134 light 2 dir, w has fade out parameter (how much to fade out) ;; 139 - [xyz_scale, st-magic, st-out-a, st-out-b] ;; 140 - not double buffered, header (per effect) ;; xtop + 140 + st-out ;; this contains the uploaded fp data. ;; the first ;; initialization - this runs after the merc program is uploaded and the vu1 low memory ;; block is uploaded. It sets constant registers and stashes some stuff in memory. ;; - set vf01.w to pfog0 lq.xyzw vf01, 7(vi00) | nop ;; vf01 = fog lq.xyzw vf25, 3(vi00) | nop ;; vf25 = perspective.row0 lq.xyzw vf26, 4(vi00) | nop ;; vf26 = perspective.row1 lq.xyzw vf27, 5(vi00) | nop ;; vf27 = perspective.row2 lq.xyzw vf28, 6(vi00) | nop ;; vf28 = perspective.row3 mr32.xyzw vf01, vf01 | nop ;; rotate pfog0 into vf01.w move.y vf25, vf26 | nop ;; setting up vf25 move.zw vf25, vf27 | nop ;; same sq.xyzw vf25, 3(vi00) | nop ;; setting up low 3. 2048.0 | nop :i ;; setup I 255.0 | maxi.x vf17, vf00, I :i ;; setup vf17 -65537.0 | maxi.y vf17, vf00, I :i ;; setup vf17 mr32.xyzw vf02, vf01 | minii.z vf17, vf00, I ;; vf17, setup vf02.w lq.xyzw vf22, 2(vi00) | minii.z vf18, vf00, I ;; vf18.z, vf22 as hvdf-offset 0.003921569 | minii.z vf19, vf00, I :i ;; vf19.z sq.xyzw vf28, 4(vi00) | minii.w vf29, vf00, I :e ;; setup low 4 mr32.xyzw vf03, vf02 | nop ;; set up vf03 ;; the 17/20 entry points are the same as 32/35, but should be used ;; on the first frag of an effect. they set up lights. ;; enter 17 (setup lights, with merc "prime") iaddi vi07, vi00, 0x1 | nop ;; set vi07 mercprime b L2 | nop isw.w vi07, 1(vi00) | nop ;; leave behind mercprime flag. ENTER_20: ;; (setup lights, no merc prime) iaddi vi07, vi00, 0x0 | nop ;; no mercprime for us today. L2: ;; (setup lights common) lq.xyzw vf25, 139(vi00) | nop ;; vf25 = merc-ctrl-header lq.xyzw vf26, 3(vi00) | nop ;; vf26 = persp-diag lq.xyz vf01, 132(vi00) | nop ;; setup vf01 light 0 dir lq.xyz vf02, 133(vi00) | nop ;; setup vf02 light 1 dir lq.xyz vf03, 134(vi00) | addy.xy vf19, vf00, vf25 ;; vf03 light setup, st-magic lq.xyzw vf04, 135(vi00) | mulx.xyzw vf26, vf26, vf25 ;; scaled persp diag lq.xyzw vf05, 136(vi00) | nop lq.xyzw vf06, 137(vi00) | nop lq.xyzw vf07, 138(vi00) | nop b L5 | nop sq.xyzw vf26, 5(vi00) | nop ;; stash persp diag scaled ;; 32/35 are prime/normal entry points for normal drawing. ENTER_32: ;; (run, use prev lights, with merc "prime") iaddi vi07, vi00, 0x1 | nop ;; vi07 for mercprime b L5 | nop isw.w vi07, 1(vi00) | nop ;; stash mercprime flag ENTER_35: iaddi vi07, vi00, 0x0 | nop L5: ;; common effect drawing entry point. ;; all draw paths go to here. lq.xyzw vf28, 139(vi00) | minix.xyzw vf15, vf00, vf00 ;; vf28 = mch, vf15 = [0, 0, 0, 0] xtop vi15 | nop ;; vi15 = 0 (output buffer) iaddiu vi12, vi15, 0x8c | nop ;; vi12 = xtop + 140 (merc-byte-header, u4) ibeq vi00, vi15, L6 | nop ;; branch if output buffer a (0) ilwr.w vi03, vi12 | maxz.xy vf18, vf00, vf28 ;; set vf18.xy = [st-out-a, st-out-a] (for a buffer) nop | maxw.xy vf18, vf00, vf28 ;; set vf18.xy = [st-out-b, st-out-b] (for b buffer) L6: ilw.w vi10, 133(vi00) | nop ;; vi10 = fade out flags iaddiu vi15, vi15, 0x173 | nop ;; vi15 = xtop + 371 ilw.y vi02, 2(vi12) | nop ;; vi02 = strip-len lq.xyzw vf14, 0(vi00) | nop ;; vf14 = tri-strip-gif-tag ibeq vi00, vi10, L7 | nop ;; branch to L7 if no fade out. iadd vi03, vi03, vi12 | nop ;; st-output location = {st-out-a, st-out-b} + xtop + 140 ;; modify vf14 to have :abe, setup constants for fadeout. mr32.xyzw vf27, vf14 | nop ;; vf27 = [yzwx] of the tri-strip-gif-tag ilw.w vi11, 134(vi00) | nop ;; vi11 = fade-out parameter iaddiu vi13, vi00, 0x42 | nop ;; vi13 = 0x42 mr32.y vf14, vf27 | nop ;; replace y of tag with w. (enables abe in the gs-prim) ;; next, we set up the memory layout of the output buffer. ;; the output buffer has two (poorly name) parts: "strip" and "shader". ;; the "strip" part will continue using the shader of the previous fragment. ;; it has a single tag. This "strip" part be left out, if desired. It is always first. ;; the "strip-len" is how large this data is. ;; the "shader" part contains a series of [shader, triangles] groups. ;; it sets the shader settings, then draws stuff. ;; the shader-cnt is how many [shader, triangle] groups there are. ;; the sizes are stored in the adgif data itself ;; the blocks below place the shaders and gif tags in memory, setting nloops and eops. L7: ilwr.w vi09, vi03 | nop ;; vi09 = fp-header u8's [shader-cnt, kick-off, kick-step, hword-cnt] lqi.xyzw vf27, vi03 | nop ;; vf27 = xyz-add ilw.x vi04, 1(vi12) | nop ;; vi04 = mat1-cnt iaddiu vi05, vi00, 0x7f | addw.xyz vf15, vf15, vf00 ;; vf15 = [1, 1, 1, 0], vi05 = 0x7f iand vi09, vi09, vi05 | nop ;; mask to get vi09 = shader-cnt ilw.y vi06, 1(vi12) | miniz.w vf19, vf00, vf27 ;; set add, vi06 = mat2-cnt ibeq vi00, vi02, L9 | miniy.w vf18, vf00, vf27 ;; skip to L9 if strip-len is 0 ilwr.z vi01, vi12 | minix.w vf17, vf00, vf27 ;; vi01 = lump-off ;; we have strip ibne vi00, vi09, L8 | nop ;; goto L8 if we have nonzero shader-cnt sq.yzw vf14, 0(vi15) | nop ;; store giftag (only upper 96 bits) ;; we have strip, but no shader. set eop. iaddiu vi02, vi02, 0x4000 | nop ;; build the first 32-bits, strip-len + eop flag iaddiu vi02, vi02, 0x4000 | nop ;; imm 0x8000 doesn't fit, have to add 2x. iswr.x vi02, vi15 | nop ;; store nloop = strip-len, eop. b L12 | nop ;; skip shader setup! nop | nop L8: iswr.x vi02, vi15 | nop ;; nonzero shader and nonzero strip. set nloop on the strip tag, but not eop. L9: lq.xyzw vf13, 1(vi00) | nop ;; vf13 = adgif gif tag. L10: ;; shader loop ilwr.w vi02, vi03 | nop ;; vi02 = shader control word 0 (dest offset) lqi.xyzw vf08, vi03 | nop ;; load shader data lqi.xyzw vf09, vi03 | nop lqi.xyzw vf10, vi03 | nop lqi.xyzw vf11, vi03 | nop lqi.xyzw vf12, vi03 | nop iadd vi02, vi02, vi15 | nop ;; compute destination mtir vi08, vf09.w | nop ;; vi08 = shader control word 1 () sqi.xyzw vf13, vi02 | nop ;; store giftag sqi.xyzw vf08, vi02 | nop ;; store shader0/5 sqi.xyzw vf09, vi02 | nop ;; store shader1/5 mfir.x vf14, vi08 | nop ;; vf14 = post-shader giftag lower-32 sqi.xyzw vf10, vi02 | nop ;; store shader2/5 sqi.xyzw vf11, vi02 | nop ;; store shader3/5 ibeq vi00, vi10, L11 | nop ;; goto L11 if no fadeout sqi.xyzw vf12, vi02 | nop ;; store shader4/5 ;; fade out setup (todo). it just modifies shaders mtir vi14, vf12.z | nop isw.x vi10, -1(vi02) | nop ibeq vi14, vi13, L11 | nop isw.y vi11, -1(vi02) | nop ilw.x vi13, -4(vi02) | nop isubiu vi14, vi00, 0x1d | nop iand vi13, vi13, vi14 | nop iaddi vi13, vi13, 0xc | nop isw.x vi13, -4(vi02) | nop iaddiu vi13, vi00, 0x42 | nop isw.z vi13, -1(vi02) | nop ;; loop! L11: ibgtz vi08, L10 | nop ;; cool trick, eop is the sign bit here. sq.xyzw vf14, 0(vi02) | nop ;; end of shader and strip setup. ;; matrix crap 1 L12: lq.xyzw vf28, 3(vi00) | nop ;; vf28 = persp-diag ilw.y vi08, 3(vi12) | nop ;; vi08 = mat-slot.0 lq.xyzw vf16, 5(vi00) | nop ;; vf16 = scaled-persp-diag lq.xyzw vf20, 4(vi00) | nop ;; vf20 = persp-off ilw.z vi09, 3(vi12) | mul.xyzw vf27, vf28, vf15 ;; vf27 = [pdx, pdy, pdz, 0], vi09 = mat-slot.1 ior vi11, vi08, vi00 | mul.xyzw vf28, vf28, vf00 ;; vf28 = [0, 0, 0, pdw], vi11 = vi08 = mat-slot.0 ibeq vi00, vi08, L14 | mul.xyzw vf15, vf16, vf15 ;; vf15 = [spdx, spdy, spdz, 0], skip if slot = 0 iaddi vi13, vi12, 0x3 | mul.xyzw vf16, vf16, vf00 ;; vi13 = mat-slot-ptr, vf16 = [0, 0, 0, spdw] ;; pipelined matrix thing ;; multiply matrices and store them back ;; run until we get a slot of 0. ;; mula.xyzw ACC, vf15, vf08 ;; maddz.xyzw vf09, vf16, vf08 ;; mula.xyzw ACC, vf15, vf10 ;; maddz.xyzw vf11, vf16, vf10 ;; mula.xyzw ACC, vf15, vf12 ;; maddz.xyzw vf13, vf16, vf12 ;; addax.xyzw vf20, vf00 ;; madda.xyzw ACC, vf27, vf25 ;; maddz.xyzw vf26, vf28, vf25 L13: lq.xyzw vf08, 0(vi08) | addax.xyzw vf20, vf00 lq.xyzw vf10, 1(vi08) | madda.xyzw ACC, vf27, vf25 lq.xyzw vf12, 2(vi08) | maddz.xyzw vf26, vf28, vf25 lq.xyzw vf25, 3(vi08) | nop sq.xyzw vf09, 0(vi11) | mula.xyzw ACC, vf15, vf08 sq.xyzw vf11, 1(vi11) | maddz.xyzw vf09, vf16, vf08 sq.xyzw vf13, 2(vi11) | mula.xyzw ACC, vf15, vf10 sq.xyzw vf26, 3(vi11) | maddz.xyzw vf11, vf16, vf10 ibeq vi00, vi08, L14 | mula.xyzw ACC, vf15, vf12 ilwr.w vi10, vi13 | maddz.xyzw vf13, vf16, vf12 lq.xyzw vf08, 0(vi09) | addax.xyzw vf20, vf00 lq.xyzw vf10, 1(vi09) | madda.xyzw ACC, vf27, vf25 lq.xyzw vf12, 2(vi09) | maddz.xyzw vf26, vf28, vf25 lq.xyzw vf25, 3(vi09) | nop sq.xyzw vf09, 0(vi08) | mula.xyzw ACC, vf15, vf08 sq.xyzw vf11, 1(vi08) | maddz.xyzw vf09, vf16, vf08 sq.xyzw vf13, 2(vi08) | mula.xyzw ACC, vf15, vf10 sq.xyzw vf26, 3(vi08) | maddz.xyzw vf11, vf16, vf10 ibeq vi00, vi09, L14 | mula.xyzw ACC, vf15, vf12 ilw.x vi11, 1(vi13) | maddz.xyzw vf13, vf16, vf12 lq.xyzw vf08, 0(vi10) | addax.xyzw vf20, vf00 lq.xyzw vf10, 1(vi10) | madda.xyzw ACC, vf27, vf25 lq.xyzw vf12, 2(vi10) | maddz.xyzw vf26, vf28, vf25 lq.xyzw vf25, 3(vi10) | nop sq.xyzw vf09, 0(vi09) | mula.xyzw ACC, vf15, vf08 sq.xyzw vf11, 1(vi09) | maddz.xyzw vf09, vf16, vf08 sq.xyzw vf13, 2(vi09) | mula.xyzw ACC, vf15, vf10 sq.xyzw vf26, 3(vi09) | maddz.xyzw vf11, vf16, vf10 ibeq vi00, vi10, L14 | mula.xyzw ACC, vf15, vf12 ilw.y vi08, 1(vi13) | maddz.xyzw vf13, vf16, vf12 lq.xyzw vf08, 0(vi11) | addax.xyzw vf20, vf00 lq.xyzw vf10, 1(vi11) | madda.xyzw ACC, vf27, vf25 lq.xyzw vf12, 2(vi11) | maddz.xyzw vf26, vf28, vf25 lq.xyzw vf25, 3(vi11) | nop sq.xyzw vf09, 0(vi10) | mula.xyzw ACC, vf15, vf08 sq.xyzw vf11, 1(vi10) | maddz.xyzw vf09, vf16, vf08 sq.xyzw vf13, 2(vi10) | mula.xyzw ACC, vf15, vf10 sq.xyzw vf26, 3(vi10) | maddz.xyzw vf11, vf16, vf10 iaddi vi13, vi13, 0x1 | nop ibne vi00, vi11, L13 | mula.xyzw ACC, vf15, vf12 ilwr.z vi09, vi13 | maddz.xyzw vf13, vf16, vf12 ;; end matrix setup ;; the L14 -> L26 area handles mat1s. ;; it appears to set vi03 as the rgba reading pointer ;; and vi04 as the end of mat1's rgba (poniter to last, not one past the end) ;; and vi06 as the end of mat2's rgba ;; and vi07 as the end of mat3's rgba L14: ilw.x vi02, 3(vi12) | nop ;; vi02 = perc-off ibeq vi00, vi04, L26 | nop ;; goto L26 if mat1 count is 0 iadd vi01, vi01, vi12 | nop ;; vi01 = lump. ilwr.x vi08, vi01 | nop ;; vi08 = lump[0].x = mat-0? lqi.xyzw vf08, vi01 | nop ;; vf08 = lump[0] = [mat0, mat1, nrmx, posx]? lqi.xyzw vf11, vi01 | nop ;; vf11 = lump[1] = [dst0, dst1, nrmy, posy]? lqi.xyzw vf14, vi01 | nop ;; vf14 = lump[2] = [texs, text, nrmz, posz]? lq.xyz vf29, 4(vi08) | nop ;; vf29 = [nmat0x, nmat0y, nmat0z, 0.003921569] lq.xyz vf30, 5(vi08) | add.zw vf08, vf08, vf17 ;; add to nrm and pos, keep loading nmat (w is ? here) lq.xyzw vf31, 6(vi08) | add.xyzw vf11, vf11, vf18 ;; lump unpack and add iaddi vi04, vi04, -0x1 | add.xyzw vf14, vf14, vf19 ;; lump unpack and add, subtract 1 from mat1 count iadd vi02, vi02, vi12 | nop ;; vi02 = perc ;; right does matrix mul with nmat and the vertex. ;; it rotates the normal ;; left lqi's from perc, unpacks dst0, dst1 to vi10 and vi13 lqi.xyzw vf24, vi02 | mulaz.xyzw ACC, vf29, vf08 mtir vi10, vf11.x | maddaz.xyzw ACC, vf30, vf11 mtir vi13, vf11.y | maddz.xyz vf11, vf31, vf14 ;; vf25, vf26, vf27, vf28 is the tmat lq.xyzw vf25, 0(vi08) | nop lq.xyzw vf26, 1(vi08) | itof0.xyzw vf24, vf24 ;; perc to floats: no idea what this is yet. lq.xyzw vf27, 2(vi08) | nop erleng.xyz P, vf11 | nop ;; p = normal length. lq.xyzw vf28, 3(vi08) | mulaw.xyzw ACC, vf25, vf08 ;; transform point, keep loading tmat ior vi15, vi07, vi00 | maddaw.xyzw ACC, vf26, vf11 ;; vi15 = using mercprime mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 ;; vf14.z = 1. (clears nrmz) lqi.xyzw vf09, vi01 | nop ;; vf09 = [mat0, mat1, nrmx, posx]? (P1) ilwr.y vi03, vi12 | nop ;; vi03 = rgba-off ilw.z vi07, 1(vi12) | nop ;; vi07 = mat3-cnt (why.....) lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 ;; P1 vert load | finish xf pt lqi.xyzw vf15, vi01 | nop ;; P1 vert load mtir vi08, vf09.x | nop ;; P1 mat0 ibeq vi00, vi15, L15 | nop iadd vi03, vi03, vi12 | nop ;; vi03 = rgba ;; only if merc-prime nop | miniw.w vf08, vf08, vf01 L15: ;; rhs is lump adding div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 ;; perspective divide! iadd vi04, vi04, vi03 | add.xyzw vf12, vf12, vf18 ;; vi04 = rgba + mat1-cnt - 1 (??) ;; note: the -1 is because the last vertex is handled lq.xyz vf29, 4(vi08) | add.xyzw vf15, vf15, vf19 ;; P1 load nmat | P1 lump add v2 lq.xyz vf30, 5(vi08) | nop ;; P1 load nmat iadd vi06, vi06, vi04 | nop ;; vi06 = rgba + mat1-cnt + mat2-cnt - 1 lq.xyzw vf31, 6(vi08) | nop ;; p1 load mat lq.xyzw vf25, 0(vi08) | nop ;; p1 load mat lq.xyzw vf26, 1(vi08) | mul.xyz vf08, vf08, Q ;; p1 load mat | perspective multiply mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q ;; p1 get dst | vf14 = [s*Q, t*Q, Q, posz*Q] mtir vi14, vf12.y | nop ;; p1 get dst lq.xyzw vf27, 2(vi08) | nop ;; p1 load mat lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 ;; load rgba, hvdf offset ;; rhs is p1's normal xform iadd vi07, vi07, vi06 | mulaz.xyzw ACC, vf29, vf09 ;; vi07 = rgba + mat1-cnt + mat2-cnt + mat3-cnt - 1 lq.xyzw vf28, 3(vi08) | maddaz.xyzw ACC, vf30, vf12 ;; mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 ;; vf20.w = normal length nop | nop 1024.0 | miniw.w vf08, vf08, vf03 :i ;; fog max ibne vi00, vi15, L82 | mulaw.xyzw ACC, vf25, vf09 ;; if mercprime, goto L82 | rhs is p1 ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 ;; vi09 = p0 vtx's mat1 | normalization of normal erleng.xyz P, vf12 | nop ;; p1's nrm length nop | maddaw.xyzw ACC, vf26, vf12 ;; p1 nrm xf mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 ;; p1 lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 ;; dot with light dir ibne vi04, vi03, L17 | madday.xyzw ACC, vf02, vf11 ;; branch to L17 if not done nop | maddz.xyzw vf11, vf03, vf11 ibne vi06, vi03, L31 | nop ;; branch to L31 if mat2's can be done nop | nop b L67 | nop ;; go to mat3 nop | nop ;; pipelined mat1 loop here L16: lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 L17: ;; entry from above. lqi.xyzw vf13, vi01 | add.xyzw vf09, vf09, vf28 ;; all p1 lqi.xyzw vf16, vi01 | maxw.w vf08, vf08, vf02 ;; p1 | fog min mtir vi08, vf10.x | itof0.xyzw vf23, vf23 ;; rgba to float ilw.y vi09, -9(vi01) | maxx.xyzw vf11, vf11, vf00 ;; vi09 = mat1 | light clamp div Q, vf01.w, vf09.w | add.zw vf10, vf10, vf17 ;; pipe 1 move.xyzw vf21, vf08 | add.xyzw vf13, vf13, vf18 ;; move | pipe1 lq.xyz vf29, 4(vi08) | add.xyzw vf16, vf16, vf19 ;; pipe | pipe lq.xyz vf30, 5(vi08) | mulax.xyzw ACC, vf04, vf11 ;; more lights ibgtz vi09, L18 | madday.xyzw ACC, vf05, vf11 lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf11 nop | addx.w vf21, vf21, vf17 L18: lq.xyzw vf25, 0(vi08) | maddw.xyzw vf11, vf07, vf00 ;; p1 | add ambient lq.xyzw vf26, 1(vi08) | mul.xyz vf09, vf09, Q ;; p | p mtir vi12, vf13.x | mul.xyzw vf15, vf15, Q ;; p | p mtir vi15, vf13.y | ftoi4.xyzw vf21, vf21 ;; p | position ftoi lq.xyzw vf27, 2(vi08) | mul.xyzw vf11, vf11, vf23 ;; p | vertex coloring lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 ibne vi00, vi09, L19 | mulaz.xyzw ACC, vf29, vf10 sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 nop | ftoi4.xyzw vf21, vf08 L19: mfp.w vf20, P | maddz.xyz vf13, vf31, vf16 sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 sq.xyzw vf21, 2(vi13) | mulaw.xyzw ACC, vf25, vf10 lq.xyzw vf28, 3(vi08) | mulw.xyzw vf12, vf12, vf20 erleng.xyz P, vf13 | ftoi0.xyzw vf11, vf11 ;; branch to end (first version in this loop) ibne vi04, vi03, L20 | maddaw.xyzw ACC, vf26, vf13 mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 ibne vi06, vi03, L36 | nop ;; branch if there's mat2's to do ilw.y vi09, -6(vi01) | nop ;; pipeline "exiting" ibne vi07, vi03, L72 | nop nop | nop b L143 | nop nop | nop L20: lqi.xyzw vf08, vi01 | mulax.xyzw ACC, vf01, vf12 ;; sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 ;; sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 ;; lqi.xyzw vf11, vi01 | add.xyzw vf10, vf10, vf28 ;; lqi.xyzw vf14, vi01 | maxw.w vf09, vf09, vf02 ;; mtir vi08, vf08.x | itof0.xyzw vf23, vf23 ;; ilw.y vi09, -9(vi01) | maxx.xyzw vf12, vf12, vf00 ;; div Q, vf01.w, vf10.w | add.zw vf08, vf08, vf17 ;; move.xyzw vf21, vf09 | add.xyzw vf11, vf11, vf18 ;; lq.xyz vf29, 4(vi08) | add.xyzw vf14, vf14, vf19 lq.xyz vf30, 5(vi08) | mulax.xyzw ACC, vf04, vf12 ;; ibgtz vi09, L21 | madday.xyzw ACC, vf05, vf12 ;; lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf12 ;; nop | addx.w vf21, vf21, vf17 ;; L21: lq.xyzw vf25, 0(vi08) | maddw.xyzw vf12, vf07, vf00 ;; lq.xyzw vf26, 1(vi08) | mul.xyz vf10, vf10, Q ;; mtir vi10, vf11.x | mul.xyzw vf16, vf16, Q ;; mtir vi13, vf11.y | ftoi4.xyzw vf21, vf21 ;; lq.xyzw vf27, 2(vi08) | mul.xyzw vf12, vf12, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 ibne vi00, vi09, L22 | mulaz.xyzw ACC, vf29, vf08 sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 ;; nop | ftoi4.xyzw vf21, vf09 L22: mfp.w vf20, P | maddz.xyz vf11, vf31, vf14 ;; sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 ;; sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 ;; sq.xyzw vf21, 2(vi14) | mulaw.xyzw ACC, vf25, vf08 ;; lq.xyzw vf28, 3(vi08) | mulw.xyzw vf13, vf13, vf20 ;; erleng.xyz P, vf11 | ftoi0.xyzw vf12, vf12 ;; ibne vi04, vi03, L23 | maddaw.xyzw ACC, vf26, vf11 mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 ibne vi06, vi03, L41 | nop ilw.y vi09, -6(vi01) | nop ibne vi07, vi03, L77 | nop nop | nop b L153 | nop nop | nop L23: lqi.xyzw vf09, vi01 | mulax.xyzw ACC, vf01, vf13 ;; sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 ;; sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 ;; lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 lqi.xyzw vf15, vi01 | maxw.w vf10, vf10, vf02 ;; mtir vi08, vf09.x | itof0.xyzw vf23, vf23 ;; ilw.y vi09, -9(vi01) | maxx.xyzw vf13, vf13, vf00 div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 move.xyzw vf21, vf10 | add.xyzw vf12, vf12, vf18 ;; lq.xyz vf29, 4(vi08) | add.xyzw vf15, vf15, vf19 lq.xyz vf30, 5(vi08) | mulax.xyzw ACC, vf04, vf13 ;; ibgtz vi09, L24 | madday.xyzw ACC, vf05, vf13 ;; lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf13 ;; nop | addx.w vf21, vf21, vf17 ;; L24: lq.xyzw vf25, 0(vi08) | maddw.xyzw vf13, vf07, vf00 lq.xyzw vf26, 1(vi08) | mul.xyz vf08, vf08, Q mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q mtir vi14, vf12.y | ftoi4.xyzw vf21, vf21 ;; lq.xyzw vf27, 2(vi08) | mul.xyzw vf13, vf13, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 ibne vi00, vi09, L25 | mulaz.xyzw ACC, vf29, vf09 sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 nop | ftoi4.xyzw vf21, vf10 L25: mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 sq.xyzw vf21, 2(vi15) | mulaw.xyzw ACC, vf25, vf09 lq.xyzw vf28, 3(vi08) | mulw.xyzw vf11, vf11, vf20 erleng.xyz P, vf12 | ftoi0.xyzw vf13, vf13 ibne vi04, vi03, L16 | maddaw.xyzw ACC, vf26, vf12 mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 ibne vi06, vi03, L30 | nop ilw.y vi09, -6(vi01) | nop ibne vi07, vi03, L66 | nop nop | nop b L163 | nop nop | nop L26: ;; pipeline startup for mat2's (assuming you had no mat1's to get things started) ibeq vi00, vi06, L61 | nop ;; goto L61 if no mat2's iadd vi02, vi02, vi12 | nop ;; compute perc offset lqi.xyzw vf08, vi01 | nop ;; vf08 = vtx0 = [mat0, mat1, nrmx, posx] lqi.xyzw vf24, vi02 | nop ;; vf24 = perc lqi.xyzw vf11, vi01 | nop ;; vf11 = vtx1 = [dst0, dst1, nrmy, posy] lqi.xyzw vf14, vi01 | nop ;; vf14 = vtx2 = [texs, text, nrmz, posz] mtir vi10, vf08.x | nop ;; vi10 = mat0 mtir vi13, vf08.y | itof0.xyzw vf24, vf24 ;; vi13 = mat1 | vf24 = itof0(perc) iaddi vi06, vi06, -0x1 | add.zw vf08, vf08, vf17 ;; dec count | lump offset nop | add.xyzw vf11, vf11, vf18 ;; lump offset iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 ;; vi10 = mat0 & 0x7f | lump offset nop | mulw.xyzw vf24, vf24, vf29 ;; scale perc iand vi13, vi13, vi05 | nop ;; vi13 = mat1 & 0x7f ;; left col is loading matrices, right col is multiplication by perc. lq.xyzw vf20, 0(vi10) | nop lq.xyzw vf25, 0(vi13) | nop lq.xyzw vf23, 1(vi10) | nop lq.xyzw vf26, 1(vi13) | nop lq.xyzw vf20, 2(vi10) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi13) | maddy.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi10) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi13) | maddy.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi10) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi13) | maddy.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi10) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi13) | maddy.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi10) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi13) | maddy.xyz vf29, vf29, vf24 mtir vi10, vf11.x | mulax.xyzw ACC, vf23, vf24 mtir vi13, vf11.y | maddy.xyz vf30, vf30, vf24 nop | mulax.xyzw ACC, vf20, vf24 nop | maddy.xyzw vf31, vf31, vf24 ;; last perc multiply nop | mulaz.xyzw ACC, vf29, vf08 ;; rotate normal nop | maddaz.xyzw ACC, vf30, vf11 nop | maddz.xyz vf11, vf31, vf14 nop | nop nop | nop nop | mulaw.xyzw ACC, vf25, vf08 ;; xf point iaddiu vi08, vi00, 0x243 | nop ;; vi08 = 0x243 = 579 erleng.xyz P, vf11 | nop ;; length of normal ior vi15, vi07, vi00 | maddaw.xyzw ACC, vf26, vf11 ;; vi15 = mercprimt | xf point mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 ;; set vf14.z = 1.0 | xf point lqi.xyzw vf09, vi01 | nop ;; pipe | ilwr.y vi03, vi12 | nop ;; vi03 = rgba-off ilw.z vi07, 1(vi12) | nop ;; vi07 = mat3-cnt lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 ;; pipe | xf point lqi.xyzw vf15, vi01 | nop ;; pipe mtir vi11, vf09.x | nop ;; pipe ibeq vi00, vi15, L27 | nop ;; goto L27 if no merc-prim mtir vi14, vf09.y | nop ;; pipe iaddiu vi08, vi00, 0x539 | miniw.w vf08, vf08, vf01 ;; ONLY RUN IF MERCPRIME L27: div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 ;; perspective divide | pipe iadd vi03, vi03, vi12 | add.xyzw vf12, vf12, vf18 ;; rgba off | pipe iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 ;; pipe | pipe iadd vi06, vi06, vi03 | nop ;; end addr calc1 iadd vi07, vi07, vi06 | nop ;; end addr calc2 iand vi14, vi14, vi05 | nop ;; pipe ibne vi05, vi11, L28 | nop ;; branch on next(?) vertex mat0 sign bit nop | mul.xyz vf08, vf08, Q ;; perspective mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q mtir vi14, vf12.y | nop b L29 | nop ;; branch to skip matrix load, if possible lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 ;; load rgba | hvdf offset L28: lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q lq.xyzw vf25, 0(vi14) | nop lq.xyzw vf23, 1(vi11) | nop lq.xyzw vf26, 1(vi14) | add.xyzw vf08, vf08, vf22 lq.xyzw vf20, 2(vi11) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi14) | maddw.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi11) | mulaz.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi14) | maddw.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi11) | mulaz.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi14) | maddw.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi11) | mulaz.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi14) | maddw.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi11) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi14) | maddw.xyz vf29, vf29, vf24 lqi.xyzw vf23, vi02 | mulaz.xyzw ACC, vf23, vf24 mtir vi11, vf12.x | maddw.xyz vf30, vf30, vf24 mtir vi14, vf12.y | mulaz.xyzw ACC, vf20, vf24 iaddiu vi08, vi00, 0x1a1 | maddw.xyzw vf31, vf31, vf24 ibeq vi00, vi15, L29 | nop lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 iaddiu vi08, vi00, 0x48e | nop L29: nop | mulaz.xyzw ACC, vf29, vf09 ;; pipe nop | maddaz.xyzw ACC, vf30, vf12 ;; pipe mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 ;; normal length | pipe nop | nop 1024.0 | miniw.w vf08, vf08, vf03 :i ;; fog max ibne vi00, vi15, L93 | mulaw.xyzw ACC, vf25, vf09 ;; mercprime | pipe ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 ;; vi09 = mat1 | normalize erleng.xyz P, vf12 | nop ;; pipe ibeq vi06, vi03, L65 | maddaw.xyzw ACC, vf26, vf12 ;; check done | pipe mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 ;; pipe | pipe lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 ;; pipe | dot product with light jr vi08 | madday.xyzw ACC, vf02, vf11 nop | maddz.xyzw vf11, vf03, vf11 L30: ;; mat2 cross entry 3 lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 L31: lqi.xyzw vf13, vi01 | add.xyzw vf09, vf09, vf28 lqi.xyzw vf16, vi01 | maxw.w vf08, vf08, vf02 mtir vi12, vf10.x | itof0.xyzw vf23, vf23 mtir vi15, vf10.y | maxx.xyzw vf11, vf11, vf00 div Q, vf01.w, vf09.w | add.zw vf10, vf10, vf17 move.xyzw vf21, vf08 | add.xyzw vf13, vf13, vf18 iand vi12, vi12, vi05 | add.xyzw vf16, vf16, vf19 nop | mulax.xyzw ACC, vf04, vf11 ibgtz vi09, L32 | madday.xyzw ACC, vf05, vf11 iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 nop | addx.w vf21, vf21, vf17 L32: ibne vi05, vi12, L33 | maddw.xyzw vf11, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf09, vf09, Q mtir vi12, vf13.x | mul.xyzw vf15, vf15, Q mtir vi15, vf13.y | ftoi4.xyzw vf21, vf21 b L34 | mul.xyzw vf11, vf11, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 L33: lq.xyzw vf20, 0(vi12) | mul.xyzw vf15, vf15, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf25, 0(vi15) | ftoi4.xyzw vf21, vf21 lq.xyzw vf23, 1(vi12) | mul.xyzw vf11, vf11, vf23 lq.xyzw vf26, 1(vi15) | add.xyzw vf09, vf09, vf22 lq.xyzw vf20, 2(vi12) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi15) | maddy.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi12) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi15) | maddy.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi12) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi15) | maddy.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi12) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi15) | maddy.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi12) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi15) | maddy.xyz vf29, vf29, vf24 mtir vi12, vf13.x | mulax.xyzw ACC, vf23, vf24 mtir vi15, vf13.y | maddy.xyz vf30, vf30, vf24 b L49 | mulax.xyzw ACC, vf20, vf24 lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 L34: ibgez vi09, L35 | mulaz.xyzw ACC, vf29, vf10 sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 nop | ftoi4.xyzw vf21, vf08 L35: mfp.w vf20, P | maddz.xyz vf13, vf31, vf16 sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 sq.xyzw vf21, 2(vi13) | mulaw.xyzw ACC, vf25, vf10 ilw.y vi09, -6(vi01) | mulw.xyzw vf12, vf12, vf20 erleng.xyz P, vf13 | ftoi0.xyzw vf11, vf11 ibne vi06, vi03, L36 | maddaw.xyzw ACC, vf26, vf13 mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 ibne vi07, vi03, L72 | nop nop | nop b L143 | nop nop | nop L36: ;; mat2 cross entry 1 lqi.xyzw vf08, vi01 | mulax.xyzw ACC, vf01, vf12 sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 ;; END of first vertex.... lqi.xyzw vf11, vi01 | add.xyzw vf10, vf10, vf28 lqi.xyzw vf14, vi01 | maxw.w vf09, vf09, vf02 mtir vi10, vf08.x | itof0.xyzw vf23, vf23 mtir vi13, vf08.y | maxx.xyzw vf12, vf12, vf00 div Q, vf01.w, vf10.w | add.zw vf08, vf08, vf17 move.xyzw vf21, vf09 | add.xyzw vf11, vf11, vf18 iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 nop | mulax.xyzw ACC, vf04, vf12 ibgtz vi09, L37 | madday.xyzw ACC, vf05, vf12 iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 nop | addx.w vf21, vf21, vf17 L37: ibne vi05, vi10, L38 | maddw.xyzw vf12, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf10, vf10, Q mtir vi10, vf11.x | mul.xyzw vf16, vf16, Q mtir vi13, vf11.y | ftoi4.xyzw vf21, vf21 b L39 | mul.xyzw vf12, vf12, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 L38: lq.xyzw vf20, 0(vi10) | mul.xyzw vf16, vf16, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf25, 0(vi13) | ftoi4.xyzw vf21, vf21 lq.xyzw vf23, 1(vi10) | mul.xyzw vf12, vf12, vf23 lq.xyzw vf26, 1(vi13) | add.xyzw vf10, vf10, vf22 lq.xyzw vf20, 2(vi10) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi13) | maddy.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi10) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi13) | maddy.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi10) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi13) | maddy.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi10) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi13) | maddy.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi10) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi13) | maddy.xyz vf29, vf29, vf24 mtir vi10, vf11.x | mulax.xyzw ACC, vf23, vf24 mtir vi13, vf11.y | maddy.xyz vf30, vf30, vf24 b L54 | mulax.xyzw ACC, vf20, vf24 lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 L39: ibgez vi09, L40 | mulaz.xyzw ACC, vf29, vf08 sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 nop | ftoi4.xyzw vf21, vf09 L40: mfp.w vf20, P | maddz.xyz vf11, vf31, vf14 sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 sq.xyzw vf21, 2(vi14) | mulaw.xyzw ACC, vf25, vf08 ilw.y vi09, -6(vi01) | mulw.xyzw vf13, vf13, vf20 erleng.xyz P, vf11 | ftoi0.xyzw vf12, vf12 ibne vi06, vi03, L41 | maddaw.xyzw ACC, vf26, vf11 mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 ibne vi07, vi03, L77 | nop nop | nop b L153 | nop nop | nop L41: ;; mat2 cross entry 2 lqi.xyzw vf09, vi01 | mulax.xyzw ACC, vf01, vf13 sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 lqi.xyzw vf15, vi01 | maxw.w vf10, vf10, vf02 mtir vi11, vf09.x | itof0.xyzw vf23, vf23 mtir vi14, vf09.y | maxx.xyzw vf13, vf13, vf00 div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 move.xyzw vf21, vf10 | add.xyzw vf12, vf12, vf18 iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 nop | mulax.xyzw ACC, vf04, vf13 ibgtz vi09, L42 | madday.xyzw ACC, vf05, vf13 iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 nop | addx.w vf21, vf21, vf17 L42: ibne vi05, vi11, L43 | maddw.xyzw vf13, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf08, vf08, Q mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q mtir vi14, vf12.y | ftoi4.xyzw vf21, vf21 b L44 | mul.xyzw vf13, vf13, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 L43: lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf25, 0(vi14) | ftoi4.xyzw vf21, vf21 lq.xyzw vf23, 1(vi11) | mul.xyzw vf13, vf13, vf23 lq.xyzw vf26, 1(vi14) | add.xyzw vf08, vf08, vf22 lq.xyzw vf20, 2(vi11) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi14) | maddy.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi11) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi14) | maddy.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi11) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi14) | maddy.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi11) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi14) | maddy.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi11) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi14) | maddy.xyz vf29, vf29, vf24 mtir vi11, vf12.x | mulax.xyzw ACC, vf23, vf24 mtir vi14, vf12.y | maddy.xyz vf30, vf30, vf24 b L59 | mulax.xyzw ACC, vf20, vf24 lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 L44: ibgez vi09, L45 | mulaz.xyzw ACC, vf29, vf09 sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 nop | ftoi4.xyzw vf21, vf10 L45: mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 sq.xyzw vf21, 2(vi15) | mulaw.xyzw ACC, vf25, vf09 ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 erleng.xyz P, vf12 | ftoi0.xyzw vf13, vf13 ibne vi06, vi03, L30 | maddaw.xyzw ACC, vf26, vf12 mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 ibne vi07, vi03, L66 | nop nop | nop b L163 | nop nop | nop L46: lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 ;; ugh, I think we jump here. lqi.xyzw vf13, vi01 | add.xyzw vf09, vf09, vf28 ;; pipe | pipe lqi.xyzw vf16, vi01 | maxw.w vf08, vf08, vf02 ;; pipe | fogmin mtir vi12, vf10.x | itof0.xyzw vf23, vf23 ;; pipe | vtx color convert mtir vi15, vf10.y | maxx.xyzw vf11, vf11, vf00 ;; pipe | light clamp div Q, vf01.w, vf09.w | add.zw vf10, vf10, vf17 move.xyzw vf21, vf08 | add.xyzw vf13, vf13, vf18 iand vi12, vi12, vi05 | add.xyzw vf16, vf16, vf19 nop | mulax.xyzw ACC, vf04, vf11 ibgtz vi09, L47 | madday.xyzw ACC, vf05, vf11 iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 nop | addx.w vf21, vf21, vf17 L47: ibne vi05, vi12, L48 | maddw.xyzw vf11, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf09, vf09, Q mtir vi12, vf13.x | mul.xyzw vf15, vf15, Q mtir vi15, vf13.y | ftoi4.xyzw vf21, vf21 b L49 | mul.xyzw vf11, vf11, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 L48: lq.xyzw vf20, 0(vi12) | mul.xyzw vf15, vf15, Q lq.xyzw vf25, 0(vi15) | ftoi4.xyzw vf21, vf21 lq.xyzw vf23, 1(vi12) | mul.xyzw vf11, vf11, vf23 lq.xyzw vf26, 1(vi15) | add.xyzw vf09, vf09, vf22 lq.xyzw vf20, 2(vi12) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi15) | maddw.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi12) | mulaz.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi15) | maddw.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi12) | mulaz.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi15) | maddw.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi12) | mulaz.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi15) | maddw.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi12) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi15) | maddw.xyz vf29, vf29, vf24 lqi.xyzw vf23, vi02 | mulaz.xyzw ACC, vf23, vf24 mtir vi12, vf13.x | maddw.xyz vf30, vf30, vf24 mtir vi15, vf13.y | mulaz.xyzw ACC, vf20, vf24 b L34 | maddw.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L49: ibgez vi09, L50 | mulaz.xyzw ACC, vf29, vf10 sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 ;; first store nop | ftoi4.xyzw vf21, vf08 L50: mfp.w vf20, P | maddz.xyz vf13, vf31, vf16 sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 sq.xyzw vf21, 2(vi13) | mulaw.xyzw ACC, vf25, vf10 ;; second store ilw.y vi09, -6(vi01) | mulw.xyzw vf12, vf12, vf20 erleng.xyz P, vf13 | ftoi0.xyzw vf11, vf11 ibne vi06, vi03, L51 | maddaw.xyzw ACC, vf26, vf13 mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 ibne vi07, vi03, L72 | nop nop | nop b L143 | nop nop | nop L51: lqi.xyzw vf08, vi01 | mulax.xyzw ACC, vf01, vf12 sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 ;; end, for real this time. lqi.xyzw vf11, vi01 | add.xyzw vf10, vf10, vf28 lqi.xyzw vf14, vi01 | maxw.w vf09, vf09, vf02 mtir vi10, vf08.x | itof0.xyzw vf23, vf23 mtir vi13, vf08.y | maxx.xyzw vf12, vf12, vf00 div Q, vf01.w, vf10.w | add.zw vf08, vf08, vf17 move.xyzw vf21, vf09 | add.xyzw vf11, vf11, vf18 iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 nop | mulax.xyzw ACC, vf04, vf12 ibgtz vi09, L52 | madday.xyzw ACC, vf05, vf12 iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 nop | addx.w vf21, vf21, vf17 L52: ibne vi05, vi10, L53 | maddw.xyzw vf12, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf10, vf10, Q mtir vi10, vf11.x | mul.xyzw vf16, vf16, Q mtir vi13, vf11.y | ftoi4.xyzw vf21, vf21 b L54 | mul.xyzw vf12, vf12, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 L53: lq.xyzw vf20, 0(vi10) | mul.xyzw vf16, vf16, Q lq.xyzw vf25, 0(vi13) | ftoi4.xyzw vf21, vf21 lq.xyzw vf23, 1(vi10) | mul.xyzw vf12, vf12, vf23 lq.xyzw vf26, 1(vi13) | add.xyzw vf10, vf10, vf22 lq.xyzw vf20, 2(vi10) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi13) | maddw.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi10) | mulaz.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi13) | maddw.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi10) | mulaz.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi13) | maddw.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi10) | mulaz.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi13) | maddw.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi10) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi13) | maddw.xyz vf29, vf29, vf24 lqi.xyzw vf23, vi02 | mulaz.xyzw ACC, vf23, vf24 mtir vi10, vf11.x | maddw.xyz vf30, vf30, vf24 mtir vi13, vf11.y | mulaz.xyzw ACC, vf20, vf24 b L39 | maddw.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L54: ibgez vi09, L55 | mulaz.xyzw ACC, vf29, vf08 sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 nop | ftoi4.xyzw vf21, vf09 L55: mfp.w vf20, P | maddz.xyz vf11, vf31, vf14 sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 sq.xyzw vf21, 2(vi14) | mulaw.xyzw ACC, vf25, vf08 ilw.y vi09, -6(vi01) | mulw.xyzw vf13, vf13, vf20 erleng.xyz P, vf11 | ftoi0.xyzw vf12, vf12 ibne vi06, vi03, L56 | maddaw.xyzw ACC, vf26, vf11 mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 ibne vi07, vi03, L77 | nop nop | nop b L153 | nop nop | nop L56: lqi.xyzw vf09, vi01 | mulax.xyzw ACC, vf01, vf13 sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 lqi.xyzw vf15, vi01 | maxw.w vf10, vf10, vf02 mtir vi11, vf09.x | itof0.xyzw vf23, vf23 mtir vi14, vf09.y | maxx.xyzw vf13, vf13, vf00 div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 move.xyzw vf21, vf10 | add.xyzw vf12, vf12, vf18 iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 nop | mulax.xyzw ACC, vf04, vf13 ibgtz vi09, L57 | madday.xyzw ACC, vf05, vf13 iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 nop | addx.w vf21, vf21, vf17 L57: ibne vi05, vi11, L58 | maddw.xyzw vf13, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf08, vf08, Q mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q mtir vi14, vf12.y | ftoi4.xyzw vf21, vf21 b L59 | mul.xyzw vf13, vf13, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 L58: lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q lq.xyzw vf25, 0(vi14) | ftoi4.xyzw vf21, vf21 lq.xyzw vf23, 1(vi11) | mul.xyzw vf13, vf13, vf23 lq.xyzw vf26, 1(vi14) | add.xyzw vf08, vf08, vf22 lq.xyzw vf20, 2(vi11) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi14) | maddw.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi11) | mulaz.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi14) | maddw.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi11) | mulaz.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi14) | maddw.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi11) | mulaz.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi14) | maddw.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi11) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi14) | maddw.xyz vf29, vf29, vf24 lqi.xyzw vf23, vi02 | mulaz.xyzw ACC, vf23, vf24 mtir vi11, vf12.x | maddw.xyz vf30, vf30, vf24 mtir vi14, vf12.y | mulaz.xyzw ACC, vf20, vf24 b L44 | maddw.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L59: ibgez vi09, L60 | mulaz.xyzw ACC, vf29, vf09 sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 nop | ftoi4.xyzw vf21, vf10 L60: mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 sq.xyzw vf21, 2(vi15) | mulaw.xyzw ACC, vf25, vf09 ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 erleng.xyz P, vf12 | ftoi0.xyzw vf13, vf13 ibne vi06, vi03, L46 | maddaw.xyzw ACC, vf26, vf12 mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 ibne vi07, vi03, L72 | nop nop | nop b L163 | nop nop | nop ;; maybe mat3s L61: lqi.xyzw vf08, vi01 | nop lqi.xyzw vf24, vi02 | nop lqi.xyzw vf11, vi01 | nop lqi.xyzw vf14, vi01 | nop mtir vi10, vf08.x | nop mtir vi13, vf08.y | itof0.xyzw vf24, vf24 nop | add.zw vf08, vf08, vf17 nop | add.xyzw vf11, vf11, vf18 iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 ilw.w vi08, -1(vi02) | mulw.xyzw vf24, vf24, vf29 iand vi13, vi13, vi05 | nop lq.xyzw vf20, 0(vi10) | nop lq.xyzw vf31, 0(vi13) | nop lq.xyzw vf25, 0(vi08) | nop lq.xyzw vf23, 1(vi10) | nop lq.xyzw vf20, 1(vi13) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 2(vi10) | maddz.xyzw vf25, vf25, vf24 lq.xyzw vf23, 2(vi13) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 3(vi10) | maddz.xyzw vf26, vf26, vf24 lq.xyzw vf31, 3(vi13) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 lq.xyzw vf23, 4(vi10) | maddz.xyzw vf27, vf27, vf24 lq.xyzw vf20, 4(vi13) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 5(vi10) | maddz.xyzw vf28, vf28, vf24 lq.xyzw vf23, 5(vi13) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 6(vi10) | maddz.xyz vf29, vf29, vf24 lq.xyzw vf22, 6(vi13) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 mtir vi10, vf11.x | mulax.xyzw ACC, vf20, vf24 mtir vi13, vf11.y | madday.xyzw ACC, vf22, vf24 lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 nop | itof0.xyzw vf24, vf23 nop | mulaz.xyzw ACC, vf29, vf08 nop | maddaz.xyzw ACC, vf30, vf11 nop | maddz.xyz vf11, vf31, vf14 nop | nop nop | nop nop | mulaw.xyzw ACC, vf25, vf08 nop | nop erleng.xyz P, vf11 | nop ior vi15, vi07, vi00 | maddaw.xyzw ACC, vf26, vf11 mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 lqi.xyzw vf09, vi01 | nop ilwr.y vi03, vi12 | nop ilw.z vi07, 1(vi12) | nop lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 lqi.xyzw vf15, vi01 | nop mtir vi11, vf09.x | nop ibeq vi00, vi15, L62 | nop mtir vi14, vf09.y | nop nop | miniw.w vf08, vf08, vf01 L62: div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 iadd vi03, vi03, vi12 | add.xyzw vf12, vf12, vf18 iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 ilw.w vi08, -1(vi02) | nop iadd vi07, vi07, vi03 | nop iand vi14, vi14, vi05 | nop ibne vi05, vi11, L63 | nop iaddi vi07, vi07, -0x1 | mul.xyz vf08, vf08, Q mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q mtir vi14, vf12.y | nop b L64 | nop lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 L63: lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf31, 0(vi14) | nop lq.xyzw vf25, 0(vi08) | nop lq.xyzw vf23, 1(vi11) | add.xyzw vf08, vf08, vf22 lq.xyzw vf20, 1(vi14) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 2(vi11) | maddz.xyzw vf25, vf25, vf24 lq.xyzw vf23, 2(vi14) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 3(vi11) | maddz.xyzw vf26, vf26, vf24 lq.xyzw vf31, 3(vi14) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 lq.xyzw vf23, 4(vi11) | maddz.xyzw vf27, vf27, vf24 lq.xyzw vf20, 4(vi14) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 5(vi11) | maddz.xyzw vf28, vf28, vf24 lq.xyzw vf23, 5(vi14) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 6(vi11) | maddz.xyz vf29, vf29, vf24 lq.xyzw vf22, 6(vi14) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 mtir vi11, vf12.x | mulax.xyzw ACC, vf20, vf24 mtir vi14, vf12.y | madday.xyzw ACC, vf22, vf24 lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L64: nop | mulaz.xyzw ACC, vf29, vf09 nop | maddaz.xyzw ACC, vf30, vf12 mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 nop | nop 1024.0 | miniw.w vf08, vf08, vf03 :i ibne vi00, vi15, L125 | mulaw.xyzw ACC, vf25, vf09 ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 erleng.xyz P, vf12 | nop nop | maddaw.xyzw ACC, vf26, vf12 mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 L65: lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 b L67 | madday.xyzw ACC, vf02, vf11 nop | maddz.xyzw vf11, vf03, vf11 L66: ;; mat3 cross entry lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 L67: lqi.xyzw vf13, vi01 | add.xyzw vf09, vf09, vf28 lqi.xyzw vf16, vi01 | maxw.w vf08, vf08, vf02 mtir vi12, vf10.x | itof0.xyzw vf23, vf23 mtir vi15, vf10.y | maxx.xyzw vf11, vf11, vf00 div Q, vf01.w, vf09.w | add.zw vf10, vf10, vf17 move.xyzw vf21, vf08 | add.xyzw vf13, vf13, vf18 iand vi12, vi12, vi05 | add.xyzw vf16, vf16, vf19 ilw.w vi08, -1(vi02) | mulax.xyzw ACC, vf04, vf11 ibgtz vi09, L68 | madday.xyzw ACC, vf05, vf11 iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 nop | addx.w vf21, vf21, vf17 L68: ibne vi05, vi12, L69 | maddw.xyzw vf11, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf09, vf09, Q mtir vi12, vf13.x | mul.xyzw vf15, vf15, Q mtir vi15, vf13.y | ftoi4.xyzw vf21, vf21 b L70 | mul.xyzw vf11, vf11, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 L69: lq.xyzw vf20, 0(vi12) | mul.xyzw vf15, vf15, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf31, 0(vi15) | ftoi4.xyzw vf21, vf21 lq.xyzw vf25, 0(vi08) | mul.xyzw vf11, vf11, vf23 lq.xyzw vf23, 1(vi12) | add.xyzw vf09, vf09, vf22 lq.xyzw vf20, 1(vi15) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 2(vi12) | maddz.xyzw vf25, vf25, vf24 lq.xyzw vf23, 2(vi15) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 3(vi12) | maddz.xyzw vf26, vf26, vf24 lq.xyzw vf31, 3(vi15) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 lq.xyzw vf23, 4(vi12) | maddz.xyzw vf27, vf27, vf24 lq.xyzw vf20, 4(vi15) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 5(vi12) | maddz.xyzw vf28, vf28, vf24 lq.xyzw vf23, 5(vi15) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 6(vi12) | maddz.xyz vf29, vf29, vf24 lq.xyzw vf22, 6(vi15) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 mtir vi12, vf13.x | mulax.xyzw ACC, vf20, vf24 mtir vi15, vf13.y | madday.xyzw ACC, vf22, vf24 lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L70: ibgez vi09, L71 | mulaz.xyzw ACC, vf29, vf10 sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 nop | ftoi4.xyzw vf21, vf08 L71: mfp.w vf20, P | maddz.xyz vf13, vf31, vf16 sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 sq.xyzw vf21, 2(vi13) | mulaw.xyzw ACC, vf25, vf10 ilw.y vi09, -6(vi01) | mulw.xyzw vf12, vf12, vf20 erleng.xyz P, vf13 | ftoi0.xyzw vf11, vf11 ibeq vi07, vi03, L143 | maddaw.xyzw ACC, vf26, vf13 mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 L72: ;; mat3 cross entry lqi.xyzw vf08, vi01 | mulax.xyzw ACC, vf01, vf12 sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 lqi.xyzw vf11, vi01 | add.xyzw vf10, vf10, vf28 lqi.xyzw vf14, vi01 | maxw.w vf09, vf09, vf02 mtir vi10, vf08.x | itof0.xyzw vf23, vf23 mtir vi13, vf08.y | maxx.xyzw vf12, vf12, vf00 div Q, vf01.w, vf10.w | add.zw vf08, vf08, vf17 move.xyzw vf21, vf09 | add.xyzw vf11, vf11, vf18 iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 ilw.w vi08, -1(vi02) | mulax.xyzw ACC, vf04, vf12 ibgtz vi09, L73 | madday.xyzw ACC, vf05, vf12 iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 nop | addx.w vf21, vf21, vf17 L73: ibne vi05, vi10, L74 | maddw.xyzw vf12, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf10, vf10, Q mtir vi10, vf11.x | mul.xyzw vf16, vf16, Q mtir vi13, vf11.y | ftoi4.xyzw vf21, vf21 b L75 | mul.xyzw vf12, vf12, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 L74: lq.xyzw vf20, 0(vi10) | mul.xyzw vf16, vf16, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf31, 0(vi13) | ftoi4.xyzw vf21, vf21 lq.xyzw vf25, 0(vi08) | mul.xyzw vf12, vf12, vf23 lq.xyzw vf23, 1(vi10) | add.xyzw vf10, vf10, vf22 lq.xyzw vf20, 1(vi13) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 2(vi10) | maddz.xyzw vf25, vf25, vf24 lq.xyzw vf23, 2(vi13) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 3(vi10) | maddz.xyzw vf26, vf26, vf24 lq.xyzw vf31, 3(vi13) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 lq.xyzw vf23, 4(vi10) | maddz.xyzw vf27, vf27, vf24 lq.xyzw vf20, 4(vi13) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 5(vi10) | maddz.xyzw vf28, vf28, vf24 lq.xyzw vf23, 5(vi13) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 6(vi10) | maddz.xyz vf29, vf29, vf24 lq.xyzw vf22, 6(vi13) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 mtir vi10, vf11.x | mulax.xyzw ACC, vf20, vf24 mtir vi13, vf11.y | madday.xyzw ACC, vf22, vf24 lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L75: ibgez vi09, L76 | mulaz.xyzw ACC, vf29, vf08 sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 nop | ftoi4.xyzw vf21, vf09 L76: mfp.w vf20, P | maddz.xyz vf11, vf31, vf14 sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 sq.xyzw vf21, 2(vi14) | mulaw.xyzw ACC, vf25, vf08 ilw.y vi09, -6(vi01) | mulw.xyzw vf13, vf13, vf20 erleng.xyz P, vf11 | ftoi0.xyzw vf12, vf12 ibeq vi07, vi03, L153 | maddaw.xyzw ACC, vf26, vf11 mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 L77: ;; mat3 cross entry lqi.xyzw vf09, vi01 | mulax.xyzw ACC, vf01, vf13 sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 lqi.xyzw vf15, vi01 | maxw.w vf10, vf10, vf02 mtir vi11, vf09.x | itof0.xyzw vf23, vf23 mtir vi14, vf09.y | maxx.xyzw vf13, vf13, vf00 div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 move.xyzw vf21, vf10 | add.xyzw vf12, vf12, vf18 iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 ilw.w vi08, -1(vi02) | mulax.xyzw ACC, vf04, vf13 ibgtz vi09, L78 | madday.xyzw ACC, vf05, vf13 iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 nop | addx.w vf21, vf21, vf17 L78: ibne vi05, vi11, L79 | maddw.xyzw vf13, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf08, vf08, Q mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q mtir vi14, vf12.y | ftoi4.xyzw vf21, vf21 b L80 | mul.xyzw vf13, vf13, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 L79: lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf31, 0(vi14) | ftoi4.xyzw vf21, vf21 lq.xyzw vf25, 0(vi08) | mul.xyzw vf13, vf13, vf23 lq.xyzw vf23, 1(vi11) | add.xyzw vf08, vf08, vf22 lq.xyzw vf20, 1(vi14) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 2(vi11) | maddz.xyzw vf25, vf25, vf24 lq.xyzw vf23, 2(vi14) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 3(vi11) | maddz.xyzw vf26, vf26, vf24 lq.xyzw vf31, 3(vi14) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 lq.xyzw vf23, 4(vi11) | maddz.xyzw vf27, vf27, vf24 lq.xyzw vf20, 4(vi14) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 5(vi11) | maddz.xyzw vf28, vf28, vf24 lq.xyzw vf23, 5(vi14) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 6(vi11) | maddz.xyz vf29, vf29, vf24 lq.xyzw vf22, 6(vi14) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 mtir vi11, vf12.x | mulax.xyzw ACC, vf20, vf24 mtir vi14, vf12.y | madday.xyzw ACC, vf22, vf24 lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L80: ibgez vi09, L81 | mulaz.xyzw ACC, vf29, vf09 sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 nop | ftoi4.xyzw vf21, vf10 L81: mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 sq.xyzw vf21, 2(vi15) | mulaw.xyzw ACC, vf25, vf09 ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 erleng.xyz P, vf12 | ftoi0.xyzw vf13, vf13 ibne vi07, vi03, L66 | maddaw.xyzw ACC, vf26, vf12 mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 b L163 | nop nop | nop ;; merc prime, or other weird things. L82: erleng.xyz P, vf12 | maxi.xy vf08, vf08, I 3072.0 | nop :i nop | minii.xy vf08, vf08, I nop | maddaw.xyzw ACC, vf26, vf12 mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 ibne vi04, vi03, L84 | madday.xyzw ACC, vf02, vf11 nop | maddz.xyzw vf11, vf03, vf11 ibne vi06, vi03, L95 | nop nop | nop b L128 | nop nop | nop L83: 3072.0 | mulax.xyzw ACC, vf01, vf11 :i lqi.xyzw vf10, vi01 | minii.xy vf08, vf08, I sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 L84: lqi.xyzw vf13, vi01 | add.xyzw vf09, vf09, vf28 lqi.xyzw vf16, vi01 | maxw.w vf08, vf08, vf02 mtir vi08, vf10.x | itof0.xyzw vf23, vf23 ilw.y vi09, -9(vi01) | maxx.xyzw vf11, vf11, vf00 nop | miniw.w vf09, vf09, vf01 div Q, vf01.w, vf09.w | add.zw vf10, vf10, vf17 move.xyzw vf21, vf08 | add.xyzw vf13, vf13, vf18 lq.xyz vf29, 4(vi08) | add.xyzw vf16, vf16, vf19 lq.xyz vf30, 5(vi08) | mulax.xyzw ACC, vf04, vf11 ibgtz vi09, L85 | madday.xyzw ACC, vf05, vf11 lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf11 nop | addx.w vf21, vf21, vf17 L85: lq.xyzw vf25, 0(vi08) | maddw.xyzw vf11, vf07, vf00 lq.xyzw vf26, 1(vi08) | mul.xyz vf09, vf09, Q mtir vi12, vf13.x | mul.xyzw vf15, vf15, Q mtir vi15, vf13.y | ftoi4.xyzw vf21, vf21 lq.xyzw vf27, 2(vi08) | mul.xyzw vf11, vf11, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 ibne vi00, vi09, L86 | mulaz.xyzw ACC, vf29, vf10 sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 nop | ftoi4.xyzw vf21, vf08 L86: mfp.w vf20, P | maddz.xyz vf13, vf31, vf16 sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 sq.xyzw vf21, 2(vi13) | mulaw.xyzw ACC, vf25, vf10 lq.xyzw vf28, 3(vi08) | mulw.xyzw vf12, vf12, vf20 1024.0 | ftoi0.xyzw vf11, vf11 :i erleng.xyz P, vf13 | maxi.xy vf09, vf09, I ibne vi04, vi03, L87 | maddaw.xyzw ACC, vf26, vf13 mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 ibne vi06, vi03, L100 | nop ilw.y vi09, -6(vi01) | nop ibne vi07, vi03, L133 | nop nop | nop b L143 | nop nop | nop L87: 3072.0 | mulax.xyzw ACC, vf01, vf12 :i lqi.xyzw vf08, vi01 | minii.xy vf09, vf09, I sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 lqi.xyzw vf11, vi01 | add.xyzw vf10, vf10, vf28 lqi.xyzw vf14, vi01 | maxw.w vf09, vf09, vf02 mtir vi08, vf08.x | itof0.xyzw vf23, vf23 ilw.y vi09, -9(vi01) | maxx.xyzw vf12, vf12, vf00 nop | miniw.w vf10, vf10, vf01 div Q, vf01.w, vf10.w | add.zw vf08, vf08, vf17 move.xyzw vf21, vf09 | add.xyzw vf11, vf11, vf18 lq.xyz vf29, 4(vi08) | add.xyzw vf14, vf14, vf19 lq.xyz vf30, 5(vi08) | mulax.xyzw ACC, vf04, vf12 ibgtz vi09, L88 | madday.xyzw ACC, vf05, vf12 lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf12 nop | addx.w vf21, vf21, vf17 L88: lq.xyzw vf25, 0(vi08) | maddw.xyzw vf12, vf07, vf00 lq.xyzw vf26, 1(vi08) | mul.xyz vf10, vf10, Q mtir vi10, vf11.x | mul.xyzw vf16, vf16, Q mtir vi13, vf11.y | ftoi4.xyzw vf21, vf21 lq.xyzw vf27, 2(vi08) | mul.xyzw vf12, vf12, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 ibne vi00, vi09, L89 | mulaz.xyzw ACC, vf29, vf08 sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 nop | ftoi4.xyzw vf21, vf09 L89: mfp.w vf20, P | maddz.xyz vf11, vf31, vf14 sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 sq.xyzw vf21, 2(vi14) | mulaw.xyzw ACC, vf25, vf08 lq.xyzw vf28, 3(vi08) | mulw.xyzw vf13, vf13, vf20 1024.0 | ftoi0.xyzw vf12, vf12 :i erleng.xyz P, vf11 | maxi.xy vf10, vf10, I ibne vi04, vi03, L90 | maddaw.xyzw ACC, vf26, vf11 mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 ibne vi06, vi03, L105 | nop ilw.y vi09, -6(vi01) | nop ibne vi07, vi03, L138 | nop nop | nop b L153 | nop nop | nop L90: 3072.0 | mulax.xyzw ACC, vf01, vf13 :i lqi.xyzw vf09, vi01 | minii.xy vf10, vf10, I sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 lqi.xyzw vf15, vi01 | maxw.w vf10, vf10, vf02 mtir vi08, vf09.x | itof0.xyzw vf23, vf23 ilw.y vi09, -9(vi01) | maxx.xyzw vf13, vf13, vf00 nop | miniw.w vf08, vf08, vf01 div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 move.xyzw vf21, vf10 | add.xyzw vf12, vf12, vf18 lq.xyz vf29, 4(vi08) | add.xyzw vf15, vf15, vf19 lq.xyz vf30, 5(vi08) | mulax.xyzw ACC, vf04, vf13 ibgtz vi09, L91 | madday.xyzw ACC, vf05, vf13 lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf13 nop | addx.w vf21, vf21, vf17 L91: lq.xyzw vf25, 0(vi08) | maddw.xyzw vf13, vf07, vf00 lq.xyzw vf26, 1(vi08) | mul.xyz vf08, vf08, Q mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q mtir vi14, vf12.y | ftoi4.xyzw vf21, vf21 lq.xyzw vf27, 2(vi08) | mul.xyzw vf13, vf13, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 ibne vi00, vi09, L92 | mulaz.xyzw ACC, vf29, vf09 sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 nop | ftoi4.xyzw vf21, vf10 L92: mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 sq.xyzw vf21, 2(vi15) | mulaw.xyzw ACC, vf25, vf09 lq.xyzw vf28, 3(vi08) | mulw.xyzw vf11, vf11, vf20 1024.0 | ftoi0.xyzw vf13, vf13 :i erleng.xyz P, vf12 | maxi.xy vf08, vf08, I ibne vi04, vi03, L83 | maddaw.xyzw ACC, vf26, vf12 mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 ibne vi06, vi03, L94 | nop ilw.y vi09, -6(vi01) | nop ibne vi07, vi03, L127 | nop nop | nop b L163 | nop nop | nop L93: erleng.xyz P, vf12 | maxi.xy vf08, vf08, I 3072.0 | nop :i nop | minii.xy vf08, vf08, I ibeq vi06, vi03, L126 | maddaw.xyzw ACC, vf26, vf12 mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 jr vi08 | madday.xyzw ACC, vf02, vf11 nop | maddz.xyzw vf11, vf03, vf11 L94: 3072.0 | mulax.xyzw ACC, vf01, vf11 :i lqi.xyzw vf10, vi01 | minii.xy vf08, vf08, I sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 L95: lqi.xyzw vf13, vi01 | add.xyzw vf09, vf09, vf28 lqi.xyzw vf16, vi01 | maxw.w vf08, vf08, vf02 mtir vi12, vf10.x | itof0.xyzw vf23, vf23 mtir vi15, vf10.y | maxx.xyzw vf11, vf11, vf00 nop | miniw.w vf09, vf09, vf01 div Q, vf01.w, vf09.w | add.zw vf10, vf10, vf17 move.xyzw vf21, vf08 | add.xyzw vf13, vf13, vf18 iand vi12, vi12, vi05 | add.xyzw vf16, vf16, vf19 nop | mulax.xyzw ACC, vf04, vf11 ibgtz vi09, L96 | madday.xyzw ACC, vf05, vf11 iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 nop | addx.w vf21, vf21, vf17 L96: ibne vi05, vi12, L97 | maddw.xyzw vf11, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf09, vf09, Q mtir vi12, vf13.x | mul.xyzw vf15, vf15, Q mtir vi15, vf13.y | ftoi4.xyzw vf21, vf21 b L98 | mul.xyzw vf11, vf11, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 L97: lq.xyzw vf20, 0(vi12) | mul.xyzw vf15, vf15, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf25, 0(vi15) | ftoi4.xyzw vf21, vf21 lq.xyzw vf23, 1(vi12) | mul.xyzw vf11, vf11, vf23 lq.xyzw vf26, 1(vi15) | add.xyzw vf09, vf09, vf22 lq.xyzw vf20, 2(vi12) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi15) | maddy.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi12) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi15) | maddy.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi12) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi15) | maddy.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi12) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi15) | maddy.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi12) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi15) | maddy.xyz vf29, vf29, vf24 mtir vi12, vf13.x | mulax.xyzw ACC, vf23, vf24 mtir vi15, vf13.y | maddy.xyz vf30, vf30, vf24 b L113 | mulax.xyzw ACC, vf20, vf24 lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 L98: ibgez vi09, L99 | mulaz.xyzw ACC, vf29, vf10 sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 nop | ftoi4.xyzw vf21, vf08 L99: mfp.w vf20, P | maddz.xyz vf13, vf31, vf16 sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 sq.xyzw vf21, 2(vi13) | mulaw.xyzw ACC, vf25, vf10 ilw.y vi09, -6(vi01) | mulw.xyzw vf12, vf12, vf20 1024.0 | ftoi0.xyzw vf11, vf11 :i erleng.xyz P, vf13 | maxi.xy vf09, vf09, I ibne vi06, vi03, L100 | maddaw.xyzw ACC, vf26, vf13 mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 ibne vi07, vi03, L133 | nop nop | nop b L143 | nop nop | nop L100: 3072.0 | mulax.xyzw ACC, vf01, vf12 :i lqi.xyzw vf08, vi01 | minii.xy vf09, vf09, I sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 lqi.xyzw vf11, vi01 | add.xyzw vf10, vf10, vf28 lqi.xyzw vf14, vi01 | maxw.w vf09, vf09, vf02 mtir vi10, vf08.x | itof0.xyzw vf23, vf23 mtir vi13, vf08.y | maxx.xyzw vf12, vf12, vf00 nop | miniw.w vf10, vf10, vf01 div Q, vf01.w, vf10.w | add.zw vf08, vf08, vf17 move.xyzw vf21, vf09 | add.xyzw vf11, vf11, vf18 iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 nop | mulax.xyzw ACC, vf04, vf12 ibgtz vi09, L101 | madday.xyzw ACC, vf05, vf12 iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 nop | addx.w vf21, vf21, vf17 L101: ibne vi05, vi10, L102 | maddw.xyzw vf12, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf10, vf10, Q mtir vi10, vf11.x | mul.xyzw vf16, vf16, Q mtir vi13, vf11.y | ftoi4.xyzw vf21, vf21 b L103 | mul.xyzw vf12, vf12, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 L102: lq.xyzw vf20, 0(vi10) | mul.xyzw vf16, vf16, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf25, 0(vi13) | ftoi4.xyzw vf21, vf21 lq.xyzw vf23, 1(vi10) | mul.xyzw vf12, vf12, vf23 lq.xyzw vf26, 1(vi13) | add.xyzw vf10, vf10, vf22 lq.xyzw vf20, 2(vi10) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi13) | maddy.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi10) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi13) | maddy.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi10) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi13) | maddy.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi10) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi13) | maddy.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi10) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi13) | maddy.xyz vf29, vf29, vf24 mtir vi10, vf11.x | mulax.xyzw ACC, vf23, vf24 mtir vi13, vf11.y | maddy.xyz vf30, vf30, vf24 b L118 | mulax.xyzw ACC, vf20, vf24 lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 L103: ibgez vi09, L104 | mulaz.xyzw ACC, vf29, vf08 sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 nop | ftoi4.xyzw vf21, vf09 L104: mfp.w vf20, P | maddz.xyz vf11, vf31, vf14 sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 sq.xyzw vf21, 2(vi14) | mulaw.xyzw ACC, vf25, vf08 ilw.y vi09, -6(vi01) | mulw.xyzw vf13, vf13, vf20 1024.0 | ftoi0.xyzw vf12, vf12 :i erleng.xyz P, vf11 | maxi.xy vf10, vf10, I ibne vi06, vi03, L105 | maddaw.xyzw ACC, vf26, vf11 mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 ibne vi07, vi03, L138 | nop nop | nop b L153 | nop nop | nop L105: 3072.0 | mulax.xyzw ACC, vf01, vf13 :i lqi.xyzw vf09, vi01 | minii.xy vf10, vf10, I sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 lqi.xyzw vf15, vi01 | maxw.w vf10, vf10, vf02 mtir vi11, vf09.x | itof0.xyzw vf23, vf23 mtir vi14, vf09.y | maxx.xyzw vf13, vf13, vf00 nop | miniw.w vf08, vf08, vf01 div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 move.xyzw vf21, vf10 | add.xyzw vf12, vf12, vf18 iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 nop | mulax.xyzw ACC, vf04, vf13 ibgtz vi09, L106 | madday.xyzw ACC, vf05, vf13 iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 nop | addx.w vf21, vf21, vf17 L106: ibne vi05, vi11, L107 | maddw.xyzw vf13, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf08, vf08, Q mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q mtir vi14, vf12.y | ftoi4.xyzw vf21, vf21 b L108 | mul.xyzw vf13, vf13, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 L107: lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf25, 0(vi14) | ftoi4.xyzw vf21, vf21 lq.xyzw vf23, 1(vi11) | mul.xyzw vf13, vf13, vf23 lq.xyzw vf26, 1(vi14) | add.xyzw vf08, vf08, vf22 lq.xyzw vf20, 2(vi11) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi14) | maddy.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi11) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi14) | maddy.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi11) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi14) | maddy.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi11) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi14) | maddy.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi11) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi14) | maddy.xyz vf29, vf29, vf24 mtir vi11, vf12.x | mulax.xyzw ACC, vf23, vf24 mtir vi14, vf12.y | maddy.xyz vf30, vf30, vf24 b L123 | mulax.xyzw ACC, vf20, vf24 lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 L108: ibgez vi09, L109 | mulaz.xyzw ACC, vf29, vf09 sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 nop | ftoi4.xyzw vf21, vf10 L109: mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 sq.xyzw vf21, 2(vi15) | mulaw.xyzw ACC, vf25, vf09 ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 1024.0 | ftoi0.xyzw vf13, vf13 :i erleng.xyz P, vf12 | maxi.xy vf08, vf08, I ibne vi06, vi03, L94 | maddaw.xyzw ACC, vf26, vf12 mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 ibne vi07, vi03, L127 | nop nop | nop b L163 | nop nop | nop L110: 3072.0 | mulax.xyzw ACC, vf01, vf11 :i lqi.xyzw vf10, vi01 | minii.xy vf08, vf08, I sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 lqi.xyzw vf13, vi01 | add.xyzw vf09, vf09, vf28 lqi.xyzw vf16, vi01 | maxw.w vf08, vf08, vf02 mtir vi12, vf10.x | itof0.xyzw vf23, vf23 mtir vi15, vf10.y | maxx.xyzw vf11, vf11, vf00 nop | miniw.w vf09, vf09, vf01 div Q, vf01.w, vf09.w | add.zw vf10, vf10, vf17 move.xyzw vf21, vf08 | add.xyzw vf13, vf13, vf18 iand vi12, vi12, vi05 | add.xyzw vf16, vf16, vf19 nop | mulax.xyzw ACC, vf04, vf11 ibgtz vi09, L111 | madday.xyzw ACC, vf05, vf11 iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 nop | addx.w vf21, vf21, vf17 L111: ibne vi05, vi12, L112 | maddw.xyzw vf11, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf09, vf09, Q mtir vi12, vf13.x | mul.xyzw vf15, vf15, Q mtir vi15, vf13.y | ftoi4.xyzw vf21, vf21 b L113 | mul.xyzw vf11, vf11, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 L112: lq.xyzw vf20, 0(vi12) | mul.xyzw vf15, vf15, Q lq.xyzw vf25, 0(vi15) | ftoi4.xyzw vf21, vf21 lq.xyzw vf23, 1(vi12) | mul.xyzw vf11, vf11, vf23 lq.xyzw vf26, 1(vi15) | add.xyzw vf09, vf09, vf22 lq.xyzw vf20, 2(vi12) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi15) | maddw.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi12) | mulaz.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi15) | maddw.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi12) | mulaz.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi15) | maddw.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi12) | mulaz.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi15) | maddw.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi12) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi15) | maddw.xyz vf29, vf29, vf24 lqi.xyzw vf23, vi02 | mulaz.xyzw ACC, vf23, vf24 mtir vi12, vf13.x | maddw.xyz vf30, vf30, vf24 mtir vi15, vf13.y | mulaz.xyzw ACC, vf20, vf24 b L98 | maddw.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L113: ibgez vi09, L114 | mulaz.xyzw ACC, vf29, vf10 sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 nop | ftoi4.xyzw vf21, vf08 L114: mfp.w vf20, P | maddz.xyz vf13, vf31, vf16 sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 sq.xyzw vf21, 2(vi13) | mulaw.xyzw ACC, vf25, vf10 ilw.y vi09, -6(vi01) | mulw.xyzw vf12, vf12, vf20 1024.0 | ftoi0.xyzw vf11, vf11 :i erleng.xyz P, vf13 | maxi.xy vf09, vf09, I ibne vi06, vi03, L115 | maddaw.xyzw ACC, vf26, vf13 mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 ibne vi07, vi03, L133 | nop nop | nop b L143 | nop nop | nop L115: 3072.0 | mulax.xyzw ACC, vf01, vf12 :i lqi.xyzw vf08, vi01 | minii.xy vf09, vf09, I sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 lqi.xyzw vf11, vi01 | add.xyzw vf10, vf10, vf28 lqi.xyzw vf14, vi01 | maxw.w vf09, vf09, vf02 mtir vi10, vf08.x | itof0.xyzw vf23, vf23 mtir vi13, vf08.y | maxx.xyzw vf12, vf12, vf00 nop | miniw.w vf10, vf10, vf01 div Q, vf01.w, vf10.w | add.zw vf08, vf08, vf17 move.xyzw vf21, vf09 | add.xyzw vf11, vf11, vf18 iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 nop | mulax.xyzw ACC, vf04, vf12 ibgtz vi09, L116 | madday.xyzw ACC, vf05, vf12 iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 nop | addx.w vf21, vf21, vf17 L116: ibne vi05, vi10, L117 | maddw.xyzw vf12, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf10, vf10, Q mtir vi10, vf11.x | mul.xyzw vf16, vf16, Q mtir vi13, vf11.y | ftoi4.xyzw vf21, vf21 b L118 | mul.xyzw vf12, vf12, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 L117: lq.xyzw vf20, 0(vi10) | mul.xyzw vf16, vf16, Q lq.xyzw vf25, 0(vi13) | ftoi4.xyzw vf21, vf21 lq.xyzw vf23, 1(vi10) | mul.xyzw vf12, vf12, vf23 lq.xyzw vf26, 1(vi13) | add.xyzw vf10, vf10, vf22 lq.xyzw vf20, 2(vi10) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi13) | maddw.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi10) | mulaz.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi13) | maddw.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi10) | mulaz.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi13) | maddw.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi10) | mulaz.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi13) | maddw.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi10) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi13) | maddw.xyz vf29, vf29, vf24 lqi.xyzw vf23, vi02 | mulaz.xyzw ACC, vf23, vf24 mtir vi10, vf11.x | maddw.xyz vf30, vf30, vf24 mtir vi13, vf11.y | mulaz.xyzw ACC, vf20, vf24 b L103 | maddw.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L118: ibgez vi09, L119 | mulaz.xyzw ACC, vf29, vf08 sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 nop | ftoi4.xyzw vf21, vf09 L119: mfp.w vf20, P | maddz.xyz vf11, vf31, vf14 sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 sq.xyzw vf21, 2(vi14) | mulaw.xyzw ACC, vf25, vf08 ilw.y vi09, -6(vi01) | mulw.xyzw vf13, vf13, vf20 1024.0 | ftoi0.xyzw vf12, vf12 :i erleng.xyz P, vf11 | maxi.xy vf10, vf10, I ibne vi06, vi03, L120 | maddaw.xyzw ACC, vf26, vf11 mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 ibne vi07, vi03, L138 | nop nop | nop b L153 | nop nop | nop L120: 3072.0 | mulax.xyzw ACC, vf01, vf13 :i lqi.xyzw vf09, vi01 | minii.xy vf10, vf10, I sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 lqi.xyzw vf15, vi01 | maxw.w vf10, vf10, vf02 mtir vi11, vf09.x | itof0.xyzw vf23, vf23 mtir vi14, vf09.y | maxx.xyzw vf13, vf13, vf00 nop | miniw.w vf08, vf08, vf01 div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 move.xyzw vf21, vf10 | add.xyzw vf12, vf12, vf18 iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 nop | mulax.xyzw ACC, vf04, vf13 ibgtz vi09, L121 | madday.xyzw ACC, vf05, vf13 iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 nop | addx.w vf21, vf21, vf17 L121: ibne vi05, vi11, L122 | maddw.xyzw vf13, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf08, vf08, Q mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q mtir vi14, vf12.y | ftoi4.xyzw vf21, vf21 b L123 | mul.xyzw vf13, vf13, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 L122: lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q lq.xyzw vf25, 0(vi14) | ftoi4.xyzw vf21, vf21 lq.xyzw vf23, 1(vi11) | mul.xyzw vf13, vf13, vf23 lq.xyzw vf26, 1(vi14) | add.xyzw vf08, vf08, vf22 lq.xyzw vf20, 2(vi11) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf27, 2(vi14) | maddw.xyzw vf25, vf25, vf24 lq.xyzw vf23, 3(vi11) | mulaz.xyzw ACC, vf23, vf24 lq.xyzw vf28, 3(vi14) | maddw.xyzw vf26, vf26, vf24 lq.xyzw vf20, 4(vi11) | mulaz.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi14) | maddw.xyzw vf27, vf27, vf24 lq.xyzw vf23, 5(vi11) | mulaz.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi14) | maddw.xyzw vf28, vf28, vf24 lq.xyzw vf20, 6(vi11) | mulaz.xyzw ACC, vf20, vf24 lq.xyzw vf31, 6(vi14) | maddw.xyz vf29, vf29, vf24 lqi.xyzw vf23, vi02 | mulaz.xyzw ACC, vf23, vf24 mtir vi11, vf12.x | maddw.xyz vf30, vf30, vf24 mtir vi14, vf12.y | mulaz.xyzw ACC, vf20, vf24 b L108 | maddw.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L123: ibgez vi09, L124 | mulaz.xyzw ACC, vf29, vf09 sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 nop | ftoi4.xyzw vf21, vf10 L124: mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 sq.xyzw vf21, 2(vi15) | mulaw.xyzw ACC, vf25, vf09 ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 1024.0 | ftoi0.xyzw vf13, vf13 :i erleng.xyz P, vf12 | maxi.xy vf08, vf08, I ibne vi06, vi03, L110 | maddaw.xyzw ACC, vf26, vf12 mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 ibne vi07, vi03, L133 | nop nop | nop b L163 | nop nop | nop L125: erleng.xyz P, vf12 | maxi.xy vf08, vf08, I 3072.0 | nop :i nop | minii.xy vf08, vf08, I nop | maddaw.xyzw ACC, vf26, vf12 mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 L126: lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 b L128 | madday.xyzw ACC, vf02, vf11 nop | maddz.xyzw vf11, vf03, vf11 L127: 3072.0 | mulax.xyzw ACC, vf01, vf11 :i lqi.xyzw vf10, vi01 | minii.xy vf08, vf08, I sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 L128: lqi.xyzw vf13, vi01 | add.xyzw vf09, vf09, vf28 lqi.xyzw vf16, vi01 | maxw.w vf08, vf08, vf02 mtir vi12, vf10.x | itof0.xyzw vf23, vf23 mtir vi15, vf10.y | maxx.xyzw vf11, vf11, vf00 nop | miniw.w vf09, vf09, vf01 div Q, vf01.w, vf09.w | add.zw vf10, vf10, vf17 move.xyzw vf21, vf08 | add.xyzw vf13, vf13, vf18 iand vi12, vi12, vi05 | add.xyzw vf16, vf16, vf19 ilw.w vi08, -1(vi02) | mulax.xyzw ACC, vf04, vf11 ibgtz vi09, L129 | madday.xyzw ACC, vf05, vf11 iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 nop | addx.w vf21, vf21, vf17 L129: ibne vi05, vi12, L130 | maddw.xyzw vf11, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf09, vf09, Q mtir vi12, vf13.x | mul.xyzw vf15, vf15, Q mtir vi15, vf13.y | ftoi4.xyzw vf21, vf21 b L131 | mul.xyzw vf11, vf11, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 L130: lq.xyzw vf20, 0(vi12) | mul.xyzw vf15, vf15, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf31, 0(vi15) | ftoi4.xyzw vf21, vf21 lq.xyzw vf25, 0(vi08) | mul.xyzw vf11, vf11, vf23 lq.xyzw vf23, 1(vi12) | add.xyzw vf09, vf09, vf22 lq.xyzw vf20, 1(vi15) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 2(vi12) | maddz.xyzw vf25, vf25, vf24 lq.xyzw vf23, 2(vi15) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 3(vi12) | maddz.xyzw vf26, vf26, vf24 lq.xyzw vf31, 3(vi15) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 lq.xyzw vf23, 4(vi12) | maddz.xyzw vf27, vf27, vf24 lq.xyzw vf20, 4(vi15) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 5(vi12) | maddz.xyzw vf28, vf28, vf24 lq.xyzw vf23, 5(vi15) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 6(vi12) | maddz.xyz vf29, vf29, vf24 lq.xyzw vf22, 6(vi15) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 mtir vi12, vf13.x | mulax.xyzw ACC, vf20, vf24 mtir vi15, vf13.y | madday.xyzw ACC, vf22, vf24 lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L131: ibgez vi09, L132 | mulaz.xyzw ACC, vf29, vf10 sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 nop | ftoi4.xyzw vf21, vf08 L132: mfp.w vf20, P | maddz.xyz vf13, vf31, vf16 sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 sq.xyzw vf21, 2(vi13) | mulaw.xyzw ACC, vf25, vf10 ilw.y vi09, -6(vi01) | mulw.xyzw vf12, vf12, vf20 1024.0 | ftoi0.xyzw vf11, vf11 :i erleng.xyz P, vf13 | maxi.xy vf09, vf09, I ibeq vi07, vi03, L143 | maddaw.xyzw ACC, vf26, vf13 mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 L133: 3072.0 | mulax.xyzw ACC, vf01, vf12 :i lqi.xyzw vf08, vi01 | minii.xy vf09, vf09, I sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 lqi.xyzw vf11, vi01 | add.xyzw vf10, vf10, vf28 lqi.xyzw vf14, vi01 | maxw.w vf09, vf09, vf02 mtir vi10, vf08.x | itof0.xyzw vf23, vf23 mtir vi13, vf08.y | maxx.xyzw vf12, vf12, vf00 nop | miniw.w vf10, vf10, vf01 div Q, vf01.w, vf10.w | add.zw vf08, vf08, vf17 move.xyzw vf21, vf09 | add.xyzw vf11, vf11, vf18 iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 ilw.w vi08, -1(vi02) | mulax.xyzw ACC, vf04, vf12 ibgtz vi09, L134 | madday.xyzw ACC, vf05, vf12 iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 nop | addx.w vf21, vf21, vf17 L134: ibne vi05, vi10, L135 | maddw.xyzw vf12, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf10, vf10, Q mtir vi10, vf11.x | mul.xyzw vf16, vf16, Q mtir vi13, vf11.y | ftoi4.xyzw vf21, vf21 b L136 | mul.xyzw vf12, vf12, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 L135: lq.xyzw vf20, 0(vi10) | mul.xyzw vf16, vf16, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf31, 0(vi13) | ftoi4.xyzw vf21, vf21 lq.xyzw vf25, 0(vi08) | mul.xyzw vf12, vf12, vf23 lq.xyzw vf23, 1(vi10) | add.xyzw vf10, vf10, vf22 lq.xyzw vf20, 1(vi13) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 2(vi10) | maddz.xyzw vf25, vf25, vf24 lq.xyzw vf23, 2(vi13) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 3(vi10) | maddz.xyzw vf26, vf26, vf24 lq.xyzw vf31, 3(vi13) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 lq.xyzw vf23, 4(vi10) | maddz.xyzw vf27, vf27, vf24 lq.xyzw vf20, 4(vi13) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 5(vi10) | maddz.xyzw vf28, vf28, vf24 lq.xyzw vf23, 5(vi13) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 6(vi10) | maddz.xyz vf29, vf29, vf24 lq.xyzw vf22, 6(vi13) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 mtir vi10, vf11.x | mulax.xyzw ACC, vf20, vf24 mtir vi13, vf11.y | madday.xyzw ACC, vf22, vf24 lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L136: ibgez vi09, L137 | mulaz.xyzw ACC, vf29, vf08 sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 nop | ftoi4.xyzw vf21, vf09 L137: mfp.w vf20, P | maddz.xyz vf11, vf31, vf14 sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 sq.xyzw vf21, 2(vi14) | mulaw.xyzw ACC, vf25, vf08 ilw.y vi09, -6(vi01) | mulw.xyzw vf13, vf13, vf20 1024.0 | ftoi0.xyzw vf12, vf12 :i erleng.xyz P, vf11 | maxi.xy vf10, vf10, I ibeq vi07, vi03, L153 | maddaw.xyzw ACC, vf26, vf11 mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 L138: 3072.0 | mulax.xyzw ACC, vf01, vf13 :i lqi.xyzw vf09, vi01 | minii.xy vf10, vf10, I sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 lqi.xyzw vf15, vi01 | maxw.w vf10, vf10, vf02 mtir vi11, vf09.x | itof0.xyzw vf23, vf23 mtir vi14, vf09.y | maxx.xyzw vf13, vf13, vf00 nop | miniw.w vf08, vf08, vf01 div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 move.xyzw vf21, vf10 | add.xyzw vf12, vf12, vf18 iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 ilw.w vi08, -1(vi02) | mulax.xyzw ACC, vf04, vf13 ibgtz vi09, L139 | madday.xyzw ACC, vf05, vf13 iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 nop | addx.w vf21, vf21, vf17 L139: ibne vi05, vi11, L140 | maddw.xyzw vf13, vf07, vf00 ilw.x vi09, -9(vi01) | mul.xyz vf08, vf08, Q mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q mtir vi14, vf12.y | ftoi4.xyzw vf21, vf21 b L141 | mul.xyzw vf13, vf13, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 L140: lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q nop | mulw.xyzw vf24, vf24, vf29 lq.xyzw vf31, 0(vi14) | ftoi4.xyzw vf21, vf21 lq.xyzw vf25, 0(vi08) | mul.xyzw vf13, vf13, vf23 lq.xyzw vf23, 1(vi11) | add.xyzw vf08, vf08, vf22 lq.xyzw vf20, 1(vi14) | mulax.xyzw ACC, vf20, vf24 lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 2(vi11) | maddz.xyzw vf25, vf25, vf24 lq.xyzw vf23, 2(vi14) | mulax.xyzw ACC, vf23, vf24 lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 3(vi11) | maddz.xyzw vf26, vf26, vf24 lq.xyzw vf31, 3(vi14) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 lq.xyzw vf23, 4(vi11) | maddz.xyzw vf27, vf27, vf24 lq.xyzw vf20, 4(vi14) | mulax.xyzw ACC, vf20, vf24 lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 lq.xyzw vf31, 5(vi11) | maddz.xyzw vf28, vf28, vf24 lq.xyzw vf23, 5(vi14) | mulax.xyzw ACC, vf23, vf24 lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 lq.xyzw vf20, 6(vi11) | maddz.xyz vf29, vf29, vf24 lq.xyzw vf22, 6(vi14) | mulax.xyzw ACC, vf31, vf24 lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 mtir vi11, vf12.x | mulax.xyzw ACC, vf20, vf24 mtir vi14, vf12.y | madday.xyzw ACC, vf22, vf24 lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 L141: ibgez vi09, L142 | mulaz.xyzw ACC, vf29, vf09 sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 nop | ftoi4.xyzw vf21, vf10 L142: mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 sq.xyzw vf21, 2(vi15) | mulaw.xyzw ACC, vf25, vf09 ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 1024.0 | ftoi0.xyzw vf13, vf13 :i erleng.xyz P, vf12 | maxi.xy vf08, vf08, I ibne vi07, vi03, L127 | maddaw.xyzw ACC, vf26, vf12 mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 b L163 | nop nop | nop L143: ;; exit cross 1 ilw.w vi08, 1(vi00) | nop ;; vi08 = mercprime flag xtop vi02 | mulax.xyzw ACC, vf01, vf12 ;; vi02 = out (0) | pipe sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 ;; pipe | pipe sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 ;; pipe | pipe iaddiu vi04, vi02, 0x8c | add.xyzw vf10, vf10, vf28 ;; vi04 = 140 (byte header) | pipe ilwr.x vi05, vi04 | maxw.w vf09, vf09, vf02 ;; vi05 = srcdest-off | pipe ilw.w vi06, 1(vi04) | itof0.xyzw vf23, vf23 ;; vi06 = samecopy-cnt | pipe ibne vi00, vi08, L151 | nop ;; goto L151 if merc prime (just a detour to set constants). ilw.x vi07, 2(vi04) | maxx.xyzw vf12, vf12, vf00 ;; vi07 = crosscopy-cnt | pipe L144: div Q, vf01.w, vf10.w | minix.xyzw vf25, vf00, vf00 ;; pipe | vf25 = 0 move.xyzw vf21, vf09 | minix.xyzw vf26, vf00, vf00 ;; pipe | vf26 = 0 iadd vi05, vi05, vi04 | nop ;; vi05 = srcdest table addr iaddiu vi04, vi02, 0x173 | mulax.xyzw ACC, vf04, vf12 ;; vi04 = "output zone" | pipe ibgtz vi09, L145 | madday.xyzw ACC, vf05, vf12 ;; pipe | pipe iadd vi06, vi06, vi05 | maddaz.xyzw ACC, vf06, vf12 ;; vi06 = cross copy table | pipe nop | addx.w vf21, vf21, vf17 ;; pipe | pipe L145: iadd vi07, vi07, vi06 | maddw.xyzw vf12, vf07, vf00 ;; vi07 = end cross copy table | pipe ilw.x vi09, -6(vi01) | mul.xyz vf10, vf10, Q ;; ?????? | pipe iaddiu vi08, vi00, 0x1ba | mul.xyzw vf16, vf16, Q ;; vi08 = 442 | pipe isub vi08, vi08, vi02 | ftoi4.xyzw vf21, vf21 ;; vi08 is the other buffer | pipe iaddiu vi08, vi08, 0x173 | mul.xyzw vf12, vf12, vf23 ;; vi08 is the other buffer | pipe lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 ;; pipe | pipe ibgez vi09, L146 | nop ;; pipe (but weird, not applicable for mat1, but still works) sq.xyzw vf21, 2(vi11) | nop ;; pipe nop | ftoi4.xyzw vf21, vf09 ;; pipe (slightly wrong for mat1, but might not matter?) L146: mfp.w vf20, P | nop ;; pipe sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 ;; pipe sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 ;; pipe sq.xyzw vf21, 2(vi14) | nop ;; pipe ilw.y vi09, -3(vi01) | mulw.xyzw vf13, vf13, vf20 ;; werid pipe | pipe mfir.x vf25, vi04 | ftoi0.xyzw vf12, vf12 ;; vf25.x = output zone | pipe mfir.y vf25, vi04 | nop ;; vf25.y = output zone mfir.x vf26, vi08 | nop ;; vf26.x = old output zone ilw.w vi02, 1(vi00) | nop ;; vi02 = mercprime flag mfir.y vf26, vi04 | mulax.xyzw ACC, vf01, vf13 ;; vf26.y = output zone | pipe sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 ;; pipe | pipe sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 ;; pipe | pipe nop | nop ;; ? why the nop ? ibne vi00, vi02, L152 | maxw.w vf10, vf10, vf02 ;; mercprime detour | pipe nop | itof0.xyzw vf23, vf23 ;; pipe L147: 8388608.0 | maxx.xyzw vf13, vf13, vf00 :i ;; vf13 = 0 256.0 | maxi.xy vf27, vf00, I :i ;; vf27.xy = 8388608.0 move.xyzw vf21, vf10 | maxi.w vf27, vf00, I ;; pipe | vf27.w = 256.0 nop | nop ;; ?? nop | mulax.xyzw ACC, vf04, vf13 ;; pipe ibgtz vi09, L148 | madday.xyzw ACC, vf05, vf13 ;; pipe | pipe nop | maddaz.xyzw ACC, vf06, vf13 ;; pipe nop | addx.w vf21, vf21, vf17 ;; pipe L148: nop | maddw.xyzw vf13, vf07, vf00 ;; pipe ilw.x vi09, -3(vi01) | itof0.xyzw vf25, vf25 ;; pipe | zone addrs to float nop | itof0.xyzw vf26, vf26 ;; zone addrs to float nop | ftoi4.xyzw vf21, vf21 ;; pipe nop | mul.xyzw vf13, vf13, vf23 ;; pipe ior vi02, vi05, vi00 | add.xyzw vf25, vf25, vf27 ;; vi02 = srcdst table | float trick ibgez vi09, L149 | add.xyzw vf26, vf26, vf27 ;; pipe | float trick sq.xyzw vf21, 2(vi12) | nop ;; pipe nop | ftoi4.xyzw vf21, vf10 ;; pipe L149: ibne vi06, vi05, L150 | nop sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 L150: sq.xyzw vf16, 0(vi15) | nop ;; pipe sq.xyzw vf21, 2(vi15) | nop ;; pipe lqi.xyzw vf27, vi05 | nop nop | ftoi0.xyzw vf13, vf13 ;; pipe nop | nop nop | nop nop | itof0.xyzw vf27, vf27 sq.xyzw vf13, 1(vi12) | nop ;; pipe b L173 | nop sq.xyzw vf13, 1(vi15) | nop ;; pipe L151: 3072.0 | miniw.w vf10, vf10, vf01 :i b L144 | minii.xy vf09, vf09, I nop | nop L152: 1024.0 | nop :i 3072.0 | maxi.xy vf10, vf10, I :i b L147 | minii.xy vf10, vf10, I isw.w vi00, 1(vi00) | nop L153: ;; exit cross 2 ilw.w vi08, 1(vi00) | nop xtop vi02 | mulax.xyzw ACC, vf01, vf13 sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 iaddiu vi04, vi02, 0x8c | add.xyzw vf08, vf08, vf28 ilwr.x vi05, vi04 | maxw.w vf10, vf10, vf02 ilw.w vi06, 1(vi04) | itof0.xyzw vf23, vf23 ibne vi00, vi08, L161 | nop ilw.x vi07, 2(vi04) | maxx.xyzw vf13, vf13, vf00 L154: div Q, vf01.w, vf08.w | minix.xyzw vf25, vf00, vf00 move.xyzw vf21, vf10 | minix.xyzw vf26, vf00, vf00 iadd vi05, vi05, vi04 | nop iaddiu vi04, vi02, 0x173 | mulax.xyzw ACC, vf04, vf13 ibgtz vi09, L155 | madday.xyzw ACC, vf05, vf13 iadd vi06, vi06, vi05 | maddaz.xyzw ACC, vf06, vf13 nop | addx.w vf21, vf21, vf17 L155: iadd vi07, vi07, vi06 | maddw.xyzw vf13, vf07, vf00 ilw.x vi09, -6(vi01) | mul.xyz vf08, vf08, Q iaddiu vi08, vi00, 0x1ba | mul.xyzw vf14, vf14, Q isub vi08, vi08, vi02 | ftoi4.xyzw vf21, vf21 iaddiu vi08, vi08, 0x173 | mul.xyzw vf13, vf13, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 ibgez vi09, L156 | nop sq.xyzw vf21, 2(vi12) | nop nop | ftoi4.xyzw vf21, vf10 L156: mfp.w vf20, P | nop sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 sq.xyzw vf21, 2(vi15) | nop ilw.y vi09, -3(vi01) | mulw.xyzw vf11, vf11, vf20 mfir.x vf25, vi04 | ftoi0.xyzw vf13, vf13 mfir.y vf25, vi04 | nop mfir.x vf26, vi08 | nop ilw.w vi02, 1(vi00) | nop mfir.y vf26, vi04 | mulax.xyzw ACC, vf01, vf11 sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 nop | nop ibne vi00, vi02, L162 | maxw.w vf08, vf08, vf02 nop | itof0.xyzw vf23, vf23 L157: 8388608.0 | maxx.xyzw vf11, vf11, vf00 :i 256.0 | maxi.xy vf27, vf00, I :i move.xyzw vf21, vf08 | maxi.w vf27, vf00, I nop | nop nop | mulax.xyzw ACC, vf04, vf11 ibgtz vi09, L158 | madday.xyzw ACC, vf05, vf11 nop | maddaz.xyzw ACC, vf06, vf11 nop | addx.w vf21, vf21, vf17 L158: nop | maddw.xyzw vf11, vf07, vf00 ilw.x vi09, -3(vi01) | itof0.xyzw vf25, vf25 nop | itof0.xyzw vf26, vf26 nop | ftoi4.xyzw vf21, vf21 nop | mul.xyzw vf11, vf11, vf23 ior vi02, vi05, vi00 | add.xyzw vf25, vf25, vf27 ibgez vi09, L159 | add.xyzw vf26, vf26, vf27 sq.xyzw vf21, 2(vi10) | nop nop | ftoi4.xyzw vf21, vf08 L159: ibne vi06, vi05, L160 | nop sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 L160: sq.xyzw vf14, 0(vi13) | nop sq.xyzw vf21, 2(vi13) | nop lqi.xyzw vf27, vi05 | nop nop | ftoi0.xyzw vf11, vf11 nop | nop nop | nop nop | itof0.xyzw vf27, vf27 sq.xyzw vf11, 1(vi10) | nop b L173 | nop sq.xyzw vf11, 1(vi13) | nop L161: 3072.0 | miniw.w vf08, vf08, vf01 :i b L154 | minii.xy vf10, vf10, I nop | nop L162: 1024.0 | nop :i 3072.0 | maxi.xy vf08, vf08, I :i b L157 | minii.xy vf08, vf08, I isw.w vi00, 1(vi00) | nop L163: ;; exit cross 3 ilw.w vi08, 1(vi00) | nop xtop vi02 | mulax.xyzw ACC, vf01, vf11 sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 iaddiu vi04, vi02, 0x8c | add.xyzw vf09, vf09, vf28 ilwr.x vi05, vi04 | maxw.w vf08, vf08, vf02 ilw.w vi06, 1(vi04) | itof0.xyzw vf23, vf23 ibne vi00, vi08, L171 | nop ilw.x vi07, 2(vi04) | maxx.xyzw vf11, vf11, vf00 L164: div Q, vf01.w, vf09.w | minix.xyzw vf25, vf00, vf00 move.xyzw vf21, vf08 | minix.xyzw vf26, vf00, vf00 iadd vi05, vi05, vi04 | nop iaddiu vi04, vi02, 0x173 | mulax.xyzw ACC, vf04, vf11 ibgtz vi09, L165 | madday.xyzw ACC, vf05, vf11 iadd vi06, vi06, vi05 | maddaz.xyzw ACC, vf06, vf11 nop | addx.w vf21, vf21, vf17 L165: iadd vi07, vi07, vi06 | maddw.xyzw vf11, vf07, vf00 ilw.x vi09, -6(vi01) | mul.xyz vf09, vf09, Q iaddiu vi08, vi00, 0x1ba | mul.xyzw vf15, vf15, Q isub vi08, vi08, vi02 | ftoi4.xyzw vf21, vf21 iaddiu vi08, vi08, 0x173 | mul.xyzw vf11, vf11, vf23 lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 ibgez vi09, L166 | nop sq.xyzw vf21, 2(vi10) | nop nop | ftoi4.xyzw vf21, vf08 L166: mfp.w vf20, P | nop sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 sq.xyzw vf21, 2(vi13) | nop ilw.y vi09, -3(vi01) | mulw.xyzw vf12, vf12, vf20 mfir.x vf25, vi04 | ftoi0.xyzw vf11, vf11 mfir.y vf25, vi04 | nop mfir.x vf26, vi08 | nop ilw.w vi02, 1(vi00) | nop mfir.y vf26, vi04 | mulax.xyzw ACC, vf01, vf12 sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 nop | nop ibne vi00, vi02, L172 | maxw.w vf09, vf09, vf02 nop | itof0.xyzw vf23, vf23 L167: 8388608.0 | maxx.xyzw vf12, vf12, vf00 :i 256.0 | maxi.xy vf27, vf00, I :i move.xyzw vf21, vf09 | maxi.w vf27, vf00, I nop | nop nop | mulax.xyzw ACC, vf04, vf12 ibgtz vi09, L168 | madday.xyzw ACC, vf05, vf12 nop | maddaz.xyzw ACC, vf06, vf12 nop | addx.w vf21, vf21, vf17 L168: nop | maddw.xyzw vf12, vf07, vf00 ilw.x vi09, -3(vi01) | itof0.xyzw vf25, vf25 nop | itof0.xyzw vf26, vf26 nop | ftoi4.xyzw vf21, vf21 nop | mul.xyzw vf12, vf12, vf23 ior vi02, vi05, vi00 | add.xyzw vf25, vf25, vf27 ibgez vi09, L169 | add.xyzw vf26, vf26, vf27 sq.xyzw vf21, 2(vi11) | nop nop | ftoi4.xyzw vf21, vf09 L169: ibne vi06, vi05, L170 | nop sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 L170: sq.xyzw vf15, 0(vi14) | nop sq.xyzw vf21, 2(vi14) | nop lqi.xyzw vf27, vi05 | nop nop | ftoi0.xyzw vf12, vf12 nop | nop nop | nop nop | itof0.xyzw vf27, vf27 sq.xyzw vf12, 1(vi11) | nop b L173 | nop sq.xyzw vf12, 1(vi14) | nop L171: 3072.0 | miniw.w vf09, vf09, vf01 :i b L164 | minii.xy vf08, vf08, I nop | nop L172: 1024.0 | nop :i 3072.0 | maxi.xy vf09, vf09, I :i b L167 | minii.xy vf09, vf09, I isw.w vi00, 1(vi00) | nop ;; end routine. L173: ibeq vi07, vi02, L179 | nop ilw.w vi15, 132(vi00) | nop ibne vi06, vi05, L174 | add.xyzw vf11, vf27, vf25 nop | nop ibne vi07, vi06, L174 | nop ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 nop | nop nop | nop mtir vi08, vf11.x | nop mtir vi10, vf11.y | nop nop | nop nop | nop lq.xyzw vf16, 2(vi08) | maxx.xyzw vf15, vf11, vf00 lq.xyzw vf13, 0(vi08) | nop b L178 | nop nop | nop L174: lqi.xyzw vf27, vi05 | nop nop | nop mtir vi08, vf11.x | nop mtir vi09, vf11.y | nop nop | itof0.xyzw vf27, vf27 nop | nop lq.xyzw vf12, 2(vi08) | maxx.xyzw vf15, vf11, vf00 lq.xyzw vf13, 0(vi08) | nop ibne vi06, vi05, L175 | add.xyzw vf11, vf27, vf25 nop | nop ibeq vi07, vi06, L177 | nop ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 L175: lqi.xyzw vf27, vi05 | itof15.w vf12, vf12 lq.xyzw vf14, 1(vi08) | nop mtir vi08, vf11.x | nop mtir vi10, vf11.y | nop sq.xyzw vf13, 0(vi09) | itof0.xyzw vf27, vf27 sq.xyzw vf14, 1(vi09) | add.w vf12, vf12, vf15 lq.xyzw vf16, 2(vi08) | maxx.xyzw vf15, vf11, vf00 lq.xyzw vf13, 0(vi08) | nop ibne vi06, vi05, L176 | add.xyzw vf11, vf27, vf25 sq.xyzw vf12, 2(vi09) | nop ibne vi07, vi06, L176 | nop ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 move.xyzw vf12, vf16 | nop b L177 | nop ior vi09, vi10, vi00 | nop L176: lqi.xyzw vf27, vi05 | itof15.w vf16, vf16 lq.xyzw vf14, 1(vi08) | nop mtir vi08, vf11.x | nop mtir vi09, vf11.y | nop sq.xyzw vf13, 0(vi10) | itof0.xyzw vf27, vf27 sq.xyzw vf14, 1(vi10) | add.w vf16, vf16, vf15 lq.xyzw vf12, 2(vi08) | maxx.xyzw vf15, vf11, vf00 lq.xyzw vf13, 0(vi08) | nop ibne vi06, vi05, L175 | add.xyzw vf11, vf27, vf25 sq.xyzw vf16, 2(vi10) | nop ibne vi07, vi06, L175 | nop ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 L177: nop | itof15.w vf12, vf12 lq.xyzw vf14, 1(vi08) | nop mtir vi08, vf11.x | nop mtir vi10, vf11.y | nop sq.xyzw vf13, 0(vi09) | nop sq.xyzw vf14, 1(vi09) | add.w vf12, vf12, vf15 lq.xyzw vf16, 2(vi08) | maxx.xyzw vf15, vf11, vf00 lq.xyzw vf13, 0(vi08) | nop nop | nop sq.xyzw vf12, 2(vi09) | nop L178: nop | itof15.w vf16, vf16 lq.xyzw vf14, 1(vi08) | nop nop | nop nop | nop sq.xyzw vf13, 0(vi10) | nop sq.xyzw vf14, 1(vi10) | add.w vf16, vf16, vf15 nop | nop nop | nop nop | nop sq.xyzw vf16, 2(vi10) | nop L179: ibne vi00, vi15, L180 | nop nop | nop xgkick vi04 | nop nop | nop :e nop | nop L180: lq.xyzw vf20, 132(vi00) | nop lq.xyzw vf21, 1(vi00) | nop iaddi vi01, vi00, 0x1 | nop isw.x vi01, -2(vi04) | nop iaddiu vi02, vi00, 0x47 | maxw.x vf20, vf00, vf20 isw.z vi02, -1(vi04) | nop sq.yzw vf21, -2(vi04) | nop isw.w vi00, 132(vi00) | nop sq.x vf20, -1(vi04) | nop iaddi vi04, vi04, -0x2 | nop xgkick vi04 | nop nop | nop :e nop | nop