blob: da98689b7a86b8bece46567444aed0c198741af3 [file] [log] [blame]
Mike Klein267f5072019-06-03 16:27:46 -05001A8 over A8
2r0 = load8 arg(0)
3r1 = splat 3B808081 (0.0039215689)
4r0 = to_f32 r0
5r0 = mul_f32 r1 r0
6r2 = load8 arg(1)
7r2 = to_f32 r2
8r2 = mul_f32 r1 r2
9r1 = splat 3F800000 (1)
10r1 = sub_f32 r1 r0
11r1 = mad_f32 r2 r1 r0
12r2 = splat 437F0000 (255)
13r0 = splat 3F000000 (0.5)
14r0 = mad_f32 r1 r2 r0
15r0 = to_i32 r0
16store8 arg(1) r0
17
18A8 over G8
Mike Klein12818512019-06-03 16:32:49 -050019r0 = load8 arg(0)
20r1 = splat 3B808081 (0.0039215689)
21r0 = to_f32 r0
22r0 = mul_f32 r1 r0
23r2 = load8 arg(1)
24r2 = to_f32 r2
25r2 = mul_f32 r1 r2
26r1 = splat 3F800000 (1)
27r1 = sub_f32 r1 r0
Mike Klein267f5072019-06-03 16:27:46 -050028r1 = mul_f32 r2 r1
Mike Klein12818512019-06-03 16:32:49 -050029r2 = splat 3E59B3D0 (0.21259999)
Mike Klein267f5072019-06-03 16:27:46 -050030r0 = splat 3F371759 (0.71520001)
Mike Klein12818512019-06-03 16:32:49 -050031r3 = splat 3D93DD98 (0.0722)
32r3 = mul_f32 r1 r3
33r3 = mad_f32 r1 r0 r3
34r3 = mad_f32 r1 r2 r3
35r2 = splat 437F0000 (255)
36r1 = splat 3F000000 (0.5)
37r1 = mad_f32 r3 r2 r1
38r1 = to_i32 r1
39store8 arg(1) r1
Mike Klein267f5072019-06-03 16:27:46 -050040
41A8 over RGBA_8888
Mike Klein12818512019-06-03 16:32:49 -050042r0 = load8 arg(0)
43r1 = splat 3B808081 (0.0039215689)
44r0 = to_f32 r0
45r0 = mul_f32 r1 r0
46r2 = load32 arg(1)
47r3 = splat FF (3.5733111e-43)
48r4 = bit_and r2 r3
49r4 = to_f32 r4
50r4 = mul_f32 r1 r4
51r5 = shr r2 8 (1.1210388e-44)
52r5 = bit_and r5 r3
Mike Klein267f5072019-06-03 16:27:46 -050053r5 = to_f32 r5
Mike Klein12818512019-06-03 16:32:49 -050054r5 = mul_f32 r1 r5
55r6 = shr r2 10 (2.2420775e-44)
56r6 = bit_and r6 r3
Mike Klein267f5072019-06-03 16:27:46 -050057r6 = to_f32 r6
Mike Klein12818512019-06-03 16:32:49 -050058r6 = mul_f32 r1 r6
59r2 = shr r2 18 (3.3631163e-44)
60r2 = to_f32 r2
61r2 = mul_f32 r1 r2
62r1 = splat 3F800000 (1)
63r1 = sub_f32 r1 r0
64r4 = mul_f32 r4 r1
65r5 = mul_f32 r5 r1
66r6 = mul_f32 r6 r1
67r1 = mad_f32 r2 r1 r0
68r2 = splat 437F0000 (255)
69r0 = splat 3F000000 (0.5)
70r4 = mad_f32 r4 r2 r0
71r4 = to_i32 r4
Mike Klein267f5072019-06-03 16:27:46 -050072r5 = mad_f32 r5 r2 r0
Mike Klein267f5072019-06-03 16:27:46 -050073r5 = to_i32 r5
Mike Klein12818512019-06-03 16:32:49 -050074r5 = shl r5 8 (1.1210388e-44)
75r6 = mad_f32 r6 r2 r0
Mike Klein267f5072019-06-03 16:27:46 -050076r6 = to_i32 r6
Mike Klein12818512019-06-03 16:32:49 -050077r6 = shl r6 10 (2.2420775e-44)
78r0 = mad_f32 r1 r2 r0
79r0 = to_i32 r0
80r0 = shl r0 18 (3.3631163e-44)
81r5 = bit_or r4 r5
82r5 = bit_or r5 r6
83r5 = bit_or r5 r0
84store32 arg(1) r5
Mike Klein267f5072019-06-03 16:27:46 -050085
86G8 over A8
87r0 = splat 3B808081 (0.0039215689)
88r1 = splat 3F800000 (1)
89r2 = load8 arg(1)
90r2 = to_f32 r2
91r2 = mul_f32 r0 r2
92r0 = sub_f32 r1 r1
93r0 = mad_f32 r2 r0 r1
94r2 = splat 437F0000 (255)
95r1 = splat 3F000000 (0.5)
96r1 = mad_f32 r0 r2 r1
97r1 = to_i32 r1
98store8 arg(1) r1
99
100G8 over G8
101r0 = load8 arg(0)
102r1 = splat 3B808081 (0.0039215689)
103r0 = to_f32 r0
104r0 = mul_f32 r1 r0
105r2 = splat 3F800000 (1)
106r3 = load8 arg(1)
107r3 = to_f32 r3
108r3 = mul_f32 r1 r3
109r2 = sub_f32 r2 r2
110r2 = mad_f32 r3 r2 r0
111r3 = splat 3E59B3D0 (0.21259999)
112r0 = splat 3F371759 (0.71520001)
113r1 = splat 3D93DD98 (0.0722)
114r1 = mul_f32 r2 r1
115r1 = mad_f32 r2 r0 r1
116r1 = mad_f32 r2 r3 r1
117r3 = splat 437F0000 (255)
118r2 = splat 3F000000 (0.5)
119r2 = mad_f32 r1 r3 r2
120r2 = to_i32 r2
121store8 arg(1) r2
122
123G8 over RGBA_8888
124r0 = load8 arg(0)
125r1 = splat 3B808081 (0.0039215689)
126r0 = to_f32 r0
127r0 = mul_f32 r1 r0
128r2 = splat 3F800000 (1)
129r3 = load32 arg(1)
130r4 = splat FF (3.5733111e-43)
131r5 = bit_and r3 r4
132r5 = to_f32 r5
133r5 = mul_f32 r1 r5
134r6 = shr r3 8 (1.1210388e-44)
135r6 = bit_and r6 r4
136r6 = to_f32 r6
137r6 = mul_f32 r1 r6
138r7 = shr r3 10 (2.2420775e-44)
139r7 = bit_and r7 r4
140r7 = to_f32 r7
141r7 = mul_f32 r1 r7
142r3 = shr r3 18 (3.3631163e-44)
143r3 = to_f32 r3
144r3 = mul_f32 r1 r3
145r1 = sub_f32 r2 r2
146r5 = mad_f32 r5 r1 r0
147r6 = mad_f32 r6 r1 r0
148r7 = mad_f32 r7 r1 r0
149r1 = mad_f32 r3 r1 r2
150r3 = splat 437F0000 (255)
151r2 = splat 3F000000 (0.5)
152r5 = mad_f32 r5 r3 r2
153r5 = to_i32 r5
154r6 = mad_f32 r6 r3 r2
155r6 = to_i32 r6
156r6 = shl r6 8 (1.1210388e-44)
157r7 = mad_f32 r7 r3 r2
158r7 = to_i32 r7
159r7 = shl r7 10 (2.2420775e-44)
160r2 = mad_f32 r1 r3 r2
161r2 = to_i32 r2
162r2 = shl r2 18 (3.3631163e-44)
163r6 = bit_or r5 r6
164r6 = bit_or r6 r7
165r6 = bit_or r6 r2
166store32 arg(1) r6
167
168RGBA_8888 over A8
169r0 = load32 arg(0)
170r1 = splat 3B808081 (0.0039215689)
171r0 = shr r0 18 (3.3631163e-44)
172r0 = to_f32 r0
173r0 = mul_f32 r1 r0
174r2 = load8 arg(1)
175r2 = to_f32 r2
176r2 = mul_f32 r1 r2
177r1 = splat 3F800000 (1)
178r1 = sub_f32 r1 r0
179r1 = mad_f32 r2 r1 r0
180r2 = splat 437F0000 (255)
181r0 = splat 3F000000 (0.5)
182r0 = mad_f32 r1 r2 r0
183r0 = to_i32 r0
184store8 arg(1) r0
185
186RGBA_8888 over G8
187r0 = load32 arg(0)
188r1 = splat FF (3.5733111e-43)
189r2 = bit_and r0 r1
190r3 = splat 3B808081 (0.0039215689)
191r2 = to_f32 r2
192r2 = mul_f32 r3 r2
193r4 = shr r0 8 (1.1210388e-44)
194r4 = bit_and r4 r1
195r4 = to_f32 r4
196r4 = mul_f32 r3 r4
197r5 = shr r0 10 (2.2420775e-44)
198r5 = bit_and r5 r1
199r5 = to_f32 r5
200r5 = mul_f32 r3 r5
201r0 = shr r0 18 (3.3631163e-44)
202r0 = to_f32 r0
203r0 = mul_f32 r3 r0
204r1 = load8 arg(1)
205r1 = to_f32 r1
206r1 = mul_f32 r3 r1
207r3 = splat 3F800000 (1)
208r3 = sub_f32 r3 r0
209r2 = mad_f32 r1 r3 r2
210r4 = mad_f32 r1 r3 r4
211r3 = mad_f32 r1 r3 r5
212r1 = splat 3E59B3D0 (0.21259999)
213r5 = splat 3F371759 (0.71520001)
214r0 = splat 3D93DD98 (0.0722)
215r0 = mul_f32 r3 r0
216r0 = mad_f32 r4 r5 r0
217r0 = mad_f32 r2 r1 r0
218r1 = splat 437F0000 (255)
219r2 = splat 3F000000 (0.5)
220r2 = mad_f32 r0 r1 r2
221r2 = to_i32 r2
222store8 arg(1) r2
223
224RGBA_8888 over RGBA_8888
225r0 = load32 arg(0)
226r1 = splat FF (3.5733111e-43)
227r2 = bit_and r0 r1
228r3 = splat 3B808081 (0.0039215689)
229r2 = to_f32 r2
230r2 = mul_f32 r3 r2
231r4 = shr r0 8 (1.1210388e-44)
232r4 = bit_and r4 r1
233r4 = to_f32 r4
234r4 = mul_f32 r3 r4
235r5 = shr r0 10 (2.2420775e-44)
236r5 = bit_and r5 r1
237r5 = to_f32 r5
238r5 = mul_f32 r3 r5
239r0 = shr r0 18 (3.3631163e-44)
240r0 = to_f32 r0
241r0 = mul_f32 r3 r0
242r6 = load32 arg(1)
243r7 = bit_and r6 r1
244r7 = to_f32 r7
245r7 = mul_f32 r3 r7
246r8 = shr r6 8 (1.1210388e-44)
247r8 = bit_and r8 r1
248r8 = to_f32 r8
249r8 = mul_f32 r3 r8
250r9 = shr r6 10 (2.2420775e-44)
251r9 = bit_and r9 r1
252r9 = to_f32 r9
253r9 = mul_f32 r3 r9
254r6 = shr r6 18 (3.3631163e-44)
255r6 = to_f32 r6
256r6 = mul_f32 r3 r6
257r3 = splat 3F800000 (1)
258r3 = sub_f32 r3 r0
259r7 = mad_f32 r7 r3 r2
260r8 = mad_f32 r8 r3 r4
261r9 = mad_f32 r9 r3 r5
262r3 = mad_f32 r6 r3 r0
263r6 = splat 437F0000 (255)
264r0 = splat 3F000000 (0.5)
265r7 = mad_f32 r7 r6 r0
266r7 = to_i32 r7
267r8 = mad_f32 r8 r6 r0
268r8 = to_i32 r8
269r8 = shl r8 8 (1.1210388e-44)
270r9 = mad_f32 r9 r6 r0
271r9 = to_i32 r9
272r9 = shl r9 10 (2.2420775e-44)
273r0 = mad_f32 r3 r6 r0
274r0 = to_i32 r0
275r0 = shl r0 18 (3.3631163e-44)
276r8 = bit_or r7 r8
277r8 = bit_or r8 r9
278r8 = bit_or r8 r0
279store32 arg(1) r8
280
Mike Klein7b7077c2019-06-03 17:10:59 -0500281I32 8888 over 8888
282r0 = load32 arg(0)
283r1 = splat FF (3.5733111e-43)
284r2 = bit_and r0 r1
285r3 = shr r0 8 (1.1210388e-44)
286r3 = bit_and r3 r1
287r4 = shr r0 10 (2.2420775e-44)
288r4 = bit_and r4 r1
289r0 = shr r0 18 (3.3631163e-44)
290r5 = load32 arg(1)
291r6 = bit_and r5 r1
292r7 = shr r5 8 (1.1210388e-44)
293r7 = bit_and r7 r1
294r8 = shr r5 10 (2.2420775e-44)
295r8 = bit_and r8 r1
296r5 = shr r5 18 (3.3631163e-44)
297r9 = sub_i32 r1 r0
298r6 = mul_i32 r6 r9
299r6 = add_i32 r6 r1
300r6 = shr r6 8 (1.1210388e-44)
301r6 = add_i32 r2 r6
302r7 = mul_i32 r7 r9
303r7 = add_i32 r7 r1
304r7 = shr r7 8 (1.1210388e-44)
305r7 = add_i32 r3 r7
306r8 = mul_i32 r8 r9
307r8 = add_i32 r8 r1
308r8 = shr r8 8 (1.1210388e-44)
309r8 = add_i32 r4 r8
310r9 = mul_i32 r5 r9
311r9 = add_i32 r9 r1
312r9 = shr r9 8 (1.1210388e-44)
313r9 = add_i32 r0 r9
314r7 = shl r7 8 (1.1210388e-44)
315r7 = bit_or r6 r7
316r8 = shl r8 10 (2.2420775e-44)
317r8 = bit_or r7 r8
318r9 = shl r9 18 (3.3631163e-44)
319r9 = bit_or r8 r9
320store32 arg(1) r9
321
322I32 (SWAR) 8888 over 8888
323r0 = load32 arg(0)
324r1 = splat FF00FF (2.3418409e-38)
325r2 = bit_and r0 r1
326r0 = shr r0 8 (1.1210388e-44)
327r0 = bit_and r0 r1
328r3 = load32 arg(1)
329r4 = bit_and r3 r1
330r3 = shr r3 8 (1.1210388e-44)
331r3 = bit_and r3 r1
332r5 = splat FF (3.5733111e-43)
333r6 = shr r0 10 (2.2420775e-44)
334r6 = sub_i32 r5 r6
335r4 = mul_i32 r4 r6
336r4 = add_i32 r4 r1
337r4 = shr r4 8 (1.1210388e-44)
338r4 = bit_and r4 r1
339r4 = add_i32 r2 r4
340r6 = mul_i32 r3 r6
341r6 = add_i32 r6 r1
342r6 = shr r6 8 (1.1210388e-44)
343r6 = bit_and r6 r1
344r6 = add_i32 r0 r6
345r6 = shl r6 8 (1.1210388e-44)
346r6 = bit_or r4 r6
347store32 arg(1) r6
348