diff options
Diffstat (limited to 'reference/simple-if-else.asm')
-rw-r--r-- | reference/simple-if-else.asm | 37 |
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 |