summaryrefslogtreecommitdiff
path: root/reference/ffox-otmc/ffox-otmc-39.asm
blob: 8450922a5cd5baa876a8b8ea52fff3fa4d7bb125 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
; options:
; FRAG: new compiler
@in(r0.x)	in0
@in(r0.y)	in1
@out(r1.x)	out0
@out(r1.y)	out1
@out(r1.z)	out2
@out(r1.w)	out3
@const(c6.x)	0x00000000, 0x00000000, 0x00000000, 0x00000000
@const(c7.x)	0x00000000, 0x3f800000, 0x43000000, 0x00000000
(sy)(ss)bary.f r0.z, 2, r0.x
bary.f r0.w, 5, r0.x
bary.f r2.x, 8, r0.x
bary.f r1.x, 0, r0.x
mov.f32f32 r2.y, r0.z
mul.f r1.y, r0.w, r0.w
bary.f r2.z, 6, r0.x
mul.f r1.z, r2.x, r2.x
mul.f r0.z, r0.z, r2.y
bary.f r1.w, 3, r0.x
mad.f32 r2.w, r2.z, r2.z, r1.y
bary.f r3.x, 7, r0.x
bary.f r3.y, 9, r0.x
mov.f32f32 r3.z, r1.w
bary.f r1.y, 1, r0.x
bary.f r3.w, 4, r0.x
mov.f32f32 r4.x, c6.x
mad.f32 r0.z, r1.w, r3.z, r0.z
mad.f32 r2.w, r3.x, r3.x, r2.w
mov.f32f32 r4.y, r3.w
mad.f32 r4.z, r3.y, r3.y, r1.z
bary.f (ei)r0.x, 10, r0.x
sam (f32)(xyzw)r1.x, r1.x, s#0, t#0
nop
mad.f32 r0.y, r4.y, r4.y, r0.z
(rpt5)nop
rsq r0.y, r0.y
(ss)mov.f32f32 r0.z, r0.y
(ss)mul.f r0.y, r3.w, r0.y
rsq r2.w, r2.w
(ss)mov.f32f32 r3.w, r2.w
mad.f32 r4.y, r0.x, r0.x, r4.z
mul.f r2.y, r2.y, r0.z
mul.f r0.z, r3.z, r0.z
mul.f r0.w, r0.w, r3.w
mul.f r2.z, r2.z, r3.w
mov.f32f32 r3.z, r0.y
(ss)mul.f r2.w, r3.x, r2.w
rsq r3.x, r4.y
(ss)mov.f32f32 r3.w, r3.x
(ss)mov.f32f32 r4.y, r2.y
mov.f32f32 r4.z, r0.w
mov.f32f32 r4.w, r0.z
mad.f32 r2.x, r2.x, r3.w, r2.y
mad.f32 r0.z, r3.y, r3.w, r0.z
(rpt1)nop
mov.f32f32 r2.y, r2.x
mul.f r3.y, r4.z, r4.y
mov.f32f32 r3.w, r2.z
mov.f32f32 r4.y, r0.z
mul.f r2.x, r2.x, r2.y
mad.f32 r0.x, r0.x, r3.x, r0.y
nop
mad.f32 r0.y, r0.z, r4.y, r2.x
mad.f32 r0.z, r3.w, r4.w, r3.y
mov.f32f32 r2.x, r0.x
mov.f32f32 r3.x, r2.w
(rpt1)nop
mad.f32 r0.y, r2.x, r2.x, r0.y
mad.f32 r0.z, r3.x, r3.z, r0.z
(rpt4)nop
rsq r0.y, r0.y
(ss)mov.f32f32 r2.x, r0.y
mov.f32f32 r3.x, r0.z
cmps.f.lt r0.z, c6.x, r0.z
mul.f r0.x, r0.x, r0.y
(ss)mul.f r0.y, r2.y, r2.x
max.f r2.y, r3.x, c6.x
mul.f r2.x, r4.y, r2.x
cov.u32f32 r0.z, r0.z
mul.f r0.y, r0.w, r0.y
(sy)mul.f r0.w, r1.z, r2.y
mad.f32 r0.y, r2.z, r2.x, r0.y
mad.f32 r0.w, c1.z, r1.z, r0.w
mad.f32 r0.x, r2.w, r0.x, r0.y
mul.f r0.y, r1.y, r2.y
mul.f r1.z, r1.x, r2.y
nop
max.f r0.x, c6.x, r0.x
mad.f32 r0.y, c1.y, r1.y, r0.y
mad.f32 r1.x, c1.x, r1.x, r1.z
cmps.f.ne r0.z, r0.z, c6.x
(rpt2)nop
log2 r0.x, r0.x
(ss)mul.f r0.x, c4.x, r0.x
(rpt5)nop
exp2 r0.x, r0.x
(ss)sel.b32 r0.x, r0.x, r0.z, r4.x
(rpt2)nop
mul.f r0.z, c3.z, r0.x
mul.f r1.y, c3.y, r0.x
mul.f r0.x, c3.x, r0.x
nop
mad.f32 r0.z, c5.x, r0.z, r0.w
mad.f32 r0.y, c5.x, r1.y, r0.y
mad.f32 r0.x, c5.x, r0.x, r1.x
nop
mul.f r1.z, c0.z, r0.z
mul.f r1.y, c0.y, r0.y
mul.f r1.x, c0.x, r0.x
end
nop
nop
nop
; FRAG: outputs: r1.x (1:0)
; FRAG: inputs: r1.x (5:9,cm=f,il=8,b=1) r2.y (5:10,cm=f,il=12,b=1) r2.x (5:11,cm=f,il=16,b=1)
; FRAG: 121 instructions, 0 half, 5 full