Edit

IABSD.fr/xenocara/lib/pixman/test/pixel-test.c

Branch :

  • Show log

    Commit

  • Author : matthieu
    Date : 2016-10-01 10:17:43
    Hash : cb8938ec
    Message : Update to pixman 0.34.0.

  • lib/pixman/test/pixel-test.c
  • /*
     * Copyright © 2013 Soeren Sandmann
     * Copyright © 2013 Red Hat, Inc.
     *
     * Permission is hereby granted, free of charge, to any person obtaining a
     * copy of this software and associated documentation files (the "Software"),
     * to deal in the Software without restriction, including without limitation
     * the rights to use, copy, modify, merge, publish, distribute, sublicense,
     * and/or sell copies of the Software, and to permit persons to whom the
     * Software is furnished to do so, subject to the following conditions:
     *
     * The above copyright notice and this permission notice (including the next
     * paragraph) shall be included in all copies or substantial portions of the
     * Software.
     *
     * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     * DEALINGS IN THE SOFTWARE.
     */
    #include <stdio.h>
    #include <stdlib.h> /* abort() */
    #include <math.h>
    #include <time.h>
    #include "utils.h"
    
    typedef struct pixel_combination_t pixel_combination_t;
    struct pixel_combination_t
    {
        pixman_op_t			op;
        pixman_format_code_t	src_format;
        uint32_t			src_pixel;
        pixman_format_code_t	mask_format;
        uint32_t			mask_pixel;
        pixman_format_code_t	dest_format;
        uint32_t			dest_pixel;
    };
    
    static const pixel_combination_t regressions[] =
    {
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1ffc3ff,
          PIXMAN_a8,	0x7b,
          PIXMAN_a8r8g8b8,	0xff00c300,
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xb5,
          PIXMAN_a4r4g4b4,	0xe3ff,
          PIXMAN_a2r2g2b2,	0x2e
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xa6,
          PIXMAN_a8r8g8b8,	0x2b00ff00,
          PIXMAN_a4r4g4b4,	0x7e
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a8r8g8b8,	0x27000013,
          PIXMAN_a2r2g2b2,	0x80,
          PIXMAN_a4r4g4b4,	0x9d
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a4r4g4b4,	0xe6f7,
          PIXMAN_a2r2g2b2,	0xad,
          PIXMAN_a4r4g4b4,	0x71
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a8r8g8b8,	0xff4f70ff,
          PIXMAN_r5g6b5,	0xb828,
          PIXMAN_a8r8g8b8,	0xcac400
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xa9,
          PIXMAN_a4r4g4b4,	0x41c2,
          PIXMAN_a8r8g8b8,	0xffff2b
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0x89,
          PIXMAN_a8r8g8b8,	0x977cff61,
          PIXMAN_a4r4g4b4,	0x36
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0x81,
          PIXMAN_r5g6b5,	0x6f9e,
          PIXMAN_a4r4g4b4,	0x1eb
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xb5,
          PIXMAN_a4r4g4b4,	0xe247,
          PIXMAN_a8r8g8b8,	0xffbaff
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0x97,
          PIXMAN_a2r2g2b2,	0x9d,
          PIXMAN_a2r2g2b2,	0x21
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xb4,
          PIXMAN_a2r2g2b2,	0x90,
          PIXMAN_a8r8g8b8,	0xc0fd5c
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a8r8g8b8,	0xdf00ff70,
          PIXMAN_a8r8g8b8,	0x2597ff27,
          PIXMAN_a4r4g4b4,	0xf3
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xb7,
          PIXMAN_r3g3b2,	0xb1,
          PIXMAN_a8r8g8b8,	0x9f4bcc
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a4r4g4b4,	0xf39e,
          PIXMAN_r5g6b5,	0x34,
          PIXMAN_a8r8g8b8,	0xf6ae00
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a8r8g8b8,	0x3aff1dff,
          PIXMAN_a2r2g2b2,	0x64,
          PIXMAN_a8r8g8b8,	0x94ffb4
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xa4,
          PIXMAN_a2r2g2b2,	0x8a,
          PIXMAN_a4r4g4b4,	0xff
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xa5,
          PIXMAN_a4r4g4b4,	0x1a,
          PIXMAN_a4r4g4b4,	0xff
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xb4,
          PIXMAN_a2r2g2b2,	0xca,
          PIXMAN_a4r4g4b4,	0x7b
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xbd,
          PIXMAN_a4r4g4b4,	0xff37,
          PIXMAN_a4r4g4b4,	0xff
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0x96,
          PIXMAN_a2r2g2b2,	0xbb,
          PIXMAN_a8r8g8b8,	0x96ffff
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0x89,
          PIXMAN_r3g3b2,	0x92,
          PIXMAN_a4r4g4b4,	0xa8c
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a4r4g4b4,	0xa95b,
          PIXMAN_a2r2g2b2,	0x68,
          PIXMAN_a8r8g8b8,	0x38ff
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0x90,
          PIXMAN_a8r8g8b8,	0x53bd00ef,
          PIXMAN_a8r8g8b8,	0xff0003
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1f5ffff,
          PIXMAN_r3g3b2,	0x22,
          PIXMAN_r5g6b5,	0x2000
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x10000b6,
          PIXMAN_a8r8g8b8,	0x9645,
          PIXMAN_r5g6b5,	0x6
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x172ff00,
          PIXMAN_a4r4g4b4,	0xff61,
          PIXMAN_r3g3b2,	0xc
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x281ffc8,
          PIXMAN_r5g6b5,	0x39b8,
          PIXMAN_r5g6b5,	0x13
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100a2ff,
          PIXMAN_a4r4g4b4,	0x6500,
          PIXMAN_a2r2g2b2,	0x5
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ffff51,
          PIXMAN_r5g6b5,	0x52ff,
          PIXMAN_a2r2g2b2,	0x14
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x150d500,
          PIXMAN_a8r8g8b8,	0x6200b7ff,
          PIXMAN_a8r8g8b8,	0x1f5200
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x2a9a700,
          PIXMAN_a8r8g8b8,	0xf7003400,
          PIXMAN_a8r8g8b8,	0x2200
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x200ffff,
          PIXMAN_r5g6b5,	0x81ff,
          PIXMAN_r5g6b5,	0x1f
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x2ff00ff,
          PIXMAN_r5g6b5,	0x3f00,
          PIXMAN_r3g3b2,	0x20
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x3ff1aa4,
          PIXMAN_a4r4g4b4,	0x2200,
          PIXMAN_r5g6b5,	0x2000
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x280ff2c,
          PIXMAN_r3g3b2,	0xc6,
          PIXMAN_a8r8g8b8,	0xfdfd44fe
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x13aff1d,
          PIXMAN_a2r2g2b2,	0x4b,
          PIXMAN_r5g6b5,	0x12a1
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x2ffff88,
          PIXMAN_a8r8g8b8,	0xff3a49,
          PIXMAN_r5g6b5,	0xf7df
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1009700,
          PIXMAN_a2r2g2b2,	0x56,
          PIXMAN_a8r8g8b8,	0x0
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1aacbff,
          PIXMAN_a4r4g4b4,	0x84,
          PIXMAN_r3g3b2,	0x1
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x100b1ff,
          PIXMAN_a2r2g2b2,	0xf5,
          PIXMAN_a8r8g8b8,	0xfea89cff
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1ff0000,
          PIXMAN_r5g6b5,	0x6800,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x10064ff,
          PIXMAN_r3g3b2,	0x61,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1bb00ff,
          PIXMAN_r5g6b5,	0x76b5,
          PIXMAN_a4r4g4b4,	0x500
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x2ffff41,
          PIXMAN_r5g6b5,	0x7100,
          PIXMAN_a4r4g4b4,	0x20
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1ff1231,
          PIXMAN_a8r8g8b8,	0x381089,
          PIXMAN_r5g6b5,	0x38a5
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x16e5c49,
          PIXMAN_a8r8g8b8,	0x4dfa3694,
          PIXMAN_a8r8g8b8,	0x211c16
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x134ff62,
          PIXMAN_a2r2g2b2,	0x14,
          PIXMAN_r3g3b2,	0x8
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x300ffeb,
          PIXMAN_r3g3b2,	0xc7,
          PIXMAN_a4r4g4b4,	0x20
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x3ff8bff,
          PIXMAN_r3g3b2,	0x3e,
          PIXMAN_a8r8g8b8,	0x3008baa
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ff00ff,
          PIXMAN_a4r4g4b4,	0x3466,
          PIXMAN_a4r4g4b4,	0x406
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ddc027,
          PIXMAN_a4r4g4b4,	0x7d00,
          PIXMAN_r5g6b5,	0x0
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x2ffff00,
          PIXMAN_a8r8g8b8,	0xc92cfb52,
          PIXMAN_a4r4g4b4,	0x200
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1ff116a,
          PIXMAN_a4r4g4b4,	0x6000,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ffffff,
          PIXMAN_r5g6b5,	0x2f95,
          PIXMAN_r5g6b5,	0x795
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ffff00,
          PIXMAN_a4r4g4b4,	0x354a,
          PIXMAN_r5g6b5,	0x3180
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x1d7ff00,
          PIXMAN_a4r4g4b4,	0xd6ff,
          PIXMAN_a8r8g8b8,	0xffff0700
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1bc5db7,
          PIXMAN_r5g6b5,	0x944f,
          PIXMAN_a4r4g4b4,	0xff05
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x185ffd9,
          PIXMAN_a2r2g2b2,	0x9c,
          PIXMAN_r5g6b5,	0x3c07
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1fa7f61,
          PIXMAN_a8r8g8b8,	0xff31ff00,
          PIXMAN_r3g3b2,	0xd2
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1c4ff00,
          PIXMAN_r3g3b2,	0xb,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x2ff00ff,
          PIXMAN_a8r8g8b8,	0x3f3caeda,
          PIXMAN_r3g3b2,	0x20
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x100ff00,
          PIXMAN_r5g6b5,	0xff,
          PIXMAN_r5g6b5,	0xe0
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff68ff,
          PIXMAN_a4r4g4b4,	0x8046,
          PIXMAN_r5g6b5,	0xec
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x100ff28,
          PIXMAN_a8r8g8b8,	0x4c00,
          PIXMAN_r5g6b5,	0x260
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ffff00,
          PIXMAN_a4r4g4b4,	0xd92a,
          PIXMAN_a8r8g8b8,	0x2200
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100289a,
          PIXMAN_a8r8g8b8,	0x74ffb8ff,
          PIXMAN_r5g6b5,	0x0
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1baff00,
          PIXMAN_r5g6b5,	0x4e9d,
          PIXMAN_r5g6b5,	0x3000
        },
        { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1fcffad,
          PIXMAN_r5g6b5,	0x42d7,
          PIXMAN_a8r8g8b8,	0x1c6ffe5
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x183ff00,
          PIXMAN_r3g3b2,	0x7e,
          PIXMAN_a4r4g4b4,	0xff
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x2ff0076,
          PIXMAN_a8r8g8b8,	0x2a0000,
          PIXMAN_r3g3b2,	0x20
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x3d8bbff,
          PIXMAN_r5g6b5,	0x6900,
          PIXMAN_a8r8g8b8,	0x35b0000
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x14f00ff,
          PIXMAN_r5g6b5,	0xd48,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x28c72df,
          PIXMAN_a8r8g8b8,	0xff5cff31,
          PIXMAN_a4r4g4b4,	0x2
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ffffff,
          PIXMAN_a8r8g8b8,	0xffad8020,
          PIXMAN_r5g6b5,	0x4
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x100ff00,
          PIXMAN_a2r2g2b2,	0x76,
          PIXMAN_r3g3b2,	0x0
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1005d00,
          PIXMAN_r5g6b5,	0x7b04,
          PIXMAN_a8r8g8b8,	0x1000000
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x3cdfc3e,
          PIXMAN_a8r8g8b8,	0x69ec21d3,
          PIXMAN_a4r4g4b4,	0x20
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x200ffff,
          PIXMAN_r5g6b5,	0x30ff,
          PIXMAN_r5g6b5,	0x60ff
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x532fff4,
          PIXMAN_r5g6b5,	0xcb,
          PIXMAN_r5g6b5,	0xd9a1
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffffff,
          PIXMAN_r3g3b2,	0x5f,
          PIXMAN_a2r2g2b2,	0x10
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffffff,
          PIXMAN_a8r8g8b8,	0xffd60052,
          PIXMAN_r3g3b2,	0x1
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1ff6491,
          PIXMAN_a8r8g8b8,	0x1e53ff00,
          PIXMAN_r5g6b5,	0x1862
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ffff00,
          PIXMAN_r3g3b2,	0xc7,
          PIXMAN_a4r4g4b4,	0x20
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x29d0fff,
          PIXMAN_a4r4g4b4,	0x25ff,
          PIXMAN_a8r8g8b8,	0x0
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x141760a,
          PIXMAN_a4r4g4b4,	0x7ec2,
          PIXMAN_a4r4g4b4,	0x130
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1abedff,
          PIXMAN_a8r8g8b8,	0x75520068,
          PIXMAN_r3g3b2,	0x87
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x10000ff,
          PIXMAN_a8r8g8b8,	0xff00e652,
          PIXMAN_r3g3b2,	0x1
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x16006075,
          PIXMAN_r5g6b5,	0xc00,
          PIXMAN_a8r8g8b8,	0x27f0900
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x200ff00,
          PIXMAN_a8r8g8b8,	0xd1b83f57,
          PIXMAN_a4r4g4b4,	0xff75
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x14000c4,
          PIXMAN_a4r4g4b4,	0x96,
          PIXMAN_a2r2g2b2,	0x1
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ff00d1,
          PIXMAN_r3g3b2,	0x79,
          PIXMAN_a2r2g2b2,	0x0
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1ff00dc,
          PIXMAN_a4r4g4b4,	0xc5ff,
          PIXMAN_a2r2g2b2,	0x10
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffffb2,
          PIXMAN_a8r8g8b8,	0x4cff5700,
          PIXMAN_r3g3b2,	0x48
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1327482,
          PIXMAN_a8r8g8b8,	0x247ff,
          PIXMAN_a8r8g8b8,	0x82
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1d0ff00,
          PIXMAN_r3g3b2,	0xc9,
          PIXMAN_r5g6b5,	0x240
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x13d35ff,
          PIXMAN_a2r2g2b2,	0x6d,
          PIXMAN_r3g3b2,	0x1
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ffc6b2,
          PIXMAN_a8r8g8b8,	0x5abe8e3c,
          PIXMAN_r5g6b5,	0x5a27
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x15700ff,
          PIXMAN_r3g3b2,	0xdd,
          PIXMAN_a8r8g8b8,	0x55
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ff11ff,
          PIXMAN_r3g3b2,	0x30,
          PIXMAN_r5g6b5,	0x2000
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1ff00ff,
          PIXMAN_a2r2g2b2,	0x6d,
          PIXMAN_r3g3b2,	0x0
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1421d5f,
          PIXMAN_a4r4g4b4,	0xff85,
          PIXMAN_a8r8g8b8,	0x1420f00
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1d2ffff,
          PIXMAN_r5g6b5,	0xfc,
          PIXMAN_r5g6b5,	0x1c
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1ffff42,
          PIXMAN_a4r4g4b4,	0x7100,
          PIXMAN_a4r4g4b4,	0x771
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x25ae3d4,
          PIXMAN_a8r8g8b8,	0x39ffc99a,
          PIXMAN_a8r8g8b8,	0x14332f
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff0643,
          PIXMAN_a8r8g8b8,	0x4c000000,
          PIXMAN_r5g6b5,	0x4802
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1966a00,
          PIXMAN_r3g3b2,	0x46,
          PIXMAN_r5g6b5,	0x0
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x387ff59,
          PIXMAN_r5g6b5,	0x512c,
          PIXMAN_r5g6b5,	0x120
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1f7ffb0,
          PIXMAN_r5g6b5,	0x63b8,
          PIXMAN_a8r8g8b8,	0x1000089
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x185841c,
          PIXMAN_a2r2g2b2,	0x5c,
          PIXMAN_a8r8g8b8,	0x8400
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1ffc3ff,
          PIXMAN_a8r8g8b8,	0xff7b,
          PIXMAN_a8r8g8b8,	0xff00c300
        },
        { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff7500,
          PIXMAN_a2r2g2b2,	0x47,
          PIXMAN_a4r4g4b4,	0xff
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1002361,
          PIXMAN_a2r2g2b2,	0x7e,
          PIXMAN_r5g6b5,	0x64
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x10000b6,
          PIXMAN_a8r8g8b8,	0x59004463,
          PIXMAN_a4r4g4b4,	0xffa7
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff5a49,
          PIXMAN_a8r8g8b8,	0xff3fff2b,
          PIXMAN_a8r8g8b8,	0x13f000c
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x3ffecfc,
          PIXMAN_r3g3b2,	0x3c,
          PIXMAN_r5g6b5,	0x2000
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1630044,
          PIXMAN_a2r2g2b2,	0x63,
          PIXMAN_r3g3b2,	0x20
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1d2ff58,
          PIXMAN_a8r8g8b8,	0x8f77ff,
          PIXMAN_a4r4g4b4,	0x705
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x14dffff,
          PIXMAN_a2r2g2b2,	0x9a,
          PIXMAN_a8r8g8b8,	0x1a0000
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x100ff92,
          PIXMAN_a4r4g4b4,	0x540c,
          PIXMAN_r5g6b5,	0x2a6
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffffff,
          PIXMAN_a4r4g4b4,	0xddd5,
          PIXMAN_a4r4g4b4,	0xdd0
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffffff,
          PIXMAN_r5g6b5,	0xff8c,
          PIXMAN_a4r4g4b4,	0xff0
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1ffffff,
          PIXMAN_r3g3b2,	0x66,
          PIXMAN_r5g6b5,	0x7d1f
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1ffff00,
          PIXMAN_a4r4g4b4,	0xff5b,
          PIXMAN_a8r8g8b8,	0x5500
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x2ed2dff,
          PIXMAN_r5g6b5,	0x7ae7,
          PIXMAN_r3g3b2,	0xce
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1b13205,
          PIXMAN_a8r8g8b8,	0x35ffff00,
          PIXMAN_r5g6b5,	0x2040
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1e60dff,
          PIXMAN_a4r4g4b4,	0x760f,
          PIXMAN_a2r2g2b2,	0x11
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x10000ff,
          PIXMAN_a4r4g4b4,	0x3,
          PIXMAN_a8r8g8b8,	0x0
        },
        { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x100ffff,
          PIXMAN_a8r8g8b8,	0x6600,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x30000fa,
          PIXMAN_a4r4g4b4,	0x23b7,
          PIXMAN_a8r8g8b8,	0x21
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ffffff,
          PIXMAN_r3g3b2,	0x60,
          PIXMAN_r3g3b2,	0x60
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x3b31b30,
          PIXMAN_r3g3b2,	0x2e,
          PIXMAN_a8r8g8b8,	0x3000c20
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x160ffff,
          PIXMAN_a4r4g4b4,	0xff42,
          PIXMAN_r3g3b2,	0xed
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x172ffff,
          PIXMAN_a4r4g4b4,	0x5100,
          PIXMAN_r3g3b2,	0x29
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x16300ff,
          PIXMAN_a4r4g4b4,	0x5007,
          PIXMAN_a8r8g8b8,	0x77
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x2ffff3a,
          PIXMAN_a8r8g8b8,	0x26640083,
          PIXMAN_a4r4g4b4,	0x220
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x106ff60,
          PIXMAN_r5g6b5,	0xdce,
          PIXMAN_a8r8g8b8,	0x100ba00
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100e7ff,
          PIXMAN_r5g6b5,	0xa00,
          PIXMAN_r5g6b5,	0x0
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x2b500f1,
          PIXMAN_a4r4g4b4,	0x7339,
          PIXMAN_a8r8g8b8,	0x1000091
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff00ff,
          PIXMAN_a4r4g4b4,	0xc863,
          PIXMAN_r5g6b5,	0x6
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x1ffffca,
          PIXMAN_a8r8g8b8,	0x8b4cf000,
          PIXMAN_r3g3b2,	0xd2
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1fffe00,
          PIXMAN_r3g3b2,	0x88,
          PIXMAN_r3g3b2,	0x8
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x16f0000,
          PIXMAN_a2r2g2b2,	0x59,
          PIXMAN_r5g6b5,	0x2000
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x377ff43,
          PIXMAN_a4r4g4b4,	0x2a,
          PIXMAN_a8r8g8b8,	0x2d
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x11dffff,
          PIXMAN_r3g3b2,	0xcb,
          PIXMAN_r3g3b2,	0x8
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffffff,
          PIXMAN_r5g6b5,	0xbdab,
          PIXMAN_a4r4g4b4,	0xbb0
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff3343,
          PIXMAN_a8r8g8b8,	0x7a00ffff,
          PIXMAN_a2r2g2b2,	0xd
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1ebff4b,
          PIXMAN_r3g3b2,	0x26,
          PIXMAN_r3g3b2,	0x24
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x2c1b3ff,
          PIXMAN_a8r8g8b8,	0x3000152a,
          PIXMAN_r3g3b2,	0x24
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1a7ffff,
          PIXMAN_r3g3b2,	0x9,
          PIXMAN_r5g6b5,	0x24a
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x4ff00ec,
          PIXMAN_a8r8g8b8,	0x1da4961e,
          PIXMAN_a8r8g8b8,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff25ff,
          PIXMAN_a8r8g8b8,	0x64b0ff00,
          PIXMAN_r5g6b5,	0x606c
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1fd62ff,
          PIXMAN_a4r4g4b4,	0x76b1,
          PIXMAN_r5g6b5,	0x716e
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x194ffde,
          PIXMAN_r5g6b5,	0x47ff,
          PIXMAN_r5g6b5,	0x2000
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x108ffff,
          PIXMAN_a8r8g8b8,	0xffffff66,
          PIXMAN_r5g6b5,	0xff0c
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x5ffffff,
          PIXMAN_r5g6b5,	0xdf,
          PIXMAN_r5g6b5,	0xc0
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100ad31,
          PIXMAN_a2r2g2b2,	0xc5,
          PIXMAN_a4r4g4b4,	0x31
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ffff34,
          PIXMAN_a8r8g8b8,	0x6a57c491,
          PIXMAN_r3g3b2,	0x0
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1fffff1,
          PIXMAN_r3g3b2,	0xaf,
          PIXMAN_r5g6b5,	0xb01e
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff67ff,
          PIXMAN_a4r4g4b4,	0x50ff,
          PIXMAN_a8r8g8b8,	0x552255
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x11bffff,
          PIXMAN_r5g6b5,	0xef0c,
          PIXMAN_r5g6b5,	0xc
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x16cf37d,
          PIXMAN_a4r4g4b4,	0xc561,
          PIXMAN_r5g6b5,	0x2301
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ffff9c,
          PIXMAN_a4r4g4b4,	0x2700,
          PIXMAN_a8r8g8b8,	0xffff
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x200f322,
          PIXMAN_a8r8g8b8,	0xff3c7e,
          PIXMAN_r5g6b5,	0x2
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1f14a33,
          PIXMAN_a8r8g8b8,	0x26cff79,
          PIXMAN_r3g3b2,	0xf9
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x11d922c,
          PIXMAN_r3g3b2,	0xab,
          PIXMAN_a4r4g4b4,	0x20
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x100ffff,
          PIXMAN_a2r2g2b2,	0xf5,
          PIXMAN_r3g3b2,	0x9
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x18697ff,
          PIXMAN_a4r4g4b4,	0x5700,
          PIXMAN_r5g6b5,	0xfa6d
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x12000fc,
          PIXMAN_a2r2g2b2,	0x41,
          PIXMAN_a8r8g8b8,	0xb0054
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x100ccff,
          PIXMAN_a4r4g4b4,	0x657e,
          PIXMAN_r5g6b5,	0x3b1
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ffff1f,
          PIXMAN_a2r2g2b2,	0xa6,
          PIXMAN_r5g6b5,	0x2a0
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x11fff82,
          PIXMAN_a4r4g4b4,	0xff94,
          PIXMAN_a8r8g8b8,	0x1010123
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x154bd19,
          PIXMAN_a4r4g4b4,	0xb600,
          PIXMAN_a8r8g8b8,	0x1000000
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x10000ff,
          PIXMAN_r5g6b5,	0x8e,
          PIXMAN_r5g6b5,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x21aff00,
          PIXMAN_r5g6b5,	0x71ff,
          PIXMAN_r3g3b2,	0xf2
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x2ad00a7,
          PIXMAN_a4r4g4b4,	0x23,
          PIXMAN_a8r8g8b8,	0x21
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x100ff00,
          PIXMAN_r5g6b5,	0xb343,
          PIXMAN_r3g3b2,	0xc
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x3ffa500,
          PIXMAN_a8r8g8b8,	0x1af5b4,
          PIXMAN_a8r8g8b8,	0xff1abc00
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x2ffff11,
          PIXMAN_a8r8g8b8,	0x9f334f,
          PIXMAN_a8r8g8b8,	0x9f0005
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x2c75971,
          PIXMAN_a4r4g4b4,	0x3900,
          PIXMAN_a4r4g4b4,	0x211
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x100ff49,
          PIXMAN_a8r8g8b8,	0x813dc25e,
          PIXMAN_r5g6b5,	0x667d
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x10000ff,
          PIXMAN_a4r4g4b4,	0x4bff,
          PIXMAN_a8r8g8b8,	0x0
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x20ebcff,
          PIXMAN_r5g6b5,	0xc9ff,
          PIXMAN_r3g3b2,	0x4
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1ffff00,
          PIXMAN_r5g6b5,	0x51ff,
          PIXMAN_r3g3b2,	0x44
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffd158,
          PIXMAN_a8r8g8b8,	0x7d88ffce,
          PIXMAN_r3g3b2,	0x6c
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x1425e21,
          PIXMAN_a2r2g2b2,	0xa5,
          PIXMAN_r5g6b5,	0xe1
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x14b00ff,
          PIXMAN_a8r8g8b8,	0xbe95004b,
          PIXMAN_r5g6b5,	0x9
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x14fc0cd,
          PIXMAN_a8r8g8b8,	0x2d12b78b,
          PIXMAN_a8r8g8b8,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff8230,
          PIXMAN_a2r2g2b2,	0x4c,
          PIXMAN_r3g3b2,	0x44
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1ff31ff,
          PIXMAN_a2r2g2b2,	0x14,
          PIXMAN_a8r8g8b8,	0x551000
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x17800ff,
          PIXMAN_a4r4g4b4,	0x22,
          PIXMAN_a8r8g8b8,	0x22
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x14500ff,
          PIXMAN_a4r4g4b4,	0x6400,
          PIXMAN_r5g6b5,	0xff78
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100ff9d,
          PIXMAN_r3g3b2,	0xcd,
          PIXMAN_r3g3b2,	0x0
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x3ff00ff,
          PIXMAN_a4r4g4b4,	0xf269,
          PIXMAN_a4r4g4b4,	0x200
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ff28b8,
          PIXMAN_a4r4g4b4,	0x33ff,
          PIXMAN_r5g6b5,	0x3000
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1006278,
          PIXMAN_a8r8g8b8,	0x8a7f18,
          PIXMAN_r3g3b2,	0x4
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffcb00,
          PIXMAN_a4r4g4b4,	0x7900,
          PIXMAN_a2r2g2b2,	0x14
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x115ff00,
          PIXMAN_a8r8g8b8,	0x508d,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x3ff30b5,
          PIXMAN_r5g6b5,	0x2e60,
          PIXMAN_r3g3b2,	0x20
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x182fffb,
          PIXMAN_r3g3b2,	0x1,
          PIXMAN_a8r8g8b8,	0x1000054
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x16fff00,
          PIXMAN_r5g6b5,	0x7bc0,
          PIXMAN_a8r8g8b8,	0x367900
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1d95dd8,
          PIXMAN_a4r4g4b4,	0xfff5,
          PIXMAN_r5g6b5,	0xff09
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ff3cdc,
          PIXMAN_a8r8g8b8,	0x3bda45ff,
          PIXMAN_r3g3b2,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x13900f8,
          PIXMAN_a8r8g8b8,	0x7e00ffff,
          PIXMAN_a4r4g4b4,	0xff00
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x10ea9ff,
          PIXMAN_a8r8g8b8,	0xff34ff22,
          PIXMAN_r5g6b5,	0xff52
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2002e99,
          PIXMAN_a4r4g4b4,	0x3000,
          PIXMAN_r5g6b5,	0x43
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x100ffff,
          PIXMAN_r5g6b5,	0x19ff,
          PIXMAN_r3g3b2,	0x3
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffff00,
          PIXMAN_a8r8g8b8,	0xffff4251,
          PIXMAN_a2r2g2b2,	0x4
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x121c9ff,
          PIXMAN_a4r4g4b4,	0xd2,
          PIXMAN_a4r4g4b4,	0x2
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100ff4d,
          PIXMAN_a2r2g2b2,	0x5e,
          PIXMAN_a2r2g2b2,	0x4
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x29ab4ff,
          PIXMAN_r3g3b2,	0x47,
          PIXMAN_a8r8g8b8,	0x1900
        },
        { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffc1ac,
          PIXMAN_a8r8g8b8,	0xee4ed0ac,
          PIXMAN_a8r8g8b8,	0x1009d74
        },
        { PIXMAN_OP_CONJOINT_IN_REVERSE,
          PIXMAN_a8r8g8b8,	0x269dffdc,
          PIXMAN_a8r8g8b8,	0xff0b00e0,
          PIXMAN_a8r8g8b8,	0x2a200ff
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ffffff,
          PIXMAN_a4r4g4b4,	0x3200,
          PIXMAN_r3g3b2,	0x24
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x100ffed,
          PIXMAN_a8r8g8b8,	0x67004eff,
          PIXMAN_a2r2g2b2,	0x5
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x2fffd6a,
          PIXMAN_a8r8g8b8,	0xc9003bff,
          PIXMAN_r3g3b2,	0x4
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x253ff00,
          PIXMAN_r5g6b5,	0xff,
          PIXMAN_r5g6b5,	0xe0
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x13600ad,
          PIXMAN_r5g6b5,	0x35ae,
          PIXMAN_r3g3b2,	0x1
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ffa8ff,
          PIXMAN_a8r8g8b8,	0xff5f00,
          PIXMAN_r3g3b2,	0xe0
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x10067ff,
          PIXMAN_a4r4g4b4,	0x450d,
          PIXMAN_a2r2g2b2,	0x1
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x1ff01ff,
          PIXMAN_r3g3b2,	0x77,
          PIXMAN_r5g6b5,	0x6800
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x11da4ff,
          PIXMAN_r5g6b5,	0x83c9,
          PIXMAN_a4r4g4b4,	0x44
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ffd4ff,
          PIXMAN_r3g3b2,	0xaa,
          PIXMAN_r3g3b2,	0x4
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ff0000,
          PIXMAN_a8r8g8b8,	0x71002a,
          PIXMAN_a4r4g4b4,	0x700
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1d7ffff,
          PIXMAN_r5g6b5,	0x3696,
          PIXMAN_a4r4g4b4,	0x200
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ffffc8,
          PIXMAN_r5g6b5,	0xe900,
          PIXMAN_a8r8g8b8,	0x2000
        },
        { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff004a,
          PIXMAN_r3g3b2,	0x48,
          PIXMAN_a8r8g8b8,	0x1000000
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x3ffe969,
          PIXMAN_r5g6b5,	0xff,
          PIXMAN_r5g6b5,	0xc0
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x300ff73,
          PIXMAN_r5g6b5,	0xff,
          PIXMAN_a8r8g8b8,	0x3000073
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ff93ff,
          PIXMAN_a8r8g8b8,	0x61fc7d2b,
          PIXMAN_a4r4g4b4,	0x2
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x11bffff,
          PIXMAN_a4r4g4b4,	0xffb4,
          PIXMAN_r5g6b5,	0x8
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1e9e100,
          PIXMAN_a2r2g2b2,	0x56,
          PIXMAN_a2r2g2b2,	0x14
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x3ffb656,
          PIXMAN_r3g3b2,	0x4,
          PIXMAN_a4r4g4b4,	0xff99
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100ff00,
          PIXMAN_r3g3b2,	0x68,
          PIXMAN_r3g3b2,	0x0
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x1006dff,
          PIXMAN_a2r2g2b2,	0x5d,
          PIXMAN_a8r8g8b8,	0xff00ff55
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x11c00cb,
          PIXMAN_a2r2g2b2,	0x44,
          PIXMAN_a4r4g4b4,	0x4
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1d0ff86,
          PIXMAN_r3g3b2,	0x5c,
          PIXMAN_a8r8g8b8,	0x3c0000
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x2f25fff,
          PIXMAN_r3g3b2,	0x36,
          PIXMAN_a8r8g8b8,	0x2a444aa
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x134af85,
          PIXMAN_r3g3b2,	0x29,
          PIXMAN_r5g6b5,	0xf300
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x13398af,
          PIXMAN_r3g3b2,	0xa5,
          PIXMAN_a4r4g4b4,	0x13
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ff57ff,
          PIXMAN_a4r4g4b4,	0x252c,
          PIXMAN_r3g3b2,	0x40
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x115ffff,
          PIXMAN_r5g6b5,	0xffe3,
          PIXMAN_r5g6b5,	0x3303
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ffff00,
          PIXMAN_r5g6b5,	0x6300,
          PIXMAN_r3g3b2,	0x6c
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x4ccff9c,
          PIXMAN_r5g6b5,	0xcc,
          PIXMAN_a8r8g8b8,	0x400003d
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffc6dd,
          PIXMAN_r5g6b5,	0x9bff,
          PIXMAN_r5g6b5,	0x5bff
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x14fff95,
          PIXMAN_r3g3b2,	0x46,
          PIXMAN_a8r8g8b8,	0x1000063
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1e6b700,
          PIXMAN_r5g6b5,	0xc1ff,
          PIXMAN_r3g3b2,	0x4
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ffff54,
          PIXMAN_a8r8g8b8,	0x2e00ff,
          PIXMAN_r5g6b5,	0x2800
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x3ffffff,
          PIXMAN_r5g6b5,	0xff,
          PIXMAN_r5g6b5,	0xe0
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1003550,
          PIXMAN_r5g6b5,	0xffcc,
          PIXMAN_r5g6b5,	0x1e0
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1ffff74,
          PIXMAN_r3g3b2,	0x28,
          PIXMAN_a8r8g8b8,	0xfe2f49d7
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1e35100,
          PIXMAN_r3g3b2,	0x57,
          PIXMAN_r5g6b5,	0x4000
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x268ffa3,
          PIXMAN_a4r4g4b4,	0x30,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x35700f8,
          PIXMAN_r5g6b5,	0xa4,
          PIXMAN_r5g6b5,	0x0
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x3ce1dff,
          PIXMAN_r5g6b5,	0x2a5e,
          PIXMAN_a8r8g8b8,	0x210000
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x494a7ff,
          PIXMAN_a8r8g8b8,	0x1bffe400,
          PIXMAN_a8r8g8b8,	0x0
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x10026d9,
          PIXMAN_a8r8g8b8,	0xec00621f,
          PIXMAN_r5g6b5,	0x63
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100ff99,
          PIXMAN_a8r8g8b8,	0xf334ff,
          PIXMAN_a4r4g4b4,	0x30
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ffc200,
          PIXMAN_a8r8g8b8,	0x1e0000ff,
          PIXMAN_a8r8g8b8,	0x1e1700
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff00ff,
          PIXMAN_r3g3b2,	0x4b,
          PIXMAN_r5g6b5,	0x4818
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x2e800ff,
          PIXMAN_a4r4g4b4,	0xd3,
          PIXMAN_a4r4g4b4,	0xec
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x19a001f,
          PIXMAN_r3g3b2,	0x76,
          PIXMAN_r3g3b2,	0x0
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1cb00c3,
          PIXMAN_a4r4g4b4,	0x5cff,
          PIXMAN_r5g6b5,	0x4008
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff0000,
          PIXMAN_r3g3b2,	0x2a,
          PIXMAN_r5g6b5,	0xc5fb
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1ffffff,
          PIXMAN_a8r8g8b8,	0xea005a88,
          PIXMAN_r3g3b2,	0xb3
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x100ffea,
          PIXMAN_a4r4g4b4,	0x54eb,
          PIXMAN_a8r8g8b8,	0x0
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x179ffff,
          PIXMAN_r3g3b2,	0xa4,
          PIXMAN_a8r8g8b8,	0x2400
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x17ad226,
          PIXMAN_r3g3b2,	0xa4,
          PIXMAN_r5g6b5,	0xe0
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x100ff01,
          PIXMAN_a2r2g2b2,	0x25,
          PIXMAN_a4r4g4b4,	0x50
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x20000ff,
          PIXMAN_a8r8g8b8,	0x2b00c127,
          PIXMAN_r5g6b5,	0x0
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x200ff96,
          PIXMAN_a4r4g4b4,	0x2300,
          PIXMAN_r3g3b2,	0x6
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x200ffff,
          PIXMAN_r3g3b2,	0x87,
          PIXMAN_r5g6b5,	0x5bc8
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1fffff2,
          PIXMAN_r3g3b2,	0x7e,
          PIXMAN_a2r2g2b2,	0xe
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x1ff8b00,
          PIXMAN_a4r4g4b4,	0xd500,
          PIXMAN_r3g3b2,	0x40
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1ffffff,
          PIXMAN_a8r8g8b8,	0x1bff38,
          PIXMAN_a4r4g4b4,	0xf0
        },
        { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x158ff39,
          PIXMAN_a4r4g4b4,	0x75dd,
          PIXMAN_a8r8g8b8,	0xdd31
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1009b70,
          PIXMAN_a4r4g4b4,	0xff40,
          PIXMAN_r3g3b2,	0x4
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x12fb43f,
          PIXMAN_a4r4g4b4,	0x69ff,
          PIXMAN_a2r2g2b2,	0x4
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ffff95,
          PIXMAN_a2r2g2b2,	0x84,
          PIXMAN_r5g6b5,	0x0
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x200d188,
          PIXMAN_r5g6b5,	0xde6,
          PIXMAN_r5g6b5,	0x3
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2c70000,
          PIXMAN_r5g6b5,	0x24fa,
          PIXMAN_a8r8g8b8,	0x21a0000
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x100ff24,
          PIXMAN_a4r4g4b4,	0x835,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x10000cd,
          PIXMAN_a2r2g2b2,	0x7f,
          PIXMAN_a2r2g2b2,	0x1
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x379ffff,
          PIXMAN_a8r8g8b8,	0x23ffff00,
          PIXMAN_r5g6b5,	0x4eda
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x172e3ff,
          PIXMAN_r3g3b2,	0xa6,
          PIXMAN_r5g6b5,	0x100
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100f5ad,
          PIXMAN_a4r4g4b4,	0x7908,
          PIXMAN_a2r2g2b2,	0x0
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x100fff9,
          PIXMAN_a2r2g2b2,	0xf1,
          PIXMAN_r3g3b2,	0x1
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1abff00,
          PIXMAN_r5g6b5,	0x31ff,
          PIXMAN_a8r8g8b8,	0x1000000
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x112ffd1,
          PIXMAN_r3g3b2,	0x9,
          PIXMAN_a2r2g2b2,	0xdd
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100ffbf,
          PIXMAN_r3g3b2,	0x2c,
          PIXMAN_a4r4g4b4,	0x60
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ffb7ff,
          PIXMAN_r3g3b2,	0x6b,
          PIXMAN_a4r4g4b4,	0x630
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x20005ff,
          PIXMAN_a4r4g4b4,	0x8462,
          PIXMAN_r5g6b5,	0xb1e8
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff5b00,
          PIXMAN_r5g6b5,	0x70ff,
          PIXMAN_r3g3b2,	0x60
        },
        { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ffffc3,
          PIXMAN_r3g3b2,	0x39,
          PIXMAN_a8r8g8b8,	0x200db41
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x306ffff,
          PIXMAN_a8r8g8b8,	0xdcffff1f,
          PIXMAN_a8r8g8b8,	0x306ff00
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x193daff,
          PIXMAN_a8r8g8b8,	0x69000000,
          PIXMAN_r3g3b2,	0x0
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x2a200ff,
          PIXMAN_a8r8g8b8,	0x183aff00,
          PIXMAN_r5g6b5,	0x2000
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x100f1a5,
          PIXMAN_a8r8g8b8,	0xb5fc21ff,
          PIXMAN_r5g6b5,	0xfe00
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x1630019,
          PIXMAN_a8r8g8b8,	0x6affc400,
          PIXMAN_r5g6b5,	0x56ff
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ff8bc2,
          PIXMAN_r3g3b2,	0xee,
          PIXMAN_r5g6b5,	0x1c0
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x260ffff,
          PIXMAN_a4r4g4b4,	0x3f00,
          PIXMAN_r3g3b2,	0x4
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x169ffed,
          PIXMAN_a8r8g8b8,	0xffffff3f,
          PIXMAN_a8r8g8b8,	0x169ff00
        },
        { PIXMAN_OP_CONJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x154c181,
          PIXMAN_a4r4g4b4,	0x5100,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1e09c00,
          PIXMAN_r5g6b5,	0xca00,
          PIXMAN_a4r4g4b4,	0xb00
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ff8dff,
          PIXMAN_a8r8g8b8,	0x610038ff,
          PIXMAN_a8r8g8b8,	0x1001f02
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x1e400ff,
          PIXMAN_a4r4g4b4,	0x66bd,
          PIXMAN_r3g3b2,	0x68
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x25362ff,
          PIXMAN_a4r4g4b4,	0x31ff,
          PIXMAN_a8r8g8b8,	0x111433
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x3ad0039,
          PIXMAN_r3g3b2,	0x26,
          PIXMAN_a8r8g8b8,	0x3000026
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x2e442ef,
          PIXMAN_r3g3b2,	0x32,
          PIXMAN_r3g3b2,	0x20
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x1720000,
          PIXMAN_a8r8g8b8,	0x55fdea00,
          PIXMAN_r3g3b2,	0x20
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x14bb0d7,
          PIXMAN_a8r8g8b8,	0x7fffff47,
          PIXMAN_a2r2g2b2,	0x0
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x13dffff,
          PIXMAN_a8r8g8b8,	0xa3860672,
          PIXMAN_r3g3b2,	0x20
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x120495a,
          PIXMAN_a4r4g4b4,	0x407e,
          PIXMAN_a8r8g8b8,	0x54
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ff8fff,
          PIXMAN_a2r2g2b2,	0x29,
          PIXMAN_r5g6b5,	0xa
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100a31a,
          PIXMAN_a4r4g4b4,	0xde4c,
          PIXMAN_a4r4g4b4,	0x1
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1d4008c,
          PIXMAN_r3g3b2,	0x79,
          PIXMAN_a8r8g8b8,	0x1000000
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ff0000,
          PIXMAN_a4r4g4b4,	0x7de4,
          PIXMAN_r5g6b5,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1b27e62,
          PIXMAN_a4r4g4b4,	0x7941,
          PIXMAN_r3g3b2,	0x0
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x300ff00,
          PIXMAN_a8r8g8b8,	0xfcff255e,
          PIXMAN_r3g3b2,	0x4
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x2ff00b8,
          PIXMAN_a8r8g8b8,	0x19ff718d,
          PIXMAN_r5g6b5,	0x1802
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x235ff13,
          PIXMAN_a8r8g8b8,	0x34bcd9ff,
          PIXMAN_r3g3b2,	0x4
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1006400,
          PIXMAN_a4r4g4b4,	0x7000,
          PIXMAN_a4r4g4b4,	0x20
        },
        { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff8bff,
          PIXMAN_a4r4g4b4,	0xfff4,
          PIXMAN_a4r4g4b4,	0xf80
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x24630ff,
          PIXMAN_a8r8g8b8,	0x1f00000b,
          PIXMAN_a8r8g8b8,	0x9061f
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ff8a00,
          PIXMAN_a8r8g8b8,	0x79ffab00,
          PIXMAN_r5g6b5,	0x7a00
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x19807ff,
          PIXMAN_a4r4g4b4,	0x6794,
          PIXMAN_a8r8g8b8,	0xff002e00
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x10000da,
          PIXMAN_a4r4g4b4,	0xf864,
          PIXMAN_a8r8g8b8,	0x1000000
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ffffde,
          PIXMAN_a2r2g2b2,	0x94,
          PIXMAN_a8r8g8b8,	0x1000000
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x200c800,
          PIXMAN_r5g6b5,	0xe9d4,
          PIXMAN_a8r8g8b8,	0x2c00
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ff00c9,
          PIXMAN_r3g3b2,	0x4c,
          PIXMAN_r5g6b5,	0x4800
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x122d5ff,
          PIXMAN_r5g6b5,	0x418b,
          PIXMAN_a4r4g4b4,	0x25
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ffff55,
          PIXMAN_a2r2g2b2,	0x1c,
          PIXMAN_a8r8g8b8,	0xff00
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x135ffff,
          PIXMAN_r5g6b5,	0x39c4,
          PIXMAN_r5g6b5,	0xb7
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x100d2c3,
          PIXMAN_r3g3b2,	0x2a,
          PIXMAN_a8r8g8b8,	0x3c00
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x17268ff,
          PIXMAN_a8r8g8b8,	0x7c00ffff,
          PIXMAN_r5g6b5,	0x318f
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1ff00ff,
          PIXMAN_r3g3b2,	0x68,
          PIXMAN_r3g3b2,	0xb4
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x200ffff,
          PIXMAN_r5g6b5,	0xff86,
          PIXMAN_a8r8g8b8,	0x200f300
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x18a23ff,
          PIXMAN_a2r2g2b2,	0x44,
          PIXMAN_a4r4g4b4,	0x205
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x16bff23,
          PIXMAN_a8r8g8b8,	0x31fd00ff,
          PIXMAN_r3g3b2,	0x7
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x137d1ff,
          PIXMAN_a4r4g4b4,	0x56c1,
          PIXMAN_r5g6b5,	0x0
        },
        { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff5bff,
          PIXMAN_a4r4g4b4,	0xfff4,
          PIXMAN_a4r4g4b4,	0xf50
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x15c6b00,
          PIXMAN_a8r8g8b8,	0x7d008a,
          PIXMAN_a4r4g4b4,	0x200
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x12091ff,
          PIXMAN_a8r8g8b8,	0xb74cff6b,
          PIXMAN_a2r2g2b2,	0x8
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1ff5bff,
          PIXMAN_a8r8g8b8,	0xff6ddce8,
          PIXMAN_a2r2g2b2,	0x10
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x100ffff,
          PIXMAN_a4r4g4b4,	0xffb7,
          PIXMAN_a4r4g4b4,	0xb0
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x173ffff,
          PIXMAN_r5g6b5,	0xff2c,
          PIXMAN_a4r4g4b4,	0x6
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x17102ff,
          PIXMAN_a8r8g8b8,	0x955bff66,
          PIXMAN_a8r8g8b8,	0x280066
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x3c7ff24,
          PIXMAN_r5g6b5,	0xc4,
          PIXMAN_r5g6b5,	0x163
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x100c2a6,
          PIXMAN_r5g6b5,	0xa9b9,
          PIXMAN_a4r4g4b4,	0x8
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x26049ff,
          PIXMAN_a4r4g4b4,	0xb2,
          PIXMAN_r5g6b5,	0x8904
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2f100ff,
          PIXMAN_r3g3b2,	0x30,
          PIXMAN_a8r8g8b8,	0x2220100
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1ffff88,
          PIXMAN_r3g3b2,	0x7e,
          PIXMAN_r3g3b2,	0x60
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x153ffab,
          PIXMAN_a8r8g8b8,	0xfd10725a,
          PIXMAN_r3g3b2,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff00d2,
          PIXMAN_r5g6b5,	0xff6b,
          PIXMAN_a8r8g8b8,	0x101014a
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x100d965,
          PIXMAN_a8r8g8b8,	0xff007b00,
          PIXMAN_r3g3b2,	0xc
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ec0000,
          PIXMAN_r5g6b5,	0x6fff,
          PIXMAN_r5g6b5,	0x6000
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x19d59a2,
          PIXMAN_a8r8g8b8,	0x4a00ff7a,
          PIXMAN_a8r8g8b8,	0x2e1a2f
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1eb0000,
          PIXMAN_a4r4g4b4,	0x72bc,
          PIXMAN_r5g6b5,	0x1800
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100ffff,
          PIXMAN_a4r4g4b4,	0xc034,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x195ff15,
          PIXMAN_a4r4g4b4,	0xb7b1,
          PIXMAN_r5g6b5,	0x4000
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffdf94,
          PIXMAN_a4r4g4b4,	0x78,
          PIXMAN_r3g3b2,	0xc
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x26f00ff,
          PIXMAN_a4r4g4b4,	0xff93,
          PIXMAN_r5g6b5,	0x1dd2
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x2ff3fc5,
          PIXMAN_r3g3b2,	0x2f,
          PIXMAN_a8r8g8b8,	0x240000
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1ff696e,
          PIXMAN_a4r4g4b4,	0x22ff,
          PIXMAN_r5g6b5,	0x34d
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x10033d9,
          PIXMAN_a8r8g8b8,	0x38650000,
          PIXMAN_a8r8g8b8,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ffff00,
          PIXMAN_a4r4g4b4,	0x2070,
          PIXMAN_r5g6b5,	0x2100
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1008746,
          PIXMAN_a8r8g8b8,	0xb56971,
          PIXMAN_r5g6b5,	0xc25c
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x144d200,
          PIXMAN_a4r4g4b4,	0xff42,
          PIXMAN_r3g3b2,	0x4
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1ffffd0,
          PIXMAN_r5g6b5,	0x5b00,
          PIXMAN_r3g3b2,	0x4c
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x10000ff,
          PIXMAN_a8r8g8b8,	0xff006f,
          PIXMAN_r5g6b5,	0xd
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x10666ff,
          PIXMAN_a4r4g4b4,	0x39b2,
          PIXMAN_r5g6b5,	0xa6
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x11a007d,
          PIXMAN_r3g3b2,	0xf9,
          PIXMAN_a8r8g8b8,	0x11a0000
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1eb90ee,
          PIXMAN_r5g6b5,	0xd,
          PIXMAN_a2r2g2b2,	0x1
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ff42d5,
          PIXMAN_a4r4g4b4,	0x3400,
          PIXMAN_r3g3b2,	0x40
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1dfff00,
          PIXMAN_a8r8g8b8,	0x3ffff9d2,
          PIXMAN_r5g6b5,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff6500,
          PIXMAN_a2r2g2b2,	0x56,
          PIXMAN_r3g3b2,	0x44
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x119ffe6,
          PIXMAN_r3g3b2,	0x8d,
          PIXMAN_a4r4g4b4,	0xff00
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x100cd00,
          PIXMAN_r5g6b5,	0x33ff,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x569ffd7,
          PIXMAN_r5g6b5,	0x8cc,
          PIXMAN_r5g6b5,	0xc0
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x100876a,
          PIXMAN_a8r8g8b8,	0x575447a5,
          PIXMAN_r5g6b5,	0x164
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x12d00ff,
          PIXMAN_a4r4g4b4,	0x3fff,
          PIXMAN_a4r4g4b4,	0x0
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ff953b,
          PIXMAN_a4r4g4b4,	0x2914,
          PIXMAN_r5g6b5,	0x20a1
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffead4,
          PIXMAN_a8r8g8b8,	0xff00ea4e,
          PIXMAN_r3g3b2,	0x5a
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x1ff6400,
          PIXMAN_a2r2g2b2,	0x99,
          PIXMAN_r5g6b5,	0xa620
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x17b0084,
          PIXMAN_r3g3b2,	0xbd,
          PIXMAN_a4r4g4b4,	0x500
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x4f90bbb,
          PIXMAN_a8r8g8b8,	0xff00d21f,
          PIXMAN_a8r8g8b8,	0xfb00fc4a
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ffbb1d,
          PIXMAN_a8r8g8b8,	0x2dff79ff,
          PIXMAN_r5g6b5,	0x2c0
        },
        { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x100ffff,
          PIXMAN_a2r2g2b2,	0x43,
          PIXMAN_a4r4g4b4,	0x6f
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1f000ff,
          PIXMAN_a4r4g4b4,	0xb393,
          PIXMAN_r3g3b2,	0x20
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1c60020,
          PIXMAN_a8r8g8b8,	0x6bffffff,
          PIXMAN_a8r8g8b8,	0x0
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1727d00,
          PIXMAN_a2r2g2b2,	0x67,
          PIXMAN_a4r4g4b4,	0x400
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x14a5194,
          PIXMAN_a4r4g4b4,	0xd7ff,
          PIXMAN_r5g6b5,	0x2000
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x20003fa,
          PIXMAN_a4r4g4b4,	0x24ff,
          PIXMAN_a8r8g8b8,	0xffff1550
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1a6ff83,
          PIXMAN_a4r4g4b4,	0xf400,
          PIXMAN_r5g6b5,	0x2800
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ffcf00,
          PIXMAN_r5g6b5,	0x71ff,
          PIXMAN_a4r4g4b4,	0x30
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x333ffff,
          PIXMAN_a4r4g4b4,	0x2c00,
          PIXMAN_r3g3b2,	0x4
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1c2ffe8,
          PIXMAN_r5g6b5,	0xc200,
          PIXMAN_a8r8g8b8,	0xfeca41ff
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a2r2g2b2,	0x47,
          PIXMAN_a8r8g8b8,	0x2ffff00,
          PIXMAN_a8r8g8b8,	0x3aa0102
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ffeb00,
          PIXMAN_a4r4g4b4,	0xb493,
          PIXMAN_a4r4g4b4,	0x400
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2afffff,
          PIXMAN_r5g6b5,	0xcb,
          PIXMAN_r5g6b5,	0xc0
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x183ff00,
          PIXMAN_r3g3b2,	0x87,
          PIXMAN_r5g6b5,	0xae91
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x3ffff00,
          PIXMAN_a4r4g4b4,	0x2ba4,
          PIXMAN_r5g6b5,	0x2100
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x215cbc2,
          PIXMAN_a4r4g4b4,	0xafd3,
          PIXMAN_a8r8g8b8,	0x115b000
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x1853f65,
          PIXMAN_a8r8g8b8,	0xc68cdc41,
          PIXMAN_r5g6b5,	0x3
        },
        { PIXMAN_OP_CONJOINT_IN,
          PIXMAN_a8r8g8b8,	0x3ffff8f,
          PIXMAN_a4r4g4b4,	0x8824,
          PIXMAN_a4r4g4b4,	0x20
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x28e08e6,
          PIXMAN_a8r8g8b8,	0x2cffff31,
          PIXMAN_r5g6b5,	0x1805
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x1b500be,
          PIXMAN_r5g6b5,	0xd946,
          PIXMAN_r5g6b5,	0x9800
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x133ffb3,
          PIXMAN_a2r2g2b2,	0x42,
          PIXMAN_a8r8g8b8,	0x11553c
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x21aff81,
          PIXMAN_r3g3b2,	0xc7,
          PIXMAN_r5g6b5,	0x120
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x12e004f,
          PIXMAN_a4r4g4b4,	0xf617,
          PIXMAN_a4r4g4b4,	0x102
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x164861f,
          PIXMAN_r3g3b2,	0x4e,
          PIXMAN_r5g6b5,	0x19c0
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff0eff,
          PIXMAN_a8r8g8b8,	0xff5c00aa,
          PIXMAN_r5g6b5,	0x5800
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x1e4c60f,
          PIXMAN_a8r8g8b8,	0x38ff0e0c,
          PIXMAN_a4r4g4b4,	0xff2a
        },
        { PIXMAN_OP_DISJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff0000,
          PIXMAN_a8r8g8b8,	0x9f3d6700,
          PIXMAN_r5g6b5,	0xf3ff
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x205ffd0,
          PIXMAN_a8r8g8b8,	0xffc22b3b,
          PIXMAN_a8r8g8b8,	0x2040000
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x1ff0059,
          PIXMAN_r5g6b5,	0x74ff,
          PIXMAN_a8r8g8b8,	0x1730101
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x29affb8,
          PIXMAN_r5g6b5,	0xff,
          PIXMAN_a8r8g8b8,	0x2d25cff
        },
        { PIXMAN_OP_DISJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x1ffff8b,
          PIXMAN_a4r4g4b4,	0xff7b,
          PIXMAN_r5g6b5,	0x3a0
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x2a86ad7,
          PIXMAN_a4r4g4b4,	0xdc22,
          PIXMAN_a8r8g8b8,	0x2860000
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x3ff00ff,
          PIXMAN_r3g3b2,	0x33,
          PIXMAN_r5g6b5,	0x2000
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x1e50063,
          PIXMAN_a8r8g8b8,	0x35ff95d7,
          PIXMAN_r3g3b2,	0x20
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x2ffe6ff,
          PIXMAN_a8r8g8b8,	0x153ef297,
          PIXMAN_r5g6b5,	0x6d2
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x34ffeff,
          PIXMAN_a4r4g4b4,	0x2e,
          PIXMAN_r5g6b5,	0x1d
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x2ffeada,
          PIXMAN_r5g6b5,	0xabc6,
          PIXMAN_a8r8g8b8,	0xfd15b256
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x100ff00,
          PIXMAN_a8r8g8b8,	0xcff3f32,
          PIXMAN_a8r8g8b8,	0x3f00
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x1e1b0f1,
          PIXMAN_a8r8g8b8,	0xff63ff54,
          PIXMAN_r3g3b2,	0x5d
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0x2ffff23,
          PIXMAN_a8r8g8b8,	0x380094ff,
          PIXMAN_r5g6b5,	0x3a4b
        },
        { PIXMAN_OP_CONJOINT_ATOP,
          PIXMAN_a4r4g4b4,	0x1000,
          PIXMAN_r5g6b5,	0xca,
          PIXMAN_a8r8g8b8,	0x3434500
        },
        { PIXMAN_OP_DISJOINT_IN,
          PIXMAN_a8r8g8b8,	0x195ffe5,
          PIXMAN_a4r4g4b4,	0x3a29,
          PIXMAN_a8r8g8b8,	0x0
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a8r8g8b8,	0x139007a,
          PIXMAN_a4r4g4b4,	0x4979,
          PIXMAN_r5g6b5,	0x84
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xa9,
          PIXMAN_a4r4g4b4,	0xfa18,
          PIXMAN_a8r8g8b8,	0xabff67ff
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0x94,
          PIXMAN_a4r4g4b4,	0x5109,
          PIXMAN_a8r8g8b8,	0x3affffff
        },
        { PIXMAN_OP_COLOR_BURN,
          PIXMAN_r5g6b5,	0xd038,
          PIXMAN_r5g6b5,	0xff00,
          PIXMAN_r5g6b5,	0xf9a5
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a8r8g8b8,	0x543128ff,
          PIXMAN_a8r8g8b8,	0x7029ff,
          PIXMAN_a8r8g8b8,	0x316b1d7
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_r5g6b5,	0x53ff,
          PIXMAN_r5g6b5,	0x72ff,
          PIXMAN_a8r8g8b8,	0xffffdeff
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a8r8g8b8,	0x5b00002b,
          PIXMAN_a4r4g4b4,	0xc3,
          PIXMAN_a8r8g8b8,	0x23530be
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a8r8g8b8,	0xcefc0041,
          PIXMAN_a8r8g8b8,	0xf60d02,
          PIXMAN_a8r8g8b8,	0x1f2ffe5
        },
        { PIXMAN_OP_COLOR_DODGE,
          PIXMAN_r5g6b5,	0xffdb,
          PIXMAN_r5g6b5,	0xc700,
          PIXMAN_r5g6b5,	0x654
        },
        { PIXMAN_OP_COLOR_DODGE,
          PIXMAN_r5g6b5,	0xffc6,
          PIXMAN_r5g6b5,	0xff09,
          PIXMAN_r5g6b5,	0xfe58
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0x95,
          PIXMAN_r5g6b5,	0x1b4a,
          PIXMAN_a8r8g8b8,	0xab234cff
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0x95,
          PIXMAN_a4r4g4b4,	0x5e99,
          PIXMAN_a8r8g8b8,	0x3b1c1cdd
        },
        { PIXMAN_OP_COLOR_BURN,
          PIXMAN_r5g6b5,	0x22,
          PIXMAN_r5g6b5,	0xd00,
          PIXMAN_r5g6b5,	0xfbb1
        },
        { PIXMAN_OP_COLOR_DODGE,
          PIXMAN_r5g6b5,	0xffc8,
          PIXMAN_a8r8g8b8,	0xa1a3ffff,
          PIXMAN_r5g6b5,	0x44a
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a8r8g8b8,	0xffff7cff,
          PIXMAN_r5g6b5,	0x900,
          PIXMAN_a8r8g8b8,	0xffff94ec
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xa7,
          PIXMAN_r5g6b5,	0xff,
          PIXMAN_a8r8g8b8,	0xaa00cffe
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0x85,
          PIXMAN_r5g6b5,	0xffb3,
          PIXMAN_a8r8g8b8,	0xaaffff4a
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a8r8g8b8,	0x3500a118,
          PIXMAN_a4r4g4b4,	0x9942,
          PIXMAN_a8r8g8b8,	0x01ff405e
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xb5,
          PIXMAN_x4a4,	0xe,
          PIXMAN_a8r8g8b8,	0xffbaff
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a4r4g4b4,	0xe872,
          PIXMAN_x2r10g10b10, 0xa648ff00,
          PIXMAN_a2r10g10b10, 0x14ff00e8,
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x4d2db34,
          PIXMAN_a8,	0x19,
          PIXMAN_r5g6b5,	0x9700,
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x2ff0076,
          PIXMAN_a8r8g8b8,	0x2a0000,
          PIXMAN_r3g3b2,	0x0,
        },
        { PIXMAN_OP_CONJOINT_OVER_REVERSE,
          PIXMAN_a8r8g8b8,	0x14f00ff,
          PIXMAN_r5g6b5,	0xd48,
          PIXMAN_a4r4g4b4,	0x0,
        },
        { PIXMAN_OP_CONJOINT_OUT,
          PIXMAN_a8r8g8b8,	0x3d8bbff,
          PIXMAN_r5g6b5,	0x6900,
          PIXMAN_a8r8g8b8,	0x0,
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x2ff00ff,
          PIXMAN_a4r4g4b4,	0x2300,
          PIXMAN_r3g3b2,	0x0,
        },
        { PIXMAN_OP_SATURATE,
          PIXMAN_a8r8g8b8,	0x4d2db34,
          PIXMAN_a8r8g8b8,	0xff0019ff,
          PIXMAN_r5g6b5,	0x9700,
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0x100ac05,
          PIXMAN_r3g3b2,	0xef,
          PIXMAN_a2r2g2b2,	0xff,
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_a2r2g2b2,	0xbf,
          PIXMAN_null,	0x00,
          PIXMAN_r5g6b5,	0x7e
        },
        { PIXMAN_OP_DIFFERENCE,
          PIXMAN_r5g6b5,	0xffff,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x33
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_a8r8g8b8,	0x84c4ffd7,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0xffddff
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_a8r8g8b8,	0xff6e56,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x20ff1ade
        },
        { PIXMAN_OP_OVERLAY,
          PIXMAN_a4r4g4b4,	0xfe0,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0xbdff
        },
        { PIXMAN_OP_SCREEN,
          PIXMAN_a8r8g8b8,	0x9671ff,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x43
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_a2r2g2b2,	0xff,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0x39ff
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_r5g6b5,	0xffff,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0x1968
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_a4r4g4b4,	0x4247,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0xd8ffff
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_r5g6b5,	0xff00,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x79
        },
        { PIXMAN_OP_DIFFERENCE,
          PIXMAN_r3g3b2,	0xe0,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x39
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_a8r8g8b8,	0xfff8,
          PIXMAN_null,	0x00,
          PIXMAN_r3g3b2,	0xff
        },
        { PIXMAN_OP_COLOR_DODGE,
          PIXMAN_r5g6b5,	0x75fc,
          PIXMAN_null,	0x00,
          PIXMAN_r5g6b5,	0x11ff,
        },
        { PIXMAN_OP_COLOR_BURN,
          PIXMAN_r3g3b2,	0x52,
          PIXMAN_null,	0x00,
          PIXMAN_r5g6b5,	0xc627
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r5g6b5,	0x9f2b,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x4b00e7f5
        },
        { PIXMAN_OP_OVERLAY,
          PIXMAN_a8r8g8b8,	0x00dfff5c,
          PIXMAN_null,	0x00,
          PIXMAN_r5g6b5,	0x5e0f,
        },
        { PIXMAN_OP_COLOR_BURN,
          PIXMAN_a8r8g8b8,	0xff00121b,
          PIXMAN_null,	0x00,
          PIXMAN_r5g6b5,	0x3776
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_r5g6b5,	0x03e0,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x01003c00,
        },
        { PIXMAN_OP_OVER,
          PIXMAN_a8r8g8b8,	0x0f00c300,
          PIXMAN_null,	0x00,
          PIXMAN_x14r6g6b6,	0x003c0,
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a4r4g4b4,	0xd0c0,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x5300ea00,
        },
        { PIXMAN_OP_OVER,
          PIXMAN_a8r8g8b8,	0x20c6bf00,
          PIXMAN_null,	0x00,
          PIXMAN_r5g6b5,	0xb9ff
        },
        { PIXMAN_OP_OVER,
          PIXMAN_a8r8g8b8,	0x204ac7ff,
          PIXMAN_null,	0x00,
          PIXMAN_r5g6b5,	0xc1ff
        },
        { PIXMAN_OP_OVER_REVERSE,
          PIXMAN_r5g6b5,	0xffc3,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x102d00dd
        },
        { PIXMAN_OP_OVER_REVERSE,
          PIXMAN_r5g6b5,	0x1f00,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x1bdf0c89
        },
        { PIXMAN_OP_OVER_REVERSE,
          PIXMAN_r5g6b5,	0xf9d2,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x1076bcf7
        },
        { PIXMAN_OP_OVER_REVERSE,
          PIXMAN_r5g6b5,	0x00c3,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x1bfe9ae5
        },
        { PIXMAN_OP_OVER_REVERSE,
          PIXMAN_r5g6b5,	0x09ff,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x0b00c16c
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a2r2g2b2,	0xbc,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x9efff1ff
        },
        { PIXMAN_OP_DISJOINT_ATOP,
          PIXMAN_a4r4g4b4,	0xae5f,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0xf215b675
        },
        { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
          PIXMAN_a8r8g8b8,	0xce007980,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x80ffe4ad
        },
        { PIXMAN_OP_DISJOINT_XOR,
          PIXMAN_a8r8g8b8,	0xb8b07bea,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0x939c
        },
        { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
          PIXMAN_r5g6b5,	0x0063,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x10bb1ed7,
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_a2r2g2b2,	0xbf,
          PIXMAN_null,	0x00,
          PIXMAN_r5g6b5,	0x7e
        },
        { PIXMAN_OP_LIGHTEN,
          PIXMAN_a8r8g8b8,	0xffffff,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0xff3fffff
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_r3g3b2,	0x38,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x5b
        },
        { PIXMAN_OP_COLOR_DODGE,
          PIXMAN_a8r8g8b8,	0x2e9effff,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x77
        },
        { PIXMAN_OP_DIFFERENCE,
          PIXMAN_r5g6b5,	0xffff,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x33
        },
        { PIXMAN_OP_OVERLAY,
          PIXMAN_a8r8g8b8,	0xd0089ff,
          PIXMAN_null,	0x00,
          PIXMAN_r3g3b2,	0xb1
        },
        { PIXMAN_OP_OVERLAY,
          PIXMAN_r3g3b2,	0x8a,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0xcd0004
        },
        { PIXMAN_OP_COLOR_BURN,
          PIXMAN_a8r8g8b8,	0xffff1e3a,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0xcf00
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_a8r8g8b8,	0x84c4ffd7,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0xffddff
        },
        { PIXMAN_OP_DIFFERENCE,
          PIXMAN_a4r4g4b4,	0xfd75,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x7f
        },
        { PIXMAN_OP_LIGHTEN,
          PIXMAN_r3g3b2,	0xff,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0x63ff
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_a8r8g8b8,	0xff6e56,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x20ff1ade
        },
        { PIXMAN_OP_OVERLAY,
          PIXMAN_a4r4g4b4,	0xfe0,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0xbdff
        },
        { PIXMAN_OP_OVERLAY,
          PIXMAN_r5g6b5,	0x9799,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0x8d
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_a8r8g8b8,	0xe8ff1c33,
          PIXMAN_null,	0x00,
          PIXMAN_r5g6b5,	0x6200
        },
        { PIXMAN_OP_DIFFERENCE,
          PIXMAN_a8r8g8b8,	0x22ffffff,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x63
        },
        { PIXMAN_OP_SCREEN,
          PIXMAN_a8r8g8b8,	0x9671ff,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x43
        },
        { PIXMAN_OP_LIGHTEN,
          PIXMAN_a2r2g2b2,	0x83,
          PIXMAN_null,	0x00,
          PIXMAN_r5g6b5,	0xff
        },
        { PIXMAN_OP_OVERLAY,
          PIXMAN_r3g3b2,	0x0,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x97
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_r5g6b5,	0xb900,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x6800ff00
        },
        { PIXMAN_OP_OVERLAY,
          PIXMAN_a4r4g4b4,	0xff,
          PIXMAN_null,	0x00,
          PIXMAN_r3g3b2,	0x8e
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a4r4g4b4,	0xff00,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0xbc
        },
        { PIXMAN_OP_DIFFERENCE,
          PIXMAN_r5g6b5,	0xfffe,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0x90
        },
        { PIXMAN_OP_LIGHTEN,
          PIXMAN_r3g3b2,	0xff,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0xc35f
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_a2r2g2b2,	0xff,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0x39ff
        },
        { PIXMAN_OP_LIGHTEN,
          PIXMAN_a2r2g2b2,	0x1e,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0xbaff
        },
        { PIXMAN_OP_LIGHTEN,
          PIXMAN_a8r8g8b8,	0xb4ffff26,
          PIXMAN_null,	0x00,
          PIXMAN_r5g6b5,	0xff
        },
        { PIXMAN_OP_COLOR_DODGE,
          PIXMAN_a4r4g4b4,	0xe3ff,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0x878b
        },
        { PIXMAN_OP_OVERLAY,
          PIXMAN_a8r8g8b8,	0xff700044,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x6
        },
        { PIXMAN_OP_DARKEN,
          PIXMAN_a2r2g2b2,	0xb6,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0xcd00
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_a2r2g2b2,	0xfe,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x12
        },
        { PIXMAN_OP_LIGHTEN,
          PIXMAN_a8r8g8b8,	0xb1ff006c,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0xff7c
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r3g3b2,	0x4e,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x3c
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_r5g6b5,	0xffff,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0x1968
        },
        { PIXMAN_OP_COLOR_BURN,
          PIXMAN_r3g3b2,	0xe7,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x8cced6ac
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a4r4g4b4,	0xa500,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x1bff009d
        },
        { PIXMAN_OP_DIFFERENCE,
          PIXMAN_r5g6b5,	0x45ff,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x32
        },
        { PIXMAN_OP_OVERLAY,
          PIXMAN_a2r2g2b2,	0x18,
          PIXMAN_null,	0x00,
          PIXMAN_r5g6b5,	0xdc00
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_a4r4g4b4,	0x4247,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0xd8ffff
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_r5g6b5,	0xff00,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x79
        },
        { PIXMAN_OP_COLOR_BURN,
          PIXMAN_r3g3b2,	0xf,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x9fff00ff
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_a2r2g2b2,	0x93,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0xff
        },
        { PIXMAN_OP_LIGHTEN,
          PIXMAN_a2r2g2b2,	0xa3,
          PIXMAN_null,	0x00,
          PIXMAN_r3g3b2,	0xca
        },
        { PIXMAN_OP_DIFFERENCE,
          PIXMAN_r3g3b2,	0xe0,
          PIXMAN_null,	0x00,
          PIXMAN_a2r2g2b2,	0x39
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r3g3b2,	0x16,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x98ffff
        },
        { PIXMAN_OP_LIGHTEN,
          PIXMAN_r3g3b2,	0x96,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0x225f6c
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_a4r4g4b4,	0x12c7,
          PIXMAN_null,	0x00,
          PIXMAN_a4r4g4b4,	0xb100
        },
        { PIXMAN_OP_LIGHTEN,
          PIXMAN_a8r8g8b8,	0xffda91,
          PIXMAN_null,	0x00,
          PIXMAN_r3g3b2,	0x6a
        },
        { PIXMAN_OP_EXCLUSION,
          PIXMAN_a8r8g8b8,	0xfff8,
          PIXMAN_null,	0x00,
          PIXMAN_r3g3b2,	0xff
        },
        { PIXMAN_OP_SOFT_LIGHT,
          PIXMAN_a2r2g2b2,	0xff,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0xf0ff48ca
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r5g6b5,	0xf1ff,
          PIXMAN_r5g6b5,	0x6eff,
          PIXMAN_a8r8g8b8,	0xffffff,
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r5g6b5,	0xf1ff,
          PIXMAN_a8,	0xdf,
          PIXMAN_a8r8g8b8,	0xffffff,
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r5g6b5,	0xf1ff,
          PIXMAN_null,	0x00,
          PIXMAN_a8r8g8b8,	0xffffff,
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r5g6b5,	0xb867,
          PIXMAN_a4r4g4b4,	0x82d9,
          PIXMAN_a8r8g8b8,	0xffc5,
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r5g6b5,	0xa9f5,
          PIXMAN_r5g6b5,	0xadff,
          PIXMAN_a8r8g8b8,	0xffff00,
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r5g6b5,	0x4900,
          PIXMAN_r5g6b5,	0x865c,
          PIXMAN_a8r8g8b8,	0xebff,
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r5g6b5,	0xd9ff,
          PIXMAN_a8r8g8b8,	0xffffffff,
          PIXMAN_a8r8g8b8,	0x8ff0d,
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r5g6b5,	0x41ff,
          PIXMAN_a4r4g4b4,	0xcff,
          PIXMAN_a8r8g8b8,	0xe1ff00,
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r5g6b5,	0x91ff,
          PIXMAN_a2r2g2b2,	0xf3,
          PIXMAN_a8r8g8b8,	0xe4ffb4,
        },
        { PIXMAN_OP_HARD_LIGHT,
          PIXMAN_r5g6b5,	0xb9ff,
          PIXMAN_a2r2g2b2,	0xff,
          PIXMAN_a8r8g8b8,	0xffff,
        },
        { PIXMAN_OP_OVERLAY,
          PIXMAN_a8r8g8b8,	0x473affff,
          PIXMAN_r5g6b5,	0x2b00,
          PIXMAN_r5g6b5,	0x1ff,
        },
        { PIXMAN_OP_OVERLAY,
          PIXMAN_a8r8g8b8,	0xe4ff,
          PIXMAN_r3g3b2,	0xff,
          PIXMAN_r5g6b5,	0x89ff,
        },
    };
    
    static void
    fill (pixman_image_t *image, uint32_t pixel)
    {
        uint8_t *data = (uint8_t *)pixman_image_get_data (image);
        int bytes_per_pixel = PIXMAN_FORMAT_BPP (pixman_image_get_format (image)) / 8;
        int n_bytes = pixman_image_get_stride (image) * pixman_image_get_height (image);
        int i;
    
        switch (bytes_per_pixel)
        {
        case 4:
    	for (i = 0; i < n_bytes / 4; ++i)
    	    ((uint32_t *)data)[i] = pixel;
    	break;
    
        case 2:
    	pixel &= 0xffff;
    	for (i = 0; i < n_bytes / 2; ++i)
    	    ((uint16_t *)data)[i] = pixel;
    	break;
    
        case 1:
    	pixel &= 0xff;
    	for (i = 0; i < n_bytes; ++i)
    	    ((uint8_t *)data)[i] = pixel;
    	break;
    
        default:
    	assert (0);
    	break;
        }
    }
    
    static uint32_t
    access (pixman_image_t *image, int x, int y)
    {
        int bytes_per_pixel;
        int stride;
        uint32_t result;
        uint8_t *location;
    
        if (x < 0 || x >= image->bits.width || y < 0 || y >= image->bits.height)
            return 0;
    
        bytes_per_pixel = PIXMAN_FORMAT_BPP (image->bits.format) / 8;
        stride = image->bits.rowstride * 4;
    
        location = (uint8_t *)image->bits.bits + y * stride + x * bytes_per_pixel;
    
        if (bytes_per_pixel == 4)
            result = *(uint32_t *)location;
        else if (bytes_per_pixel == 2)
            result = *(uint16_t *)location;
        else if (bytes_per_pixel == 1)
            result = *(uint8_t *)location;
        else
    	assert (0);
    
        return result;
    }
    
    static pixman_bool_t
    verify (int test_no, const pixel_combination_t *combination, int size,
    	pixman_bool_t component_alpha)
    {
        pixman_image_t *src, *mask, *dest;
        pixel_checker_t src_checker, mask_checker, dest_checker;
        color_t source_color, mask_color, dest_color, reference_color;
        pixman_bool_t have_mask = (combination->mask_format != PIXMAN_null);
        pixman_bool_t result = TRUE;
        int i, j;
    
        /* Compute reference color */
        pixel_checker_init (&src_checker, combination->src_format);
        if (have_mask)
    	pixel_checker_init (&mask_checker, combination->mask_format);
        pixel_checker_init (&dest_checker, combination->dest_format);
    
        pixel_checker_convert_pixel_to_color (
    	&src_checker, combination->src_pixel, &source_color);
        if (combination->mask_format != PIXMAN_null)
        {
    	pixel_checker_convert_pixel_to_color (
    	    &mask_checker, combination->mask_pixel, &mask_color);
        }
        pixel_checker_convert_pixel_to_color (
    	&dest_checker, combination->dest_pixel, &dest_color);
    
        do_composite (combination->op,
    		  &source_color,
    		  have_mask? &mask_color : NULL,
    		  &dest_color,
    		  &reference_color, component_alpha);
    
        src = pixman_image_create_bits (
    	combination->src_format, size, size, NULL, -1);
        if (have_mask)
        {
    	mask = pixman_image_create_bits (
    	    combination->mask_format, size, size, NULL, -1);
    
    	pixman_image_set_component_alpha (mask, component_alpha);
        }
        dest = pixman_image_create_bits (
    	combination->dest_format, size, size, NULL, -1);
    
        fill (src, combination->src_pixel);
        if (have_mask)
    	fill (mask, combination->mask_pixel);
        fill (dest, combination->dest_pixel);
    
        pixman_image_composite32 (
    	combination->op, src, 
    	have_mask ? mask : NULL,
    	dest, 0, 0, 0, 0, 0, 0, size, size);
    
        for (j = 0; j < size; ++j)
        {
    	for (i = 0; i < size; ++i)
    	{
    	    uint32_t computed = access (dest, i, j);
    	    int32_t a, r, g, b;
    
    	    if (!pixel_checker_check (&dest_checker, computed, &reference_color))
    	    {
    		printf ("----------- Test %d failed ----------\n", test_no);
    
    		printf ("   operator:         %s (%s)\n", operator_name (combination->op),
    			have_mask? component_alpha ? "component alpha" : "unified alpha" : "no mask");
    		printf ("   src format:       %s\n", format_name (combination->src_format));
    		if (have_mask != PIXMAN_null)
    		    printf ("   mask format:      %s\n", format_name (combination->mask_format));
    		printf ("   dest format:      %s\n", format_name (combination->dest_format));
    
                    printf (" - source ARGB:      %f  %f  %f  %f   (pixel: %8x)\n",
                            source_color.a, source_color.r, source_color.g, source_color.b,
                            combination->src_pixel);
    		pixel_checker_split_pixel (&src_checker, combination->src_pixel,
    					   &a, &r, &g, &b);
                    printf ("                     %8d  %8d  %8d  %8d\n", a, r, g, b);
    
    		if (have_mask)
    		{
    		    printf (" - mask ARGB:        %f  %f  %f  %f   (pixel: %8x)\n",
    			    mask_color.a, mask_color.r, mask_color.g, mask_color.b,
    			    combination->mask_pixel);
    		    pixel_checker_split_pixel (&mask_checker, combination->mask_pixel,
    					       &a, &r, &g, &b);
    		    printf ("                     %8d  %8d  %8d  %8d\n", a, r, g, b);
    		}
    
                    printf (" - dest ARGB:        %f  %f  %f  %f   (pixel: %8x)\n",
                            dest_color.a, dest_color.r, dest_color.g, dest_color.b,
                            combination->dest_pixel);
    		pixel_checker_split_pixel (&dest_checker, combination->dest_pixel,
    					   &a, &r, &g, &b);
                    printf ("                     %8d  %8d  %8d  %8d\n", a, r, g, b);
    
                    pixel_checker_split_pixel (&dest_checker, computed, &a, &r, &g, &b);
                    printf (" - expected ARGB:    %f  %f  %f  %f\n",
                            reference_color.a, reference_color.r, reference_color.g, reference_color.b);
    
                    pixel_checker_get_min (&dest_checker, &reference_color, &a, &r, &g, &b);
                    printf ("   min acceptable:   %8d  %8d  %8d  %8d\n", a, r, g, b);
    
                    pixel_checker_split_pixel (&dest_checker, computed, &a, &r, &g, &b);
                    printf ("   got:              %8d  %8d  %8d  %8d   (pixel: %8x)\n", a, r, g, b, computed);
    
                    pixel_checker_get_max (&dest_checker, &reference_color, &a, &r, &g, &b);
                    printf ("   max acceptable:   %8d  %8d  %8d  %8d\n", a, r, g, b);
    
    		result = FALSE;
    		goto done;
    	    }
    	}
        }
    
    done:
        pixman_image_unref (src);
        pixman_image_unref (dest);
    
        return result;
    }
    
    int
    main (int argc, char **argv)
    {
        int result = 0;
        int i, j;
        int lo, hi;
    
        if (argc > 1)
        {
    	lo = atoi (argv[1]);
    	hi = lo + 1;
        }
        else
        {
    	lo = 0;
    	hi = ARRAY_LENGTH (regressions);
        }
    
        for (i = lo; i < hi; ++i)
        {
    	const pixel_combination_t *combination = &(regressions[i]);
    
    	for (j = 1; j < 34; ++j)
    	{
    	    int k, ca;
    
    	    ca = combination->mask_format == PIXMAN_null ? 1 : 2;
    
    	    for (k = 0; k < ca; ++k)
    	    {
    		if (!verify (i, combination, j, k))
    		{
    		    result = 1;
    		    goto next_regression;
    		}
    	    }
    	}
    
        next_regression:
    	;
        }
    
        return result;
    }