summaryrefslogtreecommitdiff
path: root/reference/0ad-alpine-valley/0ad-40.asm
diff options
context:
space:
mode:
Diffstat (limited to 'reference/0ad-alpine-valley/0ad-40.asm')
-rw-r--r--reference/0ad-alpine-valley/0ad-40.asm71
1 files changed, 22 insertions, 49 deletions
diff --git a/reference/0ad-alpine-valley/0ad-40.asm b/reference/0ad-alpine-valley/0ad-40.asm
index c9ec6ed..df4bfc0 100644
--- a/reference/0ad-alpine-valley/0ad-40.asm
+++ b/reference/0ad-alpine-valley/0ad-40.asm
@@ -6,59 +6,32 @@
@out(r1.y) out1
@out(r1.z) out2
@out(r1.w) out3
-(sy)(ss)bary.f r0.z, 1, r0.x
-bary.f r0.w, 0, r0.x
-bary.f (ei)r0.x, 2, r0.x
+@const(c0.x) 0x3e800000, 0x40800000, 0x00000000, 0x00000000
+(sy)(ss)bary.f r0.w, 1, r0.x
+bary.f r0.z, 0, r0.x
+bary.f (ei)r1.x, 2, r0.x
nop
-add.f r0.y, c0.x, (neg)r0.z
-mov.f32f32 r0.w, r0.w
-cmps.f.lt r1.x, c0.z, r0.z
-mov.f32f32 r0.x, r0.x
-mul.f r0.y, r0.y, c0.y
-mov.f32f32 r1.y, r0.w
-mov.f32f32 r0.z, r0.z
-cov.u32f32 r0.w, r1.x
-mov.f32f32 r0.y, r0.y
-mov.f32f32 r1.w, r0.x
-mov.f32f32 r1.z, r0.z
+add.f r0.x, c0.x, (neg)r0.w
+cmps.f.lt r0.y, c0.z, r0.w
+(rpt1)nop
+mul.f r0.x, r0.x, c0.y
+sam.3d (f32)(xyzw)r2.x, r0.z, s#0, t#0
+cov.u32f32 r0.y, r0.y
+(rpt1)nop
+(ss)mov.f32f32 r0.z, r0.x
+(sy)mul.f r0.x, r2.x, r0.x
+cmps.f.ne r0.y, r0.y, c0.z
nop
-mov.f32f32 r0.x, r0.y
-mov.f32f32 r0.z, r0.y
-mov.f32f32 r1.x, r0.y
-mov.f32f32 r0.y, r0.y
-cmps.f.ne r0.w, r0.w, c0.z
-sam.3d (f32)(xyzw)r1.y, r1.y, s#0, t#0
-(sy)mov.f32f32 r2.y, r2.x
-mov.f32f32 r2.z, r1.w
-mov.f32f32 r2.w, r1.z
-mov.f32f32 r3.x, r1.y
-mul.f r0.x, r2.y, r0.x
-mul.f r0.z, r2.z, r0.z
-mul.f r1.x, r2.w, r1.x
-mul.f r0.y, r3.x, r0.y
-mov.f32f32 r0.x, r0.x
-mov.f32f32 r2.x, r2.x
-mov.f32f32 r0.z, r0.z
-mov.f32f32 r1.x, r1.x
-mov.f32f32 r0.y, r0.y
-mov.f32f32 r2.x, r2.x
-(ss)mov.f32f32 r1.w, r1.w
-mov.f32f32 r1.z, r1.z
-mov.f32f32 r1.y, r1.y
-sel.b32 r0.x, r0.x, r0.w, r2.x
-mov.f32f32 r2.x, r1.w
-mov.f32f32 r1.z, r1.z
-mov.f32f32 r1.y, r1.y
-mov.f32f32 r1.w, r0.x
-sel.b32 r0.x, r0.z, r0.w, r2.x
-sel.b32 r0.z, r1.x, r0.w, r1.z
-sel.b32 r0.y, r0.y, r0.w, r1.y
+mul.f r0.w, r2.w, r0.z
+mul.f r1.x, r2.z, r0.z
+mul.f r0.z, r2.y, r0.z
nop
-mov.f32f32 r1.z, r0.x
-mov.f32f32 r1.y, r0.z
-mov.f32f32 r1.x, r0.y
+sel.b32 r1.w, r0.w, r0.y, r2.w
+sel.b32 r1.z, r1.x, r0.y, r2.z
+sel.b32 r1.y, r0.z, r0.y, r2.y
+sel.b32 r1.x, r0.x, r0.y, r2.x
end
; FRAG: outputs: r1.x (1:0)
; FRAG: inputs: r0.x (5:9,cm=f,il=8,b=1)
-; FRAG: 52 instructions, 0 half, 4 full
+; FRAG: 26 instructions, 0 half, 3 full