pixel-test.c revision 14b11b2b
1/*
2 * Copyright © 2013 Soeren Sandmann
3 * Copyright © 2013 Red Hat, Inc.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
14 * Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
23 */
24#include <stdio.h>
25#include <stdlib.h> /* abort() */
26#include <math.h>
27#include <time.h>
28#include "utils.h"
29
30typedef struct pixel_combination_t pixel_combination_t;
31struct pixel_combination_t
32{
33    pixman_op_t			op;
34    pixman_format_code_t	src_format;
35    uint32_t			src_pixel;
36    pixman_format_code_t	mask_format;
37    uint32_t			mask_pixel;
38    pixman_format_code_t	dest_format;
39    uint32_t			dest_pixel;
40};
41
42static const pixel_combination_t regressions[] =
43{
44    { PIXMAN_OP_DISJOINT_ATOP,
45      PIXMAN_a8r8g8b8,	0x1ffc3ff,
46      PIXMAN_a8,	0x7b,
47      PIXMAN_a8r8g8b8,	0xff00c300,
48    },
49    { PIXMAN_OP_SOFT_LIGHT,
50      PIXMAN_a2r2g2b2,	0xb5,
51      PIXMAN_a4r4g4b4,	0xe3ff,
52      PIXMAN_a2r2g2b2,	0x2e
53    },
54    { PIXMAN_OP_SOFT_LIGHT,
55      PIXMAN_a2r2g2b2,	0xa6,
56      PIXMAN_a8r8g8b8,	0x2b00ff00,
57      PIXMAN_a4r4g4b4,	0x7e
58    },
59    { PIXMAN_OP_SOFT_LIGHT,
60      PIXMAN_a8r8g8b8,	0x27000013,
61      PIXMAN_a2r2g2b2,	0x80,
62      PIXMAN_a4r4g4b4,	0x9d
63    },
64    { PIXMAN_OP_SOFT_LIGHT,
65      PIXMAN_a4r4g4b4,	0xe6f7,
66      PIXMAN_a2r2g2b2,	0xad,
67      PIXMAN_a4r4g4b4,	0x71
68    },
69    { PIXMAN_OP_SOFT_LIGHT,
70      PIXMAN_a8r8g8b8,	0xff4f70ff,
71      PIXMAN_r5g6b5,	0xb828,
72      PIXMAN_a8r8g8b8,	0xcac400
73    },
74    { PIXMAN_OP_SOFT_LIGHT,
75      PIXMAN_a2r2g2b2,	0xa9,
76      PIXMAN_a4r4g4b4,	0x41c2,
77      PIXMAN_a8r8g8b8,	0xffff2b
78    },
79    { PIXMAN_OP_SOFT_LIGHT,
80      PIXMAN_a2r2g2b2,	0x89,
81      PIXMAN_a8r8g8b8,	0x977cff61,
82      PIXMAN_a4r4g4b4,	0x36
83    },
84    { PIXMAN_OP_SOFT_LIGHT,
85      PIXMAN_a2r2g2b2,	0x81,
86      PIXMAN_r5g6b5,	0x6f9e,
87      PIXMAN_a4r4g4b4,	0x1eb
88    },
89    { PIXMAN_OP_SOFT_LIGHT,
90      PIXMAN_a2r2g2b2,	0xb5,
91      PIXMAN_a4r4g4b4,	0xe247,
92      PIXMAN_a8r8g8b8,	0xffbaff
93    },
94    { PIXMAN_OP_SOFT_LIGHT,
95      PIXMAN_a2r2g2b2,	0x97,
96      PIXMAN_a2r2g2b2,	0x9d,
97      PIXMAN_a2r2g2b2,	0x21
98    },
99    { PIXMAN_OP_SOFT_LIGHT,
100      PIXMAN_a2r2g2b2,	0xb4,
101      PIXMAN_a2r2g2b2,	0x90,
102      PIXMAN_a8r8g8b8,	0xc0fd5c
103    },
104    { PIXMAN_OP_SOFT_LIGHT,
105      PIXMAN_a8r8g8b8,	0xdf00ff70,
106      PIXMAN_a8r8g8b8,	0x2597ff27,
107      PIXMAN_a4r4g4b4,	0xf3
108    },
109    { PIXMAN_OP_SOFT_LIGHT,
110      PIXMAN_a2r2g2b2,	0xb7,
111      PIXMAN_r3g3b2,	0xb1,
112      PIXMAN_a8r8g8b8,	0x9f4bcc
113    },
114    { PIXMAN_OP_SOFT_LIGHT,
115      PIXMAN_a4r4g4b4,	0xf39e,
116      PIXMAN_r5g6b5,	0x34,
117      PIXMAN_a8r8g8b8,	0xf6ae00
118    },
119    { PIXMAN_OP_SOFT_LIGHT,
120      PIXMAN_a8r8g8b8,	0x3aff1dff,
121      PIXMAN_a2r2g2b2,	0x64,
122      PIXMAN_a8r8g8b8,	0x94ffb4
123    },
124    { PIXMAN_OP_SOFT_LIGHT,
125      PIXMAN_a2r2g2b2,	0xa4,
126      PIXMAN_a2r2g2b2,	0x8a,
127      PIXMAN_a4r4g4b4,	0xff
128    },
129    { PIXMAN_OP_SOFT_LIGHT,
130      PIXMAN_a2r2g2b2,	0xa5,
131      PIXMAN_a4r4g4b4,	0x1a,
132      PIXMAN_a4r4g4b4,	0xff
133    },
134    { PIXMAN_OP_SOFT_LIGHT,
135      PIXMAN_a2r2g2b2,	0xb4,
136      PIXMAN_a2r2g2b2,	0xca,
137      PIXMAN_a4r4g4b4,	0x7b
138    },
139    { PIXMAN_OP_SOFT_LIGHT,
140      PIXMAN_a2r2g2b2,	0xbd,
141      PIXMAN_a4r4g4b4,	0xff37,
142      PIXMAN_a4r4g4b4,	0xff
143    },
144    { PIXMAN_OP_SOFT_LIGHT,
145      PIXMAN_a2r2g2b2,	0x96,
146      PIXMAN_a2r2g2b2,	0xbb,
147      PIXMAN_a8r8g8b8,	0x96ffff
148    },
149    { PIXMAN_OP_SOFT_LIGHT,
150      PIXMAN_a2r2g2b2,	0x89,
151      PIXMAN_r3g3b2,	0x92,
152      PIXMAN_a4r4g4b4,	0xa8c
153    },
154    { PIXMAN_OP_SOFT_LIGHT,
155      PIXMAN_a4r4g4b4,	0xa95b,
156      PIXMAN_a2r2g2b2,	0x68,
157      PIXMAN_a8r8g8b8,	0x38ff
158    },
159    { PIXMAN_OP_SOFT_LIGHT,
160      PIXMAN_a2r2g2b2,	0x90,
161      PIXMAN_a8r8g8b8,	0x53bd00ef,
162      PIXMAN_a8r8g8b8,	0xff0003
163    },
164    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
165      PIXMAN_a8r8g8b8,	0x1f5ffff,
166      PIXMAN_r3g3b2,	0x22,
167      PIXMAN_r5g6b5,	0x2000
168    },
169    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
170      PIXMAN_a8r8g8b8,	0x10000b6,
171      PIXMAN_a8r8g8b8,	0x9645,
172      PIXMAN_r5g6b5,	0x6
173    },
174    { PIXMAN_OP_SATURATE,
175      PIXMAN_a8r8g8b8,	0x172ff00,
176      PIXMAN_a4r4g4b4,	0xff61,
177      PIXMAN_r3g3b2,	0xc
178    },
179    { PIXMAN_OP_DISJOINT_ATOP,
180      PIXMAN_a8r8g8b8,	0x281ffc8,
181      PIXMAN_r5g6b5,	0x39b8,
182      PIXMAN_r5g6b5,	0x13
183    },
184    { PIXMAN_OP_CONJOINT_IN,
185      PIXMAN_a8r8g8b8,	0x100a2ff,
186      PIXMAN_a4r4g4b4,	0x6500,
187      PIXMAN_a2r2g2b2,	0x5
188    },
189    { PIXMAN_OP_CONJOINT_IN,
190      PIXMAN_a8r8g8b8,	0x1ffff51,
191      PIXMAN_r5g6b5,	0x52ff,
192      PIXMAN_a2r2g2b2,	0x14
193    },
194    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
195      PIXMAN_a8r8g8b8,	0x150d500,
196      PIXMAN_a8r8g8b8,	0x6200b7ff,
197      PIXMAN_a8r8g8b8,	0x1f5200
198    },
199    { PIXMAN_OP_DISJOINT_OUT,
200      PIXMAN_a8r8g8b8,	0x2a9a700,
201      PIXMAN_a8r8g8b8,	0xf7003400,
202      PIXMAN_a8r8g8b8,	0x2200
203    },
204    { PIXMAN_OP_DISJOINT_IN,
205      PIXMAN_a8r8g8b8,	0x200ffff,
206      PIXMAN_r5g6b5,	0x81ff,
207      PIXMAN_r5g6b5,	0x1f
208    },
209    { PIXMAN_OP_DISJOINT_OUT,
210      PIXMAN_a8r8g8b8,	0x2ff00ff,
211      PIXMAN_r5g6b5,	0x3f00,
212      PIXMAN_r3g3b2,	0x20
213    },
214    { PIXMAN_OP_DISJOINT_OUT,
215      PIXMAN_a8r8g8b8,	0x3ff1aa4,
216      PIXMAN_a4r4g4b4,	0x2200,
217      PIXMAN_r5g6b5,	0x2000
218    },
219    { PIXMAN_OP_DISJOINT_XOR,
220      PIXMAN_a8r8g8b8,	0x280ff2c,
221      PIXMAN_r3g3b2,	0xc6,
222      PIXMAN_a8r8g8b8,	0xfdfd44fe
223    },
224    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
225      PIXMAN_a8r8g8b8,	0x13aff1d,
226      PIXMAN_a2r2g2b2,	0x4b,
227      PIXMAN_r5g6b5,	0x12a1
228    },
229    { PIXMAN_OP_DISJOINT_XOR,
230      PIXMAN_a8r8g8b8,	0x2ffff88,
231      PIXMAN_a8r8g8b8,	0xff3a49,
232      PIXMAN_r5g6b5,	0xf7df
233    },
234    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
235      PIXMAN_a8r8g8b8,	0x1009700,
236      PIXMAN_a2r2g2b2,	0x56,
237      PIXMAN_a8r8g8b8,	0x0
238    },
239    { PIXMAN_OP_DISJOINT_OUT,
240      PIXMAN_a8r8g8b8,	0x1aacbff,
241      PIXMAN_a4r4g4b4,	0x84,
242      PIXMAN_r3g3b2,	0x1
243    },
244    { PIXMAN_OP_DISJOINT_XOR,
245      PIXMAN_a8r8g8b8,	0x100b1ff,
246      PIXMAN_a2r2g2b2,	0xf5,
247      PIXMAN_a8r8g8b8,	0xfea89cff
248    },
249    { PIXMAN_OP_CONJOINT_XOR,
250      PIXMAN_a8r8g8b8,	0x1ff0000,
251      PIXMAN_r5g6b5,	0x6800,
252      PIXMAN_a4r4g4b4,	0x0
253    },
254    { PIXMAN_OP_CONJOINT_XOR,
255      PIXMAN_a8r8g8b8,	0x10064ff,
256      PIXMAN_r3g3b2,	0x61,
257      PIXMAN_a4r4g4b4,	0x0
258    },
259    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
260      PIXMAN_a8r8g8b8,	0x1bb00ff,
261      PIXMAN_r5g6b5,	0x76b5,
262      PIXMAN_a4r4g4b4,	0x500
263    },
264    { PIXMAN_OP_DISJOINT_OUT,
265      PIXMAN_a8r8g8b8,	0x2ffff41,
266      PIXMAN_r5g6b5,	0x7100,
267      PIXMAN_a4r4g4b4,	0x20
268    },
269    { PIXMAN_OP_DISJOINT_XOR,
270      PIXMAN_a8r8g8b8,	0x1ff1231,
271      PIXMAN_a8r8g8b8,	0x381089,
272      PIXMAN_r5g6b5,	0x38a5
273    },
274    { PIXMAN_OP_CONJOINT_IN,
275      PIXMAN_a8r8g8b8,	0x16e5c49,
276      PIXMAN_a8r8g8b8,	0x4dfa3694,
277      PIXMAN_a8r8g8b8,	0x211c16
278    },
279    { PIXMAN_OP_DISJOINT_OUT,
280      PIXMAN_a8r8g8b8,	0x134ff62,
281      PIXMAN_a2r2g2b2,	0x14,
282      PIXMAN_r3g3b2,	0x8
283    },
284    { PIXMAN_OP_CONJOINT_IN,
285      PIXMAN_a8r8g8b8,	0x300ffeb,
286      PIXMAN_r3g3b2,	0xc7,
287      PIXMAN_a4r4g4b4,	0x20
288    },
289    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
290      PIXMAN_a8r8g8b8,	0x3ff8bff,
291      PIXMAN_r3g3b2,	0x3e,
292      PIXMAN_a8r8g8b8,	0x3008baa
293    },
294    { PIXMAN_OP_DISJOINT_OUT,
295      PIXMAN_a8r8g8b8,	0x1ff00ff,
296      PIXMAN_a4r4g4b4,	0x3466,
297      PIXMAN_a4r4g4b4,	0x406
298    },
299    { PIXMAN_OP_DISJOINT_IN,
300      PIXMAN_a8r8g8b8,	0x1ddc027,
301      PIXMAN_a4r4g4b4,	0x7d00,
302      PIXMAN_r5g6b5,	0x0
303    },
304    { PIXMAN_OP_CONJOINT_IN,
305      PIXMAN_a8r8g8b8,	0x2ffff00,
306      PIXMAN_a8r8g8b8,	0xc92cfb52,
307      PIXMAN_a4r4g4b4,	0x200
308    },
309    { PIXMAN_OP_CONJOINT_XOR,
310      PIXMAN_a8r8g8b8,	0x1ff116a,
311      PIXMAN_a4r4g4b4,	0x6000,
312      PIXMAN_a4r4g4b4,	0x0
313    },
314    { PIXMAN_OP_DISJOINT_IN,
315      PIXMAN_a8r8g8b8,	0x1ffffff,
316      PIXMAN_r5g6b5,	0x2f95,
317      PIXMAN_r5g6b5,	0x795
318    },
319    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
320      PIXMAN_a8r8g8b8,	0x2ffff00,
321      PIXMAN_a4r4g4b4,	0x354a,
322      PIXMAN_r5g6b5,	0x3180
323    },
324    { PIXMAN_OP_SATURATE,
325      PIXMAN_a8r8g8b8,	0x1d7ff00,
326      PIXMAN_a4r4g4b4,	0xd6ff,
327      PIXMAN_a8r8g8b8,	0xffff0700
328    },
329    { PIXMAN_OP_DISJOINT_XOR,
330      PIXMAN_a8r8g8b8,	0x1bc5db7,
331      PIXMAN_r5g6b5,	0x944f,
332      PIXMAN_a4r4g4b4,	0xff05
333    },
334    { PIXMAN_OP_SATURATE,
335      PIXMAN_a8r8g8b8,	0x185ffd9,
336      PIXMAN_a2r2g2b2,	0x9c,
337      PIXMAN_r5g6b5,	0x3c07
338    },
339    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
340      PIXMAN_a8r8g8b8,	0x1fa7f61,
341      PIXMAN_a8r8g8b8,	0xff31ff00,
342      PIXMAN_r3g3b2,	0xd2
343    },
344    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
345      PIXMAN_a8r8g8b8,	0x1c4ff00,
346      PIXMAN_r3g3b2,	0xb,
347      PIXMAN_a4r4g4b4,	0x0
348    },
349    { PIXMAN_OP_DISJOINT_OUT,
350      PIXMAN_a8r8g8b8,	0x2ff00ff,
351      PIXMAN_a8r8g8b8,	0x3f3caeda,
352      PIXMAN_r3g3b2,	0x20
353    },
354    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
355      PIXMAN_a8r8g8b8,	0x100ff00,
356      PIXMAN_r5g6b5,	0xff,
357      PIXMAN_r5g6b5,	0xe0
358    },
359    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
360      PIXMAN_a8r8g8b8,	0x1ff68ff,
361      PIXMAN_a4r4g4b4,	0x8046,
362      PIXMAN_r5g6b5,	0xec
363    },
364    { PIXMAN_OP_DISJOINT_OUT,
365      PIXMAN_a8r8g8b8,	0x100ff28,
366      PIXMAN_a8r8g8b8,	0x4c00,
367      PIXMAN_r5g6b5,	0x260
368    },
369    { PIXMAN_OP_CONJOINT_IN,
370      PIXMAN_a8r8g8b8,	0x1ffff00,
371      PIXMAN_a4r4g4b4,	0xd92a,
372      PIXMAN_a8r8g8b8,	0x2200
373    },
374    { PIXMAN_OP_DISJOINT_IN,
375      PIXMAN_a8r8g8b8,	0x100289a,
376      PIXMAN_a8r8g8b8,	0x74ffb8ff,
377      PIXMAN_r5g6b5,	0x0
378    },
379    { PIXMAN_OP_DISJOINT_XOR,
380      PIXMAN_a8r8g8b8,	0x1baff00,
381      PIXMAN_r5g6b5,	0x4e9d,
382      PIXMAN_r5g6b5,	0x3000
383    },
384    { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
385      PIXMAN_a8r8g8b8,	0x1fcffad,
386      PIXMAN_r5g6b5,	0x42d7,
387      PIXMAN_a8r8g8b8,	0x1c6ffe5
388    },
389    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
390      PIXMAN_a8r8g8b8,	0x183ff00,
391      PIXMAN_r3g3b2,	0x7e,
392      PIXMAN_a4r4g4b4,	0xff
393    },
394    { PIXMAN_OP_SATURATE,
395      PIXMAN_a8r8g8b8,	0x2ff0076,
396      PIXMAN_a8r8g8b8,	0x2a0000,
397      PIXMAN_r3g3b2,	0x20
398    },
399    { PIXMAN_OP_CONJOINT_OUT,
400      PIXMAN_a8r8g8b8,	0x3d8bbff,
401      PIXMAN_r5g6b5,	0x6900,
402      PIXMAN_a8r8g8b8,	0x35b0000
403    },
404    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
405      PIXMAN_a8r8g8b8,	0x14f00ff,
406      PIXMAN_r5g6b5,	0xd48,
407      PIXMAN_a4r4g4b4,	0x0
408    },
409    { PIXMAN_OP_CONJOINT_IN,
410      PIXMAN_a8r8g8b8,	0x28c72df,
411      PIXMAN_a8r8g8b8,	0xff5cff31,
412      PIXMAN_a4r4g4b4,	0x2
413    },
414    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
415      PIXMAN_a8r8g8b8,	0x2ffffff,
416      PIXMAN_a8r8g8b8,	0xffad8020,
417      PIXMAN_r5g6b5,	0x4
418    },
419    { PIXMAN_OP_DISJOINT_ATOP,
420      PIXMAN_a8r8g8b8,	0x100ff00,
421      PIXMAN_a2r2g2b2,	0x76,
422      PIXMAN_r3g3b2,	0x0
423    },
424    { PIXMAN_OP_CONJOINT_XOR,
425      PIXMAN_a8r8g8b8,	0x1005d00,
426      PIXMAN_r5g6b5,	0x7b04,
427      PIXMAN_a8r8g8b8,	0x1000000
428    },
429    { PIXMAN_OP_CONJOINT_ATOP,
430      PIXMAN_a8r8g8b8,	0x3cdfc3e,
431      PIXMAN_a8r8g8b8,	0x69ec21d3,
432      PIXMAN_a4r4g4b4,	0x20
433    },
434    { PIXMAN_OP_DISJOINT_ATOP,
435      PIXMAN_a8r8g8b8,	0x200ffff,
436      PIXMAN_r5g6b5,	0x30ff,
437      PIXMAN_r5g6b5,	0x60ff
438    },
439    { PIXMAN_OP_DISJOINT_XOR,
440      PIXMAN_a8r8g8b8,	0x532fff4,
441      PIXMAN_r5g6b5,	0xcb,
442      PIXMAN_r5g6b5,	0xd9a1
443    },
444    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
445      PIXMAN_a8r8g8b8,	0x1ffffff,
446      PIXMAN_r3g3b2,	0x5f,
447      PIXMAN_a2r2g2b2,	0x10
448    },
449    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
450      PIXMAN_a8r8g8b8,	0x1ffffff,
451      PIXMAN_a8r8g8b8,	0xffd60052,
452      PIXMAN_r3g3b2,	0x1
453    },
454    { PIXMAN_OP_DISJOINT_XOR,
455      PIXMAN_a8r8g8b8,	0x1ff6491,
456      PIXMAN_a8r8g8b8,	0x1e53ff00,
457      PIXMAN_r5g6b5,	0x1862
458    },
459    { PIXMAN_OP_CONJOINT_IN,
460      PIXMAN_a8r8g8b8,	0x1ffff00,
461      PIXMAN_r3g3b2,	0xc7,
462      PIXMAN_a4r4g4b4,	0x20
463    },
464    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
465      PIXMAN_a8r8g8b8,	0x29d0fff,
466      PIXMAN_a4r4g4b4,	0x25ff,
467      PIXMAN_a8r8g8b8,	0x0
468    },
469    { PIXMAN_OP_DISJOINT_OUT,
470      PIXMAN_a8r8g8b8,	0x141760a,
471      PIXMAN_a4r4g4b4,	0x7ec2,
472      PIXMAN_a4r4g4b4,	0x130
473    },
474    { PIXMAN_OP_DISJOINT_XOR,
475      PIXMAN_a8r8g8b8,	0x1abedff,
476      PIXMAN_a8r8g8b8,	0x75520068,
477      PIXMAN_r3g3b2,	0x87
478    },
479    { PIXMAN_OP_DISJOINT_XOR,
480      PIXMAN_a8r8g8b8,	0x10000ff,
481      PIXMAN_a8r8g8b8,	0xff00e652,
482      PIXMAN_r3g3b2,	0x1
483    },
484    { PIXMAN_OP_CONJOINT_ATOP,
485      PIXMAN_a8r8g8b8,	0x16006075,
486      PIXMAN_r5g6b5,	0xc00,
487      PIXMAN_a8r8g8b8,	0x27f0900
488    },
489    { PIXMAN_OP_DISJOINT_ATOP,
490      PIXMAN_a8r8g8b8,	0x200ff00,
491      PIXMAN_a8r8g8b8,	0xd1b83f57,
492      PIXMAN_a4r4g4b4,	0xff75
493    },
494    { PIXMAN_OP_DISJOINT_OUT,
495      PIXMAN_a8r8g8b8,	0x14000c4,
496      PIXMAN_a4r4g4b4,	0x96,
497      PIXMAN_a2r2g2b2,	0x1
498    },
499    { PIXMAN_OP_DISJOINT_IN,
500      PIXMAN_a8r8g8b8,	0x1ff00d1,
501      PIXMAN_r3g3b2,	0x79,
502      PIXMAN_a2r2g2b2,	0x0
503    },
504    { PIXMAN_OP_CONJOINT_ATOP,
505      PIXMAN_a8r8g8b8,	0x1ff00dc,
506      PIXMAN_a4r4g4b4,	0xc5ff,
507      PIXMAN_a2r2g2b2,	0x10
508    },
509    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
510      PIXMAN_a8r8g8b8,	0x1ffffb2,
511      PIXMAN_a8r8g8b8,	0x4cff5700,
512      PIXMAN_r3g3b2,	0x48
513    },
514    { PIXMAN_OP_CONJOINT_XOR,
515      PIXMAN_a8r8g8b8,	0x1327482,
516      PIXMAN_a8r8g8b8,	0x247ff,
517      PIXMAN_a8r8g8b8,	0x82
518    },
519    { PIXMAN_OP_DISJOINT_XOR,
520      PIXMAN_a8r8g8b8,	0x1d0ff00,
521      PIXMAN_r3g3b2,	0xc9,
522      PIXMAN_r5g6b5,	0x240
523    },
524    { PIXMAN_OP_DISJOINT_XOR,
525      PIXMAN_a8r8g8b8,	0x13d35ff,
526      PIXMAN_a2r2g2b2,	0x6d,
527      PIXMAN_r3g3b2,	0x1
528    },
529    { PIXMAN_OP_DISJOINT_OUT,
530      PIXMAN_a8r8g8b8,	0x1ffc6b2,
531      PIXMAN_a8r8g8b8,	0x5abe8e3c,
532      PIXMAN_r5g6b5,	0x5a27
533    },
534    { PIXMAN_OP_DISJOINT_OUT,
535      PIXMAN_a8r8g8b8,	0x15700ff,
536      PIXMAN_r3g3b2,	0xdd,
537      PIXMAN_a8r8g8b8,	0x55
538    },
539    { PIXMAN_OP_DISJOINT_OUT,
540      PIXMAN_a8r8g8b8,	0x1ff11ff,
541      PIXMAN_r3g3b2,	0x30,
542      PIXMAN_r5g6b5,	0x2000
543    },
544    { PIXMAN_OP_DISJOINT_ATOP,
545      PIXMAN_a8r8g8b8,	0x1ff00ff,
546      PIXMAN_a2r2g2b2,	0x6d,
547      PIXMAN_r3g3b2,	0x0
548    },
549    { PIXMAN_OP_DISJOINT_IN,
550      PIXMAN_a8r8g8b8,	0x1421d5f,
551      PIXMAN_a4r4g4b4,	0xff85,
552      PIXMAN_a8r8g8b8,	0x1420f00
553    },
554    { PIXMAN_OP_DISJOINT_IN,
555      PIXMAN_a8r8g8b8,	0x1d2ffff,
556      PIXMAN_r5g6b5,	0xfc,
557      PIXMAN_r5g6b5,	0x1c
558    },
559    { PIXMAN_OP_CONJOINT_ATOP,
560      PIXMAN_a8r8g8b8,	0x1ffff42,
561      PIXMAN_a4r4g4b4,	0x7100,
562      PIXMAN_a4r4g4b4,	0x771
563    },
564    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
565      PIXMAN_a8r8g8b8,	0x25ae3d4,
566      PIXMAN_a8r8g8b8,	0x39ffc99a,
567      PIXMAN_a8r8g8b8,	0x14332f
568    },
569    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
570      PIXMAN_a8r8g8b8,	0x1ff0643,
571      PIXMAN_a8r8g8b8,	0x4c000000,
572      PIXMAN_r5g6b5,	0x4802
573    },
574    { PIXMAN_OP_DISJOINT_IN,
575      PIXMAN_a8r8g8b8,	0x1966a00,
576      PIXMAN_r3g3b2,	0x46,
577      PIXMAN_r5g6b5,	0x0
578    },
579    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
580      PIXMAN_a8r8g8b8,	0x387ff59,
581      PIXMAN_r5g6b5,	0x512c,
582      PIXMAN_r5g6b5,	0x120
583    },
584    { PIXMAN_OP_CONJOINT_XOR,
585      PIXMAN_a8r8g8b8,	0x1f7ffb0,
586      PIXMAN_r5g6b5,	0x63b8,
587      PIXMAN_a8r8g8b8,	0x1000089
588    },
589    { PIXMAN_OP_DISJOINT_IN,
590      PIXMAN_a8r8g8b8,	0x185841c,
591      PIXMAN_a2r2g2b2,	0x5c,
592      PIXMAN_a8r8g8b8,	0x8400
593    },
594    { PIXMAN_OP_DISJOINT_ATOP,
595      PIXMAN_a8r8g8b8,	0x1ffc3ff,
596      PIXMAN_a8r8g8b8,	0xff7b,
597      PIXMAN_a8r8g8b8,	0xff00c300
598    },
599    { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
600      PIXMAN_a8r8g8b8,	0x1ff7500,
601      PIXMAN_a2r2g2b2,	0x47,
602      PIXMAN_a4r4g4b4,	0xff
603    },
604    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
605      PIXMAN_a8r8g8b8,	0x1002361,
606      PIXMAN_a2r2g2b2,	0x7e,
607      PIXMAN_r5g6b5,	0x64
608    },
609    { PIXMAN_OP_SATURATE,
610      PIXMAN_a8r8g8b8,	0x10000b6,
611      PIXMAN_a8r8g8b8,	0x59004463,
612      PIXMAN_a4r4g4b4,	0xffa7
613    },
614    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
615      PIXMAN_a8r8g8b8,	0x1ff5a49,
616      PIXMAN_a8r8g8b8,	0xff3fff2b,
617      PIXMAN_a8r8g8b8,	0x13f000c
618    },
619    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
620      PIXMAN_a8r8g8b8,	0x3ffecfc,
621      PIXMAN_r3g3b2,	0x3c,
622      PIXMAN_r5g6b5,	0x2000
623    },
624    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
625      PIXMAN_a8r8g8b8,	0x1630044,
626      PIXMAN_a2r2g2b2,	0x63,
627      PIXMAN_r3g3b2,	0x20
628    },
629    { PIXMAN_OP_CONJOINT_OUT,
630      PIXMAN_a8r8g8b8,	0x1d2ff58,
631      PIXMAN_a8r8g8b8,	0x8f77ff,
632      PIXMAN_a4r4g4b4,	0x705
633    },
634    { PIXMAN_OP_DISJOINT_OUT,
635      PIXMAN_a8r8g8b8,	0x14dffff,
636      PIXMAN_a2r2g2b2,	0x9a,
637      PIXMAN_a8r8g8b8,	0x1a0000
638    },
639    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
640      PIXMAN_a8r8g8b8,	0x100ff92,
641      PIXMAN_a4r4g4b4,	0x540c,
642      PIXMAN_r5g6b5,	0x2a6
643    },
644    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
645      PIXMAN_a8r8g8b8,	0x1ffffff,
646      PIXMAN_a4r4g4b4,	0xddd5,
647      PIXMAN_a4r4g4b4,	0xdd0
648    },
649    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
650      PIXMAN_a8r8g8b8,	0x1ffffff,
651      PIXMAN_r5g6b5,	0xff8c,
652      PIXMAN_a4r4g4b4,	0xff0
653    },
654    { PIXMAN_OP_DISJOINT_ATOP,
655      PIXMAN_a8r8g8b8,	0x1ffffff,
656      PIXMAN_r3g3b2,	0x66,
657      PIXMAN_r5g6b5,	0x7d1f
658    },
659    { PIXMAN_OP_CONJOINT_ATOP,
660      PIXMAN_a8r8g8b8,	0x1ffff00,
661      PIXMAN_a4r4g4b4,	0xff5b,
662      PIXMAN_a8r8g8b8,	0x5500
663    },
664    { PIXMAN_OP_DISJOINT_XOR,
665      PIXMAN_a8r8g8b8,	0x2ed2dff,
666      PIXMAN_r5g6b5,	0x7ae7,
667      PIXMAN_r3g3b2,	0xce
668    },
669    { PIXMAN_OP_DISJOINT_OUT,
670      PIXMAN_a8r8g8b8,	0x1b13205,
671      PIXMAN_a8r8g8b8,	0x35ffff00,
672      PIXMAN_r5g6b5,	0x2040
673    },
674    { PIXMAN_OP_CONJOINT_IN,
675      PIXMAN_a8r8g8b8,	0x1e60dff,
676      PIXMAN_a4r4g4b4,	0x760f,
677      PIXMAN_a2r2g2b2,	0x11
678    },
679    { PIXMAN_OP_CONJOINT_OUT,
680      PIXMAN_a8r8g8b8,	0x10000ff,
681      PIXMAN_a4r4g4b4,	0x3,
682      PIXMAN_a8r8g8b8,	0x0
683    },
684    { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
685      PIXMAN_a8r8g8b8,	0x100ffff,
686      PIXMAN_a8r8g8b8,	0x6600,
687      PIXMAN_a4r4g4b4,	0x0
688    },
689    { PIXMAN_OP_DISJOINT_OUT,
690      PIXMAN_a8r8g8b8,	0x30000fa,
691      PIXMAN_a4r4g4b4,	0x23b7,
692      PIXMAN_a8r8g8b8,	0x21
693    },
694    { PIXMAN_OP_DISJOINT_OUT,
695      PIXMAN_a8r8g8b8,	0x1ffffff,
696      PIXMAN_r3g3b2,	0x60,
697      PIXMAN_r3g3b2,	0x60
698    },
699    { PIXMAN_OP_CONJOINT_OUT,
700      PIXMAN_a8r8g8b8,	0x3b31b30,
701      PIXMAN_r3g3b2,	0x2e,
702      PIXMAN_a8r8g8b8,	0x3000c20
703    },
704    { PIXMAN_OP_DISJOINT_ATOP,
705      PIXMAN_a8r8g8b8,	0x160ffff,
706      PIXMAN_a4r4g4b4,	0xff42,
707      PIXMAN_r3g3b2,	0xed
708    },
709    { PIXMAN_OP_DISJOINT_OUT,
710      PIXMAN_a8r8g8b8,	0x172ffff,
711      PIXMAN_a4r4g4b4,	0x5100,
712      PIXMAN_r3g3b2,	0x29
713    },
714    { PIXMAN_OP_CONJOINT_ATOP,
715      PIXMAN_a8r8g8b8,	0x16300ff,
716      PIXMAN_a4r4g4b4,	0x5007,
717      PIXMAN_a8r8g8b8,	0x77
718    },
719    { PIXMAN_OP_CONJOINT_IN,
720      PIXMAN_a8r8g8b8,	0x2ffff3a,
721      PIXMAN_a8r8g8b8,	0x26640083,
722      PIXMAN_a4r4g4b4,	0x220
723    },
724    { PIXMAN_OP_DISJOINT_IN,
725      PIXMAN_a8r8g8b8,	0x106ff60,
726      PIXMAN_r5g6b5,	0xdce,
727      PIXMAN_a8r8g8b8,	0x100ba00
728    },
729    { PIXMAN_OP_DISJOINT_IN,
730      PIXMAN_a8r8g8b8,	0x100e7ff,
731      PIXMAN_r5g6b5,	0xa00,
732      PIXMAN_r5g6b5,	0x0
733    },
734    { PIXMAN_OP_CONJOINT_XOR,
735      PIXMAN_a8r8g8b8,	0x2b500f1,
736      PIXMAN_a4r4g4b4,	0x7339,
737      PIXMAN_a8r8g8b8,	0x1000091
738    },
739    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
740      PIXMAN_a8r8g8b8,	0x1ff00ff,
741      PIXMAN_a4r4g4b4,	0xc863,
742      PIXMAN_r5g6b5,	0x6
743    },
744    { PIXMAN_OP_SATURATE,
745      PIXMAN_a8r8g8b8,	0x1ffffca,
746      PIXMAN_a8r8g8b8,	0x8b4cf000,
747      PIXMAN_r3g3b2,	0xd2
748    },
749    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
750      PIXMAN_a8r8g8b8,	0x1fffe00,
751      PIXMAN_r3g3b2,	0x88,
752      PIXMAN_r3g3b2,	0x8
753    },
754    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
755      PIXMAN_a8r8g8b8,	0x16f0000,
756      PIXMAN_a2r2g2b2,	0x59,
757      PIXMAN_r5g6b5,	0x2000
758    },
759    { PIXMAN_OP_CONJOINT_OUT,
760      PIXMAN_a8r8g8b8,	0x377ff43,
761      PIXMAN_a4r4g4b4,	0x2a,
762      PIXMAN_a8r8g8b8,	0x2d
763    },
764    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
765      PIXMAN_a8r8g8b8,	0x11dffff,
766      PIXMAN_r3g3b2,	0xcb,
767      PIXMAN_r3g3b2,	0x8
768    },
769    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
770      PIXMAN_a8r8g8b8,	0x1ffffff,
771      PIXMAN_r5g6b5,	0xbdab,
772      PIXMAN_a4r4g4b4,	0xbb0
773    },
774    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
775      PIXMAN_a8r8g8b8,	0x1ff3343,
776      PIXMAN_a8r8g8b8,	0x7a00ffff,
777      PIXMAN_a2r2g2b2,	0xd
778    },
779    { PIXMAN_OP_DISJOINT_XOR,
780      PIXMAN_a8r8g8b8,	0x1ebff4b,
781      PIXMAN_r3g3b2,	0x26,
782      PIXMAN_r3g3b2,	0x24
783    },
784    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
785      PIXMAN_a8r8g8b8,	0x2c1b3ff,
786      PIXMAN_a8r8g8b8,	0x3000152a,
787      PIXMAN_r3g3b2,	0x24
788    },
789    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
790      PIXMAN_a8r8g8b8,	0x1a7ffff,
791      PIXMAN_r3g3b2,	0x9,
792      PIXMAN_r5g6b5,	0x24a
793    },
794    { PIXMAN_OP_DISJOINT_IN,
795      PIXMAN_a8r8g8b8,	0x4ff00ec,
796      PIXMAN_a8r8g8b8,	0x1da4961e,
797      PIXMAN_a8r8g8b8,	0x0
798    },
799    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
800      PIXMAN_a8r8g8b8,	0x1ff25ff,
801      PIXMAN_a8r8g8b8,	0x64b0ff00,
802      PIXMAN_r5g6b5,	0x606c
803    },
804    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
805      PIXMAN_a8r8g8b8,	0x1fd62ff,
806      PIXMAN_a4r4g4b4,	0x76b1,
807      PIXMAN_r5g6b5,	0x716e
808    },
809    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
810      PIXMAN_a8r8g8b8,	0x194ffde,
811      PIXMAN_r5g6b5,	0x47ff,
812      PIXMAN_r5g6b5,	0x2000
813    },
814    { PIXMAN_OP_DISJOINT_XOR,
815      PIXMAN_a8r8g8b8,	0x108ffff,
816      PIXMAN_a8r8g8b8,	0xffffff66,
817      PIXMAN_r5g6b5,	0xff0c
818    },
819    { PIXMAN_OP_DISJOINT_XOR,
820      PIXMAN_a8r8g8b8,	0x5ffffff,
821      PIXMAN_r5g6b5,	0xdf,
822      PIXMAN_r5g6b5,	0xc0
823    },
824    { PIXMAN_OP_CONJOINT_IN,
825      PIXMAN_a8r8g8b8,	0x100ad31,
826      PIXMAN_a2r2g2b2,	0xc5,
827      PIXMAN_a4r4g4b4,	0x31
828    },
829    { PIXMAN_OP_DISJOINT_IN,
830      PIXMAN_a8r8g8b8,	0x1ffff34,
831      PIXMAN_a8r8g8b8,	0x6a57c491,
832      PIXMAN_r3g3b2,	0x0
833    },
834    { PIXMAN_OP_DISJOINT_IN,
835      PIXMAN_a8r8g8b8,	0x1fffff1,
836      PIXMAN_r3g3b2,	0xaf,
837      PIXMAN_r5g6b5,	0xb01e
838    },
839    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
840      PIXMAN_a8r8g8b8,	0x1ff67ff,
841      PIXMAN_a4r4g4b4,	0x50ff,
842      PIXMAN_a8r8g8b8,	0x552255
843    },
844    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
845      PIXMAN_a8r8g8b8,	0x11bffff,
846      PIXMAN_r5g6b5,	0xef0c,
847      PIXMAN_r5g6b5,	0xc
848    },
849    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
850      PIXMAN_a8r8g8b8,	0x16cf37d,
851      PIXMAN_a4r4g4b4,	0xc561,
852      PIXMAN_r5g6b5,	0x2301
853    },
854    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
855      PIXMAN_a8r8g8b8,	0x2ffff9c,
856      PIXMAN_a4r4g4b4,	0x2700,
857      PIXMAN_a8r8g8b8,	0xffff
858    },
859    { PIXMAN_OP_DISJOINT_IN,
860      PIXMAN_a8r8g8b8,	0x200f322,
861      PIXMAN_a8r8g8b8,	0xff3c7e,
862      PIXMAN_r5g6b5,	0x2
863    },
864    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
865      PIXMAN_a8r8g8b8,	0x1f14a33,
866      PIXMAN_a8r8g8b8,	0x26cff79,
867      PIXMAN_r3g3b2,	0xf9
868    },
869    { PIXMAN_OP_CONJOINT_ATOP,
870      PIXMAN_a8r8g8b8,	0x11d922c,
871      PIXMAN_r3g3b2,	0xab,
872      PIXMAN_a4r4g4b4,	0x20
873    },
874    { PIXMAN_OP_DISJOINT_OUT,
875      PIXMAN_a8r8g8b8,	0x100ffff,
876      PIXMAN_a2r2g2b2,	0xf5,
877      PIXMAN_r3g3b2,	0x9
878    },
879    { PIXMAN_OP_DISJOINT_XOR,
880      PIXMAN_a8r8g8b8,	0x18697ff,
881      PIXMAN_a4r4g4b4,	0x5700,
882      PIXMAN_r5g6b5,	0xfa6d
883    },
884    { PIXMAN_OP_CONJOINT_IN,
885      PIXMAN_a8r8g8b8,	0x12000fc,
886      PIXMAN_a2r2g2b2,	0x41,
887      PIXMAN_a8r8g8b8,	0xb0054
888    },
889    { PIXMAN_OP_DISJOINT_XOR,
890      PIXMAN_a8r8g8b8,	0x100ccff,
891      PIXMAN_a4r4g4b4,	0x657e,
892      PIXMAN_r5g6b5,	0x3b1
893    },
894    { PIXMAN_OP_DISJOINT_OUT,
895      PIXMAN_a8r8g8b8,	0x1ffff1f,
896      PIXMAN_a2r2g2b2,	0xa6,
897      PIXMAN_r5g6b5,	0x2a0
898    },
899    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
900      PIXMAN_a8r8g8b8,	0x11fff82,
901      PIXMAN_a4r4g4b4,	0xff94,
902      PIXMAN_a8r8g8b8,	0x1010123
903    },
904    { PIXMAN_OP_CONJOINT_XOR,
905      PIXMAN_a8r8g8b8,	0x154bd19,
906      PIXMAN_a4r4g4b4,	0xb600,
907      PIXMAN_a8r8g8b8,	0x1000000
908    },
909    { PIXMAN_OP_DISJOINT_IN,
910      PIXMAN_a8r8g8b8,	0x10000ff,
911      PIXMAN_r5g6b5,	0x8e,
912      PIXMAN_r5g6b5,	0x0
913    },
914    { PIXMAN_OP_DISJOINT_ATOP,
915      PIXMAN_a8r8g8b8,	0x21aff00,
916      PIXMAN_r5g6b5,	0x71ff,
917      PIXMAN_r3g3b2,	0xf2
918    },
919    { PIXMAN_OP_DISJOINT_OUT,
920      PIXMAN_a8r8g8b8,	0x2ad00a7,
921      PIXMAN_a4r4g4b4,	0x23,
922      PIXMAN_a8r8g8b8,	0x21
923    },
924    { PIXMAN_OP_SATURATE,
925      PIXMAN_a8r8g8b8,	0x100ff00,
926      PIXMAN_r5g6b5,	0xb343,
927      PIXMAN_r3g3b2,	0xc
928    },
929    { PIXMAN_OP_SATURATE,
930      PIXMAN_a8r8g8b8,	0x3ffa500,
931      PIXMAN_a8r8g8b8,	0x1af5b4,
932      PIXMAN_a8r8g8b8,	0xff1abc00
933    },
934    { PIXMAN_OP_CONJOINT_OUT,
935      PIXMAN_a8r8g8b8,	0x2ffff11,
936      PIXMAN_a8r8g8b8,	0x9f334f,
937      PIXMAN_a8r8g8b8,	0x9f0005
938    },
939    { PIXMAN_OP_CONJOINT_IN,
940      PIXMAN_a8r8g8b8,	0x2c75971,
941      PIXMAN_a4r4g4b4,	0x3900,
942      PIXMAN_a4r4g4b4,	0x211
943    },
944    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
945      PIXMAN_a8r8g8b8,	0x100ff49,
946      PIXMAN_a8r8g8b8,	0x813dc25e,
947      PIXMAN_r5g6b5,	0x667d
948    },
949    { PIXMAN_OP_DISJOINT_IN,
950      PIXMAN_a8r8g8b8,	0x10000ff,
951      PIXMAN_a4r4g4b4,	0x4bff,
952      PIXMAN_a8r8g8b8,	0x0
953    },
954    { PIXMAN_OP_DISJOINT_XOR,
955      PIXMAN_a8r8g8b8,	0x20ebcff,
956      PIXMAN_r5g6b5,	0xc9ff,
957      PIXMAN_r3g3b2,	0x4
958    },
959    { PIXMAN_OP_DISJOINT_XOR,
960      PIXMAN_a8r8g8b8,	0x1ffff00,
961      PIXMAN_r5g6b5,	0x51ff,
962      PIXMAN_r3g3b2,	0x44
963    },
964    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
965      PIXMAN_a8r8g8b8,	0x1ffd158,
966      PIXMAN_a8r8g8b8,	0x7d88ffce,
967      PIXMAN_r3g3b2,	0x6c
968    },
969    { PIXMAN_OP_SATURATE,
970      PIXMAN_a8r8g8b8,	0x1425e21,
971      PIXMAN_a2r2g2b2,	0xa5,
972      PIXMAN_r5g6b5,	0xe1
973    },
974    { PIXMAN_OP_DISJOINT_OUT,
975      PIXMAN_a8r8g8b8,	0x14b00ff,
976      PIXMAN_a8r8g8b8,	0xbe95004b,
977      PIXMAN_r5g6b5,	0x9
978    },
979    { PIXMAN_OP_CONJOINT_OUT,
980      PIXMAN_a8r8g8b8,	0x14fc0cd,
981      PIXMAN_a8r8g8b8,	0x2d12b78b,
982      PIXMAN_a8r8g8b8,	0x0
983    },
984    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
985      PIXMAN_a8r8g8b8,	0x1ff8230,
986      PIXMAN_a2r2g2b2,	0x4c,
987      PIXMAN_r3g3b2,	0x44
988    },
989    { PIXMAN_OP_CONJOINT_ATOP,
990      PIXMAN_a8r8g8b8,	0x1ff31ff,
991      PIXMAN_a2r2g2b2,	0x14,
992      PIXMAN_a8r8g8b8,	0x551000
993    },
994    { PIXMAN_OP_CONJOINT_IN,
995      PIXMAN_a8r8g8b8,	0x17800ff,
996      PIXMAN_a4r4g4b4,	0x22,
997      PIXMAN_a8r8g8b8,	0x22
998    },
999    { PIXMAN_OP_SATURATE,
1000      PIXMAN_a8r8g8b8,	0x14500ff,
1001      PIXMAN_a4r4g4b4,	0x6400,
1002      PIXMAN_r5g6b5,	0xff78
1003    },
1004    { PIXMAN_OP_DISJOINT_IN,
1005      PIXMAN_a8r8g8b8,	0x100ff9d,
1006      PIXMAN_r3g3b2,	0xcd,
1007      PIXMAN_r3g3b2,	0x0
1008    },
1009    { PIXMAN_OP_CONJOINT_ATOP,
1010      PIXMAN_a8r8g8b8,	0x3ff00ff,
1011      PIXMAN_a4r4g4b4,	0xf269,
1012      PIXMAN_a4r4g4b4,	0x200
1013    },
1014    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1015      PIXMAN_a8r8g8b8,	0x2ff28b8,
1016      PIXMAN_a4r4g4b4,	0x33ff,
1017      PIXMAN_r5g6b5,	0x3000
1018    },
1019    { PIXMAN_OP_DISJOINT_OUT,
1020      PIXMAN_a8r8g8b8,	0x1006278,
1021      PIXMAN_a8r8g8b8,	0x8a7f18,
1022      PIXMAN_r3g3b2,	0x4
1023    },
1024    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1025      PIXMAN_a8r8g8b8,	0x1ffcb00,
1026      PIXMAN_a4r4g4b4,	0x7900,
1027      PIXMAN_a2r2g2b2,	0x14
1028    },
1029    { PIXMAN_OP_CONJOINT_OUT,
1030      PIXMAN_a8r8g8b8,	0x115ff00,
1031      PIXMAN_a8r8g8b8,	0x508d,
1032      PIXMAN_a4r4g4b4,	0x0
1033    },
1034    { PIXMAN_OP_SATURATE,
1035      PIXMAN_a8r8g8b8,	0x3ff30b5,
1036      PIXMAN_r5g6b5,	0x2e60,
1037      PIXMAN_r3g3b2,	0x20
1038    },
1039    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1040      PIXMAN_a8r8g8b8,	0x182fffb,
1041      PIXMAN_r3g3b2,	0x1,
1042      PIXMAN_a8r8g8b8,	0x1000054
1043    },
1044    { PIXMAN_OP_CONJOINT_ATOP,
1045      PIXMAN_a8r8g8b8,	0x16fff00,
1046      PIXMAN_r5g6b5,	0x7bc0,
1047      PIXMAN_a8r8g8b8,	0x367900
1048    },
1049    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1050      PIXMAN_a8r8g8b8,	0x1d95dd8,
1051      PIXMAN_a4r4g4b4,	0xfff5,
1052      PIXMAN_r5g6b5,	0xff09
1053    },
1054    { PIXMAN_OP_DISJOINT_IN,
1055      PIXMAN_a8r8g8b8,	0x1ff3cdc,
1056      PIXMAN_a8r8g8b8,	0x3bda45ff,
1057      PIXMAN_r3g3b2,	0x0
1058    },
1059    { PIXMAN_OP_DISJOINT_ATOP,
1060      PIXMAN_a8r8g8b8,	0x13900f8,
1061      PIXMAN_a8r8g8b8,	0x7e00ffff,
1062      PIXMAN_a4r4g4b4,	0xff00
1063    },
1064    { PIXMAN_OP_DISJOINT_XOR,
1065      PIXMAN_a8r8g8b8,	0x10ea9ff,
1066      PIXMAN_a8r8g8b8,	0xff34ff22,
1067      PIXMAN_r5g6b5,	0xff52
1068    },
1069    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1070      PIXMAN_a8r8g8b8,	0x2002e99,
1071      PIXMAN_a4r4g4b4,	0x3000,
1072      PIXMAN_r5g6b5,	0x43
1073    },
1074    { PIXMAN_OP_DISJOINT_ATOP,
1075      PIXMAN_a8r8g8b8,	0x100ffff,
1076      PIXMAN_r5g6b5,	0x19ff,
1077      PIXMAN_r3g3b2,	0x3
1078    },
1079    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1080      PIXMAN_a8r8g8b8,	0x1ffff00,
1081      PIXMAN_a8r8g8b8,	0xffff4251,
1082      PIXMAN_a2r2g2b2,	0x4
1083    },
1084    { PIXMAN_OP_CONJOINT_ATOP,
1085      PIXMAN_a8r8g8b8,	0x121c9ff,
1086      PIXMAN_a4r4g4b4,	0xd2,
1087      PIXMAN_a4r4g4b4,	0x2
1088    },
1089    { PIXMAN_OP_CONJOINT_IN,
1090      PIXMAN_a8r8g8b8,	0x100ff4d,
1091      PIXMAN_a2r2g2b2,	0x5e,
1092      PIXMAN_a2r2g2b2,	0x4
1093    },
1094    { PIXMAN_OP_DISJOINT_OUT,
1095      PIXMAN_a8r8g8b8,	0x29ab4ff,
1096      PIXMAN_r3g3b2,	0x47,
1097      PIXMAN_a8r8g8b8,	0x1900
1098    },
1099    { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1100      PIXMAN_a8r8g8b8,	0x1ffc1ac,
1101      PIXMAN_a8r8g8b8,	0xee4ed0ac,
1102      PIXMAN_a8r8g8b8,	0x1009d74
1103    },
1104    { PIXMAN_OP_CONJOINT_IN_REVERSE,
1105      PIXMAN_a8r8g8b8,	0x269dffdc,
1106      PIXMAN_a8r8g8b8,	0xff0b00e0,
1107      PIXMAN_a8r8g8b8,	0x2a200ff
1108    },
1109    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1110      PIXMAN_a8r8g8b8,	0x2ffffff,
1111      PIXMAN_a4r4g4b4,	0x3200,
1112      PIXMAN_r3g3b2,	0x24
1113    },
1114    { PIXMAN_OP_DISJOINT_OUT,
1115      PIXMAN_a8r8g8b8,	0x100ffed,
1116      PIXMAN_a8r8g8b8,	0x67004eff,
1117      PIXMAN_a2r2g2b2,	0x5
1118    },
1119    { PIXMAN_OP_DISJOINT_XOR,
1120      PIXMAN_a8r8g8b8,	0x2fffd6a,
1121      PIXMAN_a8r8g8b8,	0xc9003bff,
1122      PIXMAN_r3g3b2,	0x4
1123    },
1124    { PIXMAN_OP_DISJOINT_XOR,
1125      PIXMAN_a8r8g8b8,	0x253ff00,
1126      PIXMAN_r5g6b5,	0xff,
1127      PIXMAN_r5g6b5,	0xe0
1128    },
1129    { PIXMAN_OP_DISJOINT_OUT,
1130      PIXMAN_a8r8g8b8,	0x13600ad,
1131      PIXMAN_r5g6b5,	0x35ae,
1132      PIXMAN_r3g3b2,	0x1
1133    },
1134    { PIXMAN_OP_DISJOINT_IN,
1135      PIXMAN_a8r8g8b8,	0x1ffa8ff,
1136      PIXMAN_a8r8g8b8,	0xff5f00,
1137      PIXMAN_r3g3b2,	0xe0
1138    },
1139    { PIXMAN_OP_DISJOINT_OUT,
1140      PIXMAN_a8r8g8b8,	0x10067ff,
1141      PIXMAN_a4r4g4b4,	0x450d,
1142      PIXMAN_a2r2g2b2,	0x1
1143    },
1144    { PIXMAN_OP_SATURATE,
1145      PIXMAN_a8r8g8b8,	0x1ff01ff,
1146      PIXMAN_r3g3b2,	0x77,
1147      PIXMAN_r5g6b5,	0x6800
1148    },
1149    { PIXMAN_OP_CONJOINT_ATOP,
1150      PIXMAN_a8r8g8b8,	0x11da4ff,
1151      PIXMAN_r5g6b5,	0x83c9,
1152      PIXMAN_a4r4g4b4,	0x44
1153    },
1154    { PIXMAN_OP_DISJOINT_OUT,
1155      PIXMAN_a8r8g8b8,	0x1ffd4ff,
1156      PIXMAN_r3g3b2,	0xaa,
1157      PIXMAN_r3g3b2,	0x4
1158    },
1159    { PIXMAN_OP_CONJOINT_IN,
1160      PIXMAN_a8r8g8b8,	0x1ff0000,
1161      PIXMAN_a8r8g8b8,	0x71002a,
1162      PIXMAN_a4r4g4b4,	0x700
1163    },
1164    { PIXMAN_OP_DISJOINT_OUT,
1165      PIXMAN_a8r8g8b8,	0x1d7ffff,
1166      PIXMAN_r5g6b5,	0x3696,
1167      PIXMAN_a4r4g4b4,	0x200
1168    },
1169    { PIXMAN_OP_CONJOINT_IN,
1170      PIXMAN_a8r8g8b8,	0x1ffffc8,
1171      PIXMAN_r5g6b5,	0xe900,
1172      PIXMAN_a8r8g8b8,	0x2000
1173    },
1174    { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1175      PIXMAN_a8r8g8b8,	0x1ff004a,
1176      PIXMAN_r3g3b2,	0x48,
1177      PIXMAN_a8r8g8b8,	0x1000000
1178    },
1179    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1180      PIXMAN_a8r8g8b8,	0x3ffe969,
1181      PIXMAN_r5g6b5,	0xff,
1182      PIXMAN_r5g6b5,	0xc0
1183    },
1184    { PIXMAN_OP_CONJOINT_XOR,
1185      PIXMAN_a8r8g8b8,	0x300ff73,
1186      PIXMAN_r5g6b5,	0xff,
1187      PIXMAN_a8r8g8b8,	0x3000073
1188    },
1189    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1190      PIXMAN_a8r8g8b8,	0x2ff93ff,
1191      PIXMAN_a8r8g8b8,	0x61fc7d2b,
1192      PIXMAN_a4r4g4b4,	0x2
1193    },
1194    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1195      PIXMAN_a8r8g8b8,	0x11bffff,
1196      PIXMAN_a4r4g4b4,	0xffb4,
1197      PIXMAN_r5g6b5,	0x8
1198    },
1199    { PIXMAN_OP_CONJOINT_IN,
1200      PIXMAN_a8r8g8b8,	0x1e9e100,
1201      PIXMAN_a2r2g2b2,	0x56,
1202      PIXMAN_a2r2g2b2,	0x14
1203    },
1204    { PIXMAN_OP_SATURATE,
1205      PIXMAN_a8r8g8b8,	0x3ffb656,
1206      PIXMAN_r3g3b2,	0x4,
1207      PIXMAN_a4r4g4b4,	0xff99
1208    },
1209    { PIXMAN_OP_DISJOINT_IN,
1210      PIXMAN_a8r8g8b8,	0x100ff00,
1211      PIXMAN_r3g3b2,	0x68,
1212      PIXMAN_r3g3b2,	0x0
1213    },
1214    { PIXMAN_OP_SATURATE,
1215      PIXMAN_a8r8g8b8,	0x1006dff,
1216      PIXMAN_a2r2g2b2,	0x5d,
1217      PIXMAN_a8r8g8b8,	0xff00ff55
1218    },
1219    { PIXMAN_OP_CONJOINT_IN,
1220      PIXMAN_a8r8g8b8,	0x11c00cb,
1221      PIXMAN_a2r2g2b2,	0x44,
1222      PIXMAN_a4r4g4b4,	0x4
1223    },
1224    { PIXMAN_OP_CONJOINT_ATOP,
1225      PIXMAN_a8r8g8b8,	0x1d0ff86,
1226      PIXMAN_r3g3b2,	0x5c,
1227      PIXMAN_a8r8g8b8,	0x3c0000
1228    },
1229    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1230      PIXMAN_a8r8g8b8,	0x2f25fff,
1231      PIXMAN_r3g3b2,	0x36,
1232      PIXMAN_a8r8g8b8,	0x2a444aa
1233    },
1234    { PIXMAN_OP_DISJOINT_ATOP,
1235      PIXMAN_a8r8g8b8,	0x134af85,
1236      PIXMAN_r3g3b2,	0x29,
1237      PIXMAN_r5g6b5,	0xf300
1238    },
1239    { PIXMAN_OP_CONJOINT_ATOP,
1240      PIXMAN_a8r8g8b8,	0x13398af,
1241      PIXMAN_r3g3b2,	0xa5,
1242      PIXMAN_a4r4g4b4,	0x13
1243    },
1244    { PIXMAN_OP_DISJOINT_OUT,
1245      PIXMAN_a8r8g8b8,	0x1ff57ff,
1246      PIXMAN_a4r4g4b4,	0x252c,
1247      PIXMAN_r3g3b2,	0x40
1248    },
1249    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1250      PIXMAN_a8r8g8b8,	0x115ffff,
1251      PIXMAN_r5g6b5,	0xffe3,
1252      PIXMAN_r5g6b5,	0x3303
1253    },
1254    { PIXMAN_OP_DISJOINT_OUT,
1255      PIXMAN_a8r8g8b8,	0x1ffff00,
1256      PIXMAN_r5g6b5,	0x6300,
1257      PIXMAN_r3g3b2,	0x6c
1258    },
1259    { PIXMAN_OP_CONJOINT_XOR,
1260      PIXMAN_a8r8g8b8,	0x4ccff9c,
1261      PIXMAN_r5g6b5,	0xcc,
1262      PIXMAN_a8r8g8b8,	0x400003d
1263    },
1264    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1265      PIXMAN_a8r8g8b8,	0x1ffc6dd,
1266      PIXMAN_r5g6b5,	0x9bff,
1267      PIXMAN_r5g6b5,	0x5bff
1268    },
1269    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1270      PIXMAN_a8r8g8b8,	0x14fff95,
1271      PIXMAN_r3g3b2,	0x46,
1272      PIXMAN_a8r8g8b8,	0x1000063
1273    },
1274    { PIXMAN_OP_DISJOINT_OUT,
1275      PIXMAN_a8r8g8b8,	0x1e6b700,
1276      PIXMAN_r5g6b5,	0xc1ff,
1277      PIXMAN_r3g3b2,	0x4
1278    },
1279    { PIXMAN_OP_DISJOINT_OUT,
1280      PIXMAN_a8r8g8b8,	0x1ffff54,
1281      PIXMAN_a8r8g8b8,	0x2e00ff,
1282      PIXMAN_r5g6b5,	0x2800
1283    },
1284    { PIXMAN_OP_DISJOINT_OUT,
1285      PIXMAN_a8r8g8b8,	0x3ffffff,
1286      PIXMAN_r5g6b5,	0xff,
1287      PIXMAN_r5g6b5,	0xe0
1288    },
1289    { PIXMAN_OP_DISJOINT_ATOP,
1290      PIXMAN_a8r8g8b8,	0x1003550,
1291      PIXMAN_r5g6b5,	0xffcc,
1292      PIXMAN_r5g6b5,	0x1e0
1293    },
1294    { PIXMAN_OP_DISJOINT_XOR,
1295      PIXMAN_a8r8g8b8,	0x1ffff74,
1296      PIXMAN_r3g3b2,	0x28,
1297      PIXMAN_a8r8g8b8,	0xfe2f49d7
1298    },
1299    { PIXMAN_OP_DISJOINT_XOR,
1300      PIXMAN_a8r8g8b8,	0x1e35100,
1301      PIXMAN_r3g3b2,	0x57,
1302      PIXMAN_r5g6b5,	0x4000
1303    },
1304    { PIXMAN_OP_DISJOINT_IN,
1305      PIXMAN_a8r8g8b8,	0x268ffa3,
1306      PIXMAN_a4r4g4b4,	0x30,
1307      PIXMAN_a4r4g4b4,	0x0
1308    },
1309    { PIXMAN_OP_DISJOINT_ATOP,
1310      PIXMAN_a8r8g8b8,	0x35700f8,
1311      PIXMAN_r5g6b5,	0xa4,
1312      PIXMAN_r5g6b5,	0x0
1313    },
1314    { PIXMAN_OP_CONJOINT_ATOP,
1315      PIXMAN_a8r8g8b8,	0x3ce1dff,
1316      PIXMAN_r5g6b5,	0x2a5e,
1317      PIXMAN_a8r8g8b8,	0x210000
1318    },
1319    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1320      PIXMAN_a8r8g8b8,	0x494a7ff,
1321      PIXMAN_a8r8g8b8,	0x1bffe400,
1322      PIXMAN_a8r8g8b8,	0x0
1323    },
1324    { PIXMAN_OP_SATURATE,
1325      PIXMAN_a8r8g8b8,	0x10026d9,
1326      PIXMAN_a8r8g8b8,	0xec00621f,
1327      PIXMAN_r5g6b5,	0x63
1328    },
1329    { PIXMAN_OP_CONJOINT_IN,
1330      PIXMAN_a8r8g8b8,	0x100ff99,
1331      PIXMAN_a8r8g8b8,	0xf334ff,
1332      PIXMAN_a4r4g4b4,	0x30
1333    },
1334    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1335      PIXMAN_a8r8g8b8,	0x2ffc200,
1336      PIXMAN_a8r8g8b8,	0x1e0000ff,
1337      PIXMAN_a8r8g8b8,	0x1e1700
1338    },
1339    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1340      PIXMAN_a8r8g8b8,	0x1ff00ff,
1341      PIXMAN_r3g3b2,	0x4b,
1342      PIXMAN_r5g6b5,	0x4818
1343    },
1344    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1345      PIXMAN_a8r8g8b8,	0x2e800ff,
1346      PIXMAN_a4r4g4b4,	0xd3,
1347      PIXMAN_a4r4g4b4,	0xec
1348    },
1349    { PIXMAN_OP_DISJOINT_IN,
1350      PIXMAN_a8r8g8b8,	0x19a001f,
1351      PIXMAN_r3g3b2,	0x76,
1352      PIXMAN_r3g3b2,	0x0
1353    },
1354    { PIXMAN_OP_DISJOINT_OUT,
1355      PIXMAN_a8r8g8b8,	0x1cb00c3,
1356      PIXMAN_a4r4g4b4,	0x5cff,
1357      PIXMAN_r5g6b5,	0x4008
1358    },
1359    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1360      PIXMAN_a8r8g8b8,	0x1ff0000,
1361      PIXMAN_r3g3b2,	0x2a,
1362      PIXMAN_r5g6b5,	0xc5fb
1363    },
1364    { PIXMAN_OP_DISJOINT_ATOP,
1365      PIXMAN_a8r8g8b8,	0x1ffffff,
1366      PIXMAN_a8r8g8b8,	0xea005a88,
1367      PIXMAN_r3g3b2,	0xb3
1368    },
1369    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1370      PIXMAN_a8r8g8b8,	0x100ffea,
1371      PIXMAN_a4r4g4b4,	0x54eb,
1372      PIXMAN_a8r8g8b8,	0x0
1373    },
1374    { PIXMAN_OP_DISJOINT_OUT,
1375      PIXMAN_a8r8g8b8,	0x179ffff,
1376      PIXMAN_r3g3b2,	0xa4,
1377      PIXMAN_a8r8g8b8,	0x2400
1378    },
1379    { PIXMAN_OP_DISJOINT_XOR,
1380      PIXMAN_a8r8g8b8,	0x17ad226,
1381      PIXMAN_r3g3b2,	0xa4,
1382      PIXMAN_r5g6b5,	0xe0
1383    },
1384    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1385      PIXMAN_a8r8g8b8,	0x100ff01,
1386      PIXMAN_a2r2g2b2,	0x25,
1387      PIXMAN_a4r4g4b4,	0x50
1388    },
1389    { PIXMAN_OP_DISJOINT_IN,
1390      PIXMAN_a8r8g8b8,	0x20000ff,
1391      PIXMAN_a8r8g8b8,	0x2b00c127,
1392      PIXMAN_r5g6b5,	0x0
1393    },
1394    { PIXMAN_OP_SATURATE,
1395      PIXMAN_a8r8g8b8,	0x200ff96,
1396      PIXMAN_a4r4g4b4,	0x2300,
1397      PIXMAN_r3g3b2,	0x6
1398    },
1399    { PIXMAN_OP_DISJOINT_XOR,
1400      PIXMAN_a8r8g8b8,	0x200ffff,
1401      PIXMAN_r3g3b2,	0x87,
1402      PIXMAN_r5g6b5,	0x5bc8
1403    },
1404    { PIXMAN_OP_CONJOINT_XOR,
1405      PIXMAN_a8r8g8b8,	0x1fffff2,
1406      PIXMAN_r3g3b2,	0x7e,
1407      PIXMAN_a2r2g2b2,	0xe
1408    },
1409    { PIXMAN_OP_SATURATE,
1410      PIXMAN_a8r8g8b8,	0x1ff8b00,
1411      PIXMAN_a4r4g4b4,	0xd500,
1412      PIXMAN_r3g3b2,	0x40
1413    },
1414    { PIXMAN_OP_CONJOINT_XOR,
1415      PIXMAN_a8r8g8b8,	0x1ffffff,
1416      PIXMAN_a8r8g8b8,	0x1bff38,
1417      PIXMAN_a4r4g4b4,	0xf0
1418    },
1419    { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1420      PIXMAN_a8r8g8b8,	0x158ff39,
1421      PIXMAN_a4r4g4b4,	0x75dd,
1422      PIXMAN_a8r8g8b8,	0xdd31
1423    },
1424    { PIXMAN_OP_DISJOINT_XOR,
1425      PIXMAN_a8r8g8b8,	0x1009b70,
1426      PIXMAN_a4r4g4b4,	0xff40,
1427      PIXMAN_r3g3b2,	0x4
1428    },
1429    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1430      PIXMAN_a8r8g8b8,	0x12fb43f,
1431      PIXMAN_a4r4g4b4,	0x69ff,
1432      PIXMAN_a2r2g2b2,	0x4
1433    },
1434    { PIXMAN_OP_DISJOINT_IN,
1435      PIXMAN_a8r8g8b8,	0x1ffff95,
1436      PIXMAN_a2r2g2b2,	0x84,
1437      PIXMAN_r5g6b5,	0x0
1438    },
1439    { PIXMAN_OP_DISJOINT_OUT,
1440      PIXMAN_a8r8g8b8,	0x200d188,
1441      PIXMAN_r5g6b5,	0xde6,
1442      PIXMAN_r5g6b5,	0x3
1443    },
1444    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1445      PIXMAN_a8r8g8b8,	0x2c70000,
1446      PIXMAN_r5g6b5,	0x24fa,
1447      PIXMAN_a8r8g8b8,	0x21a0000
1448    },
1449    { PIXMAN_OP_CONJOINT_OUT,
1450      PIXMAN_a8r8g8b8,	0x100ff24,
1451      PIXMAN_a4r4g4b4,	0x835,
1452      PIXMAN_a4r4g4b4,	0x0
1453    },
1454    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1455      PIXMAN_a8r8g8b8,	0x10000cd,
1456      PIXMAN_a2r2g2b2,	0x7f,
1457      PIXMAN_a2r2g2b2,	0x1
1458    },
1459    { PIXMAN_OP_SATURATE,
1460      PIXMAN_a8r8g8b8,	0x379ffff,
1461      PIXMAN_a8r8g8b8,	0x23ffff00,
1462      PIXMAN_r5g6b5,	0x4eda
1463    },
1464    { PIXMAN_OP_SATURATE,
1465      PIXMAN_a8r8g8b8,	0x172e3ff,
1466      PIXMAN_r3g3b2,	0xa6,
1467      PIXMAN_r5g6b5,	0x100
1468    },
1469    { PIXMAN_OP_DISJOINT_IN,
1470      PIXMAN_a8r8g8b8,	0x100f5ad,
1471      PIXMAN_a4r4g4b4,	0x7908,
1472      PIXMAN_a2r2g2b2,	0x0
1473    },
1474    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1475      PIXMAN_a8r8g8b8,	0x100fff9,
1476      PIXMAN_a2r2g2b2,	0xf1,
1477      PIXMAN_r3g3b2,	0x1
1478    },
1479    { PIXMAN_OP_CONJOINT_XOR,
1480      PIXMAN_a8r8g8b8,	0x1abff00,
1481      PIXMAN_r5g6b5,	0x31ff,
1482      PIXMAN_a8r8g8b8,	0x1000000
1483    },
1484    { PIXMAN_OP_DISJOINT_XOR,
1485      PIXMAN_a8r8g8b8,	0x112ffd1,
1486      PIXMAN_r3g3b2,	0x9,
1487      PIXMAN_a2r2g2b2,	0xdd
1488    },
1489    { PIXMAN_OP_CONJOINT_IN,
1490      PIXMAN_a8r8g8b8,	0x100ffbf,
1491      PIXMAN_r3g3b2,	0x2c,
1492      PIXMAN_a4r4g4b4,	0x60
1493    },
1494    { PIXMAN_OP_DISJOINT_OUT,
1495      PIXMAN_a8r8g8b8,	0x1ffb7ff,
1496      PIXMAN_r3g3b2,	0x6b,
1497      PIXMAN_a4r4g4b4,	0x630
1498    },
1499    { PIXMAN_OP_SATURATE,
1500      PIXMAN_a8r8g8b8,	0x20005ff,
1501      PIXMAN_a4r4g4b4,	0x8462,
1502      PIXMAN_r5g6b5,	0xb1e8
1503    },
1504    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1505      PIXMAN_a8r8g8b8,	0x1ff5b00,
1506      PIXMAN_r5g6b5,	0x70ff,
1507      PIXMAN_r3g3b2,	0x60
1508    },
1509    { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1510      PIXMAN_a8r8g8b8,	0x2ffffc3,
1511      PIXMAN_r3g3b2,	0x39,
1512      PIXMAN_a8r8g8b8,	0x200db41
1513    },
1514    { PIXMAN_OP_CONJOINT_OUT,
1515      PIXMAN_a8r8g8b8,	0x306ffff,
1516      PIXMAN_a8r8g8b8,	0xdcffff1f,
1517      PIXMAN_a8r8g8b8,	0x306ff00
1518    },
1519    { PIXMAN_OP_DISJOINT_IN,
1520      PIXMAN_a8r8g8b8,	0x193daff,
1521      PIXMAN_a8r8g8b8,	0x69000000,
1522      PIXMAN_r3g3b2,	0x0
1523    },
1524    { PIXMAN_OP_SATURATE,
1525      PIXMAN_a8r8g8b8,	0x2a200ff,
1526      PIXMAN_a8r8g8b8,	0x183aff00,
1527      PIXMAN_r5g6b5,	0x2000
1528    },
1529    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1530      PIXMAN_a8r8g8b8,	0x100f1a5,
1531      PIXMAN_a8r8g8b8,	0xb5fc21ff,
1532      PIXMAN_r5g6b5,	0xfe00
1533    },
1534    { PIXMAN_OP_SATURATE,
1535      PIXMAN_a8r8g8b8,	0x1630019,
1536      PIXMAN_a8r8g8b8,	0x6affc400,
1537      PIXMAN_r5g6b5,	0x56ff
1538    },
1539    { PIXMAN_OP_DISJOINT_OUT,
1540      PIXMAN_a8r8g8b8,	0x1ff8bc2,
1541      PIXMAN_r3g3b2,	0xee,
1542      PIXMAN_r5g6b5,	0x1c0
1543    },
1544    { PIXMAN_OP_SATURATE,
1545      PIXMAN_a8r8g8b8,	0x260ffff,
1546      PIXMAN_a4r4g4b4,	0x3f00,
1547      PIXMAN_r3g3b2,	0x4
1548    },
1549    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1550      PIXMAN_a8r8g8b8,	0x169ffed,
1551      PIXMAN_a8r8g8b8,	0xffffff3f,
1552      PIXMAN_a8r8g8b8,	0x169ff00
1553    },
1554    { PIXMAN_OP_CONJOINT_XOR,
1555      PIXMAN_a8r8g8b8,	0x154c181,
1556      PIXMAN_a4r4g4b4,	0x5100,
1557      PIXMAN_a4r4g4b4,	0x0
1558    },
1559    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1560      PIXMAN_a8r8g8b8,	0x1e09c00,
1561      PIXMAN_r5g6b5,	0xca00,
1562      PIXMAN_a4r4g4b4,	0xb00
1563    },
1564    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1565      PIXMAN_a8r8g8b8,	0x2ff8dff,
1566      PIXMAN_a8r8g8b8,	0x610038ff,
1567      PIXMAN_a8r8g8b8,	0x1001f02
1568    },
1569    { PIXMAN_OP_SATURATE,
1570      PIXMAN_a8r8g8b8,	0x1e400ff,
1571      PIXMAN_a4r4g4b4,	0x66bd,
1572      PIXMAN_r3g3b2,	0x68
1573    },
1574    { PIXMAN_OP_CONJOINT_IN,
1575      PIXMAN_a8r8g8b8,	0x25362ff,
1576      PIXMAN_a4r4g4b4,	0x31ff,
1577      PIXMAN_a8r8g8b8,	0x111433
1578    },
1579    { PIXMAN_OP_CONJOINT_OUT,
1580      PIXMAN_a8r8g8b8,	0x3ad0039,
1581      PIXMAN_r3g3b2,	0x26,
1582      PIXMAN_a8r8g8b8,	0x3000026
1583    },
1584    { PIXMAN_OP_DISJOINT_OUT,
1585      PIXMAN_a8r8g8b8,	0x2e442ef,
1586      PIXMAN_r3g3b2,	0x32,
1587      PIXMAN_r3g3b2,	0x20
1588    },
1589    { PIXMAN_OP_SATURATE,
1590      PIXMAN_a8r8g8b8,	0x1720000,
1591      PIXMAN_a8r8g8b8,	0x55fdea00,
1592      PIXMAN_r3g3b2,	0x20
1593    },
1594    { PIXMAN_OP_DISJOINT_IN,
1595      PIXMAN_a8r8g8b8,	0x14bb0d7,
1596      PIXMAN_a8r8g8b8,	0x7fffff47,
1597      PIXMAN_a2r2g2b2,	0x0
1598    },
1599    { PIXMAN_OP_DISJOINT_IN,
1600      PIXMAN_a8r8g8b8,	0x13dffff,
1601      PIXMAN_a8r8g8b8,	0xa3860672,
1602      PIXMAN_r3g3b2,	0x20
1603    },
1604    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1605      PIXMAN_a8r8g8b8,	0x120495a,
1606      PIXMAN_a4r4g4b4,	0x407e,
1607      PIXMAN_a8r8g8b8,	0x54
1608    },
1609    { PIXMAN_OP_DISJOINT_OUT,
1610      PIXMAN_a8r8g8b8,	0x1ff8fff,
1611      PIXMAN_a2r2g2b2,	0x29,
1612      PIXMAN_r5g6b5,	0xa
1613    },
1614    { PIXMAN_OP_DISJOINT_IN,
1615      PIXMAN_a8r8g8b8,	0x100a31a,
1616      PIXMAN_a4r4g4b4,	0xde4c,
1617      PIXMAN_a4r4g4b4,	0x1
1618    },
1619    { PIXMAN_OP_CONJOINT_OUT,
1620      PIXMAN_a8r8g8b8,	0x1d4008c,
1621      PIXMAN_r3g3b2,	0x79,
1622      PIXMAN_a8r8g8b8,	0x1000000
1623    },
1624    { PIXMAN_OP_DISJOINT_IN,
1625      PIXMAN_a8r8g8b8,	0x1ff0000,
1626      PIXMAN_a4r4g4b4,	0x7de4,
1627      PIXMAN_r5g6b5,	0x0
1628    },
1629    { PIXMAN_OP_DISJOINT_ATOP,
1630      PIXMAN_a8r8g8b8,	0x1b27e62,
1631      PIXMAN_a4r4g4b4,	0x7941,
1632      PIXMAN_r3g3b2,	0x0
1633    },
1634    { PIXMAN_OP_DISJOINT_OUT,
1635      PIXMAN_a8r8g8b8,	0x300ff00,
1636      PIXMAN_a8r8g8b8,	0xfcff255e,
1637      PIXMAN_r3g3b2,	0x4
1638    },
1639    { PIXMAN_OP_DISJOINT_OUT,
1640      PIXMAN_a8r8g8b8,	0x2ff00b8,
1641      PIXMAN_a8r8g8b8,	0x19ff718d,
1642      PIXMAN_r5g6b5,	0x1802
1643    },
1644    { PIXMAN_OP_DISJOINT_OUT,
1645      PIXMAN_a8r8g8b8,	0x235ff13,
1646      PIXMAN_a8r8g8b8,	0x34bcd9ff,
1647      PIXMAN_r3g3b2,	0x4
1648    },
1649    { PIXMAN_OP_DISJOINT_OUT,
1650      PIXMAN_a8r8g8b8,	0x1006400,
1651      PIXMAN_a4r4g4b4,	0x7000,
1652      PIXMAN_a4r4g4b4,	0x20
1653    },
1654    { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1655      PIXMAN_a8r8g8b8,	0x1ff8bff,
1656      PIXMAN_a4r4g4b4,	0xfff4,
1657      PIXMAN_a4r4g4b4,	0xf80
1658    },
1659    { PIXMAN_OP_DISJOINT_OUT,
1660      PIXMAN_a8r8g8b8,	0x24630ff,
1661      PIXMAN_a8r8g8b8,	0x1f00000b,
1662      PIXMAN_a8r8g8b8,	0x9061f
1663    },
1664    { PIXMAN_OP_DISJOINT_OUT,
1665      PIXMAN_a8r8g8b8,	0x1ff8a00,
1666      PIXMAN_a8r8g8b8,	0x79ffab00,
1667      PIXMAN_r5g6b5,	0x7a00
1668    },
1669    { PIXMAN_OP_DISJOINT_ATOP,
1670      PIXMAN_a8r8g8b8,	0x19807ff,
1671      PIXMAN_a4r4g4b4,	0x6794,
1672      PIXMAN_a8r8g8b8,	0xff002e00
1673    },
1674    { PIXMAN_OP_CONJOINT_OUT,
1675      PIXMAN_a8r8g8b8,	0x10000da,
1676      PIXMAN_a4r4g4b4,	0xf864,
1677      PIXMAN_a8r8g8b8,	0x1000000
1678    },
1679    { PIXMAN_OP_DISJOINT_IN,
1680      PIXMAN_a8r8g8b8,	0x1ffffde,
1681      PIXMAN_a2r2g2b2,	0x94,
1682      PIXMAN_a8r8g8b8,	0x1000000
1683    },
1684    { PIXMAN_OP_CONJOINT_ATOP,
1685      PIXMAN_a8r8g8b8,	0x200c800,
1686      PIXMAN_r5g6b5,	0xe9d4,
1687      PIXMAN_a8r8g8b8,	0x2c00
1688    },
1689    { PIXMAN_OP_DISJOINT_OUT,
1690      PIXMAN_a8r8g8b8,	0x1ff00c9,
1691      PIXMAN_r3g3b2,	0x4c,
1692      PIXMAN_r5g6b5,	0x4800
1693    },
1694    { PIXMAN_OP_DISJOINT_OUT,
1695      PIXMAN_a8r8g8b8,	0x122d5ff,
1696      PIXMAN_r5g6b5,	0x418b,
1697      PIXMAN_a4r4g4b4,	0x25
1698    },
1699    { PIXMAN_OP_DISJOINT_IN,
1700      PIXMAN_a8r8g8b8,	0x1ffff55,
1701      PIXMAN_a2r2g2b2,	0x1c,
1702      PIXMAN_a8r8g8b8,	0xff00
1703    },
1704    { PIXMAN_OP_DISJOINT_ATOP,
1705      PIXMAN_a8r8g8b8,	0x135ffff,
1706      PIXMAN_r5g6b5,	0x39c4,
1707      PIXMAN_r5g6b5,	0xb7
1708    },
1709    { PIXMAN_OP_DISJOINT_OUT,
1710      PIXMAN_a8r8g8b8,	0x100d2c3,
1711      PIXMAN_r3g3b2,	0x2a,
1712      PIXMAN_a8r8g8b8,	0x3c00
1713    },
1714    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1715      PIXMAN_a8r8g8b8,	0x17268ff,
1716      PIXMAN_a8r8g8b8,	0x7c00ffff,
1717      PIXMAN_r5g6b5,	0x318f
1718    },
1719    { PIXMAN_OP_DISJOINT_ATOP,
1720      PIXMAN_a8r8g8b8,	0x1ff00ff,
1721      PIXMAN_r3g3b2,	0x68,
1722      PIXMAN_r3g3b2,	0xb4
1723    },
1724    { PIXMAN_OP_CONJOINT_OUT,
1725      PIXMAN_a8r8g8b8,	0x200ffff,
1726      PIXMAN_r5g6b5,	0xff86,
1727      PIXMAN_a8r8g8b8,	0x200f300
1728    },
1729    { PIXMAN_OP_CONJOINT_ATOP,
1730      PIXMAN_a8r8g8b8,	0x18a23ff,
1731      PIXMAN_a2r2g2b2,	0x44,
1732      PIXMAN_a4r4g4b4,	0x205
1733    },
1734    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1735      PIXMAN_a8r8g8b8,	0x16bff23,
1736      PIXMAN_a8r8g8b8,	0x31fd00ff,
1737      PIXMAN_r3g3b2,	0x7
1738    },
1739    { PIXMAN_OP_DISJOINT_IN,
1740      PIXMAN_a8r8g8b8,	0x137d1ff,
1741      PIXMAN_a4r4g4b4,	0x56c1,
1742      PIXMAN_r5g6b5,	0x0
1743    },
1744    { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1745      PIXMAN_a8r8g8b8,	0x1ff5bff,
1746      PIXMAN_a4r4g4b4,	0xfff4,
1747      PIXMAN_a4r4g4b4,	0xf50
1748    },
1749    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1750      PIXMAN_a8r8g8b8,	0x15c6b00,
1751      PIXMAN_a8r8g8b8,	0x7d008a,
1752      PIXMAN_a4r4g4b4,	0x200
1753    },
1754    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1755      PIXMAN_a8r8g8b8,	0x12091ff,
1756      PIXMAN_a8r8g8b8,	0xb74cff6b,
1757      PIXMAN_a2r2g2b2,	0x8
1758    },
1759    { PIXMAN_OP_CONJOINT_ATOP,
1760      PIXMAN_a8r8g8b8,	0x1ff5bff,
1761      PIXMAN_a8r8g8b8,	0xff6ddce8,
1762      PIXMAN_a2r2g2b2,	0x10
1763    },
1764    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1765      PIXMAN_a8r8g8b8,	0x100ffff,
1766      PIXMAN_a4r4g4b4,	0xffb7,
1767      PIXMAN_a4r4g4b4,	0xb0
1768    },
1769    { PIXMAN_OP_CONJOINT_IN,
1770      PIXMAN_a8r8g8b8,	0x173ffff,
1771      PIXMAN_r5g6b5,	0xff2c,
1772      PIXMAN_a4r4g4b4,	0x6
1773    },
1774    { PIXMAN_OP_CONJOINT_IN,
1775      PIXMAN_a8r8g8b8,	0x17102ff,
1776      PIXMAN_a8r8g8b8,	0x955bff66,
1777      PIXMAN_a8r8g8b8,	0x280066
1778    },
1779    { PIXMAN_OP_DISJOINT_XOR,
1780      PIXMAN_a8r8g8b8,	0x3c7ff24,
1781      PIXMAN_r5g6b5,	0xc4,
1782      PIXMAN_r5g6b5,	0x163
1783    },
1784    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1785      PIXMAN_a8r8g8b8,	0x100c2a6,
1786      PIXMAN_r5g6b5,	0xa9b9,
1787      PIXMAN_a4r4g4b4,	0x8
1788    },
1789    { PIXMAN_OP_DISJOINT_XOR,
1790      PIXMAN_a8r8g8b8,	0x26049ff,
1791      PIXMAN_a4r4g4b4,	0xb2,
1792      PIXMAN_r5g6b5,	0x8904
1793    },
1794    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1795      PIXMAN_a8r8g8b8,	0x2f100ff,
1796      PIXMAN_r3g3b2,	0x30,
1797      PIXMAN_a8r8g8b8,	0x2220100
1798    },
1799    { PIXMAN_OP_DISJOINT_XOR,
1800      PIXMAN_a8r8g8b8,	0x1ffff88,
1801      PIXMAN_r3g3b2,	0x7e,
1802      PIXMAN_r3g3b2,	0x60
1803    },
1804    { PIXMAN_OP_DISJOINT_IN,
1805      PIXMAN_a8r8g8b8,	0x153ffab,
1806      PIXMAN_a8r8g8b8,	0xfd10725a,
1807      PIXMAN_r3g3b2,	0x0
1808    },
1809    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1810      PIXMAN_a8r8g8b8,	0x1ff00d2,
1811      PIXMAN_r5g6b5,	0xff6b,
1812      PIXMAN_a8r8g8b8,	0x101014a
1813    },
1814    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1815      PIXMAN_a8r8g8b8,	0x100d965,
1816      PIXMAN_a8r8g8b8,	0xff007b00,
1817      PIXMAN_r3g3b2,	0xc
1818    },
1819    { PIXMAN_OP_DISJOINT_OUT,
1820      PIXMAN_a8r8g8b8,	0x1ec0000,
1821      PIXMAN_r5g6b5,	0x6fff,
1822      PIXMAN_r5g6b5,	0x6000
1823    },
1824    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1825      PIXMAN_a8r8g8b8,	0x19d59a2,
1826      PIXMAN_a8r8g8b8,	0x4a00ff7a,
1827      PIXMAN_a8r8g8b8,	0x2e1a2f
1828    },
1829    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1830      PIXMAN_a8r8g8b8,	0x1eb0000,
1831      PIXMAN_a4r4g4b4,	0x72bc,
1832      PIXMAN_r5g6b5,	0x1800
1833    },
1834    { PIXMAN_OP_DISJOINT_IN,
1835      PIXMAN_a8r8g8b8,	0x100ffff,
1836      PIXMAN_a4r4g4b4,	0xc034,
1837      PIXMAN_a4r4g4b4,	0x0
1838    },
1839    { PIXMAN_OP_SATURATE,
1840      PIXMAN_a8r8g8b8,	0x195ff15,
1841      PIXMAN_a4r4g4b4,	0xb7b1,
1842      PIXMAN_r5g6b5,	0x4000
1843    },
1844    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1845      PIXMAN_a8r8g8b8,	0x1ffdf94,
1846      PIXMAN_a4r4g4b4,	0x78,
1847      PIXMAN_r3g3b2,	0xc
1848    },
1849    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1850      PIXMAN_a8r8g8b8,	0x26f00ff,
1851      PIXMAN_a4r4g4b4,	0xff93,
1852      PIXMAN_r5g6b5,	0x1dd2
1853    },
1854    { PIXMAN_OP_CONJOINT_IN,
1855      PIXMAN_a8r8g8b8,	0x2ff3fc5,
1856      PIXMAN_r3g3b2,	0x2f,
1857      PIXMAN_a8r8g8b8,	0x240000
1858    },
1859    { PIXMAN_OP_DISJOINT_IN,
1860      PIXMAN_a8r8g8b8,	0x1ff696e,
1861      PIXMAN_a4r4g4b4,	0x22ff,
1862      PIXMAN_r5g6b5,	0x34d
1863    },
1864    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1865      PIXMAN_a8r8g8b8,	0x10033d9,
1866      PIXMAN_a8r8g8b8,	0x38650000,
1867      PIXMAN_a8r8g8b8,	0x0
1868    },
1869    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1870      PIXMAN_a8r8g8b8,	0x2ffff00,
1871      PIXMAN_a4r4g4b4,	0x2070,
1872      PIXMAN_r5g6b5,	0x2100
1873    },
1874    { PIXMAN_OP_DISJOINT_XOR,
1875      PIXMAN_a8r8g8b8,	0x1008746,
1876      PIXMAN_a8r8g8b8,	0xb56971,
1877      PIXMAN_r5g6b5,	0xc25c
1878    },
1879    { PIXMAN_OP_DISJOINT_OUT,
1880      PIXMAN_a8r8g8b8,	0x144d200,
1881      PIXMAN_a4r4g4b4,	0xff42,
1882      PIXMAN_r3g3b2,	0x4
1883    },
1884    { PIXMAN_OP_DISJOINT_XOR,
1885      PIXMAN_a8r8g8b8,	0x1ffffd0,
1886      PIXMAN_r5g6b5,	0x5b00,
1887      PIXMAN_r3g3b2,	0x4c
1888    },
1889    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1890      PIXMAN_a8r8g8b8,	0x10000ff,
1891      PIXMAN_a8r8g8b8,	0xff006f,
1892      PIXMAN_r5g6b5,	0xd
1893    },
1894    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1895      PIXMAN_a8r8g8b8,	0x10666ff,
1896      PIXMAN_a4r4g4b4,	0x39b2,
1897      PIXMAN_r5g6b5,	0xa6
1898    },
1899    { PIXMAN_OP_CONJOINT_OUT,
1900      PIXMAN_a8r8g8b8,	0x11a007d,
1901      PIXMAN_r3g3b2,	0xf9,
1902      PIXMAN_a8r8g8b8,	0x11a0000
1903    },
1904    { PIXMAN_OP_CONJOINT_ATOP,
1905      PIXMAN_a8r8g8b8,	0x1eb90ee,
1906      PIXMAN_r5g6b5,	0xd,
1907      PIXMAN_a2r2g2b2,	0x1
1908    },
1909    { PIXMAN_OP_DISJOINT_OUT,
1910      PIXMAN_a8r8g8b8,	0x1ff42d5,
1911      PIXMAN_a4r4g4b4,	0x3400,
1912      PIXMAN_r3g3b2,	0x40
1913    },
1914    { PIXMAN_OP_DISJOINT_IN,
1915      PIXMAN_a8r8g8b8,	0x1dfff00,
1916      PIXMAN_a8r8g8b8,	0x3ffff9d2,
1917      PIXMAN_r5g6b5,	0x0
1918    },
1919    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1920      PIXMAN_a8r8g8b8,	0x1ff6500,
1921      PIXMAN_a2r2g2b2,	0x56,
1922      PIXMAN_r3g3b2,	0x44
1923    },
1924    { PIXMAN_OP_DISJOINT_ATOP,
1925      PIXMAN_a8r8g8b8,	0x119ffe6,
1926      PIXMAN_r3g3b2,	0x8d,
1927      PIXMAN_a4r4g4b4,	0xff00
1928    },
1929    { PIXMAN_OP_DISJOINT_IN,
1930      PIXMAN_a8r8g8b8,	0x100cd00,
1931      PIXMAN_r5g6b5,	0x33ff,
1932      PIXMAN_a4r4g4b4,	0x0
1933    },
1934    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1935      PIXMAN_a8r8g8b8,	0x569ffd7,
1936      PIXMAN_r5g6b5,	0x8cc,
1937      PIXMAN_r5g6b5,	0xc0
1938    },
1939    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1940      PIXMAN_a8r8g8b8,	0x100876a,
1941      PIXMAN_a8r8g8b8,	0x575447a5,
1942      PIXMAN_r5g6b5,	0x164
1943    },
1944    { PIXMAN_OP_CONJOINT_OUT,
1945      PIXMAN_a8r8g8b8,	0x12d00ff,
1946      PIXMAN_a4r4g4b4,	0x3fff,
1947      PIXMAN_a4r4g4b4,	0x0
1948    },
1949    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1950      PIXMAN_a8r8g8b8,	0x2ff953b,
1951      PIXMAN_a4r4g4b4,	0x2914,
1952      PIXMAN_r5g6b5,	0x20a1
1953    },
1954    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1955      PIXMAN_a8r8g8b8,	0x1ffead4,
1956      PIXMAN_a8r8g8b8,	0xff00ea4e,
1957      PIXMAN_r3g3b2,	0x5a
1958    },
1959    { PIXMAN_OP_DISJOINT_ATOP,
1960      PIXMAN_a8r8g8b8,	0x1ff6400,
1961      PIXMAN_a2r2g2b2,	0x99,
1962      PIXMAN_r5g6b5,	0xa620
1963    },
1964    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1965      PIXMAN_a8r8g8b8,	0x17b0084,
1966      PIXMAN_r3g3b2,	0xbd,
1967      PIXMAN_a4r4g4b4,	0x500
1968    },
1969    { PIXMAN_OP_DISJOINT_XOR,
1970      PIXMAN_a8r8g8b8,	0x4f90bbb,
1971      PIXMAN_a8r8g8b8,	0xff00d21f,
1972      PIXMAN_a8r8g8b8,	0xfb00fc4a
1973    },
1974    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1975      PIXMAN_a8r8g8b8,	0x1ffbb1d,
1976      PIXMAN_a8r8g8b8,	0x2dff79ff,
1977      PIXMAN_r5g6b5,	0x2c0
1978    },
1979    { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1980      PIXMAN_a8r8g8b8,	0x100ffff,
1981      PIXMAN_a2r2g2b2,	0x43,
1982      PIXMAN_a4r4g4b4,	0x6f
1983    },
1984    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1985      PIXMAN_a8r8g8b8,	0x1f000ff,
1986      PIXMAN_a4r4g4b4,	0xb393,
1987      PIXMAN_r3g3b2,	0x20
1988    },
1989    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1990      PIXMAN_a8r8g8b8,	0x1c60020,
1991      PIXMAN_a8r8g8b8,	0x6bffffff,
1992      PIXMAN_a8r8g8b8,	0x0
1993    },
1994    { PIXMAN_OP_CONJOINT_OUT,
1995      PIXMAN_a8r8g8b8,	0x1727d00,
1996      PIXMAN_a2r2g2b2,	0x67,
1997      PIXMAN_a4r4g4b4,	0x400
1998    },
1999    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2000      PIXMAN_a8r8g8b8,	0x14a5194,
2001      PIXMAN_a4r4g4b4,	0xd7ff,
2002      PIXMAN_r5g6b5,	0x2000
2003    },
2004    { PIXMAN_OP_DISJOINT_ATOP,
2005      PIXMAN_a8r8g8b8,	0x20003fa,
2006      PIXMAN_a4r4g4b4,	0x24ff,
2007      PIXMAN_a8r8g8b8,	0xffff1550
2008    },
2009    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2010      PIXMAN_a8r8g8b8,	0x1a6ff83,
2011      PIXMAN_a4r4g4b4,	0xf400,
2012      PIXMAN_r5g6b5,	0x2800
2013    },
2014    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2015      PIXMAN_a8r8g8b8,	0x2ffcf00,
2016      PIXMAN_r5g6b5,	0x71ff,
2017      PIXMAN_a4r4g4b4,	0x30
2018    },
2019    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2020      PIXMAN_a8r8g8b8,	0x333ffff,
2021      PIXMAN_a4r4g4b4,	0x2c00,
2022      PIXMAN_r3g3b2,	0x4
2023    },
2024    { PIXMAN_OP_DISJOINT_XOR,
2025      PIXMAN_a8r8g8b8,	0x1c2ffe8,
2026      PIXMAN_r5g6b5,	0xc200,
2027      PIXMAN_a8r8g8b8,	0xfeca41ff
2028    },
2029    { PIXMAN_OP_CONJOINT_ATOP,
2030      PIXMAN_a2r2g2b2,	0x47,
2031      PIXMAN_a8r8g8b8,	0x2ffff00,
2032      PIXMAN_a8r8g8b8,	0x3aa0102
2033    },
2034    { PIXMAN_OP_DISJOINT_OUT,
2035      PIXMAN_a8r8g8b8,	0x1ffeb00,
2036      PIXMAN_a4r4g4b4,	0xb493,
2037      PIXMAN_a4r4g4b4,	0x400
2038    },
2039    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2040      PIXMAN_a8r8g8b8,	0x2afffff,
2041      PIXMAN_r5g6b5,	0xcb,
2042      PIXMAN_r5g6b5,	0xc0
2043    },
2044    { PIXMAN_OP_SATURATE,
2045      PIXMAN_a8r8g8b8,	0x183ff00,
2046      PIXMAN_r3g3b2,	0x87,
2047      PIXMAN_r5g6b5,	0xae91
2048    },
2049    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2050      PIXMAN_a8r8g8b8,	0x3ffff00,
2051      PIXMAN_a4r4g4b4,	0x2ba4,
2052      PIXMAN_r5g6b5,	0x2100
2053    },
2054    { PIXMAN_OP_CONJOINT_OUT,
2055      PIXMAN_a8r8g8b8,	0x215cbc2,
2056      PIXMAN_a4r4g4b4,	0xafd3,
2057      PIXMAN_a8r8g8b8,	0x115b000
2058    },
2059    { PIXMAN_OP_SATURATE,
2060      PIXMAN_a8r8g8b8,	0x1853f65,
2061      PIXMAN_a8r8g8b8,	0xc68cdc41,
2062      PIXMAN_r5g6b5,	0x3
2063    },
2064    { PIXMAN_OP_CONJOINT_IN,
2065      PIXMAN_a8r8g8b8,	0x3ffff8f,
2066      PIXMAN_a4r4g4b4,	0x8824,
2067      PIXMAN_a4r4g4b4,	0x20
2068    },
2069    { PIXMAN_OP_DISJOINT_OUT,
2070      PIXMAN_a8r8g8b8,	0x28e08e6,
2071      PIXMAN_a8r8g8b8,	0x2cffff31,
2072      PIXMAN_r5g6b5,	0x1805
2073    },
2074    { PIXMAN_OP_DISJOINT_IN,
2075      PIXMAN_a8r8g8b8,	0x1b500be,
2076      PIXMAN_r5g6b5,	0xd946,
2077      PIXMAN_r5g6b5,	0x9800
2078    },
2079    { PIXMAN_OP_DISJOINT_OUT,
2080      PIXMAN_a8r8g8b8,	0x133ffb3,
2081      PIXMAN_a2r2g2b2,	0x42,
2082      PIXMAN_a8r8g8b8,	0x11553c
2083    },
2084    { PIXMAN_OP_DISJOINT_XOR,
2085      PIXMAN_a8r8g8b8,	0x21aff81,
2086      PIXMAN_r3g3b2,	0xc7,
2087      PIXMAN_r5g6b5,	0x120
2088    },
2089    { PIXMAN_OP_CONJOINT_ATOP,
2090      PIXMAN_a8r8g8b8,	0x12e004f,
2091      PIXMAN_a4r4g4b4,	0xf617,
2092      PIXMAN_a4r4g4b4,	0x102
2093    },
2094    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2095      PIXMAN_a8r8g8b8,	0x164861f,
2096      PIXMAN_r3g3b2,	0x4e,
2097      PIXMAN_r5g6b5,	0x19c0
2098    },
2099    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
2100      PIXMAN_a8r8g8b8,	0x1ff0eff,
2101      PIXMAN_a8r8g8b8,	0xff5c00aa,
2102      PIXMAN_r5g6b5,	0x5800
2103    },
2104    { PIXMAN_OP_DISJOINT_XOR,
2105      PIXMAN_a8r8g8b8,	0x1e4c60f,
2106      PIXMAN_a8r8g8b8,	0x38ff0e0c,
2107      PIXMAN_a4r4g4b4,	0xff2a
2108    },
2109    { PIXMAN_OP_DISJOINT_OVER_REVERSE,
2110      PIXMAN_a8r8g8b8,	0x1ff0000,
2111      PIXMAN_a8r8g8b8,	0x9f3d6700,
2112      PIXMAN_r5g6b5,	0xf3ff
2113    },
2114    { PIXMAN_OP_DISJOINT_IN,
2115      PIXMAN_a8r8g8b8,	0x205ffd0,
2116      PIXMAN_a8r8g8b8,	0xffc22b3b,
2117      PIXMAN_a8r8g8b8,	0x2040000
2118    },
2119    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2120      PIXMAN_a8r8g8b8,	0x1ff0059,
2121      PIXMAN_r5g6b5,	0x74ff,
2122      PIXMAN_a8r8g8b8,	0x1730101
2123    },
2124    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
2125      PIXMAN_a8r8g8b8,	0x29affb8,
2126      PIXMAN_r5g6b5,	0xff,
2127      PIXMAN_a8r8g8b8,	0x2d25cff
2128    },
2129    { PIXMAN_OP_DISJOINT_OUT,
2130      PIXMAN_a8r8g8b8,	0x1ffff8b,
2131      PIXMAN_a4r4g4b4,	0xff7b,
2132      PIXMAN_r5g6b5,	0x3a0
2133    },
2134    { PIXMAN_OP_DISJOINT_IN,
2135      PIXMAN_a8r8g8b8,	0x2a86ad7,
2136      PIXMAN_a4r4g4b4,	0xdc22,
2137      PIXMAN_a8r8g8b8,	0x2860000
2138    },
2139    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2140      PIXMAN_a8r8g8b8,	0x3ff00ff,
2141      PIXMAN_r3g3b2,	0x33,
2142      PIXMAN_r5g6b5,	0x2000
2143    },
2144    { PIXMAN_OP_SATURATE,
2145      PIXMAN_a8r8g8b8,	0x1e50063,
2146      PIXMAN_a8r8g8b8,	0x35ff95d7,
2147      PIXMAN_r3g3b2,	0x20
2148    },
2149    { PIXMAN_OP_DISJOINT_IN,
2150      PIXMAN_a8r8g8b8,	0x2ffe6ff,
2151      PIXMAN_a8r8g8b8,	0x153ef297,
2152      PIXMAN_r5g6b5,	0x6d2
2153    },
2154    { PIXMAN_OP_DISJOINT_IN,
2155      PIXMAN_a8r8g8b8,	0x34ffeff,
2156      PIXMAN_a4r4g4b4,	0x2e,
2157      PIXMAN_r5g6b5,	0x1d
2158    },
2159    { PIXMAN_OP_DISJOINT_XOR,
2160      PIXMAN_a8r8g8b8,	0x2ffeada,
2161      PIXMAN_r5g6b5,	0xabc6,
2162      PIXMAN_a8r8g8b8,	0xfd15b256
2163    },
2164    { PIXMAN_OP_CONJOINT_ATOP,
2165      PIXMAN_a8r8g8b8,	0x100ff00,
2166      PIXMAN_a8r8g8b8,	0xcff3f32,
2167      PIXMAN_a8r8g8b8,	0x3f00
2168    },
2169    { PIXMAN_OP_SATURATE,
2170      PIXMAN_a8r8g8b8,	0x1e1b0f1,
2171      PIXMAN_a8r8g8b8,	0xff63ff54,
2172      PIXMAN_r3g3b2,	0x5d
2173    },
2174    { PIXMAN_OP_DISJOINT_XOR,
2175      PIXMAN_a8r8g8b8,	0x2ffff23,
2176      PIXMAN_a8r8g8b8,	0x380094ff,
2177      PIXMAN_r5g6b5,	0x3a4b
2178    },
2179    { PIXMAN_OP_CONJOINT_ATOP,
2180      PIXMAN_a4r4g4b4,	0x1000,
2181      PIXMAN_r5g6b5,	0xca,
2182      PIXMAN_a8r8g8b8,	0x3434500
2183    },
2184    { PIXMAN_OP_DISJOINT_IN,
2185      PIXMAN_a8r8g8b8,	0x195ffe5,
2186      PIXMAN_a4r4g4b4,	0x3a29,
2187      PIXMAN_a8r8g8b8,	0x0
2188    },
2189    { PIXMAN_OP_DISJOINT_ATOP,
2190      PIXMAN_a8r8g8b8,	0x139007a,
2191      PIXMAN_a4r4g4b4,	0x4979,
2192      PIXMAN_r5g6b5,	0x84
2193    },
2194    { PIXMAN_OP_SOFT_LIGHT,
2195      PIXMAN_a2r2g2b2,	0xa9,
2196      PIXMAN_a4r4g4b4,	0xfa18,
2197      PIXMAN_a8r8g8b8,	0xabff67ff
2198    },
2199    { PIXMAN_OP_SOFT_LIGHT,
2200      PIXMAN_a2r2g2b2,	0x94,
2201      PIXMAN_a4r4g4b4,	0x5109,
2202      PIXMAN_a8r8g8b8,	0x3affffff
2203    },
2204    { PIXMAN_OP_COLOR_BURN,
2205      PIXMAN_r5g6b5,	0xd038,
2206      PIXMAN_r5g6b5,	0xff00,
2207      PIXMAN_r5g6b5,	0xf9a5
2208    },
2209    { PIXMAN_OP_SOFT_LIGHT,
2210      PIXMAN_a8r8g8b8,	0x543128ff,
2211      PIXMAN_a8r8g8b8,	0x7029ff,
2212      PIXMAN_a8r8g8b8,	0x316b1d7
2213    },
2214    { PIXMAN_OP_SOFT_LIGHT,
2215      PIXMAN_r5g6b5,	0x53ff,
2216      PIXMAN_r5g6b5,	0x72ff,
2217      PIXMAN_a8r8g8b8,	0xffffdeff
2218    },
2219    { PIXMAN_OP_SOFT_LIGHT,
2220      PIXMAN_a8r8g8b8,	0x5b00002b,
2221      PIXMAN_a4r4g4b4,	0xc3,
2222      PIXMAN_a8r8g8b8,	0x23530be
2223    },
2224    { PIXMAN_OP_SOFT_LIGHT,
2225      PIXMAN_a8r8g8b8,	0xcefc0041,
2226      PIXMAN_a8r8g8b8,	0xf60d02,
2227      PIXMAN_a8r8g8b8,	0x1f2ffe5
2228    },
2229    { PIXMAN_OP_COLOR_DODGE,
2230      PIXMAN_r5g6b5,	0xffdb,
2231      PIXMAN_r5g6b5,	0xc700,
2232      PIXMAN_r5g6b5,	0x654
2233    },
2234    { PIXMAN_OP_COLOR_DODGE,
2235      PIXMAN_r5g6b5,	0xffc6,
2236      PIXMAN_r5g6b5,	0xff09,
2237      PIXMAN_r5g6b5,	0xfe58
2238    },
2239    { PIXMAN_OP_SOFT_LIGHT,
2240      PIXMAN_a2r2g2b2,	0x95,
2241      PIXMAN_r5g6b5,	0x1b4a,
2242      PIXMAN_a8r8g8b8,	0xab234cff
2243    },
2244    { PIXMAN_OP_SOFT_LIGHT,
2245      PIXMAN_a2r2g2b2,	0x95,
2246      PIXMAN_a4r4g4b4,	0x5e99,
2247      PIXMAN_a8r8g8b8,	0x3b1c1cdd
2248    },
2249    { PIXMAN_OP_COLOR_BURN,
2250      PIXMAN_r5g6b5,	0x22,
2251      PIXMAN_r5g6b5,	0xd00,
2252      PIXMAN_r5g6b5,	0xfbb1
2253    },
2254    { PIXMAN_OP_COLOR_DODGE,
2255      PIXMAN_r5g6b5,	0xffc8,
2256      PIXMAN_a8r8g8b8,	0xa1a3ffff,
2257      PIXMAN_r5g6b5,	0x44a
2258    },
2259    { PIXMAN_OP_SOFT_LIGHT,
2260      PIXMAN_a8r8g8b8,	0xffff7cff,
2261      PIXMAN_r5g6b5,	0x900,
2262      PIXMAN_a8r8g8b8,	0xffff94ec
2263    },
2264    { PIXMAN_OP_SOFT_LIGHT,
2265      PIXMAN_a2r2g2b2,	0xa7,
2266      PIXMAN_r5g6b5,	0xff,
2267      PIXMAN_a8r8g8b8,	0xaa00cffe
2268    },
2269    { PIXMAN_OP_SOFT_LIGHT,
2270      PIXMAN_a2r2g2b2,	0x85,
2271      PIXMAN_r5g6b5,	0xffb3,
2272      PIXMAN_a8r8g8b8,	0xaaffff4a
2273    },
2274    { PIXMAN_OP_SOFT_LIGHT,
2275      PIXMAN_a8r8g8b8,	0x3500a118,
2276      PIXMAN_a4r4g4b4,	0x9942,
2277      PIXMAN_a8r8g8b8,	0x01ff405e
2278    },
2279    { PIXMAN_OP_SOFT_LIGHT,
2280      PIXMAN_a2r2g2b2,	0xb5,
2281      PIXMAN_x4a4,	0xe,
2282      PIXMAN_a8r8g8b8,	0xffbaff
2283    },
2284    { PIXMAN_OP_SOFT_LIGHT,
2285      PIXMAN_a4r4g4b4,	0xe872,
2286      PIXMAN_x2r10g10b10, 0xa648ff00,
2287      PIXMAN_a2r10g10b10, 0x14ff00e8,
2288    },
2289    { PIXMAN_OP_SATURATE,
2290      PIXMAN_a8r8g8b8,	0x4d2db34,
2291      PIXMAN_a8,	0x19,
2292      PIXMAN_r5g6b5,	0x9700,
2293    },
2294    { PIXMAN_OP_SATURATE,
2295      PIXMAN_a8r8g8b8,	0x2ff0076,
2296      PIXMAN_a8r8g8b8,	0x2a0000,
2297      PIXMAN_r3g3b2,	0x0,
2298    },
2299    { PIXMAN_OP_CONJOINT_OVER_REVERSE,
2300      PIXMAN_a8r8g8b8,	0x14f00ff,
2301      PIXMAN_r5g6b5,	0xd48,
2302      PIXMAN_a4r4g4b4,	0x0,
2303    },
2304    { PIXMAN_OP_CONJOINT_OUT,
2305      PIXMAN_a8r8g8b8,	0x3d8bbff,
2306      PIXMAN_r5g6b5,	0x6900,
2307      PIXMAN_a8r8g8b8,	0x0,
2308    },
2309    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2310      PIXMAN_a8r8g8b8,	0x2ff00ff,
2311      PIXMAN_a4r4g4b4,	0x2300,
2312      PIXMAN_r3g3b2,	0x0,
2313    },
2314    { PIXMAN_OP_SATURATE,
2315      PIXMAN_a8r8g8b8,	0x4d2db34,
2316      PIXMAN_a8r8g8b8,	0xff0019ff,
2317      PIXMAN_r5g6b5,	0x9700,
2318    },
2319    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2320      PIXMAN_a8r8g8b8,	0x100ac05,
2321      PIXMAN_r3g3b2,	0xef,
2322      PIXMAN_a2r2g2b2,	0xff,
2323    },
2324    { PIXMAN_OP_EXCLUSION,
2325      PIXMAN_a2r2g2b2,	0xbf,
2326      PIXMAN_null,	0x00,
2327      PIXMAN_r5g6b5,	0x7e
2328    },
2329    { PIXMAN_OP_DIFFERENCE,
2330      PIXMAN_r5g6b5,	0xffff,
2331      PIXMAN_null,	0x00,
2332      PIXMAN_a2r2g2b2,	0x33
2333    },
2334    { PIXMAN_OP_HARD_LIGHT,
2335      PIXMAN_a8r8g8b8,	0x84c4ffd7,
2336      PIXMAN_null,	0x00,
2337      PIXMAN_a8r8g8b8,	0xffddff
2338    },
2339    { PIXMAN_OP_EXCLUSION,
2340      PIXMAN_a8r8g8b8,	0xff6e56,
2341      PIXMAN_null,	0x00,
2342      PIXMAN_a8r8g8b8,	0x20ff1ade
2343    },
2344    { PIXMAN_OP_OVERLAY,
2345      PIXMAN_a4r4g4b4,	0xfe0,
2346      PIXMAN_null,	0x00,
2347      PIXMAN_a4r4g4b4,	0xbdff
2348    },
2349    { PIXMAN_OP_SCREEN,
2350      PIXMAN_a8r8g8b8,	0x9671ff,
2351      PIXMAN_null,	0x00,
2352      PIXMAN_a2r2g2b2,	0x43
2353    },
2354    { PIXMAN_OP_EXCLUSION,
2355      PIXMAN_a2r2g2b2,	0xff,
2356      PIXMAN_null,	0x00,
2357      PIXMAN_a4r4g4b4,	0x39ff
2358    },
2359    { PIXMAN_OP_EXCLUSION,
2360      PIXMAN_r5g6b5,	0xffff,
2361      PIXMAN_null,	0x00,
2362      PIXMAN_a4r4g4b4,	0x1968
2363    },
2364    { PIXMAN_OP_EXCLUSION,
2365      PIXMAN_a4r4g4b4,	0x4247,
2366      PIXMAN_null,	0x00,
2367      PIXMAN_a8r8g8b8,	0xd8ffff
2368    },
2369    { PIXMAN_OP_EXCLUSION,
2370      PIXMAN_r5g6b5,	0xff00,
2371      PIXMAN_null,	0x00,
2372      PIXMAN_a2r2g2b2,	0x79
2373    },
2374    { PIXMAN_OP_DIFFERENCE,
2375      PIXMAN_r3g3b2,	0xe0,
2376      PIXMAN_null,	0x00,
2377      PIXMAN_a2r2g2b2,	0x39
2378    },
2379    { PIXMAN_OP_EXCLUSION,
2380      PIXMAN_a8r8g8b8,	0xfff8,
2381      PIXMAN_null,	0x00,
2382      PIXMAN_r3g3b2,	0xff
2383    },
2384    { PIXMAN_OP_COLOR_DODGE,
2385      PIXMAN_r5g6b5,	0x75fc,
2386      PIXMAN_null,	0x00,
2387      PIXMAN_r5g6b5,	0x11ff,
2388    },
2389    { PIXMAN_OP_COLOR_BURN,
2390      PIXMAN_r3g3b2,	0x52,
2391      PIXMAN_null,	0x00,
2392      PIXMAN_r5g6b5,	0xc627
2393    },
2394    { PIXMAN_OP_HARD_LIGHT,
2395      PIXMAN_r5g6b5,	0x9f2b,
2396      PIXMAN_null,	0x00,
2397      PIXMAN_a8r8g8b8,	0x4b00e7f5
2398    },
2399    { PIXMAN_OP_OVERLAY,
2400      PIXMAN_a8r8g8b8,	0x00dfff5c,
2401      PIXMAN_null,	0x00,
2402      PIXMAN_r5g6b5,	0x5e0f,
2403    },
2404    { PIXMAN_OP_COLOR_BURN,
2405      PIXMAN_a8r8g8b8,	0xff00121b,
2406      PIXMAN_null,	0x00,
2407      PIXMAN_r5g6b5,	0x3776
2408    },
2409    { PIXMAN_OP_SOFT_LIGHT,
2410      PIXMAN_r5g6b5,	0x03e0,
2411      PIXMAN_null,	0x00,
2412      PIXMAN_a8r8g8b8,	0x01003c00,
2413    },
2414    { PIXMAN_OP_OVER,
2415      PIXMAN_a8r8g8b8,	0x0f00c300,
2416      PIXMAN_null,	0x00,
2417      PIXMAN_x14r6g6b6,	0x003c0,
2418    },
2419    { PIXMAN_OP_DISJOINT_XOR,
2420      PIXMAN_a4r4g4b4,	0xd0c0,
2421      PIXMAN_null,	0x00,
2422      PIXMAN_a8r8g8b8,	0x5300ea00,
2423    },
2424    { PIXMAN_OP_OVER,
2425      PIXMAN_a8r8g8b8,	0x20c6bf00,
2426      PIXMAN_null,	0x00,
2427      PIXMAN_r5g6b5,	0xb9ff
2428    },
2429    { PIXMAN_OP_OVER,
2430      PIXMAN_a8r8g8b8,	0x204ac7ff,
2431      PIXMAN_null,	0x00,
2432      PIXMAN_r5g6b5,	0xc1ff
2433    },
2434    { PIXMAN_OP_OVER_REVERSE,
2435      PIXMAN_r5g6b5,	0xffc3,
2436      PIXMAN_null,	0x00,
2437      PIXMAN_a8r8g8b8,	0x102d00dd
2438    },
2439    { PIXMAN_OP_OVER_REVERSE,
2440      PIXMAN_r5g6b5,	0x1f00,
2441      PIXMAN_null,	0x00,
2442      PIXMAN_a8r8g8b8,	0x1bdf0c89
2443    },
2444    { PIXMAN_OP_OVER_REVERSE,
2445      PIXMAN_r5g6b5,	0xf9d2,
2446      PIXMAN_null,	0x00,
2447      PIXMAN_a8r8g8b8,	0x1076bcf7
2448    },
2449    { PIXMAN_OP_OVER_REVERSE,
2450      PIXMAN_r5g6b5,	0x00c3,
2451      PIXMAN_null,	0x00,
2452      PIXMAN_a8r8g8b8,	0x1bfe9ae5
2453    },
2454    { PIXMAN_OP_OVER_REVERSE,
2455      PIXMAN_r5g6b5,	0x09ff,
2456      PIXMAN_null,	0x00,
2457      PIXMAN_a8r8g8b8,	0x0b00c16c
2458    },
2459    { PIXMAN_OP_DISJOINT_ATOP,
2460      PIXMAN_a2r2g2b2,	0xbc,
2461      PIXMAN_null,	0x00,
2462      PIXMAN_a8r8g8b8,	0x9efff1ff
2463    },
2464    { PIXMAN_OP_DISJOINT_ATOP,
2465      PIXMAN_a4r4g4b4,	0xae5f,
2466      PIXMAN_null,	0x00,
2467      PIXMAN_a8r8g8b8,	0xf215b675
2468    },
2469    { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2470      PIXMAN_a8r8g8b8,	0xce007980,
2471      PIXMAN_null,	0x00,
2472      PIXMAN_a8r8g8b8,	0x80ffe4ad
2473    },
2474    { PIXMAN_OP_DISJOINT_XOR,
2475      PIXMAN_a8r8g8b8,	0xb8b07bea,
2476      PIXMAN_null,	0x00,
2477      PIXMAN_a4r4g4b4,	0x939c
2478    },
2479    { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
2480      PIXMAN_r5g6b5,	0x0063,
2481      PIXMAN_null,	0x00,
2482      PIXMAN_a8r8g8b8,	0x10bb1ed7,
2483    },
2484    { PIXMAN_OP_EXCLUSION,
2485      PIXMAN_a2r2g2b2,	0xbf,
2486      PIXMAN_null,	0x00,
2487      PIXMAN_r5g6b5,	0x7e
2488    },
2489    { PIXMAN_OP_LIGHTEN,
2490      PIXMAN_a8r8g8b8,	0xffffff,
2491      PIXMAN_null,	0x00,
2492      PIXMAN_a8r8g8b8,	0xff3fffff
2493    },
2494    { PIXMAN_OP_SOFT_LIGHT,
2495      PIXMAN_r3g3b2,	0x38,
2496      PIXMAN_null,	0x00,
2497      PIXMAN_a2r2g2b2,	0x5b
2498    },
2499    { PIXMAN_OP_COLOR_DODGE,
2500      PIXMAN_a8r8g8b8,	0x2e9effff,
2501      PIXMAN_null,	0x00,
2502      PIXMAN_a2r2g2b2,	0x77
2503    },
2504    { PIXMAN_OP_DIFFERENCE,
2505      PIXMAN_r5g6b5,	0xffff,
2506      PIXMAN_null,	0x00,
2507      PIXMAN_a2r2g2b2,	0x33
2508    },
2509    { PIXMAN_OP_OVERLAY,
2510      PIXMAN_a8r8g8b8,	0xd0089ff,
2511      PIXMAN_null,	0x00,
2512      PIXMAN_r3g3b2,	0xb1
2513    },
2514    { PIXMAN_OP_OVERLAY,
2515      PIXMAN_r3g3b2,	0x8a,
2516      PIXMAN_null,	0x00,
2517      PIXMAN_a8r8g8b8,	0xcd0004
2518    },
2519    { PIXMAN_OP_COLOR_BURN,
2520      PIXMAN_a8r8g8b8,	0xffff1e3a,
2521      PIXMAN_null,	0x00,
2522      PIXMAN_a4r4g4b4,	0xcf00
2523    },
2524    { PIXMAN_OP_HARD_LIGHT,
2525      PIXMAN_a8r8g8b8,	0x84c4ffd7,
2526      PIXMAN_null,	0x00,
2527      PIXMAN_a8r8g8b8,	0xffddff
2528    },
2529    { PIXMAN_OP_DIFFERENCE,
2530      PIXMAN_a4r4g4b4,	0xfd75,
2531      PIXMAN_null,	0x00,
2532      PIXMAN_a2r2g2b2,	0x7f
2533    },
2534    { PIXMAN_OP_LIGHTEN,
2535      PIXMAN_r3g3b2,	0xff,
2536      PIXMAN_null,	0x00,
2537      PIXMAN_a4r4g4b4,	0x63ff
2538    },
2539    { PIXMAN_OP_EXCLUSION,
2540      PIXMAN_a8r8g8b8,	0xff6e56,
2541      PIXMAN_null,	0x00,
2542      PIXMAN_a8r8g8b8,	0x20ff1ade
2543    },
2544    { PIXMAN_OP_OVERLAY,
2545      PIXMAN_a4r4g4b4,	0xfe0,
2546      PIXMAN_null,	0x00,
2547      PIXMAN_a4r4g4b4,	0xbdff
2548    },
2549    { PIXMAN_OP_OVERLAY,
2550      PIXMAN_r5g6b5,	0x9799,
2551      PIXMAN_null,	0x00,
2552      PIXMAN_a4r4g4b4,	0x8d
2553    },
2554    { PIXMAN_OP_HARD_LIGHT,
2555      PIXMAN_a8r8g8b8,	0xe8ff1c33,
2556      PIXMAN_null,	0x00,
2557      PIXMAN_r5g6b5,	0x6200
2558    },
2559    { PIXMAN_OP_DIFFERENCE,
2560      PIXMAN_a8r8g8b8,	0x22ffffff,
2561      PIXMAN_null,	0x00,
2562      PIXMAN_a2r2g2b2,	0x63
2563    },
2564    { PIXMAN_OP_SCREEN,
2565      PIXMAN_a8r8g8b8,	0x9671ff,
2566      PIXMAN_null,	0x00,
2567      PIXMAN_a2r2g2b2,	0x43
2568    },
2569    { PIXMAN_OP_LIGHTEN,
2570      PIXMAN_a2r2g2b2,	0x83,
2571      PIXMAN_null,	0x00,
2572      PIXMAN_r5g6b5,	0xff
2573    },
2574    { PIXMAN_OP_OVERLAY,
2575      PIXMAN_r3g3b2,	0x0,
2576      PIXMAN_null,	0x00,
2577      PIXMAN_a2r2g2b2,	0x97
2578    },
2579    { PIXMAN_OP_SOFT_LIGHT,
2580      PIXMAN_r5g6b5,	0xb900,
2581      PIXMAN_null,	0x00,
2582      PIXMAN_a8r8g8b8,	0x6800ff00
2583    },
2584    { PIXMAN_OP_OVERLAY,
2585      PIXMAN_a4r4g4b4,	0xff,
2586      PIXMAN_null,	0x00,
2587      PIXMAN_r3g3b2,	0x8e
2588    },
2589    { PIXMAN_OP_SOFT_LIGHT,
2590      PIXMAN_a4r4g4b4,	0xff00,
2591      PIXMAN_null,	0x00,
2592      PIXMAN_a2r2g2b2,	0xbc
2593    },
2594    { PIXMAN_OP_DIFFERENCE,
2595      PIXMAN_r5g6b5,	0xfffe,
2596      PIXMAN_null,	0x00,
2597      PIXMAN_a4r4g4b4,	0x90
2598    },
2599    { PIXMAN_OP_LIGHTEN,
2600      PIXMAN_r3g3b2,	0xff,
2601      PIXMAN_null,	0x00,
2602      PIXMAN_a8r8g8b8,	0xc35f
2603    },
2604    { PIXMAN_OP_EXCLUSION,
2605      PIXMAN_a2r2g2b2,	0xff,
2606      PIXMAN_null,	0x00,
2607      PIXMAN_a4r4g4b4,	0x39ff
2608    },
2609    { PIXMAN_OP_LIGHTEN,
2610      PIXMAN_a2r2g2b2,	0x1e,
2611      PIXMAN_null,	0x00,
2612      PIXMAN_a4r4g4b4,	0xbaff
2613    },
2614    { PIXMAN_OP_LIGHTEN,
2615      PIXMAN_a8r8g8b8,	0xb4ffff26,
2616      PIXMAN_null,	0x00,
2617      PIXMAN_r5g6b5,	0xff
2618    },
2619    { PIXMAN_OP_COLOR_DODGE,
2620      PIXMAN_a4r4g4b4,	0xe3ff,
2621      PIXMAN_null,	0x00,
2622      PIXMAN_a4r4g4b4,	0x878b
2623    },
2624    { PIXMAN_OP_OVERLAY,
2625      PIXMAN_a8r8g8b8,	0xff700044,
2626      PIXMAN_null,	0x00,
2627      PIXMAN_a2r2g2b2,	0x6
2628    },
2629    { PIXMAN_OP_DARKEN,
2630      PIXMAN_a2r2g2b2,	0xb6,
2631      PIXMAN_null,	0x00,
2632      PIXMAN_a4r4g4b4,	0xcd00
2633    },
2634    { PIXMAN_OP_HARD_LIGHT,
2635      PIXMAN_a2r2g2b2,	0xfe,
2636      PIXMAN_null,	0x00,
2637      PIXMAN_a2r2g2b2,	0x12
2638    },
2639    { PIXMAN_OP_LIGHTEN,
2640      PIXMAN_a8r8g8b8,	0xb1ff006c,
2641      PIXMAN_null,	0x00,
2642      PIXMAN_a4r4g4b4,	0xff7c
2643    },
2644    { PIXMAN_OP_HARD_LIGHT,
2645      PIXMAN_r3g3b2,	0x4e,
2646      PIXMAN_null,	0x00,
2647      PIXMAN_a2r2g2b2,	0x3c
2648    },
2649    { PIXMAN_OP_EXCLUSION,
2650      PIXMAN_r5g6b5,	0xffff,
2651      PIXMAN_null,	0x00,
2652      PIXMAN_a4r4g4b4,	0x1968
2653    },
2654    { PIXMAN_OP_COLOR_BURN,
2655      PIXMAN_r3g3b2,	0xe7,
2656      PIXMAN_null,	0x00,
2657      PIXMAN_a8r8g8b8,	0x8cced6ac
2658    },
2659    { PIXMAN_OP_SOFT_LIGHT,
2660      PIXMAN_a4r4g4b4,	0xa500,
2661      PIXMAN_null,	0x00,
2662      PIXMAN_a8r8g8b8,	0x1bff009d
2663    },
2664    { PIXMAN_OP_DIFFERENCE,
2665      PIXMAN_r5g6b5,	0x45ff,
2666      PIXMAN_null,	0x00,
2667      PIXMAN_a2r2g2b2,	0x32
2668    },
2669    { PIXMAN_OP_OVERLAY,
2670      PIXMAN_a2r2g2b2,	0x18,
2671      PIXMAN_null,	0x00,
2672      PIXMAN_r5g6b5,	0xdc00
2673    },
2674    { PIXMAN_OP_EXCLUSION,
2675      PIXMAN_a4r4g4b4,	0x4247,
2676      PIXMAN_null,	0x00,
2677      PIXMAN_a8r8g8b8,	0xd8ffff
2678    },
2679    { PIXMAN_OP_EXCLUSION,
2680      PIXMAN_r5g6b5,	0xff00,
2681      PIXMAN_null,	0x00,
2682      PIXMAN_a2r2g2b2,	0x79
2683    },
2684    { PIXMAN_OP_COLOR_BURN,
2685      PIXMAN_r3g3b2,	0xf,
2686      PIXMAN_null,	0x00,
2687      PIXMAN_a8r8g8b8,	0x9fff00ff
2688    },
2689    { PIXMAN_OP_EXCLUSION,
2690      PIXMAN_a2r2g2b2,	0x93,
2691      PIXMAN_null,	0x00,
2692      PIXMAN_a4r4g4b4,	0xff
2693    },
2694    { PIXMAN_OP_LIGHTEN,
2695      PIXMAN_a2r2g2b2,	0xa3,
2696      PIXMAN_null,	0x00,
2697      PIXMAN_r3g3b2,	0xca
2698    },
2699    { PIXMAN_OP_DIFFERENCE,
2700      PIXMAN_r3g3b2,	0xe0,
2701      PIXMAN_null,	0x00,
2702      PIXMAN_a2r2g2b2,	0x39
2703    },
2704    { PIXMAN_OP_HARD_LIGHT,
2705      PIXMAN_r3g3b2,	0x16,
2706      PIXMAN_null,	0x00,
2707      PIXMAN_a8r8g8b8,	0x98ffff
2708    },
2709    { PIXMAN_OP_LIGHTEN,
2710      PIXMAN_r3g3b2,	0x96,
2711      PIXMAN_null,	0x00,
2712      PIXMAN_a8r8g8b8,	0x225f6c
2713    },
2714    { PIXMAN_OP_HARD_LIGHT,
2715      PIXMAN_a4r4g4b4,	0x12c7,
2716      PIXMAN_null,	0x00,
2717      PIXMAN_a4r4g4b4,	0xb100
2718    },
2719    { PIXMAN_OP_LIGHTEN,
2720      PIXMAN_a8r8g8b8,	0xffda91,
2721      PIXMAN_null,	0x00,
2722      PIXMAN_r3g3b2,	0x6a
2723    },
2724    { PIXMAN_OP_EXCLUSION,
2725      PIXMAN_a8r8g8b8,	0xfff8,
2726      PIXMAN_null,	0x00,
2727      PIXMAN_r3g3b2,	0xff
2728    },
2729    { PIXMAN_OP_SOFT_LIGHT,
2730      PIXMAN_a2r2g2b2,	0xff,
2731      PIXMAN_null,	0x00,
2732      PIXMAN_a8r8g8b8,	0xf0ff48ca
2733    },
2734    { PIXMAN_OP_HARD_LIGHT,
2735      PIXMAN_r5g6b5,	0xf1ff,
2736      PIXMAN_r5g6b5,	0x6eff,
2737      PIXMAN_a8r8g8b8,	0xffffff,
2738    },
2739    { PIXMAN_OP_HARD_LIGHT,
2740      PIXMAN_r5g6b5,	0xf1ff,
2741      PIXMAN_a8,	0xdf,
2742      PIXMAN_a8r8g8b8,	0xffffff,
2743    },
2744    { PIXMAN_OP_HARD_LIGHT,
2745      PIXMAN_r5g6b5,	0xf1ff,
2746      PIXMAN_null,	0x00,
2747      PIXMAN_a8r8g8b8,	0xffffff,
2748    },
2749    { PIXMAN_OP_HARD_LIGHT,
2750      PIXMAN_r5g6b5,	0xb867,
2751      PIXMAN_a4r4g4b4,	0x82d9,
2752      PIXMAN_a8r8g8b8,	0xffc5,
2753    },
2754    { PIXMAN_OP_HARD_LIGHT,
2755      PIXMAN_r5g6b5,	0xa9f5,
2756      PIXMAN_r5g6b5,	0xadff,
2757      PIXMAN_a8r8g8b8,	0xffff00,
2758    },
2759    { PIXMAN_OP_HARD_LIGHT,
2760      PIXMAN_r5g6b5,	0x4900,
2761      PIXMAN_r5g6b5,	0x865c,
2762      PIXMAN_a8r8g8b8,	0xebff,
2763    },
2764    { PIXMAN_OP_HARD_LIGHT,
2765      PIXMAN_r5g6b5,	0xd9ff,
2766      PIXMAN_a8r8g8b8,	0xffffffff,
2767      PIXMAN_a8r8g8b8,	0x8ff0d,
2768    },
2769    { PIXMAN_OP_HARD_LIGHT,
2770      PIXMAN_r5g6b5,	0x41ff,
2771      PIXMAN_a4r4g4b4,	0xcff,
2772      PIXMAN_a8r8g8b8,	0xe1ff00,
2773    },
2774    { PIXMAN_OP_HARD_LIGHT,
2775      PIXMAN_r5g6b5,	0x91ff,
2776      PIXMAN_a2r2g2b2,	0xf3,
2777      PIXMAN_a8r8g8b8,	0xe4ffb4,
2778    },
2779    { PIXMAN_OP_HARD_LIGHT,
2780      PIXMAN_r5g6b5,	0xb9ff,
2781      PIXMAN_a2r2g2b2,	0xff,
2782      PIXMAN_a8r8g8b8,	0xffff,
2783    },
2784    { PIXMAN_OP_OVERLAY,
2785      PIXMAN_a8r8g8b8,	0x473affff,
2786      PIXMAN_r5g6b5,	0x2b00,
2787      PIXMAN_r5g6b5,	0x1ff,
2788    },
2789    { PIXMAN_OP_OVERLAY,
2790      PIXMAN_a8r8g8b8,	0xe4ff,
2791      PIXMAN_r3g3b2,	0xff,
2792      PIXMAN_r5g6b5,	0x89ff,
2793    },
2794};
2795
2796static void
2797fill (pixman_image_t *image, uint32_t pixel)
2798{
2799    uint8_t *data = (uint8_t *)pixman_image_get_data (image);
2800    int bytes_per_pixel = PIXMAN_FORMAT_BPP (pixman_image_get_format (image)) / 8;
2801    int n_bytes = pixman_image_get_stride (image) * pixman_image_get_height (image);
2802    int i;
2803
2804    switch (bytes_per_pixel)
2805    {
2806    case 4:
2807	for (i = 0; i < n_bytes / 4; ++i)
2808	    ((uint32_t *)data)[i] = pixel;
2809	break;
2810
2811    case 2:
2812	pixel &= 0xffff;
2813	for (i = 0; i < n_bytes / 2; ++i)
2814	    ((uint16_t *)data)[i] = pixel;
2815	break;
2816
2817    case 1:
2818	pixel &= 0xff;
2819	for (i = 0; i < n_bytes; ++i)
2820	    ((uint8_t *)data)[i] = pixel;
2821	break;
2822
2823    default:
2824	assert (0);
2825	break;
2826    }
2827}
2828
2829static uint32_t
2830access (pixman_image_t *image, int x, int y)
2831{
2832    int bytes_per_pixel;
2833    int stride;
2834    uint32_t result;
2835    uint8_t *location;
2836
2837    if (x < 0 || x >= image->bits.width || y < 0 || y >= image->bits.height)
2838        return 0;
2839
2840    bytes_per_pixel = PIXMAN_FORMAT_BPP (image->bits.format) / 8;
2841    stride = image->bits.rowstride * 4;
2842
2843    location = (uint8_t *)image->bits.bits + y * stride + x * bytes_per_pixel;
2844
2845    if (bytes_per_pixel == 4)
2846        result = *(uint32_t *)location;
2847    else if (bytes_per_pixel == 2)
2848        result = *(uint16_t *)location;
2849    else if (bytes_per_pixel == 1)
2850        result = *(uint8_t *)location;
2851    else
2852	assert (0);
2853
2854    return result;
2855}
2856
2857static pixman_bool_t
2858verify (int test_no, const pixel_combination_t *combination, int size,
2859	pixman_bool_t component_alpha)
2860{
2861    pixman_image_t *src, *mask, *dest;
2862    pixel_checker_t src_checker, mask_checker, dest_checker;
2863    color_t source_color, mask_color, dest_color, reference_color;
2864    pixman_bool_t have_mask = (combination->mask_format != PIXMAN_null);
2865    pixman_bool_t result = TRUE;
2866    int i, j;
2867
2868    /* Compute reference color */
2869    pixel_checker_init (&src_checker, combination->src_format);
2870    if (have_mask)
2871	pixel_checker_init (&mask_checker, combination->mask_format);
2872    pixel_checker_init (&dest_checker, combination->dest_format);
2873
2874    pixel_checker_convert_pixel_to_color (
2875	&src_checker, combination->src_pixel, &source_color);
2876    if (combination->mask_format != PIXMAN_null)
2877    {
2878	pixel_checker_convert_pixel_to_color (
2879	    &mask_checker, combination->mask_pixel, &mask_color);
2880    }
2881    pixel_checker_convert_pixel_to_color (
2882	&dest_checker, combination->dest_pixel, &dest_color);
2883
2884    do_composite (combination->op,
2885		  &source_color,
2886		  have_mask? &mask_color : NULL,
2887		  &dest_color,
2888		  &reference_color, component_alpha);
2889
2890    src = pixman_image_create_bits (
2891	combination->src_format, size, size, NULL, -1);
2892    if (have_mask)
2893    {
2894	mask = pixman_image_create_bits (
2895	    combination->mask_format, size, size, NULL, -1);
2896
2897	pixman_image_set_component_alpha (mask, component_alpha);
2898    }
2899    dest = pixman_image_create_bits (
2900	combination->dest_format, size, size, NULL, -1);
2901
2902    fill (src, combination->src_pixel);
2903    if (have_mask)
2904	fill (mask, combination->mask_pixel);
2905    fill (dest, combination->dest_pixel);
2906
2907    pixman_image_composite32 (
2908	combination->op, src,
2909	have_mask ? mask : NULL,
2910	dest, 0, 0, 0, 0, 0, 0, size, size);
2911
2912    for (j = 0; j < size; ++j)
2913    {
2914	for (i = 0; i < size; ++i)
2915	{
2916	    uint32_t computed = access (dest, i, j);
2917	    int32_t a, r, g, b;
2918
2919	    if (!pixel_checker_check (&dest_checker, computed, &reference_color))
2920	    {
2921		printf ("----------- Test %d failed ----------\n", test_no);
2922
2923		printf ("   operator:         %s (%s)\n", operator_name (combination->op),
2924			have_mask? component_alpha ? "component alpha" : "unified alpha" : "no mask");
2925		printf ("   src format:       %s\n", format_name (combination->src_format));
2926		if (have_mask != PIXMAN_null)
2927		    printf ("   mask format:      %s\n", format_name (combination->mask_format));
2928		printf ("   dest format:      %s\n", format_name (combination->dest_format));
2929
2930                printf (" - source ARGB:      %f  %f  %f  %f   (pixel: %8x)\n",
2931                        source_color.a, source_color.r, source_color.g, source_color.b,
2932                        combination->src_pixel);
2933		pixel_checker_split_pixel (&src_checker, combination->src_pixel,
2934					   &a, &r, &g, &b);
2935                printf ("                     %8d  %8d  %8d  %8d\n", a, r, g, b);
2936
2937		if (have_mask)
2938		{
2939		    printf (" - mask ARGB:        %f  %f  %f  %f   (pixel: %8x)\n",
2940			    mask_color.a, mask_color.r, mask_color.g, mask_color.b,
2941			    combination->mask_pixel);
2942		    pixel_checker_split_pixel (&mask_checker, combination->mask_pixel,
2943					       &a, &r, &g, &b);
2944		    printf ("                     %8d  %8d  %8d  %8d\n", a, r, g, b);
2945		}
2946
2947                printf (" - dest ARGB:        %f  %f  %f  %f   (pixel: %8x)\n",
2948                        dest_color.a, dest_color.r, dest_color.g, dest_color.b,
2949                        combination->dest_pixel);
2950		pixel_checker_split_pixel (&dest_checker, combination->dest_pixel,
2951					   &a, &r, &g, &b);
2952                printf ("                     %8d  %8d  %8d  %8d\n", a, r, g, b);
2953
2954                pixel_checker_split_pixel (&dest_checker, computed, &a, &r, &g, &b);
2955                printf (" - expected ARGB:    %f  %f  %f  %f\n",
2956                        reference_color.a, reference_color.r, reference_color.g, reference_color.b);
2957
2958                pixel_checker_get_min (&dest_checker, &reference_color, &a, &r, &g, &b);
2959                printf ("   min acceptable:   %8d  %8d  %8d  %8d\n", a, r, g, b);
2960
2961                pixel_checker_split_pixel (&dest_checker, computed, &a, &r, &g, &b);
2962                printf ("   got:              %8d  %8d  %8d  %8d   (pixel: %8x)\n", a, r, g, b, computed);
2963
2964                pixel_checker_get_max (&dest_checker, &reference_color, &a, &r, &g, &b);
2965                printf ("   max acceptable:   %8d  %8d  %8d  %8d\n", a, r, g, b);
2966
2967		result = FALSE;
2968		goto done;
2969	    }
2970	}
2971    }
2972
2973done:
2974    pixman_image_unref (src);
2975    pixman_image_unref (dest);
2976
2977    if (have_mask && mask != NULL)
2978        pixman_image_unref (mask);
2979
2980    return result;
2981}
2982
2983int
2984main (int argc, char **argv)
2985{
2986    int result = 0;
2987    int i, j;
2988    int lo, hi;
2989
2990    if (argc > 1)
2991    {
2992	lo = atoi (argv[1]);
2993	hi = lo + 1;
2994    }
2995    else
2996    {
2997	lo = 0;
2998	hi = ARRAY_LENGTH (regressions);
2999    }
3000
3001    for (i = lo; i < hi; ++i)
3002    {
3003	const pixel_combination_t *combination = &(regressions[i]);
3004
3005	for (j = 1; j < 34; ++j)
3006	{
3007	    int k, ca;
3008
3009	    ca = combination->mask_format == PIXMAN_null ? 1 : 2;
3010
3011	    for (k = 0; k < ca; ++k)
3012	    {
3013		if (!verify (i, combination, j, k))
3014		{
3015		    result = 1;
3016		    goto next_regression;
3017		}
3018	    }
3019	}
3020
3021    next_regression:
3022	;
3023    }
3024
3025    return result;
3026}
3027