FFmpeg
Loading...
Searching...
No Matches
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_READ_PALETTE(MACRO, ...) \
79 MACRO(__VA_ARGS__, u8_read_palette_xyzw , SWS_PIXEL_U8 , SWS_UOP_READ_PALETTE , 0xf)
80#define SWS_FOR_STRUCT_U8_READ_PALETTE(MACRO, ...) \
81 MACRO(__VA_ARGS__, u8_read_palette_xyzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_PALETTE , .mask = 0xf)
82#define SWS_FOR_U8_WRITE_PLANAR(MACRO, ...) \
83 MACRO(__VA_ARGS__, u8_write_planar_x , SWS_PIXEL_U8 , SWS_UOP_WRITE_PLANAR , 0x1) \
84 MACRO(__VA_ARGS__, u8_write_planar_xy , SWS_PIXEL_U8 , SWS_UOP_WRITE_PLANAR , 0x3) \
85 MACRO(__VA_ARGS__, u8_write_planar_xyz , SWS_PIXEL_U8 , SWS_UOP_WRITE_PLANAR , 0x7) \
86 MACRO(__VA_ARGS__, u8_write_planar_xyzw , SWS_PIXEL_U8 , SWS_UOP_WRITE_PLANAR , 0xf)
87#define SWS_FOR_STRUCT_U8_WRITE_PLANAR(MACRO, ...) \
88 MACRO(__VA_ARGS__, u8_write_planar_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x1) \
89 MACRO(__VA_ARGS__, u8_write_planar_xy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x3) \
90 MACRO(__VA_ARGS__, u8_write_planar_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x7) \
91 MACRO(__VA_ARGS__, u8_write_planar_xyzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PLANAR , .mask = 0xf)
92#define SWS_FOR_U8_WRITE_PACKED(MACRO, ...) \
93 MACRO(__VA_ARGS__, u8_write_packed_xy , SWS_PIXEL_U8 , SWS_UOP_WRITE_PACKED , 0x3) \
94 MACRO(__VA_ARGS__, u8_write_packed_xyz , SWS_PIXEL_U8 , SWS_UOP_WRITE_PACKED , 0x7) \
95 MACRO(__VA_ARGS__, u8_write_packed_xyzw , SWS_PIXEL_U8 , SWS_UOP_WRITE_PACKED , 0xf)
96#define SWS_FOR_STRUCT_U8_WRITE_PACKED(MACRO, ...) \
97 MACRO(__VA_ARGS__, u8_write_packed_xy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PACKED , .mask = 0x3) \
98 MACRO(__VA_ARGS__, u8_write_packed_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PACKED , .mask = 0x7) \
99 MACRO(__VA_ARGS__, u8_write_packed_xyzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_PACKED , .mask = 0xf)
100#define SWS_FOR_U8_WRITE_NIBBLE(MACRO, ...) \
101 MACRO(__VA_ARGS__, u8_write_nibble_x , SWS_PIXEL_U8 , SWS_UOP_WRITE_NIBBLE , 0x1)
102#define SWS_FOR_STRUCT_U8_WRITE_NIBBLE(MACRO, ...) \
103 MACRO(__VA_ARGS__, u8_write_nibble_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_NIBBLE , .mask = 0x1)
104#define SWS_FOR_U8_WRITE_BIT(MACRO, ...) \
105 MACRO(__VA_ARGS__, u8_write_bit_x , SWS_PIXEL_U8 , SWS_UOP_WRITE_BIT , 0x1)
106#define SWS_FOR_STRUCT_U8_WRITE_BIT(MACRO, ...) \
107 MACRO(__VA_ARGS__, u8_write_bit_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_WRITE_BIT , .mask = 0x1)
108#define SWS_FOR_U8_RW_SHUFFLE(MACRO, ...) \
109 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_2_12 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 2, 12) \
110 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_4_12 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 4, 12) \
111 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_4_16 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 4, 16) \
112 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_5_15 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 5, 15) \
113 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_6_12 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 6, 12) \
114 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_8_12 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 8, 12) \
115 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_8_16 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 8, 16) \
116 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_10_15 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 10, 15) \
117 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_12_12 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 12, 12) \
118 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_12_16 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 12, 16) \
119 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_15_5 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 15, 5) \
120 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_15_15 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 15, 15) \
121 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_16_4 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 16, 4) \
122 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_16_8 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 16, 8) \
123 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_16_12 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 16, 12) \
124 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_16_16 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0x0, 16, 16) \
125 MACRO(__VA_ARGS__, u8_rw_shuffle_x_ff_2_16 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0xff, 2, 16) \
126 MACRO(__VA_ARGS__, u8_rw_shuffle_x_ff_4_16 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0xff, 4, 16) \
127 MACRO(__VA_ARGS__, u8_rw_shuffle_x_ff_6_16 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0xff, 6, 16) \
128 MACRO(__VA_ARGS__, u8_rw_shuffle_x_ff_8_16 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0xff, 8, 16) \
129 MACRO(__VA_ARGS__, u8_rw_shuffle_x_ff_12_16 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0xff, 12, 16) \
130 MACRO(__VA_ARGS__, u8_rw_shuffle_x_ff_16_16 , SWS_PIXEL_U8 , SWS_UOP_RW_SHUFFLE , 0x1, 0xff, 16, 16)
131#define SWS_FOR_STRUCT_U8_RW_SHUFFLE(MACRO, ...) \
132 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_2_12 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 2, .par.shuffle.write_size = 12) \
133 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_4_12 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 4, .par.shuffle.write_size = 12) \
134 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_4_16 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 4, .par.shuffle.write_size = 16) \
135 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_5_15 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 5, .par.shuffle.write_size = 15) \
136 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_6_12 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 6, .par.shuffle.write_size = 12) \
137 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_8_12 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 8, .par.shuffle.write_size = 12) \
138 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_8_16 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 8, .par.shuffle.write_size = 16) \
139 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_10_15 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 10, .par.shuffle.write_size = 15) \
140 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_12_12 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 12, .par.shuffle.write_size = 12) \
141 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_12_16 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 12, .par.shuffle.write_size = 16) \
142 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_15_5 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 15, .par.shuffle.write_size = 5) \
143 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_15_15 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 15, .par.shuffle.write_size = 15) \
144 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_16_4 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 16, .par.shuffle.write_size = 4) \
145 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_16_8 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 16, .par.shuffle.write_size = 8) \
146 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_16_12 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 16, .par.shuffle.write_size = 12) \
147 MACRO(__VA_ARGS__, u8_rw_shuffle_x_0_16_16 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0x0, .par.shuffle.read_size = 16, .par.shuffle.write_size = 16) \
148 MACRO(__VA_ARGS__, u8_rw_shuffle_x_ff_2_16 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0xff, .par.shuffle.read_size = 2, .par.shuffle.write_size = 16) \
149 MACRO(__VA_ARGS__, u8_rw_shuffle_x_ff_4_16 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0xff, .par.shuffle.read_size = 4, .par.shuffle.write_size = 16) \
150 MACRO(__VA_ARGS__, u8_rw_shuffle_x_ff_6_16 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0xff, .par.shuffle.read_size = 6, .par.shuffle.write_size = 16) \
151 MACRO(__VA_ARGS__, u8_rw_shuffle_x_ff_8_16 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0xff, .par.shuffle.read_size = 8, .par.shuffle.write_size = 16) \
152 MACRO(__VA_ARGS__, u8_rw_shuffle_x_ff_12_16 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0xff, .par.shuffle.read_size = 12, .par.shuffle.write_size = 16) \
153 MACRO(__VA_ARGS__, u8_rw_shuffle_x_ff_16_16 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_RW_SHUFFLE , .mask = 0x1, .par.shuffle.clear_value = 0xff, .par.shuffle.read_size = 16, .par.shuffle.write_size = 16)
154#define SWS_FOR_U8_PERMUTE(MACRO, ...) \
155 MACRO(__VA_ARGS__, u8_permute_xy_xy_zw , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x3, 2, 0, 1, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0) \
156 MACRO(__VA_ARGS__, u8_permute_xyz_x_w , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x7, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0) \
157 MACRO(__VA_ARGS__, u8_permute_xyz_y_w , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x7, 1, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0) \
158 MACRO(__VA_ARGS__, u8_permute_xyz_xy_yw , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x7, 2, 0, 1, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0) \
159 MACRO(__VA_ARGS__, u8_permute_xyz_yx_xw , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x7, 2, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0) \
160 MACRO(__VA_ARGS__, u8_permute_xyz_xyz_yzw , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x7, 3, 0, 1, 2, 0, 0, 0, 1, 2, 3, 0, 0, 0) \
161 MACRO(__VA_ARGS__, u8_permute_xyz_xtyz_wyzt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0x7, 4, 0, -1, 1, 2, 0, 0, 3, 1, 2, -1, 0, 0) \
162 MACRO(__VA_ARGS__, u8_permute_xyw_x_z , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xb, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
163 MACRO(__VA_ARGS__, u8_permute_xzw_x_y , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xd, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0) \
164 MACRO(__VA_ARGS__, u8_permute_yzw_y_x , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xe, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
165 MACRO(__VA_ARGS__, u8_permute_yzw_z_x , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xe, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
166 MACRO(__VA_ARGS__, u8_permute_yzw_w_x , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xe, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
167 MACRO(__VA_ARGS__, u8_permute_yzw_wz_zx , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xe, 2, 3, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
168 MACRO(__VA_ARGS__, u8_permute_yzw_wyz_yzx , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xe, 3, 3, 1, 2, 0, 0, 0, 1, 2, 0, 0, 0, 0) \
169 MACRO(__VA_ARGS__, u8_permute_yzw_wzy_zyx , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xe, 3, 3, 2, 1, 0, 0, 0, 2, 1, 0, 0, 0, 0) \
170 MACRO(__VA_ARGS__, u8_permute_yzw_wtyz_xyzt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xe, 4, 3, -1, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0) \
171 MACRO(__VA_ARGS__, u8_permute_xyzw_txy_xyt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 3, -1, 0, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0) \
172 MACRO(__VA_ARGS__, u8_permute_xyzw_txz_xzt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 3, -1, 0, 2, 0, 0, 0, 0, 2, -1, 0, 0, 0) \
173 MACRO(__VA_ARGS__, u8_permute_xyzw_tyz_yzt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 3, -1, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0, 0) \
174 MACRO(__VA_ARGS__, u8_permute_xyzw_tyw_ywt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 3, -1, 1, 3, 0, 0, 0, 1, 3, -1, 0, 0, 0) \
175 MACRO(__VA_ARGS__, u8_permute_xyzw_txyz_xyzt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 4, -1, 0, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0) \
176 MACRO(__VA_ARGS__, u8_permute_xyzw_txzy_xzyt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 4, -1, 0, 2, 1, 0, 0, 0, 2, 1, -1, 0, 0) \
177 MACRO(__VA_ARGS__, u8_permute_xyzw_txzw_xzwt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 4, -1, 0, 2, 3, 0, 0, 0, 2, 3, -1, 0, 0) \
178 MACRO(__VA_ARGS__, u8_permute_xyzw_txwz_xwzt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 4, -1, 0, 3, 2, 0, 0, 0, 3, 2, -1, 0, 0) \
179 MACRO(__VA_ARGS__, u8_permute_xyzw_tyzw_yzwt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 4, -1, 1, 2, 3, 0, 0, 1, 2, 3, -1, 0, 0) \
180 MACRO(__VA_ARGS__, u8_permute_xyzw_txyzw_xyzwt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 5, -1, 0, 1, 2, 3, 0, 0, 1, 2, 3, -1, 0) \
181 MACRO(__VA_ARGS__, u8_permute_xyzw_txwyz_xwyzt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 5, -1, 0, 3, 1, 2, 0, 0, 3, 1, 2, -1, 0) \
182 MACRO(__VA_ARGS__, u8_permute_xyzw_txwzy_xwzyt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 5, -1, 0, 3, 2, 1, 0, 0, 3, 2, 1, -1, 0) \
183 MACRO(__VA_ARGS__, u8_permute_xyzw_txwtyz_xwtyzt , SWS_PIXEL_U8 , SWS_UOP_PERMUTE , 0xf, 6, -1, 0, 3, -1, 1, 2, 0, 3, -1, 1, 2, -1)
184#define SWS_FOR_STRUCT_U8_PERMUTE(MACRO, ...) \
185 MACRO(__VA_ARGS__, u8_permute_xy_xy_zw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x3, .par.move.num_moves = 2, .par.move.dst = {0, 1, 0, 0, 0, 0}, .par.move.src = {2, 3, 0, 0, 0, 0}) \
186 MACRO(__VA_ARGS__, u8_permute_xyz_x_w , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {3, 0, 0, 0, 0, 0}) \
187 MACRO(__VA_ARGS__, u8_permute_xyz_y_w , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 1, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {3, 0, 0, 0, 0, 0}) \
188 MACRO(__VA_ARGS__, u8_permute_xyz_xy_yw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 2, .par.move.dst = {0, 1, 0, 0, 0, 0}, .par.move.src = {1, 3, 0, 0, 0, 0}) \
189 MACRO(__VA_ARGS__, u8_permute_xyz_yx_xw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 2, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {0, 3, 0, 0, 0, 0}) \
190 MACRO(__VA_ARGS__, u8_permute_xyz_xyz_yzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 3, .par.move.dst = {0, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, 3, 0, 0, 0}) \
191 MACRO(__VA_ARGS__, u8_permute_xyz_xtyz_wyzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 4, .par.move.dst = {0, -1, 1, 2, 0, 0}, .par.move.src = {3, 1, 2, -1, 0, 0}) \
192 MACRO(__VA_ARGS__, u8_permute_xyw_x_z , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xb, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {2, 0, 0, 0, 0, 0}) \
193 MACRO(__VA_ARGS__, u8_permute_xzw_x_y , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xd, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {1, 0, 0, 0, 0, 0}) \
194 MACRO(__VA_ARGS__, u8_permute_yzw_y_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 1, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
195 MACRO(__VA_ARGS__, u8_permute_yzw_z_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 1, .par.move.dst = {2, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
196 MACRO(__VA_ARGS__, u8_permute_yzw_w_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 1, .par.move.dst = {3, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
197 MACRO(__VA_ARGS__, u8_permute_yzw_wz_zx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 2, .par.move.dst = {3, 2, 0, 0, 0, 0}, .par.move.src = {2, 0, 0, 0, 0, 0}) \
198 MACRO(__VA_ARGS__, u8_permute_yzw_wyz_yzx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 3, .par.move.dst = {3, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, 0, 0, 0, 0}) \
199 MACRO(__VA_ARGS__, u8_permute_yzw_wzy_zyx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 3, .par.move.dst = {3, 2, 1, 0, 0, 0}, .par.move.src = {2, 1, 0, 0, 0, 0}) \
200 MACRO(__VA_ARGS__, u8_permute_yzw_wtyz_xyzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 4, .par.move.dst = {3, -1, 1, 2, 0, 0}, .par.move.src = {0, 1, 2, -1, 0, 0}) \
201 MACRO(__VA_ARGS__, u8_permute_xyzw_txy_xyt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {-1, 0, 1, 0, 0, 0}, .par.move.src = {0, 1, -1, 0, 0, 0}) \
202 MACRO(__VA_ARGS__, u8_permute_xyzw_txz_xzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {-1, 0, 2, 0, 0, 0}, .par.move.src = {0, 2, -1, 0, 0, 0}) \
203 MACRO(__VA_ARGS__, u8_permute_xyzw_tyz_yzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {-1, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, -1, 0, 0, 0}) \
204 MACRO(__VA_ARGS__, u8_permute_xyzw_tyw_ywt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {-1, 1, 3, 0, 0, 0}, .par.move.src = {1, 3, -1, 0, 0, 0}) \
205 MACRO(__VA_ARGS__, u8_permute_xyzw_txyz_xyzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 1, 2, 0, 0}, .par.move.src = {0, 1, 2, -1, 0, 0}) \
206 MACRO(__VA_ARGS__, u8_permute_xyzw_txzy_xzyt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 2, 1, 0, 0}, .par.move.src = {0, 2, 1, -1, 0, 0}) \
207 MACRO(__VA_ARGS__, u8_permute_xyzw_txzw_xzwt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 2, 3, 0, 0}, .par.move.src = {0, 2, 3, -1, 0, 0}) \
208 MACRO(__VA_ARGS__, u8_permute_xyzw_txwz_xwzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 3, 2, 0, 0}, .par.move.src = {0, 3, 2, -1, 0, 0}) \
209 MACRO(__VA_ARGS__, u8_permute_xyzw_tyzw_yzwt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 4, .par.move.dst = {-1, 1, 2, 3, 0, 0}, .par.move.src = {1, 2, 3, -1, 0, 0}) \
210 MACRO(__VA_ARGS__, u8_permute_xyzw_txyzw_xyzwt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 1, 2, 3, 0}, .par.move.src = {0, 1, 2, 3, -1, 0}) \
211 MACRO(__VA_ARGS__, u8_permute_xyzw_txwyz_xwyzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 3, 1, 2, 0}, .par.move.src = {0, 3, 1, 2, -1, 0}) \
212 MACRO(__VA_ARGS__, u8_permute_xyzw_txwzy_xwzyt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 3, 2, 1, 0}, .par.move.src = {0, 3, 2, 1, -1, 0}) \
213 MACRO(__VA_ARGS__, u8_permute_xyzw_txwtyz_xwtyzt , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 6, .par.move.dst = {-1, 0, 3, -1, 1, 2}, .par.move.src = {0, 3, -1, 1, 2, -1})
214#define SWS_FOR_U8_COPY(MACRO, ...) \
215 MACRO(__VA_ARGS__, u8_copy_yzw_yzw_xxx , SWS_PIXEL_U8 , SWS_UOP_COPY , 0xe, 3, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
216 MACRO(__VA_ARGS__, u8_copy_xyzw_yz_xx , SWS_PIXEL_U8 , SWS_UOP_COPY , 0xf, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
217 MACRO(__VA_ARGS__, u8_copy_xyzw_zwy_xyx , SWS_PIXEL_U8 , SWS_UOP_COPY , 0xf, 3, 2, 3, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0) \
218 MACRO(__VA_ARGS__, u8_copy_xyzw_zxyw_xyzz , SWS_PIXEL_U8 , SWS_UOP_COPY , 0xf, 4, 2, 0, 1, 3, 0, 0, 0, 1, 2, 2, 0, 0)
219#define SWS_FOR_STRUCT_U8_COPY(MACRO, ...) \
220 MACRO(__VA_ARGS__, u8_copy_yzw_yzw_xxx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_COPY , .mask = 0xe, .par.move.num_moves = 3, .par.move.dst = {1, 2, 3, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
221 MACRO(__VA_ARGS__, u8_copy_xyzw_yz_xx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_COPY , .mask = 0xf, .par.move.num_moves = 2, .par.move.dst = {1, 2, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
222 MACRO(__VA_ARGS__, u8_copy_xyzw_zwy_xyx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_COPY , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {2, 3, 1, 0, 0, 0}, .par.move.src = {0, 1, 0, 0, 0, 0}) \
223 MACRO(__VA_ARGS__, u8_copy_xyzw_zxyw_xyzz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_COPY , .mask = 0xf, .par.move.num_moves = 4, .par.move.dst = {2, 0, 1, 3, 0, 0}, .par.move.src = {0, 1, 2, 2, 0, 0})
224#define SWS_FOR_U8_SWAP_BYTES(MACRO, ...)
225#define SWS_FOR_STRUCT_U8_SWAP_BYTES(MACRO, ...)
226#define SWS_FOR_U8_EXPAND_BIT(MACRO, ...) \
227 MACRO(__VA_ARGS__, u8_expand_bit_x , SWS_PIXEL_U8 , SWS_UOP_EXPAND_BIT , 0x1)
228#define SWS_FOR_STRUCT_U8_EXPAND_BIT(MACRO, ...) \
229 MACRO(__VA_ARGS__, u8_expand_bit_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_EXPAND_BIT , .mask = 0x1)
230#define SWS_FOR_U8_EXPAND_PAIR(MACRO, ...) \
231 MACRO(__VA_ARGS__, u8_expand_pair_x , SWS_PIXEL_U8 , SWS_UOP_EXPAND_PAIR , 0x1) \
232 MACRO(__VA_ARGS__, u8_expand_pair_xy , SWS_PIXEL_U8 , SWS_UOP_EXPAND_PAIR , 0x3) \
233 MACRO(__VA_ARGS__, u8_expand_pair_xyz , SWS_PIXEL_U8 , SWS_UOP_EXPAND_PAIR , 0x7) \
234 MACRO(__VA_ARGS__, u8_expand_pair_yzw , SWS_PIXEL_U8 , SWS_UOP_EXPAND_PAIR , 0xe) \
235 MACRO(__VA_ARGS__, u8_expand_pair_xyzw , SWS_PIXEL_U8 , SWS_UOP_EXPAND_PAIR , 0xf)
236#define SWS_FOR_STRUCT_U8_EXPAND_PAIR(MACRO, ...) \
237 MACRO(__VA_ARGS__, u8_expand_pair_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_EXPAND_PAIR , .mask = 0x1) \
238 MACRO(__VA_ARGS__, u8_expand_pair_xy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_EXPAND_PAIR , .mask = 0x3) \
239 MACRO(__VA_ARGS__, u8_expand_pair_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_EXPAND_PAIR , .mask = 0x7) \
240 MACRO(__VA_ARGS__, u8_expand_pair_yzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_EXPAND_PAIR , .mask = 0xe) \
241 MACRO(__VA_ARGS__, u8_expand_pair_xyzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_EXPAND_PAIR , .mask = 0xf)
242#define SWS_FOR_U8_EXPAND_QUAD(MACRO, ...)
243#define SWS_FOR_STRUCT_U8_EXPAND_QUAD(MACRO, ...)
244#define SWS_FOR_U8_TO_U8(MACRO, ...)
245#define SWS_FOR_STRUCT_U8_TO_U8(MACRO, ...)
246#define SWS_FOR_U8_TO_U16(MACRO, ...) \
247 MACRO(__VA_ARGS__, u8_to_u16_x , SWS_PIXEL_U8 , SWS_UOP_TO_U16 , 0x1) \
248 MACRO(__VA_ARGS__, u8_to_u16_xyz , SWS_PIXEL_U8 , SWS_UOP_TO_U16 , 0x7) \
249 MACRO(__VA_ARGS__, u8_to_u16_yzw , SWS_PIXEL_U8 , SWS_UOP_TO_U16 , 0xe) \
250 MACRO(__VA_ARGS__, u8_to_u16_xyzw , SWS_PIXEL_U8 , SWS_UOP_TO_U16 , 0xf)
251#define SWS_FOR_STRUCT_U8_TO_U16(MACRO, ...) \
252 MACRO(__VA_ARGS__, u8_to_u16_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_U16 , .mask = 0x1) \
253 MACRO(__VA_ARGS__, u8_to_u16_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_U16 , .mask = 0x7) \
254 MACRO(__VA_ARGS__, u8_to_u16_yzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_U16 , .mask = 0xe) \
255 MACRO(__VA_ARGS__, u8_to_u16_xyzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_U16 , .mask = 0xf)
256#define SWS_FOR_U8_TO_U32(MACRO, ...) \
257 MACRO(__VA_ARGS__, u8_to_u32_x , SWS_PIXEL_U8 , SWS_UOP_TO_U32 , 0x1) \
258 MACRO(__VA_ARGS__, u8_to_u32_xyz , SWS_PIXEL_U8 , SWS_UOP_TO_U32 , 0x7)
259#define SWS_FOR_STRUCT_U8_TO_U32(MACRO, ...) \
260 MACRO(__VA_ARGS__, u8_to_u32_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_U32 , .mask = 0x1) \
261 MACRO(__VA_ARGS__, u8_to_u32_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_U32 , .mask = 0x7)
262#define SWS_FOR_U8_TO_F32(MACRO, ...) \
263 MACRO(__VA_ARGS__, u8_to_f32_x , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0x1) \
264 MACRO(__VA_ARGS__, u8_to_f32_y , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0x2) \
265 MACRO(__VA_ARGS__, u8_to_f32_xy , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0x3) \
266 MACRO(__VA_ARGS__, u8_to_f32_z , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0x4) \
267 MACRO(__VA_ARGS__, u8_to_f32_xyz , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0x7) \
268 MACRO(__VA_ARGS__, u8_to_f32_yw , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0xa) \
269 MACRO(__VA_ARGS__, u8_to_f32_zw , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0xc) \
270 MACRO(__VA_ARGS__, u8_to_f32_yzw , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0xe) \
271 MACRO(__VA_ARGS__, u8_to_f32_xyzw , SWS_PIXEL_U8 , SWS_UOP_TO_F32 , 0xf)
272#define SWS_FOR_STRUCT_U8_TO_F32(MACRO, ...) \
273 MACRO(__VA_ARGS__, u8_to_f32_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0x1) \
274 MACRO(__VA_ARGS__, u8_to_f32_y , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0x2) \
275 MACRO(__VA_ARGS__, u8_to_f32_xy , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0x3) \
276 MACRO(__VA_ARGS__, u8_to_f32_z , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0x4) \
277 MACRO(__VA_ARGS__, u8_to_f32_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0x7) \
278 MACRO(__VA_ARGS__, u8_to_f32_yw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0xa) \
279 MACRO(__VA_ARGS__, u8_to_f32_zw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0xc) \
280 MACRO(__VA_ARGS__, u8_to_f32_yzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0xe) \
281 MACRO(__VA_ARGS__, u8_to_f32_xyzw , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_TO_F32 , .mask = 0xf)
282#define SWS_FOR_U8_SCALE(MACRO, ...) \
283 MACRO(__VA_ARGS__, u8_scale_xyz , SWS_PIXEL_U8 , SWS_UOP_SCALE , 0x7)
284#define SWS_FOR_STRUCT_U8_SCALE(MACRO, ...) \
285 MACRO(__VA_ARGS__, u8_scale_xyz , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_SCALE , .mask = 0x7)
286#define SWS_FOR_U8_ADD(MACRO, ...)
287#define SWS_FOR_STRUCT_U8_ADD(MACRO, ...)
288#define SWS_FOR_U8_MIN(MACRO, ...)
289#define SWS_FOR_STRUCT_U8_MIN(MACRO, ...)
290#define SWS_FOR_U8_MAX(MACRO, ...)
291#define SWS_FOR_STRUCT_U8_MAX(MACRO, ...)
292#define SWS_FOR_U8_UNPACK(MACRO, ...) \
293 MACRO(__VA_ARGS__, u8_unpack_xyz_121 , SWS_PIXEL_U8 , SWS_UOP_UNPACK , 0x7, 1, 2, 1, 0) \
294 MACRO(__VA_ARGS__, u8_unpack_xyz_233 , SWS_PIXEL_U8 , SWS_UOP_UNPACK , 0x7, 2, 3, 3, 0) \
295 MACRO(__VA_ARGS__, u8_unpack_xyz_332 , SWS_PIXEL_U8 , SWS_UOP_UNPACK , 0x7, 3, 3, 2, 0)
296#define SWS_FOR_STRUCT_U8_UNPACK(MACRO, ...) \
297 MACRO(__VA_ARGS__, u8_unpack_xyz_121 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {1, 2, 1, 0}) \
298 MACRO(__VA_ARGS__, u8_unpack_xyz_233 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {2, 3, 3, 0}) \
299 MACRO(__VA_ARGS__, u8_unpack_xyz_332 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {3, 3, 2, 0})
300#define SWS_FOR_U8_PACK(MACRO, ...) \
301 MACRO(__VA_ARGS__, u8_pack_xyz_121 , SWS_PIXEL_U8 , SWS_UOP_PACK , 0x7, 1, 2, 1, 0) \
302 MACRO(__VA_ARGS__, u8_pack_xyz_233 , SWS_PIXEL_U8 , SWS_UOP_PACK , 0x7, 2, 3, 3, 0) \
303 MACRO(__VA_ARGS__, u8_pack_xyz_332 , SWS_PIXEL_U8 , SWS_UOP_PACK , 0x7, 3, 3, 2, 0)
304#define SWS_FOR_STRUCT_U8_PACK(MACRO, ...) \
305 MACRO(__VA_ARGS__, u8_pack_xyz_121 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PACK , .mask = 0x7, .par.pack.pattern = {1, 2, 1, 0}) \
306 MACRO(__VA_ARGS__, u8_pack_xyz_233 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PACK , .mask = 0x7, .par.pack.pattern = {2, 3, 3, 0}) \
307 MACRO(__VA_ARGS__, u8_pack_xyz_332 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_PACK , .mask = 0x7, .par.pack.pattern = {3, 3, 2, 0})
308#define SWS_FOR_U8_LSHIFT(MACRO, ...)
309#define SWS_FOR_STRUCT_U8_LSHIFT(MACRO, ...)
310#define SWS_FOR_U8_RSHIFT(MACRO, ...)
311#define SWS_FOR_STRUCT_U8_RSHIFT(MACRO, ...)
312#define SWS_FOR_U8_CLEAR(MACRO, ...) \
313 MACRO(__VA_ARGS__, u8_clear_x_0 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x1, 0x00000, 0x00001) \
314 MACRO(__VA_ARGS__, u8_clear_x_1 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x1, 0x00001, 0x00000) \
315 MACRO(__VA_ARGS__, u8_clear_y_1 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x2, 0x00002, 0x00000) \
316 MACRO(__VA_ARGS__, u8_clear_xy_xx , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x3, 0x00000, 0x00000) \
317 MACRO(__VA_ARGS__, u8_clear_xz_xx , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x5, 0x00000, 0x00000) \
318 MACRO(__VA_ARGS__, u8_clear_yz_xx , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x6, 0x00000, 0x00000) \
319 MACRO(__VA_ARGS__, u8_clear_xyz_1xx , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x7, 0x00001, 0x00000) \
320 MACRO(__VA_ARGS__, u8_clear_w_0 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x8, 0x00000, 0x00008) \
321 MACRO(__VA_ARGS__, u8_clear_w_1 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0x8, 0x00008, 0x00000) \
322 MACRO(__VA_ARGS__, u8_clear_xyw_xx0 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0xb, 0x00000, 0x00008) \
323 MACRO(__VA_ARGS__, u8_clear_xyw_xx1 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0xb, 0x00008, 0x00000) \
324 MACRO(__VA_ARGS__, u8_clear_zw_xx , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0xc, 0x00000, 0x00000) \
325 MACRO(__VA_ARGS__, u8_clear_xzw_1xx , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0xd, 0x00001, 0x00000) \
326 MACRO(__VA_ARGS__, u8_clear_xzw_xx1 , SWS_PIXEL_U8 , SWS_UOP_CLEAR , 0xd, 0x00008, 0x00000)
327#define SWS_FOR_STRUCT_U8_CLEAR(MACRO, ...) \
328 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) \
329 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) \
330 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) \
331 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) \
332 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) \
333 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) \
334 MACRO(__VA_ARGS__, u8_clear_xyz_1xx , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR , .mask = 0x7, .par.clear.one = 0x1, .par.clear.zero = 0x0) \
335 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) \
336 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) \
337 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) \
338 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) \
339 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) \
340 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) \
341 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)
342#define SWS_FOR_U8_LINEAR(MACRO, ...) \
343 MACRO(__VA_ARGS__, u8_linear_x_x000x , SWS_PIXEL_U8 , SWS_UOP_LINEAR , 0x1, 0x00000, 0xfffee) \
344 MACRO(__VA_ARGS__, u8_linear_y_0x000 , SWS_PIXEL_U8 , SWS_UOP_LINEAR , 0x2, 0x00000, 0xfffbf) \
345 MACRO(__VA_ARGS__, u8_linear_xyz_x000x_0x00x_00x0x , SWS_PIXEL_U8 , SWS_UOP_LINEAR , 0x7, 0x00000, 0xfadae) \
346 MACRO(__VA_ARGS__, u8_linear_xyz_x0000_0x000_00x00 , SWS_PIXEL_U8 , SWS_UOP_LINEAR , 0x7, 0x00000, 0xfefbe)
347#define SWS_FOR_STRUCT_U8_LINEAR(MACRO, ...) \
348 MACRO(__VA_ARGS__, u8_linear_x_x000x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_LINEAR , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xfffee) \
349 MACRO(__VA_ARGS__, u8_linear_y_0x000 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_LINEAR , .mask = 0x2, .par.lin.one = 0x0, .par.lin.zero = 0xfffbf) \
350 MACRO(__VA_ARGS__, u8_linear_xyz_x000x_0x00x_00x0x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfadae) \
351 MACRO(__VA_ARGS__, u8_linear_xyz_x0000_0x000_00x00 , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfefbe)
352#define SWS_FOR_U8_LINEAR_FMA(MACRO, ...)
353#define SWS_FOR_STRUCT_U8_LINEAR_FMA(MACRO, ...)
354#define SWS_FOR_U8_DITHER(MACRO, ...)
355#define SWS_FOR_STRUCT_U8_DITHER(MACRO, ...)
356#define SWS_FOR_U8_LUT_3D(MACRO, ...)
357#define SWS_FOR_STRUCT_U8_LUT_3D(MACRO, ...)
358#define SWS_FOR_U16_READ_PLANAR(MACRO, ...) \
359 MACRO(__VA_ARGS__, u16_read_planar_x , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR , 0x1) \
360 MACRO(__VA_ARGS__, u16_read_planar_xy , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR , 0x3) \
361 MACRO(__VA_ARGS__, u16_read_planar_xyz , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR , 0x7) \
362 MACRO(__VA_ARGS__, u16_read_planar_xyzw , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR , 0xf)
363#define SWS_FOR_STRUCT_U16_READ_PLANAR(MACRO, ...) \
364 MACRO(__VA_ARGS__, u16_read_planar_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR , .mask = 0x1) \
365 MACRO(__VA_ARGS__, u16_read_planar_xy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR , .mask = 0x3) \
366 MACRO(__VA_ARGS__, u16_read_planar_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR , .mask = 0x7) \
367 MACRO(__VA_ARGS__, u16_read_planar_xyzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PLANAR , .mask = 0xf)
368#define SWS_FOR_U16_READ_PLANAR_FH(MACRO, ...) \
369 MACRO(__VA_ARGS__, u16_read_planar_fh_x_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FH , 0x1, SWS_PIXEL_F32) \
370 MACRO(__VA_ARGS__, u16_read_planar_fh_xy_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FH , 0x3, SWS_PIXEL_F32) \
371 MACRO(__VA_ARGS__, u16_read_planar_fh_xyz_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FH , 0x7, SWS_PIXEL_F32) \
372 MACRO(__VA_ARGS__, u16_read_planar_fh_xyzw_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FH , 0xf, SWS_PIXEL_F32)
373#define SWS_FOR_STRUCT_U16_READ_PLANAR_FH(MACRO, ...) \
374 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) \
375 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) \
376 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) \
377 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)
378#define SWS_FOR_U16_READ_PLANAR_FV(MACRO, ...) \
379 MACRO(__VA_ARGS__, u16_read_planar_fv_x_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV , 0x1, SWS_PIXEL_F32) \
380 MACRO(__VA_ARGS__, u16_read_planar_fv_xy_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV , 0x3, SWS_PIXEL_F32) \
381 MACRO(__VA_ARGS__, u16_read_planar_fv_xyz_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV , 0x7, SWS_PIXEL_F32) \
382 MACRO(__VA_ARGS__, u16_read_planar_fv_xyzw_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV , 0xf, SWS_PIXEL_F32)
383#define SWS_FOR_STRUCT_U16_READ_PLANAR_FV(MACRO, ...) \
384 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) \
385 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) \
386 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) \
387 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)
388#define SWS_FOR_U16_READ_PLANAR_FV_FMA(MACRO, ...) \
389 MACRO(__VA_ARGS__, u16_read_planar_fv_fma_x_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV_FMA, 0x1, SWS_PIXEL_F32) \
390 MACRO(__VA_ARGS__, u16_read_planar_fv_fma_xy_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV_FMA, 0x3, SWS_PIXEL_F32) \
391 MACRO(__VA_ARGS__, u16_read_planar_fv_fma_xyz_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV_FMA, 0x7, SWS_PIXEL_F32) \
392 MACRO(__VA_ARGS__, u16_read_planar_fv_fma_xyzw_f32 , SWS_PIXEL_U16, SWS_UOP_READ_PLANAR_FV_FMA, 0xf, SWS_PIXEL_F32)
393#define SWS_FOR_STRUCT_U16_READ_PLANAR_FV_FMA(MACRO, ...) \
394 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) \
395 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) \
396 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) \
397 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)
398#define SWS_FOR_U16_READ_PACKED(MACRO, ...) \
399 MACRO(__VA_ARGS__, u16_read_packed_xy , SWS_PIXEL_U16, SWS_UOP_READ_PACKED , 0x3) \
400 MACRO(__VA_ARGS__, u16_read_packed_xyz , SWS_PIXEL_U16, SWS_UOP_READ_PACKED , 0x7) \
401 MACRO(__VA_ARGS__, u16_read_packed_xyzw , SWS_PIXEL_U16, SWS_UOP_READ_PACKED , 0xf)
402#define SWS_FOR_STRUCT_U16_READ_PACKED(MACRO, ...) \
403 MACRO(__VA_ARGS__, u16_read_packed_xy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PACKED , .mask = 0x3) \
404 MACRO(__VA_ARGS__, u16_read_packed_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PACKED , .mask = 0x7) \
405 MACRO(__VA_ARGS__, u16_read_packed_xyzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_READ_PACKED , .mask = 0xf)
406#define SWS_FOR_U16_READ_NIBBLE(MACRO, ...)
407#define SWS_FOR_STRUCT_U16_READ_NIBBLE(MACRO, ...)
408#define SWS_FOR_U16_READ_BIT(MACRO, ...)
409#define SWS_FOR_STRUCT_U16_READ_BIT(MACRO, ...)
410#define SWS_FOR_U16_READ_PALETTE(MACRO, ...)
411#define SWS_FOR_STRUCT_U16_READ_PALETTE(MACRO, ...)
412#define SWS_FOR_U16_WRITE_PLANAR(MACRO, ...) \
413 MACRO(__VA_ARGS__, u16_write_planar_x , SWS_PIXEL_U16, SWS_UOP_WRITE_PLANAR , 0x1) \
414 MACRO(__VA_ARGS__, u16_write_planar_xy , SWS_PIXEL_U16, SWS_UOP_WRITE_PLANAR , 0x3) \
415 MACRO(__VA_ARGS__, u16_write_planar_xyz , SWS_PIXEL_U16, SWS_UOP_WRITE_PLANAR , 0x7) \
416 MACRO(__VA_ARGS__, u16_write_planar_xyzw , SWS_PIXEL_U16, SWS_UOP_WRITE_PLANAR , 0xf)
417#define SWS_FOR_STRUCT_U16_WRITE_PLANAR(MACRO, ...) \
418 MACRO(__VA_ARGS__, u16_write_planar_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x1) \
419 MACRO(__VA_ARGS__, u16_write_planar_xy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x3) \
420 MACRO(__VA_ARGS__, u16_write_planar_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x7) \
421 MACRO(__VA_ARGS__, u16_write_planar_xyzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0xf)
422#define SWS_FOR_U16_WRITE_PACKED(MACRO, ...) \
423 MACRO(__VA_ARGS__, u16_write_packed_xy , SWS_PIXEL_U16, SWS_UOP_WRITE_PACKED , 0x3) \
424 MACRO(__VA_ARGS__, u16_write_packed_xyz , SWS_PIXEL_U16, SWS_UOP_WRITE_PACKED , 0x7) \
425 MACRO(__VA_ARGS__, u16_write_packed_xyzw , SWS_PIXEL_U16, SWS_UOP_WRITE_PACKED , 0xf)
426#define SWS_FOR_STRUCT_U16_WRITE_PACKED(MACRO, ...) \
427 MACRO(__VA_ARGS__, u16_write_packed_xy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PACKED , .mask = 0x3) \
428 MACRO(__VA_ARGS__, u16_write_packed_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PACKED , .mask = 0x7) \
429 MACRO(__VA_ARGS__, u16_write_packed_xyzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_WRITE_PACKED , .mask = 0xf)
430#define SWS_FOR_U16_WRITE_NIBBLE(MACRO, ...)
431#define SWS_FOR_STRUCT_U16_WRITE_NIBBLE(MACRO, ...)
432#define SWS_FOR_U16_WRITE_BIT(MACRO, ...)
433#define SWS_FOR_STRUCT_U16_WRITE_BIT(MACRO, ...)
434#define SWS_FOR_U16_RW_SHUFFLE(MACRO, ...)
435#define SWS_FOR_STRUCT_U16_RW_SHUFFLE(MACRO, ...)
436#define SWS_FOR_U16_PERMUTE(MACRO, ...) \
437 MACRO(__VA_ARGS__, u16_permute_xyz_x_w , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x7, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0) \
438 MACRO(__VA_ARGS__, u16_permute_xyz_y_w , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x7, 1, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0) \
439 MACRO(__VA_ARGS__, u16_permute_xyz_xz_zw , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x7, 2, 0, 2, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0) \
440 MACRO(__VA_ARGS__, u16_permute_xyz_yx_xw , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x7, 2, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0) \
441 MACRO(__VA_ARGS__, u16_permute_xyz_xyz_yzw , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x7, 3, 0, 1, 2, 0, 0, 0, 1, 2, 3, 0, 0, 0) \
442 MACRO(__VA_ARGS__, u16_permute_xyz_xtyz_wyzt , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0x7, 4, 0, -1, 1, 2, 0, 0, 3, 1, 2, -1, 0, 0) \
443 MACRO(__VA_ARGS__, u16_permute_xyw_x_z , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xb, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
444 MACRO(__VA_ARGS__, u16_permute_xzw_x_y , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xd, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0) \
445 MACRO(__VA_ARGS__, u16_permute_yzw_y_x , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xe, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
446 MACRO(__VA_ARGS__, u16_permute_yzw_w_x , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xe, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
447 MACRO(__VA_ARGS__, u16_permute_yzw_wz_zx , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xe, 2, 3, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
448 MACRO(__VA_ARGS__, u16_permute_yzw_wzy_zyx , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xe, 3, 3, 2, 1, 0, 0, 0, 2, 1, 0, 0, 0, 0) \
449 MACRO(__VA_ARGS__, u16_permute_yzw_wtyz_xyzt , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xe, 4, 3, -1, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0) \
450 MACRO(__VA_ARGS__, u16_permute_xyzw_txy_xyt , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xf, 3, -1, 0, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0) \
451 MACRO(__VA_ARGS__, u16_permute_xyzw_txz_xzt , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xf, 3, -1, 0, 2, 0, 0, 0, 0, 2, -1, 0, 0, 0) \
452 MACRO(__VA_ARGS__, u16_permute_xyzw_txyz_xyzt , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xf, 4, -1, 0, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0) \
453 MACRO(__VA_ARGS__, u16_permute_xyzw_txzy_xzyt , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xf, 4, -1, 0, 2, 1, 0, 0, 0, 2, 1, -1, 0, 0) \
454 MACRO(__VA_ARGS__, u16_permute_xyzw_tyzw_yzwt , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xf, 4, -1, 1, 2, 3, 0, 0, 1, 2, 3, -1, 0, 0) \
455 MACRO(__VA_ARGS__, u16_permute_xyzw_txyzw_xyzwt , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xf, 5, -1, 0, 1, 2, 3, 0, 0, 1, 2, 3, -1, 0) \
456 MACRO(__VA_ARGS__, u16_permute_xyzw_txwzy_xwzyt , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xf, 5, -1, 0, 3, 2, 1, 0, 0, 3, 2, 1, -1, 0) \
457 MACRO(__VA_ARGS__, u16_permute_xyzw_txwtyz_xwtyzt , SWS_PIXEL_U16, SWS_UOP_PERMUTE , 0xf, 6, -1, 0, 3, -1, 1, 2, 0, 3, -1, 1, 2, -1)
458#define SWS_FOR_STRUCT_U16_PERMUTE(MACRO, ...) \
459 MACRO(__VA_ARGS__, u16_permute_xyz_x_w , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {3, 0, 0, 0, 0, 0}) \
460 MACRO(__VA_ARGS__, u16_permute_xyz_y_w , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 1, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {3, 0, 0, 0, 0, 0}) \
461 MACRO(__VA_ARGS__, u16_permute_xyz_xz_zw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 2, .par.move.dst = {0, 2, 0, 0, 0, 0}, .par.move.src = {2, 3, 0, 0, 0, 0}) \
462 MACRO(__VA_ARGS__, u16_permute_xyz_yx_xw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 2, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {0, 3, 0, 0, 0, 0}) \
463 MACRO(__VA_ARGS__, u16_permute_xyz_xyz_yzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 3, .par.move.dst = {0, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, 3, 0, 0, 0}) \
464 MACRO(__VA_ARGS__, u16_permute_xyz_xtyz_wyzt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 4, .par.move.dst = {0, -1, 1, 2, 0, 0}, .par.move.src = {3, 1, 2, -1, 0, 0}) \
465 MACRO(__VA_ARGS__, u16_permute_xyw_x_z , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xb, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {2, 0, 0, 0, 0, 0}) \
466 MACRO(__VA_ARGS__, u16_permute_xzw_x_y , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xd, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {1, 0, 0, 0, 0, 0}) \
467 MACRO(__VA_ARGS__, u16_permute_yzw_y_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 1, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
468 MACRO(__VA_ARGS__, u16_permute_yzw_w_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 1, .par.move.dst = {3, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
469 MACRO(__VA_ARGS__, u16_permute_yzw_wz_zx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 2, .par.move.dst = {3, 2, 0, 0, 0, 0}, .par.move.src = {2, 0, 0, 0, 0, 0}) \
470 MACRO(__VA_ARGS__, u16_permute_yzw_wzy_zyx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 3, .par.move.dst = {3, 2, 1, 0, 0, 0}, .par.move.src = {2, 1, 0, 0, 0, 0}) \
471 MACRO(__VA_ARGS__, u16_permute_yzw_wtyz_xyzt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 4, .par.move.dst = {3, -1, 1, 2, 0, 0}, .par.move.src = {0, 1, 2, -1, 0, 0}) \
472 MACRO(__VA_ARGS__, u16_permute_xyzw_txy_xyt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {-1, 0, 1, 0, 0, 0}, .par.move.src = {0, 1, -1, 0, 0, 0}) \
473 MACRO(__VA_ARGS__, u16_permute_xyzw_txz_xzt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {-1, 0, 2, 0, 0, 0}, .par.move.src = {0, 2, -1, 0, 0, 0}) \
474 MACRO(__VA_ARGS__, u16_permute_xyzw_txyz_xyzt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 1, 2, 0, 0}, .par.move.src = {0, 1, 2, -1, 0, 0}) \
475 MACRO(__VA_ARGS__, u16_permute_xyzw_txzy_xzyt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 2, 1, 0, 0}, .par.move.src = {0, 2, 1, -1, 0, 0}) \
476 MACRO(__VA_ARGS__, u16_permute_xyzw_tyzw_yzwt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 4, .par.move.dst = {-1, 1, 2, 3, 0, 0}, .par.move.src = {1, 2, 3, -1, 0, 0}) \
477 MACRO(__VA_ARGS__, u16_permute_xyzw_txyzw_xyzwt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 1, 2, 3, 0}, .par.move.src = {0, 1, 2, 3, -1, 0}) \
478 MACRO(__VA_ARGS__, u16_permute_xyzw_txwzy_xwzyt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 3, 2, 1, 0}, .par.move.src = {0, 3, 2, 1, -1, 0}) \
479 MACRO(__VA_ARGS__, u16_permute_xyzw_txwtyz_xwtyzt , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 6, .par.move.dst = {-1, 0, 3, -1, 1, 2}, .par.move.src = {0, 3, -1, 1, 2, -1})
480#define SWS_FOR_U16_COPY(MACRO, ...) \
481 MACRO(__VA_ARGS__, u16_copy_xyzw_yz_xx , SWS_PIXEL_U16, SWS_UOP_COPY , 0xf, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
482 MACRO(__VA_ARGS__, u16_copy_xyzw_zwy_xyx , SWS_PIXEL_U16, SWS_UOP_COPY , 0xf, 3, 2, 3, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0)
483#define SWS_FOR_STRUCT_U16_COPY(MACRO, ...) \
484 MACRO(__VA_ARGS__, u16_copy_xyzw_yz_xx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_COPY , .mask = 0xf, .par.move.num_moves = 2, .par.move.dst = {1, 2, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
485 MACRO(__VA_ARGS__, u16_copy_xyzw_zwy_xyx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_COPY , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {2, 3, 1, 0, 0, 0}, .par.move.src = {0, 1, 0, 0, 0, 0})
486#define SWS_FOR_U16_SWAP_BYTES(MACRO, ...) \
487 MACRO(__VA_ARGS__, u16_swap_bytes_x , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0x1) \
488 MACRO(__VA_ARGS__, u16_swap_bytes_y , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0x2) \
489 MACRO(__VA_ARGS__, u16_swap_bytes_xy , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0x3) \
490 MACRO(__VA_ARGS__, u16_swap_bytes_xyz , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0x7) \
491 MACRO(__VA_ARGS__, u16_swap_bytes_xw , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0x9) \
492 MACRO(__VA_ARGS__, u16_swap_bytes_yzw , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0xe) \
493 MACRO(__VA_ARGS__, u16_swap_bytes_xyzw , SWS_PIXEL_U16, SWS_UOP_SWAP_BYTES , 0xf)
494#define SWS_FOR_STRUCT_U16_SWAP_BYTES(MACRO, ...) \
495 MACRO(__VA_ARGS__, u16_swap_bytes_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x1) \
496 MACRO(__VA_ARGS__, u16_swap_bytes_y , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x2) \
497 MACRO(__VA_ARGS__, u16_swap_bytes_xy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x3) \
498 MACRO(__VA_ARGS__, u16_swap_bytes_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x7) \
499 MACRO(__VA_ARGS__, u16_swap_bytes_xw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x9) \
500 MACRO(__VA_ARGS__, u16_swap_bytes_yzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0xe) \
501 MACRO(__VA_ARGS__, u16_swap_bytes_xyzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SWAP_BYTES , .mask = 0xf)
502#define SWS_FOR_U16_EXPAND_BIT(MACRO, ...) \
503 MACRO(__VA_ARGS__, u16_expand_bit_x , SWS_PIXEL_U16, SWS_UOP_EXPAND_BIT , 0x1)
504#define SWS_FOR_STRUCT_U16_EXPAND_BIT(MACRO, ...) \
505 MACRO(__VA_ARGS__, u16_expand_bit_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_EXPAND_BIT , .mask = 0x1)
506#define SWS_FOR_U16_EXPAND_PAIR(MACRO, ...)
507#define SWS_FOR_STRUCT_U16_EXPAND_PAIR(MACRO, ...)
508#define SWS_FOR_U16_EXPAND_QUAD(MACRO, ...)
509#define SWS_FOR_STRUCT_U16_EXPAND_QUAD(MACRO, ...)
510#define SWS_FOR_U16_TO_U8(MACRO, ...) \
511 MACRO(__VA_ARGS__, u16_to_u8_xyz , SWS_PIXEL_U16, SWS_UOP_TO_U8 , 0x7)
512#define SWS_FOR_STRUCT_U16_TO_U8(MACRO, ...) \
513 MACRO(__VA_ARGS__, u16_to_u8_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_U8 , .mask = 0x7)
514#define SWS_FOR_U16_TO_U16(MACRO, ...)
515#define SWS_FOR_STRUCT_U16_TO_U16(MACRO, ...)
516#define SWS_FOR_U16_TO_U32(MACRO, ...) \
517 MACRO(__VA_ARGS__, u16_to_u32_x , SWS_PIXEL_U16, SWS_UOP_TO_U32 , 0x1) \
518 MACRO(__VA_ARGS__, u16_to_u32_xyz , SWS_PIXEL_U16, SWS_UOP_TO_U32 , 0x7)
519#define SWS_FOR_STRUCT_U16_TO_U32(MACRO, ...) \
520 MACRO(__VA_ARGS__, u16_to_u32_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_U32 , .mask = 0x1) \
521 MACRO(__VA_ARGS__, u16_to_u32_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_U32 , .mask = 0x7)
522#define SWS_FOR_U16_TO_F32(MACRO, ...) \
523 MACRO(__VA_ARGS__, u16_to_f32_x , SWS_PIXEL_U16, SWS_UOP_TO_F32 , 0x1) \
524 MACRO(__VA_ARGS__, u16_to_f32_y , SWS_PIXEL_U16, SWS_UOP_TO_F32 , 0x2) \
525 MACRO(__VA_ARGS__, u16_to_f32_xy , SWS_PIXEL_U16, SWS_UOP_TO_F32 , 0x3) \
526 MACRO(__VA_ARGS__, u16_to_f32_xyz , SWS_PIXEL_U16, SWS_UOP_TO_F32 , 0x7) \
527 MACRO(__VA_ARGS__, u16_to_f32_yzw , SWS_PIXEL_U16, SWS_UOP_TO_F32 , 0xe) \
528 MACRO(__VA_ARGS__, u16_to_f32_xyzw , SWS_PIXEL_U16, SWS_UOP_TO_F32 , 0xf)
529#define SWS_FOR_STRUCT_U16_TO_F32(MACRO, ...) \
530 MACRO(__VA_ARGS__, u16_to_f32_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_F32 , .mask = 0x1) \
531 MACRO(__VA_ARGS__, u16_to_f32_y , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_F32 , .mask = 0x2) \
532 MACRO(__VA_ARGS__, u16_to_f32_xy , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_F32 , .mask = 0x3) \
533 MACRO(__VA_ARGS__, u16_to_f32_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_F32 , .mask = 0x7) \
534 MACRO(__VA_ARGS__, u16_to_f32_yzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_F32 , .mask = 0xe) \
535 MACRO(__VA_ARGS__, u16_to_f32_xyzw , .type = SWS_PIXEL_U16, .uop = SWS_UOP_TO_F32 , .mask = 0xf)
536#define SWS_FOR_U16_SCALE(MACRO, ...) \
537 MACRO(__VA_ARGS__, u16_scale_x , SWS_PIXEL_U16, SWS_UOP_SCALE , 0x1) \
538 MACRO(__VA_ARGS__, u16_scale_xyz , SWS_PIXEL_U16, SWS_UOP_SCALE , 0x7)
539#define SWS_FOR_STRUCT_U16_SCALE(MACRO, ...) \
540 MACRO(__VA_ARGS__, u16_scale_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SCALE , .mask = 0x1) \
541 MACRO(__VA_ARGS__, u16_scale_xyz , .type = SWS_PIXEL_U16, .uop = SWS_UOP_SCALE , .mask = 0x7)
542#define SWS_FOR_U16_ADD(MACRO, ...)
543#define SWS_FOR_STRUCT_U16_ADD(MACRO, ...)
544#define SWS_FOR_U16_MIN(MACRO, ...)
545#define SWS_FOR_STRUCT_U16_MIN(MACRO, ...)
546#define SWS_FOR_U16_MAX(MACRO, ...)
547#define SWS_FOR_STRUCT_U16_MAX(MACRO, ...)
548#define SWS_FOR_U16_UNPACK(MACRO, ...) \
549 MACRO(__VA_ARGS__, u16_unpack_xyz_444 , SWS_PIXEL_U16, SWS_UOP_UNPACK , 0x7, 4, 4, 4, 0) \
550 MACRO(__VA_ARGS__, u16_unpack_xyz_555 , SWS_PIXEL_U16, SWS_UOP_UNPACK , 0x7, 5, 5, 5, 0) \
551 MACRO(__VA_ARGS__, u16_unpack_xyz_565 , SWS_PIXEL_U16, SWS_UOP_UNPACK , 0x7, 5, 6, 5, 0)
552#define SWS_FOR_STRUCT_U16_UNPACK(MACRO, ...) \
553 MACRO(__VA_ARGS__, u16_unpack_xyz_444 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {4, 4, 4, 0}) \
554 MACRO(__VA_ARGS__, u16_unpack_xyz_555 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {5, 5, 5, 0}) \
555 MACRO(__VA_ARGS__, u16_unpack_xyz_565 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {5, 6, 5, 0})
556#define SWS_FOR_U16_PACK(MACRO, ...) \
557 MACRO(__VA_ARGS__, u16_pack_xyz_444 , SWS_PIXEL_U16, SWS_UOP_PACK , 0x7, 4, 4, 4, 0) \
558 MACRO(__VA_ARGS__, u16_pack_xyz_555 , SWS_PIXEL_U16, SWS_UOP_PACK , 0x7, 5, 5, 5, 0) \
559 MACRO(__VA_ARGS__, u16_pack_xyz_565 , SWS_PIXEL_U16, SWS_UOP_PACK , 0x7, 5, 6, 5, 0)
560#define SWS_FOR_STRUCT_U16_PACK(MACRO, ...) \
561 MACRO(__VA_ARGS__, u16_pack_xyz_444 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PACK , .mask = 0x7, .par.pack.pattern = {4, 4, 4, 0}) \
562 MACRO(__VA_ARGS__, u16_pack_xyz_555 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PACK , .mask = 0x7, .par.pack.pattern = {5, 5, 5, 0}) \
563 MACRO(__VA_ARGS__, u16_pack_xyz_565 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_PACK , .mask = 0x7, .par.pack.pattern = {5, 6, 5, 0})
564#define SWS_FOR_U16_LSHIFT(MACRO, ...) \
565 MACRO(__VA_ARGS__, u16_lshift_x_4 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x1, 4) \
566 MACRO(__VA_ARGS__, u16_lshift_x_6 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x1, 6) \
567 MACRO(__VA_ARGS__, u16_lshift_xyz_1 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 1) \
568 MACRO(__VA_ARGS__, u16_lshift_xyz_2 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 2) \
569 MACRO(__VA_ARGS__, u16_lshift_xyz_3 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 3) \
570 MACRO(__VA_ARGS__, u16_lshift_xyz_4 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 4) \
571 MACRO(__VA_ARGS__, u16_lshift_xyz_5 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 5) \
572 MACRO(__VA_ARGS__, u16_lshift_xyz_6 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 6) \
573 MACRO(__VA_ARGS__, u16_lshift_xyz_7 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 7) \
574 MACRO(__VA_ARGS__, u16_lshift_xyz_8 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0x7, 8) \
575 MACRO(__VA_ARGS__, u16_lshift_yzw_1 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0xe, 1) \
576 MACRO(__VA_ARGS__, u16_lshift_yzw_2 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0xe, 2) \
577 MACRO(__VA_ARGS__, u16_lshift_yzw_4 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0xe, 4) \
578 MACRO(__VA_ARGS__, u16_lshift_yzw_6 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0xe, 6) \
579 MACRO(__VA_ARGS__, u16_lshift_yzw_8 , SWS_PIXEL_U16, SWS_UOP_LSHIFT , 0xe, 8)
580#define SWS_FOR_STRUCT_U16_LSHIFT(MACRO, ...) \
581 MACRO(__VA_ARGS__, u16_lshift_x_4 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x1, .par.shift.amount = 4) \
582 MACRO(__VA_ARGS__, u16_lshift_x_6 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x1, .par.shift.amount = 6) \
583 MACRO(__VA_ARGS__, u16_lshift_xyz_1 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 1) \
584 MACRO(__VA_ARGS__, u16_lshift_xyz_2 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 2) \
585 MACRO(__VA_ARGS__, u16_lshift_xyz_3 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 3) \
586 MACRO(__VA_ARGS__, u16_lshift_xyz_4 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 4) \
587 MACRO(__VA_ARGS__, u16_lshift_xyz_5 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 5) \
588 MACRO(__VA_ARGS__, u16_lshift_xyz_6 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 6) \
589 MACRO(__VA_ARGS__, u16_lshift_xyz_7 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 7) \
590 MACRO(__VA_ARGS__, u16_lshift_xyz_8 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 8) \
591 MACRO(__VA_ARGS__, u16_lshift_yzw_1 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0xe, .par.shift.amount = 1) \
592 MACRO(__VA_ARGS__, u16_lshift_yzw_2 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0xe, .par.shift.amount = 2) \
593 MACRO(__VA_ARGS__, u16_lshift_yzw_4 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0xe, .par.shift.amount = 4) \
594 MACRO(__VA_ARGS__, u16_lshift_yzw_6 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0xe, .par.shift.amount = 6) \
595 MACRO(__VA_ARGS__, u16_lshift_yzw_8 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LSHIFT , .mask = 0xe, .par.shift.amount = 8)
596#define SWS_FOR_U16_RSHIFT(MACRO, ...) \
597 MACRO(__VA_ARGS__, u16_rshift_x_4 , SWS_PIXEL_U16, SWS_UOP_RSHIFT , 0x1, 4) \
598 MACRO(__VA_ARGS__, u16_rshift_x_6 , SWS_PIXEL_U16, SWS_UOP_RSHIFT , 0x1, 6) \
599 MACRO(__VA_ARGS__, u16_rshift_y_4 , SWS_PIXEL_U16, SWS_UOP_RSHIFT , 0x2, 4) \
600 MACRO(__VA_ARGS__, u16_rshift_xyz_4 , SWS_PIXEL_U16, SWS_UOP_RSHIFT , 0x7, 4) \
601 MACRO(__VA_ARGS__, u16_rshift_xyz_6 , SWS_PIXEL_U16, SWS_UOP_RSHIFT , 0x7, 6)
602#define SWS_FOR_STRUCT_U16_RSHIFT(MACRO, ...) \
603 MACRO(__VA_ARGS__, u16_rshift_x_4 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_RSHIFT , .mask = 0x1, .par.shift.amount = 4) \
604 MACRO(__VA_ARGS__, u16_rshift_x_6 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_RSHIFT , .mask = 0x1, .par.shift.amount = 6) \
605 MACRO(__VA_ARGS__, u16_rshift_y_4 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_RSHIFT , .mask = 0x2, .par.shift.amount = 4) \
606 MACRO(__VA_ARGS__, u16_rshift_xyz_4 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_RSHIFT , .mask = 0x7, .par.shift.amount = 4) \
607 MACRO(__VA_ARGS__, u16_rshift_xyz_6 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_RSHIFT , .mask = 0x7, .par.shift.amount = 6)
608#define SWS_FOR_U16_CLEAR(MACRO, ...) \
609 MACRO(__VA_ARGS__, u16_clear_x_x , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x1, 0x00000, 0x00000) \
610 MACRO(__VA_ARGS__, u16_clear_x_1 , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x1, 0x00001, 0x00000) \
611 MACRO(__VA_ARGS__, u16_clear_y_1 , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x2, 0x00002, 0x00000) \
612 MACRO(__VA_ARGS__, u16_clear_xy_xx , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x3, 0x00000, 0x00000) \
613 MACRO(__VA_ARGS__, u16_clear_xyz_xxx , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x7, 0x00000, 0x00000) \
614 MACRO(__VA_ARGS__, u16_clear_xyz_1xx , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x7, 0x00001, 0x00000) \
615 MACRO(__VA_ARGS__, u16_clear_w_x , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x8, 0x00000, 0x00000) \
616 MACRO(__VA_ARGS__, u16_clear_w_0 , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x8, 0x00000, 0x00008) \
617 MACRO(__VA_ARGS__, u16_clear_w_1 , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0x8, 0x00008, 0x00000) \
618 MACRO(__VA_ARGS__, u16_clear_zw_xx , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0xc, 0x00000, 0x00000) \
619 MACRO(__VA_ARGS__, u16_clear_xzw_xx0 , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0xd, 0x00000, 0x00008) \
620 MACRO(__VA_ARGS__, u16_clear_xzw_1xx , SWS_PIXEL_U16, SWS_UOP_CLEAR , 0xd, 0x00001, 0x00000)
621#define SWS_FOR_STRUCT_U16_CLEAR(MACRO, ...) \
622 MACRO(__VA_ARGS__, u16_clear_x_x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0x1, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
623 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) \
624 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) \
625 MACRO(__VA_ARGS__, u16_clear_xy_xx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0x3, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
626 MACRO(__VA_ARGS__, u16_clear_xyz_xxx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0x7, .par.clear.one = 0x0, .par.clear.zero = 0x0) \
627 MACRO(__VA_ARGS__, u16_clear_xyz_1xx , .type = SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR , .mask = 0x7, .par.clear.one = 0x1, .par.clear.zero = 0x0) \
628 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) \
629 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) \
630 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) \
631 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) \
632 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) \
633 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)
634#define SWS_FOR_U16_LINEAR(MACRO, ...) \
635 MACRO(__VA_ARGS__, u16_linear_x_x000x , SWS_PIXEL_U16, SWS_UOP_LINEAR , 0x1, 0x00000, 0xfffee) \
636 MACRO(__VA_ARGS__, u16_linear_xyz_x000x_0x00x_00x0x , SWS_PIXEL_U16, SWS_UOP_LINEAR , 0x7, 0x00000, 0xfadae) \
637 MACRO(__VA_ARGS__, u16_linear_xyz_x0000_0x000_00x00 , SWS_PIXEL_U16, SWS_UOP_LINEAR , 0x7, 0x00000, 0xfefbe) \
638 MACRO(__VA_ARGS__, u16_linear_xyzw_x0000_0x000_00x00_000x0 , SWS_PIXEL_U16, SWS_UOP_LINEAR , 0xf, 0x00000, 0xbefbe)
639#define SWS_FOR_STRUCT_U16_LINEAR(MACRO, ...) \
640 MACRO(__VA_ARGS__, u16_linear_x_x000x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LINEAR , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xfffee) \
641 MACRO(__VA_ARGS__, u16_linear_xyz_x000x_0x00x_00x0x , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfadae) \
642 MACRO(__VA_ARGS__, u16_linear_xyz_x0000_0x000_00x00 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfefbe) \
643 MACRO(__VA_ARGS__, u16_linear_xyzw_x0000_0x000_00x00_000x0 , .type = SWS_PIXEL_U16, .uop = SWS_UOP_LINEAR , .mask = 0xf, .par.lin.one = 0x0, .par.lin.zero = 0xbefbe)
644#define SWS_FOR_U16_LINEAR_FMA(MACRO, ...)
645#define SWS_FOR_STRUCT_U16_LINEAR_FMA(MACRO, ...)
646#define SWS_FOR_U16_DITHER(MACRO, ...)
647#define SWS_FOR_STRUCT_U16_DITHER(MACRO, ...)
648#define SWS_FOR_U16_LUT_3D(MACRO, ...)
649#define SWS_FOR_STRUCT_U16_LUT_3D(MACRO, ...)
650#define SWS_FOR_U32_READ_PLANAR(MACRO, ...) \
651 MACRO(__VA_ARGS__, u32_read_planar_x , SWS_PIXEL_U32, SWS_UOP_READ_PLANAR , 0x1) \
652 MACRO(__VA_ARGS__, u32_read_planar_xyz , SWS_PIXEL_U32, SWS_UOP_READ_PLANAR , 0x7) \
653 MACRO(__VA_ARGS__, u32_read_planar_xyzw , SWS_PIXEL_U32, SWS_UOP_READ_PLANAR , 0xf)
654#define SWS_FOR_STRUCT_U32_READ_PLANAR(MACRO, ...) \
655 MACRO(__VA_ARGS__, u32_read_planar_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PLANAR , .mask = 0x1) \
656 MACRO(__VA_ARGS__, u32_read_planar_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PLANAR , .mask = 0x7) \
657 MACRO(__VA_ARGS__, u32_read_planar_xyzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PLANAR , .mask = 0xf)
658#define SWS_FOR_U32_READ_PLANAR_FH(MACRO, ...)
659#define SWS_FOR_STRUCT_U32_READ_PLANAR_FH(MACRO, ...)
660#define SWS_FOR_U32_READ_PLANAR_FV(MACRO, ...)
661#define SWS_FOR_STRUCT_U32_READ_PLANAR_FV(MACRO, ...)
662#define SWS_FOR_U32_READ_PLANAR_FV_FMA(MACRO, ...)
663#define SWS_FOR_STRUCT_U32_READ_PLANAR_FV_FMA(MACRO, ...)
664#define SWS_FOR_U32_READ_PACKED(MACRO, ...) \
665 MACRO(__VA_ARGS__, u32_read_packed_xy , SWS_PIXEL_U32, SWS_UOP_READ_PACKED , 0x3) \
666 MACRO(__VA_ARGS__, u32_read_packed_xyz , SWS_PIXEL_U32, SWS_UOP_READ_PACKED , 0x7) \
667 MACRO(__VA_ARGS__, u32_read_packed_xyzw , SWS_PIXEL_U32, SWS_UOP_READ_PACKED , 0xf)
668#define SWS_FOR_STRUCT_U32_READ_PACKED(MACRO, ...) \
669 MACRO(__VA_ARGS__, u32_read_packed_xy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PACKED , .mask = 0x3) \
670 MACRO(__VA_ARGS__, u32_read_packed_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PACKED , .mask = 0x7) \
671 MACRO(__VA_ARGS__, u32_read_packed_xyzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_READ_PACKED , .mask = 0xf)
672#define SWS_FOR_U32_READ_NIBBLE(MACRO, ...)
673#define SWS_FOR_STRUCT_U32_READ_NIBBLE(MACRO, ...)
674#define SWS_FOR_U32_READ_BIT(MACRO, ...)
675#define SWS_FOR_STRUCT_U32_READ_BIT(MACRO, ...)
676#define SWS_FOR_U32_READ_PALETTE(MACRO, ...)
677#define SWS_FOR_STRUCT_U32_READ_PALETTE(MACRO, ...)
678#define SWS_FOR_U32_WRITE_PLANAR(MACRO, ...) \
679 MACRO(__VA_ARGS__, u32_write_planar_x , SWS_PIXEL_U32, SWS_UOP_WRITE_PLANAR , 0x1) \
680 MACRO(__VA_ARGS__, u32_write_planar_xy , SWS_PIXEL_U32, SWS_UOP_WRITE_PLANAR , 0x3) \
681 MACRO(__VA_ARGS__, u32_write_planar_xyz , SWS_PIXEL_U32, SWS_UOP_WRITE_PLANAR , 0x7) \
682 MACRO(__VA_ARGS__, u32_write_planar_xyzw , SWS_PIXEL_U32, SWS_UOP_WRITE_PLANAR , 0xf)
683#define SWS_FOR_STRUCT_U32_WRITE_PLANAR(MACRO, ...) \
684 MACRO(__VA_ARGS__, u32_write_planar_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x1) \
685 MACRO(__VA_ARGS__, u32_write_planar_xy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x3) \
686 MACRO(__VA_ARGS__, u32_write_planar_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0x7) \
687 MACRO(__VA_ARGS__, u32_write_planar_xyzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PLANAR , .mask = 0xf)
688#define SWS_FOR_U32_WRITE_PACKED(MACRO, ...) \
689 MACRO(__VA_ARGS__, u32_write_packed_xy , SWS_PIXEL_U32, SWS_UOP_WRITE_PACKED , 0x3) \
690 MACRO(__VA_ARGS__, u32_write_packed_xyz , SWS_PIXEL_U32, SWS_UOP_WRITE_PACKED , 0x7) \
691 MACRO(__VA_ARGS__, u32_write_packed_xyzw , SWS_PIXEL_U32, SWS_UOP_WRITE_PACKED , 0xf)
692#define SWS_FOR_STRUCT_U32_WRITE_PACKED(MACRO, ...) \
693 MACRO(__VA_ARGS__, u32_write_packed_xy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PACKED , .mask = 0x3) \
694 MACRO(__VA_ARGS__, u32_write_packed_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PACKED , .mask = 0x7) \
695 MACRO(__VA_ARGS__, u32_write_packed_xyzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_WRITE_PACKED , .mask = 0xf)
696#define SWS_FOR_U32_WRITE_NIBBLE(MACRO, ...)
697#define SWS_FOR_STRUCT_U32_WRITE_NIBBLE(MACRO, ...)
698#define SWS_FOR_U32_WRITE_BIT(MACRO, ...)
699#define SWS_FOR_STRUCT_U32_WRITE_BIT(MACRO, ...)
700#define SWS_FOR_U32_RW_SHUFFLE(MACRO, ...)
701#define SWS_FOR_STRUCT_U32_RW_SHUFFLE(MACRO, ...)
702#define SWS_FOR_U32_PERMUTE(MACRO, ...) \
703 MACRO(__VA_ARGS__, u32_permute_xyz_x_w , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x7, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0) \
704 MACRO(__VA_ARGS__, u32_permute_xyz_y_w , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x7, 1, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0) \
705 MACRO(__VA_ARGS__, u32_permute_xyz_xz_zw , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x7, 2, 0, 2, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0) \
706 MACRO(__VA_ARGS__, u32_permute_xyz_zx_xw , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x7, 2, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0) \
707 MACRO(__VA_ARGS__, u32_permute_xyz_xyz_yzw , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x7, 3, 0, 1, 2, 0, 0, 0, 1, 2, 3, 0, 0, 0) \
708 MACRO(__VA_ARGS__, u32_permute_xyz_xzy_zyw , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x7, 3, 0, 2, 1, 0, 0, 0, 2, 1, 3, 0, 0, 0) \
709 MACRO(__VA_ARGS__, u32_permute_xyz_xtyz_wyzt , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0x7, 4, 0, -1, 1, 2, 0, 0, 3, 1, 2, -1, 0, 0) \
710 MACRO(__VA_ARGS__, u32_permute_xyw_x_z , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xb, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
711 MACRO(__VA_ARGS__, u32_permute_xzw_x_y , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xd, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0) \
712 MACRO(__VA_ARGS__, u32_permute_xzw_w_y , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xd, 1, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0) \
713 MACRO(__VA_ARGS__, u32_permute_xzw_wx_xy , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xd, 2, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0) \
714 MACRO(__VA_ARGS__, u32_permute_yzw_y_x , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xe, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
715 MACRO(__VA_ARGS__, u32_permute_yzw_z_x , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xe, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
716 MACRO(__VA_ARGS__, u32_permute_yzw_w_x , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xe, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
717 MACRO(__VA_ARGS__, u32_permute_yzw_wy_yx , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xe, 2, 3, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0) \
718 MACRO(__VA_ARGS__, u32_permute_yzw_wz_zx , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xe, 2, 3, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
719 MACRO(__VA_ARGS__, u32_permute_yzw_wyz_yzx , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xe, 3, 3, 1, 2, 0, 0, 0, 1, 2, 0, 0, 0, 0) \
720 MACRO(__VA_ARGS__, u32_permute_yzw_wzy_zyx , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xe, 3, 3, 2, 1, 0, 0, 0, 2, 1, 0, 0, 0, 0) \
721 MACRO(__VA_ARGS__, u32_permute_yzw_wtyz_xyzt , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xe, 4, 3, -1, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0) \
722 MACRO(__VA_ARGS__, u32_permute_xyzw_txy_xyt , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 3, -1, 0, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0) \
723 MACRO(__VA_ARGS__, u32_permute_xyzw_txz_xzt , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 3, -1, 0, 2, 0, 0, 0, 0, 2, -1, 0, 0, 0) \
724 MACRO(__VA_ARGS__, u32_permute_xyzw_tyz_yzt , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 3, -1, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0, 0) \
725 MACRO(__VA_ARGS__, u32_permute_xyzw_tyw_ywt , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 3, -1, 1, 3, 0, 0, 0, 1, 3, -1, 0, 0, 0) \
726 MACRO(__VA_ARGS__, u32_permute_xyzw_txyz_xyzt , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 4, -1, 0, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0) \
727 MACRO(__VA_ARGS__, u32_permute_xyzw_txzy_xzyt , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 4, -1, 0, 2, 1, 0, 0, 0, 2, 1, -1, 0, 0) \
728 MACRO(__VA_ARGS__, u32_permute_xyzw_txyzw_xyzwt , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 5, -1, 0, 1, 2, 3, 0, 0, 1, 2, 3, -1, 0) \
729 MACRO(__VA_ARGS__, u32_permute_xyzw_txwyz_xwyzt , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 5, -1, 0, 3, 1, 2, 0, 0, 3, 1, 2, -1, 0) \
730 MACRO(__VA_ARGS__, u32_permute_xyzw_txwzy_xwzyt , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 5, -1, 0, 3, 2, 1, 0, 0, 3, 2, 1, -1, 0) \
731 MACRO(__VA_ARGS__, u32_permute_xyzw_txwtyz_xwtyzt , SWS_PIXEL_U32, SWS_UOP_PERMUTE , 0xf, 6, -1, 0, 3, -1, 1, 2, 0, 3, -1, 1, 2, -1)
732#define SWS_FOR_STRUCT_U32_PERMUTE(MACRO, ...) \
733 MACRO(__VA_ARGS__, u32_permute_xyz_x_w , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {3, 0, 0, 0, 0, 0}) \
734 MACRO(__VA_ARGS__, u32_permute_xyz_y_w , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 1, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {3, 0, 0, 0, 0, 0}) \
735 MACRO(__VA_ARGS__, u32_permute_xyz_xz_zw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 2, .par.move.dst = {0, 2, 0, 0, 0, 0}, .par.move.src = {2, 3, 0, 0, 0, 0}) \
736 MACRO(__VA_ARGS__, u32_permute_xyz_zx_xw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 2, .par.move.dst = {2, 0, 0, 0, 0, 0}, .par.move.src = {0, 3, 0, 0, 0, 0}) \
737 MACRO(__VA_ARGS__, u32_permute_xyz_xyz_yzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 3, .par.move.dst = {0, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, 3, 0, 0, 0}) \
738 MACRO(__VA_ARGS__, u32_permute_xyz_xzy_zyw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 3, .par.move.dst = {0, 2, 1, 0, 0, 0}, .par.move.src = {2, 1, 3, 0, 0, 0}) \
739 MACRO(__VA_ARGS__, u32_permute_xyz_xtyz_wyzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0x7, .par.move.num_moves = 4, .par.move.dst = {0, -1, 1, 2, 0, 0}, .par.move.src = {3, 1, 2, -1, 0, 0}) \
740 MACRO(__VA_ARGS__, u32_permute_xyw_x_z , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xb, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {2, 0, 0, 0, 0, 0}) \
741 MACRO(__VA_ARGS__, u32_permute_xzw_x_y , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xd, .par.move.num_moves = 1, .par.move.dst = {0, 0, 0, 0, 0, 0}, .par.move.src = {1, 0, 0, 0, 0, 0}) \
742 MACRO(__VA_ARGS__, u32_permute_xzw_w_y , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xd, .par.move.num_moves = 1, .par.move.dst = {3, 0, 0, 0, 0, 0}, .par.move.src = {1, 0, 0, 0, 0, 0}) \
743 MACRO(__VA_ARGS__, u32_permute_xzw_wx_xy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xd, .par.move.num_moves = 2, .par.move.dst = {3, 0, 0, 0, 0, 0}, .par.move.src = {0, 1, 0, 0, 0, 0}) \
744 MACRO(__VA_ARGS__, u32_permute_yzw_y_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 1, .par.move.dst = {1, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
745 MACRO(__VA_ARGS__, u32_permute_yzw_z_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 1, .par.move.dst = {2, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
746 MACRO(__VA_ARGS__, u32_permute_yzw_w_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 1, .par.move.dst = {3, 0, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
747 MACRO(__VA_ARGS__, u32_permute_yzw_wy_yx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 2, .par.move.dst = {3, 1, 0, 0, 0, 0}, .par.move.src = {1, 0, 0, 0, 0, 0}) \
748 MACRO(__VA_ARGS__, u32_permute_yzw_wz_zx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 2, .par.move.dst = {3, 2, 0, 0, 0, 0}, .par.move.src = {2, 0, 0, 0, 0, 0}) \
749 MACRO(__VA_ARGS__, u32_permute_yzw_wyz_yzx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 3, .par.move.dst = {3, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, 0, 0, 0, 0}) \
750 MACRO(__VA_ARGS__, u32_permute_yzw_wzy_zyx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 3, .par.move.dst = {3, 2, 1, 0, 0, 0}, .par.move.src = {2, 1, 0, 0, 0, 0}) \
751 MACRO(__VA_ARGS__, u32_permute_yzw_wtyz_xyzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xe, .par.move.num_moves = 4, .par.move.dst = {3, -1, 1, 2, 0, 0}, .par.move.src = {0, 1, 2, -1, 0, 0}) \
752 MACRO(__VA_ARGS__, u32_permute_xyzw_txy_xyt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {-1, 0, 1, 0, 0, 0}, .par.move.src = {0, 1, -1, 0, 0, 0}) \
753 MACRO(__VA_ARGS__, u32_permute_xyzw_txz_xzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {-1, 0, 2, 0, 0, 0}, .par.move.src = {0, 2, -1, 0, 0, 0}) \
754 MACRO(__VA_ARGS__, u32_permute_xyzw_tyz_yzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {-1, 1, 2, 0, 0, 0}, .par.move.src = {1, 2, -1, 0, 0, 0}) \
755 MACRO(__VA_ARGS__, u32_permute_xyzw_tyw_ywt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {-1, 1, 3, 0, 0, 0}, .par.move.src = {1, 3, -1, 0, 0, 0}) \
756 MACRO(__VA_ARGS__, u32_permute_xyzw_txyz_xyzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 1, 2, 0, 0}, .par.move.src = {0, 1, 2, -1, 0, 0}) \
757 MACRO(__VA_ARGS__, u32_permute_xyzw_txzy_xzyt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 4, .par.move.dst = {-1, 0, 2, 1, 0, 0}, .par.move.src = {0, 2, 1, -1, 0, 0}) \
758 MACRO(__VA_ARGS__, u32_permute_xyzw_txyzw_xyzwt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 1, 2, 3, 0}, .par.move.src = {0, 1, 2, 3, -1, 0}) \
759 MACRO(__VA_ARGS__, u32_permute_xyzw_txwyz_xwyzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 3, 1, 2, 0}, .par.move.src = {0, 3, 1, 2, -1, 0}) \
760 MACRO(__VA_ARGS__, u32_permute_xyzw_txwzy_xwzyt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 5, .par.move.dst = {-1, 0, 3, 2, 1, 0}, .par.move.src = {0, 3, 2, 1, -1, 0}) \
761 MACRO(__VA_ARGS__, u32_permute_xyzw_txwtyz_xwtyzt , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PERMUTE , .mask = 0xf, .par.move.num_moves = 6, .par.move.dst = {-1, 0, 3, -1, 1, 2}, .par.move.src = {0, 3, -1, 1, 2, -1})
762#define SWS_FOR_U32_COPY(MACRO, ...) \
763 MACRO(__VA_ARGS__, u32_copy_yzw_yzw_xxx , SWS_PIXEL_U32, SWS_UOP_COPY , 0xe, 3, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
764 MACRO(__VA_ARGS__, u32_copy_xyzw_yz_xx , SWS_PIXEL_U32, SWS_UOP_COPY , 0xf, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
765 MACRO(__VA_ARGS__, u32_copy_xyzw_zwy_xyx , SWS_PIXEL_U32, SWS_UOP_COPY , 0xf, 3, 2, 3, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0)
766#define SWS_FOR_STRUCT_U32_COPY(MACRO, ...) \
767 MACRO(__VA_ARGS__, u32_copy_yzw_yzw_xxx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_COPY , .mask = 0xe, .par.move.num_moves = 3, .par.move.dst = {1, 2, 3, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
768 MACRO(__VA_ARGS__, u32_copy_xyzw_yz_xx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_COPY , .mask = 0xf, .par.move.num_moves = 2, .par.move.dst = {1, 2, 0, 0, 0, 0}, .par.move.src = {0, 0, 0, 0, 0, 0}) \
769 MACRO(__VA_ARGS__, u32_copy_xyzw_zwy_xyx , .type = SWS_PIXEL_U32, .uop = SWS_UOP_COPY , .mask = 0xf, .par.move.num_moves = 3, .par.move.dst = {2, 3, 1, 0, 0, 0}, .par.move.src = {0, 1, 0, 0, 0, 0})
770#define SWS_FOR_U32_SWAP_BYTES(MACRO, ...) \
771 MACRO(__VA_ARGS__, u32_swap_bytes_x , SWS_PIXEL_U32, SWS_UOP_SWAP_BYTES , 0x1) \
772 MACRO(__VA_ARGS__, u32_swap_bytes_xy , SWS_PIXEL_U32, SWS_UOP_SWAP_BYTES , 0x3) \
773 MACRO(__VA_ARGS__, u32_swap_bytes_xyz , SWS_PIXEL_U32, SWS_UOP_SWAP_BYTES , 0x7) \
774 MACRO(__VA_ARGS__, u32_swap_bytes_xw , SWS_PIXEL_U32, SWS_UOP_SWAP_BYTES , 0x9) \
775 MACRO(__VA_ARGS__, u32_swap_bytes_yzw , SWS_PIXEL_U32, SWS_UOP_SWAP_BYTES , 0xe) \
776 MACRO(__VA_ARGS__, u32_swap_bytes_xyzw , SWS_PIXEL_U32, SWS_UOP_SWAP_BYTES , 0xf)
777#define SWS_FOR_STRUCT_U32_SWAP_BYTES(MACRO, ...) \
778 MACRO(__VA_ARGS__, u32_swap_bytes_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x1) \
779 MACRO(__VA_ARGS__, u32_swap_bytes_xy , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x3) \
780 MACRO(__VA_ARGS__, u32_swap_bytes_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x7) \
781 MACRO(__VA_ARGS__, u32_swap_bytes_xw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SWAP_BYTES , .mask = 0x9) \
782 MACRO(__VA_ARGS__, u32_swap_bytes_yzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SWAP_BYTES , .mask = 0xe) \
783 MACRO(__VA_ARGS__, u32_swap_bytes_xyzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SWAP_BYTES , .mask = 0xf)
784#define SWS_FOR_U32_EXPAND_BIT(MACRO, ...)
785#define SWS_FOR_STRUCT_U32_EXPAND_BIT(MACRO, ...)
786#define SWS_FOR_U32_EXPAND_PAIR(MACRO, ...)
787#define SWS_FOR_STRUCT_U32_EXPAND_PAIR(MACRO, ...)
788#define SWS_FOR_U32_EXPAND_QUAD(MACRO, ...)
789#define SWS_FOR_STRUCT_U32_EXPAND_QUAD(MACRO, ...)
790#define SWS_FOR_U32_TO_U8(MACRO, ...)
791#define SWS_FOR_STRUCT_U32_TO_U8(MACRO, ...)
792#define SWS_FOR_U32_TO_U16(MACRO, ...) \
793 MACRO(__VA_ARGS__, u32_to_u16_y , SWS_PIXEL_U32, SWS_UOP_TO_U16 , 0x2) \
794 MACRO(__VA_ARGS__, u32_to_u16_z , SWS_PIXEL_U32, SWS_UOP_TO_U16 , 0x4) \
795 MACRO(__VA_ARGS__, u32_to_u16_xyz , SWS_PIXEL_U32, SWS_UOP_TO_U16 , 0x7) \
796 MACRO(__VA_ARGS__, u32_to_u16_yzw , SWS_PIXEL_U32, SWS_UOP_TO_U16 , 0xe)
797#define SWS_FOR_STRUCT_U32_TO_U16(MACRO, ...) \
798 MACRO(__VA_ARGS__, u32_to_u16_y , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_U16 , .mask = 0x2) \
799 MACRO(__VA_ARGS__, u32_to_u16_z , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_U16 , .mask = 0x4) \
800 MACRO(__VA_ARGS__, u32_to_u16_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_U16 , .mask = 0x7) \
801 MACRO(__VA_ARGS__, u32_to_u16_yzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_U16 , .mask = 0xe)
802#define SWS_FOR_U32_TO_U32(MACRO, ...)
803#define SWS_FOR_STRUCT_U32_TO_U32(MACRO, ...)
804#define SWS_FOR_U32_TO_F32(MACRO, ...) \
805 MACRO(__VA_ARGS__, u32_to_f32_y , SWS_PIXEL_U32, SWS_UOP_TO_F32 , 0x2) \
806 MACRO(__VA_ARGS__, u32_to_f32_z , SWS_PIXEL_U32, SWS_UOP_TO_F32 , 0x4) \
807 MACRO(__VA_ARGS__, u32_to_f32_xyz , SWS_PIXEL_U32, SWS_UOP_TO_F32 , 0x7) \
808 MACRO(__VA_ARGS__, u32_to_f32_yzw , SWS_PIXEL_U32, SWS_UOP_TO_F32 , 0xe)
809#define SWS_FOR_STRUCT_U32_TO_F32(MACRO, ...) \
810 MACRO(__VA_ARGS__, u32_to_f32_y , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_F32 , .mask = 0x2) \
811 MACRO(__VA_ARGS__, u32_to_f32_z , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_F32 , .mask = 0x4) \
812 MACRO(__VA_ARGS__, u32_to_f32_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_F32 , .mask = 0x7) \
813 MACRO(__VA_ARGS__, u32_to_f32_yzw , .type = SWS_PIXEL_U32, .uop = SWS_UOP_TO_F32 , .mask = 0xe)
814#define SWS_FOR_U32_SCALE(MACRO, ...) \
815 MACRO(__VA_ARGS__, u32_scale_x , SWS_PIXEL_U32, SWS_UOP_SCALE , 0x1) \
816 MACRO(__VA_ARGS__, u32_scale_xyz , SWS_PIXEL_U32, SWS_UOP_SCALE , 0x7)
817#define SWS_FOR_STRUCT_U32_SCALE(MACRO, ...) \
818 MACRO(__VA_ARGS__, u32_scale_x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SCALE , .mask = 0x1) \
819 MACRO(__VA_ARGS__, u32_scale_xyz , .type = SWS_PIXEL_U32, .uop = SWS_UOP_SCALE , .mask = 0x7)
820#define SWS_FOR_U32_ADD(MACRO, ...)
821#define SWS_FOR_STRUCT_U32_ADD(MACRO, ...)
822#define SWS_FOR_U32_MIN(MACRO, ...)
823#define SWS_FOR_STRUCT_U32_MIN(MACRO, ...)
824#define SWS_FOR_U32_MAX(MACRO, ...)
825#define SWS_FOR_STRUCT_U32_MAX(MACRO, ...)
826#define SWS_FOR_U32_UNPACK(MACRO, ...) \
827 MACRO(__VA_ARGS__, u32_unpack_y_aaa2 , SWS_PIXEL_U32, SWS_UOP_UNPACK , 0x2, 10, 10, 10, 2) \
828 MACRO(__VA_ARGS__, u32_unpack_z_2aaa , SWS_PIXEL_U32, SWS_UOP_UNPACK , 0x4, 2, 10, 10, 10) \
829 MACRO(__VA_ARGS__, u32_unpack_xyz_aaa2 , SWS_PIXEL_U32, SWS_UOP_UNPACK , 0x7, 10, 10, 10, 2) \
830 MACRO(__VA_ARGS__, u32_unpack_yzw_2aaa , SWS_PIXEL_U32, SWS_UOP_UNPACK , 0xe, 2, 10, 10, 10)
831#define SWS_FOR_STRUCT_U32_UNPACK(MACRO, ...) \
832 MACRO(__VA_ARGS__, u32_unpack_y_aaa2 , .type = SWS_PIXEL_U32, .uop = SWS_UOP_UNPACK , .mask = 0x2, .par.pack.pattern = {10, 10, 10, 2}) \
833 MACRO(__VA_ARGS__, u32_unpack_z_2aaa , .type = SWS_PIXEL_U32, .uop = SWS_UOP_UNPACK , .mask = 0x4, .par.pack.pattern = {2, 10, 10, 10}) \
834 MACRO(__VA_ARGS__, u32_unpack_xyz_aaa2 , .type = SWS_PIXEL_U32, .uop = SWS_UOP_UNPACK , .mask = 0x7, .par.pack.pattern = {10, 10, 10, 2}) \
835 MACRO(__VA_ARGS__, u32_unpack_yzw_2aaa , .type = SWS_PIXEL_U32, .uop = SWS_UOP_UNPACK , .mask = 0xe, .par.pack.pattern = {2, 10, 10, 10})
836#define SWS_FOR_U32_PACK(MACRO, ...) \
837 MACRO(__VA_ARGS__, u32_pack_xyzw_2aaa , SWS_PIXEL_U32, SWS_UOP_PACK , 0xf, 2, 10, 10, 10) \
838 MACRO(__VA_ARGS__, u32_pack_xyzw_aaa2 , SWS_PIXEL_U32, SWS_UOP_PACK , 0xf, 10, 10, 10, 2)
839#define SWS_FOR_STRUCT_U32_PACK(MACRO, ...) \
840 MACRO(__VA_ARGS__, u32_pack_xyzw_2aaa , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PACK , .mask = 0xf, .par.pack.pattern = {2, 10, 10, 10}) \
841 MACRO(__VA_ARGS__, u32_pack_xyzw_aaa2 , .type = SWS_PIXEL_U32, .uop = SWS_UOP_PACK , .mask = 0xf, .par.pack.pattern = {10, 10, 10, 2})
842#define SWS_FOR_U32_LSHIFT(MACRO, ...) \
843 MACRO(__VA_ARGS__, u32_lshift_xyz_2 , SWS_PIXEL_U32, SWS_UOP_LSHIFT , 0x7, 2)
844#define SWS_FOR_STRUCT_U32_LSHIFT(MACRO, ...) \
845 MACRO(__VA_ARGS__, u32_lshift_xyz_2 , .type = SWS_PIXEL_U32, .uop = SWS_UOP_LSHIFT , .mask = 0x7, .par.shift.amount = 2)
846#define SWS_FOR_U32_RSHIFT(MACRO, ...)
847#define SWS_FOR_STRUCT_U32_RSHIFT(MACRO, ...)
848#define SWS_FOR_U32_CLEAR(MACRO, ...) \
849 MACRO(__VA_ARGS__, u32_clear_x_x , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0x1, 0x00000, 0x00000) \
850 MACRO(__VA_ARGS__, u32_clear_y_x , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0x2, 0x00000, 0x00000) \
851 MACRO(__VA_ARGS__, u32_clear_xz_xx , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0x5, 0x00000, 0x00000) \
852 MACRO(__VA_ARGS__, u32_clear_w_x , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0x8, 0x00000, 0x00000) \
853 MACRO(__VA_ARGS__, u32_clear_yw_xx , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0xa, 0x00000, 0x00000) \
854 MACRO(__VA_ARGS__, u32_clear_xyw_xxx , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0xb, 0x00000, 0x00000) \
855 MACRO(__VA_ARGS__, u32_clear_xzw_xxx , SWS_PIXEL_U32, SWS_UOP_CLEAR , 0xd, 0x00000, 0x00000)
856#define SWS_FOR_STRUCT_U32_CLEAR(MACRO, ...) \
857 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) \
858 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) \
859 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) \
860 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) \
861 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) \
862 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) \
863 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)
864#define SWS_FOR_U32_LINEAR(MACRO, ...) \
865 MACRO(__VA_ARGS__, u32_linear_x_x000x , SWS_PIXEL_U32, SWS_UOP_LINEAR , 0x1, 0x00000, 0xfffee) \
866 MACRO(__VA_ARGS__, u32_linear_xyz_x000x_0x00x_00x0x , SWS_PIXEL_U32, SWS_UOP_LINEAR , 0x7, 0x00000, 0xfadae) \
867 MACRO(__VA_ARGS__, u32_linear_xyz_x0000_0x000_00x00 , SWS_PIXEL_U32, SWS_UOP_LINEAR , 0x7, 0x00000, 0xfefbe)
868#define SWS_FOR_STRUCT_U32_LINEAR(MACRO, ...) \
869 MACRO(__VA_ARGS__, u32_linear_x_x000x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_LINEAR , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xfffee) \
870 MACRO(__VA_ARGS__, u32_linear_xyz_x000x_0x00x_00x0x , .type = SWS_PIXEL_U32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfadae) \
871 MACRO(__VA_ARGS__, u32_linear_xyz_x0000_0x000_00x00 , .type = SWS_PIXEL_U32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfefbe)
872#define SWS_FOR_U32_LINEAR_FMA(MACRO, ...)
873#define SWS_FOR_STRUCT_U32_LINEAR_FMA(MACRO, ...)
874#define SWS_FOR_U32_DITHER(MACRO, ...)
875#define SWS_FOR_STRUCT_U32_DITHER(MACRO, ...)
876#define SWS_FOR_U32_LUT_3D(MACRO, ...)
877#define SWS_FOR_STRUCT_U32_LUT_3D(MACRO, ...)
878#define SWS_FOR_F32_READ_PLANAR(MACRO, ...)
879#define SWS_FOR_STRUCT_F32_READ_PLANAR(MACRO, ...)
880#define SWS_FOR_F32_READ_PLANAR_FH(MACRO, ...) \
881 MACRO(__VA_ARGS__, f32_read_planar_fh_x_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FH , 0x1, SWS_PIXEL_F32) \
882 MACRO(__VA_ARGS__, f32_read_planar_fh_xy_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FH , 0x3, SWS_PIXEL_F32) \
883 MACRO(__VA_ARGS__, f32_read_planar_fh_xyz_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FH , 0x7, SWS_PIXEL_F32) \
884 MACRO(__VA_ARGS__, f32_read_planar_fh_xyzw_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FH , 0xf, SWS_PIXEL_F32)
885#define SWS_FOR_STRUCT_F32_READ_PLANAR_FH(MACRO, ...) \
886 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) \
887 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) \
888 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) \
889 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)
890#define SWS_FOR_F32_READ_PLANAR_FV(MACRO, ...) \
891 MACRO(__VA_ARGS__, f32_read_planar_fv_x_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV , 0x1, SWS_PIXEL_F32) \
892 MACRO(__VA_ARGS__, f32_read_planar_fv_xy_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV , 0x3, SWS_PIXEL_F32) \
893 MACRO(__VA_ARGS__, f32_read_planar_fv_xyz_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV , 0x7, SWS_PIXEL_F32) \
894 MACRO(__VA_ARGS__, f32_read_planar_fv_xyzw_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV , 0xf, SWS_PIXEL_F32)
895#define SWS_FOR_STRUCT_F32_READ_PLANAR_FV(MACRO, ...) \
896 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) \
897 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) \
898 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) \
899 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)
900#define SWS_FOR_F32_READ_PLANAR_FV_FMA(MACRO, ...) \
901 MACRO(__VA_ARGS__, f32_read_planar_fv_fma_x_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV_FMA, 0x1, SWS_PIXEL_F32) \
902 MACRO(__VA_ARGS__, f32_read_planar_fv_fma_xy_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV_FMA, 0x3, SWS_PIXEL_F32) \
903 MACRO(__VA_ARGS__, f32_read_planar_fv_fma_xyz_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV_FMA, 0x7, SWS_PIXEL_F32) \
904 MACRO(__VA_ARGS__, f32_read_planar_fv_fma_xyzw_f32 , SWS_PIXEL_F32, SWS_UOP_READ_PLANAR_FV_FMA, 0xf, SWS_PIXEL_F32)
905#define SWS_FOR_STRUCT_F32_READ_PLANAR_FV_FMA(MACRO, ...) \
906 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) \
907 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) \
908 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) \
909 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)
910#define SWS_FOR_F32_READ_PACKED(MACRO, ...)
911#define SWS_FOR_STRUCT_F32_READ_PACKED(MACRO, ...)
912#define SWS_FOR_F32_READ_NIBBLE(MACRO, ...)
913#define SWS_FOR_STRUCT_F32_READ_NIBBLE(MACRO, ...)
914#define SWS_FOR_F32_READ_BIT(MACRO, ...)
915#define SWS_FOR_STRUCT_F32_READ_BIT(MACRO, ...)
916#define SWS_FOR_F32_READ_PALETTE(MACRO, ...)
917#define SWS_FOR_STRUCT_F32_READ_PALETTE(MACRO, ...)
918#define SWS_FOR_F32_WRITE_PLANAR(MACRO, ...)
919#define SWS_FOR_STRUCT_F32_WRITE_PLANAR(MACRO, ...)
920#define SWS_FOR_F32_WRITE_PACKED(MACRO, ...)
921#define SWS_FOR_STRUCT_F32_WRITE_PACKED(MACRO, ...)
922#define SWS_FOR_F32_WRITE_NIBBLE(MACRO, ...)
923#define SWS_FOR_STRUCT_F32_WRITE_NIBBLE(MACRO, ...)
924#define SWS_FOR_F32_WRITE_BIT(MACRO, ...)
925#define SWS_FOR_STRUCT_F32_WRITE_BIT(MACRO, ...)
926#define SWS_FOR_F32_RW_SHUFFLE(MACRO, ...)
927#define SWS_FOR_STRUCT_F32_RW_SHUFFLE(MACRO, ...)
928#define SWS_FOR_F32_PERMUTE(MACRO, ...)
929#define SWS_FOR_STRUCT_F32_PERMUTE(MACRO, ...)
930#define SWS_FOR_F32_COPY(MACRO, ...)
931#define SWS_FOR_STRUCT_F32_COPY(MACRO, ...)
932#define SWS_FOR_F32_SWAP_BYTES(MACRO, ...)
933#define SWS_FOR_STRUCT_F32_SWAP_BYTES(MACRO, ...)
934#define SWS_FOR_F32_EXPAND_BIT(MACRO, ...)
935#define SWS_FOR_STRUCT_F32_EXPAND_BIT(MACRO, ...)
936#define SWS_FOR_F32_EXPAND_PAIR(MACRO, ...)
937#define SWS_FOR_STRUCT_F32_EXPAND_PAIR(MACRO, ...)
938#define SWS_FOR_F32_EXPAND_QUAD(MACRO, ...)
939#define SWS_FOR_STRUCT_F32_EXPAND_QUAD(MACRO, ...)
940#define SWS_FOR_F32_TO_U8(MACRO, ...) \
941 MACRO(__VA_ARGS__, f32_to_u8_x , SWS_PIXEL_F32, SWS_UOP_TO_U8 , 0x1) \
942 MACRO(__VA_ARGS__, f32_to_u8_xy , SWS_PIXEL_F32, SWS_UOP_TO_U8 , 0x3) \
943 MACRO(__VA_ARGS__, f32_to_u8_xyz , SWS_PIXEL_F32, SWS_UOP_TO_U8 , 0x7) \
944 MACRO(__VA_ARGS__, f32_to_u8_xw , SWS_PIXEL_F32, SWS_UOP_TO_U8 , 0x9) \
945 MACRO(__VA_ARGS__, f32_to_u8_yzw , SWS_PIXEL_F32, SWS_UOP_TO_U8 , 0xe) \
946 MACRO(__VA_ARGS__, f32_to_u8_xyzw , SWS_PIXEL_F32, SWS_UOP_TO_U8 , 0xf)
947#define SWS_FOR_STRUCT_F32_TO_U8(MACRO, ...) \
948 MACRO(__VA_ARGS__, f32_to_u8_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U8 , .mask = 0x1) \
949 MACRO(__VA_ARGS__, f32_to_u8_xy , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U8 , .mask = 0x3) \
950 MACRO(__VA_ARGS__, f32_to_u8_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U8 , .mask = 0x7) \
951 MACRO(__VA_ARGS__, f32_to_u8_xw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U8 , .mask = 0x9) \
952 MACRO(__VA_ARGS__, f32_to_u8_yzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U8 , .mask = 0xe) \
953 MACRO(__VA_ARGS__, f32_to_u8_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U8 , .mask = 0xf)
954#define SWS_FOR_F32_TO_U16(MACRO, ...) \
955 MACRO(__VA_ARGS__, f32_to_u16_x , SWS_PIXEL_F32, SWS_UOP_TO_U16 , 0x1) \
956 MACRO(__VA_ARGS__, f32_to_u16_xy , SWS_PIXEL_F32, SWS_UOP_TO_U16 , 0x3) \
957 MACRO(__VA_ARGS__, f32_to_u16_xyz , SWS_PIXEL_F32, SWS_UOP_TO_U16 , 0x7) \
958 MACRO(__VA_ARGS__, f32_to_u16_xw , SWS_PIXEL_F32, SWS_UOP_TO_U16 , 0x9) \
959 MACRO(__VA_ARGS__, f32_to_u16_yzw , SWS_PIXEL_F32, SWS_UOP_TO_U16 , 0xe) \
960 MACRO(__VA_ARGS__, f32_to_u16_xyzw , SWS_PIXEL_F32, SWS_UOP_TO_U16 , 0xf)
961#define SWS_FOR_STRUCT_F32_TO_U16(MACRO, ...) \
962 MACRO(__VA_ARGS__, f32_to_u16_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U16 , .mask = 0x1) \
963 MACRO(__VA_ARGS__, f32_to_u16_xy , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U16 , .mask = 0x3) \
964 MACRO(__VA_ARGS__, f32_to_u16_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U16 , .mask = 0x7) \
965 MACRO(__VA_ARGS__, f32_to_u16_xw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U16 , .mask = 0x9) \
966 MACRO(__VA_ARGS__, f32_to_u16_yzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U16 , .mask = 0xe) \
967 MACRO(__VA_ARGS__, f32_to_u16_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U16 , .mask = 0xf)
968#define SWS_FOR_F32_TO_U32(MACRO, ...) \
969 MACRO(__VA_ARGS__, f32_to_u32_x , SWS_PIXEL_F32, SWS_UOP_TO_U32 , 0x1) \
970 MACRO(__VA_ARGS__, f32_to_u32_xyz , SWS_PIXEL_F32, SWS_UOP_TO_U32 , 0x7) \
971 MACRO(__VA_ARGS__, f32_to_u32_xw , SWS_PIXEL_F32, SWS_UOP_TO_U32 , 0x9) \
972 MACRO(__VA_ARGS__, f32_to_u32_yzw , SWS_PIXEL_F32, SWS_UOP_TO_U32 , 0xe) \
973 MACRO(__VA_ARGS__, f32_to_u32_xyzw , SWS_PIXEL_F32, SWS_UOP_TO_U32 , 0xf)
974#define SWS_FOR_STRUCT_F32_TO_U32(MACRO, ...) \
975 MACRO(__VA_ARGS__, f32_to_u32_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U32 , .mask = 0x1) \
976 MACRO(__VA_ARGS__, f32_to_u32_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U32 , .mask = 0x7) \
977 MACRO(__VA_ARGS__, f32_to_u32_xw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U32 , .mask = 0x9) \
978 MACRO(__VA_ARGS__, f32_to_u32_yzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U32 , .mask = 0xe) \
979 MACRO(__VA_ARGS__, f32_to_u32_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_TO_U32 , .mask = 0xf)
980#define SWS_FOR_F32_TO_F32(MACRO, ...)
981#define SWS_FOR_STRUCT_F32_TO_F32(MACRO, ...)
982#define SWS_FOR_F32_SCALE(MACRO, ...) \
983 MACRO(__VA_ARGS__, f32_scale_x , SWS_PIXEL_F32, SWS_UOP_SCALE , 0x1) \
984 MACRO(__VA_ARGS__, f32_scale_xy , SWS_PIXEL_F32, SWS_UOP_SCALE , 0x3) \
985 MACRO(__VA_ARGS__, f32_scale_xyz , SWS_PIXEL_F32, SWS_UOP_SCALE , 0x7) \
986 MACRO(__VA_ARGS__, f32_scale_yzw , SWS_PIXEL_F32, SWS_UOP_SCALE , 0xe) \
987 MACRO(__VA_ARGS__, f32_scale_xyzw , SWS_PIXEL_F32, SWS_UOP_SCALE , 0xf)
988#define SWS_FOR_STRUCT_F32_SCALE(MACRO, ...) \
989 MACRO(__VA_ARGS__, f32_scale_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_SCALE , .mask = 0x1) \
990 MACRO(__VA_ARGS__, f32_scale_xy , .type = SWS_PIXEL_F32, .uop = SWS_UOP_SCALE , .mask = 0x3) \
991 MACRO(__VA_ARGS__, f32_scale_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_SCALE , .mask = 0x7) \
992 MACRO(__VA_ARGS__, f32_scale_yzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_SCALE , .mask = 0xe) \
993 MACRO(__VA_ARGS__, f32_scale_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_SCALE , .mask = 0xf)
994#define SWS_FOR_F32_ADD(MACRO, ...) \
995 MACRO(__VA_ARGS__, f32_add_x , SWS_PIXEL_F32, SWS_UOP_ADD , 0x1) \
996 MACRO(__VA_ARGS__, f32_add_xy , SWS_PIXEL_F32, SWS_UOP_ADD , 0x3) \
997 MACRO(__VA_ARGS__, f32_add_xz , SWS_PIXEL_F32, SWS_UOP_ADD , 0x5) \
998 MACRO(__VA_ARGS__, f32_add_xyz , SWS_PIXEL_F32, SWS_UOP_ADD , 0x7) \
999 MACRO(__VA_ARGS__, f32_add_w , SWS_PIXEL_F32, SWS_UOP_ADD , 0x8) \
1000 MACRO(__VA_ARGS__, f32_add_xw , SWS_PIXEL_F32, SWS_UOP_ADD , 0x9) \
1001 MACRO(__VA_ARGS__, f32_add_yzw , SWS_PIXEL_F32, SWS_UOP_ADD , 0xe) \
1002 MACRO(__VA_ARGS__, f32_add_xyzw , SWS_PIXEL_F32, SWS_UOP_ADD , 0xf)
1003#define SWS_FOR_STRUCT_F32_ADD(MACRO, ...) \
1004 MACRO(__VA_ARGS__, f32_add_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0x1) \
1005 MACRO(__VA_ARGS__, f32_add_xy , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0x3) \
1006 MACRO(__VA_ARGS__, f32_add_xz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0x5) \
1007 MACRO(__VA_ARGS__, f32_add_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0x7) \
1008 MACRO(__VA_ARGS__, f32_add_w , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0x8) \
1009 MACRO(__VA_ARGS__, f32_add_xw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0x9) \
1010 MACRO(__VA_ARGS__, f32_add_yzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0xe) \
1011 MACRO(__VA_ARGS__, f32_add_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_ADD , .mask = 0xf)
1012#define SWS_FOR_F32_MIN(MACRO, ...) \
1013 MACRO(__VA_ARGS__, f32_min_x , SWS_PIXEL_F32, SWS_UOP_MIN , 0x1) \
1014 MACRO(__VA_ARGS__, f32_min_y , SWS_PIXEL_F32, SWS_UOP_MIN , 0x2) \
1015 MACRO(__VA_ARGS__, f32_min_xy , SWS_PIXEL_F32, SWS_UOP_MIN , 0x3) \
1016 MACRO(__VA_ARGS__, f32_min_z , SWS_PIXEL_F32, SWS_UOP_MIN , 0x4) \
1017 MACRO(__VA_ARGS__, f32_min_xz , SWS_PIXEL_F32, SWS_UOP_MIN , 0x5) \
1018 MACRO(__VA_ARGS__, f32_min_xyz , SWS_PIXEL_F32, SWS_UOP_MIN , 0x7) \
1019 MACRO(__VA_ARGS__, f32_min_w , SWS_PIXEL_F32, SWS_UOP_MIN , 0x8) \
1020 MACRO(__VA_ARGS__, f32_min_xw , SWS_PIXEL_F32, SWS_UOP_MIN , 0x9) \
1021 MACRO(__VA_ARGS__, f32_min_yzw , SWS_PIXEL_F32, SWS_UOP_MIN , 0xe) \
1022 MACRO(__VA_ARGS__, f32_min_xyzw , SWS_PIXEL_F32, SWS_UOP_MIN , 0xf)
1023#define SWS_FOR_STRUCT_F32_MIN(MACRO, ...) \
1024 MACRO(__VA_ARGS__, f32_min_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0x1) \
1025 MACRO(__VA_ARGS__, f32_min_y , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0x2) \
1026 MACRO(__VA_ARGS__, f32_min_xy , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0x3) \
1027 MACRO(__VA_ARGS__, f32_min_z , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0x4) \
1028 MACRO(__VA_ARGS__, f32_min_xz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0x5) \
1029 MACRO(__VA_ARGS__, f32_min_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0x7) \
1030 MACRO(__VA_ARGS__, f32_min_w , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0x8) \
1031 MACRO(__VA_ARGS__, f32_min_xw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0x9) \
1032 MACRO(__VA_ARGS__, f32_min_yzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0xe) \
1033 MACRO(__VA_ARGS__, f32_min_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MIN , .mask = 0xf)
1034#define SWS_FOR_F32_MAX(MACRO, ...) \
1035 MACRO(__VA_ARGS__, f32_max_x , SWS_PIXEL_F32, SWS_UOP_MAX , 0x1) \
1036 MACRO(__VA_ARGS__, f32_max_xy , SWS_PIXEL_F32, SWS_UOP_MAX , 0x3) \
1037 MACRO(__VA_ARGS__, f32_max_xyz , SWS_PIXEL_F32, SWS_UOP_MAX , 0x7) \
1038 MACRO(__VA_ARGS__, f32_max_w , SWS_PIXEL_F32, SWS_UOP_MAX , 0x8) \
1039 MACRO(__VA_ARGS__, f32_max_xw , SWS_PIXEL_F32, SWS_UOP_MAX , 0x9) \
1040 MACRO(__VA_ARGS__, f32_max_xyzw , SWS_PIXEL_F32, SWS_UOP_MAX , 0xf)
1041#define SWS_FOR_STRUCT_F32_MAX(MACRO, ...) \
1042 MACRO(__VA_ARGS__, f32_max_x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MAX , .mask = 0x1) \
1043 MACRO(__VA_ARGS__, f32_max_xy , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MAX , .mask = 0x3) \
1044 MACRO(__VA_ARGS__, f32_max_xyz , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MAX , .mask = 0x7) \
1045 MACRO(__VA_ARGS__, f32_max_w , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MAX , .mask = 0x8) \
1046 MACRO(__VA_ARGS__, f32_max_xw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MAX , .mask = 0x9) \
1047 MACRO(__VA_ARGS__, f32_max_xyzw , .type = SWS_PIXEL_F32, .uop = SWS_UOP_MAX , .mask = 0xf)
1048#define SWS_FOR_F32_UNPACK(MACRO, ...)
1049#define SWS_FOR_STRUCT_F32_UNPACK(MACRO, ...)
1050#define SWS_FOR_F32_PACK(MACRO, ...)
1051#define SWS_FOR_STRUCT_F32_PACK(MACRO, ...)
1052#define SWS_FOR_F32_LSHIFT(MACRO, ...)
1053#define SWS_FOR_STRUCT_F32_LSHIFT(MACRO, ...)
1054#define SWS_FOR_F32_RSHIFT(MACRO, ...)
1055#define SWS_FOR_STRUCT_F32_RSHIFT(MACRO, ...)
1056#define SWS_FOR_F32_CLEAR(MACRO, ...)
1057#define SWS_FOR_STRUCT_F32_CLEAR(MACRO, ...)
1058#define SWS_FOR_F32_LINEAR(MACRO, ...) \
1059 MACRO(__VA_ARGS__, f32_linear_x_xxx0x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x1, 0x00000, 0xfffe8) \
1060 MACRO(__VA_ARGS__, f32_linear_x_x000x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x1, 0x00000, 0xfffee) \
1061 MACRO(__VA_ARGS__, f32_linear_x_xxx00 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x1, 0x00000, 0xffff8) \
1062 MACRO(__VA_ARGS__, f32_linear_y_0x000 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x2, 0x00000, 0xfffbf) \
1063 MACRO(__VA_ARGS__, f32_linear_xyz_xxx0x_xxx0x_xxx0x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x00000, 0xfa108) \
1064 MACRO(__VA_ARGS__, f32_linear_xyz_x0x0x_xxx0x_xx00x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x00000, 0xfb10a) \
1065 MACRO(__VA_ARGS__, f32_linear_xyz_xxx00_xxx0x_xxx0x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x00000, 0xfa118) \
1066 MACRO(__VA_ARGS__, f32_linear_xyz_x000x_0x00x_00x0x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x00000, 0xfadae) \
1067 MACRO(__VA_ARGS__, f32_linear_xyz_x0000_0x000_00x00 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x00000, 0xfefbe) \
1068 MACRO(__VA_ARGS__, f32_linear_xyz_10x0x_1xx0x_1x00x , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x7, 0x00421, 0xfb10a) \
1069 MACRO(__VA_ARGS__, f32_linear_w_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x8, 0x00000, 0xbffff) \
1070 MACRO(__VA_ARGS__, f32_linear_xw_x000x_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x9, 0x00000, 0xbffee) \
1071 MACRO(__VA_ARGS__, f32_linear_xw_xxx00_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0x9, 0x00000, 0xbfff8) \
1072 MACRO(__VA_ARGS__, f32_linear_xyzw_xxx0x_xxx0x_xxx0x_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0xf, 0x00000, 0xba108) \
1073 MACRO(__VA_ARGS__, f32_linear_xyzw_x0x0x_xxx0x_xx00x_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0xf, 0x00000, 0xbb10a) \
1074 MACRO(__VA_ARGS__, f32_linear_xyzw_x0000_0x000_00x00_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR , 0xf, 0x00000, 0xbefbe)
1075#define SWS_FOR_STRUCT_F32_LINEAR(MACRO, ...) \
1076 MACRO(__VA_ARGS__, f32_linear_x_xxx0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xfffe8) \
1077 MACRO(__VA_ARGS__, f32_linear_x_x000x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xfffee) \
1078 MACRO(__VA_ARGS__, f32_linear_x_xxx00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xffff8) \
1079 MACRO(__VA_ARGS__, f32_linear_y_0x000 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x2, .par.lin.one = 0x0, .par.lin.zero = 0xfffbf) \
1080 MACRO(__VA_ARGS__, f32_linear_xyz_xxx0x_xxx0x_xxx0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfa108) \
1081 MACRO(__VA_ARGS__, f32_linear_xyz_x0x0x_xxx0x_xx00x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfb10a) \
1082 MACRO(__VA_ARGS__, f32_linear_xyz_xxx00_xxx0x_xxx0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfa118) \
1083 MACRO(__VA_ARGS__, f32_linear_xyz_x000x_0x00x_00x0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfadae) \
1084 MACRO(__VA_ARGS__, f32_linear_xyz_x0000_0x000_00x00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfefbe) \
1085 MACRO(__VA_ARGS__, f32_linear_xyz_10x0x_1xx0x_1x00x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x7, .par.lin.one = 0x421, .par.lin.zero = 0xfb10a) \
1086 MACRO(__VA_ARGS__, f32_linear_w_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x8, .par.lin.one = 0x0, .par.lin.zero = 0xbffff) \
1087 MACRO(__VA_ARGS__, f32_linear_xw_x000x_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x9, .par.lin.one = 0x0, .par.lin.zero = 0xbffee) \
1088 MACRO(__VA_ARGS__, f32_linear_xw_xxx00_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR , .mask = 0x9, .par.lin.one = 0x0, .par.lin.zero = 0xbfff8) \
1089 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) \
1090 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) \
1091 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)
1092#define SWS_FOR_F32_LINEAR_FMA(MACRO, ...) \
1093 MACRO(__VA_ARGS__, f32_linear_fma_x_xxx0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x00000, 0xfffe8, 0xfffe8) \
1094 MACRO(__VA_ARGS__, f32_linear_fma_x_XXX0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x00000, 0xfffe8, 0xfffef) \
1095 MACRO(__VA_ARGS__, f32_linear_fma_x_x000x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x00000, 0xfffee, 0xfffee) \
1096 MACRO(__VA_ARGS__, f32_linear_fma_x_X000x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x00000, 0xfffee, 0xfffef) \
1097 MACRO(__VA_ARGS__, f32_linear_fma_x_xxx00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x00000, 0xffff8, 0xffff8) \
1098 MACRO(__VA_ARGS__, f32_linear_fma_x_xXx00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x00000, 0xffff8, 0xffffa) \
1099 MACRO(__VA_ARGS__, f32_linear_fma_x_xxX00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x00000, 0xffff8, 0xffffc) \
1100 MACRO(__VA_ARGS__, f32_linear_fma_x_xXX00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x1, 0x00000, 0xffff8, 0xffffe) \
1101 MACRO(__VA_ARGS__, f32_linear_fma_y_0x000 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x2, 0x00000, 0xfffbf, 0xfffbf) \
1102 MACRO(__VA_ARGS__, f32_linear_fma_xyz_xxx0x_xxx0x_xxx0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x00000, 0xfa108, 0xfa108) \
1103 MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXX0x_XxX0x_XXX0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x00000, 0xfa108, 0xfbdaf) \
1104 MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXX0x_XXX0x_XXX0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x00000, 0xfa108, 0xfbdef) \
1105 MACRO(__VA_ARGS__, f32_linear_fma_xyz_X0X0x_XXX0x_XX00x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x00000, 0xfb10a, 0xfbdef) \
1106 MACRO(__VA_ARGS__, f32_linear_fma_xyz_xxx00_xxx0x_xxx0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x00000, 0xfa118, 0xfa118) \
1107 MACRO(__VA_ARGS__, f32_linear_fma_xyz_xXX00_XxX0x_XXX0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x00000, 0xfa118, 0xfbdbe) \
1108 MACRO(__VA_ARGS__, f32_linear_fma_xyz_xXX00_XXX0x_XXX0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x00000, 0xfa118, 0xfbdfe) \
1109 MACRO(__VA_ARGS__, f32_linear_fma_xyz_X000x_0X00x_00X0x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x00000, 0xfadae, 0xfbdef) \
1110 MACRO(__VA_ARGS__, f32_linear_fma_xyz_x0000_0x000_00x00 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x00000, 0xfefbe, 0xfefbe) \
1111 MACRO(__VA_ARGS__, f32_linear_fma_xyz_10X0x_1XX0x_1X00x , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x7, 0x00421, 0xfb10a, 0xfbdef) \
1112 MACRO(__VA_ARGS__, f32_linear_fma_w_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x8, 0x00000, 0xbffff, 0xbffff) \
1113 MACRO(__VA_ARGS__, f32_linear_fma_xw_x000x_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x9, 0x00000, 0xbffee, 0xbffee) \
1114 MACRO(__VA_ARGS__, f32_linear_fma_xw_X000x_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x9, 0x00000, 0xbffee, 0xbffef) \
1115 MACRO(__VA_ARGS__, f32_linear_fma_xw_xxx00_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x9, 0x00000, 0xbfff8, 0xbfff8) \
1116 MACRO(__VA_ARGS__, f32_linear_fma_xw_xXX00_000x0 , SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0x9, 0x00000, 0xbfff8, 0xbfffe) \
1117 MACRO(__VA_ARGS__, f32_linear_fma_xyzw_xxx0x_xxx0x_xxx0x_000x0, SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0xf, 0x00000, 0xba108, 0xba108) \
1118 MACRO(__VA_ARGS__, f32_linear_fma_xyzw_XXX0x_XXX0x_XXX0x_000x0, SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0xf, 0x00000, 0xba108, 0xbbdef) \
1119 MACRO(__VA_ARGS__, f32_linear_fma_xyzw_X0X0x_XXX0x_XX00x_000x0, SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0xf, 0x00000, 0xbb10a, 0xbbdef) \
1120 MACRO(__VA_ARGS__, f32_linear_fma_xyzw_x0000_0x000_00x00_000x0, SWS_PIXEL_F32, SWS_UOP_LINEAR_FMA , 0xf, 0x00000, 0xbefbe, 0xbefbe)
1121#define SWS_FOR_STRUCT_F32_LINEAR_FMA(MACRO, ...) \
1122 MACRO(__VA_ARGS__, f32_linear_fma_x_xxx0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xfffe8, .par.lin.exact = 0xfffe8) \
1123 MACRO(__VA_ARGS__, f32_linear_fma_x_XXX0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xfffe8, .par.lin.exact = 0xfffef) \
1124 MACRO(__VA_ARGS__, f32_linear_fma_x_x000x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xfffee, .par.lin.exact = 0xfffee) \
1125 MACRO(__VA_ARGS__, f32_linear_fma_x_X000x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xfffee, .par.lin.exact = 0xfffef) \
1126 MACRO(__VA_ARGS__, f32_linear_fma_x_xxx00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xffff8, .par.lin.exact = 0xffff8) \
1127 MACRO(__VA_ARGS__, f32_linear_fma_x_xXx00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xffff8, .par.lin.exact = 0xffffa) \
1128 MACRO(__VA_ARGS__, f32_linear_fma_x_xxX00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xffff8, .par.lin.exact = 0xffffc) \
1129 MACRO(__VA_ARGS__, f32_linear_fma_x_xXX00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x1, .par.lin.one = 0x0, .par.lin.zero = 0xffff8, .par.lin.exact = 0xffffe) \
1130 MACRO(__VA_ARGS__, f32_linear_fma_y_0x000 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x2, .par.lin.one = 0x0, .par.lin.zero = 0xfffbf, .par.lin.exact = 0xfffbf) \
1131 MACRO(__VA_ARGS__, f32_linear_fma_xyz_xxx0x_xxx0x_xxx0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfa108, .par.lin.exact = 0xfa108) \
1132 MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXX0x_XxX0x_XXX0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfa108, .par.lin.exact = 0xfbdaf) \
1133 MACRO(__VA_ARGS__, f32_linear_fma_xyz_XXX0x_XXX0x_XXX0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfa108, .par.lin.exact = 0xfbdef) \
1134 MACRO(__VA_ARGS__, f32_linear_fma_xyz_X0X0x_XXX0x_XX00x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfb10a, .par.lin.exact = 0xfbdef) \
1135 MACRO(__VA_ARGS__, f32_linear_fma_xyz_xxx00_xxx0x_xxx0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfa118, .par.lin.exact = 0xfa118) \
1136 MACRO(__VA_ARGS__, f32_linear_fma_xyz_xXX00_XxX0x_XXX0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfa118, .par.lin.exact = 0xfbdbe) \
1137 MACRO(__VA_ARGS__, f32_linear_fma_xyz_xXX00_XXX0x_XXX0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfa118, .par.lin.exact = 0xfbdfe) \
1138 MACRO(__VA_ARGS__, f32_linear_fma_xyz_X000x_0X00x_00X0x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfadae, .par.lin.exact = 0xfbdef) \
1139 MACRO(__VA_ARGS__, f32_linear_fma_xyz_x0000_0x000_00x00 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x0, .par.lin.zero = 0xfefbe, .par.lin.exact = 0xfefbe) \
1140 MACRO(__VA_ARGS__, f32_linear_fma_xyz_10X0x_1XX0x_1X00x , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x7, .par.lin.one = 0x421, .par.lin.zero = 0xfb10a, .par.lin.exact = 0xfbdef) \
1141 MACRO(__VA_ARGS__, f32_linear_fma_w_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x8, .par.lin.one = 0x0, .par.lin.zero = 0xbffff, .par.lin.exact = 0xbffff) \
1142 MACRO(__VA_ARGS__, f32_linear_fma_xw_x000x_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x9, .par.lin.one = 0x0, .par.lin.zero = 0xbffee, .par.lin.exact = 0xbffee) \
1143 MACRO(__VA_ARGS__, f32_linear_fma_xw_X000x_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x9, .par.lin.one = 0x0, .par.lin.zero = 0xbffee, .par.lin.exact = 0xbffef) \
1144 MACRO(__VA_ARGS__, f32_linear_fma_xw_xxx00_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x9, .par.lin.one = 0x0, .par.lin.zero = 0xbfff8, .par.lin.exact = 0xbfff8) \
1145 MACRO(__VA_ARGS__, f32_linear_fma_xw_xXX00_000x0 , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LINEAR_FMA , .mask = 0x9, .par.lin.one = 0x0, .par.lin.zero = 0xbfff8, .par.lin.exact = 0xbfffe) \
1146 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) \
1147 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 = 0xbbdef) \
1148 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 = 0xbbdef) \
1149 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 = 0xbefbe)
1150#define SWS_FOR_F32_DITHER(MACRO, ...) \
1151 MACRO(__VA_ARGS__, f32_dither_x_0_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x1, 0, 0, 0, 0, 4) \
1152 MACRO(__VA_ARGS__, f32_dither_y_3_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x2, 0, 3, 0, 0, 4) \
1153 MACRO(__VA_ARGS__, f32_dither_xy_0_3_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x3, 0, 3, 0, 0, 4) \
1154 MACRO(__VA_ARGS__, f32_dither_z_2_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x4, 0, 0, 2, 0, 4) \
1155 MACRO(__VA_ARGS__, f32_dither_xz_0_2_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x5, 0, 0, 2, 0, 4) \
1156 MACRO(__VA_ARGS__, f32_dither_xyz_0_0_0_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x7, 0, 0, 0, 0, 4) \
1157 MACRO(__VA_ARGS__, f32_dither_xyz_0_3_2_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x7, 0, 3, 2, 0, 4) \
1158 MACRO(__VA_ARGS__, f32_dither_xyz_2_0_3_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x7, 2, 0, 3, 0, 4) \
1159 MACRO(__VA_ARGS__, f32_dither_xyz_2_3_0_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x7, 2, 3, 0, 0, 4) \
1160 MACRO(__VA_ARGS__, f32_dither_xyz_3_0_2_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x7, 3, 0, 2, 0, 4) \
1161 MACRO(__VA_ARGS__, f32_dither_xyz_3_2_0_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x7, 3, 2, 0, 0, 4) \
1162 MACRO(__VA_ARGS__, f32_dither_w_5_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x8, 0, 0, 0, 5, 4) \
1163 MACRO(__VA_ARGS__, f32_dither_xw_0_3_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x9, 0, 0, 0, 3, 4) \
1164 MACRO(__VA_ARGS__, f32_dither_xw_0_5_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0x9, 0, 0, 0, 5, 4) \
1165 MACRO(__VA_ARGS__, f32_dither_yzw_0_3_2_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xe, 0, 0, 3, 2, 4) \
1166 MACRO(__VA_ARGS__, f32_dither_yzw_2_0_3_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xe, 0, 2, 0, 3, 4) \
1167 MACRO(__VA_ARGS__, f32_dither_yzw_2_3_0_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xe, 0, 2, 3, 0, 4) \
1168 MACRO(__VA_ARGS__, f32_dither_xyzw_0_0_0_3_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 0, 0, 0, 3, 4) \
1169 MACRO(__VA_ARGS__, f32_dither_xyzw_0_3_2_5_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 0, 3, 2, 5, 4) \
1170 MACRO(__VA_ARGS__, f32_dither_xyzw_2_3_0_5_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 2, 3, 0, 5, 4) \
1171 MACRO(__VA_ARGS__, f32_dither_xyzw_3_0_2_5_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 3, 0, 2, 5, 4) \
1172 MACRO(__VA_ARGS__, f32_dither_xyzw_3_2_0_5_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 3, 2, 0, 5, 4) \
1173 MACRO(__VA_ARGS__, f32_dither_xyzw_5_0_3_2_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 5, 0, 3, 2, 4) \
1174 MACRO(__VA_ARGS__, f32_dither_xyzw_5_2_3_0_16x16 , SWS_PIXEL_F32, SWS_UOP_DITHER , 0xf, 5, 2, 3, 0, 4)
1175#define SWS_FOR_STRUCT_F32_DITHER(MACRO, ...) \
1176 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 }) \
1177 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 }) \
1178 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 }) \
1179 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 }) \
1180 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 }) \
1181 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 }) \
1182 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 }) \
1183 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 }) \
1184 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 }) \
1185 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 }) \
1186 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 }) \
1187 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 }) \
1188 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 }) \
1189 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 }) \
1190 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 }) \
1191 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 }) \
1192 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 }) \
1193 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 }) \
1194 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 }) \
1195 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 }) \
1196 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 }) \
1197 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 }) \
1198 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 }) \
1199 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 })
1200#define SWS_FOR_F32_LUT_3D(MACRO, ...) \
1201 MACRO(__VA_ARGS__, f32_lut_3d_xyz_static , SWS_PIXEL_F32, SWS_UOP_LUT_3D , 0x7, 0) \
1202 MACRO(__VA_ARGS__, f32_lut_3d_xyz_dynamic , SWS_PIXEL_F32, SWS_UOP_LUT_3D , 0x7, 1) \
1203 MACRO(__VA_ARGS__, f32_lut_3d_xyzw_static , SWS_PIXEL_F32, SWS_UOP_LUT_3D , 0xf, 0) \
1204 MACRO(__VA_ARGS__, f32_lut_3d_xyzw_dynamic , SWS_PIXEL_F32, SWS_UOP_LUT_3D , 0xf, 1)
1205#define SWS_FOR_STRUCT_F32_LUT_3D(MACRO, ...) \
1206 MACRO(__VA_ARGS__, f32_lut_3d_xyz_static , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LUT_3D , .mask = 0x7, .par.lut3d.dynamic = 0) \
1207 MACRO(__VA_ARGS__, f32_lut_3d_xyz_dynamic , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LUT_3D , .mask = 0x7, .par.lut3d.dynamic = 1) \
1208 MACRO(__VA_ARGS__, f32_lut_3d_xyzw_static , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LUT_3D , .mask = 0xf, .par.lut3d.dynamic = 0) \
1209 MACRO(__VA_ARGS__, f32_lut_3d_xyzw_dynamic , .type = SWS_PIXEL_F32, .uop = SWS_UOP_LUT_3D , .mask = 0xf, .par.lut3d.dynamic = 1)
1210
1211#endif /* SWSCALE_UOPS_MACROS_H */