FFmpeg
uops_macros.h
Go to the documentation of this file.
1 /**
2  * This file is automatically generated. Do not edit manually.
3  * To regenerate, run: make fate-sws-uops-macros GEN=1
4  */
5 
6 #ifndef SWSCALE_UOPS_MACROS_H
7 #define SWSCALE_UOPS_MACROS_H
8 
9 /**
10  * Boilerplate helper macros, for template-based backends. These will be
11  * instantiated like this, with parameters in struct order:
12  * MACRO(__VA_ARGS__, NAME, UOP, TYPE, MASK, [PARAMS,])
13  * The _STRUCT variants pass all arguments in C struct syntax, while the
14  * plain variants give them as separate C values (e.g. for use in calls)
15  */
16 #define SWS_GLUE3(x, y, z) x ## _ ## y ## _ ## z
17 #define SWS_FOR(TYPE, UOP, MACRO, ...) \
18  SWS_GLUE3(SWS_FOR, TYPE, UOP)(MACRO, __VA_ARGS__)
19 #define SWS_FOR_STRUCT(TYPE, UOP, MACRO, ...) \
20  SWS_GLUE3(SWS_FOR_STRUCT, TYPE, UOP)(MACRO, __VA_ARGS__)
21 
22 #define SWS_FOR_U8_READ_PLANAR(MACRO, ...) \
23  MACRO(__VA_ARGS__, u8_read_planar_x , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR , 0x1) \
24  MACRO(__VA_ARGS__, u8_read_planar_xy , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR , 0x3) \
25  MACRO(__VA_ARGS__, u8_read_planar_xyz , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR , 0x7) \
26  MACRO(__VA_ARGS__, u8_read_planar_xyzw , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR , 0xf)
27 #define SWS_FOR_STRUCT_U8_READ_PLANAR(MACRO, ...) \
28  MACRO(__VA_ARGS__, u8_read_planar_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR , .mask = 0x1) \
29  MACRO(__VA_ARGS__, u8_read_planar_xy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR , .mask = 0x3) \
30  MACRO(__VA_ARGS__, u8_read_planar_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR , .mask = 0x7) \
31  MACRO(__VA_ARGS__, u8_read_planar_xyzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR , .mask = 0xf)
32 #define SWS_FOR_U8_READ_PLANAR_FH(MACRO, ...) \
33  MACRO(__VA_ARGS__, u8_read_planar_fh_x_f32 , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR_FH , 0x1, SWS_PIXEL_F32) \
34  MACRO(__VA_ARGS__, u8_read_planar_fh_xy_f32 , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR_FH , 0x3, SWS_PIXEL_F32) \
35  MACRO(__VA_ARGS__, u8_read_planar_fh_xyz_f32 , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR_FH , 0x7, SWS_PIXEL_F32) \
36  MACRO(__VA_ARGS__, u8_read_planar_fh_xyzw_f32 , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR_FH , 0xf, SWS_PIXEL_F32)
37 #define SWS_FOR_STRUCT_U8_READ_PLANAR_FH(MACRO, ...) \
38  MACRO(__VA_ARGS__, u8_read_planar_fh_x_f32 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR_FH , .mask = 0x1, .par.filter.type = SWS_PIXEL_F32) \
39  MACRO(__VA_ARGS__, u8_read_planar_fh_xy_f32 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR_FH , .mask = 0x3, .par.filter.type = SWS_PIXEL_F32) \
40  MACRO(__VA_ARGS__, u8_read_planar_fh_xyz_f32 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR_FH , .mask = 0x7, .par.filter.type = SWS_PIXEL_F32) \
41  MACRO(__VA_ARGS__, u8_read_planar_fh_xyzw_f32 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR_FH , .mask = 0xf, .par.filter.type = SWS_PIXEL_F32)
42 #define SWS_FOR_U8_READ_PLANAR_FV(MACRO, ...) \
43  MACRO(__VA_ARGS__, u8_read_planar_fv_x_f32 , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR_FV , 0x1, SWS_PIXEL_F32) \
44  MACRO(__VA_ARGS__, u8_read_planar_fv_xy_f32 , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR_FV , 0x3, SWS_PIXEL_F32) \
45  MACRO(__VA_ARGS__, u8_read_planar_fv_xyz_f32 , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR_FV , 0x7, SWS_PIXEL_F32) \
46  MACRO(__VA_ARGS__, u8_read_planar_fv_xyzw_f32 , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR_FV , 0xf, SWS_PIXEL_F32)
47 #define SWS_FOR_STRUCT_U8_READ_PLANAR_FV(MACRO, ...) \
48  MACRO(__VA_ARGS__, u8_read_planar_fv_x_f32 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR_FV , .mask = 0x1, .par.filter.type = SWS_PIXEL_F32) \
49  MACRO(__VA_ARGS__, u8_read_planar_fv_xy_f32 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR_FV , .mask = 0x3, .par.filter.type = SWS_PIXEL_F32) \
50  MACRO(__VA_ARGS__, u8_read_planar_fv_xyz_f32 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR_FV , .mask = 0x7, .par.filter.type = SWS_PIXEL_F32) \
51  MACRO(__VA_ARGS__, u8_read_planar_fv_xyzw_f32 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR_FV , .mask = 0xf, .par.filter.type = SWS_PIXEL_F32)
52 #define SWS_FOR_U8_READ_PLANAR_FV_FMA(MACRO, ...) \
53  MACRO(__VA_ARGS__, u8_read_planar_fv_fma_x_f32 , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR_FV_FMA, 0x1, SWS_PIXEL_F32) \
54  MACRO(__VA_ARGS__, u8_read_planar_fv_fma_xy_f32 , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR_FV_FMA, 0x3, SWS_PIXEL_F32) \
55  MACRO(__VA_ARGS__, u8_read_planar_fv_fma_xyz_f32 , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR_FV_FMA, 0x7, SWS_PIXEL_F32) \
56  MACRO(__VA_ARGS__, u8_read_planar_fv_fma_xyzw_f32 , SWS_PIXEL_U8 , SWS_UOP_READ_PLANAR_FV_FMA, 0xf, SWS_PIXEL_F32)
57 #define SWS_FOR_STRUCT_U8_READ_PLANAR_FV_FMA(MACRO, ...) \
58  MACRO(__VA_ARGS__, u8_read_planar_fv_fma_x_f32 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR_FV_FMA, .mask = 0x1, .par.filter.type = SWS_PIXEL_F32) \
59  MACRO(__VA_ARGS__, u8_read_planar_fv_fma_xy_f32 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR_FV_FMA, .mask = 0x3, .par.filter.type = SWS_PIXEL_F32) \
60  MACRO(__VA_ARGS__, u8_read_planar_fv_fma_xyz_f32 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR_FV_FMA, .mask = 0x7, .par.filter.type = SWS_PIXEL_F32) \
61  MACRO(__VA_ARGS__, u8_read_planar_fv_fma_xyzw_f32 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PLANAR_FV_FMA, .mask = 0xf, .par.filter.type = SWS_PIXEL_F32)
62 #define SWS_FOR_U8_READ_PACKED(MACRO, ...) \
63  MACRO(__VA_ARGS__, u8_read_packed_xy , SWS_PIXEL_U8 , SWS_UOP_READ_PACKED , 0x3) \
64  MACRO(__VA_ARGS__, u8_read_packed_xyz , SWS_PIXEL_U8 , SWS_UOP_READ_PACKED , 0x7) \
65  MACRO(__VA_ARGS__, u8_read_packed_xyzw , SWS_PIXEL_U8 , SWS_UOP_READ_PACKED , 0xf)
66 #define SWS_FOR_STRUCT_U8_READ_PACKED(MACRO, ...) \
67  MACRO(__VA_ARGS__, u8_read_packed_xy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PACKED , .mask = 0x3) \
68  MACRO(__VA_ARGS__, u8_read_packed_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PACKED , .mask = 0x7) \
69  MACRO(__VA_ARGS__, u8_read_packed_xyzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PACKED , .mask = 0xf)
70 #define SWS_FOR_U8_READ_NIBBLE(MACRO, ...) \
71  MACRO(__VA_ARGS__, u8_read_nibble_x , SWS_PIXEL_U8 , SWS_UOP_READ_NIBBLE , 0x1)
72 #define SWS_FOR_STRUCT_U8_READ_NIBBLE(MACRO, ...) \
73  MACRO(__VA_ARGS__, u8_read_nibble_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_NIBBLE , .mask = 0x1)
74 #define SWS_FOR_U8_READ_BIT(MACRO, ...) \
75  MACRO(__VA_ARGS__, u8_read_bit_x , SWS_PIXEL_U8 , SWS_UOP_READ_BIT , 0x1)
76 #define SWS_FOR_STRUCT_U8_READ_BIT(MACRO, ...) \
77  MACRO(__VA_ARGS__, u8_read_bit_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_BIT , .mask = 0x1)
78 #define SWS_FOR_U8_WRITE_PLANAR(MACRO, ...) \
79  MACRO(__VA_ARGS__, u8_write_planar_x , SWS_PIXEL_U8 , SWS_UOP_WRITE_PLANAR , 0x1) \
80  MACRO(__VA_ARGS__, u8_write_planar_xy , SWS_PIXEL_U8 , SWS_UOP_WRITE_PLANAR , 0x3) \
81  MACRO(__VA_ARGS__, u8_write_planar_xyz , SWS_PIXEL_U8 , SWS_UOP_WRITE_PLANAR , 0x7) \
82  MACRO(__VA_ARGS__, u8_write_planar_xyzw , SWS_PIXEL_U8 , SWS_UOP_WRITE_PLANAR , 0xf)
83 #define SWS_FOR_STRUCT_U8_WRITE_PLANAR(MACRO, ...) \
84  MACRO(__VA_ARGS__, u8_write_planar_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x1) \
85  MACRO(__VA_ARGS__, u8_write_planar_xy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x3) \
86  MACRO(__VA_ARGS__, u8_write_planar_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x7) \
87  MACRO(__VA_ARGS__, u8_write_planar_xyzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PLANAR , .mask = 0xf)
88 #define SWS_FOR_U8_WRITE_PACKED(MACRO, ...) \
89  MACRO(__VA_ARGS__, u8_write_packed_xy , SWS_PIXEL_U8 , SWS_UOP_WRITE_PACKED , 0x3) \
90  MACRO(__VA_ARGS__, u8_write_packed_xyz , SWS_PIXEL_U8 , SWS_UOP_WRITE_PACKED , 0x7) \
91  MACRO(__VA_ARGS__, u8_write_packed_xyzw , SWS_PIXEL_U8 , SWS_UOP_WRITE_PACKED , 0xf)
92 #define SWS_FOR_STRUCT_U8_WRITE_PACKED(MACRO, ...) \
93  MACRO(__VA_ARGS__, u8_write_packed_xy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PACKED , .mask = 0x3) \
94  MACRO(__VA_ARGS__, u8_write_packed_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PACKED , .mask = 0x7) \
95  MACRO(__VA_ARGS__, u8_write_packed_xyzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PACKED , .mask = 0xf)
96 #define SWS_FOR_U8_WRITE_NIBBLE(MACRO, ...) \
97  MACRO(__VA_ARGS__, u8_write_nibble_x , SWS_PIXEL_U8 , SWS_UOP_WRITE_NIBBLE , 0x1)
98 #define SWS_FOR_STRUCT_U8_WRITE_NIBBLE(MACRO, ...) \
99  MACRO(__VA_ARGS__, u8_write_nibble_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_NIBBLE , .mask = 0x1)
100 #define SWS_FOR_U8_WRITE_BIT(MACRO, ...) \
101  MACRO(__VA_ARGS__, u8_write_bit_x , SWS_PIXEL_U8 , SWS_UOP_WRITE_BIT , 0x1)
102 #define SWS_FOR_STRUCT_U8_WRITE_BIT(MACRO, ...) \
103  MACRO(__VA_ARGS__, u8_write_bit_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_BIT , .mask = 0x1)
104 #define SWS_FOR_U8_PERMUTE(MACRO, ...) \
105  MACRO(__VA_ARGS__, u8_permute_x_y , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x1, 1, 0, 2, 3) \
106  MACRO(__VA_ARGS__, u8_permute_x_z , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x1, 2, 1, 0, 3) \
107  MACRO(__VA_ARGS__, u8_permute_x_w , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x1, 3, 1, 2, 0) \
108  MACRO(__VA_ARGS__, u8_permute_y_w , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x2, 0, 3, 2, 1) \
109  MACRO(__VA_ARGS__, u8_permute_y_x , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x2, 1, 0, 2, 3) \
110  MACRO(__VA_ARGS__, u8_permute_xy_yx , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x3, 1, 0, 2, 3) \
111  MACRO(__VA_ARGS__, u8_permute_xy_yw , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x3, 1, 3, 2, 0) \
112  MACRO(__VA_ARGS__, u8_permute_xy_zw , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x3, 2, 3, 0, 1) \
113  MACRO(__VA_ARGS__, u8_permute_xy_wx , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x3, 3, 0, 2, 1) \
114  MACRO(__VA_ARGS__, u8_permute_z_x , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x4, 1, 2, 0, 3) \
115  MACRO(__VA_ARGS__, u8_permute_xz_zx , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x5, 2, 1, 0, 3) \
116  MACRO(__VA_ARGS__, u8_permute_yz_zy , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x6, 0, 2, 1, 3) \
117  MACRO(__VA_ARGS__, u8_permute_xyz_yzx , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x7, 1, 2, 0, 3) \
118  MACRO(__VA_ARGS__, u8_permute_xyz_yzw , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x7, 1, 2, 3, 0) \
119  MACRO(__VA_ARGS__, u8_permute_xyz_zxy , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x7, 2, 0, 1, 3) \
120  MACRO(__VA_ARGS__, u8_permute_xyz_zwy , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x7, 2, 3, 1, 0) \
121  MACRO(__VA_ARGS__, u8_permute_xyz_wzy , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x7, 3, 2, 1, 0) \
122  MACRO(__VA_ARGS__, u8_permute_w_x , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x8, 3, 1, 2, 0) \
123  MACRO(__VA_ARGS__, u8_permute_yw_wy , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xa, 0, 3, 2, 1) \
124  MACRO(__VA_ARGS__, u8_permute_zw_xz , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xc, 3, 1, 0, 2) \
125  MACRO(__VA_ARGS__, u8_permute_xzw_zwx , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xd, 2, 1, 3, 0) \
126  MACRO(__VA_ARGS__, u8_permute_xzw_wxz , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xd, 3, 1, 0, 2) \
127  MACRO(__VA_ARGS__, u8_permute_yzw_zwy , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xe, 0, 2, 3, 1) \
128  MACRO(__VA_ARGS__, u8_permute_yzw_xyz , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xe, 3, 0, 1, 2) \
129  MACRO(__VA_ARGS__, u8_permute_yzw_zxy , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xe, 3, 2, 0, 1) \
130  MACRO(__VA_ARGS__, u8_permute_yzw_zyx , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xe, 3, 2, 1, 0) \
131  MACRO(__VA_ARGS__, u8_permute_xyzw_yzwx , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 1, 2, 3, 0) \
132  MACRO(__VA_ARGS__, u8_permute_xyzw_wxyz , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 3, 0, 1, 2) \
133  MACRO(__VA_ARGS__, u8_permute_xyzw_wzxy , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 3, 2, 0, 1) \
134  MACRO(__VA_ARGS__, u8_permute_xyzw_wzyx , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 3, 2, 1, 0)
135 #define SWS_FOR_STRUCT_U8_PERMUTE(MACRO, ...) \
136  MACRO(__VA_ARGS__, u8_permute_x_y , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x1, .par.swizzle.in = {1, 0, 2, 3}) \
137  MACRO(__VA_ARGS__, u8_permute_x_z , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x1, .par.swizzle.in = {2, 1, 0, 3}) \
138  MACRO(__VA_ARGS__, u8_permute_x_w , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x1, .par.swizzle.in = {3, 1, 2, 0}) \
139  MACRO(__VA_ARGS__, u8_permute_y_w , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x2, .par.swizzle.in = {0, 3, 2, 1}) \
140  MACRO(__VA_ARGS__, u8_permute_y_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x2, .par.swizzle.in = {1, 0, 2, 3}) \
141  MACRO(__VA_ARGS__, u8_permute_xy_yx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x3, .par.swizzle.in = {1, 0, 2, 3}) \
142  MACRO(__VA_ARGS__, u8_permute_xy_yw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x3, .par.swizzle.in = {1, 3, 2, 0}) \
143  MACRO(__VA_ARGS__, u8_permute_xy_zw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x3, .par.swizzle.in = {2, 3, 0, 1}) \
144  MACRO(__VA_ARGS__, u8_permute_xy_wx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x3, .par.swizzle.in = {3, 0, 2, 1}) \
145  MACRO(__VA_ARGS__, u8_permute_z_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x4, .par.swizzle.in = {1, 2, 0, 3}) \
146  MACRO(__VA_ARGS__, u8_permute_xz_zx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x5, .par.swizzle.in = {2, 1, 0, 3}) \
147  MACRO(__VA_ARGS__, u8_permute_yz_zy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x6, .par.swizzle.in = {0, 2, 1, 3}) \
148  MACRO(__VA_ARGS__, u8_permute_xyz_yzx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {1, 2, 0, 3}) \
149  MACRO(__VA_ARGS__, u8_permute_xyz_yzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {1, 2, 3, 0}) \
150  MACRO(__VA_ARGS__, u8_permute_xyz_zxy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {2, 0, 1, 3}) \
151  MACRO(__VA_ARGS__, u8_permute_xyz_zwy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {2, 3, 1, 0}) \
152  MACRO(__VA_ARGS__, u8_permute_xyz_wzy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {3, 2, 1, 0}) \
153  MACRO(__VA_ARGS__, u8_permute_w_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x8, .par.swizzle.in = {3, 1, 2, 0}) \
154  MACRO(__VA_ARGS__, u8_permute_yw_wy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xa, .par.swizzle.in = {0, 3, 2, 1}) \
155  MACRO(__VA_ARGS__, u8_permute_zw_xz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xc, .par.swizzle.in = {3, 1, 0, 2}) \
156  MACRO(__VA_ARGS__, u8_permute_xzw_zwx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xd, .par.swizzle.in = {2, 1, 3, 0}) \
157  MACRO(__VA_ARGS__, u8_permute_xzw_wxz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xd, .par.swizzle.in = {3, 1, 0, 2}) \
158  MACRO(__VA_ARGS__, u8_permute_yzw_zwy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.swizzle.in = {0, 2, 3, 1}) \
159  MACRO(__VA_ARGS__, u8_permute_yzw_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.swizzle.in = {3, 0, 1, 2}) \
160  MACRO(__VA_ARGS__, u8_permute_yzw_zxy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.swizzle.in = {3, 2, 0, 1}) \
161  MACRO(__VA_ARGS__, u8_permute_yzw_zyx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.swizzle.in = {3, 2, 1, 0}) \
162  MACRO(__VA_ARGS__, u8_permute_xyzw_yzwx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.swizzle.in = {1, 2, 3, 0}) \
163  MACRO(__VA_ARGS__, u8_permute_xyzw_wxyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.swizzle.in = {3, 0, 1, 2}) \
164  MACRO(__VA_ARGS__, u8_permute_xyzw_wzxy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.swizzle.in = {3, 2, 0, 1}) \
165  MACRO(__VA_ARGS__, u8_permute_xyzw_wzyx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.swizzle.in = {3, 2, 1, 0})
166 #define SWS_FOR_U8_COPY(MACRO, ...) \
167  MACRO(__VA_ARGS__, u8_copy_yz_xx , SWS_PIXEL_U8 , SWS_UOP_COPY , 0x6, 0, 0, 0, 3) \
168  MACRO(__VA_ARGS__, u8_copy_yzw_xxx , SWS_PIXEL_U8 , SWS_UOP_COPY , 0xe, 0, 0, 0, 0) \
169  MACRO(__VA_ARGS__, u8_copy_yzw_xxy , SWS_PIXEL_U8 , SWS_UOP_COPY , 0xe, 0, 0, 0, 1) \
170  MACRO(__VA_ARGS__, u8_copy_xyzw_yxxx , SWS_PIXEL_U8 , SWS_UOP_COPY , 0xf, 1, 0, 0, 0)
171 #define SWS_FOR_STRUCT_U8_COPY(MACRO, ...) \
172  MACRO(__VA_ARGS__, u8_copy_yz_xx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_COPY , .mask = 0x6, .par.swizzle.in = {0, 0, 0, 3}) \
173  MACRO(__VA_ARGS__, u8_copy_yzw_xxx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_COPY , .mask = 0xe, .par.swizzle.in = {0, 0, 0, 0}) \
174  MACRO(__VA_ARGS__, u8_copy_yzw_xxy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_COPY , .mask = 0xe, .par.swizzle.in = {0, 0, 0, 1}) \
175  MACRO(__VA_ARGS__, u8_copy_xyzw_yxxx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_COPY , .mask = 0xf, .par.swizzle.in = {1, 0, 0, 0})
176 #define SWS_FOR_U8_MOVE(MACRO, ...) \
177  MACRO(__VA_ARGS__, u8_move_x_y , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0) \
178  MACRO(__VA_ARGS__, u8_move_x_z , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
179  MACRO(__VA_ARGS__, u8_move_x_w , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0) \
180  MACRO(__VA_ARGS__, u8_move_y_x , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
181  MACRO(__VA_ARGS__, u8_move_y_w , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 1, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0) \
182  MACRO(__VA_ARGS__, u8_move_z_x , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
183  MACRO(__VA_ARGS__, u8_move_w_x , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
184  MACRO(__VA_ARGS__, u8_move_xy_yw , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 2, 0, 1, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0) \
185  MACRO(__VA_ARGS__, u8_move_xy_zw , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 2, 0, 1, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0) \
186  MACRO(__VA_ARGS__, u8_move_yx_xw , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 2, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0) \
187  MACRO(__VA_ARGS__, u8_move_yz_xx , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
188  MACRO(__VA_ARGS__, u8_move_wz_zx , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 2, 3, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
189  MACRO(__VA_ARGS__, u8_move_xyz_yzw , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 3, 0, 1, 2, 0, 0, 0, 1, 2, 3, 0, 0, 0) \
190  MACRO(__VA_ARGS__, u8_move_xzy_zyw , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 3, 0, 2, 1, 0, 0, 0, 2, 1, 3, 0, 0, 0) \
191  MACRO(__VA_ARGS__, u8_move_yzw_xxx , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 3, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
192  MACRO(__VA_ARGS__, u8_move_zwy_xyx , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 3, 2, 3, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0) \
193  MACRO(__VA_ARGS__, u8_move_wyz_yzx , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 3, 3, 1, 2, 0, 0, 0, 1, 2, 0, 0, 0, 0) \
194  MACRO(__VA_ARGS__, u8_move_wzy_zyx , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 3, 3, 2, 1, 0, 0, 0, 2, 1, 0, 0, 0, 0) \
195  MACRO(__VA_ARGS__, u8_move_txy_xyt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 3, -1, 0, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0) \
196  MACRO(__VA_ARGS__, u8_move_txz_xzt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 3, -1, 0, 2, 0, 0, 0, 0, 2, -1, 0, 0, 0) \
197  MACRO(__VA_ARGS__, u8_move_tyz_yzt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 3, -1, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0, 0) \
198  MACRO(__VA_ARGS__, u8_move_tyw_ywt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 3, -1, 1, 3, 0, 0, 0, 1, 3, -1, 0, 0, 0) \
199  MACRO(__VA_ARGS__, u8_move_xtyz_wyzt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 4, 0, -1, 1, 2, 0, 0, 3, 1, 2, -1, 0, 0) \
200  MACRO(__VA_ARGS__, u8_move_zxyw_xyzz , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 4, 2, 0, 1, 3, 0, 0, 0, 1, 2, 2, 0, 0) \
201  MACRO(__VA_ARGS__, u8_move_wtyz_xyzt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 4, 3, -1, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0) \
202  MACRO(__VA_ARGS__, u8_move_txyz_xyzt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 4, -1, 0, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0) \
203  MACRO(__VA_ARGS__, u8_move_txzy_xzyt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 4, -1, 0, 2, 1, 0, 0, 0, 2, 1, -1, 0, 0) \
204  MACRO(__VA_ARGS__, u8_move_txzw_xzwt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 4, -1, 0, 2, 3, 0, 0, 0, 2, 3, -1, 0, 0) \
205  MACRO(__VA_ARGS__, u8_move_txwz_xwzt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 4, -1, 0, 3, 2, 0, 0, 0, 3, 2, -1, 0, 0) \
206  MACRO(__VA_ARGS__, u8_move_tyzw_yzwt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 4, -1, 1, 2, 3, 0, 0, 1, 2, 3, -1, 0, 0) \
207  MACRO(__VA_ARGS__, u8_move_txyzw_xyzwt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 5, -1, 0, 1, 2, 3, 0, 0, 1, 2, 3, -1, 0) \
208  MACRO(__VA_ARGS__, u8_move_txwyz_xwyzt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 5, -1, 0, 3, 1, 2, 0, 0, 3, 1, 2, -1, 0) \
209  MACRO(__VA_ARGS__, u8_move_txwzy_xwzyt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 5, -1, 0, 3, 2, 1, 0, 0, 3, 2, 1, -1, 0) \
210  MACRO(__VA_ARGS__, u8_move_txwtyz_xwtyzt , SWS_PIXEL_U8 , SWS_UOP_MOVE , 0x0, 6, -1, 0, 3, -1, 1, 2, 0, 3, -1, 1, 2, -1)
211 #define SWS_FOR_STRUCT_U8_MOVE(MACRO, ...) \
212  MACRO(__VA_ARGS__, u8_move_x_y , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {1, 0, 0, 0, 0, 0}) \
213  MACRO(__VA_ARGS__, u8_move_x_z , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {2, 0, 0, 0, 0, 0}) \
214  MACRO(__VA_ARGS__, u8_move_x_w , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {3, 0, 0, 0, 0, 0}) \
215  MACRO(__VA_ARGS__, u8_move_y_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
216  MACRO(__VA_ARGS__, u8_move_y_w , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {3, 0, 0, 0, 0, 0}) \
217  MACRO(__VA_ARGS__, u8_move_z_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {2, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
218  MACRO(__VA_ARGS__, u8_move_w_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {3, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
219  MACRO(__VA_ARGS__, u8_move_xy_yw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {0, 1, 0, 0, 0, 0}, .par.move.src = {1, 3, 0, 0, 0, 0}) \
220  MACRO(__VA_ARGS__, u8_move_xy_zw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {0, 1, 0, 0, 0, 0}, .par.move.src = {2, 3, 0, 0, 0, 0}) \
221  MACRO(__VA_ARGS__, u8_move_yx_xw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {0, 3, 0, 0, 0, 0}) \
222  MACRO(__VA_ARGS__, u8_move_yz_xx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {1, 2, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
223  MACRO(__VA_ARGS__, u8_move_wz_zx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {3, 2, 0, 0, 0, 0}, .par.move.src = {2, 0, 0, 0, 0, 0}) \
224  MACRO(__VA_ARGS__, u8_move_xyz_yzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {0, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, 3, 0, 0, 0}) \
225  MACRO(__VA_ARGS__, u8_move_xzy_zyw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {0, 2, 1, 0, 0, 0}, .par.move.src = {2, 1, 3, 0, 0, 0}) \
226  MACRO(__VA_ARGS__, u8_move_yzw_xxx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {1, 2, 3, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
227  MACRO(__VA_ARGS__, u8_move_zwy_xyx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {2, 3, 1, 0, 0, 0}, .par.move.src = {0, 1, 0, 0, 0, 0}) \
228  MACRO(__VA_ARGS__, u8_move_wyz_yzx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {3, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, 0, 0, 0, 0}) \
229  MACRO(__VA_ARGS__, u8_move_wzy_zyx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {3, 2, 1, 0, 0, 0}, .par.move.src = {2, 1, 0, 0, 0, 0}) \
230  MACRO(__VA_ARGS__, u8_move_txy_xyt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {-1, 0, 1, 0, 0, 0}, .par.move.src = {0, 1, -1, 0, 0, 0}) \
231  MACRO(__VA_ARGS__, u8_move_txz_xzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {-1, 0, 2, 0, 0, 0}, .par.move.src = {0, 2, -1, 0, 0, 0}) \
232  MACRO(__VA_ARGS__, u8_move_tyz_yzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {-1, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, -1, 0, 0, 0}) \
233  MACRO(__VA_ARGS__, u8_move_tyw_ywt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {-1, 1, 3, 0, 0, 0}, .par.move.src = {1, 3, -1, 0, 0, 0}) \
234  MACRO(__VA_ARGS__, u8_move_xtyz_wyzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {0, -1, 1, 2, 0, 0}, .par.move.src = {3, 1, 2, -1, 0, 0}) \
235  MACRO(__VA_ARGS__, u8_move_zxyw_xyzz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {2, 0, 1, 3, 0, 0}, .par.move.src = {0, 1, 2, 2, 0, 0}) \
236  MACRO(__VA_ARGS__, u8_move_wtyz_xyzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {3, -1, 1, 2, 0, 0}, .par.move.src = {0, 1, 2, -1, 0, 0}) \
237  MACRO(__VA_ARGS__, u8_move_txyz_xyzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 1, 2, 0, 0}, .par.move.src = {0, 1, 2, -1, 0, 0}) \
238  MACRO(__VA_ARGS__, u8_move_txzy_xzyt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 2, 1, 0, 0}, .par.move.src = {0, 2, 1, -1, 0, 0}) \
239  MACRO(__VA_ARGS__, u8_move_txzw_xzwt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 2, 3, 0, 0}, .par.move.src = {0, 2, 3, -1, 0, 0}) \
240  MACRO(__VA_ARGS__, u8_move_txwz_xwzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 3, 2, 0, 0}, .par.move.src = {0, 3, 2, -1, 0, 0}) \
241  MACRO(__VA_ARGS__, u8_move_tyzw_yzwt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {-1, 1, 2, 3, 0, 0}, .par.move.src = {1, 2, 3, -1, 0, 0}) \
242  MACRO(__VA_ARGS__, u8_move_txyzw_xyzwt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 1, 2, 3, 0}, .par.move.src = {0, 1, 2, 3, -1, 0}) \
243  MACRO(__VA_ARGS__, u8_move_txwyz_xwyzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 3, 1, 2, 0}, .par.move.src = {0, 3, 1, 2, -1, 0}) \
244  MACRO(__VA_ARGS__, u8_move_txwzy_xwzyt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 3, 2, 1, 0}, .par.move.src = {0, 3, 2, 1, -1, 0}) \
245  MACRO(__VA_ARGS__, u8_move_txwtyz_xwtyzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 6, .par.move.dst = {-1, 0, 3, -1, 1, 2}, .par.move.src = {0, 3, -1, 1, 2, -1})
246 #define SWS_FOR_U8_SWAP_BYTES(MACRO, ...)
247 #define SWS_FOR_STRUCT_U8_SWAP_BYTES(MACRO, ...)
248 #define SWS_FOR_U8_EXPAND_BIT(MACRO, ...) \
249  MACRO(__VA_ARGS__, u8_expand_bit_x , SWS_PIXEL_U8 , SWS_UOP_EXPAND_BIT , 0x1)
250 #define SWS_FOR_STRUCT_U8_EXPAND_BIT(MACRO, ...) \
251  MACRO(__VA_ARGS__, u8_expand_bit_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_EXPAND_BIT , .mask = 0x1)
252 #define SWS_FOR_U8_EXPAND_PAIR(MACRO, ...) \
253  MACRO(__VA_ARGS__, u8_expand_pair_x , SWS_PIXEL_U8 , SWS_UOP_EXPAND_PAIR , 0x1) \
254  MACRO(__VA_ARGS__, u8_expand_pair_xy , SWS_PIXEL_U8 , SWS_UOP_EXPAND_PAIR , 0x3) \
255  MACRO(__VA_ARGS__, u8_expand_pair_xyz , SWS_PIXEL_U8 , SWS_UOP_EXPAND_PAIR , 0x7) \
256  MACRO(__VA_ARGS__, u8_expand_pair_yzw , SWS_PIXEL_U8 , SWS_UOP_EXPAND_PAIR , 0xe) \
257  MACRO(__VA_ARGS__, u8_expand_pair_xyzw , SWS_PIXEL_U8 , SWS_UOP_EXPAND_PAIR , 0xf)
258 #define SWS_FOR_STRUCT_U8_EXPAND_PAIR(MACRO, ...) \
259  MACRO(__VA_ARGS__, u8_expand_pair_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_EXPAND_PAIR , .mask = 0x1) \
260  MACRO(__VA_ARGS__, u8_expand_pair_xy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_EXPAND_PAIR , .mask = 0x3) \
261  MACRO(__VA_ARGS__, u8_expand_pair_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_EXPAND_PAIR , .mask = 0x7) \
262  MACRO(__VA_ARGS__, u8_expand_pair_yzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_EXPAND_PAIR , .mask = 0xe) \
263  MACRO(__VA_ARGS__, u8_expand_pair_xyzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_EXPAND_PAIR , .mask = 0xf)
264 #define SWS_FOR_U8_EXPAND_QUAD(MACRO, ...)
265 #define SWS_FOR_STRUCT_U8_EXPAND_QUAD(MACRO, ...)
266 #define SWS_FOR_U8_TO_U8(MACRO, ...)
267 #define SWS_FOR_STRUCT_U8_TO_U8(MACRO, ...)
268 #define SWS_FOR_U8_TO_U16(MACRO, ...) \
269  MACRO(__VA_ARGS__, u8_to_u16_x , SWS_PIXEL_U8 , SWS_UOP_TO_U16 , 0x1) \
270  MACRO(__VA_ARGS__, u8_to_u16_xyz , SWS_PIXEL_U8 , SWS_UOP_TO_U16 , 0x7) \
271  MACRO(__VA_ARGS__, u8_to_u16_yzw , SWS_PIXEL_U8 , SWS_UOP_TO_U16 , 0xe)
272 #define SWS_FOR_STRUCT_U8_TO_U16(MACRO, ...) \
273  MACRO(__VA_ARGS__, u8_to_u16_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_U16 , .mask = 0x1) \
274  MACRO(__VA_ARGS__, u8_to_u16_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_U16 , .mask = 0x7) \
275  MACRO(__VA_ARGS__, u8_to_u16_yzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_U16 , .mask = 0xe)
276 #define SWS_FOR_U8_TO_U32(MACRO, ...) \
277  MACRO(__VA_ARGS__, u8_to_u32_x , SWS_PIXEL_U8 , SWS_UOP_TO_U32 , 0x1) \
278  MACRO(__VA_ARGS__, u8_to_u32_xyz , SWS_PIXEL_U8 , SWS_UOP_TO_U32 , 0x7)
279 #define SWS_FOR_STRUCT_U8_TO_U32(MACRO, ...) \
280  MACRO(__VA_ARGS__, u8_to_u32_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_U32 , .mask = 0x1) \
281  MACRO(__VA_ARGS__, u8_to_u32_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_U32 , .mask = 0x7)
282 #define SWS_FOR_U8_TO_F32(MACRO, ...) \
283  MACRO(__VA_ARGS__, u8_to_f32_x , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0x1) \
284  MACRO(__VA_ARGS__, u8_to_f32_y , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0x2) \
285  MACRO(__VA_ARGS__, u8_to_f32_xy , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0x3) \
286  MACRO(__VA_ARGS__, u8_to_f32_z , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0x4) \
287  MACRO(__VA_ARGS__, u8_to_f32_xyz , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0x7) \
288  MACRO(__VA_ARGS__, u8_to_f32_yw , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0xa) \
289  MACRO(__VA_ARGS__, u8_to_f32_zw , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0xc) \
290  MACRO(__VA_ARGS__, u8_to_f32_yzw , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0xe) \
291  MACRO(__VA_ARGS__, u8_to_f32_xyzw , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0xf)
292 #define SWS_FOR_STRUCT_U8_TO_F32(MACRO, ...) \
293  MACRO(__VA_ARGS__, u8_to_f32_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0x1) \
294  MACRO(__VA_ARGS__, u8_to_f32_y , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0x2) \
295  MACRO(__VA_ARGS__, u8_to_f32_xy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0x3) \
296  MACRO(__VA_ARGS__, u8_to_f32_z , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0x4) \
297  MACRO(__VA_ARGS__, u8_to_f32_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0x7) \
298  MACRO(__VA_ARGS__, u8_to_f32_yw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0xa) \
299  MACRO(__VA_ARGS__, u8_to_f32_zw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0xc) \
300  MACRO(__VA_ARGS__, u8_to_f32_yzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0xe) \
301  MACRO(__VA_ARGS__, u8_to_f32_xyzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0xf)
302 #define SWS_FOR_U8_SCALE(MACRO, ...) \
303  MACRO(__VA_ARGS__, u8_scale_xyz , SWS_PIXEL_U8 , SWS_UOP_SCALE , 0x7)
304 #define SWS_FOR_STRUCT_U8_SCALE(MACRO, ...) \
305  MACRO(__VA_ARGS__, u8_scale_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_SCALE , .mask = 0x7)
306 #define SWS_FOR_U8_ADD(MACRO, ...)
307 #define SWS_FOR_STRUCT_U8_ADD(MACRO, ...)
308 #define SWS_FOR_U8_MIN(MACRO, ...)
309 #define SWS_FOR_STRUCT_U8_MIN(MACRO, ...)
310 #define SWS_FOR_U8_MAX(MACRO, ...)
311 #define SWS_FOR_STRUCT_U8_MAX(MACRO, ...)
312 #define SWS_FOR_U8_UNPACK(MACRO, ...) \
313  MACRO(__VA_ARGS__, u8_unpack_xyz_121 , SWS_PIXEL_U8 , SWS_UOP_UNPACK , 0x7, 1, 2, 1, 0) \
314  MACRO(__VA_ARGS__, u8_unpack_xyz_233 , SWS_PIXEL_U8 , SWS_UOP_UNPACK , 0x7, 2, 3, 3, 0) \
315  MACRO(__VA_ARGS__, u8_unpack_xyz_332 , SWS_PIXEL_U8 , SWS_UOP_UNPACK , 0x7, 3, 3, 2, 0)
316 #define SWS_FOR_STRUCT_U8_UNPACK(MACRO, ...) \
317  MACRO(__VA_ARGS__, u8_unpack_xyz_121 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {1, 2, 1, 0}) \
318  MACRO(__VA_ARGS__, u8_unpack_xyz_233 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {2, 3, 3, 0}) \
319  MACRO(__VA_ARGS__, u8_unpack_xyz_332 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {3, 3, 2, 0})
320 #define SWS_FOR_U8_PACK(MACRO, ...) \
321  MACRO(__VA_ARGS__, u8_pack_xyz_121 , SWS_PIXEL_U8 , SWS_UOP_PACK , 0x7, 1, 2, 1, 0) \
322  MACRO(__VA_ARGS__, u8_pack_xyz_233 , SWS_PIXEL_U8 , SWS_UOP_PACK , 0x7, 2, 3, 3, 0) \
323  MACRO(__VA_ARGS__, u8_pack_xyz_332 , SWS_PIXEL_U8 , SWS_UOP_PACK , 0x7, 3, 3, 2, 0)
324 #define SWS_FOR_STRUCT_U8_PACK(MACRO, ...) \
325  MACRO(__VA_ARGS__, u8_pack_xyz_121 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PACK , .mask = 0x7, .par.pack.pattern = {1, 2, 1, 0}) \
326  MACRO(__VA_ARGS__, u8_pack_xyz_233 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PACK , .mask = 0x7, .par.pack.pattern = {2, 3, 3, 0}) \
327  MACRO(__VA_ARGS__, u8_pack_xyz_332 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PACK , .mask = 0x7, .par.pack.pattern = {3, 3, 2, 0})
328 #define SWS_FOR_U8_LSHIFT(MACRO, ...)
329 #define SWS_FOR_STRUCT_U8_LSHIFT(MACRO, ...)
330 #define SWS_FOR_U8_RSHIFT(MACRO, ...)
331 #define SWS_FOR_STRUCT_U8_RSHIFT(MACRO, ...)
332 #define SWS_FOR_U8_CLEAR(MACRO, ...) \
333  MACRO(__VA_ARGS__, u8_clear_x_0 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x1, 0x00000, 0x00001) \
334  MACRO(__VA_ARGS__, u8_clear_x_1 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x1, 0x00001, 0x00000) \
335  MACRO(__VA_ARGS__, u8_clear_y_1 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x2, 0x00002, 0x00000) \
336  MACRO(__VA_ARGS__, u8_clear_xy_xx , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x3, 0x00000, 0x00000) \
337  MACRO(__VA_ARGS__, u8_clear_xz_xx , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x5, 0x00000, 0x00000) \
338  MACRO(__VA_ARGS__, u8_clear_yz_xx , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x6, 0x00000, 0x00000) \
339  MACRO(__VA_ARGS__, u8_clear_w_0 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x8, 0x00000, 0x00008) \
340  MACRO(__VA_ARGS__, u8_clear_w_1 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x8, 0x00008, 0x00000) \
341  MACRO(__VA_ARGS__, u8_clear_xyw_xx0 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0xb, 0x00000, 0x00008) \
342  MACRO(__VA_ARGS__, u8_clear_xyw_xx1 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0xb, 0x00008, 0x00000) \
343  MACRO(__VA_ARGS__, u8_clear_zw_xx , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0xc, 0x00000, 0x00000) \
344  MACRO(__VA_ARGS__, u8_clear_xzw_1xx , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0xd, 0x00001, 0x00000) \
345  MACRO(__VA_ARGS__, u8_clear_xzw_xx1 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0xd, 0x00008, 0x00000) \
346  MACRO(__VA_ARGS__, u8_clear_yzw_xx1 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0xe, 0x00008, 0x00000)
347 #define SWS_FOR_STRUCT_U8_CLEAR(MACRO, ...) \
348  MACRO(__VA_ARGS__, u8_clear_x_0 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0x1, .par.clear.one = 0x0, .par.clear.zero = 0x1) \
349  MACRO(__VA_ARGS__, u8_clear_x_1 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0x1, .par.clear.one = 0x1, .par.clear.zero = 0x0) \
350  MACRO(__VA_ARGS__, u8_clear_y_1 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0x2, .par.clear.one = 0x2, .par.clear.zero = 0x0) \
351  MACRO(__VA_ARGS__, u8_clear_xy_xx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0x3, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
352  MACRO(__VA_ARGS__, u8_clear_xz_xx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0x5, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
353  MACRO(__VA_ARGS__, u8_clear_yz_xx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0x6, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
354  MACRO(__VA_ARGS__, u8_clear_w_0 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0x8, .par.clear.one = 0x0, .par.clear.zero = 0x8) \
355  MACRO(__VA_ARGS__, u8_clear_w_1 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0x8, .par.clear.one = 0x8, .par.clear.zero = 0x0) \
356  MACRO(__VA_ARGS__, u8_clear_xyw_xx0 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0xb, .par.clear.one = 0x0, .par.clear.zero = 0x8) \
357  MACRO(__VA_ARGS__, u8_clear_xyw_xx1 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0xb, .par.clear.one = 0x8, .par.clear.zero = 0x0) \
358  MACRO(__VA_ARGS__, u8_clear_zw_xx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0xc, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
359  MACRO(__VA_ARGS__, u8_clear_xzw_1xx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0xd, .par.clear.one = 0x1, .par.clear.zero = 0x0) \
360  MACRO(__VA_ARGS__, u8_clear_xzw_xx1 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0xd, .par.clear.one = 0x8, .par.clear.zero = 0x0) \
361  MACRO(__VA_ARGS__, u8_clear_yzw_xx1 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0xe, .par.clear.one = 0x8, .par.clear.zero = 0x0)
362 #define SWS_FOR_U8_LINEAR(MACRO, ...)
363 #define SWS_FOR_STRUCT_U8_LINEAR(MACRO, ...)
364 #define SWS_FOR_U8_LINEAR_FMA(MACRO, ...)
365 #define SWS_FOR_STRUCT_U8_LINEAR_FMA(MACRO, ...)
366 #define SWS_FOR_U8_DITHER(MACRO, ...)
367 #define SWS_FOR_STRUCT_U8_DITHER(MACRO, ...)
368 #define SWS_FOR_U16_READ_PLANAR(MACRO, ...) \
369  MACRO(__VA_ARGS__, u16_read_planar_x , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR , 0x1) \
370  MACRO(__VA_ARGS__, u16_read_planar_xy , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR , 0x3) \
371  MACRO(__VA_ARGS__, u16_read_planar_xyz , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR , 0x7) \
372  MACRO(__VA_ARGS__, u16_read_planar_xyzw , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR , 0xf)
373 #define SWS_FOR_STRUCT_U16_READ_PLANAR(MACRO, ...) \
374  MACRO(__VA_ARGS__, u16_read_planar_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR , .mask = 0x1) \
375  MACRO(__VA_ARGS__, u16_read_planar_xy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR , .mask = 0x3) \
376  MACRO(__VA_ARGS__, u16_read_planar_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR , .mask = 0x7) \
377  MACRO(__VA_ARGS__, u16_read_planar_xyzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR , .mask = 0xf)
378 #define SWS_FOR_U16_READ_PLANAR_FH(MACRO, ...) \
379  MACRO(__VA_ARGS__, u16_read_planar_fh_x_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FH , 0x1, SWS_PIXEL_F32) \
380  MACRO(__VA_ARGS__, u16_read_planar_fh_xy_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FH , 0x3, SWS_PIXEL_F32) \
381  MACRO(__VA_ARGS__, u16_read_planar_fh_xyz_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FH , 0x7, SWS_PIXEL_F32) \
382  MACRO(__VA_ARGS__, u16_read_planar_fh_xyzw_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FH , 0xf, SWS_PIXEL_F32)
383 #define SWS_FOR_STRUCT_U16_READ_PLANAR_FH(MACRO, ...) \
384  MACRO(__VA_ARGS__, u16_read_planar_fh_x_f32 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR_FH , .mask = 0x1, .par.filter.type = SWS_PIXEL_F32) \
385  MACRO(__VA_ARGS__, u16_read_planar_fh_xy_f32 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR_FH , .mask = 0x3, .par.filter.type = SWS_PIXEL_F32) \
386  MACRO(__VA_ARGS__, u16_read_planar_fh_xyz_f32 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR_FH , .mask = 0x7, .par.filter.type = SWS_PIXEL_F32) \
387  MACRO(__VA_ARGS__, u16_read_planar_fh_xyzw_f32 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR_FH , .mask = 0xf, .par.filter.type = SWS_PIXEL_F32)
388 #define SWS_FOR_U16_READ_PLANAR_FV(MACRO, ...) \
389  MACRO(__VA_ARGS__, u16_read_planar_fv_x_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV , 0x1, SWS_PIXEL_F32) \
390  MACRO(__VA_ARGS__, u16_read_planar_fv_xy_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV , 0x3, SWS_PIXEL_F32) \
391  MACRO(__VA_ARGS__, u16_read_planar_fv_xyz_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV , 0x7, SWS_PIXEL_F32) \
392  MACRO(__VA_ARGS__, u16_read_planar_fv_xyzw_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV , 0xf, SWS_PIXEL_F32)
393 #define SWS_FOR_STRUCT_U16_READ_PLANAR_FV(MACRO, ...) \
394  MACRO(__VA_ARGS__, u16_read_planar_fv_x_f32 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR_FV , .mask = 0x1, .par.filter.type = SWS_PIXEL_F32) \
395  MACRO(__VA_ARGS__, u16_read_planar_fv_xy_f32 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR_FV , .mask = 0x3, .par.filter.type = SWS_PIXEL_F32) \
396  MACRO(__VA_ARGS__, u16_read_planar_fv_xyz_f32 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR_FV , .mask = 0x7, .par.filter.type = SWS_PIXEL_F32) \
397  MACRO(__VA_ARGS__, u16_read_planar_fv_xyzw_f32 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR_FV , .mask = 0xf, .par.filter.type = SWS_PIXEL_F32)
398 #define SWS_FOR_U16_READ_PLANAR_FV_FMA(MACRO, ...) \
399  MACRO(__VA_ARGS__, u16_read_planar_fv_fma_x_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV_FMA, 0x1, SWS_PIXEL_F32) \
400  MACRO(__VA_ARGS__, u16_read_planar_fv_fma_xy_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV_FMA, 0x3, SWS_PIXEL_F32) \
401  MACRO(__VA_ARGS__, u16_read_planar_fv_fma_xyz_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV_FMA, 0x7, SWS_PIXEL_F32) \
402  MACRO(__VA_ARGS__, u16_read_planar_fv_fma_xyzw_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV_FMA, 0xf, SWS_PIXEL_F32)
403 #define SWS_FOR_STRUCT_U16_READ_PLANAR_FV_FMA(MACRO, ...) \
404  MACRO(__VA_ARGS__, u16_read_planar_fv_fma_x_f32 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR_FV_FMA, .mask = 0x1, .par.filter.type = SWS_PIXEL_F32) \
405  MACRO(__VA_ARGS__, u16_read_planar_fv_fma_xy_f32 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR_FV_FMA, .mask = 0x3, .par.filter.type = SWS_PIXEL_F32) \
406  MACRO(__VA_ARGS__, u16_read_planar_fv_fma_xyz_f32 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR_FV_FMA, .mask = 0x7, .par.filter.type = SWS_PIXEL_F32) \
407  MACRO(__VA_ARGS__, u16_read_planar_fv_fma_xyzw_f32 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR_FV_FMA, .mask = 0xf, .par.filter.type = SWS_PIXEL_F32)
408 #define SWS_FOR_U16_READ_PACKED(MACRO, ...) \
409  MACRO(__VA_ARGS__, u16_read_packed_xy , SWS_PIXEL_U16, SWS_UOP_READ_PACKED , 0x3) \
410  MACRO(__VA_ARGS__, u16_read_packed_xyz , SWS_PIXEL_U16, SWS_UOP_READ_PACKED , 0x7) \
411  MACRO(__VA_ARGS__, u16_read_packed_xyzw , SWS_PIXEL_U16, SWS_UOP_READ_PACKED , 0xf)
412 #define SWS_FOR_STRUCT_U16_READ_PACKED(MACRO, ...) \
413  MACRO(__VA_ARGS__, u16_read_packed_xy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PACKED , .mask = 0x3) \
414  MACRO(__VA_ARGS__, u16_read_packed_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PACKED , .mask = 0x7) \
415  MACRO(__VA_ARGS__, u16_read_packed_xyzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PACKED , .mask = 0xf)
416 #define SWS_FOR_U16_READ_NIBBLE(MACRO, ...)
417 #define SWS_FOR_STRUCT_U16_READ_NIBBLE(MACRO, ...)
418 #define SWS_FOR_U16_READ_BIT(MACRO, ...)
419 #define SWS_FOR_STRUCT_U16_READ_BIT(MACRO, ...)
420 #define SWS_FOR_U16_WRITE_PLANAR(MACRO, ...) \
421  MACRO(__VA_ARGS__, u16_write_planar_x , SWS_PIXEL_U16, SWS_UOP_WRITE_PLANAR , 0x1) \
422  MACRO(__VA_ARGS__, u16_write_planar_xy , SWS_PIXEL_U16, SWS_UOP_WRITE_PLANAR , 0x3) \
423  MACRO(__VA_ARGS__, u16_write_planar_xyz , SWS_PIXEL_U16, SWS_UOP_WRITE_PLANAR , 0x7) \
424  MACRO(__VA_ARGS__, u16_write_planar_xyzw , SWS_PIXEL_U16, SWS_UOP_WRITE_PLANAR , 0xf)
425 #define SWS_FOR_STRUCT_U16_WRITE_PLANAR(MACRO, ...) \
426  MACRO(__VA_ARGS__, u16_write_planar_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x1) \
427  MACRO(__VA_ARGS__, u16_write_planar_xy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x3) \
428  MACRO(__VA_ARGS__, u16_write_planar_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x7) \
429  MACRO(__VA_ARGS__, u16_write_planar_xyzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0xf)
430 #define SWS_FOR_U16_WRITE_PACKED(MACRO, ...) \
431  MACRO(__VA_ARGS__, u16_write_packed_xy , SWS_PIXEL_U16, SWS_UOP_WRITE_PACKED , 0x3) \
432  MACRO(__VA_ARGS__, u16_write_packed_xyz , SWS_PIXEL_U16, SWS_UOP_WRITE_PACKED , 0x7) \
433  MACRO(__VA_ARGS__, u16_write_packed_xyzw , SWS_PIXEL_U16, SWS_UOP_WRITE_PACKED , 0xf)
434 #define SWS_FOR_STRUCT_U16_WRITE_PACKED(MACRO, ...) \
435  MACRO(__VA_ARGS__, u16_write_packed_xy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PACKED , .mask = 0x3) \
436  MACRO(__VA_ARGS__, u16_write_packed_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PACKED , .mask = 0x7) \
437  MACRO(__VA_ARGS__, u16_write_packed_xyzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PACKED , .mask = 0xf)
438 #define SWS_FOR_U16_WRITE_NIBBLE(MACRO, ...)
439 #define SWS_FOR_STRUCT_U16_WRITE_NIBBLE(MACRO, ...)
440 #define SWS_FOR_U16_WRITE_BIT(MACRO, ...)
441 #define SWS_FOR_STRUCT_U16_WRITE_BIT(MACRO, ...)
442 #define SWS_FOR_U16_PERMUTE(MACRO, ...) \
443  MACRO(__VA_ARGS__, u16_permute_x_y , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x1, 1, 0, 2, 3) \
444  MACRO(__VA_ARGS__, u16_permute_x_z , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x1, 2, 1, 0, 3) \
445  MACRO(__VA_ARGS__, u16_permute_x_w , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x1, 3, 1, 2, 0) \
446  MACRO(__VA_ARGS__, u16_permute_y_w , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x2, 0, 3, 2, 1) \
447  MACRO(__VA_ARGS__, u16_permute_y_x , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x2, 1, 0, 2, 3) \
448  MACRO(__VA_ARGS__, u16_permute_xy_yx , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x3, 1, 0, 2, 3) \
449  MACRO(__VA_ARGS__, u16_permute_xy_wx , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x3, 3, 0, 2, 1) \
450  MACRO(__VA_ARGS__, u16_permute_xz_zx , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x5, 2, 1, 0, 3) \
451  MACRO(__VA_ARGS__, u16_permute_xz_zw , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x5, 2, 1, 3, 0) \
452  MACRO(__VA_ARGS__, u16_permute_xyz_yzx , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x7, 1, 2, 0, 3) \
453  MACRO(__VA_ARGS__, u16_permute_xyz_yzw , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x7, 1, 2, 3, 0) \
454  MACRO(__VA_ARGS__, u16_permute_xyz_zxy , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x7, 2, 0, 1, 3) \
455  MACRO(__VA_ARGS__, u16_permute_xyz_zwy , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x7, 2, 3, 1, 0) \
456  MACRO(__VA_ARGS__, u16_permute_xyz_wzy , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x7, 3, 2, 1, 0) \
457  MACRO(__VA_ARGS__, u16_permute_w_x , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x8, 3, 1, 2, 0) \
458  MACRO(__VA_ARGS__, u16_permute_zw_xz , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xc, 3, 1, 0, 2) \
459  MACRO(__VA_ARGS__, u16_permute_yzw_zwy , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xe, 0, 2, 3, 1) \
460  MACRO(__VA_ARGS__, u16_permute_yzw_xyz , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xe, 3, 0, 1, 2) \
461  MACRO(__VA_ARGS__, u16_permute_yzw_zyx , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xe, 3, 2, 1, 0) \
462  MACRO(__VA_ARGS__, u16_permute_xyzw_yzwx , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xf, 1, 2, 3, 0) \
463  MACRO(__VA_ARGS__, u16_permute_xyzw_wxyz , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xf, 3, 0, 1, 2) \
464  MACRO(__VA_ARGS__, u16_permute_xyzw_wzyx , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xf, 3, 2, 1, 0)
465 #define SWS_FOR_STRUCT_U16_PERMUTE(MACRO, ...) \
466  MACRO(__VA_ARGS__, u16_permute_x_y , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x1, .par.swizzle.in = {1, 0, 2, 3}) \
467  MACRO(__VA_ARGS__, u16_permute_x_z , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x1, .par.swizzle.in = {2, 1, 0, 3}) \
468  MACRO(__VA_ARGS__, u16_permute_x_w , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x1, .par.swizzle.in = {3, 1, 2, 0}) \
469  MACRO(__VA_ARGS__, u16_permute_y_w , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x2, .par.swizzle.in = {0, 3, 2, 1}) \
470  MACRO(__VA_ARGS__, u16_permute_y_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x2, .par.swizzle.in = {1, 0, 2, 3}) \
471  MACRO(__VA_ARGS__, u16_permute_xy_yx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x3, .par.swizzle.in = {1, 0, 2, 3}) \
472  MACRO(__VA_ARGS__, u16_permute_xy_wx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x3, .par.swizzle.in = {3, 0, 2, 1}) \
473  MACRO(__VA_ARGS__, u16_permute_xz_zx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x5, .par.swizzle.in = {2, 1, 0, 3}) \
474  MACRO(__VA_ARGS__, u16_permute_xz_zw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x5, .par.swizzle.in = {2, 1, 3, 0}) \
475  MACRO(__VA_ARGS__, u16_permute_xyz_yzx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {1, 2, 0, 3}) \
476  MACRO(__VA_ARGS__, u16_permute_xyz_yzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {1, 2, 3, 0}) \
477  MACRO(__VA_ARGS__, u16_permute_xyz_zxy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {2, 0, 1, 3}) \
478  MACRO(__VA_ARGS__, u16_permute_xyz_zwy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {2, 3, 1, 0}) \
479  MACRO(__VA_ARGS__, u16_permute_xyz_wzy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {3, 2, 1, 0}) \
480  MACRO(__VA_ARGS__, u16_permute_w_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x8, .par.swizzle.in = {3, 1, 2, 0}) \
481  MACRO(__VA_ARGS__, u16_permute_zw_xz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xc, .par.swizzle.in = {3, 1, 0, 2}) \
482  MACRO(__VA_ARGS__, u16_permute_yzw_zwy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.swizzle.in = {0, 2, 3, 1}) \
483  MACRO(__VA_ARGS__, u16_permute_yzw_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.swizzle.in = {3, 0, 1, 2}) \
484  MACRO(__VA_ARGS__, u16_permute_yzw_zyx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.swizzle.in = {3, 2, 1, 0}) \
485  MACRO(__VA_ARGS__, u16_permute_xyzw_yzwx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.swizzle.in = {1, 2, 3, 0}) \
486  MACRO(__VA_ARGS__, u16_permute_xyzw_wxyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.swizzle.in = {3, 0, 1, 2}) \
487  MACRO(__VA_ARGS__, u16_permute_xyzw_wzyx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.swizzle.in = {3, 2, 1, 0})
488 #define SWS_FOR_U16_COPY(MACRO, ...) \
489  MACRO(__VA_ARGS__, u16_copy_yz_xx , SWS_PIXEL_U16, SWS_UOP_COPY , 0x6, 0, 0, 0, 3) \
490  MACRO(__VA_ARGS__, u16_copy_yzw_xxy , SWS_PIXEL_U16, SWS_UOP_COPY , 0xe, 0, 0, 0, 1)
491 #define SWS_FOR_STRUCT_U16_COPY(MACRO, ...) \
492  MACRO(__VA_ARGS__, u16_copy_yz_xx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_COPY , .mask = 0x6, .par.swizzle.in = {0, 0, 0, 3}) \
493  MACRO(__VA_ARGS__, u16_copy_yzw_xxy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_COPY , .mask = 0xe, .par.swizzle.in = {0, 0, 0, 1})
494 #define SWS_FOR_U16_MOVE(MACRO, ...) \
495  MACRO(__VA_ARGS__, u16_move_x_y , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0) \
496  MACRO(__VA_ARGS__, u16_move_x_z , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
497  MACRO(__VA_ARGS__, u16_move_x_w , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0) \
498  MACRO(__VA_ARGS__, u16_move_y_x , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
499  MACRO(__VA_ARGS__, u16_move_y_w , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 1, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0) \
500  MACRO(__VA_ARGS__, u16_move_w_x , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
501  MACRO(__VA_ARGS__, u16_move_xz_zw , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 2, 0, 2, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0) \
502  MACRO(__VA_ARGS__, u16_move_yx_xw , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 2, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0) \
503  MACRO(__VA_ARGS__, u16_move_yz_xx , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
504  MACRO(__VA_ARGS__, u16_move_wz_zx , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 2, 3, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
505  MACRO(__VA_ARGS__, u16_move_xyz_yzw , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 3, 0, 1, 2, 0, 0, 0, 1, 2, 3, 0, 0, 0) \
506  MACRO(__VA_ARGS__, u16_move_xzy_zyw , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 3, 0, 2, 1, 0, 0, 0, 2, 1, 3, 0, 0, 0) \
507  MACRO(__VA_ARGS__, u16_move_zwy_xyx , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 3, 2, 3, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0) \
508  MACRO(__VA_ARGS__, u16_move_wzy_zyx , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 3, 3, 2, 1, 0, 0, 0, 2, 1, 0, 0, 0, 0) \
509  MACRO(__VA_ARGS__, u16_move_txy_xyt , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 3, -1, 0, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0) \
510  MACRO(__VA_ARGS__, u16_move_txz_xzt , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 3, -1, 0, 2, 0, 0, 0, 0, 2, -1, 0, 0, 0) \
511  MACRO(__VA_ARGS__, u16_move_xtyz_wyzt , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 4, 0, -1, 1, 2, 0, 0, 3, 1, 2, -1, 0, 0) \
512  MACRO(__VA_ARGS__, u16_move_wtyz_xyzt , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 4, 3, -1, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0) \
513  MACRO(__VA_ARGS__, u16_move_txyz_xyzt , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 4, -1, 0, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0) \
514  MACRO(__VA_ARGS__, u16_move_txzy_xzyt , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 4, -1, 0, 2, 1, 0, 0, 0, 2, 1, -1, 0, 0) \
515  MACRO(__VA_ARGS__, u16_move_tyzw_yzwt , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 4, -1, 1, 2, 3, 0, 0, 1, 2, 3, -1, 0, 0) \
516  MACRO(__VA_ARGS__, u16_move_txyzw_xyzwt , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 5, -1, 0, 1, 2, 3, 0, 0, 1, 2, 3, -1, 0) \
517  MACRO(__VA_ARGS__, u16_move_txwzy_xwzyt , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 5, -1, 0, 3, 2, 1, 0, 0, 3, 2, 1, -1, 0) \
518  MACRO(__VA_ARGS__, u16_move_txwtyz_xwtyzt , SWS_PIXEL_U16, SWS_UOP_MOVE , 0x0, 6, -1, 0, 3, -1, 1, 2, 0, 3, -1, 1, 2, -1)
519 #define SWS_FOR_STRUCT_U16_MOVE(MACRO, ...) \
520  MACRO(__VA_ARGS__, u16_move_x_y , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {1, 0, 0, 0, 0, 0}) \
521  MACRO(__VA_ARGS__, u16_move_x_z , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {2, 0, 0, 0, 0, 0}) \
522  MACRO(__VA_ARGS__, u16_move_x_w , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {3, 0, 0, 0, 0, 0}) \
523  MACRO(__VA_ARGS__, u16_move_y_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
524  MACRO(__VA_ARGS__, u16_move_y_w , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {3, 0, 0, 0, 0, 0}) \
525  MACRO(__VA_ARGS__, u16_move_w_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {3, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
526  MACRO(__VA_ARGS__, u16_move_xz_zw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {0, 2, 0, 0, 0, 0}, .par.move.src = {2, 3, 0, 0, 0, 0}) \
527  MACRO(__VA_ARGS__, u16_move_yx_xw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {0, 3, 0, 0, 0, 0}) \
528  MACRO(__VA_ARGS__, u16_move_yz_xx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {1, 2, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
529  MACRO(__VA_ARGS__, u16_move_wz_zx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {3, 2, 0, 0, 0, 0}, .par.move.src = {2, 0, 0, 0, 0, 0}) \
530  MACRO(__VA_ARGS__, u16_move_xyz_yzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {0, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, 3, 0, 0, 0}) \
531  MACRO(__VA_ARGS__, u16_move_xzy_zyw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {0, 2, 1, 0, 0, 0}, .par.move.src = {2, 1, 3, 0, 0, 0}) \
532  MACRO(__VA_ARGS__, u16_move_zwy_xyx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {2, 3, 1, 0, 0, 0}, .par.move.src = {0, 1, 0, 0, 0, 0}) \
533  MACRO(__VA_ARGS__, u16_move_wzy_zyx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {3, 2, 1, 0, 0, 0}, .par.move.src = {2, 1, 0, 0, 0, 0}) \
534  MACRO(__VA_ARGS__, u16_move_txy_xyt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {-1, 0, 1, 0, 0, 0}, .par.move.src = {0, 1, -1, 0, 0, 0}) \
535  MACRO(__VA_ARGS__, u16_move_txz_xzt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {-1, 0, 2, 0, 0, 0}, .par.move.src = {0, 2, -1, 0, 0, 0}) \
536  MACRO(__VA_ARGS__, u16_move_xtyz_wyzt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {0, -1, 1, 2, 0, 0}, .par.move.src = {3, 1, 2, -1, 0, 0}) \
537  MACRO(__VA_ARGS__, u16_move_wtyz_xyzt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {3, -1, 1, 2, 0, 0}, .par.move.src = {0, 1, 2, -1, 0, 0}) \
538  MACRO(__VA_ARGS__, u16_move_txyz_xyzt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 1, 2, 0, 0}, .par.move.src = {0, 1, 2, -1, 0, 0}) \
539  MACRO(__VA_ARGS__, u16_move_txzy_xzyt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 2, 1, 0, 0}, .par.move.src = {0, 2, 1, -1, 0, 0}) \
540  MACRO(__VA_ARGS__, u16_move_tyzw_yzwt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {-1, 1, 2, 3, 0, 0}, .par.move.src = {1, 2, 3, -1, 0, 0}) \
541  MACRO(__VA_ARGS__, u16_move_txyzw_xyzwt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 1, 2, 3, 0}, .par.move.src = {0, 1, 2, 3, -1, 0}) \
542  MACRO(__VA_ARGS__, u16_move_txwzy_xwzyt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 3, 2, 1, 0}, .par.move.src = {0, 3, 2, 1, -1, 0}) \
543  MACRO(__VA_ARGS__, u16_move_txwtyz_xwtyzt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 6, .par.move.dst = {-1, 0, 3, -1, 1, 2}, .par.move.src = {0, 3, -1, 1, 2, -1})
544 #define SWS_FOR_U16_SWAP_BYTES(MACRO, ...) \
545  MACRO(__VA_ARGS__, u16_swap_bytes_x , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0x1) \
546  MACRO(__VA_ARGS__, u16_swap_bytes_y , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0x2) \
547  MACRO(__VA_ARGS__, u16_swap_bytes_xy , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0x3) \
548  MACRO(__VA_ARGS__, u16_swap_bytes_xyz , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0x7) \
549  MACRO(__VA_ARGS__, u16_swap_bytes_xw , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0x9) \
550  MACRO(__VA_ARGS__, u16_swap_bytes_yzw , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0xe) \
551  MACRO(__VA_ARGS__, u16_swap_bytes_xyzw , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0xf)
552 #define SWS_FOR_STRUCT_U16_SWAP_BYTES(MACRO, ...) \
553  MACRO(__VA_ARGS__, u16_swap_bytes_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x1) \
554  MACRO(__VA_ARGS__, u16_swap_bytes_y , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x2) \
555  MACRO(__VA_ARGS__, u16_swap_bytes_xy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x3) \
556  MACRO(__VA_ARGS__, u16_swap_bytes_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x7) \
557  MACRO(__VA_ARGS__, u16_swap_bytes_xw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x9) \
558  MACRO(__VA_ARGS__, u16_swap_bytes_yzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0xe) \
559  MACRO(__VA_ARGS__, u16_swap_bytes_xyzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0xf)
560 #define SWS_FOR_U16_EXPAND_BIT(MACRO, ...) \
561  MACRO(__VA_ARGS__, u16_expand_bit_x , SWS_PIXEL_U16, SWS_UOP_EXPAND_BIT , 0x1)
562 #define SWS_FOR_STRUCT_U16_EXPAND_BIT(MACRO, ...) \
563  MACRO(__VA_ARGS__, u16_expand_bit_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_EXPAND_BIT , .mask = 0x1)
564 #define SWS_FOR_U16_EXPAND_PAIR(MACRO, ...)
565 #define SWS_FOR_STRUCT_U16_EXPAND_PAIR(MACRO, ...)
566 #define SWS_FOR_U16_EXPAND_QUAD(MACRO, ...)
567 #define SWS_FOR_STRUCT_U16_EXPAND_QUAD(MACRO, ...)
568 #define SWS_FOR_U16_TO_U8(MACRO, ...) \
569  MACRO(__VA_ARGS__, u16_to_u8_xyz , SWS_PIXEL_U16, SWS_UOP_TO_U8 , 0x7)
570 #define SWS_FOR_STRUCT_U16_TO_U8(MACRO, ...) \
571  MACRO(__VA_ARGS__, u16_to_u8_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_U8 , .mask = 0x7)
572 #define SWS_FOR_U16_TO_U16(MACRO, ...)
573 #define SWS_FOR_STRUCT_U16_TO_U16(MACRO, ...)
574 #define SWS_FOR_U16_TO_U32(MACRO, ...) \
575  MACRO(__VA_ARGS__, u16_to_u32_x , SWS_PIXEL_U16, SWS_UOP_TO_U32 , 0x1) \
576  MACRO(__VA_ARGS__, u16_to_u32_xyz , SWS_PIXEL_U16, SWS_UOP_TO_U32 , 0x7)
577 #define SWS_FOR_STRUCT_U16_TO_U32(MACRO, ...) \
578  MACRO(__VA_ARGS__, u16_to_u32_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_U32 , .mask = 0x1) \
579  MACRO(__VA_ARGS__, u16_to_u32_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_U32 , .mask = 0x7)
580 #define SWS_FOR_U16_TO_F32(MACRO, ...) \
581  MACRO(__VA_ARGS__, u16_to_f32_x , SWS_PIXEL_U16, SWS_UOP_TO_F32 , 0x1) \
582  MACRO(__VA_ARGS__, u16_to_f32_y , SWS_PIXEL_U16, SWS_UOP_TO_F32 , 0x2) \
583  MACRO(__VA_ARGS__, u16_to_f32_xy , SWS_PIXEL_U16, SWS_UOP_TO_F32 , 0x3) \
584  MACRO(__VA_ARGS__, u16_to_f32_xyz , SWS_PIXEL_U16, SWS_UOP_TO_F32 , 0x7) \
585  MACRO(__VA_ARGS__, u16_to_f32_yzw , SWS_PIXEL_U16, SWS_UOP_TO_F32 , 0xe) \
586  MACRO(__VA_ARGS__, u16_to_f32_xyzw , SWS_PIXEL_U16, SWS_UOP_TO_F32 , 0xf)
587 #define SWS_FOR_STRUCT_U16_TO_F32(MACRO, ...) \
588  MACRO(__VA_ARGS__, u16_to_f32_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_F32 , .mask = 0x1) \
589  MACRO(__VA_ARGS__, u16_to_f32_y , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_F32 , .mask = 0x2) \
590  MACRO(__VA_ARGS__, u16_to_f32_xy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_F32 , .mask = 0x3) \
591  MACRO(__VA_ARGS__, u16_to_f32_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_F32 , .mask = 0x7) \
592  MACRO(__VA_ARGS__, u16_to_f32_yzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_F32 , .mask = 0xe) \
593  MACRO(__VA_ARGS__, u16_to_f32_xyzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_F32 , .mask = 0xf)
594 #define SWS_FOR_U16_SCALE(MACRO, ...) \
595  MACRO(__VA_ARGS__, u16_scale_x , SWS_PIXEL_U16, SWS_UOP_SCALE , 0x1) \
596  MACRO(__VA_ARGS__, u16_scale_xyz , SWS_PIXEL_U16, SWS_UOP_SCALE , 0x7)
597 #define SWS_FOR_STRUCT_U16_SCALE(MACRO, ...) \
598  MACRO(__VA_ARGS__, u16_scale_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SCALE , .mask = 0x1) \
599  MACRO(__VA_ARGS__, u16_scale_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SCALE , .mask = 0x7)
600 #define SWS_FOR_U16_ADD(MACRO, ...)
601 #define SWS_FOR_STRUCT_U16_ADD(MACRO, ...)
602 #define SWS_FOR_U16_MIN(MACRO, ...)
603 #define SWS_FOR_STRUCT_U16_MIN(MACRO, ...)
604 #define SWS_FOR_U16_MAX(MACRO, ...)
605 #define SWS_FOR_STRUCT_U16_MAX(MACRO, ...)
606 #define SWS_FOR_U16_UNPACK(MACRO, ...) \
607  MACRO(__VA_ARGS__, u16_unpack_xyz_444 , SWS_PIXEL_U16, SWS_UOP_UNPACK , 0x7, 4, 4, 4, 0) \
608  MACRO(__VA_ARGS__, u16_unpack_xyz_555 , SWS_PIXEL_U16, SWS_UOP_UNPACK , 0x7, 5, 5, 5, 0) \
609  MACRO(__VA_ARGS__, u16_unpack_xyz_565 , SWS_PIXEL_U16, SWS_UOP_UNPACK , 0x7, 5, 6, 5, 0)
610 #define SWS_FOR_STRUCT_U16_UNPACK(MACRO, ...) \
611  MACRO(__VA_ARGS__, u16_unpack_xyz_444 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {4, 4, 4, 0}) \
612  MACRO(__VA_ARGS__, u16_unpack_xyz_555 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {5, 5, 5, 0}) \
613  MACRO(__VA_ARGS__, u16_unpack_xyz_565 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {5, 6, 5, 0})
614 #define SWS_FOR_U16_PACK(MACRO, ...) \
615  MACRO(__VA_ARGS__, u16_pack_xyz_444 , SWS_PIXEL_U16, SWS_UOP_PACK , 0x7, 4, 4, 4, 0) \
616  MACRO(__VA_ARGS__, u16_pack_xyz_555 , SWS_PIXEL_U16, SWS_UOP_PACK , 0x7, 5, 5, 5, 0) \
617  MACRO(__VA_ARGS__, u16_pack_xyz_565 , SWS_PIXEL_U16, SWS_UOP_PACK , 0x7, 5, 6, 5, 0)
618 #define SWS_FOR_STRUCT_U16_PACK(MACRO, ...) \
619  MACRO(__VA_ARGS__, u16_pack_xyz_444 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PACK , .mask = 0x7, .par.pack.pattern = {4, 4, 4, 0}) \
620  MACRO(__VA_ARGS__, u16_pack_xyz_555 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PACK , .mask = 0x7, .par.pack.pattern = {5, 5, 5, 0}) \
621  MACRO(__VA_ARGS__, u16_pack_xyz_565 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PACK , .mask = 0x7, .par.pack.pattern = {5, 6, 5, 0})
622 #define SWS_FOR_U16_LSHIFT(MACRO, ...) \
623  MACRO(__VA_ARGS__, u16_lshift_x_4 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x1, 4) \
624  MACRO(__VA_ARGS__, u16_lshift_x_6 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x1, 6) \
625  MACRO(__VA_ARGS__, u16_lshift_xyz_1 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 1) \
626  MACRO(__VA_ARGS__, u16_lshift_xyz_2 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 2) \
627  MACRO(__VA_ARGS__, u16_lshift_xyz_3 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 3) \
628  MACRO(__VA_ARGS__, u16_lshift_xyz_4 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 4) \
629  MACRO(__VA_ARGS__, u16_lshift_xyz_5 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 5) \
630  MACRO(__VA_ARGS__, u16_lshift_xyz_6 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 6) \
631  MACRO(__VA_ARGS__, u16_lshift_xyz_7 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 7) \
632  MACRO(__VA_ARGS__, u16_lshift_xyz_8 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 8) \
633  MACRO(__VA_ARGS__, u16_lshift_yzw_1 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0xe, 1) \
634  MACRO(__VA_ARGS__, u16_lshift_yzw_2 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0xe, 2) \
635  MACRO(__VA_ARGS__, u16_lshift_yzw_4 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0xe, 4) \
636  MACRO(__VA_ARGS__, u16_lshift_yzw_6 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0xe, 6) \
637  MACRO(__VA_ARGS__, u16_lshift_yzw_8 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0xe, 8)
638 #define SWS_FOR_STRUCT_U16_LSHIFT(MACRO, ...) \
639  MACRO(__VA_ARGS__, u16_lshift_x_4 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x1, .par.shift.amount = 4) \
640  MACRO(__VA_ARGS__, u16_lshift_x_6 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x1, .par.shift.amount = 6) \
641  MACRO(__VA_ARGS__, u16_lshift_xyz_1 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 1) \
642  MACRO(__VA_ARGS__, u16_lshift_xyz_2 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 2) \
643  MACRO(__VA_ARGS__, u16_lshift_xyz_3 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 3) \
644  MACRO(__VA_ARGS__, u16_lshift_xyz_4 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 4) \
645  MACRO(__VA_ARGS__, u16_lshift_xyz_5 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 5) \
646  MACRO(__VA_ARGS__, u16_lshift_xyz_6 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 6) \
647  MACRO(__VA_ARGS__, u16_lshift_xyz_7 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 7) \
648  MACRO(__VA_ARGS__, u16_lshift_xyz_8 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 8) \
649  MACRO(__VA_ARGS__, u16_lshift_yzw_1 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0xe, .par.shift.amount = 1) \
650  MACRO(__VA_ARGS__, u16_lshift_yzw_2 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0xe, .par.shift.amount = 2) \
651  MACRO(__VA_ARGS__, u16_lshift_yzw_4 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0xe, .par.shift.amount = 4) \
652  MACRO(__VA_ARGS__, u16_lshift_yzw_6 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0xe, .par.shift.amount = 6) \
653  MACRO(__VA_ARGS__, u16_lshift_yzw_8 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0xe, .par.shift.amount = 8)
654 #define SWS_FOR_U16_RSHIFT(MACRO, ...) \
655  MACRO(__VA_ARGS__, u16_rshift_x_4 , SWS_PIXEL_U16, SWS_UOP_RSHIFT , 0x1, 4) \
656  MACRO(__VA_ARGS__, u16_rshift_x_6 , SWS_PIXEL_U16, SWS_UOP_RSHIFT , 0x1, 6) \
657  MACRO(__VA_ARGS__, u16_rshift_y_4 , SWS_PIXEL_U16, SWS_UOP_RSHIFT , 0x2, 4) \
658  MACRO(__VA_ARGS__, u16_rshift_xyz_4 , SWS_PIXEL_U16, SWS_UOP_RSHIFT , 0x7, 4) \
659  MACRO(__VA_ARGS__, u16_rshift_xyz_6 , SWS_PIXEL_U16, SWS_UOP_RSHIFT , 0x7, 6)
660 #define SWS_FOR_STRUCT_U16_RSHIFT(MACRO, ...) \
661  MACRO(__VA_ARGS__, u16_rshift_x_4 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_RSHIFT , .mask = 0x1, .par.shift.amount = 4) \
662  MACRO(__VA_ARGS__, u16_rshift_x_6 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_RSHIFT , .mask = 0x1, .par.shift.amount = 6) \
663  MACRO(__VA_ARGS__, u16_rshift_y_4 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_RSHIFT , .mask = 0x2, .par.shift.amount = 4) \
664  MACRO(__VA_ARGS__, u16_rshift_xyz_4 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_RSHIFT , .mask = 0x7, .par.shift.amount = 4) \
665  MACRO(__VA_ARGS__, u16_rshift_xyz_6 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_RSHIFT , .mask = 0x7, .par.shift.amount = 6)
666 #define SWS_FOR_U16_CLEAR(MACRO, ...) \
667  MACRO(__VA_ARGS__, u16_clear_x_1 , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x1, 0x00001, 0x00000) \
668  MACRO(__VA_ARGS__, u16_clear_y_1 , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x2, 0x00002, 0x00000) \
669  MACRO(__VA_ARGS__, u16_clear_yz_xx , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x6, 0x00000, 0x00000) \
670  MACRO(__VA_ARGS__, u16_clear_w_x , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x8, 0x00000, 0x00000) \
671  MACRO(__VA_ARGS__, u16_clear_w_0 , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x8, 0x00000, 0x00008) \
672  MACRO(__VA_ARGS__, u16_clear_w_1 , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x8, 0x00008, 0x00000) \
673  MACRO(__VA_ARGS__, u16_clear_zw_xx , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0xc, 0x00000, 0x00000) \
674  MACRO(__VA_ARGS__, u16_clear_xzw_xx0 , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0xd, 0x00000, 0x00008) \
675  MACRO(__VA_ARGS__, u16_clear_xzw_1xx , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0xd, 0x00001, 0x00000) \
676  MACRO(__VA_ARGS__, u16_clear_yzw_xxx , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0xe, 0x00000, 0x00000) \
677  MACRO(__VA_ARGS__, u16_clear_yzw_xx1 , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0xe, 0x00008, 0x00000)
678 #define SWS_FOR_STRUCT_U16_CLEAR(MACRO, ...) \
679  MACRO(__VA_ARGS__, u16_clear_x_1 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0x1, .par.clear.one = 0x1, .par.clear.zero = 0x0) \
680  MACRO(__VA_ARGS__, u16_clear_y_1 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0x2, .par.clear.one = 0x2, .par.clear.zero = 0x0) \
681  MACRO(__VA_ARGS__, u16_clear_yz_xx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0x6, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
682  MACRO(__VA_ARGS__, u16_clear_w_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0x8, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
683  MACRO(__VA_ARGS__, u16_clear_w_0 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0x8, .par.clear.one = 0x0, .par.clear.zero = 0x8) \
684  MACRO(__VA_ARGS__, u16_clear_w_1 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0x8, .par.clear.one = 0x8, .par.clear.zero = 0x0) \
685  MACRO(__VA_ARGS__, u16_clear_zw_xx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0xc, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
686  MACRO(__VA_ARGS__, u16_clear_xzw_xx0 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0xd, .par.clear.one = 0x0, .par.clear.zero = 0x8) \
687  MACRO(__VA_ARGS__, u16_clear_xzw_1xx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0xd, .par.clear.one = 0x1, .par.clear.zero = 0x0) \
688  MACRO(__VA_ARGS__, u16_clear_yzw_xxx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0xe, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
689  MACRO(__VA_ARGS__, u16_clear_yzw_xx1 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0xe, .par.clear.one = 0x8, .par.clear.zero = 0x0)
690 #define SWS_FOR_U16_LINEAR(MACRO, ...)
691 #define SWS_FOR_STRUCT_U16_LINEAR(MACRO, ...)
692 #define SWS_FOR_U16_LINEAR_FMA(MACRO, ...)
693 #define SWS_FOR_STRUCT_U16_LINEAR_FMA(MACRO, ...)
694 #define SWS_FOR_U16_DITHER(MACRO, ...)
695 #define SWS_FOR_STRUCT_U16_DITHER(MACRO, ...)
696 #define SWS_FOR_U32_READ_PLANAR(MACRO, ...) \
697  MACRO(__VA_ARGS__, u32_read_planar_x , SWS_PIXEL_U32, SWS_UOP_READ_PLANAR , 0x1) \
698  MACRO(__VA_ARGS__, u32_read_planar_xy , SWS_PIXEL_U32, SWS_UOP_READ_PLANAR , 0x3) \
699  MACRO(__VA_ARGS__, u32_read_planar_xyz , SWS_PIXEL_U32, SWS_UOP_READ_PLANAR , 0x7) \
700  MACRO(__VA_ARGS__, u32_read_planar_xyzw , SWS_PIXEL_U32, SWS_UOP_READ_PLANAR , 0xf)
701 #define SWS_FOR_STRUCT_U32_READ_PLANAR(MACRO, ...) \
702  MACRO(__VA_ARGS__, u32_read_planar_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PLANAR , .mask = 0x1) \
703  MACRO(__VA_ARGS__, u32_read_planar_xy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PLANAR , .mask = 0x3) \
704  MACRO(__VA_ARGS__, u32_read_planar_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PLANAR , .mask = 0x7) \
705  MACRO(__VA_ARGS__, u32_read_planar_xyzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PLANAR , .mask = 0xf)
706 #define SWS_FOR_U32_READ_PLANAR_FH(MACRO, ...)
707 #define SWS_FOR_STRUCT_U32_READ_PLANAR_FH(MACRO, ...)
708 #define SWS_FOR_U32_READ_PLANAR_FV(MACRO, ...)
709 #define SWS_FOR_STRUCT_U32_READ_PLANAR_FV(MACRO, ...)
710 #define SWS_FOR_U32_READ_PLANAR_FV_FMA(MACRO, ...)
711 #define SWS_FOR_STRUCT_U32_READ_PLANAR_FV_FMA(MACRO, ...)
712 #define SWS_FOR_U32_READ_PACKED(MACRO, ...) \
713  MACRO(__VA_ARGS__, u32_read_packed_xy , SWS_PIXEL_U32, SWS_UOP_READ_PACKED , 0x3) \
714  MACRO(__VA_ARGS__, u32_read_packed_xyz , SWS_PIXEL_U32, SWS_UOP_READ_PACKED , 0x7) \
715  MACRO(__VA_ARGS__, u32_read_packed_xyzw , SWS_PIXEL_U32, SWS_UOP_READ_PACKED , 0xf)
716 #define SWS_FOR_STRUCT_U32_READ_PACKED(MACRO, ...) \
717  MACRO(__VA_ARGS__, u32_read_packed_xy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PACKED , .mask = 0x3) \
718  MACRO(__VA_ARGS__, u32_read_packed_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PACKED , .mask = 0x7) \
719  MACRO(__VA_ARGS__, u32_read_packed_xyzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PACKED , .mask = 0xf)
720 #define SWS_FOR_U32_READ_NIBBLE(MACRO, ...)
721 #define SWS_FOR_STRUCT_U32_READ_NIBBLE(MACRO, ...)
722 #define SWS_FOR_U32_READ_BIT(MACRO, ...)
723 #define SWS_FOR_STRUCT_U32_READ_BIT(MACRO, ...)
724 #define SWS_FOR_U32_WRITE_PLANAR(MACRO, ...) \
725  MACRO(__VA_ARGS__, u32_write_planar_x , SWS_PIXEL_U32, SWS_UOP_WRITE_PLANAR , 0x1) \
726  MACRO(__VA_ARGS__, u32_write_planar_xy , SWS_PIXEL_U32, SWS_UOP_WRITE_PLANAR , 0x3) \
727  MACRO(__VA_ARGS__, u32_write_planar_xyz , SWS_PIXEL_U32, SWS_UOP_WRITE_PLANAR , 0x7) \
728  MACRO(__VA_ARGS__, u32_write_planar_xyzw , SWS_PIXEL_U32, SWS_UOP_WRITE_PLANAR , 0xf)
729 #define SWS_FOR_STRUCT_U32_WRITE_PLANAR(MACRO, ...) \
730  MACRO(__VA_ARGS__, u32_write_planar_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x1) \
731  MACRO(__VA_ARGS__, u32_write_planar_xy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x3) \
732  MACRO(__VA_ARGS__, u32_write_planar_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x7) \
733  MACRO(__VA_ARGS__, u32_write_planar_xyzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0xf)
734 #define SWS_FOR_U32_WRITE_PACKED(MACRO, ...) \
735  MACRO(__VA_ARGS__, u32_write_packed_xy , SWS_PIXEL_U32, SWS_UOP_WRITE_PACKED , 0x3) \
736  MACRO(__VA_ARGS__, u32_write_packed_xyz , SWS_PIXEL_U32, SWS_UOP_WRITE_PACKED , 0x7) \
737  MACRO(__VA_ARGS__, u32_write_packed_xyzw , SWS_PIXEL_U32, SWS_UOP_WRITE_PACKED , 0xf)
738 #define SWS_FOR_STRUCT_U32_WRITE_PACKED(MACRO, ...) \
739  MACRO(__VA_ARGS__, u32_write_packed_xy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PACKED , .mask = 0x3) \
740  MACRO(__VA_ARGS__, u32_write_packed_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PACKED , .mask = 0x7) \
741  MACRO(__VA_ARGS__, u32_write_packed_xyzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PACKED , .mask = 0xf)
742 #define SWS_FOR_U32_WRITE_NIBBLE(MACRO, ...)
743 #define SWS_FOR_STRUCT_U32_WRITE_NIBBLE(MACRO, ...)
744 #define SWS_FOR_U32_WRITE_BIT(MACRO, ...)
745 #define SWS_FOR_STRUCT_U32_WRITE_BIT(MACRO, ...)
746 #define SWS_FOR_U32_PERMUTE(MACRO, ...) \
747  MACRO(__VA_ARGS__, u32_permute_x_y , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x1, 1, 0, 2, 3) \
748  MACRO(__VA_ARGS__, u32_permute_x_z , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x1, 2, 1, 0, 3) \
749  MACRO(__VA_ARGS__, u32_permute_x_w , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x1, 3, 1, 2, 0) \
750  MACRO(__VA_ARGS__, u32_permute_y_w , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x2, 0, 3, 2, 1) \
751  MACRO(__VA_ARGS__, u32_permute_y_x , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x2, 1, 0, 2, 3) \
752  MACRO(__VA_ARGS__, u32_permute_xy_yx , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x3, 1, 0, 2, 3) \
753  MACRO(__VA_ARGS__, u32_permute_z_x , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x4, 1, 2, 0, 3) \
754  MACRO(__VA_ARGS__, u32_permute_xz_zx , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x5, 2, 1, 0, 3) \
755  MACRO(__VA_ARGS__, u32_permute_xz_zw , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x5, 2, 1, 3, 0) \
756  MACRO(__VA_ARGS__, u32_permute_xz_wx , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x5, 3, 1, 0, 2) \
757  MACRO(__VA_ARGS__, u32_permute_yz_zy , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x6, 0, 2, 1, 3) \
758  MACRO(__VA_ARGS__, u32_permute_xyz_yzx , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x7, 1, 2, 0, 3) \
759  MACRO(__VA_ARGS__, u32_permute_xyz_yzw , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x7, 1, 2, 3, 0) \
760  MACRO(__VA_ARGS__, u32_permute_xyz_zxy , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x7, 2, 0, 1, 3) \
761  MACRO(__VA_ARGS__, u32_permute_xyz_zwy , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x7, 2, 3, 1, 0) \
762  MACRO(__VA_ARGS__, u32_permute_xyz_wzy , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x7, 3, 2, 1, 0) \
763  MACRO(__VA_ARGS__, u32_permute_w_y , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x8, 0, 2, 3, 1) \
764  MACRO(__VA_ARGS__, u32_permute_w_x , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x8, 3, 1, 2, 0) \
765  MACRO(__VA_ARGS__, u32_permute_xw_yx , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x9, 1, 2, 3, 0) \
766  MACRO(__VA_ARGS__, u32_permute_yw_wy , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xa, 0, 3, 2, 1) \
767  MACRO(__VA_ARGS__, u32_permute_yw_xy , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xa, 3, 0, 2, 1) \
768  MACRO(__VA_ARGS__, u32_permute_zw_xz , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xc, 3, 1, 0, 2) \
769  MACRO(__VA_ARGS__, u32_permute_yzw_xyz , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xe, 3, 0, 1, 2) \
770  MACRO(__VA_ARGS__, u32_permute_yzw_zxy , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xe, 3, 2, 0, 1) \
771  MACRO(__VA_ARGS__, u32_permute_yzw_zyx , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xe, 3, 2, 1, 0) \
772  MACRO(__VA_ARGS__, u32_permute_xyzw_yzwx , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 1, 2, 3, 0) \
773  MACRO(__VA_ARGS__, u32_permute_xyzw_wxyz , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 3, 0, 1, 2) \
774  MACRO(__VA_ARGS__, u32_permute_xyzw_wzxy , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 3, 2, 0, 1) \
775  MACRO(__VA_ARGS__, u32_permute_xyzw_wzyx , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 3, 2, 1, 0)
776 #define SWS_FOR_STRUCT_U32_PERMUTE(MACRO, ...) \
777  MACRO(__VA_ARGS__, u32_permute_x_y , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x1, .par.swizzle.in = {1, 0, 2, 3}) \
778  MACRO(__VA_ARGS__, u32_permute_x_z , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x1, .par.swizzle.in = {2, 1, 0, 3}) \
779  MACRO(__VA_ARGS__, u32_permute_x_w , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x1, .par.swizzle.in = {3, 1, 2, 0}) \
780  MACRO(__VA_ARGS__, u32_permute_y_w , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x2, .par.swizzle.in = {0, 3, 2, 1}) \
781  MACRO(__VA_ARGS__, u32_permute_y_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x2, .par.swizzle.in = {1, 0, 2, 3}) \
782  MACRO(__VA_ARGS__, u32_permute_xy_yx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x3, .par.swizzle.in = {1, 0, 2, 3}) \
783  MACRO(__VA_ARGS__, u32_permute_z_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x4, .par.swizzle.in = {1, 2, 0, 3}) \
784  MACRO(__VA_ARGS__, u32_permute_xz_zx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x5, .par.swizzle.in = {2, 1, 0, 3}) \
785  MACRO(__VA_ARGS__, u32_permute_xz_zw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x5, .par.swizzle.in = {2, 1, 3, 0}) \
786  MACRO(__VA_ARGS__, u32_permute_xz_wx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x5, .par.swizzle.in = {3, 1, 0, 2}) \
787  MACRO(__VA_ARGS__, u32_permute_yz_zy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x6, .par.swizzle.in = {0, 2, 1, 3}) \
788  MACRO(__VA_ARGS__, u32_permute_xyz_yzx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {1, 2, 0, 3}) \
789  MACRO(__VA_ARGS__, u32_permute_xyz_yzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {1, 2, 3, 0}) \
790  MACRO(__VA_ARGS__, u32_permute_xyz_zxy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {2, 0, 1, 3}) \
791  MACRO(__VA_ARGS__, u32_permute_xyz_zwy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {2, 3, 1, 0}) \
792  MACRO(__VA_ARGS__, u32_permute_xyz_wzy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.swizzle.in = {3, 2, 1, 0}) \
793  MACRO(__VA_ARGS__, u32_permute_w_y , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x8, .par.swizzle.in = {0, 2, 3, 1}) \
794  MACRO(__VA_ARGS__, u32_permute_w_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x8, .par.swizzle.in = {3, 1, 2, 0}) \
795  MACRO(__VA_ARGS__, u32_permute_xw_yx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x9, .par.swizzle.in = {1, 2, 3, 0}) \
796  MACRO(__VA_ARGS__, u32_permute_yw_wy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xa, .par.swizzle.in = {0, 3, 2, 1}) \
797  MACRO(__VA_ARGS__, u32_permute_yw_xy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xa, .par.swizzle.in = {3, 0, 2, 1}) \
798  MACRO(__VA_ARGS__, u32_permute_zw_xz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xc, .par.swizzle.in = {3, 1, 0, 2}) \
799  MACRO(__VA_ARGS__, u32_permute_yzw_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.swizzle.in = {3, 0, 1, 2}) \
800  MACRO(__VA_ARGS__, u32_permute_yzw_zxy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.swizzle.in = {3, 2, 0, 1}) \
801  MACRO(__VA_ARGS__, u32_permute_yzw_zyx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.swizzle.in = {3, 2, 1, 0}) \
802  MACRO(__VA_ARGS__, u32_permute_xyzw_yzwx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.swizzle.in = {1, 2, 3, 0}) \
803  MACRO(__VA_ARGS__, u32_permute_xyzw_wxyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.swizzle.in = {3, 0, 1, 2}) \
804  MACRO(__VA_ARGS__, u32_permute_xyzw_wzxy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.swizzle.in = {3, 2, 0, 1}) \
805  MACRO(__VA_ARGS__, u32_permute_xyzw_wzyx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.swizzle.in = {3, 2, 1, 0})
806 #define SWS_FOR_U32_COPY(MACRO, ...) \
807  MACRO(__VA_ARGS__, u32_copy_yz_xx , SWS_PIXEL_U32, SWS_UOP_COPY , 0x6, 0, 0, 0, 3) \
808  MACRO(__VA_ARGS__, u32_copy_yzw_xxx , SWS_PIXEL_U32, SWS_UOP_COPY , 0xe, 0, 0, 0, 0) \
809  MACRO(__VA_ARGS__, u32_copy_yzw_xxy , SWS_PIXEL_U32, SWS_UOP_COPY , 0xe, 0, 0, 0, 1)
810 #define SWS_FOR_STRUCT_U32_COPY(MACRO, ...) \
811  MACRO(__VA_ARGS__, u32_copy_yz_xx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_COPY , .mask = 0x6, .par.swizzle.in = {0, 0, 0, 3}) \
812  MACRO(__VA_ARGS__, u32_copy_yzw_xxx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_COPY , .mask = 0xe, .par.swizzle.in = {0, 0, 0, 0}) \
813  MACRO(__VA_ARGS__, u32_copy_yzw_xxy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_COPY , .mask = 0xe, .par.swizzle.in = {0, 0, 0, 1})
814 #define SWS_FOR_U32_MOVE(MACRO, ...) \
815  MACRO(__VA_ARGS__, u32_move_x_y , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0) \
816  MACRO(__VA_ARGS__, u32_move_x_z , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
817  MACRO(__VA_ARGS__, u32_move_x_w , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0) \
818  MACRO(__VA_ARGS__, u32_move_y_x , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
819  MACRO(__VA_ARGS__, u32_move_y_w , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 1, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0) \
820  MACRO(__VA_ARGS__, u32_move_z_x , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
821  MACRO(__VA_ARGS__, u32_move_w_x , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
822  MACRO(__VA_ARGS__, u32_move_w_y , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 1, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0) \
823  MACRO(__VA_ARGS__, u32_move_xz_zw , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 2, 0, 2, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0) \
824  MACRO(__VA_ARGS__, u32_move_yz_xx , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
825  MACRO(__VA_ARGS__, u32_move_zx_xw , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 2, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0) \
826  MACRO(__VA_ARGS__, u32_move_wx_xy , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 2, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0) \
827  MACRO(__VA_ARGS__, u32_move_wy_yx , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 2, 3, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0) \
828  MACRO(__VA_ARGS__, u32_move_wz_zx , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 2, 3, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
829  MACRO(__VA_ARGS__, u32_move_xyz_yzw , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 3, 0, 1, 2, 0, 0, 0, 1, 2, 3, 0, 0, 0) \
830  MACRO(__VA_ARGS__, u32_move_xzy_zyw , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 3, 0, 2, 1, 0, 0, 0, 2, 1, 3, 0, 0, 0) \
831  MACRO(__VA_ARGS__, u32_move_yzw_xxx , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 3, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
832  MACRO(__VA_ARGS__, u32_move_zwy_xyx , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 3, 2, 3, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0) \
833  MACRO(__VA_ARGS__, u32_move_wyz_yzx , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 3, 3, 1, 2, 0, 0, 0, 1, 2, 0, 0, 0, 0) \
834  MACRO(__VA_ARGS__, u32_move_wzy_zyx , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 3, 3, 2, 1, 0, 0, 0, 2, 1, 0, 0, 0, 0) \
835  MACRO(__VA_ARGS__, u32_move_txy_xyt , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 3, -1, 0, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0) \
836  MACRO(__VA_ARGS__, u32_move_txz_xzt , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 3, -1, 0, 2, 0, 0, 0, 0, 2, -1, 0, 0, 0) \
837  MACRO(__VA_ARGS__, u32_move_tyz_yzt , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 3, -1, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0, 0) \
838  MACRO(__VA_ARGS__, u32_move_tyw_ywt , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 3, -1, 1, 3, 0, 0, 0, 1, 3, -1, 0, 0, 0) \
839  MACRO(__VA_ARGS__, u32_move_xtyz_wyzt , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 4, 0, -1, 1, 2, 0, 0, 3, 1, 2, -1, 0, 0) \
840  MACRO(__VA_ARGS__, u32_move_wtyz_xyzt , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 4, 3, -1, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0) \
841  MACRO(__VA_ARGS__, u32_move_txyz_xyzt , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 4, -1, 0, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0) \
842  MACRO(__VA_ARGS__, u32_move_txzy_xzyt , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 4, -1, 0, 2, 1, 0, 0, 0, 2, 1, -1, 0, 0) \
843  MACRO(__VA_ARGS__, u32_move_txyzw_xyzwt , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 5, -1, 0, 1, 2, 3, 0, 0, 1, 2, 3, -1, 0) \
844  MACRO(__VA_ARGS__, u32_move_txwyz_xwyzt , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 5, -1, 0, 3, 1, 2, 0, 0, 3, 1, 2, -1, 0) \
845  MACRO(__VA_ARGS__, u32_move_txwzy_xwzyt , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 5, -1, 0, 3, 2, 1, 0, 0, 3, 2, 1, -1, 0) \
846  MACRO(__VA_ARGS__, u32_move_txwtyz_xwtyzt , SWS_PIXEL_U32, SWS_UOP_MOVE , 0x0, 6, -1, 0, 3, -1, 1, 2, 0, 3, -1, 1, 2, -1)
847 #define SWS_FOR_STRUCT_U32_MOVE(MACRO, ...) \
848  MACRO(__VA_ARGS__, u32_move_x_y , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {1, 0, 0, 0, 0, 0}) \
849  MACRO(__VA_ARGS__, u32_move_x_z , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {2, 0, 0, 0, 0, 0}) \
850  MACRO(__VA_ARGS__, u32_move_x_w , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {3, 0, 0, 0, 0, 0}) \
851  MACRO(__VA_ARGS__, u32_move_y_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
852  MACRO(__VA_ARGS__, u32_move_y_w , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {3, 0, 0, 0, 0, 0}) \
853  MACRO(__VA_ARGS__, u32_move_z_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {2, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
854  MACRO(__VA_ARGS__, u32_move_w_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {3, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
855  MACRO(__VA_ARGS__, u32_move_w_y , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 1, .par.move.dst = {3, 0, 0, 0, 0, 0}, .par.move.src = {1, 0, 0, 0, 0, 0}) \
856  MACRO(__VA_ARGS__, u32_move_xz_zw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {0, 2, 0, 0, 0, 0}, .par.move.src = {2, 3, 0, 0, 0, 0}) \
857  MACRO(__VA_ARGS__, u32_move_yz_xx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {1, 2, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
858  MACRO(__VA_ARGS__, u32_move_zx_xw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {2, 0, 0, 0, 0, 0}, .par.move.src = {0, 3, 0, 0, 0, 0}) \
859  MACRO(__VA_ARGS__, u32_move_wx_xy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {3, 0, 0, 0, 0, 0}, .par.move.src = {0, 1, 0, 0, 0, 0}) \
860  MACRO(__VA_ARGS__, u32_move_wy_yx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {3, 1, 0, 0, 0, 0}, .par.move.src = {1, 0, 0, 0, 0, 0}) \
861  MACRO(__VA_ARGS__, u32_move_wz_zx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 2, .par.move.dst = {3, 2, 0, 0, 0, 0}, .par.move.src = {2, 0, 0, 0, 0, 0}) \
862  MACRO(__VA_ARGS__, u32_move_xyz_yzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {0, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, 3, 0, 0, 0}) \
863  MACRO(__VA_ARGS__, u32_move_xzy_zyw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {0, 2, 1, 0, 0, 0}, .par.move.src = {2, 1, 3, 0, 0, 0}) \
864  MACRO(__VA_ARGS__, u32_move_yzw_xxx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {1, 2, 3, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
865  MACRO(__VA_ARGS__, u32_move_zwy_xyx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {2, 3, 1, 0, 0, 0}, .par.move.src = {0, 1, 0, 0, 0, 0}) \
866  MACRO(__VA_ARGS__, u32_move_wyz_yzx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {3, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, 0, 0, 0, 0}) \
867  MACRO(__VA_ARGS__, u32_move_wzy_zyx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {3, 2, 1, 0, 0, 0}, .par.move.src = {2, 1, 0, 0, 0, 0}) \
868  MACRO(__VA_ARGS__, u32_move_txy_xyt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {-1, 0, 1, 0, 0, 0}, .par.move.src = {0, 1, -1, 0, 0, 0}) \
869  MACRO(__VA_ARGS__, u32_move_txz_xzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {-1, 0, 2, 0, 0, 0}, .par.move.src = {0, 2, -1, 0, 0, 0}) \
870  MACRO(__VA_ARGS__, u32_move_tyz_yzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {-1, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, -1, 0, 0, 0}) \
871  MACRO(__VA_ARGS__, u32_move_tyw_ywt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 3, .par.move.dst = {-1, 1, 3, 0, 0, 0}, .par.move.src = {1, 3, -1, 0, 0, 0}) \
872  MACRO(__VA_ARGS__, u32_move_xtyz_wyzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {0, -1, 1, 2, 0, 0}, .par.move.src = {3, 1, 2, -1, 0, 0}) \
873  MACRO(__VA_ARGS__, u32_move_wtyz_xyzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {3, -1, 1, 2, 0, 0}, .par.move.src = {0, 1, 2, -1, 0, 0}) \
874  MACRO(__VA_ARGS__, u32_move_txyz_xyzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 1, 2, 0, 0}, .par.move.src = {0, 1, 2, -1, 0, 0}) \
875  MACRO(__VA_ARGS__, u32_move_txzy_xzyt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 2, 1, 0, 0}, .par.move.src = {0, 2, 1, -1, 0, 0}) \
876  MACRO(__VA_ARGS__, u32_move_txyzw_xyzwt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 1, 2, 3, 0}, .par.move.src = {0, 1, 2, 3, -1, 0}) \
877  MACRO(__VA_ARGS__, u32_move_txwyz_xwyzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 3, 1, 2, 0}, .par.move.src = {0, 3, 1, 2, -1, 0}) \
878  MACRO(__VA_ARGS__, u32_move_txwzy_xwzyt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 3, 2, 1, 0}, .par.move.src = {0, 3, 2, 1, -1, 0}) \
879  MACRO(__VA_ARGS__, u32_move_txwtyz_xwtyzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_MOVE , .mask = 0x0, .par.move.num_moves = 6, .par.move.dst = {-1, 0, 3, -1, 1, 2}, .par.move.src = {0, 3, -1, 1, 2, -1})
880 #define SWS_FOR_U32_SWAP_BYTES(MACRO, ...) \
881  MACRO(__VA_ARGS__, u32_swap_bytes_x , SWS_PIXEL_U32, SWS_UOP_SWAP_BYTES , 0x1) \
882  MACRO(__VA_ARGS__, u32_swap_bytes_xy , SWS_PIXEL_U32, SWS_UOP_SWAP_BYTES , 0x3) \
883  MACRO(__VA_ARGS__, u32_swap_bytes_xyz , SWS_PIXEL_U32, SWS_UOP_SWAP_BYTES , 0x7) \
884  MACRO(__VA_ARGS__, u32_swap_bytes_xw , SWS_PIXEL_U32, SWS_UOP_SWAP_BYTES , 0x9) \
885  MACRO(__VA_ARGS__, u32_swap_bytes_yzw , SWS_PIXEL_U32, SWS_UOP_SWAP_BYTES , 0xe) \
886  MACRO(__VA_ARGS__, u32_swap_bytes_xyzw , SWS_PIXEL_U32, SWS_UOP_SWAP_BYTES , 0xf)
887 #define SWS_FOR_STRUCT_U32_SWAP_BYTES(MACRO, ...) \
888  MACRO(__VA_ARGS__, u32_swap_bytes_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x1) \
889  MACRO(__VA_ARGS__, u32_swap_bytes_xy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x3) \
890  MACRO(__VA_ARGS__, u32_swap_bytes_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x7) \
891  MACRO(__VA_ARGS__, u32_swap_bytes_xw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x9) \
892  MACRO(__VA_ARGS__, u32_swap_bytes_yzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SWAP_BYTES , .mask = 0xe) \
893  MACRO(__VA_ARGS__, u32_swap_bytes_xyzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SWAP_BYTES , .mask = 0xf)
894 #define SWS_FOR_U32_EXPAND_BIT(MACRO, ...)
895 #define SWS_FOR_STRUCT_U32_EXPAND_BIT(MACRO, ...)
896 #define SWS_FOR_U32_EXPAND_PAIR(MACRO, ...)
897 #define SWS_FOR_STRUCT_U32_EXPAND_PAIR(MACRO, ...)
898 #define SWS_FOR_U32_EXPAND_QUAD(MACRO, ...)
899 #define SWS_FOR_STRUCT_U32_EXPAND_QUAD(MACRO, ...)
900 #define SWS_FOR_U32_TO_U8(MACRO, ...)
901 #define SWS_FOR_STRUCT_U32_TO_U8(MACRO, ...)
902 #define SWS_FOR_U32_TO_U16(MACRO, ...) \
903  MACRO(__VA_ARGS__, u32_to_u16_y , SWS_PIXEL_U32, SWS_UOP_TO_U16 , 0x2) \
904  MACRO(__VA_ARGS__, u32_to_u16_z , SWS_PIXEL_U32, SWS_UOP_TO_U16 , 0x4) \
905  MACRO(__VA_ARGS__, u32_to_u16_xyz , SWS_PIXEL_U32, SWS_UOP_TO_U16 , 0x7) \
906  MACRO(__VA_ARGS__, u32_to_u16_yzw , SWS_PIXEL_U32, SWS_UOP_TO_U16 , 0xe)
907 #define SWS_FOR_STRUCT_U32_TO_U16(MACRO, ...) \
908  MACRO(__VA_ARGS__, u32_to_u16_y , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_U16 , .mask = 0x2) \
909  MACRO(__VA_ARGS__, u32_to_u16_z , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_U16 , .mask = 0x4) \
910  MACRO(__VA_ARGS__, u32_to_u16_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_U16 , .mask = 0x7) \
911  MACRO(__VA_ARGS__, u32_to_u16_yzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_U16 , .mask = 0xe)
912 #define SWS_FOR_U32_TO_U32(MACRO, ...)
913 #define SWS_FOR_STRUCT_U32_TO_U32(MACRO, ...)
914 #define SWS_FOR_U32_TO_F32(MACRO, ...) \
915  MACRO(__VA_ARGS__, u32_to_f32_y , SWS_PIXEL_U32, SWS_UOP_TO_F32 , 0x2) \
916  MACRO(__VA_ARGS__, u32_to_f32_z , SWS_PIXEL_U32, SWS_UOP_TO_F32 , 0x4) \
917  MACRO(__VA_ARGS__, u32_to_f32_xyz , SWS_PIXEL_U32, SWS_UOP_TO_F32 , 0x7) \
918  MACRO(__VA_ARGS__, u32_to_f32_yzw , SWS_PIXEL_U32, SWS_UOP_TO_F32 , 0xe)
919 #define SWS_FOR_STRUCT_U32_TO_F32(MACRO, ...) \
920  MACRO(__VA_ARGS__, u32_to_f32_y , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_F32 , .mask = 0x2) \
921  MACRO(__VA_ARGS__, u32_to_f32_z , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_F32 , .mask = 0x4) \
922  MACRO(__VA_ARGS__, u32_to_f32_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_F32 , .mask = 0x7) \
923  MACRO(__VA_ARGS__, u32_to_f32_yzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_F32 , .mask = 0xe)
924 #define SWS_FOR_U32_SCALE(MACRO, ...) \
925  MACRO(__VA_ARGS__, u32_scale_x , SWS_PIXEL_U32, SWS_UOP_SCALE , 0x1) \
926  MACRO(__VA_ARGS__, u32_scale_xyz , SWS_PIXEL_U32, SWS_UOP_SCALE , 0x7)
927 #define SWS_FOR_STRUCT_U32_SCALE(MACRO, ...) \
928  MACRO(__VA_ARGS__, u32_scale_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SCALE , .mask = 0x1) \
929  MACRO(__VA_ARGS__, u32_scale_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SCALE , .mask = 0x7)
930 #define SWS_FOR_U32_ADD(MACRO, ...)
931 #define SWS_FOR_STRUCT_U32_ADD(MACRO, ...)
932 #define SWS_FOR_U32_MIN(MACRO, ...)
933 #define SWS_FOR_STRUCT_U32_MIN(MACRO, ...)
934 #define SWS_FOR_U32_MAX(MACRO, ...)
935 #define SWS_FOR_STRUCT_U32_MAX(MACRO, ...)
936 #define SWS_FOR_U32_UNPACK(MACRO, ...) \
937  MACRO(__VA_ARGS__, u32_unpack_xyzw_2aaa , SWS_PIXEL_U32, SWS_UOP_UNPACK , 0xf, 2, 10, 10, 10) \
938  MACRO(__VA_ARGS__, u32_unpack_xyzw_aaa2 , SWS_PIXEL_U32, SWS_UOP_UNPACK , 0xf, 10, 10, 10, 2)
939 #define SWS_FOR_STRUCT_U32_UNPACK(MACRO, ...) \
940  MACRO(__VA_ARGS__, u32_unpack_xyzw_2aaa , .type = SWS_PIXEL_U32, .uop = SWS_UOP_UNPACK , .mask = 0xf, .par.pack.pattern = {2, 10, 10, 10}) \
941  MACRO(__VA_ARGS__, u32_unpack_xyzw_aaa2 , .type = SWS_PIXEL_U32, .uop = SWS_UOP_UNPACK , .mask = 0xf, .par.pack.pattern = {10, 10, 10, 2})
942 #define SWS_FOR_U32_PACK(MACRO, ...) \
943  MACRO(__VA_ARGS__, u32_pack_xyzw_2aaa , SWS_PIXEL_U32, SWS_UOP_PACK , 0xf, 2, 10, 10, 10) \
944  MACRO(__VA_ARGS__, u32_pack_xyzw_aaa2 , SWS_PIXEL_U32, SWS_UOP_PACK , 0xf, 10, 10, 10, 2)
945 #define SWS_FOR_STRUCT_U32_PACK(MACRO, ...) \
946  MACRO(__VA_ARGS__, u32_pack_xyzw_2aaa , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PACK , .mask = 0xf, .par.pack.pattern = {2, 10, 10, 10}) \
947  MACRO(__VA_ARGS__, u32_pack_xyzw_aaa2 , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PACK , .mask = 0xf, .par.pack.pattern = {10, 10, 10, 2})
948 #define SWS_FOR_U32_LSHIFT(MACRO, ...) \
949  MACRO(__VA_ARGS__, u32_lshift_xyz_2 , SWS_PIXEL_U32, SWS_UOP_LSHIFT , 0x7, 2)
950 #define SWS_FOR_STRUCT_U32_LSHIFT(MACRO, ...) \
951  MACRO(__VA_ARGS__, u32_lshift_xyz_2 , .type = SWS_PIXEL_U32, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 2)
952 #define SWS_FOR_U32_RSHIFT(MACRO, ...)
953 #define SWS_FOR_STRUCT_U32_RSHIFT(MACRO, ...)
954 #define SWS_FOR_U32_CLEAR(MACRO, ...) \
955  MACRO(__VA_ARGS__, u32_clear_x_x , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0x1, 0x00000, 0x00000) \
956  MACRO(__VA_ARGS__, u32_clear_y_x , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0x2, 0x00000, 0x00000) \
957  MACRO(__VA_ARGS__, u32_clear_xz_xx , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0x5, 0x00000, 0x00000) \
958  MACRO(__VA_ARGS__, u32_clear_w_x , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0x8, 0x00000, 0x00000) \
959  MACRO(__VA_ARGS__, u32_clear_yw_xx , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0xa, 0x00000, 0x00000) \
960  MACRO(__VA_ARGS__, u32_clear_xyw_xxx , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0xb, 0x00000, 0x00000) \
961  MACRO(__VA_ARGS__, u32_clear_xzw_xxx , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0xd, 0x00000, 0x00000)
962 #define SWS_FOR_STRUCT_U32_CLEAR(MACRO, ...) \
963  MACRO(__VA_ARGS__, u32_clear_x_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_CLEAR , .mask = 0x1, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
964  MACRO(__VA_ARGS__, u32_clear_y_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_CLEAR , .mask = 0x2, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
965  MACRO(__VA_ARGS__, u32_clear_xz_xx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_CLEAR , .mask = 0x5, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
966  MACRO(__VA_ARGS__, u32_clear_w_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_CLEAR , .mask = 0x8, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
967  MACRO(__VA_ARGS__, u32_clear_yw_xx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_CLEAR , .mask = 0xa, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
968  MACRO(__VA_ARGS__, u32_clear_xyw_xxx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_CLEAR , .mask = 0xb, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
969  MACRO(__VA_ARGS__, u32_clear_xzw_xxx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_CLEAR , .mask = 0xd, .par.clear.one = 0x0, .par.clear.zero = 0x0)
970 #define SWS_FOR_U32_LINEAR(MACRO, ...)
971 #define SWS_FOR_STRUCT_U32_LINEAR(MACRO, ...)
972 #define SWS_FOR_U32_LINEAR_FMA(MACRO, ...)
973 #define SWS_FOR_STRUCT_U32_LINEAR_FMA(MACRO, ...)
974 #define SWS_FOR_U32_DITHER(MACRO, ...)
975 #define SWS_FOR_STRUCT_U32_DITHER(MACRO, ...)
976 #define SWS_FOR_F32_READ_PLANAR(MACRO, ...)
977 #define SWS_FOR_STRUCT_F32_READ_PLANAR(MACRO, ...)
978 #define SWS_FOR_F32_READ_PLANAR_FH(MACRO, ...) \
979  MACRO(__VA_ARGS__, f32_read_planar_fh_x_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FH , 0x1, SWS_PIXEL_F32) \
980  MACRO(__VA_ARGS__, f32_read_planar_fh_xy_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FH , 0x3, SWS_PIXEL_F32) \
981  MACRO(__VA_ARGS__, f32_read_planar_fh_xyz_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FH , 0x7, SWS_PIXEL_F32) \
982  MACRO(__VA_ARGS__, f32_read_planar_fh_xyzw_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FH , 0xf, SWS_PIXEL_F32)
983 #define SWS_FOR_STRUCT_F32_READ_PLANAR_FH(MACRO, ...) \
984  MACRO(__VA_ARGS__, f32_read_planar_fh_x_f32 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_READ_PLANAR_FH , .mask = 0x1, .par.filter.type = SWS_PIXEL_F32) \
985  MACRO(__VA_ARGS__, f32_read_planar_fh_xy_f32 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_READ_PLANAR_FH , .mask = 0x3, .par.filter.type = SWS_PIXEL_F32) \
986  MACRO(__VA_ARGS__, f32_read_planar_fh_xyz_f32 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_READ_PLANAR_FH , .mask = 0x7, .par.filter.type = SWS_PIXEL_F32) \
987  MACRO(__VA_ARGS__, f32_read_planar_fh_xyzw_f32 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_READ_PLANAR_FH , .mask = 0xf, .par.filter.type = SWS_PIXEL_F32)
988 #define SWS_FOR_F32_READ_PLANAR_FV(MACRO, ...) \
989  MACRO(__VA_ARGS__, f32_read_planar_fv_x_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV , 0x1, SWS_PIXEL_F32) \
990  MACRO(__VA_ARGS__, f32_read_planar_fv_xy_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV , 0x3, SWS_PIXEL_F32) \
991  MACRO(__VA_ARGS__, f32_read_planar_fv_xyz_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV , 0x7, SWS_PIXEL_F32) \
992  MACRO(__VA_ARGS__, f32_read_planar_fv_xyzw_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV , 0xf, SWS_PIXEL_F32)
993 #define SWS_FOR_STRUCT_F32_READ_PLANAR_FV(MACRO, ...) \
994  MACRO(__VA_ARGS__, f32_read_planar_fv_x_f32 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_READ_PLANAR_FV , .mask = 0x1, .par.filter.type = SWS_PIXEL_F32) \
995  MACRO(__VA_ARGS__, f32_read_planar_fv_xy_f32 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_READ_PLANAR_FV , .mask = 0x3, .par.filter.type = SWS_PIXEL_F32) \
996  MACRO(__VA_ARGS__, f32_read_planar_fv_xyz_f32 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_READ_PLANAR_FV , .mask = 0x7, .par.filter.type = SWS_PIXEL_F32) \
997  MACRO(__VA_ARGS__, f32_read_planar_fv_xyzw_f32 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_READ_PLANAR_FV , .mask = 0xf, .par.filter.type = SWS_PIXEL_F32)
998 #define SWS_FOR_F32_READ_PLANAR_FV_FMA(MACRO, ...) \
999  MACRO(__VA_ARGS__, f32_read_planar_fv_fma_x_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV_FMA, 0x1, SWS_PIXEL_F32) \
1000  MACRO(__VA_ARGS__, f32_read_planar_fv_fma_xy_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV_FMA, 0x3, SWS_PIXEL_F32) \
1001  MACRO(__VA_ARGS__, f32_read_planar_fv_fma_xyz_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV_FMA, 0x7, SWS_PIXEL_F32) \
1002  MACRO(__VA_ARGS__, f32_read_planar_fv_fma_xyzw_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV_FMA, 0xf, SWS_PIXEL_F32)
1003 #define SWS_FOR_STRUCT_F32_READ_PLANAR_FV_FMA(MACRO, ...) \
1004  MACRO(__VA_ARGS__, f32_read_planar_fv_fma_x_f32 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_READ_PLANAR_FV_FMA, .mask = 0x1, .par.filter.type = SWS_PIXEL_F32) \
1005  MACRO(__VA_ARGS__, f32_read_planar_fv_fma_xy_f32 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_READ_PLANAR_FV_FMA, .mask = 0x3, .par.filter.type = SWS_PIXEL_F32) \
1006  MACRO(__VA_ARGS__, f32_read_planar_fv_fma_xyz_f32 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_READ_PLANAR_FV_FMA, .mask = 0x7, .par.filter.type = SWS_PIXEL_F32) \
1007  MACRO(__VA_ARGS__, f32_read_planar_fv_fma_xyzw_f32 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_READ_PLANAR_FV_FMA, .mask = 0xf, .par.filter.type = SWS_PIXEL_F32)
1008 #define SWS_FOR_F32_READ_PACKED(MACRO, ...)
1009 #define SWS_FOR_STRUCT_F32_READ_PACKED(MACRO, ...)
1010 #define SWS_FOR_F32_READ_NIBBLE(MACRO, ...)
1011 #define SWS_FOR_STRUCT_F32_READ_NIBBLE(MACRO, ...)
1012 #define SWS_FOR_F32_READ_BIT(MACRO, ...)
1013 #define SWS_FOR_STRUCT_F32_READ_BIT(MACRO, ...)
1014 #define SWS_FOR_F32_WRITE_PLANAR(MACRO, ...)
1015 #define SWS_FOR_STRUCT_F32_WRITE_PLANAR(MACRO, ...)
1016 #define SWS_FOR_F32_WRITE_PACKED(MACRO, ...)
1017 #define SWS_FOR_STRUCT_F32_WRITE_PACKED(MACRO, ...)
1018 #define SWS_FOR_F32_WRITE_NIBBLE(MACRO, ...)
1019 #define SWS_FOR_STRUCT_F32_WRITE_NIBBLE(MACRO, ...)
1020 #define SWS_FOR_F32_WRITE_BIT(MACRO, ...)
1021 #define SWS_FOR_STRUCT_F32_WRITE_BIT(MACRO, ...)
1022 #define SWS_FOR_F32_PERMUTE(MACRO, ...)
1023 #define SWS_FOR_STRUCT_F32_PERMUTE(MACRO, ...)
1024 #define SWS_FOR_F32_COPY(MACRO, ...)
1025 #define SWS_FOR_STRUCT_F32_COPY(MACRO, ...)
1026 #define SWS_FOR_F32_MOVE(MACRO, ...)
1027 #define SWS_FOR_STRUCT_F32_MOVE(MACRO, ...)
1028 #define SWS_FOR_F32_SWAP_BYTES(MACRO, ...)
1029 #define SWS_FOR_STRUCT_F32_SWAP_BYTES(MACRO, ...)
1030 #define SWS_FOR_F32_EXPAND_BIT(MACRO, ...)
1031 #define SWS_FOR_STRUCT_F32_EXPAND_BIT(MACRO, ...)
1032 #define SWS_FOR_F32_EXPAND_PAIR(MACRO, ...)
1033 #define SWS_FOR_STRUCT_F32_EXPAND_PAIR(MACRO, ...)
1034 #define SWS_FOR_F32_EXPAND_QUAD(MACRO, ...)
1035 #define SWS_FOR_STRUCT_F32_EXPAND_QUAD(MACRO, ...)
1036 #define SWS_FOR_F32_TO_U8(MACRO, ...) \
1037  MACRO(__VA_ARGS__, f32_to_u8_x , SWS_PIXEL_F32, SWS_UOP_TO_U8 , 0x1) \
1038  MACRO(__VA_ARGS__, f32_to_u8_xy , SWS_PIXEL_F32, SWS_UOP_TO_U8 , 0x3) \
1039  MACRO(__VA_ARGS__, f32_to_u8_xyz , SWS_PIXEL_F32, SWS_UOP_TO_U8 , 0x7) \
1040  MACRO(__VA_ARGS__, f32_to_u8_xw , SWS_PIXEL_F32, SWS_UOP_TO_U8 , 0x9) \
1041  MACRO(__VA_ARGS__, f32_to_u8_yzw , SWS_PIXEL_F32, SWS_UOP_TO_U8 , 0xe) \
1042  MACRO(__VA_ARGS__, f32_to_u8_xyzw , SWS_PIXEL_F32, SWS_UOP_TO_U8 , 0xf)
1043 #define SWS_FOR_STRUCT_F32_TO_U8(MACRO, ...) \
1044  MACRO(__VA_ARGS__, f32_to_u8_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U8 , .mask = 0x1) \
1045  MACRO(__VA_ARGS__, f32_to_u8_xy , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U8 , .mask = 0x3) \
1046  MACRO(__VA_ARGS__, f32_to_u8_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U8 , .mask = 0x7) \
1047  MACRO(__VA_ARGS__, f32_to_u8_xw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U8 , .mask = 0x9) \
1048  MACRO(__VA_ARGS__, f32_to_u8_yzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U8 , .mask = 0xe) \
1049  MACRO(__VA_ARGS__, f32_to_u8_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U8 , .mask = 0xf)
1050 #define SWS_FOR_F32_TO_U16(MACRO, ...) \
1051  MACRO(__VA_ARGS__, f32_to_u16_x , SWS_PIXEL_F32, SWS_UOP_TO_U16 , 0x1) \
1052  MACRO(__VA_ARGS__, f32_to_u16_xy , SWS_PIXEL_F32, SWS_UOP_TO_U16 , 0x3) \
1053  MACRO(__VA_ARGS__, f32_to_u16_xyz , SWS_PIXEL_F32, SWS_UOP_TO_U16 , 0x7) \
1054  MACRO(__VA_ARGS__, f32_to_u16_xw , SWS_PIXEL_F32, SWS_UOP_TO_U16 , 0x9) \
1055  MACRO(__VA_ARGS__, f32_to_u16_yzw , SWS_PIXEL_F32, SWS_UOP_TO_U16 , 0xe) \
1056  MACRO(__VA_ARGS__, f32_to_u16_xyzw , SWS_PIXEL_F32, SWS_UOP_TO_U16 , 0xf)
1057 #define SWS_FOR_STRUCT_F32_TO_U16(MACRO, ...) \
1058  MACRO(__VA_ARGS__, f32_to_u16_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U16 , .mask = 0x1) \
1059  MACRO(__VA_ARGS__, f32_to_u16_xy , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U16 , .mask = 0x3) \
1060  MACRO(__VA_ARGS__, f32_to_u16_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U16 , .mask = 0x7) \
1061  MACRO(__VA_ARGS__, f32_to_u16_xw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U16 , .mask = 0x9) \
1062  MACRO(__VA_ARGS__, f32_to_u16_yzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U16 , .mask = 0xe) \
1063  MACRO(__VA_ARGS__, f32_to_u16_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U16 , .mask = 0xf)
1064 #define SWS_FOR_F32_TO_U32(MACRO, ...) \
1065  MACRO(__VA_ARGS__, f32_to_u32_x , SWS_PIXEL_F32, SWS_UOP_TO_U32 , 0x1) \
1066  MACRO(__VA_ARGS__, f32_to_u32_xyz , SWS_PIXEL_F32, SWS_UOP_TO_U32 , 0x7) \
1067  MACRO(__VA_ARGS__, f32_to_u32_xw , SWS_PIXEL_F32, SWS_UOP_TO_U32 , 0x9) \
1068  MACRO(__VA_ARGS__, f32_to_u32_yzw , SWS_PIXEL_F32, SWS_UOP_TO_U32 , 0xe) \
1069  MACRO(__VA_ARGS__, f32_to_u32_xyzw , SWS_PIXEL_F32, SWS_UOP_TO_U32 , 0xf)
1070 #define SWS_FOR_STRUCT_F32_TO_U32(MACRO, ...) \
1071  MACRO(__VA_ARGS__, f32_to_u32_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U32 , .mask = 0x1) \
1072  MACRO(__VA_ARGS__, f32_to_u32_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U32 , .mask = 0x7) \
1073  MACRO(__VA_ARGS__, f32_to_u32_xw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U32 , .mask = 0x9) \
1074  MACRO(__VA_ARGS__, f32_to_u32_yzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U32 , .mask = 0xe) \
1075  MACRO(__VA_ARGS__, f32_to_u32_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U32 , .mask = 0xf)
1076 #define SWS_FOR_F32_TO_F32(MACRO, ...)
1077 #define SWS_FOR_STRUCT_F32_TO_F32(MACRO, ...)
1078 #define SWS_FOR_F32_SCALE(MACRO, ...) \
1079  MACRO(__VA_ARGS__, f32_scale_x , SWS_PIXEL_F32, SWS_UOP_SCALE , 0x1) \
1080  MACRO(__VA_ARGS__, f32_scale_xy , SWS_PIXEL_F32, SWS_UOP_SCALE , 0x3) \
1081  MACRO(__VA_ARGS__, f32_scale_xyz , SWS_PIXEL_F32, SWS_UOP_SCALE , 0x7) \
1082  MACRO(__VA_ARGS__, f32_scale_yzw , SWS_PIXEL_F32, SWS_UOP_SCALE , 0xe) \
1083  MACRO(__VA_ARGS__, f32_scale_xyzw , SWS_PIXEL_F32, SWS_UOP_SCALE , 0xf)
1084 #define SWS_FOR_STRUCT_F32_SCALE(MACRO, ...) \
1085  MACRO(__VA_ARGS__, f32_scale_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_SCALE , .mask = 0x1) \
1086  MACRO(__VA_ARGS__, f32_scale_xy , .type = SWS_PIXEL_F32, .uop = SWS_UOP_SCALE , .mask = 0x3) \
1087  MACRO(__VA_ARGS__, f32_scale_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_SCALE , .mask = 0x7) \
1088  MACRO(__VA_ARGS__, f32_scale_yzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_SCALE , .mask = 0xe) \
1089  MACRO(__VA_ARGS__, f32_scale_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_SCALE , .mask = 0xf)
1090 #define SWS_FOR_F32_ADD(MACRO, ...) \
1091  MACRO(__VA_ARGS__, f32_add_x , SWS_PIXEL_F32, SWS_UOP_ADD , 0x1) \
1092  MACRO(__VA_ARGS__, f32_add_xy , SWS_PIXEL_F32, SWS_UOP_ADD , 0x3) \
1093  MACRO(__VA_ARGS__, f32_add_xz , SWS_PIXEL_F32, SWS_UOP_ADD , 0x5) \
1094  MACRO(__VA_ARGS__, f32_add_xyz , SWS_PIXEL_F32, SWS_UOP_ADD , 0x7) \
1095  MACRO(__VA_ARGS__, f32_add_w , SWS_PIXEL_F32, SWS_UOP_ADD , 0x8) \
1096  MACRO(__VA_ARGS__, f32_add_xw , SWS_PIXEL_F32, SWS_UOP_ADD , 0x9) \
1097  MACRO(__VA_ARGS__, f32_add_yzw , SWS_PIXEL_F32, SWS_UOP_ADD , 0xe) \
1098  MACRO(__VA_ARGS__, f32_add_xyzw , SWS_PIXEL_F32, SWS_UOP_ADD , 0xf)
1099 #define SWS_FOR_STRUCT_F32_ADD(MACRO, ...) \
1100  MACRO(__VA_ARGS__, f32_add_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0x1) \
1101  MACRO(__VA_ARGS__, f32_add_xy , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0x3) \
1102  MACRO(__VA_ARGS__, f32_add_xz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0x5) \
1103  MACRO(__VA_ARGS__, f32_add_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0x7) \
1104  MACRO(__VA_ARGS__, f32_add_w , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0x8) \
1105  MACRO(__VA_ARGS__, f32_add_xw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0x9) \
1106  MACRO(__VA_ARGS__, f32_add_yzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0xe) \
1107  MACRO(__VA_ARGS__, f32_add_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0xf)
1108 #define SWS_FOR_F32_MIN(MACRO, ...) \
1109  MACRO(__VA_ARGS__, f32_min_x , SWS_PIXEL_F32, SWS_UOP_MIN , 0x1) \
1110  MACRO(__VA_ARGS__, f32_min_xy , SWS_PIXEL_F32, SWS_UOP_MIN , 0x3) \
1111  MACRO(__VA_ARGS__, f32_min_xyz , SWS_PIXEL_F32, SWS_UOP_MIN , 0x7) \
1112  MACRO(__VA_ARGS__, f32_min_xw , SWS_PIXEL_F32, SWS_UOP_MIN , 0x9) \
1113  MACRO(__VA_ARGS__, f32_min_yzw , SWS_PIXEL_F32, SWS_UOP_MIN , 0xe) \
1114  MACRO(__VA_ARGS__, f32_min_xyzw , SWS_PIXEL_F32, SWS_UOP_MIN , 0xf)
1115 #define SWS_FOR_STRUCT_F32_MIN(MACRO, ...) \
1116  MACRO(__VA_ARGS__, f32_min_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0x1) \
1117  MACRO(__VA_ARGS__, f32_min_xy , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0x3) \
1118  MACRO(__VA_ARGS__, f32_min_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0x7) \
1119  MACRO(__VA_ARGS__, f32_min_xw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0x9) \
1120  MACRO(__VA_ARGS__, f32_min_yzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0xe) \
1121  MACRO(__VA_ARGS__, f32_min_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0xf)
1122 #define SWS_FOR_F32_MAX(MACRO, ...) \
1123  MACRO(__VA_ARGS__, f32_max_x , SWS_PIXEL_F32, SWS_UOP_MAX , 0x1) \
1124  MACRO(__VA_ARGS__, f32_max_xy , SWS_PIXEL_F32, SWS_UOP_MAX , 0x3) \
1125  MACRO(__VA_ARGS__, f32_max_xyz , SWS_PIXEL_F32, SWS_UOP_MAX , 0x7) \
1126  MACRO(__VA_ARGS__, f32_max_xw , SWS_PIXEL_F32, SWS_UOP_MAX , 0x9) \
1127  MACRO(__VA_ARGS__, f32_max_xyzw , SWS_PIXEL_F32, SWS_UOP_MAX , 0xf)
1128 #define SWS_FOR_STRUCT_F32_MAX(MACRO, ...) \
1129  MACRO(__VA_ARGS__, f32_max_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MAX , .mask = 0x1) \
1130  MACRO(__VA_ARGS__, f32_max_xy , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MAX , .mask = 0x3) \
1131  MACRO(__VA_ARGS__, f32_max_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MAX , .mask = 0x7) \
1132  MACRO(__VA_ARGS__, f32_max_xw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MAX , .mask = 0x9) \
1133  MACRO(__VA_ARGS__, f32_max_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MAX , .mask = 0xf)
1134 #define SWS_FOR_F32_UNPACK(MACRO, ...)
1135 #define SWS_FOR_STRUCT_F32_UNPACK(MACRO, ...)
1136 #define SWS_FOR_F32_PACK(MACRO, ...)
1137 #define SWS_FOR_STRUCT_F32_PACK(MACRO, ...)
1138 #define SWS_FOR_F32_LSHIFT(MACRO, ...)
1139 #define SWS_FOR_STRUCT_F32_LSHIFT(MACRO, ...)
1140 #define SWS_FOR_F32_RSHIFT(MACRO, ...)
1141 #define SWS_FOR_STRUCT_F32_RSHIFT(MACRO, ...)
1142 #define SWS_FOR_F32_CLEAR(MACRO, ...)
1143 #define SWS_FOR_STRUCT_F32_CLEAR(MACRO, ...)
1144 #define SWS_FOR_F32_LINEAR(MACRO, ...) \
1145  MACRO(__VA_ARGS__, f32_linear_x_x000x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x1, 0x41040, 0xbefae) \
1146  MACRO(__VA_ARGS__, f32_linear_x_xxx00 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x1, 0x41040, 0xbefb8) \
1147  MACRO(__VA_ARGS__, f32_linear_x_xxx01 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x1, 0x41050, 0xbefa8) \
1148  MACRO(__VA_ARGS__, f32_linear_x_x0001 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x1, 0x41050, 0xbefae) \
1149  MACRO(__VA_ARGS__, f32_linear_y_0x000 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x2, 0x41001, 0xbefbe) \
1150  MACRO(__VA_ARGS__, f32_linear_xyz_xxx0x_xxx0x_xxx0x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x40000, 0xba108) \
1151  MACRO(__VA_ARGS__, f32_linear_xyz_x0x0x_xxx0x_xx00x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x40000, 0xbb10a) \
1152  MACRO(__VA_ARGS__, f32_linear_xyz_xxx00_xxx0x_xxx0x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x40000, 0xba118) \
1153  MACRO(__VA_ARGS__, f32_linear_xyz_x000x_0x00x_00x0x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x40000, 0xbadae) \
1154  MACRO(__VA_ARGS__, f32_linear_xyz_x0000_0x000_00x00 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x40000, 0xbefbe) \
1155  MACRO(__VA_ARGS__, f32_linear_xyz_x0001_0x00x_00x01 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x44010, 0xbadae) \
1156  MACRO(__VA_ARGS__, f32_linear_xyz_x0001_0x001_00x01 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x44210, 0xbadae) \
1157  MACRO(__VA_ARGS__, f32_linear_xyz_10x0x_1xx0x_1x00x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x40421, 0xbb10a) \
1158  MACRO(__VA_ARGS__, f32_linear_w_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x8, 0x01041, 0xbefbe) \
1159  MACRO(__VA_ARGS__, f32_linear_xw_x000x_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x9, 0x01040, 0xbefae) \
1160  MACRO(__VA_ARGS__, f32_linear_xw_xxx00_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x9, 0x01040, 0xbefb8) \
1161  MACRO(__VA_ARGS__, f32_linear_xyzw_xxx0x_xxx0x_xxx0x_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0xf, 0x00000, 0xba108) \
1162  MACRO(__VA_ARGS__, f32_linear_xyzw_x0x0x_xxx0x_xx00x_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0xf, 0x00000, 0xbb10a) \
1163  MACRO(__VA_ARGS__, f32_linear_xyzw_x0000_0x000_00x00_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0xf, 0x00000, 0xbefbe)
1164 #define SWS_FOR_STRUCT_F32_LINEAR(MACRO, ...) \
1165  MACRO(__VA_ARGS__, f32_linear_x_x000x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x1, .par.lin.one = 0x41040, .par.lin.zero = 0xbefae) \
1166  MACRO(__VA_ARGS__, f32_linear_x_xxx00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x1, .par.lin.one = 0x41040, .par.lin.zero = 0xbefb8) \
1167  MACRO(__VA_ARGS__, f32_linear_x_xxx01 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x1, .par.lin.one = 0x41050, .par.lin.zero = 0xbefa8) \
1168  MACRO(__VA_ARGS__, f32_linear_x_x0001 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x1, .par.lin.one = 0x41050, .par.lin.zero = 0xbefae) \
1169  MACRO(__VA_ARGS__, f32_linear_y_0x000 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x2, .par.lin.one = 0x41001, .par.lin.zero = 0xbefbe) \
1170  MACRO(__VA_ARGS__, f32_linear_xyz_xxx0x_xxx0x_xxx0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xba108) \
1171  MACRO(__VA_ARGS__, f32_linear_xyz_x0x0x_xxx0x_xx00x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xbb10a) \
1172  MACRO(__VA_ARGS__, f32_linear_xyz_xxx00_xxx0x_xxx0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xba118) \
1173  MACRO(__VA_ARGS__, f32_linear_xyz_x000x_0x00x_00x0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xbadae) \
1174  MACRO(__VA_ARGS__, f32_linear_xyz_x0000_0x000_00x00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xbefbe) \
1175  MACRO(__VA_ARGS__, f32_linear_xyz_x0001_0x00x_00x01 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x44010, .par.lin.zero = 0xbadae) \
1176  MACRO(__VA_ARGS__, f32_linear_xyz_x0001_0x001_00x01 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x44210, .par.lin.zero = 0xbadae) \
1177  MACRO(__VA_ARGS__, f32_linear_xyz_10x0x_1xx0x_1x00x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x40421, .par.lin.zero = 0xbb10a) \
1178  MACRO(__VA_ARGS__, f32_linear_w_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x8, .par.lin.one = 0x1041, .par.lin.zero = 0xbefbe) \
1179  MACRO(__VA_ARGS__, f32_linear_xw_x000x_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x9, .par.lin.one = 0x1040, .par.lin.zero = 0xbefae) \
1180  MACRO(__VA_ARGS__, f32_linear_xw_xxx00_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x9, .par.lin.one = 0x1040, .par.lin.zero = 0xbefb8) \
1181  MACRO(__VA_ARGS__, f32_linear_xyzw_xxx0x_xxx0x_xxx0x_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0xf, .par.lin.one = 0x0, .par.lin.zero = 0xba108) \
1182  MACRO(__VA_ARGS__, f32_linear_xyzw_x0x0x_xxx0x_xx00x_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0xf, .par.lin.one = 0x0, .par.lin.zero = 0xbb10a) \
1183  MACRO(__VA_ARGS__, f32_linear_xyzw_x0000_0x000_00x00_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0xf, .par.lin.one = 0x0, .par.lin.zero = 0xbefbe)
1184 #define SWS_FOR_F32_LINEAR_FMA(MACRO, ...) \
1185  MACRO(__VA_ARGS__, f32_linear_fma_x_x000x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41040, 0xbefae, 0xfffee) \
1186  MACRO(__VA_ARGS__, f32_linear_fma_x_X000x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41040, 0xbefae, 0xfffef) \
1187  MACRO(__VA_ARGS__, f32_linear_fma_x_xxx00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41040, 0xbefb8, 0xffff8) \
1188  MACRO(__VA_ARGS__, f32_linear_fma_x_XXx00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41040, 0xbefb8, 0xffffb) \
1189  MACRO(__VA_ARGS__, f32_linear_fma_x_XxX00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41040, 0xbefb8, 0xffffd) \
1190  MACRO(__VA_ARGS__, f32_linear_fma_x_xXX00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41040, 0xbefb8, 0xffffe) \
1191  MACRO(__VA_ARGS__, f32_linear_fma_x_XXX00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41040, 0xbefb8, 0xfffff) \
1192  MACRO(__VA_ARGS__, f32_linear_fma_x_xxx01 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41050, 0xbefa8, 0xffff8) \
1193  MACRO(__VA_ARGS__, f32_linear_fma_x_XXx01 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41050, 0xbefa8, 0xffffb) \
1194  MACRO(__VA_ARGS__, f32_linear_fma_x_xXX01 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41050, 0xbefa8, 0xffffe) \
1195  MACRO(__VA_ARGS__, f32_linear_fma_x_XXX01 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41050, 0xbefa8, 0xfffff) \
1196  MACRO(__VA_ARGS__, f32_linear_fma_x_x0001 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41050, 0xbefae, 0xffffe) \
1197  MACRO(__VA_ARGS__, f32_linear_fma_x_X0001 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x41050, 0xbefae, 0xfffff) \
1198  MACRO(__VA_ARGS__, f32_linear_fma_y_0x000 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x2, 0x41001, 0xbefbe, 0xfffbf) \
1199  MACRO(__VA_ARGS__, f32_linear_fma_y_0X000 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x2, 0x41001, 0xbefbe, 0xfffff) \
1200  MACRO(__VA_ARGS__, f32_linear_fma_xyz_xxx0x_xxx0x_xxx0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xba108, 0xfa108) \
1201  MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXx0x_XXx0x_XXx0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xba108, 0xfad6b) \
1202  MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXX0x_XxX0x_XXX0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xba108, 0xfbdaf) \
1203  MACRO(__VA_ARGS__, f32_linear_fma_xyz_xXX0x_xXX0x_xXX0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xba108, 0xfb9ce) \
1204  MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXX0x_XXX0x_XXX0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xba108, 0xfbdef) \
1205  MACRO(__VA_ARGS__, f32_linear_fma_xyz_x0x0x_xxx0x_xx00x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xbb10a, 0xfb10a) \
1206  MACRO(__VA_ARGS__, f32_linear_fma_xyz_X0X0x_XXX0x_XX00x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xbb10a, 0xfbdef) \
1207  MACRO(__VA_ARGS__, f32_linear_fma_xyz_xxx00_xxx0x_xxx0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xba118, 0xfa118) \
1208  MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXx00_XXx0x_XXx0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xba118, 0xfad7b) \
1209  MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXX00_XxX0x_XXX0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xba118, 0xfbdbf) \
1210  MACRO(__VA_ARGS__, f32_linear_fma_xyz_xXX00_xXX0x_xXX0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xba118, 0xfb9de) \
1211  MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXX00_XXX0x_XXX0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xba118, 0xfbdff) \
1212  MACRO(__VA_ARGS__, f32_linear_fma_xyz_x000x_0x00x_00x0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xbadae, 0xfadae) \
1213  MACRO(__VA_ARGS__, f32_linear_fma_xyz_X000x_0X00x_00X0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xbadae, 0xfbdef) \
1214  MACRO(__VA_ARGS__, f32_linear_fma_xyz_x0000_0x000_00x00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xbefbe, 0xfefbe) \
1215  MACRO(__VA_ARGS__, f32_linear_fma_xyz_x0000_0X000_00X00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xbefbe, 0xffffe) \
1216  MACRO(__VA_ARGS__, f32_linear_fma_xyz_X0000_0X000_00x00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xbefbe, 0xfefff) \
1217  MACRO(__VA_ARGS__, f32_linear_fma_xyz_X0000_0X000_00X00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40000, 0xbefbe, 0xfffff) \
1218  MACRO(__VA_ARGS__, f32_linear_fma_xyz_X0001_0X00x_00X01 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x44010, 0xbadae, 0xffdff) \
1219  MACRO(__VA_ARGS__, f32_linear_fma_xyz_X0001_0X001_00X01 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x44210, 0xbadae, 0xfffff) \
1220  MACRO(__VA_ARGS__, f32_linear_fma_xyz_10X0x_1XX0x_1X00x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x40421, 0xbb10a, 0xfbdef) \
1221  MACRO(__VA_ARGS__, f32_linear_fma_w_000X0 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x8, 0x01041, 0xbefbe, 0xfffff) \
1222  MACRO(__VA_ARGS__, f32_linear_fma_xw_x000x_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x9, 0x01040, 0xbefae, 0xbffee) \
1223  MACRO(__VA_ARGS__, f32_linear_fma_xw_X000x_000X0 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x9, 0x01040, 0xbefae, 0xfffef) \
1224  MACRO(__VA_ARGS__, f32_linear_fma_xw_xxx00_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x9, 0x01040, 0xbefb8, 0xbfff8) \
1225  MACRO(__VA_ARGS__, f32_linear_fma_xw_XXX00_000X0 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x9, 0x01040, 0xbefb8, 0xfffff) \
1226  MACRO(__VA_ARGS__, f32_linear_fma_xyzw_xxx0x_xxx0x_xxx0x_000x0, SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0xf, 0x00000, 0xba108, 0xba108) \
1227  MACRO(__VA_ARGS__, f32_linear_fma_xyzw_XXX0x_XXX0x_XXX0x_000X0, SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0xf, 0x00000, 0xba108, 0xfbdef) \
1228  MACRO(__VA_ARGS__, f32_linear_fma_xyzw_X0X0x_XXX0x_XX00x_000X0, SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0xf, 0x00000, 0xbb10a, 0xfbdef) \
1229  MACRO(__VA_ARGS__, f32_linear_fma_xyzw_X0000_0X000_00X00_000X0, SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0xf, 0x00000, 0xbefbe, 0xfffff)
1230 #define SWS_FOR_STRUCT_F32_LINEAR_FMA(MACRO, ...) \
1231  MACRO(__VA_ARGS__, f32_linear_fma_x_x000x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41040, .par.lin.zero = 0xbefae, .par.lin.exact = 0xfffee) \
1232  MACRO(__VA_ARGS__, f32_linear_fma_x_X000x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41040, .par.lin.zero = 0xbefae, .par.lin.exact = 0xfffef) \
1233  MACRO(__VA_ARGS__, f32_linear_fma_x_xxx00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41040, .par.lin.zero = 0xbefb8, .par.lin.exact = 0xffff8) \
1234  MACRO(__VA_ARGS__, f32_linear_fma_x_XXx00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41040, .par.lin.zero = 0xbefb8, .par.lin.exact = 0xffffb) \
1235  MACRO(__VA_ARGS__, f32_linear_fma_x_XxX00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41040, .par.lin.zero = 0xbefb8, .par.lin.exact = 0xffffd) \
1236  MACRO(__VA_ARGS__, f32_linear_fma_x_xXX00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41040, .par.lin.zero = 0xbefb8, .par.lin.exact = 0xffffe) \
1237  MACRO(__VA_ARGS__, f32_linear_fma_x_XXX00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41040, .par.lin.zero = 0xbefb8, .par.lin.exact = 0xfffff) \
1238  MACRO(__VA_ARGS__, f32_linear_fma_x_xxx01 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41050, .par.lin.zero = 0xbefa8, .par.lin.exact = 0xffff8) \
1239  MACRO(__VA_ARGS__, f32_linear_fma_x_XXx01 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41050, .par.lin.zero = 0xbefa8, .par.lin.exact = 0xffffb) \
1240  MACRO(__VA_ARGS__, f32_linear_fma_x_xXX01 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41050, .par.lin.zero = 0xbefa8, .par.lin.exact = 0xffffe) \
1241  MACRO(__VA_ARGS__, f32_linear_fma_x_XXX01 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41050, .par.lin.zero = 0xbefa8, .par.lin.exact = 0xfffff) \
1242  MACRO(__VA_ARGS__, f32_linear_fma_x_x0001 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41050, .par.lin.zero = 0xbefae, .par.lin.exact = 0xffffe) \
1243  MACRO(__VA_ARGS__, f32_linear_fma_x_X0001 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x41050, .par.lin.zero = 0xbefae, .par.lin.exact = 0xfffff) \
1244  MACRO(__VA_ARGS__, f32_linear_fma_y_0x000 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x2, .par.lin.one = 0x41001, .par.lin.zero = 0xbefbe, .par.lin.exact = 0xfffbf) \
1245  MACRO(__VA_ARGS__, f32_linear_fma_y_0X000 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x2, .par.lin.one = 0x41001, .par.lin.zero = 0xbefbe, .par.lin.exact = 0xfffff) \
1246  MACRO(__VA_ARGS__, f32_linear_fma_xyz_xxx0x_xxx0x_xxx0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xba108, .par.lin.exact = 0xfa108) \
1247  MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXx0x_XXx0x_XXx0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xba108, .par.lin.exact = 0xfad6b) \
1248  MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXX0x_XxX0x_XXX0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xba108, .par.lin.exact = 0xfbdaf) \
1249  MACRO(__VA_ARGS__, f32_linear_fma_xyz_xXX0x_xXX0x_xXX0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xba108, .par.lin.exact = 0xfb9ce) \
1250  MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXX0x_XXX0x_XXX0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xba108, .par.lin.exact = 0xfbdef) \
1251  MACRO(__VA_ARGS__, f32_linear_fma_xyz_x0x0x_xxx0x_xx00x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xbb10a, .par.lin.exact = 0xfb10a) \
1252  MACRO(__VA_ARGS__, f32_linear_fma_xyz_X0X0x_XXX0x_XX00x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xbb10a, .par.lin.exact = 0xfbdef) \
1253  MACRO(__VA_ARGS__, f32_linear_fma_xyz_xxx00_xxx0x_xxx0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xba118, .par.lin.exact = 0xfa118) \
1254  MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXx00_XXx0x_XXx0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xba118, .par.lin.exact = 0xfad7b) \
1255  MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXX00_XxX0x_XXX0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xba118, .par.lin.exact = 0xfbdbf) \
1256  MACRO(__VA_ARGS__, f32_linear_fma_xyz_xXX00_xXX0x_xXX0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xba118, .par.lin.exact = 0xfb9de) \
1257  MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXX00_XXX0x_XXX0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xba118, .par.lin.exact = 0xfbdff) \
1258  MACRO(__VA_ARGS__, f32_linear_fma_xyz_x000x_0x00x_00x0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xbadae, .par.lin.exact = 0xfadae) \
1259  MACRO(__VA_ARGS__, f32_linear_fma_xyz_X000x_0X00x_00X0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xbadae, .par.lin.exact = 0xfbdef) \
1260  MACRO(__VA_ARGS__, f32_linear_fma_xyz_x0000_0x000_00x00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xbefbe, .par.lin.exact = 0xfefbe) \
1261  MACRO(__VA_ARGS__, f32_linear_fma_xyz_x0000_0X000_00X00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xbefbe, .par.lin.exact = 0xffffe) \
1262  MACRO(__VA_ARGS__, f32_linear_fma_xyz_X0000_0X000_00x00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xbefbe, .par.lin.exact = 0xfefff) \
1263  MACRO(__VA_ARGS__, f32_linear_fma_xyz_X0000_0X000_00X00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40000, .par.lin.zero = 0xbefbe, .par.lin.exact = 0xfffff) \
1264  MACRO(__VA_ARGS__, f32_linear_fma_xyz_X0001_0X00x_00X01 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x44010, .par.lin.zero = 0xbadae, .par.lin.exact = 0xffdff) \
1265  MACRO(__VA_ARGS__, f32_linear_fma_xyz_X0001_0X001_00X01 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x44210, .par.lin.zero = 0xbadae, .par.lin.exact = 0xfffff) \
1266  MACRO(__VA_ARGS__, f32_linear_fma_xyz_10X0x_1XX0x_1X00x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x40421, .par.lin.zero = 0xbb10a, .par.lin.exact = 0xfbdef) \
1267  MACRO(__VA_ARGS__, f32_linear_fma_w_000X0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x8, .par.lin.one = 0x1041, .par.lin.zero = 0xbefbe, .par.lin.exact = 0xfffff) \
1268  MACRO(__VA_ARGS__, f32_linear_fma_xw_x000x_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x9, .par.lin.one = 0x1040, .par.lin.zero = 0xbefae, .par.lin.exact = 0xbffee) \
1269  MACRO(__VA_ARGS__, f32_linear_fma_xw_X000x_000X0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x9, .par.lin.one = 0x1040, .par.lin.zero = 0xbefae, .par.lin.exact = 0xfffef) \
1270  MACRO(__VA_ARGS__, f32_linear_fma_xw_xxx00_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x9, .par.lin.one = 0x1040, .par.lin.zero = 0xbefb8, .par.lin.exact = 0xbfff8) \
1271  MACRO(__VA_ARGS__, f32_linear_fma_xw_XXX00_000X0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x9, .par.lin.one = 0x1040, .par.lin.zero = 0xbefb8, .par.lin.exact = 0xfffff) \
1272  MACRO(__VA_ARGS__, f32_linear_fma_xyzw_xxx0x_xxx0x_xxx0x_000x0, .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0xf, .par.lin.one = 0x0, .par.lin.zero = 0xba108, .par.lin.exact = 0xba108) \
1273  MACRO(__VA_ARGS__, f32_linear_fma_xyzw_XXX0x_XXX0x_XXX0x_000X0, .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0xf, .par.lin.one = 0x0, .par.lin.zero = 0xba108, .par.lin.exact = 0xfbdef) \
1274  MACRO(__VA_ARGS__, f32_linear_fma_xyzw_X0X0x_XXX0x_XX00x_000X0, .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0xf, .par.lin.one = 0x0, .par.lin.zero = 0xbb10a, .par.lin.exact = 0xfbdef) \
1275  MACRO(__VA_ARGS__, f32_linear_fma_xyzw_X0000_0X000_00X00_000X0, .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0xf, .par.lin.one = 0x0, .par.lin.zero = 0xbefbe, .par.lin.exact = 0xfffff)
1276 #define SWS_FOR_F32_DITHER(MACRO, ...) \
1277  MACRO(__VA_ARGS__, f32_dither_x_0_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x1, 0, 0, 0, 0, 4) \
1278  MACRO(__VA_ARGS__, f32_dither_y_3_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x2, 0, 3, 0, 0, 4) \
1279  MACRO(__VA_ARGS__, f32_dither_xy_0_3_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x3, 0, 3, 0, 0, 4) \
1280  MACRO(__VA_ARGS__, f32_dither_z_2_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x4, 0, 0, 2, 0, 4) \
1281  MACRO(__VA_ARGS__, f32_dither_xz_0_2_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x5, 0, 0, 2, 0, 4) \
1282  MACRO(__VA_ARGS__, f32_dither_xyz_0_0_0_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x7, 0, 0, 0, 0, 4) \
1283  MACRO(__VA_ARGS__, f32_dither_xyz_0_3_2_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x7, 0, 3, 2, 0, 4) \
1284  MACRO(__VA_ARGS__, f32_dither_xyz_2_0_3_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x7, 2, 0, 3, 0, 4) \
1285  MACRO(__VA_ARGS__, f32_dither_xyz_2_3_0_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x7, 2, 3, 0, 0, 4) \
1286  MACRO(__VA_ARGS__, f32_dither_xyz_3_0_2_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x7, 3, 0, 2, 0, 4) \
1287  MACRO(__VA_ARGS__, f32_dither_xyz_3_2_0_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x7, 3, 2, 0, 0, 4) \
1288  MACRO(__VA_ARGS__, f32_dither_w_5_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x8, 0, 0, 0, 5, 4) \
1289  MACRO(__VA_ARGS__, f32_dither_xw_0_3_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x9, 0, 0, 0, 3, 4) \
1290  MACRO(__VA_ARGS__, f32_dither_xw_0_5_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x9, 0, 0, 0, 5, 4) \
1291  MACRO(__VA_ARGS__, f32_dither_yzw_0_3_2_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xe, 0, 0, 3, 2, 4) \
1292  MACRO(__VA_ARGS__, f32_dither_yzw_2_0_3_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xe, 0, 2, 0, 3, 4) \
1293  MACRO(__VA_ARGS__, f32_dither_yzw_2_3_0_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xe, 0, 2, 3, 0, 4) \
1294  MACRO(__VA_ARGS__, f32_dither_xyzw_0_0_0_3_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 0, 0, 0, 3, 4) \
1295  MACRO(__VA_ARGS__, f32_dither_xyzw_0_3_2_5_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 0, 3, 2, 5, 4) \
1296  MACRO(__VA_ARGS__, f32_dither_xyzw_2_3_0_5_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 2, 3, 0, 5, 4) \
1297  MACRO(__VA_ARGS__, f32_dither_xyzw_3_0_2_5_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 3, 0, 2, 5, 4) \
1298  MACRO(__VA_ARGS__, f32_dither_xyzw_3_2_0_5_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 3, 2, 0, 5, 4) \
1299  MACRO(__VA_ARGS__, f32_dither_xyzw_5_0_3_2_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 5, 0, 3, 2, 4) \
1300  MACRO(__VA_ARGS__, f32_dither_xyzw_5_2_3_0_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 5, 2, 3, 0, 4)
1301 #define SWS_FOR_STRUCT_F32_DITHER(MACRO, ...) \
1302  MACRO(__VA_ARGS__, f32_dither_x_0_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x1, .par.dither = { .y_offset = {0, 0, 0, 0}, .size_log2 = 4 }) \
1303  MACRO(__VA_ARGS__, f32_dither_y_3_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x2, .par.dither = { .y_offset = {0, 3, 0, 0}, .size_log2 = 4 }) \
1304  MACRO(__VA_ARGS__, f32_dither_xy_0_3_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x3, .par.dither = { .y_offset = {0, 3, 0, 0}, .size_log2 = 4 }) \
1305  MACRO(__VA_ARGS__, f32_dither_z_2_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x4, .par.dither = { .y_offset = {0, 0, 2, 0}, .size_log2 = 4 }) \
1306  MACRO(__VA_ARGS__, f32_dither_xz_0_2_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x5, .par.dither = { .y_offset = {0, 0, 2, 0}, .size_log2 = 4 }) \
1307  MACRO(__VA_ARGS__, f32_dither_xyz_0_0_0_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x7, .par.dither = { .y_offset = {0, 0, 0, 0}, .size_log2 = 4 }) \
1308  MACRO(__VA_ARGS__, f32_dither_xyz_0_3_2_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x7, .par.dither = { .y_offset = {0, 3, 2, 0}, .size_log2 = 4 }) \
1309  MACRO(__VA_ARGS__, f32_dither_xyz_2_0_3_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x7, .par.dither = { .y_offset = {2, 0, 3, 0}, .size_log2 = 4 }) \
1310  MACRO(__VA_ARGS__, f32_dither_xyz_2_3_0_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x7, .par.dither = { .y_offset = {2, 3, 0, 0}, .size_log2 = 4 }) \
1311  MACRO(__VA_ARGS__, f32_dither_xyz_3_0_2_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x7, .par.dither = { .y_offset = {3, 0, 2, 0}, .size_log2 = 4 }) \
1312  MACRO(__VA_ARGS__, f32_dither_xyz_3_2_0_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x7, .par.dither = { .y_offset = {3, 2, 0, 0}, .size_log2 = 4 }) \
1313  MACRO(__VA_ARGS__, f32_dither_w_5_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x8, .par.dither = { .y_offset = {0, 0, 0, 5}, .size_log2 = 4 }) \
1314  MACRO(__VA_ARGS__, f32_dither_xw_0_3_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x9, .par.dither = { .y_offset = {0, 0, 0, 3}, .size_log2 = 4 }) \
1315  MACRO(__VA_ARGS__, f32_dither_xw_0_5_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0x9, .par.dither = { .y_offset = {0, 0, 0, 5}, .size_log2 = 4 }) \
1316  MACRO(__VA_ARGS__, f32_dither_yzw_0_3_2_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0xe, .par.dither = { .y_offset = {0, 0, 3, 2}, .size_log2 = 4 }) \
1317  MACRO(__VA_ARGS__, f32_dither_yzw_2_0_3_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0xe, .par.dither = { .y_offset = {0, 2, 0, 3}, .size_log2 = 4 }) \
1318  MACRO(__VA_ARGS__, f32_dither_yzw_2_3_0_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0xe, .par.dither = { .y_offset = {0, 2, 3, 0}, .size_log2 = 4 }) \
1319  MACRO(__VA_ARGS__, f32_dither_xyzw_0_0_0_3_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0xf, .par.dither = { .y_offset = {0, 0, 0, 3}, .size_log2 = 4 }) \
1320  MACRO(__VA_ARGS__, f32_dither_xyzw_0_3_2_5_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0xf, .par.dither = { .y_offset = {0, 3, 2, 5}, .size_log2 = 4 }) \
1321  MACRO(__VA_ARGS__, f32_dither_xyzw_2_3_0_5_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0xf, .par.dither = { .y_offset = {2, 3, 0, 5}, .size_log2 = 4 }) \
1322  MACRO(__VA_ARGS__, f32_dither_xyzw_3_0_2_5_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0xf, .par.dither = { .y_offset = {3, 0, 2, 5}, .size_log2 = 4 }) \
1323  MACRO(__VA_ARGS__, f32_dither_xyzw_3_2_0_5_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0xf, .par.dither = { .y_offset = {3, 2, 0, 5}, .size_log2 = 4 }) \
1324  MACRO(__VA_ARGS__, f32_dither_xyzw_5_0_3_2_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0xf, .par.dither = { .y_offset = {5, 0, 3, 2}, .size_log2 = 4 }) \
1325  MACRO(__VA_ARGS__, f32_dither_xyzw_5_2_3_0_16x16 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_DITHER , .mask = 0xf, .par.dither = { .y_offset = {5, 2, 3, 0}, .size_log2 = 4 })
1326 
1327 #endif /* SWSCALE_UOPS_MACROS_H */