summaryrefslogtreecommitdiff
path: root/reference/simple-if-else.asm
diff options
context:
space:
mode:
Diffstat (limited to 'reference/simple-if-else.asm')
-rw-r--r--reference/simple-if-else.asm37
1 files changed, 13 insertions, 24 deletions
diff --git a/reference/simple-if-else.asm b/reference/simple-if-else.asm
index 7153aca..abdc8da 100644
--- a/reference/simple-if-else.asm
+++ b/reference/simple-if-else.asm
@@ -15,39 +15,28 @@
@out(r0.y) out1
@out(r0.z) out2
@out(r0.w) out3
+@const(c10.x) 0x00000000, 0x00000000, 0x00000000, 0x00000000
(sy)(ss)mul.f r2.w, c4.z, r0.z
mul.f r0.z, c4.z, r0.z
mul.f r0.y, c4.y, r0.y
mul.f r0.x, c4.x, r0.x
-mov.f32f32 r3.x, r2.w
-mov.f32f32 r3.y, r0.z
-mov.f32f32 r3.z, r0.y
-mov.f32f32 r3.w, r0.x
-add.f r1.z, r3.x, r1.z
-mov.f32f32 r2.w, r2.w
-add.f r1.y, r3.y, r1.y
-add.f r1.x, r3.z, r1.x
-add.f r3.x, r3.w, r0.w
-add.f r0.w, r2.w, (neg)r2.z
-cmps.f.ne r2.z, r0.x, c10.x
-mov.f32f32 r0.z, r0.z
-mov.f32f32 r0.y, r0.y
-mov.f32f32 r0.x, r0.x
-sel.b32 r0.w, r1.z, r2.z, r0.w
+add.f r1.z, r2.w, r1.z
+add.f r1.y, r0.z, r1.y
+add.f r1.x, r0.y, r1.x
+cmps.f.ne r3.x, r0.x, c10.x
+add.f r2.z, r2.w, (neg)r2.z
add.f r0.z, r0.z, (neg)r2.y
add.f r0.y, r0.y, (neg)r2.x
+add.f r2.x, r0.x, r0.w
+sel.b32 r0.w, r1.z, r3.x, r2.z
+sel.b32 r0.z, r1.y, r3.x, r0.z
+sel.b32 r0.y, r1.x, r3.x, r0.y
add.f r0.x, r0.x, (neg)r1.w
-mov.f32f32 r0.w, r0.w
-sel.b32 r0.z, r1.y, r2.z, r0.z
-sel.b32 r0.y, r1.x, r2.z, r0.y
-sel.b32 r0.x, r3.x, r2.z, r0.x
-nop
-mov.f32f32 r0.z, r0.z
-mov.f32f32 r0.y, r0.y
-mov.f32f32 r0.x, r0.x
+(rpt2)nop
+sel.b32 r0.x, r2.x, r3.x, r0.x
end
nop
; VERT: outputs: r0.x (0:0)
; VERT: inputs: r0.x (0:0,cm=7,il=8,b=0) r0.w (0:0,cm=f,il=12,b=0) r1.w (0:0,cm=f,il=16,b=0)
-; VERT: 31 instructions, 0 half, 4 full
+; VERT: 21 instructions, 0 half, 4 full