summaryrefslogtreecommitdiff
path: root/reference
diff options
context:
space:
mode:
authorRob Clark <robdclark@gmail.com>2015-01-23 13:30:58 -0500
committerRob Clark <robdclark@gmail.com>2015-01-23 13:30:58 -0500
commit053af66b4937816d90491e4019a497f66286ea81 (patch)
tree3197f2ef0335bdca1f1158165f2d54088b4ea78f /reference
parent7ce893b6307558b519aab79bba4fa6662fabb206 (diff)
add relative dest test
Diffstat (limited to 'reference')
-rw-r--r--reference/relative-temp/fs-temp-mat3-col-row-wr.asm207
1 files changed, 207 insertions, 0 deletions
diff --git a/reference/relative-temp/fs-temp-mat3-col-row-wr.asm b/reference/relative-temp/fs-temp-mat3-col-row-wr.asm
new file mode 100644
index 0000000..9486eec
--- /dev/null
+++ b/reference/relative-temp/fs-temp-mat3-col-row-wr.asm
@@ -0,0 +1,207 @@
+; options:
+ir3/ir3_cmdline.c:213:reset_variant: error: new compiler failed, trying without copy propagation!
+ir3/ir3_cmdline.c:213:reset_variant: error: new compiler failed, trying fallback!
+
+; FRAG: old compiler
+@out(r1.x) out0
+@out(r1.y) out1
+@out(r1.z) out2
+@out(r1.w) out3
+(sy)(ss)mov.f32f32 r2.x, c0.x
+mov.f32f32 r2.y, c0.y
+mov.f32f32 r2.z, c0.z
+mov.f32f32 r2.w, c0.z
+mov.f32f32 r3.x, c1.x
+mov.f32f32 r3.y, c1.y
+mov.f32f32 r3.z, c1.z
+mov.f32f32 r3.w, c1.z
+mov.f32f32 r4.x, c2.x
+mov.f32f32 r4.y, c2.y
+mov.f32f32 r4.z, c2.z
+mov.f32f32 r4.w, c2.z
+cov.f32s16 hr2.x, c6.x
+nop
+nop
+nop
+shl.b hr2.x, hr2.x, 2
+nop
+nop
+nop
+mova a0.x, hr2.x
+nop
+nop
+nop
+nop
+nop
+nop
+mov.f32f32 r5.x, c<a0.x>
+mov.f32f32 r5.y, c<a0.x + 1>
+(ul)mov.f32f32 r5.z, c<a0.x + 2>
+nop
+mov.f32f32 r9.x, c8.x
+mov.f32f32 r9.y, c8.x
+mov.f32f32 r9.z, c8.x
+mov.f32f32 r9.w, c8.x
+cmps.f.eq r8.x, r9.x, c5.x
+cmps.f.eq r8.y, r9.y, c5.x
+cmps.f.eq r8.z, r9.z, c5.x
+cmps.f.eq r8.w, r9.w, c5.x
+cov.u32f32 r6.x, r8.x
+nop
+nop
+nop
+cmps.f.eq p0.x, r6.x, c8.x
+br p0.x, #5
+mov.f32f32 r5.x, c7.x
+nop
+nop
+nop
+(jp)nop
+mov.f32f32 r9.x, c8.y
+mov.f32f32 r9.y, c8.y
+mov.f32f32 r9.z, c8.y
+mov.f32f32 r9.w, c8.y
+cmps.f.eq r8.x, r9.x, c5.x
+cmps.f.eq r8.y, r9.y, c5.x
+cmps.f.eq r8.z, r9.z, c5.x
+cmps.f.eq r8.w, r9.w, c5.x
+cov.u32f32 r6.x, r8.x
+nop
+nop
+nop
+cmps.f.eq p0.x, r6.x, c8.x
+br p0.x, #5
+nop
+mov.f32f32 r5.y, c7.x
+nop
+nop
+(jp)nop
+mov.f32f32 r9.x, c8.z
+mov.f32f32 r9.y, c8.z
+mov.f32f32 r9.z, c8.z
+mov.f32f32 r9.w, c8.z
+cmps.f.eq r8.x, r9.x, c5.x
+cmps.f.eq r8.y, r9.y, c5.x
+cmps.f.eq r8.z, r9.z, c5.x
+cmps.f.eq r8.w, r9.w, c5.x
+cov.u32f32 r6.x, r8.x
+nop
+nop
+nop
+cmps.f.eq p0.x, r6.x, c8.x
+br p0.x, #5
+nop
+nop
+mov.f32f32 r5.z, c7.x
+nop
+(jp)nop
+cov.f32s16 hr2.x, c6.x
+nop
+nop
+nop
+shl.b hr2.x, hr2.x, 2
+nop
+nop
+nop
+mova a0.x, hr2.x
+nop
+nop
+nop
+nop
+nop
+nop
+mov.f32f32 r<a0.x + 8>, r5.x
+mov.f32f32 r<a0.x + 9>, r5.y
+(ul)mov.f32f32 r<a0.x + 10>, r5.z
+nop
+mul.f r5.x, r2.x, c3.x
+mul.f r5.y, r2.y, c3.x
+mul.f r5.z, r2.z, c3.x
+nop
+mad.f32 r8.x, c3.y, r3.x, r5.x
+mad.f32 r8.y, c3.y, r3.y, r5.y
+mad.f32 r8.z, c3.y, r3.z, r5.z
+nop
+mov.f32f32 r5.x, r8.x
+mov.f32f32 r5.y, r8.y
+mov.f32f32 r5.z, r8.z
+nop
+mad.f32 r8.x, c3.z, r4.x, r5.x
+mad.f32 r8.y, c3.z, r4.y, r5.y
+mad.f32 r8.z, c3.z, r4.z, r5.z
+nop
+mov.f32f32 r5.x, r8.x
+mov.f32f32 r5.y, r8.y
+mov.f32f32 r5.z, r8.z
+nop
+add.f r8.x, r5.x, (neg)c4.x
+add.f r8.y, r5.y, (neg)c4.y
+add.f r8.z, r5.z, (neg)c4.z
+nop
+mov.f32f32 r5.x, r8.x
+mov.f32f32 r5.y, r8.y
+mov.f32f32 r5.z, r8.z
+nop
+mul.f r7.x, r5.x, r5.x
+nop
+nop
+nop
+mad.f32 r8.x, r5.y, r5.y, r7.x
+nop
+nop
+nop
+mov.f32f32 r7.x, r8.x
+nop
+nop
+nop
+mad.f32 r8.x, r5.z, r5.z, r7.x
+nop
+nop
+nop
+mov.f32f32 r5.x, r8.x
+nop
+nop
+nop
+cmps.f.ge r9.x, r5.x, c8.w
+cmps.f.ge r9.y, r5.x, c8.w
+cmps.f.ge r9.z, r5.x, c8.w
+cmps.f.ge r9.w, r5.x, c8.w
+add.s r9.x, r9.x, -1
+add.s r9.y, r9.y, -1
+add.s r9.z, r9.z, -1
+add.s r9.w, r9.w, -1
+sel.f32 r8.x, c8.x, r9.x, c8.y
+nop
+nop
+nop
+mov.f32f32 r5.x, r8.x
+nop
+nop
+nop
+cmps.f.eq p0.x, r5.x, c8.x
+br p0.x, #6
+mov.f32f32 r5.x, c8.x
+mov.f32f32 r5.y, c8.y
+mov.f32f32 r5.z, c8.x
+mov.f32f32 r5.w, c8.y
+jump #6
+(jp)nop
+mov.f32f32 r5.x, c8.y
+mov.f32f32 r5.y, c8.x
+mov.f32f32 r5.z, c8.x
+mov.f32f32 r5.w, c8.y
+(jp)nop
+mov.f32f32 r1.x, r5.x
+mov.f32f32 r1.y, r5.y
+mov.f32f32 r1.z, r5.z
+mov.f32f32 r1.w, r5.w
+end
+nop
+nop
+nop
+; FRAG: outputs: r1.x (1:0)
+; FRAG: inputs:
+; FRAG: 189 instructions, 3 half, 10 full
+; pos (bary): r0.x
+; color: r1.x
+