SkJumper_generated_win.S revision 097d0939e319493765074025d2d34c4179662f7b
1; Copyright 2017 Google Inc.
2;
3; Use of this source code is governed by a BSD-style license that can be
4; found in the LICENSE file.
5
6; This file is generated semi-automatically with this command:
7;   $ src/jumper/build_stages.py
8
9IFDEF RAX
10_text SEGMENT
11
12PUBLIC _sk_start_pipeline_hsw
13_sk_start_pipeline_hsw LABEL PROC
14  DB  65,87                               ; push          %r15
15  DB  65,86                               ; push          %r14
16  DB  65,85                               ; push          %r13
17  DB  65,84                               ; push          %r12
18  DB  86                                  ; push          %rsi
19  DB  87                                  ; push          %rdi
20  DB  83                                  ; push          %rbx
21  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
22  DB  197,120,41,188,36,144,0,0,0         ; vmovaps       %xmm15,0x90(%rsp)
23  DB  197,120,41,180,36,128,0,0,0         ; vmovaps       %xmm14,0x80(%rsp)
24  DB  197,120,41,108,36,112               ; vmovaps       %xmm13,0x70(%rsp)
25  DB  197,120,41,100,36,96                ; vmovaps       %xmm12,0x60(%rsp)
26  DB  197,120,41,92,36,80                 ; vmovaps       %xmm11,0x50(%rsp)
27  DB  197,120,41,84,36,64                 ; vmovaps       %xmm10,0x40(%rsp)
28  DB  197,120,41,76,36,48                 ; vmovaps       %xmm9,0x30(%rsp)
29  DB  197,120,41,68,36,32                 ; vmovaps       %xmm8,0x20(%rsp)
30  DB  197,248,41,124,36,16                ; vmovaps       %xmm7,0x10(%rsp)
31  DB  197,248,41,52,36                    ; vmovaps       %xmm6,(%rsp)
32  DB  77,137,205                          ; mov           %r9,%r13
33  DB  77,137,198                          ; mov           %r8,%r14
34  DB  72,137,203                          ; mov           %rcx,%rbx
35  DB  72,137,214                          ; mov           %rdx,%rsi
36  DB  72,173                              ; lods          %ds:(%rsi),%rax
37  DB  73,137,199                          ; mov           %rax,%r15
38  DB  73,137,244                          ; mov           %rsi,%r12
39  DB  72,141,67,8                         ; lea           0x8(%rbx),%rax
40  DB  76,57,232                           ; cmp           %r13,%rax
41  DB  118,5                               ; jbe           75 <_sk_start_pipeline_hsw+0x75>
42  DB  72,137,223                          ; mov           %rbx,%rdi
43  DB  235,65                              ; jmp           b6 <_sk_start_pipeline_hsw+0xb6>
44  DB  185,0,0,0,0                         ; mov           $0x0,%ecx
45  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
46  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
47  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
48  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
49  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
50  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
51  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
52  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
53  DB  72,137,223                          ; mov           %rbx,%rdi
54  DB  76,137,230                          ; mov           %r12,%rsi
55  DB  76,137,242                          ; mov           %r14,%rdx
56  DB  65,255,215                          ; callq         *%r15
57  DB  72,141,123,8                        ; lea           0x8(%rbx),%rdi
58  DB  72,131,195,16                       ; add           $0x10,%rbx
59  DB  76,57,235                           ; cmp           %r13,%rbx
60  DB  72,137,251                          ; mov           %rdi,%rbx
61  DB  118,191                             ; jbe           75 <_sk_start_pipeline_hsw+0x75>
62  DB  76,137,233                          ; mov           %r13,%rcx
63  DB  72,41,249                           ; sub           %rdi,%rcx
64  DB  116,41                              ; je            e7 <_sk_start_pipeline_hsw+0xe7>
65  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
66  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
67  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
68  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
69  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
70  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
71  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
72  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
73  DB  76,137,230                          ; mov           %r12,%rsi
74  DB  76,137,242                          ; mov           %r14,%rdx
75  DB  65,255,215                          ; callq         *%r15
76  DB  76,137,232                          ; mov           %r13,%rax
77  DB  197,248,40,52,36                    ; vmovaps       (%rsp),%xmm6
78  DB  197,248,40,124,36,16                ; vmovaps       0x10(%rsp),%xmm7
79  DB  197,120,40,68,36,32                 ; vmovaps       0x20(%rsp),%xmm8
80  DB  197,120,40,76,36,48                 ; vmovaps       0x30(%rsp),%xmm9
81  DB  197,120,40,84,36,64                 ; vmovaps       0x40(%rsp),%xmm10
82  DB  197,120,40,92,36,80                 ; vmovaps       0x50(%rsp),%xmm11
83  DB  197,120,40,100,36,96                ; vmovaps       0x60(%rsp),%xmm12
84  DB  197,120,40,108,36,112               ; vmovaps       0x70(%rsp),%xmm13
85  DB  197,120,40,180,36,128,0,0,0         ; vmovaps       0x80(%rsp),%xmm14
86  DB  197,120,40,188,36,144,0,0,0         ; vmovaps       0x90(%rsp),%xmm15
87  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
88  DB  91                                  ; pop           %rbx
89  DB  95                                  ; pop           %rdi
90  DB  94                                  ; pop           %rsi
91  DB  65,92                               ; pop           %r12
92  DB  65,93                               ; pop           %r13
93  DB  65,94                               ; pop           %r14
94  DB  65,95                               ; pop           %r15
95  DB  197,248,119                         ; vzeroupper
96  DB  195                                 ; retq
97
98PUBLIC _sk_just_return_hsw
99_sk_just_return_hsw LABEL PROC
100  DB  195                                 ; retq
101
102PUBLIC _sk_seed_shader_hsw
103_sk_seed_shader_hsw LABEL PROC
104  DB  72,173                              ; lods          %ds:(%rsi),%rax
105  DB  197,249,110,199                     ; vmovd         %edi,%xmm0
106  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
107  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
108  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
109  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
110  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
111  DB  197,252,88,193                      ; vaddps        %ymm1,%ymm0,%ymm0
112  DB  197,252,88,2                        ; vaddps        (%rdx),%ymm0,%ymm0
113  DB  196,226,125,24,16                   ; vbroadcastss  (%rax),%ymm2
114  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
115  DB  197,236,88,201                      ; vaddps        %ymm1,%ymm2,%ymm1
116  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
117  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
118  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
119  DB  72,173                              ; lods          %ds:(%rsi),%rax
120  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
121  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
122  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
123  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
124  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
125  DB  255,224                             ; jmpq          *%rax
126
127PUBLIC _sk_constant_color_hsw
128_sk_constant_color_hsw LABEL PROC
129  DB  72,173                              ; lods          %ds:(%rsi),%rax
130  DB  196,226,125,24,0                    ; vbroadcastss  (%rax),%ymm0
131  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
132  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
133  DB  196,226,125,24,88,12                ; vbroadcastss  0xc(%rax),%ymm3
134  DB  72,173                              ; lods          %ds:(%rsi),%rax
135  DB  255,224                             ; jmpq          *%rax
136
137PUBLIC _sk_clear_hsw
138_sk_clear_hsw LABEL PROC
139  DB  72,173                              ; lods          %ds:(%rsi),%rax
140  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
141  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
142  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
143  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
144  DB  255,224                             ; jmpq          *%rax
145
146PUBLIC _sk_srcatop_hsw
147_sk_srcatop_hsw LABEL PROC
148  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
149  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
150  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
151  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
152  DB  197,60,89,204                       ; vmulps        %ymm4,%ymm8,%ymm9
153  DB  196,194,69,168,193                  ; vfmadd213ps   %ymm9,%ymm7,%ymm0
154  DB  197,60,89,205                       ; vmulps        %ymm5,%ymm8,%ymm9
155  DB  196,194,69,168,201                  ; vfmadd213ps   %ymm9,%ymm7,%ymm1
156  DB  197,60,89,206                       ; vmulps        %ymm6,%ymm8,%ymm9
157  DB  196,194,69,168,209                  ; vfmadd213ps   %ymm9,%ymm7,%ymm2
158  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
159  DB  196,194,69,168,216                  ; vfmadd213ps   %ymm8,%ymm7,%ymm3
160  DB  72,173                              ; lods          %ds:(%rsi),%rax
161  DB  255,224                             ; jmpq          *%rax
162
163PUBLIC _sk_dstatop_hsw
164_sk_dstatop_hsw LABEL PROC
165  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
166  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
167  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
168  DB  197,60,92,199                       ; vsubps        %ymm7,%ymm8,%ymm8
169  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
170  DB  196,226,101,184,196                 ; vfmadd231ps   %ymm4,%ymm3,%ymm0
171  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
172  DB  196,226,101,184,205                 ; vfmadd231ps   %ymm5,%ymm3,%ymm1
173  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
174  DB  196,226,101,184,214                 ; vfmadd231ps   %ymm6,%ymm3,%ymm2
175  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
176  DB  196,194,69,168,216                  ; vfmadd213ps   %ymm8,%ymm7,%ymm3
177  DB  72,173                              ; lods          %ds:(%rsi),%rax
178  DB  255,224                             ; jmpq          *%rax
179
180PUBLIC _sk_srcin_hsw
181_sk_srcin_hsw LABEL PROC
182  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
183  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
184  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
185  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
186  DB  72,173                              ; lods          %ds:(%rsi),%rax
187  DB  255,224                             ; jmpq          *%rax
188
189PUBLIC _sk_dstin_hsw
190_sk_dstin_hsw LABEL PROC
191  DB  197,228,89,196                      ; vmulps        %ymm4,%ymm3,%ymm0
192  DB  197,228,89,205                      ; vmulps        %ymm5,%ymm3,%ymm1
193  DB  197,228,89,214                      ; vmulps        %ymm6,%ymm3,%ymm2
194  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
195  DB  72,173                              ; lods          %ds:(%rsi),%rax
196  DB  255,224                             ; jmpq          *%rax
197
198PUBLIC _sk_srcout_hsw
199_sk_srcout_hsw LABEL PROC
200  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
201  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
202  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
203  DB  197,60,92,199                       ; vsubps        %ymm7,%ymm8,%ymm8
204  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
205  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
206  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
207  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
208  DB  72,173                              ; lods          %ds:(%rsi),%rax
209  DB  255,224                             ; jmpq          *%rax
210
211PUBLIC _sk_dstout_hsw
212_sk_dstout_hsw LABEL PROC
213  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
214  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
215  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
216  DB  197,252,92,219                      ; vsubps        %ymm3,%ymm0,%ymm3
217  DB  197,228,89,196                      ; vmulps        %ymm4,%ymm3,%ymm0
218  DB  197,228,89,205                      ; vmulps        %ymm5,%ymm3,%ymm1
219  DB  197,228,89,214                      ; vmulps        %ymm6,%ymm3,%ymm2
220  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
221  DB  72,173                              ; lods          %ds:(%rsi),%rax
222  DB  255,224                             ; jmpq          *%rax
223
224PUBLIC _sk_srcover_hsw
225_sk_srcover_hsw LABEL PROC
226  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
227  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
228  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
229  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
230  DB  196,194,93,184,192                  ; vfmadd231ps   %ymm8,%ymm4,%ymm0
231  DB  196,194,85,184,200                  ; vfmadd231ps   %ymm8,%ymm5,%ymm1
232  DB  196,194,77,184,208                  ; vfmadd231ps   %ymm8,%ymm6,%ymm2
233  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
234  DB  72,173                              ; lods          %ds:(%rsi),%rax
235  DB  255,224                             ; jmpq          *%rax
236
237PUBLIC _sk_dstover_hsw
238_sk_dstover_hsw LABEL PROC
239  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
240  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
241  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
242  DB  197,60,92,199                       ; vsubps        %ymm7,%ymm8,%ymm8
243  DB  196,226,61,168,196                  ; vfmadd213ps   %ymm4,%ymm8,%ymm0
244  DB  196,226,61,168,205                  ; vfmadd213ps   %ymm5,%ymm8,%ymm1
245  DB  196,226,61,168,214                  ; vfmadd213ps   %ymm6,%ymm8,%ymm2
246  DB  196,226,61,168,223                  ; vfmadd213ps   %ymm7,%ymm8,%ymm3
247  DB  72,173                              ; lods          %ds:(%rsi),%rax
248  DB  255,224                             ; jmpq          *%rax
249
250PUBLIC _sk_modulate_hsw
251_sk_modulate_hsw LABEL PROC
252  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
253  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
254  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
255  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
256  DB  72,173                              ; lods          %ds:(%rsi),%rax
257  DB  255,224                             ; jmpq          *%rax
258
259PUBLIC _sk_multiply_hsw
260_sk_multiply_hsw LABEL PROC
261  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
262  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
263  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
264  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
265  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
266  DB  197,60,89,212                       ; vmulps        %ymm4,%ymm8,%ymm10
267  DB  196,98,53,184,208                   ; vfmadd231ps   %ymm0,%ymm9,%ymm10
268  DB  196,194,93,168,194                  ; vfmadd213ps   %ymm10,%ymm4,%ymm0
269  DB  197,52,89,209                       ; vmulps        %ymm1,%ymm9,%ymm10
270  DB  196,98,61,184,213                   ; vfmadd231ps   %ymm5,%ymm8,%ymm10
271  DB  196,194,85,168,202                  ; vfmadd213ps   %ymm10,%ymm5,%ymm1
272  DB  197,52,89,210                       ; vmulps        %ymm2,%ymm9,%ymm10
273  DB  196,98,61,184,214                   ; vfmadd231ps   %ymm6,%ymm8,%ymm10
274  DB  196,194,77,168,210                  ; vfmadd213ps   %ymm10,%ymm6,%ymm2
275  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
276  DB  196,66,69,168,193                   ; vfmadd213ps   %ymm9,%ymm7,%ymm8
277  DB  196,194,69,168,216                  ; vfmadd213ps   %ymm8,%ymm7,%ymm3
278  DB  72,173                              ; lods          %ds:(%rsi),%rax
279  DB  255,224                             ; jmpq          *%rax
280
281PUBLIC _sk_plus__hsw
282_sk_plus__hsw LABEL PROC
283  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
284  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
285  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
286  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
287  DB  72,173                              ; lods          %ds:(%rsi),%rax
288  DB  255,224                             ; jmpq          *%rax
289
290PUBLIC _sk_screen_hsw
291_sk_screen_hsw LABEL PROC
292  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
293  DB  196,194,93,172,192                  ; vfnmadd213ps  %ymm8,%ymm4,%ymm0
294  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
295  DB  196,194,85,172,200                  ; vfnmadd213ps  %ymm8,%ymm5,%ymm1
296  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
297  DB  196,194,77,172,208                  ; vfnmadd213ps  %ymm8,%ymm6,%ymm2
298  DB  197,100,88,199                      ; vaddps        %ymm7,%ymm3,%ymm8
299  DB  196,194,69,172,216                  ; vfnmadd213ps  %ymm8,%ymm7,%ymm3
300  DB  72,173                              ; lods          %ds:(%rsi),%rax
301  DB  255,224                             ; jmpq          *%rax
302
303PUBLIC _sk_xor__hsw
304_sk_xor__hsw LABEL PROC
305  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
306  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
307  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
308  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
309  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
310  DB  197,60,89,212                       ; vmulps        %ymm4,%ymm8,%ymm10
311  DB  196,194,53,168,194                  ; vfmadd213ps   %ymm10,%ymm9,%ymm0
312  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
313  DB  196,226,61,184,205                  ; vfmadd231ps   %ymm5,%ymm8,%ymm1
314  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
315  DB  196,226,61,184,214                  ; vfmadd231ps   %ymm6,%ymm8,%ymm2
316  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
317  DB  196,98,69,168,195                   ; vfmadd213ps   %ymm3,%ymm7,%ymm8
318  DB  72,173                              ; lods          %ds:(%rsi),%rax
319  DB  197,124,41,195                      ; vmovaps       %ymm8,%ymm3
320  DB  255,224                             ; jmpq          *%rax
321
322PUBLIC _sk_darken_hsw
323_sk_darken_hsw LABEL PROC
324  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
325  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
326  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
327  DB  196,193,124,95,193                  ; vmaxps        %ymm9,%ymm0,%ymm0
328  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
329  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
330  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
331  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
332  DB  196,193,116,95,201                  ; vmaxps        %ymm9,%ymm1,%ymm1
333  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
334  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
335  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
336  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
337  DB  196,193,108,95,209                  ; vmaxps        %ymm9,%ymm2,%ymm2
338  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
339  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
340  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
341  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
342  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
343  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
344  DB  72,173                              ; lods          %ds:(%rsi),%rax
345  DB  255,224                             ; jmpq          *%rax
346
347PUBLIC _sk_lighten_hsw
348_sk_lighten_hsw LABEL PROC
349  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
350  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
351  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
352  DB  196,193,124,93,193                  ; vminps        %ymm9,%ymm0,%ymm0
353  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
354  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
355  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
356  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
357  DB  196,193,116,93,201                  ; vminps        %ymm9,%ymm1,%ymm1
358  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
359  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
360  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
361  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
362  DB  196,193,108,93,209                  ; vminps        %ymm9,%ymm2,%ymm2
363  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
364  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
365  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
366  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
367  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
368  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
369  DB  72,173                              ; lods          %ds:(%rsi),%rax
370  DB  255,224                             ; jmpq          *%rax
371
372PUBLIC _sk_difference_hsw
373_sk_difference_hsw LABEL PROC
374  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
375  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
376  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
377  DB  196,193,124,93,193                  ; vminps        %ymm9,%ymm0,%ymm0
378  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
379  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
380  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
381  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
382  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
383  DB  196,193,116,93,201                  ; vminps        %ymm9,%ymm1,%ymm1
384  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
385  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
386  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
387  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
388  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
389  DB  196,193,108,93,209                  ; vminps        %ymm9,%ymm2,%ymm2
390  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
391  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
392  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
393  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
394  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
395  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
396  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
397  DB  72,173                              ; lods          %ds:(%rsi),%rax
398  DB  255,224                             ; jmpq          *%rax
399
400PUBLIC _sk_exclusion_hsw
401_sk_exclusion_hsw LABEL PROC
402  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
403  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
404  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
405  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
406  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
407  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
408  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
409  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
410  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
411  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
412  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
413  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
414  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
415  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
416  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
417  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
418  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
419  DB  72,173                              ; lods          %ds:(%rsi),%rax
420  DB  255,224                             ; jmpq          *%rax
421
422PUBLIC _sk_colorburn_hsw
423_sk_colorburn_hsw LABEL PROC
424  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
425  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
426  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
427  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
428  DB  197,52,89,216                       ; vmulps        %ymm0,%ymm9,%ymm11
429  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
430  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
431  DB  197,60,89,228                       ; vmulps        %ymm4,%ymm8,%ymm12
432  DB  197,68,92,236                       ; vsubps        %ymm4,%ymm7,%ymm13
433  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
434  DB  197,20,94,232                       ; vdivps        %ymm0,%ymm13,%ymm13
435  DB  196,65,68,93,237                    ; vminps        %ymm13,%ymm7,%ymm13
436  DB  196,65,68,92,237                    ; vsubps        %ymm13,%ymm7,%ymm13
437  DB  196,66,101,168,235                  ; vfmadd213ps   %ymm11,%ymm3,%ymm13
438  DB  196,65,28,88,237                    ; vaddps        %ymm13,%ymm12,%ymm13
439  DB  197,28,88,224                       ; vaddps        %ymm0,%ymm12,%ymm12
440  DB  196,193,124,194,194,0               ; vcmpeqps      %ymm10,%ymm0,%ymm0
441  DB  196,195,21,74,196,0                 ; vblendvps     %ymm0,%ymm12,%ymm13,%ymm0
442  DB  197,92,194,231,0                    ; vcmpeqps      %ymm7,%ymm4,%ymm12
443  DB  197,36,88,220                       ; vaddps        %ymm4,%ymm11,%ymm11
444  DB  196,195,125,74,195,192              ; vblendvps     %ymm12,%ymm11,%ymm0,%ymm0
445  DB  197,52,89,217                       ; vmulps        %ymm1,%ymm9,%ymm11
446  DB  197,60,89,229                       ; vmulps        %ymm5,%ymm8,%ymm12
447  DB  197,68,92,237                       ; vsubps        %ymm5,%ymm7,%ymm13
448  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
449  DB  197,20,94,233                       ; vdivps        %ymm1,%ymm13,%ymm13
450  DB  196,65,68,93,237                    ; vminps        %ymm13,%ymm7,%ymm13
451  DB  196,65,68,92,237                    ; vsubps        %ymm13,%ymm7,%ymm13
452  DB  196,66,101,168,235                  ; vfmadd213ps   %ymm11,%ymm3,%ymm13
453  DB  196,65,28,88,237                    ; vaddps        %ymm13,%ymm12,%ymm13
454  DB  197,28,88,225                       ; vaddps        %ymm1,%ymm12,%ymm12
455  DB  196,193,116,194,202,0               ; vcmpeqps      %ymm10,%ymm1,%ymm1
456  DB  196,195,21,74,204,16                ; vblendvps     %ymm1,%ymm12,%ymm13,%ymm1
457  DB  197,84,194,231,0                    ; vcmpeqps      %ymm7,%ymm5,%ymm12
458  DB  197,36,88,221                       ; vaddps        %ymm5,%ymm11,%ymm11
459  DB  196,195,117,74,203,192              ; vblendvps     %ymm12,%ymm11,%ymm1,%ymm1
460  DB  197,52,89,202                       ; vmulps        %ymm2,%ymm9,%ymm9
461  DB  196,65,108,194,210,0                ; vcmpeqps      %ymm10,%ymm2,%ymm10
462  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
463  DB  197,68,92,230                       ; vsubps        %ymm6,%ymm7,%ymm12
464  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
465  DB  197,28,94,226                       ; vdivps        %ymm2,%ymm12,%ymm12
466  DB  197,164,88,210                      ; vaddps        %ymm2,%ymm11,%ymm2
467  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
468  DB  196,65,68,92,228                    ; vsubps        %ymm12,%ymm7,%ymm12
469  DB  196,66,101,168,225                  ; vfmadd213ps   %ymm9,%ymm3,%ymm12
470  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
471  DB  196,227,37,74,210,160               ; vblendvps     %ymm10,%ymm2,%ymm11,%ymm2
472  DB  197,76,194,215,0                    ; vcmpeqps      %ymm7,%ymm6,%ymm10
473  DB  197,52,88,206                       ; vaddps        %ymm6,%ymm9,%ymm9
474  DB  196,195,109,74,209,160              ; vblendvps     %ymm10,%ymm9,%ymm2,%ymm2
475  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
476  DB  72,173                              ; lods          %ds:(%rsi),%rax
477  DB  255,224                             ; jmpq          *%rax
478
479PUBLIC _sk_colordodge_hsw
480_sk_colordodge_hsw LABEL PROC
481  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
482  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
483  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
484  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
485  DB  197,52,92,215                       ; vsubps        %ymm7,%ymm9,%ymm10
486  DB  197,44,89,216                       ; vmulps        %ymm0,%ymm10,%ymm11
487  DB  197,52,92,203                       ; vsubps        %ymm3,%ymm9,%ymm9
488  DB  197,100,89,228                      ; vmulps        %ymm4,%ymm3,%ymm12
489  DB  197,100,92,232                      ; vsubps        %ymm0,%ymm3,%ymm13
490  DB  196,65,28,94,229                    ; vdivps        %ymm13,%ymm12,%ymm12
491  DB  197,52,89,236                       ; vmulps        %ymm4,%ymm9,%ymm13
492  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
493  DB  196,66,101,168,227                  ; vfmadd213ps   %ymm11,%ymm3,%ymm12
494  DB  196,65,20,88,228                    ; vaddps        %ymm12,%ymm13,%ymm12
495  DB  197,20,88,232                       ; vaddps        %ymm0,%ymm13,%ymm13
496  DB  197,252,194,195,0                   ; vcmpeqps      %ymm3,%ymm0,%ymm0
497  DB  196,195,29,74,197,0                 ; vblendvps     %ymm0,%ymm13,%ymm12,%ymm0
498  DB  196,65,92,194,224,0                 ; vcmpeqps      %ymm8,%ymm4,%ymm12
499  DB  197,36,88,220                       ; vaddps        %ymm4,%ymm11,%ymm11
500  DB  196,195,125,74,195,192              ; vblendvps     %ymm12,%ymm11,%ymm0,%ymm0
501  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
502  DB  197,100,89,229                      ; vmulps        %ymm5,%ymm3,%ymm12
503  DB  197,100,92,233                      ; vsubps        %ymm1,%ymm3,%ymm13
504  DB  196,65,28,94,229                    ; vdivps        %ymm13,%ymm12,%ymm12
505  DB  197,52,89,237                       ; vmulps        %ymm5,%ymm9,%ymm13
506  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
507  DB  196,66,101,168,227                  ; vfmadd213ps   %ymm11,%ymm3,%ymm12
508  DB  196,65,20,88,228                    ; vaddps        %ymm12,%ymm13,%ymm12
509  DB  197,20,88,233                       ; vaddps        %ymm1,%ymm13,%ymm13
510  DB  197,244,194,203,0                   ; vcmpeqps      %ymm3,%ymm1,%ymm1
511  DB  196,195,29,74,205,16                ; vblendvps     %ymm1,%ymm13,%ymm12,%ymm1
512  DB  196,65,84,194,224,0                 ; vcmpeqps      %ymm8,%ymm5,%ymm12
513  DB  197,36,88,221                       ; vaddps        %ymm5,%ymm11,%ymm11
514  DB  196,195,117,74,203,192              ; vblendvps     %ymm12,%ymm11,%ymm1,%ymm1
515  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
516  DB  197,100,89,222                      ; vmulps        %ymm6,%ymm3,%ymm11
517  DB  197,100,92,226                      ; vsubps        %ymm2,%ymm3,%ymm12
518  DB  196,65,36,94,220                    ; vdivps        %ymm12,%ymm11,%ymm11
519  DB  197,52,89,230                       ; vmulps        %ymm6,%ymm9,%ymm12
520  DB  196,65,68,93,219                    ; vminps        %ymm11,%ymm7,%ymm11
521  DB  196,66,101,168,218                  ; vfmadd213ps   %ymm10,%ymm3,%ymm11
522  DB  196,65,28,88,219                    ; vaddps        %ymm11,%ymm12,%ymm11
523  DB  197,28,88,226                       ; vaddps        %ymm2,%ymm12,%ymm12
524  DB  197,236,194,211,0                   ; vcmpeqps      %ymm3,%ymm2,%ymm2
525  DB  196,195,37,74,212,32                ; vblendvps     %ymm2,%ymm12,%ymm11,%ymm2
526  DB  196,65,76,194,192,0                 ; vcmpeqps      %ymm8,%ymm6,%ymm8
527  DB  197,44,88,214                       ; vaddps        %ymm6,%ymm10,%ymm10
528  DB  196,195,109,74,210,128              ; vblendvps     %ymm8,%ymm10,%ymm2,%ymm2
529  DB  196,194,69,184,217                  ; vfmadd231ps   %ymm9,%ymm7,%ymm3
530  DB  72,173                              ; lods          %ds:(%rsi),%rax
531  DB  255,224                             ; jmpq          *%rax
532
533PUBLIC _sk_hardlight_hsw
534_sk_hardlight_hsw LABEL PROC
535  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
536  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
537  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
538  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
539  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
540  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
541  DB  196,98,45,184,216                   ; vfmadd231ps   %ymm0,%ymm10,%ymm11
542  DB  197,124,88,200                      ; vaddps        %ymm0,%ymm0,%ymm9
543  DB  197,52,194,227,2                    ; vcmpleps      %ymm3,%ymm9,%ymm12
544  DB  197,124,89,204                      ; vmulps        %ymm4,%ymm0,%ymm9
545  DB  196,65,52,88,233                    ; vaddps        %ymm9,%ymm9,%ymm13
546  DB  197,100,89,207                      ; vmulps        %ymm7,%ymm3,%ymm9
547  DB  197,68,92,244                       ; vsubps        %ymm4,%ymm7,%ymm14
548  DB  197,228,92,192                      ; vsubps        %ymm0,%ymm3,%ymm0
549  DB  196,193,124,89,198                  ; vmulps        %ymm14,%ymm0,%ymm0
550  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
551  DB  197,180,92,192                      ; vsubps        %ymm0,%ymm9,%ymm0
552  DB  196,195,125,74,197,192              ; vblendvps     %ymm12,%ymm13,%ymm0,%ymm0
553  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
554  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
555  DB  196,98,61,184,221                   ; vfmadd231ps   %ymm5,%ymm8,%ymm11
556  DB  197,116,88,225                      ; vaddps        %ymm1,%ymm1,%ymm12
557  DB  197,28,194,227,2                    ; vcmpleps      %ymm3,%ymm12,%ymm12
558  DB  197,116,89,237                      ; vmulps        %ymm5,%ymm1,%ymm13
559  DB  196,65,20,88,237                    ; vaddps        %ymm13,%ymm13,%ymm13
560  DB  197,68,92,245                       ; vsubps        %ymm5,%ymm7,%ymm14
561  DB  197,228,92,201                      ; vsubps        %ymm1,%ymm3,%ymm1
562  DB  196,193,116,89,206                  ; vmulps        %ymm14,%ymm1,%ymm1
563  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
564  DB  197,180,92,201                      ; vsubps        %ymm1,%ymm9,%ymm1
565  DB  196,195,117,74,205,192              ; vblendvps     %ymm12,%ymm13,%ymm1,%ymm1
566  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
567  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
568  DB  196,98,61,184,214                   ; vfmadd231ps   %ymm6,%ymm8,%ymm10
569  DB  197,108,88,218                      ; vaddps        %ymm2,%ymm2,%ymm11
570  DB  197,36,194,219,2                    ; vcmpleps      %ymm3,%ymm11,%ymm11
571  DB  197,108,89,230                      ; vmulps        %ymm6,%ymm2,%ymm12
572  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
573  DB  197,68,92,238                       ; vsubps        %ymm6,%ymm7,%ymm13
574  DB  197,228,92,210                      ; vsubps        %ymm2,%ymm3,%ymm2
575  DB  196,193,108,89,213                  ; vmulps        %ymm13,%ymm2,%ymm2
576  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
577  DB  197,180,92,210                      ; vsubps        %ymm2,%ymm9,%ymm2
578  DB  196,195,109,74,212,176              ; vblendvps     %ymm11,%ymm12,%ymm2,%ymm2
579  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
580  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
581  DB  72,173                              ; lods          %ds:(%rsi),%rax
582  DB  255,224                             ; jmpq          *%rax
583
584PUBLIC _sk_overlay_hsw
585_sk_overlay_hsw LABEL PROC
586  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
587  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
588  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
589  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
590  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
591  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
592  DB  196,98,45,184,216                   ; vfmadd231ps   %ymm0,%ymm10,%ymm11
593  DB  197,92,88,204                       ; vaddps        %ymm4,%ymm4,%ymm9
594  DB  197,52,194,231,2                    ; vcmpleps      %ymm7,%ymm9,%ymm12
595  DB  197,124,89,204                      ; vmulps        %ymm4,%ymm0,%ymm9
596  DB  196,65,52,88,233                    ; vaddps        %ymm9,%ymm9,%ymm13
597  DB  197,100,89,207                      ; vmulps        %ymm7,%ymm3,%ymm9
598  DB  197,68,92,244                       ; vsubps        %ymm4,%ymm7,%ymm14
599  DB  197,228,92,192                      ; vsubps        %ymm0,%ymm3,%ymm0
600  DB  196,193,124,89,198                  ; vmulps        %ymm14,%ymm0,%ymm0
601  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
602  DB  197,180,92,192                      ; vsubps        %ymm0,%ymm9,%ymm0
603  DB  196,195,125,74,197,192              ; vblendvps     %ymm12,%ymm13,%ymm0,%ymm0
604  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
605  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
606  DB  196,98,61,184,221                   ; vfmadd231ps   %ymm5,%ymm8,%ymm11
607  DB  197,84,88,229                       ; vaddps        %ymm5,%ymm5,%ymm12
608  DB  197,28,194,231,2                    ; vcmpleps      %ymm7,%ymm12,%ymm12
609  DB  197,116,89,237                      ; vmulps        %ymm5,%ymm1,%ymm13
610  DB  196,65,20,88,237                    ; vaddps        %ymm13,%ymm13,%ymm13
611  DB  197,68,92,245                       ; vsubps        %ymm5,%ymm7,%ymm14
612  DB  197,228,92,201                      ; vsubps        %ymm1,%ymm3,%ymm1
613  DB  196,193,116,89,206                  ; vmulps        %ymm14,%ymm1,%ymm1
614  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
615  DB  197,180,92,201                      ; vsubps        %ymm1,%ymm9,%ymm1
616  DB  196,195,117,74,205,192              ; vblendvps     %ymm12,%ymm13,%ymm1,%ymm1
617  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
618  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
619  DB  196,98,61,184,214                   ; vfmadd231ps   %ymm6,%ymm8,%ymm10
620  DB  197,76,88,222                       ; vaddps        %ymm6,%ymm6,%ymm11
621  DB  197,36,194,223,2                    ; vcmpleps      %ymm7,%ymm11,%ymm11
622  DB  197,108,89,230                      ; vmulps        %ymm6,%ymm2,%ymm12
623  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
624  DB  197,68,92,238                       ; vsubps        %ymm6,%ymm7,%ymm13
625  DB  197,228,92,210                      ; vsubps        %ymm2,%ymm3,%ymm2
626  DB  196,193,108,89,213                  ; vmulps        %ymm13,%ymm2,%ymm2
627  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
628  DB  197,180,92,210                      ; vsubps        %ymm2,%ymm9,%ymm2
629  DB  196,195,109,74,212,176              ; vblendvps     %ymm11,%ymm12,%ymm2,%ymm2
630  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
631  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
632  DB  72,173                              ; lods          %ds:(%rsi),%rax
633  DB  255,224                             ; jmpq          *%rax
634
635PUBLIC _sk_softlight_hsw
636_sk_softlight_hsw LABEL PROC
637  DB  72,131,236,56                       ; sub           $0x38,%rsp
638  DB  197,252,17,20,36                    ; vmovups       %ymm2,(%rsp)
639  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
640  DB  197,44,194,223,1                    ; vcmpltps      %ymm7,%ymm10,%ymm11
641  DB  197,92,94,199                       ; vdivps        %ymm7,%ymm4,%ymm8
642  DB  196,67,45,74,224,176                ; vblendvps     %ymm11,%ymm8,%ymm10,%ymm12
643  DB  196,65,28,88,196                    ; vaddps        %ymm12,%ymm12,%ymm8
644  DB  196,65,60,88,232                    ; vaddps        %ymm8,%ymm8,%ymm13
645  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
646  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
647  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
648  DB  196,66,21,168,237                   ; vfmadd213ps   %ymm13,%ymm13,%ymm13
649  DB  196,65,28,92,240                    ; vsubps        %ymm8,%ymm12,%ymm14
650  DB  184,0,0,224,64                      ; mov           $0x40e00000,%eax
651  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
652  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
653  DB  196,65,28,89,249                    ; vmulps        %ymm9,%ymm12,%ymm15
654  DB  196,66,21,184,254                   ; vfmadd231ps   %ymm14,%ymm13,%ymm15
655  DB  196,65,124,82,236                   ; vrsqrtps      %ymm12,%ymm13
656  DB  196,65,124,83,237                   ; vrcpps        %ymm13,%ymm13
657  DB  196,65,20,92,236                    ; vsubps        %ymm12,%ymm13,%ymm13
658  DB  197,92,88,244                       ; vaddps        %ymm4,%ymm4,%ymm14
659  DB  196,65,12,88,246                    ; vaddps        %ymm14,%ymm14,%ymm14
660  DB  197,12,194,247,2                    ; vcmpleps      %ymm7,%ymm14,%ymm14
661  DB  196,67,21,74,239,224                ; vblendvps     %ymm14,%ymm15,%ymm13,%ymm13
662  DB  197,124,88,240                      ; vaddps        %ymm0,%ymm0,%ymm14
663  DB  197,12,92,251                       ; vsubps        %ymm3,%ymm14,%ymm15
664  DB  196,65,60,92,228                    ; vsubps        %ymm12,%ymm8,%ymm12
665  DB  196,98,5,168,227                    ; vfmadd213ps   %ymm3,%ymm15,%ymm12
666  DB  197,28,89,228                       ; vmulps        %ymm4,%ymm12,%ymm12
667  DB  197,4,89,255                        ; vmulps        %ymm7,%ymm15,%ymm15
668  DB  196,65,4,89,237                     ; vmulps        %ymm13,%ymm15,%ymm13
669  DB  196,98,101,184,236                  ; vfmadd231ps   %ymm4,%ymm3,%ymm13
670  DB  197,12,194,243,2                    ; vcmpleps      %ymm3,%ymm14,%ymm14
671  DB  196,195,21,74,212,224               ; vblendvps     %ymm14,%ymm12,%ymm13,%ymm2
672  DB  197,84,94,239                       ; vdivps        %ymm7,%ymm5,%ymm13
673  DB  196,67,45,74,237,176                ; vblendvps     %ymm11,%ymm13,%ymm10,%ymm13
674  DB  196,65,20,88,245                    ; vaddps        %ymm13,%ymm13,%ymm14
675  DB  196,65,12,88,246                    ; vaddps        %ymm14,%ymm14,%ymm14
676  DB  196,66,13,168,246                   ; vfmadd213ps   %ymm14,%ymm14,%ymm14
677  DB  196,65,20,92,248                    ; vsubps        %ymm8,%ymm13,%ymm15
678  DB  196,65,4,89,246                     ; vmulps        %ymm14,%ymm15,%ymm14
679  DB  196,66,53,184,245                   ; vfmadd231ps   %ymm13,%ymm9,%ymm14
680  DB  196,65,124,82,253                   ; vrsqrtps      %ymm13,%ymm15
681  DB  196,65,124,83,255                   ; vrcpps        %ymm15,%ymm15
682  DB  196,65,4,92,253                     ; vsubps        %ymm13,%ymm15,%ymm15
683  DB  197,84,88,229                       ; vaddps        %ymm5,%ymm5,%ymm12
684  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
685  DB  197,28,194,231,2                    ; vcmpleps      %ymm7,%ymm12,%ymm12
686  DB  196,67,5,74,230,192                 ; vblendvps     %ymm12,%ymm14,%ymm15,%ymm12
687  DB  197,116,88,241                      ; vaddps        %ymm1,%ymm1,%ymm14
688  DB  196,65,60,92,237                    ; vsubps        %ymm13,%ymm8,%ymm13
689  DB  197,12,92,251                       ; vsubps        %ymm3,%ymm14,%ymm15
690  DB  196,98,5,168,235                    ; vfmadd213ps   %ymm3,%ymm15,%ymm13
691  DB  197,4,89,255                        ; vmulps        %ymm7,%ymm15,%ymm15
692  DB  196,65,4,89,228                     ; vmulps        %ymm12,%ymm15,%ymm12
693  DB  197,20,89,237                       ; vmulps        %ymm5,%ymm13,%ymm13
694  DB  196,98,101,184,229                  ; vfmadd231ps   %ymm5,%ymm3,%ymm12
695  DB  197,12,194,243,2                    ; vcmpleps      %ymm3,%ymm14,%ymm14
696  DB  196,67,29,74,237,224                ; vblendvps     %ymm14,%ymm13,%ymm12,%ymm13
697  DB  197,76,94,231                       ; vdivps        %ymm7,%ymm6,%ymm12
698  DB  196,67,45,74,212,176                ; vblendvps     %ymm11,%ymm12,%ymm10,%ymm10
699  DB  196,65,44,88,218                    ; vaddps        %ymm10,%ymm10,%ymm11
700  DB  196,65,36,88,219                    ; vaddps        %ymm11,%ymm11,%ymm11
701  DB  196,66,37,168,219                   ; vfmadd213ps   %ymm11,%ymm11,%ymm11
702  DB  196,65,44,92,224                    ; vsubps        %ymm8,%ymm10,%ymm12
703  DB  196,65,28,89,219                    ; vmulps        %ymm11,%ymm12,%ymm11
704  DB  196,66,45,168,203                   ; vfmadd213ps   %ymm11,%ymm10,%ymm9
705  DB  196,65,124,82,218                   ; vrsqrtps      %ymm10,%ymm11
706  DB  196,65,124,83,219                   ; vrcpps        %ymm11,%ymm11
707  DB  196,65,36,92,218                    ; vsubps        %ymm10,%ymm11,%ymm11
708  DB  197,76,88,230                       ; vaddps        %ymm6,%ymm6,%ymm12
709  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
710  DB  197,28,194,231,2                    ; vcmpleps      %ymm7,%ymm12,%ymm12
711  DB  196,67,37,74,201,192                ; vblendvps     %ymm12,%ymm9,%ymm11,%ymm9
712  DB  197,124,16,52,36                    ; vmovups       (%rsp),%ymm14
713  DB  196,65,12,88,222                    ; vaddps        %ymm14,%ymm14,%ymm11
714  DB  197,36,92,227                       ; vsubps        %ymm3,%ymm11,%ymm12
715  DB  196,65,60,92,210                    ; vsubps        %ymm10,%ymm8,%ymm10
716  DB  196,98,29,168,211                   ; vfmadd213ps   %ymm3,%ymm12,%ymm10
717  DB  197,28,89,231                       ; vmulps        %ymm7,%ymm12,%ymm12
718  DB  196,65,28,89,201                    ; vmulps        %ymm9,%ymm12,%ymm9
719  DB  197,44,89,214                       ; vmulps        %ymm6,%ymm10,%ymm10
720  DB  196,98,101,184,206                  ; vfmadd231ps   %ymm6,%ymm3,%ymm9
721  DB  197,36,194,219,2                    ; vcmpleps      %ymm3,%ymm11,%ymm11
722  DB  196,67,53,74,202,176                ; vblendvps     %ymm11,%ymm10,%ymm9,%ymm9
723  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
724  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
725  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
726  DB  196,98,45,184,216                   ; vfmadd231ps   %ymm0,%ymm10,%ymm11
727  DB  196,193,108,88,195                  ; vaddps        %ymm11,%ymm2,%ymm0
728  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
729  DB  196,226,61,184,205                  ; vfmadd231ps   %ymm5,%ymm8,%ymm1
730  DB  196,193,116,88,205                  ; vaddps        %ymm13,%ymm1,%ymm1
731  DB  196,193,44,89,214                   ; vmulps        %ymm14,%ymm10,%ymm2
732  DB  196,226,61,184,214                  ; vfmadd231ps   %ymm6,%ymm8,%ymm2
733  DB  196,193,108,88,209                  ; vaddps        %ymm9,%ymm2,%ymm2
734  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
735  DB  72,173                              ; lods          %ds:(%rsi),%rax
736  DB  72,131,196,56                       ; add           $0x38,%rsp
737  DB  255,224                             ; jmpq          *%rax
738
739PUBLIC _sk_clamp_0_hsw
740_sk_clamp_0_hsw LABEL PROC
741  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
742  DB  196,193,124,95,192                  ; vmaxps        %ymm8,%ymm0,%ymm0
743  DB  196,193,116,95,200                  ; vmaxps        %ymm8,%ymm1,%ymm1
744  DB  196,193,108,95,208                  ; vmaxps        %ymm8,%ymm2,%ymm2
745  DB  196,193,100,95,216                  ; vmaxps        %ymm8,%ymm3,%ymm3
746  DB  72,173                              ; lods          %ds:(%rsi),%rax
747  DB  255,224                             ; jmpq          *%rax
748
749PUBLIC _sk_clamp_1_hsw
750_sk_clamp_1_hsw LABEL PROC
751  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
752  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
753  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
754  DB  196,193,124,93,192                  ; vminps        %ymm8,%ymm0,%ymm0
755  DB  196,193,116,93,200                  ; vminps        %ymm8,%ymm1,%ymm1
756  DB  196,193,108,93,208                  ; vminps        %ymm8,%ymm2,%ymm2
757  DB  196,193,100,93,216                  ; vminps        %ymm8,%ymm3,%ymm3
758  DB  72,173                              ; lods          %ds:(%rsi),%rax
759  DB  255,224                             ; jmpq          *%rax
760
761PUBLIC _sk_clamp_a_hsw
762_sk_clamp_a_hsw LABEL PROC
763  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
764  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
765  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
766  DB  196,193,100,93,216                  ; vminps        %ymm8,%ymm3,%ymm3
767  DB  197,252,93,195                      ; vminps        %ymm3,%ymm0,%ymm0
768  DB  197,244,93,203                      ; vminps        %ymm3,%ymm1,%ymm1
769  DB  197,236,93,211                      ; vminps        %ymm3,%ymm2,%ymm2
770  DB  72,173                              ; lods          %ds:(%rsi),%rax
771  DB  255,224                             ; jmpq          *%rax
772
773PUBLIC _sk_set_rgb_hsw
774_sk_set_rgb_hsw LABEL PROC
775  DB  72,173                              ; lods          %ds:(%rsi),%rax
776  DB  196,226,125,24,0                    ; vbroadcastss  (%rax),%ymm0
777  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
778  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
779  DB  72,173                              ; lods          %ds:(%rsi),%rax
780  DB  255,224                             ; jmpq          *%rax
781
782PUBLIC _sk_swap_rb_hsw
783_sk_swap_rb_hsw LABEL PROC
784  DB  197,124,40,192                      ; vmovaps       %ymm0,%ymm8
785  DB  72,173                              ; lods          %ds:(%rsi),%rax
786  DB  197,252,40,194                      ; vmovaps       %ymm2,%ymm0
787  DB  197,124,41,194                      ; vmovaps       %ymm8,%ymm2
788  DB  255,224                             ; jmpq          *%rax
789
790PUBLIC _sk_swap_hsw
791_sk_swap_hsw LABEL PROC
792  DB  197,124,40,195                      ; vmovaps       %ymm3,%ymm8
793  DB  197,124,40,202                      ; vmovaps       %ymm2,%ymm9
794  DB  197,124,40,209                      ; vmovaps       %ymm1,%ymm10
795  DB  197,124,40,216                      ; vmovaps       %ymm0,%ymm11
796  DB  72,173                              ; lods          %ds:(%rsi),%rax
797  DB  197,252,40,196                      ; vmovaps       %ymm4,%ymm0
798  DB  197,252,40,205                      ; vmovaps       %ymm5,%ymm1
799  DB  197,252,40,214                      ; vmovaps       %ymm6,%ymm2
800  DB  197,252,40,223                      ; vmovaps       %ymm7,%ymm3
801  DB  197,124,41,220                      ; vmovaps       %ymm11,%ymm4
802  DB  197,124,41,213                      ; vmovaps       %ymm10,%ymm5
803  DB  197,124,41,206                      ; vmovaps       %ymm9,%ymm6
804  DB  197,124,41,199                      ; vmovaps       %ymm8,%ymm7
805  DB  255,224                             ; jmpq          *%rax
806
807PUBLIC _sk_move_src_dst_hsw
808_sk_move_src_dst_hsw LABEL PROC
809  DB  72,173                              ; lods          %ds:(%rsi),%rax
810  DB  197,252,40,224                      ; vmovaps       %ymm0,%ymm4
811  DB  197,252,40,233                      ; vmovaps       %ymm1,%ymm5
812  DB  197,252,40,242                      ; vmovaps       %ymm2,%ymm6
813  DB  197,252,40,251                      ; vmovaps       %ymm3,%ymm7
814  DB  255,224                             ; jmpq          *%rax
815
816PUBLIC _sk_move_dst_src_hsw
817_sk_move_dst_src_hsw LABEL PROC
818  DB  72,173                              ; lods          %ds:(%rsi),%rax
819  DB  197,252,40,196                      ; vmovaps       %ymm4,%ymm0
820  DB  197,252,40,205                      ; vmovaps       %ymm5,%ymm1
821  DB  197,252,40,214                      ; vmovaps       %ymm6,%ymm2
822  DB  197,252,40,223                      ; vmovaps       %ymm7,%ymm3
823  DB  255,224                             ; jmpq          *%rax
824
825PUBLIC _sk_premul_hsw
826_sk_premul_hsw LABEL PROC
827  DB  197,252,89,195                      ; vmulps        %ymm3,%ymm0,%ymm0
828  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
829  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
830  DB  72,173                              ; lods          %ds:(%rsi),%rax
831  DB  255,224                             ; jmpq          *%rax
832
833PUBLIC _sk_unpremul_hsw
834_sk_unpremul_hsw LABEL PROC
835  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
836  DB  196,65,100,194,200,0                ; vcmpeqps      %ymm8,%ymm3,%ymm9
837  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
838  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
839  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
840  DB  197,44,94,211                       ; vdivps        %ymm3,%ymm10,%ymm10
841  DB  196,67,45,74,192,144                ; vblendvps     %ymm9,%ymm8,%ymm10,%ymm8
842  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
843  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
844  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
845  DB  72,173                              ; lods          %ds:(%rsi),%rax
846  DB  255,224                             ; jmpq          *%rax
847
848PUBLIC _sk_from_srgb_hsw
849_sk_from_srgb_hsw LABEL PROC
850  DB  184,145,131,158,61                  ; mov           $0x3d9e8391,%eax
851  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
852  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
853  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
854  DB  197,124,89,208                      ; vmulps        %ymm0,%ymm0,%ymm10
855  DB  184,154,153,153,62                  ; mov           $0x3e99999a,%eax
856  DB  197,121,110,216                     ; vmovd         %eax,%xmm11
857  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
858  DB  184,92,143,50,63                    ; mov           $0x3f328f5c,%eax
859  DB  197,121,110,224                     ; vmovd         %eax,%xmm12
860  DB  196,66,125,88,228                   ; vpbroadcastd  %xmm12,%ymm12
861  DB  196,65,125,111,235                  ; vmovdqa       %ymm11,%ymm13
862  DB  196,66,125,168,236                  ; vfmadd213ps   %ymm12,%ymm0,%ymm13
863  DB  184,10,215,35,59                    ; mov           $0x3b23d70a,%eax
864  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
865  DB  196,66,125,88,246                   ; vpbroadcastd  %xmm14,%ymm14
866  DB  196,66,45,168,238                   ; vfmadd213ps   %ymm14,%ymm10,%ymm13
867  DB  184,174,71,97,61                    ; mov           $0x3d6147ae,%eax
868  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
869  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
870  DB  196,193,124,194,194,1               ; vcmpltps      %ymm10,%ymm0,%ymm0
871  DB  196,195,21,74,193,0                 ; vblendvps     %ymm0,%ymm9,%ymm13,%ymm0
872  DB  197,60,89,201                       ; vmulps        %ymm1,%ymm8,%ymm9
873  DB  197,116,89,233                      ; vmulps        %ymm1,%ymm1,%ymm13
874  DB  196,65,125,111,251                  ; vmovdqa       %ymm11,%ymm15
875  DB  196,66,117,168,252                  ; vfmadd213ps   %ymm12,%ymm1,%ymm15
876  DB  196,66,21,168,254                   ; vfmadd213ps   %ymm14,%ymm13,%ymm15
877  DB  196,193,116,194,202,1               ; vcmpltps      %ymm10,%ymm1,%ymm1
878  DB  196,195,5,74,201,16                 ; vblendvps     %ymm1,%ymm9,%ymm15,%ymm1
879  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
880  DB  197,108,89,202                      ; vmulps        %ymm2,%ymm2,%ymm9
881  DB  196,66,109,168,220                  ; vfmadd213ps   %ymm12,%ymm2,%ymm11
882  DB  196,66,53,168,222                   ; vfmadd213ps   %ymm14,%ymm9,%ymm11
883  DB  196,193,108,194,210,1               ; vcmpltps      %ymm10,%ymm2,%ymm2
884  DB  196,195,37,74,208,32                ; vblendvps     %ymm2,%ymm8,%ymm11,%ymm2
885  DB  72,173                              ; lods          %ds:(%rsi),%rax
886  DB  255,224                             ; jmpq          *%rax
887
888PUBLIC _sk_to_srgb_hsw
889_sk_to_srgb_hsw LABEL PROC
890  DB  197,124,82,192                      ; vrsqrtps      %ymm0,%ymm8
891  DB  196,65,124,83,216                   ; vrcpps        %ymm8,%ymm11
892  DB  196,65,124,82,224                   ; vrsqrtps      %ymm8,%ymm12
893  DB  184,41,92,71,65                     ; mov           $0x41475c29,%eax
894  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
895  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
896  DB  197,60,89,232                       ; vmulps        %ymm0,%ymm8,%ymm13
897  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
898  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
899  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
900  DB  184,194,135,210,62                  ; mov           $0x3ed287c2,%eax
901  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
902  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
903  DB  184,206,111,48,63                   ; mov           $0x3f306fce,%eax
904  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
905  DB  196,66,125,88,246                   ; vpbroadcastd  %xmm14,%ymm14
906  DB  184,168,87,202,61                   ; mov           $0x3dca57a8,%eax
907  DB  53,0,0,0,128                        ; xor           $0x80000000,%eax
908  DB  197,121,110,248                     ; vmovd         %eax,%xmm15
909  DB  196,66,125,88,255                   ; vpbroadcastd  %xmm15,%ymm15
910  DB  196,66,13,168,223                   ; vfmadd213ps   %ymm15,%ymm14,%ymm11
911  DB  196,66,45,184,220                   ; vfmadd231ps   %ymm12,%ymm10,%ymm11
912  DB  196,65,52,93,219                    ; vminps        %ymm11,%ymm9,%ymm11
913  DB  184,4,231,140,59                    ; mov           $0x3b8ce704,%eax
914  DB  197,121,110,224                     ; vmovd         %eax,%xmm12
915  DB  196,66,125,88,228                   ; vpbroadcastd  %xmm12,%ymm12
916  DB  196,193,124,194,196,1               ; vcmpltps      %ymm12,%ymm0,%ymm0
917  DB  196,195,37,74,197,0                 ; vblendvps     %ymm0,%ymm13,%ymm11,%ymm0
918  DB  197,124,82,217                      ; vrsqrtps      %ymm1,%ymm11
919  DB  196,65,124,83,235                   ; vrcpps        %ymm11,%ymm13
920  DB  196,65,124,82,219                   ; vrsqrtps      %ymm11,%ymm11
921  DB  196,66,13,168,239                   ; vfmadd213ps   %ymm15,%ymm14,%ymm13
922  DB  196,66,45,184,235                   ; vfmadd231ps   %ymm11,%ymm10,%ymm13
923  DB  197,60,89,217                       ; vmulps        %ymm1,%ymm8,%ymm11
924  DB  196,65,52,93,237                    ; vminps        %ymm13,%ymm9,%ymm13
925  DB  196,193,116,194,204,1               ; vcmpltps      %ymm12,%ymm1,%ymm1
926  DB  196,195,21,74,203,16                ; vblendvps     %ymm1,%ymm11,%ymm13,%ymm1
927  DB  197,124,82,218                      ; vrsqrtps      %ymm2,%ymm11
928  DB  196,65,124,83,235                   ; vrcpps        %ymm11,%ymm13
929  DB  196,66,13,168,239                   ; vfmadd213ps   %ymm15,%ymm14,%ymm13
930  DB  196,65,124,82,219                   ; vrsqrtps      %ymm11,%ymm11
931  DB  196,66,45,184,235                   ; vfmadd231ps   %ymm11,%ymm10,%ymm13
932  DB  196,65,52,93,205                    ; vminps        %ymm13,%ymm9,%ymm9
933  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
934  DB  196,193,108,194,212,1               ; vcmpltps      %ymm12,%ymm2,%ymm2
935  DB  196,195,53,74,208,32                ; vblendvps     %ymm2,%ymm8,%ymm9,%ymm2
936  DB  72,173                              ; lods          %ds:(%rsi),%rax
937  DB  255,224                             ; jmpq          *%rax
938
939PUBLIC _sk_from_2dot2_hsw
940_sk_from_2dot2_hsw LABEL PROC
941  DB  197,124,82,192                      ; vrsqrtps      %ymm0,%ymm8
942  DB  196,65,124,82,192                   ; vrsqrtps      %ymm8,%ymm8
943  DB  196,65,124,82,192                   ; vrsqrtps      %ymm8,%ymm8
944  DB  196,65,124,82,192                   ; vrsqrtps      %ymm8,%ymm8
945  DB  196,65,124,82,200                   ; vrsqrtps      %ymm8,%ymm9
946  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
947  DB  197,252,89,192                      ; vmulps        %ymm0,%ymm0,%ymm0
948  DB  196,65,60,89,208                    ; vmulps        %ymm8,%ymm8,%ymm10
949  DB  196,65,60,89,194                    ; vmulps        %ymm10,%ymm8,%ymm8
950  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
951  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
952  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
953  DB  196,193,124,95,192                  ; vmaxps        %ymm8,%ymm0,%ymm0
954  DB  197,124,82,201                      ; vrsqrtps      %ymm1,%ymm9
955  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
956  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
957  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
958  DB  196,65,124,82,209                   ; vrsqrtps      %ymm9,%ymm10
959  DB  196,65,124,82,210                   ; vrsqrtps      %ymm10,%ymm10
960  DB  197,244,89,201                      ; vmulps        %ymm1,%ymm1,%ymm1
961  DB  196,65,52,89,217                    ; vmulps        %ymm9,%ymm9,%ymm11
962  DB  196,65,52,89,203                    ; vmulps        %ymm11,%ymm9,%ymm9
963  DB  196,193,116,89,201                  ; vmulps        %ymm9,%ymm1,%ymm1
964  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
965  DB  196,193,116,95,200                  ; vmaxps        %ymm8,%ymm1,%ymm1
966  DB  197,124,82,202                      ; vrsqrtps      %ymm2,%ymm9
967  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
968  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
969  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
970  DB  196,65,124,82,209                   ; vrsqrtps      %ymm9,%ymm10
971  DB  196,65,124,82,210                   ; vrsqrtps      %ymm10,%ymm10
972  DB  197,236,89,210                      ; vmulps        %ymm2,%ymm2,%ymm2
973  DB  196,65,52,89,217                    ; vmulps        %ymm9,%ymm9,%ymm11
974  DB  196,65,52,89,203                    ; vmulps        %ymm11,%ymm9,%ymm9
975  DB  196,193,108,89,209                  ; vmulps        %ymm9,%ymm2,%ymm2
976  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
977  DB  196,193,108,95,208                  ; vmaxps        %ymm8,%ymm2,%ymm2
978  DB  72,173                              ; lods          %ds:(%rsi),%rax
979  DB  255,224                             ; jmpq          *%rax
980
981PUBLIC _sk_to_2dot2_hsw
982_sk_to_2dot2_hsw LABEL PROC
983  DB  197,252,82,192                      ; vrsqrtps      %ymm0,%ymm0
984  DB  197,124,82,192                      ; vrsqrtps      %ymm0,%ymm8
985  DB  196,65,124,82,192                   ; vrsqrtps      %ymm8,%ymm8
986  DB  196,65,124,82,192                   ; vrsqrtps      %ymm8,%ymm8
987  DB  196,65,124,82,192                   ; vrsqrtps      %ymm8,%ymm8
988  DB  196,65,124,82,200                   ; vrsqrtps      %ymm8,%ymm9
989  DB  197,252,83,192                      ; vrcpps        %ymm0,%ymm0
990  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
991  DB  196,65,124,83,193                   ; vrcpps        %ymm9,%ymm8
992  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
993  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
994  DB  196,193,124,95,192                  ; vmaxps        %ymm8,%ymm0,%ymm0
995  DB  197,252,82,201                      ; vrsqrtps      %ymm1,%ymm1
996  DB  197,124,82,201                      ; vrsqrtps      %ymm1,%ymm9
997  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
998  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
999  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
1000  DB  196,65,124,82,209                   ; vrsqrtps      %ymm9,%ymm10
1001  DB  197,252,83,201                      ; vrcpps        %ymm1,%ymm1
1002  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
1003  DB  196,65,124,83,202                   ; vrcpps        %ymm10,%ymm9
1004  DB  196,193,116,89,201                  ; vmulps        %ymm9,%ymm1,%ymm1
1005  DB  196,193,116,95,200                  ; vmaxps        %ymm8,%ymm1,%ymm1
1006  DB  197,252,82,210                      ; vrsqrtps      %ymm2,%ymm2
1007  DB  197,124,82,202                      ; vrsqrtps      %ymm2,%ymm9
1008  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
1009  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
1010  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
1011  DB  196,65,124,82,209                   ; vrsqrtps      %ymm9,%ymm10
1012  DB  197,252,83,210                      ; vrcpps        %ymm2,%ymm2
1013  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
1014  DB  196,65,124,83,202                   ; vrcpps        %ymm10,%ymm9
1015  DB  196,193,108,89,209                  ; vmulps        %ymm9,%ymm2,%ymm2
1016  DB  196,193,108,95,208                  ; vmaxps        %ymm8,%ymm2,%ymm2
1017  DB  72,173                              ; lods          %ds:(%rsi),%rax
1018  DB  255,224                             ; jmpq          *%rax
1019
1020PUBLIC _sk_rgb_to_hsl_hsw
1021_sk_rgb_to_hsl_hsw LABEL PROC
1022  DB  72,131,236,56                       ; sub           $0x38,%rsp
1023  DB  197,252,17,60,36                    ; vmovups       %ymm7,(%rsp)
1024  DB  197,252,40,254                      ; vmovaps       %ymm6,%ymm7
1025  DB  197,252,40,245                      ; vmovaps       %ymm5,%ymm6
1026  DB  197,252,40,236                      ; vmovaps       %ymm4,%ymm5
1027  DB  197,252,40,227                      ; vmovaps       %ymm3,%ymm4
1028  DB  197,252,40,216                      ; vmovaps       %ymm0,%ymm3
1029  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
1030  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
1031  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
1032  DB  184,0,0,192,64                      ; mov           $0x40c00000,%eax
1033  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
1034  DB  65,185,0,0,0,64                     ; mov           $0x40000000,%r9d
1035  DB  184,0,0,128,64                      ; mov           $0x40800000,%eax
1036  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
1037  DB  197,100,95,217                      ; vmaxps        %ymm1,%ymm3,%ymm11
1038  DB  197,36,95,218                       ; vmaxps        %ymm2,%ymm11,%ymm11
1039  DB  197,100,93,225                      ; vminps        %ymm1,%ymm3,%ymm12
1040  DB  197,28,93,226                       ; vminps        %ymm2,%ymm12,%ymm12
1041  DB  196,65,36,92,236                    ; vsubps        %ymm12,%ymm11,%ymm13
1042  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1043  DB  196,65,60,94,197                    ; vdivps        %ymm13,%ymm8,%ymm8
1044  DB  197,116,194,242,1                   ; vcmpltps      %ymm2,%ymm1,%ymm14
1045  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
1046  DB  196,65,4,87,255                     ; vxorps        %ymm15,%ymm15,%ymm15
1047  DB  196,67,5,74,201,224                 ; vblendvps     %ymm14,%ymm9,%ymm15,%ymm9
1048  DB  197,116,92,242                      ; vsubps        %ymm2,%ymm1,%ymm14
1049  DB  196,66,61,168,241                   ; vfmadd213ps   %ymm9,%ymm8,%ymm14
1050  DB  197,236,92,195                      ; vsubps        %ymm3,%ymm2,%ymm0
1051  DB  197,100,92,201                      ; vsubps        %ymm1,%ymm3,%ymm9
1052  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
1053  DB  196,66,61,168,202                   ; vfmadd213ps   %ymm10,%ymm8,%ymm9
1054  DB  196,193,121,110,209                 ; vmovd         %r9d,%xmm2
1055  DB  196,98,125,88,210                   ; vpbroadcastd  %xmm2,%ymm10
1056  DB  196,194,61,168,194                  ; vfmadd213ps   %ymm10,%ymm8,%ymm0
1057  DB  197,164,194,201,0                   ; vcmpeqps      %ymm1,%ymm11,%ymm1
1058  DB  196,227,53,74,192,16                ; vblendvps     %ymm1,%ymm0,%ymm9,%ymm0
1059  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
1060  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
1061  DB  197,164,194,211,0                   ; vcmpeqps      %ymm3,%ymm11,%ymm2
1062  DB  196,195,125,74,198,32               ; vblendvps     %ymm2,%ymm14,%ymm0,%ymm0
1063  DB  196,193,36,88,220                   ; vaddps        %ymm12,%ymm11,%ymm3
1064  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
1065  DB  197,228,89,209                      ; vmulps        %ymm1,%ymm3,%ymm2
1066  DB  197,244,194,202,1                   ; vcmpltps      %ymm2,%ymm1,%ymm1
1067  DB  196,65,44,92,195                    ; vsubps        %ymm11,%ymm10,%ymm8
1068  DB  196,65,60,92,196                    ; vsubps        %ymm12,%ymm8,%ymm8
1069  DB  196,195,101,74,200,16               ; vblendvps     %ymm1,%ymm8,%ymm3,%ymm1
1070  DB  196,193,36,194,220,0                ; vcmpeqps      %ymm12,%ymm11,%ymm3
1071  DB  197,148,94,201                      ; vdivps        %ymm1,%ymm13,%ymm1
1072  DB  196,195,125,74,199,48               ; vblendvps     %ymm3,%ymm15,%ymm0,%ymm0
1073  DB  196,195,117,74,207,48               ; vblendvps     %ymm3,%ymm15,%ymm1,%ymm1
1074  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
1075  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1076  DB  197,228,89,192                      ; vmulps        %ymm0,%ymm3,%ymm0
1077  DB  72,173                              ; lods          %ds:(%rsi),%rax
1078  DB  197,252,40,220                      ; vmovaps       %ymm4,%ymm3
1079  DB  197,252,40,229                      ; vmovaps       %ymm5,%ymm4
1080  DB  197,252,40,238                      ; vmovaps       %ymm6,%ymm5
1081  DB  197,252,40,247                      ; vmovaps       %ymm7,%ymm6
1082  DB  197,252,16,60,36                    ; vmovups       (%rsp),%ymm7
1083  DB  72,131,196,56                       ; add           $0x38,%rsp
1084  DB  255,224                             ; jmpq          *%rax
1085
1086PUBLIC _sk_hsl_to_rgb_hsw
1087_sk_hsl_to_rgb_hsw LABEL PROC
1088  DB  72,129,236,184,0,0,0                ; sub           $0xb8,%rsp
1089  DB  197,252,17,188,36,128,0,0,0         ; vmovups       %ymm7,0x80(%rsp)
1090  DB  197,252,17,116,36,96                ; vmovups       %ymm6,0x60(%rsp)
1091  DB  197,252,17,108,36,64                ; vmovups       %ymm5,0x40(%rsp)
1092  DB  197,252,17,100,36,32                ; vmovups       %ymm4,0x20(%rsp)
1093  DB  197,252,17,28,36                    ; vmovups       %ymm3,(%rsp)
1094  DB  197,252,40,233                      ; vmovaps       %ymm1,%ymm5
1095  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
1096  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
1097  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
1098  DB  196,193,108,194,200,1               ; vcmpltps      %ymm8,%ymm2,%ymm1
1099  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
1100  DB  197,249,110,224                     ; vmovd         %eax,%xmm4
1101  DB  196,98,125,88,212                   ; vpbroadcastd  %xmm4,%ymm10
1102  DB  197,172,88,229                      ; vaddps        %ymm5,%ymm10,%ymm4
1103  DB  197,220,89,226                      ; vmulps        %ymm2,%ymm4,%ymm4
1104  DB  197,84,88,202                       ; vaddps        %ymm2,%ymm5,%ymm9
1105  DB  196,98,85,188,202                   ; vfnmadd231ps  %ymm2,%ymm5,%ymm9
1106  DB  196,99,53,74,204,16                 ; vblendvps     %ymm1,%ymm4,%ymm9,%ymm9
1107  DB  65,184,0,0,0,64                     ; mov           $0x40000000,%r8d
1108  DB  184,171,170,170,62                  ; mov           $0x3eaaaaab,%eax
1109  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
1110  DB  196,98,125,88,233                   ; vpbroadcastd  %xmm1,%ymm13
1111  DB  197,148,88,224                      ; vaddps        %ymm0,%ymm13,%ymm4
1112  DB  184,0,0,0,0                         ; mov           $0x0,%eax
1113  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
1114  DB  196,98,125,88,225                   ; vpbroadcastd  %xmm1,%ymm12
1115  DB  197,172,194,204,1                   ; vcmpltps      %ymm4,%ymm10,%ymm1
1116  DB  196,65,92,92,218                    ; vsubps        %ymm10,%ymm4,%ymm11
1117  DB  196,195,93,74,203,16                ; vblendvps     %ymm1,%ymm11,%ymm4,%ymm1
1118  DB  196,65,92,194,220,1                 ; vcmpltps      %ymm12,%ymm4,%ymm11
1119  DB  197,44,88,244                       ; vaddps        %ymm4,%ymm10,%ymm14
1120  DB  196,195,117,74,206,176              ; vblendvps     %ymm11,%ymm14,%ymm1,%ymm1
1121  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
1122  DB  196,98,125,88,219                   ; vpbroadcastd  %xmm3,%ymm11
1123  DB  196,66,109,170,217                  ; vfmsub213ps   %ymm9,%ymm2,%ymm11
1124  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
1125  DB  184,0,0,192,64                      ; mov           $0x40c00000,%eax
1126  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1127  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1128  DB  196,65,52,92,243                    ; vsubps        %ymm11,%ymm9,%ymm14
1129  DB  197,12,89,243                       ; vmulps        %ymm3,%ymm14,%ymm14
1130  DB  184,171,170,42,63                   ; mov           $0x3f2aaaab,%eax
1131  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1132  DB  196,98,125,88,251                   ; vpbroadcastd  %xmm3,%ymm15
1133  DB  197,132,92,217                      ; vsubps        %ymm1,%ymm15,%ymm3
1134  DB  196,194,13,168,219                  ; vfmadd213ps   %ymm11,%ymm14,%ymm3
1135  DB  196,193,116,194,255,1               ; vcmpltps      %ymm15,%ymm1,%ymm7
1136  DB  196,227,37,74,219,112               ; vblendvps     %ymm7,%ymm3,%ymm11,%ymm3
1137  DB  196,193,116,194,248,1               ; vcmpltps      %ymm8,%ymm1,%ymm7
1138  DB  196,195,101,74,249,112              ; vblendvps     %ymm7,%ymm9,%ymm3,%ymm7
1139  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
1140  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1141  DB  197,244,194,203,1                   ; vcmpltps      %ymm3,%ymm1,%ymm1
1142  DB  196,194,13,168,227                  ; vfmadd213ps   %ymm11,%ymm14,%ymm4
1143  DB  196,227,69,74,228,16                ; vblendvps     %ymm1,%ymm4,%ymm7,%ymm4
1144  DB  197,172,194,200,1                   ; vcmpltps      %ymm0,%ymm10,%ymm1
1145  DB  196,193,124,92,250                  ; vsubps        %ymm10,%ymm0,%ymm7
1146  DB  196,227,125,74,207,16               ; vblendvps     %ymm1,%ymm7,%ymm0,%ymm1
1147  DB  196,193,124,194,252,1               ; vcmpltps      %ymm12,%ymm0,%ymm7
1148  DB  197,172,88,240                      ; vaddps        %ymm0,%ymm10,%ymm6
1149  DB  196,227,117,74,206,112              ; vblendvps     %ymm7,%ymm6,%ymm1,%ymm1
1150  DB  197,132,92,241                      ; vsubps        %ymm1,%ymm15,%ymm6
1151  DB  196,194,13,168,243                  ; vfmadd213ps   %ymm11,%ymm14,%ymm6
1152  DB  196,193,116,194,255,1               ; vcmpltps      %ymm15,%ymm1,%ymm7
1153  DB  196,227,37,74,246,112               ; vblendvps     %ymm7,%ymm6,%ymm11,%ymm6
1154  DB  196,193,116,194,248,1               ; vcmpltps      %ymm8,%ymm1,%ymm7
1155  DB  196,195,77,74,241,112               ; vblendvps     %ymm7,%ymm9,%ymm6,%ymm6
1156  DB  197,244,194,203,1                   ; vcmpltps      %ymm3,%ymm1,%ymm1
1157  DB  196,193,124,92,253                  ; vsubps        %ymm13,%ymm0,%ymm7
1158  DB  196,194,13,168,195                  ; vfmadd213ps   %ymm11,%ymm14,%ymm0
1159  DB  196,227,77,74,200,16                ; vblendvps     %ymm1,%ymm0,%ymm6,%ymm1
1160  DB  197,172,194,199,1                   ; vcmpltps      %ymm7,%ymm10,%ymm0
1161  DB  196,193,68,92,242                   ; vsubps        %ymm10,%ymm7,%ymm6
1162  DB  196,227,69,74,198,0                 ; vblendvps     %ymm0,%ymm6,%ymm7,%ymm0
1163  DB  196,193,68,194,244,1                ; vcmpltps      %ymm12,%ymm7,%ymm6
1164  DB  197,44,88,215                       ; vaddps        %ymm7,%ymm10,%ymm10
1165  DB  196,195,125,74,194,96               ; vblendvps     %ymm6,%ymm10,%ymm0,%ymm0
1166  DB  196,194,13,168,251                  ; vfmadd213ps   %ymm11,%ymm14,%ymm7
1167  DB  197,132,92,240                      ; vsubps        %ymm0,%ymm15,%ymm6
1168  DB  196,194,13,168,243                  ; vfmadd213ps   %ymm11,%ymm14,%ymm6
1169  DB  196,65,124,194,215,1                ; vcmpltps      %ymm15,%ymm0,%ymm10
1170  DB  196,227,37,74,246,160               ; vblendvps     %ymm10,%ymm6,%ymm11,%ymm6
1171  DB  196,65,124,194,192,1                ; vcmpltps      %ymm8,%ymm0,%ymm8
1172  DB  196,195,77,74,241,128               ; vblendvps     %ymm8,%ymm9,%ymm6,%ymm6
1173  DB  197,252,194,195,1                   ; vcmpltps      %ymm3,%ymm0,%ymm0
1174  DB  196,227,77,74,223,0                 ; vblendvps     %ymm0,%ymm7,%ymm6,%ymm3
1175  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
1176  DB  197,212,194,232,0                   ; vcmpeqps      %ymm0,%ymm5,%ymm5
1177  DB  196,227,93,74,194,80                ; vblendvps     %ymm5,%ymm2,%ymm4,%ymm0
1178  DB  196,227,117,74,202,80               ; vblendvps     %ymm5,%ymm2,%ymm1,%ymm1
1179  DB  196,227,101,74,210,80               ; vblendvps     %ymm5,%ymm2,%ymm3,%ymm2
1180  DB  72,173                              ; lods          %ds:(%rsi),%rax
1181  DB  197,252,16,28,36                    ; vmovups       (%rsp),%ymm3
1182  DB  197,252,16,100,36,32                ; vmovups       0x20(%rsp),%ymm4
1183  DB  197,252,16,108,36,64                ; vmovups       0x40(%rsp),%ymm5
1184  DB  197,252,16,116,36,96                ; vmovups       0x60(%rsp),%ymm6
1185  DB  197,252,16,188,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm7
1186  DB  72,129,196,184,0,0,0                ; add           $0xb8,%rsp
1187  DB  255,224                             ; jmpq          *%rax
1188
1189PUBLIC _sk_scale_1_float_hsw
1190_sk_scale_1_float_hsw LABEL PROC
1191  DB  72,173                              ; lods          %ds:(%rsi),%rax
1192  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
1193  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
1194  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
1195  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
1196  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
1197  DB  72,173                              ; lods          %ds:(%rsi),%rax
1198  DB  255,224                             ; jmpq          *%rax
1199
1200PUBLIC _sk_scale_u8_hsw
1201_sk_scale_u8_hsw LABEL PROC
1202  DB  73,137,200                          ; mov           %rcx,%r8
1203  DB  72,173                              ; lods          %ds:(%rsi),%rax
1204  DB  72,139,0                            ; mov           (%rax),%rax
1205  DB  72,1,248                            ; add           %rdi,%rax
1206  DB  77,133,192                          ; test          %r8,%r8
1207  DB  117,56                              ; jne           126b <_sk_scale_u8_hsw+0x48>
1208  DB  197,122,126,0                       ; vmovq         (%rax),%xmm8
1209  DB  196,66,125,49,192                   ; vpmovzxbd     %xmm8,%ymm8
1210  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1211  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
1212  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
1213  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
1214  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
1215  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
1216  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
1217  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
1218  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
1219  DB  72,173                              ; lods          %ds:(%rsi),%rax
1220  DB  76,137,193                          ; mov           %r8,%rcx
1221  DB  255,224                             ; jmpq          *%rax
1222  DB  49,201                              ; xor           %ecx,%ecx
1223  DB  77,137,194                          ; mov           %r8,%r10
1224  DB  69,49,201                           ; xor           %r9d,%r9d
1225  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
1226  DB  72,255,192                          ; inc           %rax
1227  DB  73,211,227                          ; shl           %cl,%r11
1228  DB  77,9,217                            ; or            %r11,%r9
1229  DB  72,131,193,8                        ; add           $0x8,%rcx
1230  DB  73,255,202                          ; dec           %r10
1231  DB  117,234                             ; jne           1273 <_sk_scale_u8_hsw+0x50>
1232  DB  196,65,249,110,193                  ; vmovq         %r9,%xmm8
1233  DB  235,167                             ; jmp           1237 <_sk_scale_u8_hsw+0x14>
1234
1235PUBLIC _sk_lerp_1_float_hsw
1236_sk_lerp_1_float_hsw LABEL PROC
1237  DB  72,173                              ; lods          %ds:(%rsi),%rax
1238  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
1239  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
1240  DB  196,226,61,168,196                  ; vfmadd213ps   %ymm4,%ymm8,%ymm0
1241  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
1242  DB  196,226,61,168,205                  ; vfmadd213ps   %ymm5,%ymm8,%ymm1
1243  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
1244  DB  196,226,61,168,214                  ; vfmadd213ps   %ymm6,%ymm8,%ymm2
1245  DB  197,228,92,223                      ; vsubps        %ymm7,%ymm3,%ymm3
1246  DB  196,226,61,168,223                  ; vfmadd213ps   %ymm7,%ymm8,%ymm3
1247  DB  72,173                              ; lods          %ds:(%rsi),%rax
1248  DB  255,224                             ; jmpq          *%rax
1249
1250PUBLIC _sk_lerp_u8_hsw
1251_sk_lerp_u8_hsw LABEL PROC
1252  DB  73,137,200                          ; mov           %rcx,%r8
1253  DB  72,173                              ; lods          %ds:(%rsi),%rax
1254  DB  72,139,0                            ; mov           (%rax),%rax
1255  DB  72,1,248                            ; add           %rdi,%rax
1256  DB  77,133,192                          ; test          %r8,%r8
1257  DB  117,76                              ; jne           131b <_sk_lerp_u8_hsw+0x5c>
1258  DB  197,122,126,0                       ; vmovq         (%rax),%xmm8
1259  DB  196,66,125,49,192                   ; vpmovzxbd     %xmm8,%ymm8
1260  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1261  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
1262  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
1263  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
1264  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
1265  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
1266  DB  196,226,61,168,196                  ; vfmadd213ps   %ymm4,%ymm8,%ymm0
1267  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
1268  DB  196,226,61,168,205                  ; vfmadd213ps   %ymm5,%ymm8,%ymm1
1269  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
1270  DB  196,226,61,168,214                  ; vfmadd213ps   %ymm6,%ymm8,%ymm2
1271  DB  197,228,92,223                      ; vsubps        %ymm7,%ymm3,%ymm3
1272  DB  196,226,61,168,223                  ; vfmadd213ps   %ymm7,%ymm8,%ymm3
1273  DB  72,173                              ; lods          %ds:(%rsi),%rax
1274  DB  76,137,193                          ; mov           %r8,%rcx
1275  DB  255,224                             ; jmpq          *%rax
1276  DB  49,201                              ; xor           %ecx,%ecx
1277  DB  77,137,194                          ; mov           %r8,%r10
1278  DB  69,49,201                           ; xor           %r9d,%r9d
1279  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
1280  DB  72,255,192                          ; inc           %rax
1281  DB  73,211,227                          ; shl           %cl,%r11
1282  DB  77,9,217                            ; or            %r11,%r9
1283  DB  72,131,193,8                        ; add           $0x8,%rcx
1284  DB  73,255,202                          ; dec           %r10
1285  DB  117,234                             ; jne           1323 <_sk_lerp_u8_hsw+0x64>
1286  DB  196,65,249,110,193                  ; vmovq         %r9,%xmm8
1287  DB  235,147                             ; jmp           12d3 <_sk_lerp_u8_hsw+0x14>
1288
1289PUBLIC _sk_lerp_565_hsw
1290_sk_lerp_565_hsw LABEL PROC
1291  DB  72,173                              ; lods          %ds:(%rsi),%rax
1292  DB  76,139,16                           ; mov           (%rax),%r10
1293  DB  72,133,201                          ; test          %rcx,%rcx
1294  DB  15,133,179,0,0,0                    ; jne           1401 <_sk_lerp_565_hsw+0xc1>
1295  DB  196,193,122,111,28,122              ; vmovdqu       (%r10,%rdi,2),%xmm3
1296  DB  196,98,125,51,195                   ; vpmovzxwd     %xmm3,%ymm8
1297  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
1298  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1299  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1300  DB  196,193,101,219,216                 ; vpand         %ymm8,%ymm3,%ymm3
1301  DB  197,124,91,203                      ; vcvtdq2ps     %ymm3,%ymm9
1302  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
1303  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1304  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1305  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
1306  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
1307  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1308  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1309  DB  196,193,101,219,216                 ; vpand         %ymm8,%ymm3,%ymm3
1310  DB  197,124,91,211                      ; vcvtdq2ps     %ymm3,%ymm10
1311  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
1312  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1313  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1314  DB  197,44,89,211                       ; vmulps        %ymm3,%ymm10,%ymm10
1315  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
1316  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1317  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1318  DB  196,193,101,219,216                 ; vpand         %ymm8,%ymm3,%ymm3
1319  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
1320  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
1321  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1322  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1323  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
1324  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
1325  DB  196,226,53,168,196                  ; vfmadd213ps   %ymm4,%ymm9,%ymm0
1326  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
1327  DB  196,226,45,168,205                  ; vfmadd213ps   %ymm5,%ymm10,%ymm1
1328  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
1329  DB  196,226,101,168,214                 ; vfmadd213ps   %ymm6,%ymm3,%ymm2
1330  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
1331  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1332  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1333  DB  72,173                              ; lods          %ds:(%rsi),%rax
1334  DB  255,224                             ; jmpq          *%rax
1335  DB  65,137,200                          ; mov           %ecx,%r8d
1336  DB  65,128,224,7                        ; and           $0x7,%r8b
1337  DB  197,225,239,219                     ; vpxor         %xmm3,%xmm3,%xmm3
1338  DB  65,254,200                          ; dec           %r8b
1339  DB  65,128,248,6                        ; cmp           $0x6,%r8b
1340  DB  15,135,59,255,255,255               ; ja            1354 <_sk_lerp_565_hsw+0x14>
1341  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
1342  DB  76,141,13,76,0,0,0                  ; lea           0x4c(%rip),%r9        # 1470 <_sk_lerp_565_hsw+0x130>
1343  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
1344  DB  76,1,200                            ; add           %r9,%rax
1345  DB  255,224                             ; jmpq          *%rax
1346  DB  197,225,239,219                     ; vpxor         %xmm3,%xmm3,%xmm3
1347  DB  196,193,97,196,92,122,12,6          ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm3,%xmm3
1348  DB  196,193,97,196,92,122,10,5          ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm3,%xmm3
1349  DB  196,193,97,196,92,122,8,4           ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm3,%xmm3
1350  DB  196,193,97,196,92,122,6,3           ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm3,%xmm3
1351  DB  196,193,97,196,92,122,4,2           ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm3,%xmm3
1352  DB  196,193,97,196,92,122,2,1           ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm3,%xmm3
1353  DB  196,193,97,196,28,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm3,%xmm3
1354  DB  233,231,254,255,255                 ; jmpq          1354 <_sk_lerp_565_hsw+0x14>
1355  DB  15,31,0                             ; nopl          (%rax)
1356  DB  241                                 ; icebp
1357  DB  255                                 ; (bad)
1358  DB  255                                 ; (bad)
1359  DB  255                                 ; (bad)
1360  DB  233,255,255,255,225                 ; jmpq          ffffffffe2001478 <_sk_callback_hsw+0xffffffffe1ffd27e>
1361  DB  255                                 ; (bad)
1362  DB  255                                 ; (bad)
1363  DB  255                                 ; (bad)
1364  DB  217,255                             ; fcos
1365  DB  255                                 ; (bad)
1366  DB  255,209                             ; callq         *%rcx
1367  DB  255                                 ; (bad)
1368  DB  255                                 ; (bad)
1369  DB  255,201                             ; dec           %ecx
1370  DB  255                                 ; (bad)
1371  DB  255                                 ; (bad)
1372  DB  255                                 ; (bad)
1373  DB  189                                 ; .byte         0xbd
1374  DB  255                                 ; (bad)
1375  DB  255                                 ; (bad)
1376  DB  255                                 ; .byte         0xff
1377
1378PUBLIC _sk_load_tables_hsw
1379_sk_load_tables_hsw LABEL PROC
1380  DB  73,137,200                          ; mov           %rcx,%r8
1381  DB  72,173                              ; lods          %ds:(%rsi),%rax
1382  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
1383  DB  76,3,8                              ; add           (%rax),%r9
1384  DB  77,133,192                          ; test          %r8,%r8
1385  DB  117,121                             ; jne           151a <_sk_load_tables_hsw+0x8e>
1386  DB  196,193,126,111,25                  ; vmovdqu       (%r9),%ymm3
1387  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
1388  DB  197,249,110,193                     ; vmovd         %ecx,%xmm0
1389  DB  196,226,125,88,208                  ; vpbroadcastd  %xmm0,%ymm2
1390  DB  197,237,219,203                     ; vpand         %ymm3,%ymm2,%ymm1
1391  DB  196,65,61,118,192                   ; vpcmpeqd      %ymm8,%ymm8,%ymm8
1392  DB  72,139,72,8                         ; mov           0x8(%rax),%rcx
1393  DB  76,139,72,16                        ; mov           0x10(%rax),%r9
1394  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
1395  DB  196,226,53,146,4,137                ; vgatherdps    %ymm9,(%rcx,%ymm1,4),%ymm0
1396  DB  197,245,114,211,8                   ; vpsrld        $0x8,%ymm3,%ymm1
1397  DB  197,109,219,201                     ; vpand         %ymm1,%ymm2,%ymm9
1398  DB  196,65,45,118,210                   ; vpcmpeqd      %ymm10,%ymm10,%ymm10
1399  DB  196,130,45,146,12,137               ; vgatherdps    %ymm10,(%r9,%ymm9,4),%ymm1
1400  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
1401  DB  197,181,114,211,16                  ; vpsrld        $0x10,%ymm3,%ymm9
1402  DB  196,65,109,219,201                  ; vpand         %ymm9,%ymm2,%ymm9
1403  DB  196,162,61,146,20,136               ; vgatherdps    %ymm8,(%rax,%ymm9,4),%ymm2
1404  DB  197,229,114,211,24                  ; vpsrld        $0x18,%ymm3,%ymm3
1405  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
1406  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
1407  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1408  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1409  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
1410  DB  72,173                              ; lods          %ds:(%rsi),%rax
1411  DB  76,137,193                          ; mov           %r8,%rcx
1412  DB  255,224                             ; jmpq          *%rax
1413  DB  185,8,0,0,0                         ; mov           $0x8,%ecx
1414  DB  68,41,193                           ; sub           %r8d,%ecx
1415  DB  192,225,3                           ; shl           $0x3,%cl
1416  DB  73,199,194,255,255,255,255          ; mov           $0xffffffffffffffff,%r10
1417  DB  73,211,234                          ; shr           %cl,%r10
1418  DB  196,193,249,110,194                 ; vmovq         %r10,%xmm0
1419  DB  196,226,125,33,192                  ; vpmovsxbd     %xmm0,%ymm0
1420  DB  196,194,125,140,25                  ; vpmaskmovd    (%r9),%ymm0,%ymm3
1421  DB  233,99,255,255,255                  ; jmpq          14a6 <_sk_load_tables_hsw+0x1a>
1422
1423PUBLIC _sk_load_tables_u16_be_hsw
1424_sk_load_tables_u16_be_hsw LABEL PROC
1425  DB  72,173                              ; lods          %ds:(%rsi),%rax
1426  DB  76,139,0                            ; mov           (%rax),%r8
1427  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
1428  DB  72,133,201                          ; test          %rcx,%rcx
1429  DB  15,133,216,0,0,0                    ; jne           1631 <_sk_load_tables_u16_be_hsw+0xee>
1430  DB  196,1,121,16,4,72                   ; vmovupd       (%r8,%r9,2),%xmm8
1431  DB  196,129,121,16,84,72,16             ; vmovupd       0x10(%r8,%r9,2),%xmm2
1432  DB  196,129,121,16,92,72,32             ; vmovupd       0x20(%r8,%r9,2),%xmm3
1433  DB  196,1,122,111,76,72,48              ; vmovdqu       0x30(%r8,%r9,2),%xmm9
1434  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
1435  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
1436  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
1437  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
1438  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
1439  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
1440  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
1441  DB  197,113,105,235                     ; vpunpckhwd    %xmm3,%xmm1,%xmm13
1442  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
1443  DB  196,226,125,51,192                  ; vpmovzxwd     %xmm0,%ymm0
1444  DB  65,184,255,0,0,0                    ; mov           $0xff,%r8d
1445  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1446  DB  196,98,125,88,209                   ; vpbroadcastd  %xmm1,%ymm10
1447  DB  196,193,125,219,202                 ; vpand         %ymm10,%ymm0,%ymm1
1448  DB  196,65,37,118,219                   ; vpcmpeqd      %ymm11,%ymm11,%ymm11
1449  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
1450  DB  76,139,72,16                        ; mov           0x10(%rax),%r9
1451  DB  196,65,29,118,228                   ; vpcmpeqd      %ymm12,%ymm12,%ymm12
1452  DB  196,194,29,146,4,136                ; vgatherdps    %ymm12,(%r8,%ymm1,4),%ymm0
1453  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
1454  DB  196,226,125,51,201                  ; vpmovzxwd     %xmm1,%ymm1
1455  DB  196,193,117,219,210                 ; vpand         %ymm10,%ymm1,%ymm2
1456  DB  196,65,61,118,192                   ; vpcmpeqd      %ymm8,%ymm8,%ymm8
1457  DB  196,194,61,146,12,145               ; vgatherdps    %ymm8,(%r9,%ymm2,4),%ymm1
1458  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
1459  DB  196,193,49,108,213                  ; vpunpcklqdq   %xmm13,%xmm9,%xmm2
1460  DB  196,226,125,51,210                  ; vpmovzxwd     %xmm2,%ymm2
1461  DB  196,65,109,219,194                  ; vpand         %ymm10,%ymm2,%ymm8
1462  DB  196,162,37,146,20,128               ; vgatherdps    %ymm11,(%rax,%ymm8,4),%ymm2
1463  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
1464  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1465  DB  196,98,125,88,195                   ; vpbroadcastd  %xmm3,%ymm8
1466  DB  196,193,49,109,221                  ; vpunpckhqdq   %xmm13,%xmm9,%xmm3
1467  DB  197,177,113,243,8                   ; vpsllw        $0x8,%xmm3,%xmm9
1468  DB  197,225,113,211,8                   ; vpsrlw        $0x8,%xmm3,%xmm3
1469  DB  197,177,235,219                     ; vpor          %xmm3,%xmm9,%xmm3
1470  DB  196,226,125,51,219                  ; vpmovzxwd     %xmm3,%ymm3
1471  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
1472  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
1473  DB  72,173                              ; lods          %ds:(%rsi),%rax
1474  DB  255,224                             ; jmpq          *%rax
1475  DB  196,1,123,16,4,72                   ; vmovsd        (%r8,%r9,2),%xmm8
1476  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
1477  DB  72,131,249,1                        ; cmp           $0x1,%rcx
1478  DB  116,85                              ; je            1697 <_sk_load_tables_u16_be_hsw+0x154>
1479  DB  196,1,57,22,68,72,8                 ; vmovhpd       0x8(%r8,%r9,2),%xmm8,%xmm8
1480  DB  72,131,249,3                        ; cmp           $0x3,%rcx
1481  DB  114,72                              ; jb            1697 <_sk_load_tables_u16_be_hsw+0x154>
1482  DB  196,129,123,16,84,72,16             ; vmovsd        0x10(%r8,%r9,2),%xmm2
1483  DB  72,131,249,3                        ; cmp           $0x3,%rcx
1484  DB  116,72                              ; je            16a4 <_sk_load_tables_u16_be_hsw+0x161>
1485  DB  196,129,105,22,84,72,24             ; vmovhpd       0x18(%r8,%r9,2),%xmm2,%xmm2
1486  DB  72,131,249,5                        ; cmp           $0x5,%rcx
1487  DB  114,59                              ; jb            16a4 <_sk_load_tables_u16_be_hsw+0x161>
1488  DB  196,129,123,16,92,72,32             ; vmovsd        0x20(%r8,%r9,2),%xmm3
1489  DB  72,131,249,5                        ; cmp           $0x5,%rcx
1490  DB  15,132,250,254,255,255              ; je            1574 <_sk_load_tables_u16_be_hsw+0x31>
1491  DB  196,129,97,22,92,72,40              ; vmovhpd       0x28(%r8,%r9,2),%xmm3,%xmm3
1492  DB  72,131,249,7                        ; cmp           $0x7,%rcx
1493  DB  15,130,233,254,255,255              ; jb            1574 <_sk_load_tables_u16_be_hsw+0x31>
1494  DB  196,1,122,126,76,72,48              ; vmovq         0x30(%r8,%r9,2),%xmm9
1495  DB  233,221,254,255,255                 ; jmpq          1574 <_sk_load_tables_u16_be_hsw+0x31>
1496  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
1497  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
1498  DB  233,208,254,255,255                 ; jmpq          1574 <_sk_load_tables_u16_be_hsw+0x31>
1499  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
1500  DB  233,199,254,255,255                 ; jmpq          1574 <_sk_load_tables_u16_be_hsw+0x31>
1501
1502PUBLIC _sk_load_tables_rgb_u16_be_hsw
1503_sk_load_tables_rgb_u16_be_hsw LABEL PROC
1504  DB  72,173                              ; lods          %ds:(%rsi),%rax
1505  DB  76,139,0                            ; mov           (%rax),%r8
1506  DB  76,141,12,127                       ; lea           (%rdi,%rdi,2),%r9
1507  DB  72,133,201                          ; test          %rcx,%rcx
1508  DB  15,133,207,0,0,0                    ; jne           178e <_sk_load_tables_rgb_u16_be_hsw+0xe1>
1509  DB  196,129,122,111,4,72                ; vmovdqu       (%r8,%r9,2),%xmm0
1510  DB  196,129,122,111,84,72,12            ; vmovdqu       0xc(%r8,%r9,2),%xmm2
1511  DB  196,129,122,111,76,72,24            ; vmovdqu       0x18(%r8,%r9,2),%xmm1
1512  DB  196,129,122,111,92,72,32            ; vmovdqu       0x20(%r8,%r9,2),%xmm3
1513  DB  197,225,115,219,4                   ; vpsrldq       $0x4,%xmm3,%xmm3
1514  DB  197,185,115,216,6                   ; vpsrldq       $0x6,%xmm0,%xmm8
1515  DB  197,177,115,218,6                   ; vpsrldq       $0x6,%xmm2,%xmm9
1516  DB  197,161,115,217,6                   ; vpsrldq       $0x6,%xmm1,%xmm11
1517  DB  197,169,115,219,6                   ; vpsrldq       $0x6,%xmm3,%xmm10
1518  DB  197,249,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm0
1519  DB  196,193,57,97,209                   ; vpunpcklwd    %xmm9,%xmm8,%xmm2
1520  DB  197,241,97,203                      ; vpunpcklwd    %xmm3,%xmm1,%xmm1
1521  DB  196,193,33,97,218                   ; vpunpcklwd    %xmm10,%xmm11,%xmm3
1522  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
1523  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
1524  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
1525  DB  197,241,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm3
1526  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
1527  DB  196,226,125,51,192                  ; vpmovzxwd     %xmm0,%ymm0
1528  DB  65,184,255,0,0,0                    ; mov           $0xff,%r8d
1529  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1530  DB  196,98,125,88,209                   ; vpbroadcastd  %xmm1,%ymm10
1531  DB  196,193,125,219,202                 ; vpand         %ymm10,%ymm0,%ymm1
1532  DB  196,65,37,118,219                   ; vpcmpeqd      %ymm11,%ymm11,%ymm11
1533  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
1534  DB  76,139,72,16                        ; mov           0x10(%rax),%r9
1535  DB  196,65,29,118,228                   ; vpcmpeqd      %ymm12,%ymm12,%ymm12
1536  DB  196,194,29,146,4,136                ; vgatherdps    %ymm12,(%r8,%ymm1,4),%ymm0
1537  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
1538  DB  196,226,125,51,201                  ; vpmovzxwd     %xmm1,%ymm1
1539  DB  196,193,117,219,210                 ; vpand         %ymm10,%ymm1,%ymm2
1540  DB  196,65,61,118,192                   ; vpcmpeqd      %ymm8,%ymm8,%ymm8
1541  DB  196,194,61,146,12,145               ; vgatherdps    %ymm8,(%r9,%ymm2,4),%ymm1
1542  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
1543  DB  197,177,108,211                     ; vpunpcklqdq   %xmm3,%xmm9,%xmm2
1544  DB  196,226,125,51,210                  ; vpmovzxwd     %xmm2,%ymm2
1545  DB  196,193,109,219,218                 ; vpand         %ymm10,%ymm2,%ymm3
1546  DB  196,226,37,146,20,152               ; vgatherdps    %ymm11,(%rax,%ymm3,4),%ymm2
1547  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
1548  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1549  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1550  DB  72,173                              ; lods          %ds:(%rsi),%rax
1551  DB  255,224                             ; jmpq          *%rax
1552  DB  196,129,121,110,4,72                ; vmovd         (%r8,%r9,2),%xmm0
1553  DB  196,129,121,196,68,72,4,2           ; vpinsrw       $0x2,0x4(%r8,%r9,2),%xmm0,%xmm0
1554  DB  72,131,249,1                        ; cmp           $0x1,%rcx
1555  DB  117,5                               ; jne           17a7 <_sk_load_tables_rgb_u16_be_hsw+0xfa>
1556  DB  233,76,255,255,255                  ; jmpq          16f3 <_sk_load_tables_rgb_u16_be_hsw+0x46>
1557  DB  196,129,121,110,76,72,6             ; vmovd         0x6(%r8,%r9,2),%xmm1
1558  DB  196,1,113,196,68,72,10,2            ; vpinsrw       $0x2,0xa(%r8,%r9,2),%xmm1,%xmm8
1559  DB  72,131,249,3                        ; cmp           $0x3,%rcx
1560  DB  114,26                              ; jb            17d6 <_sk_load_tables_rgb_u16_be_hsw+0x129>
1561  DB  196,129,121,110,76,72,12            ; vmovd         0xc(%r8,%r9,2),%xmm1
1562  DB  196,129,113,196,84,72,16,2          ; vpinsrw       $0x2,0x10(%r8,%r9,2),%xmm1,%xmm2
1563  DB  72,131,249,3                        ; cmp           $0x3,%rcx
1564  DB  117,10                              ; jne           17db <_sk_load_tables_rgb_u16_be_hsw+0x12e>
1565  DB  233,29,255,255,255                  ; jmpq          16f3 <_sk_load_tables_rgb_u16_be_hsw+0x46>
1566  DB  233,24,255,255,255                  ; jmpq          16f3 <_sk_load_tables_rgb_u16_be_hsw+0x46>
1567  DB  196,129,121,110,76,72,18            ; vmovd         0x12(%r8,%r9,2),%xmm1
1568  DB  196,1,113,196,76,72,22,2            ; vpinsrw       $0x2,0x16(%r8,%r9,2),%xmm1,%xmm9
1569  DB  72,131,249,5                        ; cmp           $0x5,%rcx
1570  DB  114,26                              ; jb            180a <_sk_load_tables_rgb_u16_be_hsw+0x15d>
1571  DB  196,129,121,110,76,72,24            ; vmovd         0x18(%r8,%r9,2),%xmm1
1572  DB  196,129,113,196,76,72,28,2          ; vpinsrw       $0x2,0x1c(%r8,%r9,2),%xmm1,%xmm1
1573  DB  72,131,249,5                        ; cmp           $0x5,%rcx
1574  DB  117,10                              ; jne           180f <_sk_load_tables_rgb_u16_be_hsw+0x162>
1575  DB  233,233,254,255,255                 ; jmpq          16f3 <_sk_load_tables_rgb_u16_be_hsw+0x46>
1576  DB  233,228,254,255,255                 ; jmpq          16f3 <_sk_load_tables_rgb_u16_be_hsw+0x46>
1577  DB  196,129,121,110,92,72,30            ; vmovd         0x1e(%r8,%r9,2),%xmm3
1578  DB  196,1,97,196,92,72,34,2             ; vpinsrw       $0x2,0x22(%r8,%r9,2),%xmm3,%xmm11
1579  DB  72,131,249,7                        ; cmp           $0x7,%rcx
1580  DB  114,20                              ; jb            1838 <_sk_load_tables_rgb_u16_be_hsw+0x18b>
1581  DB  196,129,121,110,92,72,36            ; vmovd         0x24(%r8,%r9,2),%xmm3
1582  DB  196,129,97,196,92,72,40,2           ; vpinsrw       $0x2,0x28(%r8,%r9,2),%xmm3,%xmm3
1583  DB  233,187,254,255,255                 ; jmpq          16f3 <_sk_load_tables_rgb_u16_be_hsw+0x46>
1584  DB  233,182,254,255,255                 ; jmpq          16f3 <_sk_load_tables_rgb_u16_be_hsw+0x46>
1585
1586PUBLIC _sk_byte_tables_hsw
1587_sk_byte_tables_hsw LABEL PROC
1588  DB  85                                  ; push          %rbp
1589  DB  65,87                               ; push          %r15
1590  DB  65,86                               ; push          %r14
1591  DB  65,85                               ; push          %r13
1592  DB  65,84                               ; push          %r12
1593  DB  83                                  ; push          %rbx
1594  DB  72,173                              ; lods          %ds:(%rsi),%rax
1595  DB  65,184,0,0,127,67                   ; mov           $0x437f0000,%r8d
1596  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
1597  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1598  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
1599  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
1600  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
1601  DB  68,137,197                          ; mov           %r8d,%ebp
1602  DB  77,137,194                          ; mov           %r8,%r10
1603  DB  73,193,234,32                       ; shr           $0x20,%r10
1604  DB  196,193,249,126,192                 ; vmovq         %xmm0,%r8
1605  DB  69,137,195                          ; mov           %r8d,%r11d
1606  DB  77,137,199                          ; mov           %r8,%r15
1607  DB  73,193,239,32                       ; shr           $0x20,%r15
1608  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
1609  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
1610  DB  69,137,198                          ; mov           %r8d,%r14d
1611  DB  77,137,196                          ; mov           %r8,%r12
1612  DB  73,193,236,32                       ; shr           $0x20,%r12
1613  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
1614  DB  65,137,221                          ; mov           %ebx,%r13d
1615  DB  72,193,235,32                       ; shr           $0x20,%rbx
1616  DB  76,139,8                            ; mov           (%rax),%r9
1617  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
1618  DB  196,131,121,32,4,25,0               ; vpinsrb       $0x0,(%r9,%r11,1),%xmm0,%xmm0
1619  DB  196,131,121,32,4,57,1               ; vpinsrb       $0x1,(%r9,%r15,1),%xmm0,%xmm0
1620  DB  65,15,182,44,41                     ; movzbl        (%r9,%rbp,1),%ebp
1621  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
1622  DB  67,15,182,44,17                     ; movzbl        (%r9,%r10,1),%ebp
1623  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
1624  DB  67,15,182,44,41                     ; movzbl        (%r9,%r13,1),%ebp
1625  DB  196,227,121,32,197,4                ; vpinsrb       $0x4,%ebp,%xmm0,%xmm0
1626  DB  65,15,182,44,25                     ; movzbl        (%r9,%rbx,1),%ebp
1627  DB  196,227,121,32,197,5                ; vpinsrb       $0x5,%ebp,%xmm0,%xmm0
1628  DB  67,15,182,44,49                     ; movzbl        (%r9,%r14,1),%ebp
1629  DB  196,227,121,32,197,6                ; vpinsrb       $0x6,%ebp,%xmm0,%xmm0
1630  DB  67,15,182,44,33                     ; movzbl        (%r9,%r12,1),%ebp
1631  DB  196,227,121,32,197,7                ; vpinsrb       $0x7,%ebp,%xmm0,%xmm0
1632  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
1633  DB  197,124,91,208                      ; vcvtdq2ps     %ymm0,%ymm10
1634  DB  189,129,128,128,59                  ; mov           $0x3b808081,%ebp
1635  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
1636  DB  196,98,125,88,200                   ; vpbroadcastd  %xmm0,%ymm9
1637  DB  196,193,44,89,193                   ; vmulps        %ymm9,%ymm10,%ymm0
1638  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
1639  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
1640  DB  196,227,249,22,205,1                ; vpextrq       $0x1,%xmm1,%rbp
1641  DB  65,137,233                          ; mov           %ebp,%r9d
1642  DB  72,193,237,32                       ; shr           $0x20,%rbp
1643  DB  196,225,249,126,203                 ; vmovq         %xmm1,%rbx
1644  DB  65,137,218                          ; mov           %ebx,%r10d
1645  DB  72,193,235,32                       ; shr           $0x20,%rbx
1646  DB  196,227,125,57,201,1                ; vextracti128  $0x1,%ymm1,%xmm1
1647  DB  196,195,249,22,203,1                ; vpextrq       $0x1,%xmm1,%r11
1648  DB  69,137,222                          ; mov           %r11d,%r14d
1649  DB  73,193,235,32                       ; shr           $0x20,%r11
1650  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
1651  DB  69,137,252                          ; mov           %r15d,%r12d
1652  DB  73,193,239,32                       ; shr           $0x20,%r15
1653  DB  196,131,121,32,12,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm1
1654  DB  196,195,113,32,12,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm1,%xmm1
1655  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
1656  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
1657  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
1658  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
1659  DB  67,15,182,44,32                     ; movzbl        (%r8,%r12,1),%ebp
1660  DB  196,227,113,32,205,4                ; vpinsrb       $0x4,%ebp,%xmm1,%xmm1
1661  DB  67,15,182,44,56                     ; movzbl        (%r8,%r15,1),%ebp
1662  DB  196,227,113,32,205,5                ; vpinsrb       $0x5,%ebp,%xmm1,%xmm1
1663  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
1664  DB  196,227,113,32,205,6                ; vpinsrb       $0x6,%ebp,%xmm1,%xmm1
1665  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
1666  DB  196,227,113,32,205,7                ; vpinsrb       $0x7,%ebp,%xmm1,%xmm1
1667  DB  196,226,125,49,201                  ; vpmovzxbd     %xmm1,%ymm1
1668  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
1669  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
1670  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
1671  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
1672  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
1673  DB  196,227,249,22,213,1                ; vpextrq       $0x1,%xmm2,%rbp
1674  DB  65,137,233                          ; mov           %ebp,%r9d
1675  DB  72,193,237,32                       ; shr           $0x20,%rbp
1676  DB  196,225,249,126,211                 ; vmovq         %xmm2,%rbx
1677  DB  65,137,218                          ; mov           %ebx,%r10d
1678  DB  72,193,235,32                       ; shr           $0x20,%rbx
1679  DB  196,227,125,57,210,1                ; vextracti128  $0x1,%ymm2,%xmm2
1680  DB  196,195,249,22,211,1                ; vpextrq       $0x1,%xmm2,%r11
1681  DB  69,137,222                          ; mov           %r11d,%r14d
1682  DB  73,193,235,32                       ; shr           $0x20,%r11
1683  DB  196,193,249,126,215                 ; vmovq         %xmm2,%r15
1684  DB  69,137,252                          ; mov           %r15d,%r12d
1685  DB  73,193,239,32                       ; shr           $0x20,%r15
1686  DB  196,131,121,32,20,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm2
1687  DB  196,195,105,32,20,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm2,%xmm2
1688  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
1689  DB  196,227,105,32,211,2                ; vpinsrb       $0x2,%ebx,%xmm2,%xmm2
1690  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
1691  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
1692  DB  67,15,182,44,32                     ; movzbl        (%r8,%r12,1),%ebp
1693  DB  196,227,105,32,213,4                ; vpinsrb       $0x4,%ebp,%xmm2,%xmm2
1694  DB  67,15,182,44,56                     ; movzbl        (%r8,%r15,1),%ebp
1695  DB  196,227,105,32,213,5                ; vpinsrb       $0x5,%ebp,%xmm2,%xmm2
1696  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
1697  DB  196,227,105,32,213,6                ; vpinsrb       $0x6,%ebp,%xmm2,%xmm2
1698  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
1699  DB  196,227,105,32,213,7                ; vpinsrb       $0x7,%ebp,%xmm2,%xmm2
1700  DB  196,226,125,49,210                  ; vpmovzxbd     %xmm2,%ymm2
1701  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
1702  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
1703  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
1704  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
1705  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
1706  DB  196,227,249,22,221,1                ; vpextrq       $0x1,%xmm3,%rbp
1707  DB  65,137,232                          ; mov           %ebp,%r8d
1708  DB  72,193,237,32                       ; shr           $0x20,%rbp
1709  DB  196,225,249,126,219                 ; vmovq         %xmm3,%rbx
1710  DB  65,137,217                          ; mov           %ebx,%r9d
1711  DB  72,193,235,32                       ; shr           $0x20,%rbx
1712  DB  196,227,125,57,219,1                ; vextracti128  $0x1,%ymm3,%xmm3
1713  DB  196,195,249,22,218,1                ; vpextrq       $0x1,%xmm3,%r10
1714  DB  69,137,211                          ; mov           %r10d,%r11d
1715  DB  73,193,234,32                       ; shr           $0x20,%r10
1716  DB  196,193,249,126,222                 ; vmovq         %xmm3,%r14
1717  DB  69,137,247                          ; mov           %r14d,%r15d
1718  DB  73,193,238,32                       ; shr           $0x20,%r14
1719  DB  196,163,121,32,28,8,0               ; vpinsrb       $0x0,(%rax,%r9,1),%xmm0,%xmm3
1720  DB  196,227,97,32,28,24,1               ; vpinsrb       $0x1,(%rax,%rbx,1),%xmm3,%xmm3
1721  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
1722  DB  196,227,97,32,219,2                 ; vpinsrb       $0x2,%ebx,%xmm3,%xmm3
1723  DB  15,182,44,40                        ; movzbl        (%rax,%rbp,1),%ebp
1724  DB  196,227,97,32,221,3                 ; vpinsrb       $0x3,%ebp,%xmm3,%xmm3
1725  DB  66,15,182,44,56                     ; movzbl        (%rax,%r15,1),%ebp
1726  DB  196,227,97,32,221,4                 ; vpinsrb       $0x4,%ebp,%xmm3,%xmm3
1727  DB  66,15,182,44,48                     ; movzbl        (%rax,%r14,1),%ebp
1728  DB  196,227,97,32,221,5                 ; vpinsrb       $0x5,%ebp,%xmm3,%xmm3
1729  DB  66,15,182,44,24                     ; movzbl        (%rax,%r11,1),%ebp
1730  DB  196,227,97,32,221,6                 ; vpinsrb       $0x6,%ebp,%xmm3,%xmm3
1731  DB  66,15,182,4,16                      ; movzbl        (%rax,%r10,1),%eax
1732  DB  196,227,97,32,216,7                 ; vpinsrb       $0x7,%eax,%xmm3,%xmm3
1733  DB  196,226,125,49,219                  ; vpmovzxbd     %xmm3,%ymm3
1734  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
1735  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
1736  DB  72,173                              ; lods          %ds:(%rsi),%rax
1737  DB  91                                  ; pop           %rbx
1738  DB  65,92                               ; pop           %r12
1739  DB  65,93                               ; pop           %r13
1740  DB  65,94                               ; pop           %r14
1741  DB  65,95                               ; pop           %r15
1742  DB  93                                  ; pop           %rbp
1743  DB  255,224                             ; jmpq          *%rax
1744
1745PUBLIC _sk_byte_tables_rgb_hsw
1746_sk_byte_tables_rgb_hsw LABEL PROC
1747  DB  85                                  ; push          %rbp
1748  DB  65,87                               ; push          %r15
1749  DB  65,86                               ; push          %r14
1750  DB  65,85                               ; push          %r13
1751  DB  65,84                               ; push          %r12
1752  DB  83                                  ; push          %rbx
1753  DB  72,173                              ; lods          %ds:(%rsi),%rax
1754  DB  68,139,64,24                        ; mov           0x18(%rax),%r8d
1755  DB  65,255,200                          ; dec           %r8d
1756  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
1757  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1758  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1759  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
1760  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
1761  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
1762  DB  68,137,197                          ; mov           %r8d,%ebp
1763  DB  77,137,194                          ; mov           %r8,%r10
1764  DB  73,193,234,32                       ; shr           $0x20,%r10
1765  DB  196,193,249,126,192                 ; vmovq         %xmm0,%r8
1766  DB  69,137,195                          ; mov           %r8d,%r11d
1767  DB  77,137,199                          ; mov           %r8,%r15
1768  DB  73,193,239,32                       ; shr           $0x20,%r15
1769  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
1770  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
1771  DB  69,137,198                          ; mov           %r8d,%r14d
1772  DB  77,137,196                          ; mov           %r8,%r12
1773  DB  73,193,236,32                       ; shr           $0x20,%r12
1774  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
1775  DB  65,137,221                          ; mov           %ebx,%r13d
1776  DB  72,193,235,32                       ; shr           $0x20,%rbx
1777  DB  76,139,8                            ; mov           (%rax),%r9
1778  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
1779  DB  196,131,121,32,4,25,0               ; vpinsrb       $0x0,(%r9,%r11,1),%xmm0,%xmm0
1780  DB  196,131,121,32,4,57,1               ; vpinsrb       $0x1,(%r9,%r15,1),%xmm0,%xmm0
1781  DB  65,15,182,44,41                     ; movzbl        (%r9,%rbp,1),%ebp
1782  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
1783  DB  67,15,182,44,17                     ; movzbl        (%r9,%r10,1),%ebp
1784  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
1785  DB  67,15,182,44,41                     ; movzbl        (%r9,%r13,1),%ebp
1786  DB  196,227,121,32,197,4                ; vpinsrb       $0x4,%ebp,%xmm0,%xmm0
1787  DB  65,15,182,44,25                     ; movzbl        (%r9,%rbx,1),%ebp
1788  DB  196,227,121,32,197,5                ; vpinsrb       $0x5,%ebp,%xmm0,%xmm0
1789  DB  67,15,182,44,49                     ; movzbl        (%r9,%r14,1),%ebp
1790  DB  196,227,121,32,197,6                ; vpinsrb       $0x6,%ebp,%xmm0,%xmm0
1791  DB  67,15,182,44,33                     ; movzbl        (%r9,%r12,1),%ebp
1792  DB  196,227,121,32,197,7                ; vpinsrb       $0x7,%ebp,%xmm0,%xmm0
1793  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
1794  DB  197,124,91,208                      ; vcvtdq2ps     %ymm0,%ymm10
1795  DB  189,129,128,128,59                  ; mov           $0x3b808081,%ebp
1796  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
1797  DB  196,98,125,88,200                   ; vpbroadcastd  %xmm0,%ymm9
1798  DB  196,193,44,89,193                   ; vmulps        %ymm9,%ymm10,%ymm0
1799  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
1800  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
1801  DB  196,227,249,22,205,1                ; vpextrq       $0x1,%xmm1,%rbp
1802  DB  65,137,233                          ; mov           %ebp,%r9d
1803  DB  72,193,237,32                       ; shr           $0x20,%rbp
1804  DB  196,225,249,126,203                 ; vmovq         %xmm1,%rbx
1805  DB  65,137,218                          ; mov           %ebx,%r10d
1806  DB  72,193,235,32                       ; shr           $0x20,%rbx
1807  DB  196,227,125,57,201,1                ; vextracti128  $0x1,%ymm1,%xmm1
1808  DB  196,195,249,22,203,1                ; vpextrq       $0x1,%xmm1,%r11
1809  DB  69,137,222                          ; mov           %r11d,%r14d
1810  DB  73,193,235,32                       ; shr           $0x20,%r11
1811  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
1812  DB  69,137,252                          ; mov           %r15d,%r12d
1813  DB  73,193,239,32                       ; shr           $0x20,%r15
1814  DB  196,131,121,32,12,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm1
1815  DB  196,195,113,32,12,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm1,%xmm1
1816  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
1817  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
1818  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
1819  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
1820  DB  67,15,182,44,32                     ; movzbl        (%r8,%r12,1),%ebp
1821  DB  196,227,113,32,205,4                ; vpinsrb       $0x4,%ebp,%xmm1,%xmm1
1822  DB  67,15,182,44,56                     ; movzbl        (%r8,%r15,1),%ebp
1823  DB  196,227,113,32,205,5                ; vpinsrb       $0x5,%ebp,%xmm1,%xmm1
1824  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
1825  DB  196,227,113,32,205,6                ; vpinsrb       $0x6,%ebp,%xmm1,%xmm1
1826  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
1827  DB  196,227,113,32,205,7                ; vpinsrb       $0x7,%ebp,%xmm1,%xmm1
1828  DB  196,226,125,49,201                  ; vpmovzxbd     %xmm1,%ymm1
1829  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
1830  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
1831  DB  72,139,64,16                        ; mov           0x10(%rax),%rax
1832  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
1833  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
1834  DB  196,227,249,22,213,1                ; vpextrq       $0x1,%xmm2,%rbp
1835  DB  65,137,232                          ; mov           %ebp,%r8d
1836  DB  72,193,237,32                       ; shr           $0x20,%rbp
1837  DB  196,225,249,126,211                 ; vmovq         %xmm2,%rbx
1838  DB  65,137,217                          ; mov           %ebx,%r9d
1839  DB  72,193,235,32                       ; shr           $0x20,%rbx
1840  DB  196,227,125,57,210,1                ; vextracti128  $0x1,%ymm2,%xmm2
1841  DB  196,195,249,22,210,1                ; vpextrq       $0x1,%xmm2,%r10
1842  DB  69,137,211                          ; mov           %r10d,%r11d
1843  DB  73,193,234,32                       ; shr           $0x20,%r10
1844  DB  196,193,249,126,214                 ; vmovq         %xmm2,%r14
1845  DB  69,137,247                          ; mov           %r14d,%r15d
1846  DB  73,193,238,32                       ; shr           $0x20,%r14
1847  DB  196,163,121,32,20,8,0               ; vpinsrb       $0x0,(%rax,%r9,1),%xmm0,%xmm2
1848  DB  196,227,105,32,20,24,1              ; vpinsrb       $0x1,(%rax,%rbx,1),%xmm2,%xmm2
1849  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
1850  DB  196,227,105,32,211,2                ; vpinsrb       $0x2,%ebx,%xmm2,%xmm2
1851  DB  15,182,44,40                        ; movzbl        (%rax,%rbp,1),%ebp
1852  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
1853  DB  66,15,182,44,56                     ; movzbl        (%rax,%r15,1),%ebp
1854  DB  196,227,105,32,213,4                ; vpinsrb       $0x4,%ebp,%xmm2,%xmm2
1855  DB  66,15,182,44,48                     ; movzbl        (%rax,%r14,1),%ebp
1856  DB  196,227,105,32,213,5                ; vpinsrb       $0x5,%ebp,%xmm2,%xmm2
1857  DB  66,15,182,44,24                     ; movzbl        (%rax,%r11,1),%ebp
1858  DB  196,227,105,32,213,6                ; vpinsrb       $0x6,%ebp,%xmm2,%xmm2
1859  DB  66,15,182,4,16                      ; movzbl        (%rax,%r10,1),%eax
1860  DB  196,227,105,32,208,7                ; vpinsrb       $0x7,%eax,%xmm2,%xmm2
1861  DB  196,226,125,49,210                  ; vpmovzxbd     %xmm2,%ymm2
1862  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
1863  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
1864  DB  72,173                              ; lods          %ds:(%rsi),%rax
1865  DB  91                                  ; pop           %rbx
1866  DB  65,92                               ; pop           %r12
1867  DB  65,93                               ; pop           %r13
1868  DB  65,94                               ; pop           %r14
1869  DB  65,95                               ; pop           %r15
1870  DB  93                                  ; pop           %rbp
1871  DB  255,224                             ; jmpq          *%rax
1872
1873PUBLIC _sk_table_r_hsw
1874_sk_table_r_hsw LABEL PROC
1875  DB  72,173                              ; lods          %ds:(%rsi),%rax
1876  DB  76,139,0                            ; mov           (%rax),%r8
1877  DB  139,64,8                            ; mov           0x8(%rax),%eax
1878  DB  255,200                             ; dec           %eax
1879  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
1880  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1881  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1882  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
1883  DB  197,125,91,192                      ; vcvtps2dq     %ymm0,%ymm8
1884  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
1885  DB  196,130,53,146,4,128                ; vgatherdps    %ymm9,(%r8,%ymm8,4),%ymm0
1886  DB  72,173                              ; lods          %ds:(%rsi),%rax
1887  DB  255,224                             ; jmpq          *%rax
1888
1889PUBLIC _sk_table_g_hsw
1890_sk_table_g_hsw LABEL PROC
1891  DB  72,173                              ; lods          %ds:(%rsi),%rax
1892  DB  76,139,0                            ; mov           (%rax),%r8
1893  DB  139,64,8                            ; mov           0x8(%rax),%eax
1894  DB  255,200                             ; dec           %eax
1895  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
1896  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1897  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1898  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
1899  DB  197,125,91,193                      ; vcvtps2dq     %ymm1,%ymm8
1900  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
1901  DB  196,130,53,146,12,128               ; vgatherdps    %ymm9,(%r8,%ymm8,4),%ymm1
1902  DB  72,173                              ; lods          %ds:(%rsi),%rax
1903  DB  255,224                             ; jmpq          *%rax
1904
1905PUBLIC _sk_table_b_hsw
1906_sk_table_b_hsw LABEL PROC
1907  DB  72,173                              ; lods          %ds:(%rsi),%rax
1908  DB  76,139,0                            ; mov           (%rax),%r8
1909  DB  139,64,8                            ; mov           0x8(%rax),%eax
1910  DB  255,200                             ; dec           %eax
1911  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
1912  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1913  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1914  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
1915  DB  197,125,91,194                      ; vcvtps2dq     %ymm2,%ymm8
1916  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
1917  DB  196,130,53,146,20,128               ; vgatherdps    %ymm9,(%r8,%ymm8,4),%ymm2
1918  DB  72,173                              ; lods          %ds:(%rsi),%rax
1919  DB  255,224                             ; jmpq          *%rax
1920
1921PUBLIC _sk_table_a_hsw
1922_sk_table_a_hsw LABEL PROC
1923  DB  72,173                              ; lods          %ds:(%rsi),%rax
1924  DB  76,139,0                            ; mov           (%rax),%r8
1925  DB  139,64,8                            ; mov           0x8(%rax),%eax
1926  DB  255,200                             ; dec           %eax
1927  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
1928  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1929  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1930  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
1931  DB  197,125,91,195                      ; vcvtps2dq     %ymm3,%ymm8
1932  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
1933  DB  196,130,53,146,28,128               ; vgatherdps    %ymm9,(%r8,%ymm8,4),%ymm3
1934  DB  72,173                              ; lods          %ds:(%rsi),%rax
1935  DB  255,224                             ; jmpq          *%rax
1936
1937PUBLIC _sk_parametric_r_hsw
1938_sk_parametric_r_hsw LABEL PROC
1939  DB  72,173                              ; lods          %ds:(%rsi),%rax
1940  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
1941  DB  196,65,124,194,192,2                ; vcmpleps      %ymm8,%ymm0,%ymm8
1942  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
1943  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
1944  DB  196,66,125,168,202                  ; vfmadd213ps   %ymm10,%ymm0,%ymm9
1945  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
1946  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
1947  DB  196,66,125,168,211                  ; vfmadd213ps   %ymm11,%ymm0,%ymm10
1948  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
1949  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
1950  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
1951  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1952  DB  196,98,125,88,232                   ; vpbroadcastd  %xmm0,%ymm13
1953  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
1954  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1955  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
1956  DB  196,65,125,219,210                  ; vpand         %ymm10,%ymm0,%ymm10
1957  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
1958  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1959  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
1960  DB  197,45,235,208                      ; vpor          %ymm0,%ymm10,%ymm10
1961  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
1962  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1963  DB  196,98,125,88,240                   ; vpbroadcastd  %xmm0,%ymm14
1964  DB  196,66,37,186,245                   ; vfmsub231ps   %ymm13,%ymm11,%ymm14
1965  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
1966  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1967  DB  196,98,125,88,216                   ; vpbroadcastd  %xmm0,%ymm11
1968  DB  196,66,45,172,222                   ; vfnmadd213ps  %ymm14,%ymm10,%ymm11
1969  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
1970  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1971  DB  196,98,125,88,232                   ; vpbroadcastd  %xmm0,%ymm13
1972  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
1973  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1974  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
1975  DB  197,172,88,192                      ; vaddps        %ymm0,%ymm10,%ymm0
1976  DB  197,148,94,192                      ; vdivps        %ymm0,%ymm13,%ymm0
1977  DB  197,164,92,192                      ; vsubps        %ymm0,%ymm11,%ymm0
1978  DB  197,28,89,216                       ; vmulps        %ymm0,%ymm12,%ymm11
1979  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
1980  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
1981  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
1982  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1983  DB  196,98,125,88,224                   ; vpbroadcastd  %xmm0,%ymm12
1984  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
1985  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1986  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
1987  DB  196,65,124,88,219                   ; vaddps        %ymm11,%ymm0,%ymm11
1988  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
1989  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1990  DB  196,98,125,88,232                   ; vpbroadcastd  %xmm0,%ymm13
1991  DB  196,66,45,172,235                   ; vfnmadd213ps  %ymm11,%ymm10,%ymm13
1992  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
1993  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1994  DB  196,98,125,88,216                   ; vpbroadcastd  %xmm0,%ymm11
1995  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
1996  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1997  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
1998  DB  196,193,124,92,194                  ; vsubps        %ymm10,%ymm0,%ymm0
1999  DB  197,164,94,192                      ; vdivps        %ymm0,%ymm11,%ymm0
2000  DB  197,148,88,192                      ; vaddps        %ymm0,%ymm13,%ymm0
2001  DB  197,156,89,192                      ; vmulps        %ymm0,%ymm12,%ymm0
2002  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
2003  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
2004  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
2005  DB  196,195,125,74,193,128              ; vblendvps     %ymm8,%ymm9,%ymm0,%ymm0
2006  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
2007  DB  196,65,124,95,192                   ; vmaxps        %ymm8,%ymm0,%ymm8
2008  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2009  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2010  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2011  DB  197,188,93,192                      ; vminps        %ymm0,%ymm8,%ymm0
2012  DB  72,173                              ; lods          %ds:(%rsi),%rax
2013  DB  255,224                             ; jmpq          *%rax
2014
2015PUBLIC _sk_parametric_g_hsw
2016_sk_parametric_g_hsw LABEL PROC
2017  DB  72,173                              ; lods          %ds:(%rsi),%rax
2018  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
2019  DB  196,65,116,194,192,2                ; vcmpleps      %ymm8,%ymm1,%ymm8
2020  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
2021  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
2022  DB  196,66,117,168,202                  ; vfmadd213ps   %ymm10,%ymm1,%ymm9
2023  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
2024  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
2025  DB  196,66,117,168,211                  ; vfmadd213ps   %ymm11,%ymm1,%ymm10
2026  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
2027  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
2028  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
2029  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
2030  DB  196,98,125,88,233                   ; vpbroadcastd  %xmm1,%ymm13
2031  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
2032  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
2033  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2034  DB  196,65,117,219,210                  ; vpand         %ymm10,%ymm1,%ymm10
2035  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
2036  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
2037  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2038  DB  197,45,235,209                      ; vpor          %ymm1,%ymm10,%ymm10
2039  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
2040  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
2041  DB  196,98,125,88,241                   ; vpbroadcastd  %xmm1,%ymm14
2042  DB  196,66,37,186,245                   ; vfmsub231ps   %ymm13,%ymm11,%ymm14
2043  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
2044  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
2045  DB  196,98,125,88,217                   ; vpbroadcastd  %xmm1,%ymm11
2046  DB  196,66,45,172,222                   ; vfnmadd213ps  %ymm14,%ymm10,%ymm11
2047  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
2048  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
2049  DB  196,98,125,88,233                   ; vpbroadcastd  %xmm1,%ymm13
2050  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
2051  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
2052  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2053  DB  197,172,88,201                      ; vaddps        %ymm1,%ymm10,%ymm1
2054  DB  197,148,94,201                      ; vdivps        %ymm1,%ymm13,%ymm1
2055  DB  197,164,92,201                      ; vsubps        %ymm1,%ymm11,%ymm1
2056  DB  197,28,89,217                       ; vmulps        %ymm1,%ymm12,%ymm11
2057  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
2058  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
2059  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
2060  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
2061  DB  196,98,125,88,225                   ; vpbroadcastd  %xmm1,%ymm12
2062  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
2063  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
2064  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2065  DB  196,65,116,88,219                   ; vaddps        %ymm11,%ymm1,%ymm11
2066  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
2067  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
2068  DB  196,98,125,88,233                   ; vpbroadcastd  %xmm1,%ymm13
2069  DB  196,66,45,172,235                   ; vfnmadd213ps  %ymm11,%ymm10,%ymm13
2070  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
2071  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
2072  DB  196,98,125,88,217                   ; vpbroadcastd  %xmm1,%ymm11
2073  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
2074  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
2075  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2076  DB  196,193,116,92,202                  ; vsubps        %ymm10,%ymm1,%ymm1
2077  DB  197,164,94,201                      ; vdivps        %ymm1,%ymm11,%ymm1
2078  DB  197,148,88,201                      ; vaddps        %ymm1,%ymm13,%ymm1
2079  DB  197,156,89,201                      ; vmulps        %ymm1,%ymm12,%ymm1
2080  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
2081  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
2082  DB  196,193,116,88,202                  ; vaddps        %ymm10,%ymm1,%ymm1
2083  DB  196,195,117,74,201,128              ; vblendvps     %ymm8,%ymm9,%ymm1,%ymm1
2084  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
2085  DB  196,65,116,95,192                   ; vmaxps        %ymm8,%ymm1,%ymm8
2086  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2087  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2088  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2089  DB  197,188,93,201                      ; vminps        %ymm1,%ymm8,%ymm1
2090  DB  72,173                              ; lods          %ds:(%rsi),%rax
2091  DB  255,224                             ; jmpq          *%rax
2092
2093PUBLIC _sk_parametric_b_hsw
2094_sk_parametric_b_hsw LABEL PROC
2095  DB  72,173                              ; lods          %ds:(%rsi),%rax
2096  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
2097  DB  196,65,108,194,192,2                ; vcmpleps      %ymm8,%ymm2,%ymm8
2098  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
2099  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
2100  DB  196,66,109,168,202                  ; vfmadd213ps   %ymm10,%ymm2,%ymm9
2101  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
2102  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
2103  DB  196,66,109,168,211                  ; vfmadd213ps   %ymm11,%ymm2,%ymm10
2104  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
2105  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
2106  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
2107  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2108  DB  196,98,125,88,234                   ; vpbroadcastd  %xmm2,%ymm13
2109  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
2110  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2111  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2112  DB  196,65,109,219,210                  ; vpand         %ymm10,%ymm2,%ymm10
2113  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
2114  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2115  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2116  DB  197,45,235,210                      ; vpor          %ymm2,%ymm10,%ymm10
2117  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
2118  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2119  DB  196,98,125,88,242                   ; vpbroadcastd  %xmm2,%ymm14
2120  DB  196,66,37,186,245                   ; vfmsub231ps   %ymm13,%ymm11,%ymm14
2121  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
2122  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2123  DB  196,98,125,88,218                   ; vpbroadcastd  %xmm2,%ymm11
2124  DB  196,66,45,172,222                   ; vfnmadd213ps  %ymm14,%ymm10,%ymm11
2125  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
2126  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2127  DB  196,98,125,88,234                   ; vpbroadcastd  %xmm2,%ymm13
2128  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
2129  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2130  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2131  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
2132  DB  197,148,94,210                      ; vdivps        %ymm2,%ymm13,%ymm2
2133  DB  197,164,92,210                      ; vsubps        %ymm2,%ymm11,%ymm2
2134  DB  197,28,89,218                       ; vmulps        %ymm2,%ymm12,%ymm11
2135  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
2136  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
2137  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
2138  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2139  DB  196,98,125,88,226                   ; vpbroadcastd  %xmm2,%ymm12
2140  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
2141  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2142  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2143  DB  196,65,108,88,219                   ; vaddps        %ymm11,%ymm2,%ymm11
2144  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
2145  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2146  DB  196,98,125,88,234                   ; vpbroadcastd  %xmm2,%ymm13
2147  DB  196,66,45,172,235                   ; vfnmadd213ps  %ymm11,%ymm10,%ymm13
2148  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
2149  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2150  DB  196,98,125,88,218                   ; vpbroadcastd  %xmm2,%ymm11
2151  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
2152  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2153  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2154  DB  196,193,108,92,210                  ; vsubps        %ymm10,%ymm2,%ymm2
2155  DB  197,164,94,210                      ; vdivps        %ymm2,%ymm11,%ymm2
2156  DB  197,148,88,210                      ; vaddps        %ymm2,%ymm13,%ymm2
2157  DB  197,156,89,210                      ; vmulps        %ymm2,%ymm12,%ymm2
2158  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
2159  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
2160  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
2161  DB  196,195,109,74,209,128              ; vblendvps     %ymm8,%ymm9,%ymm2,%ymm2
2162  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
2163  DB  196,65,108,95,192                   ; vmaxps        %ymm8,%ymm2,%ymm8
2164  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2165  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2166  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2167  DB  197,188,93,210                      ; vminps        %ymm2,%ymm8,%ymm2
2168  DB  72,173                              ; lods          %ds:(%rsi),%rax
2169  DB  255,224                             ; jmpq          *%rax
2170
2171PUBLIC _sk_parametric_a_hsw
2172_sk_parametric_a_hsw LABEL PROC
2173  DB  72,173                              ; lods          %ds:(%rsi),%rax
2174  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
2175  DB  196,65,100,194,192,2                ; vcmpleps      %ymm8,%ymm3,%ymm8
2176  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
2177  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
2178  DB  196,66,101,168,202                  ; vfmadd213ps   %ymm10,%ymm3,%ymm9
2179  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
2180  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
2181  DB  196,66,101,168,211                  ; vfmadd213ps   %ymm11,%ymm3,%ymm10
2182  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
2183  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
2184  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
2185  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2186  DB  196,98,125,88,235                   ; vpbroadcastd  %xmm3,%ymm13
2187  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
2188  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2189  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2190  DB  196,65,101,219,210                  ; vpand         %ymm10,%ymm3,%ymm10
2191  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
2192  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2193  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2194  DB  197,45,235,211                      ; vpor          %ymm3,%ymm10,%ymm10
2195  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
2196  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2197  DB  196,98,125,88,243                   ; vpbroadcastd  %xmm3,%ymm14
2198  DB  196,66,37,186,245                   ; vfmsub231ps   %ymm13,%ymm11,%ymm14
2199  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
2200  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2201  DB  196,98,125,88,219                   ; vpbroadcastd  %xmm3,%ymm11
2202  DB  196,66,45,172,222                   ; vfnmadd213ps  %ymm14,%ymm10,%ymm11
2203  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
2204  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2205  DB  196,98,125,88,235                   ; vpbroadcastd  %xmm3,%ymm13
2206  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
2207  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2208  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2209  DB  197,172,88,219                      ; vaddps        %ymm3,%ymm10,%ymm3
2210  DB  197,148,94,219                      ; vdivps        %ymm3,%ymm13,%ymm3
2211  DB  197,164,92,219                      ; vsubps        %ymm3,%ymm11,%ymm3
2212  DB  197,28,89,219                       ; vmulps        %ymm3,%ymm12,%ymm11
2213  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
2214  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
2215  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
2216  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2217  DB  196,98,125,88,227                   ; vpbroadcastd  %xmm3,%ymm12
2218  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
2219  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2220  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2221  DB  196,65,100,88,219                   ; vaddps        %ymm11,%ymm3,%ymm11
2222  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
2223  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2224  DB  196,98,125,88,235                   ; vpbroadcastd  %xmm3,%ymm13
2225  DB  196,66,45,172,235                   ; vfnmadd213ps  %ymm11,%ymm10,%ymm13
2226  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
2227  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2228  DB  196,98,125,88,219                   ; vpbroadcastd  %xmm3,%ymm11
2229  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
2230  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2231  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2232  DB  196,193,100,92,218                  ; vsubps        %ymm10,%ymm3,%ymm3
2233  DB  197,164,94,219                      ; vdivps        %ymm3,%ymm11,%ymm3
2234  DB  197,148,88,219                      ; vaddps        %ymm3,%ymm13,%ymm3
2235  DB  197,156,89,219                      ; vmulps        %ymm3,%ymm12,%ymm3
2236  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
2237  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
2238  DB  196,193,100,88,218                  ; vaddps        %ymm10,%ymm3,%ymm3
2239  DB  196,195,101,74,217,128              ; vblendvps     %ymm8,%ymm9,%ymm3,%ymm3
2240  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
2241  DB  196,65,100,95,192                   ; vmaxps        %ymm8,%ymm3,%ymm8
2242  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2243  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2244  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2245  DB  197,188,93,219                      ; vminps        %ymm3,%ymm8,%ymm3
2246  DB  72,173                              ; lods          %ds:(%rsi),%rax
2247  DB  255,224                             ; jmpq          *%rax
2248
2249PUBLIC _sk_load_a8_hsw
2250_sk_load_a8_hsw LABEL PROC
2251  DB  73,137,200                          ; mov           %rcx,%r8
2252  DB  72,173                              ; lods          %ds:(%rsi),%rax
2253  DB  72,139,0                            ; mov           (%rax),%rax
2254  DB  72,1,248                            ; add           %rdi,%rax
2255  DB  77,133,192                          ; test          %r8,%r8
2256  DB  117,50                              ; jne           2408 <_sk_load_a8_hsw+0x42>
2257  DB  197,250,126,0                       ; vmovq         (%rax),%xmm0
2258  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2259  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2260  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2261  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2262  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2263  DB  197,252,89,217                      ; vmulps        %ymm1,%ymm0,%ymm3
2264  DB  72,173                              ; lods          %ds:(%rsi),%rax
2265  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
2266  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
2267  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
2268  DB  76,137,193                          ; mov           %r8,%rcx
2269  DB  255,224                             ; jmpq          *%rax
2270  DB  49,201                              ; xor           %ecx,%ecx
2271  DB  77,137,194                          ; mov           %r8,%r10
2272  DB  69,49,201                           ; xor           %r9d,%r9d
2273  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
2274  DB  72,255,192                          ; inc           %rax
2275  DB  73,211,227                          ; shl           %cl,%r11
2276  DB  77,9,217                            ; or            %r11,%r9
2277  DB  72,131,193,8                        ; add           $0x8,%rcx
2278  DB  73,255,202                          ; dec           %r10
2279  DB  117,234                             ; jne           2410 <_sk_load_a8_hsw+0x4a>
2280  DB  196,193,249,110,193                 ; vmovq         %r9,%xmm0
2281  DB  235,173                             ; jmp           23da <_sk_load_a8_hsw+0x14>
2282
2283PUBLIC _sk_gather_a8_hsw
2284_sk_gather_a8_hsw LABEL PROC
2285  DB  65,87                               ; push          %r15
2286  DB  65,86                               ; push          %r14
2287  DB  65,84                               ; push          %r12
2288  DB  83                                  ; push          %rbx
2289  DB  72,173                              ; lods          %ds:(%rsi),%rax
2290  DB  76,139,0                            ; mov           (%rax),%r8
2291  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2292  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2293  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2294  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2295  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2296  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2297  DB  65,137,193                          ; mov           %eax,%r9d
2298  DB  72,193,232,32                       ; shr           $0x20,%rax
2299  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
2300  DB  69,137,211                          ; mov           %r10d,%r11d
2301  DB  73,193,234,32                       ; shr           $0x20,%r10
2302  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2303  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2304  DB  65,137,222                          ; mov           %ebx,%r14d
2305  DB  72,193,235,32                       ; shr           $0x20,%rbx
2306  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
2307  DB  69,137,252                          ; mov           %r15d,%r12d
2308  DB  73,193,239,32                       ; shr           $0x20,%r15
2309  DB  196,131,121,32,4,24,0               ; vpinsrb       $0x0,(%r8,%r11,1),%xmm0,%xmm0
2310  DB  196,131,121,32,4,16,1               ; vpinsrb       $0x1,(%r8,%r10,1),%xmm0,%xmm0
2311  DB  71,15,182,12,8                      ; movzbl        (%r8,%r9,1),%r9d
2312  DB  196,195,121,32,193,2                ; vpinsrb       $0x2,%r9d,%xmm0,%xmm0
2313  DB  65,15,182,4,0                       ; movzbl        (%r8,%rax,1),%eax
2314  DB  196,227,121,32,192,3                ; vpinsrb       $0x3,%eax,%xmm0,%xmm0
2315  DB  67,15,182,4,32                      ; movzbl        (%r8,%r12,1),%eax
2316  DB  196,227,121,32,192,4                ; vpinsrb       $0x4,%eax,%xmm0,%xmm0
2317  DB  67,15,182,4,56                      ; movzbl        (%r8,%r15,1),%eax
2318  DB  196,227,121,32,192,5                ; vpinsrb       $0x5,%eax,%xmm0,%xmm0
2319  DB  67,15,182,4,48                      ; movzbl        (%r8,%r14,1),%eax
2320  DB  196,227,121,32,192,6                ; vpinsrb       $0x6,%eax,%xmm0,%xmm0
2321  DB  65,15,182,4,24                      ; movzbl        (%r8,%rbx,1),%eax
2322  DB  196,227,121,32,192,7                ; vpinsrb       $0x7,%eax,%xmm0,%xmm0
2323  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2324  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2325  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2326  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2327  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2328  DB  197,252,89,217                      ; vmulps        %ymm1,%ymm0,%ymm3
2329  DB  72,173                              ; lods          %ds:(%rsi),%rax
2330  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
2331  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
2332  DB  197,237,239,210                     ; vpxor         %ymm2,%ymm2,%ymm2
2333  DB  91                                  ; pop           %rbx
2334  DB  65,92                               ; pop           %r12
2335  DB  65,94                               ; pop           %r14
2336  DB  65,95                               ; pop           %r15
2337  DB  255,224                             ; jmpq          *%rax
2338
2339PUBLIC _sk_store_a8_hsw
2340_sk_store_a8_hsw LABEL PROC
2341  DB  72,173                              ; lods          %ds:(%rsi),%rax
2342  DB  76,139,8                            ; mov           (%rax),%r9
2343  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
2344  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
2345  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
2346  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
2347  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
2348  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
2349  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
2350  DB  196,65,57,103,192                   ; vpackuswb     %xmm8,%xmm8,%xmm8
2351  DB  72,133,201                          ; test          %rcx,%rcx
2352  DB  117,10                              ; jne           2545 <_sk_store_a8_hsw+0x3b>
2353  DB  196,65,123,17,4,57                  ; vmovsd        %xmm8,(%r9,%rdi,1)
2354  DB  72,173                              ; lods          %ds:(%rsi),%rax
2355  DB  255,224                             ; jmpq          *%rax
2356  DB  65,137,200                          ; mov           %ecx,%r8d
2357  DB  65,128,224,7                        ; and           $0x7,%r8b
2358  DB  65,254,200                          ; dec           %r8b
2359  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2360  DB  119,236                             ; ja            2541 <_sk_store_a8_hsw+0x37>
2361  DB  196,66,121,48,192                   ; vpmovzxbw     %xmm8,%xmm8
2362  DB  65,15,182,192                       ; movzbl        %r8b,%eax
2363  DB  76,141,5,67,0,0,0                   ; lea           0x43(%rip),%r8        # 25a8 <_sk_store_a8_hsw+0x9e>
2364  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
2365  DB  76,1,192                            ; add           %r8,%rax
2366  DB  255,224                             ; jmpq          *%rax
2367  DB  196,67,121,20,68,57,6,12            ; vpextrb       $0xc,%xmm8,0x6(%r9,%rdi,1)
2368  DB  196,67,121,20,68,57,5,10            ; vpextrb       $0xa,%xmm8,0x5(%r9,%rdi,1)
2369  DB  196,67,121,20,68,57,4,8             ; vpextrb       $0x8,%xmm8,0x4(%r9,%rdi,1)
2370  DB  196,67,121,20,68,57,3,6             ; vpextrb       $0x6,%xmm8,0x3(%r9,%rdi,1)
2371  DB  196,67,121,20,68,57,2,4             ; vpextrb       $0x4,%xmm8,0x2(%r9,%rdi,1)
2372  DB  196,67,121,20,68,57,1,2             ; vpextrb       $0x2,%xmm8,0x1(%r9,%rdi,1)
2373  DB  196,67,121,20,4,57,0                ; vpextrb       $0x0,%xmm8,(%r9,%rdi,1)
2374  DB  235,154                             ; jmp           2541 <_sk_store_a8_hsw+0x37>
2375  DB  144                                 ; nop
2376  DB  246,255                             ; idiv          %bh
2377  DB  255                                 ; (bad)
2378  DB  255                                 ; (bad)
2379  DB  238                                 ; out           %al,(%dx)
2380  DB  255                                 ; (bad)
2381  DB  255                                 ; (bad)
2382  DB  255,230                             ; jmpq          *%rsi
2383  DB  255                                 ; (bad)
2384  DB  255                                 ; (bad)
2385  DB  255                                 ; (bad)
2386  DB  222,255                             ; fdivrp        %st,%st(7)
2387  DB  255                                 ; (bad)
2388  DB  255,214                             ; callq         *%rsi
2389  DB  255                                 ; (bad)
2390  DB  255                                 ; (bad)
2391  DB  255,206                             ; dec           %esi
2392  DB  255                                 ; (bad)
2393  DB  255                                 ; (bad)
2394  DB  255,198                             ; inc           %esi
2395  DB  255                                 ; (bad)
2396  DB  255                                 ; (bad)
2397  DB  255                                 ; .byte         0xff
2398
2399PUBLIC _sk_load_g8_hsw
2400_sk_load_g8_hsw LABEL PROC
2401  DB  73,137,200                          ; mov           %rcx,%r8
2402  DB  72,173                              ; lods          %ds:(%rsi),%rax
2403  DB  72,139,0                            ; mov           (%rax),%rax
2404  DB  72,1,248                            ; add           %rdi,%rax
2405  DB  77,133,192                          ; test          %r8,%r8
2406  DB  117,60                              ; jne           2610 <_sk_load_g8_hsw+0x4c>
2407  DB  197,250,126,0                       ; vmovq         (%rax),%xmm0
2408  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2409  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2410  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2411  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2412  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2413  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2414  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2415  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2416  DB  196,226,125,88,217                  ; vpbroadcastd  %xmm1,%ymm3
2417  DB  72,173                              ; lods          %ds:(%rsi),%rax
2418  DB  76,137,193                          ; mov           %r8,%rcx
2419  DB  197,252,40,200                      ; vmovaps       %ymm0,%ymm1
2420  DB  197,252,40,208                      ; vmovaps       %ymm0,%ymm2
2421  DB  255,224                             ; jmpq          *%rax
2422  DB  49,201                              ; xor           %ecx,%ecx
2423  DB  77,137,194                          ; mov           %r8,%r10
2424  DB  69,49,201                           ; xor           %r9d,%r9d
2425  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
2426  DB  72,255,192                          ; inc           %rax
2427  DB  73,211,227                          ; shl           %cl,%r11
2428  DB  77,9,217                            ; or            %r11,%r9
2429  DB  72,131,193,8                        ; add           $0x8,%rcx
2430  DB  73,255,202                          ; dec           %r10
2431  DB  117,234                             ; jne           2618 <_sk_load_g8_hsw+0x54>
2432  DB  196,193,249,110,193                 ; vmovq         %r9,%xmm0
2433  DB  235,163                             ; jmp           25d8 <_sk_load_g8_hsw+0x14>
2434
2435PUBLIC _sk_gather_g8_hsw
2436_sk_gather_g8_hsw LABEL PROC
2437  DB  65,87                               ; push          %r15
2438  DB  65,86                               ; push          %r14
2439  DB  65,84                               ; push          %r12
2440  DB  83                                  ; push          %rbx
2441  DB  72,173                              ; lods          %ds:(%rsi),%rax
2442  DB  76,139,0                            ; mov           (%rax),%r8
2443  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2444  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2445  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2446  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2447  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2448  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2449  DB  65,137,193                          ; mov           %eax,%r9d
2450  DB  72,193,232,32                       ; shr           $0x20,%rax
2451  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
2452  DB  69,137,211                          ; mov           %r10d,%r11d
2453  DB  73,193,234,32                       ; shr           $0x20,%r10
2454  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2455  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2456  DB  65,137,222                          ; mov           %ebx,%r14d
2457  DB  72,193,235,32                       ; shr           $0x20,%rbx
2458  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
2459  DB  69,137,252                          ; mov           %r15d,%r12d
2460  DB  73,193,239,32                       ; shr           $0x20,%r15
2461  DB  196,131,121,32,4,24,0               ; vpinsrb       $0x0,(%r8,%r11,1),%xmm0,%xmm0
2462  DB  196,131,121,32,4,16,1               ; vpinsrb       $0x1,(%r8,%r10,1),%xmm0,%xmm0
2463  DB  71,15,182,12,8                      ; movzbl        (%r8,%r9,1),%r9d
2464  DB  196,195,121,32,193,2                ; vpinsrb       $0x2,%r9d,%xmm0,%xmm0
2465  DB  65,15,182,4,0                       ; movzbl        (%r8,%rax,1),%eax
2466  DB  196,227,121,32,192,3                ; vpinsrb       $0x3,%eax,%xmm0,%xmm0
2467  DB  67,15,182,4,32                      ; movzbl        (%r8,%r12,1),%eax
2468  DB  196,227,121,32,192,4                ; vpinsrb       $0x4,%eax,%xmm0,%xmm0
2469  DB  67,15,182,4,56                      ; movzbl        (%r8,%r15,1),%eax
2470  DB  196,227,121,32,192,5                ; vpinsrb       $0x5,%eax,%xmm0,%xmm0
2471  DB  67,15,182,4,48                      ; movzbl        (%r8,%r14,1),%eax
2472  DB  196,227,121,32,192,6                ; vpinsrb       $0x6,%eax,%xmm0,%xmm0
2473  DB  65,15,182,4,24                      ; movzbl        (%r8,%rbx,1),%eax
2474  DB  196,227,121,32,192,7                ; vpinsrb       $0x7,%eax,%xmm0,%xmm0
2475  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2476  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2477  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2478  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2479  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2480  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2481  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2482  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2483  DB  196,226,125,88,217                  ; vpbroadcastd  %xmm1,%ymm3
2484  DB  72,173                              ; lods          %ds:(%rsi),%rax
2485  DB  197,252,40,200                      ; vmovaps       %ymm0,%ymm1
2486  DB  197,252,40,208                      ; vmovaps       %ymm0,%ymm2
2487  DB  91                                  ; pop           %rbx
2488  DB  65,92                               ; pop           %r12
2489  DB  65,94                               ; pop           %r14
2490  DB  65,95                               ; pop           %r15
2491  DB  255,224                             ; jmpq          *%rax
2492
2493PUBLIC _sk_gather_i8_hsw
2494_sk_gather_i8_hsw LABEL PROC
2495  DB  72,173                              ; lods          %ds:(%rsi),%rax
2496  DB  73,137,192                          ; mov           %rax,%r8
2497  DB  77,133,192                          ; test          %r8,%r8
2498  DB  116,5                               ; je            272b <_sk_gather_i8_hsw+0xf>
2499  DB  76,137,192                          ; mov           %r8,%rax
2500  DB  235,2                               ; jmp           272d <_sk_gather_i8_hsw+0x11>
2501  DB  72,173                              ; lods          %ds:(%rsi),%rax
2502  DB  65,87                               ; push          %r15
2503  DB  65,86                               ; push          %r14
2504  DB  65,85                               ; push          %r13
2505  DB  65,84                               ; push          %r12
2506  DB  83                                  ; push          %rbx
2507  DB  76,139,8                            ; mov           (%rax),%r9
2508  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2509  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2510  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2511  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2512  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2513  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2514  DB  65,137,194                          ; mov           %eax,%r10d
2515  DB  72,193,232,32                       ; shr           $0x20,%rax
2516  DB  196,193,249,126,195                 ; vmovq         %xmm0,%r11
2517  DB  69,137,222                          ; mov           %r11d,%r14d
2518  DB  73,193,235,32                       ; shr           $0x20,%r11
2519  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2520  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2521  DB  65,137,223                          ; mov           %ebx,%r15d
2522  DB  72,193,235,32                       ; shr           $0x20,%rbx
2523  DB  196,193,249,126,196                 ; vmovq         %xmm0,%r12
2524  DB  69,137,229                          ; mov           %r12d,%r13d
2525  DB  73,193,236,32                       ; shr           $0x20,%r12
2526  DB  196,131,121,32,4,49,0               ; vpinsrb       $0x0,(%r9,%r14,1),%xmm0,%xmm0
2527  DB  196,131,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%r11,1),%xmm0,%xmm0
2528  DB  196,131,121,32,4,17,2               ; vpinsrb       $0x2,(%r9,%r10,1),%xmm0,%xmm0
2529  DB  196,195,121,32,4,1,3                ; vpinsrb       $0x3,(%r9,%rax,1),%xmm0,%xmm0
2530  DB  196,131,121,32,4,41,4               ; vpinsrb       $0x4,(%r9,%r13,1),%xmm0,%xmm0
2531  DB  196,131,121,32,4,33,5               ; vpinsrb       $0x5,(%r9,%r12,1),%xmm0,%xmm0
2532  DB  196,131,121,32,4,57,6               ; vpinsrb       $0x6,(%r9,%r15,1),%xmm0,%xmm0
2533  DB  196,195,121,32,4,25,7               ; vpinsrb       $0x7,(%r9,%rbx,1),%xmm0,%xmm0
2534  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2535  DB  73,139,64,8                         ; mov           0x8(%r8),%rax
2536  DB  197,245,118,201                     ; vpcmpeqd      %ymm1,%ymm1,%ymm1
2537  DB  196,226,117,144,28,128              ; vpgatherdd    %ymm1,(%rax,%ymm0,4),%ymm3
2538  DB  184,255,0,0,0                       ; mov           $0xff,%eax
2539  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2540  DB  196,226,125,88,208                  ; vpbroadcastd  %xmm0,%ymm2
2541  DB  197,237,219,195                     ; vpand         %ymm3,%ymm2,%ymm0
2542  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2543  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2544  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2545  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
2546  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
2547  DB  197,245,114,211,8                   ; vpsrld        $0x8,%ymm3,%ymm1
2548  DB  197,237,219,201                     ; vpand         %ymm1,%ymm2,%ymm1
2549  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2550  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
2551  DB  197,181,114,211,16                  ; vpsrld        $0x10,%ymm3,%ymm9
2552  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
2553  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
2554  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
2555  DB  197,229,114,211,24                  ; vpsrld        $0x18,%ymm3,%ymm3
2556  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
2557  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
2558  DB  72,173                              ; lods          %ds:(%rsi),%rax
2559  DB  91                                  ; pop           %rbx
2560  DB  65,92                               ; pop           %r12
2561  DB  65,93                               ; pop           %r13
2562  DB  65,94                               ; pop           %r14
2563  DB  65,95                               ; pop           %r15
2564  DB  255,224                             ; jmpq          *%rax
2565
2566PUBLIC _sk_load_565_hsw
2567_sk_load_565_hsw LABEL PROC
2568  DB  72,173                              ; lods          %ds:(%rsi),%rax
2569  DB  76,139,16                           ; mov           (%rax),%r10
2570  DB  72,133,201                          ; test          %rcx,%rcx
2571  DB  15,133,149,0,0,0                    ; jne           28df <_sk_load_565_hsw+0xa3>
2572  DB  196,193,122,111,4,122               ; vmovdqu       (%r10,%rdi,2),%xmm0
2573  DB  196,226,125,51,208                  ; vpmovzxwd     %xmm0,%ymm2
2574  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
2575  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2576  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2577  DB  197,253,219,194                     ; vpand         %ymm2,%ymm0,%ymm0
2578  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2579  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
2580  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2581  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2582  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2583  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
2584  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2585  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2586  DB  197,245,219,202                     ; vpand         %ymm2,%ymm1,%ymm1
2587  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2588  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
2589  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2590  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2591  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
2592  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
2593  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2594  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2595  DB  197,229,219,210                     ; vpand         %ymm2,%ymm3,%ymm2
2596  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
2597  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
2598  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2599  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2600  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
2601  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2602  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2603  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2604  DB  72,173                              ; lods          %ds:(%rsi),%rax
2605  DB  255,224                             ; jmpq          *%rax
2606  DB  65,137,200                          ; mov           %ecx,%r8d
2607  DB  65,128,224,7                        ; and           $0x7,%r8b
2608  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
2609  DB  65,254,200                          ; dec           %r8b
2610  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2611  DB  15,135,89,255,255,255               ; ja            2850 <_sk_load_565_hsw+0x14>
2612  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
2613  DB  76,141,13,74,0,0,0                  ; lea           0x4a(%rip),%r9        # 294c <_sk_load_565_hsw+0x110>
2614  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
2615  DB  76,1,200                            ; add           %r9,%rax
2616  DB  255,224                             ; jmpq          *%rax
2617  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
2618  DB  196,193,121,196,68,122,12,6         ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm0,%xmm0
2619  DB  196,193,121,196,68,122,10,5         ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm0,%xmm0
2620  DB  196,193,121,196,68,122,8,4          ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm0,%xmm0
2621  DB  196,193,121,196,68,122,6,3          ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm0,%xmm0
2622  DB  196,193,121,196,68,122,4,2          ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0
2623  DB  196,193,121,196,68,122,2,1          ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0
2624  DB  196,193,121,196,4,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm0,%xmm0
2625  DB  233,5,255,255,255                   ; jmpq          2850 <_sk_load_565_hsw+0x14>
2626  DB  144                                 ; nop
2627  DB  243,255                             ; repz          (bad)
2628  DB  255                                 ; (bad)
2629  DB  255                                 ; (bad)
2630  DB  235,255                             ; jmp           2951 <_sk_load_565_hsw+0x115>
2631  DB  255                                 ; (bad)
2632  DB  255,227                             ; jmpq          *%rbx
2633  DB  255                                 ; (bad)
2634  DB  255                                 ; (bad)
2635  DB  255                                 ; (bad)
2636  DB  219,255                             ; (bad)
2637  DB  255                                 ; (bad)
2638  DB  255,211                             ; callq         *%rbx
2639  DB  255                                 ; (bad)
2640  DB  255                                 ; (bad)
2641  DB  255,203                             ; dec           %ebx
2642  DB  255                                 ; (bad)
2643  DB  255                                 ; (bad)
2644  DB  255                                 ; (bad)
2645  DB  191                                 ; .byte         0xbf
2646  DB  255                                 ; (bad)
2647  DB  255                                 ; (bad)
2648  DB  255                                 ; .byte         0xff
2649
2650PUBLIC _sk_gather_565_hsw
2651_sk_gather_565_hsw LABEL PROC
2652  DB  65,87                               ; push          %r15
2653  DB  65,86                               ; push          %r14
2654  DB  65,84                               ; push          %r12
2655  DB  83                                  ; push          %rbx
2656  DB  72,173                              ; lods          %ds:(%rsi),%rax
2657  DB  76,139,0                            ; mov           (%rax),%r8
2658  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2659  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2660  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2661  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2662  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2663  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2664  DB  65,137,193                          ; mov           %eax,%r9d
2665  DB  72,193,232,32                       ; shr           $0x20,%rax
2666  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
2667  DB  69,137,211                          ; mov           %r10d,%r11d
2668  DB  73,193,234,32                       ; shr           $0x20,%r10
2669  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2670  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2671  DB  65,137,222                          ; mov           %ebx,%r14d
2672  DB  72,193,235,32                       ; shr           $0x20,%rbx
2673  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
2674  DB  69,137,252                          ; mov           %r15d,%r12d
2675  DB  73,193,239,32                       ; shr           $0x20,%r15
2676  DB  71,15,183,20,80                     ; movzwl        (%r8,%r10,2),%r10d
2677  DB  71,15,183,28,88                     ; movzwl        (%r8,%r11,2),%r11d
2678  DB  196,193,121,110,195                 ; vmovd         %r11d,%xmm0
2679  DB  196,193,121,196,194,1               ; vpinsrw       $0x1,%r10d,%xmm0,%xmm0
2680  DB  71,15,183,12,72                     ; movzwl        (%r8,%r9,2),%r9d
2681  DB  196,193,121,196,193,2               ; vpinsrw       $0x2,%r9d,%xmm0,%xmm0
2682  DB  65,15,183,4,64                      ; movzwl        (%r8,%rax,2),%eax
2683  DB  197,249,196,192,3                   ; vpinsrw       $0x3,%eax,%xmm0,%xmm0
2684  DB  67,15,183,4,96                      ; movzwl        (%r8,%r12,2),%eax
2685  DB  197,249,196,192,4                   ; vpinsrw       $0x4,%eax,%xmm0,%xmm0
2686  DB  67,15,183,4,120                     ; movzwl        (%r8,%r15,2),%eax
2687  DB  197,249,196,192,5                   ; vpinsrw       $0x5,%eax,%xmm0,%xmm0
2688  DB  67,15,183,4,112                     ; movzwl        (%r8,%r14,2),%eax
2689  DB  197,249,196,192,6                   ; vpinsrw       $0x6,%eax,%xmm0,%xmm0
2690  DB  65,15,183,4,88                      ; movzwl        (%r8,%rbx,2),%eax
2691  DB  197,249,196,192,7                   ; vpinsrw       $0x7,%eax,%xmm0,%xmm0
2692  DB  196,226,125,51,208                  ; vpmovzxwd     %xmm0,%ymm2
2693  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
2694  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2695  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2696  DB  197,253,219,194                     ; vpand         %ymm2,%ymm0,%ymm0
2697  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2698  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
2699  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2700  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2701  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2702  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
2703  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2704  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2705  DB  197,245,219,202                     ; vpand         %ymm2,%ymm1,%ymm1
2706  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2707  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
2708  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2709  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2710  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
2711  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
2712  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2713  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2714  DB  197,229,219,210                     ; vpand         %ymm2,%ymm3,%ymm2
2715  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
2716  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
2717  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2718  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2719  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
2720  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2721  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2722  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2723  DB  72,173                              ; lods          %ds:(%rsi),%rax
2724  DB  91                                  ; pop           %rbx
2725  DB  65,92                               ; pop           %r12
2726  DB  65,94                               ; pop           %r14
2727  DB  65,95                               ; pop           %r15
2728  DB  255,224                             ; jmpq          *%rax
2729
2730PUBLIC _sk_store_565_hsw
2731_sk_store_565_hsw LABEL PROC
2732  DB  72,173                              ; lods          %ds:(%rsi),%rax
2733  DB  76,139,8                            ; mov           (%rax),%r9
2734  DB  184,0,0,248,65                      ; mov           $0x41f80000,%eax
2735  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
2736  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
2737  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
2738  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
2739  DB  196,193,53,114,241,11               ; vpslld        $0xb,%ymm9,%ymm9
2740  DB  184,0,0,124,66                      ; mov           $0x427c0000,%eax
2741  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
2742  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
2743  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
2744  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
2745  DB  196,193,45,114,242,5                ; vpslld        $0x5,%ymm10,%ymm10
2746  DB  196,65,45,235,201                   ; vpor          %ymm9,%ymm10,%ymm9
2747  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
2748  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
2749  DB  196,65,53,235,192                   ; vpor          %ymm8,%ymm9,%ymm8
2750  DB  196,67,125,57,193,1                 ; vextracti128  $0x1,%ymm8,%xmm9
2751  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
2752  DB  72,133,201                          ; test          %rcx,%rcx
2753  DB  117,10                              ; jne           2b17 <_sk_store_565_hsw+0x6c>
2754  DB  196,65,122,127,4,121                ; vmovdqu       %xmm8,(%r9,%rdi,2)
2755  DB  72,173                              ; lods          %ds:(%rsi),%rax
2756  DB  255,224                             ; jmpq          *%rax
2757  DB  65,137,200                          ; mov           %ecx,%r8d
2758  DB  65,128,224,7                        ; and           $0x7,%r8b
2759  DB  65,254,200                          ; dec           %r8b
2760  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2761  DB  119,236                             ; ja            2b13 <_sk_store_565_hsw+0x68>
2762  DB  65,15,182,192                       ; movzbl        %r8b,%eax
2763  DB  76,141,5,66,0,0,0                   ; lea           0x42(%rip),%r8        # 2b74 <_sk_store_565_hsw+0xc9>
2764  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
2765  DB  76,1,192                            ; add           %r8,%rax
2766  DB  255,224                             ; jmpq          *%rax
2767  DB  196,67,121,21,68,121,12,6           ; vpextrw       $0x6,%xmm8,0xc(%r9,%rdi,2)
2768  DB  196,67,121,21,68,121,10,5           ; vpextrw       $0x5,%xmm8,0xa(%r9,%rdi,2)
2769  DB  196,67,121,21,68,121,8,4            ; vpextrw       $0x4,%xmm8,0x8(%r9,%rdi,2)
2770  DB  196,67,121,21,68,121,6,3            ; vpextrw       $0x3,%xmm8,0x6(%r9,%rdi,2)
2771  DB  196,67,121,21,68,121,4,2            ; vpextrw       $0x2,%xmm8,0x4(%r9,%rdi,2)
2772  DB  196,67,121,21,68,121,2,1            ; vpextrw       $0x1,%xmm8,0x2(%r9,%rdi,2)
2773  DB  196,67,121,21,4,121,0               ; vpextrw       $0x0,%xmm8,(%r9,%rdi,2)
2774  DB  235,159                             ; jmp           2b13 <_sk_store_565_hsw+0x68>
2775  DB  247,255                             ; idiv          %edi
2776  DB  255                                 ; (bad)
2777  DB  255                                 ; (bad)
2778  DB  239                                 ; out           %eax,(%dx)
2779  DB  255                                 ; (bad)
2780  DB  255                                 ; (bad)
2781  DB  255,231                             ; jmpq          *%rdi
2782  DB  255                                 ; (bad)
2783  DB  255                                 ; (bad)
2784  DB  255                                 ; (bad)
2785  DB  223,255                             ; (bad)
2786  DB  255                                 ; (bad)
2787  DB  255,215                             ; callq         *%rdi
2788  DB  255                                 ; (bad)
2789  DB  255                                 ; (bad)
2790  DB  255,207                             ; dec           %edi
2791  DB  255                                 ; (bad)
2792  DB  255                                 ; (bad)
2793  DB  255,199                             ; inc           %edi
2794  DB  255                                 ; (bad)
2795  DB  255                                 ; (bad)
2796  DB  255                                 ; .byte         0xff
2797
2798PUBLIC _sk_load_4444_hsw
2799_sk_load_4444_hsw LABEL PROC
2800  DB  72,173                              ; lods          %ds:(%rsi),%rax
2801  DB  76,139,16                           ; mov           (%rax),%r10
2802  DB  72,133,201                          ; test          %rcx,%rcx
2803  DB  15,133,179,0,0,0                    ; jne           2c51 <_sk_load_4444_hsw+0xc1>
2804  DB  196,193,122,111,4,122               ; vmovdqu       (%r10,%rdi,2),%xmm0
2805  DB  196,98,125,51,200                   ; vpmovzxwd     %xmm0,%ymm9
2806  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
2807  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2808  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2809  DB  196,193,125,219,193                 ; vpand         %ymm9,%ymm0,%ymm0
2810  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2811  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
2812  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2813  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2814  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2815  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
2816  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2817  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2818  DB  196,193,117,219,201                 ; vpand         %ymm9,%ymm1,%ymm1
2819  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2820  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
2821  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2822  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2823  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
2824  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
2825  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2826  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2827  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
2828  DB  197,124,91,194                      ; vcvtdq2ps     %ymm2,%ymm8
2829  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
2830  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2831  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2832  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
2833  DB  184,15,0,0,0                        ; mov           $0xf,%eax
2834  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2835  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2836  DB  196,193,101,219,217                 ; vpand         %ymm9,%ymm3,%ymm3
2837  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
2838  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
2839  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2840  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2841  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
2842  DB  72,173                              ; lods          %ds:(%rsi),%rax
2843  DB  255,224                             ; jmpq          *%rax
2844  DB  65,137,200                          ; mov           %ecx,%r8d
2845  DB  65,128,224,7                        ; and           $0x7,%r8b
2846  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
2847  DB  65,254,200                          ; dec           %r8b
2848  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2849  DB  15,135,59,255,255,255               ; ja            2ba4 <_sk_load_4444_hsw+0x14>
2850  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
2851  DB  76,141,13,76,0,0,0                  ; lea           0x4c(%rip),%r9        # 2cc0 <_sk_load_4444_hsw+0x130>
2852  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
2853  DB  76,1,200                            ; add           %r9,%rax
2854  DB  255,224                             ; jmpq          *%rax
2855  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
2856  DB  196,193,121,196,68,122,12,6         ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm0,%xmm0
2857  DB  196,193,121,196,68,122,10,5         ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm0,%xmm0
2858  DB  196,193,121,196,68,122,8,4          ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm0,%xmm0
2859  DB  196,193,121,196,68,122,6,3          ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm0,%xmm0
2860  DB  196,193,121,196,68,122,4,2          ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0
2861  DB  196,193,121,196,68,122,2,1          ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0
2862  DB  196,193,121,196,4,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm0,%xmm0
2863  DB  233,231,254,255,255                 ; jmpq          2ba4 <_sk_load_4444_hsw+0x14>
2864  DB  15,31,0                             ; nopl          (%rax)
2865  DB  241                                 ; icebp
2866  DB  255                                 ; (bad)
2867  DB  255                                 ; (bad)
2868  DB  255                                 ; (bad)
2869  DB  233,255,255,255,225                 ; jmpq          ffffffffe2002cc8 <_sk_callback_hsw+0xffffffffe1ffeace>
2870  DB  255                                 ; (bad)
2871  DB  255                                 ; (bad)
2872  DB  255                                 ; (bad)
2873  DB  217,255                             ; fcos
2874  DB  255                                 ; (bad)
2875  DB  255,209                             ; callq         *%rcx
2876  DB  255                                 ; (bad)
2877  DB  255                                 ; (bad)
2878  DB  255,201                             ; dec           %ecx
2879  DB  255                                 ; (bad)
2880  DB  255                                 ; (bad)
2881  DB  255                                 ; (bad)
2882  DB  189                                 ; .byte         0xbd
2883  DB  255                                 ; (bad)
2884  DB  255                                 ; (bad)
2885  DB  255                                 ; .byte         0xff
2886
2887PUBLIC _sk_gather_4444_hsw
2888_sk_gather_4444_hsw LABEL PROC
2889  DB  65,87                               ; push          %r15
2890  DB  65,86                               ; push          %r14
2891  DB  65,84                               ; push          %r12
2892  DB  83                                  ; push          %rbx
2893  DB  72,173                              ; lods          %ds:(%rsi),%rax
2894  DB  76,139,0                            ; mov           (%rax),%r8
2895  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2896  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2897  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2898  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2899  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2900  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2901  DB  65,137,193                          ; mov           %eax,%r9d
2902  DB  72,193,232,32                       ; shr           $0x20,%rax
2903  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
2904  DB  69,137,211                          ; mov           %r10d,%r11d
2905  DB  73,193,234,32                       ; shr           $0x20,%r10
2906  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2907  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2908  DB  65,137,222                          ; mov           %ebx,%r14d
2909  DB  72,193,235,32                       ; shr           $0x20,%rbx
2910  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
2911  DB  69,137,252                          ; mov           %r15d,%r12d
2912  DB  73,193,239,32                       ; shr           $0x20,%r15
2913  DB  71,15,183,20,80                     ; movzwl        (%r8,%r10,2),%r10d
2914  DB  71,15,183,28,88                     ; movzwl        (%r8,%r11,2),%r11d
2915  DB  196,193,121,110,195                 ; vmovd         %r11d,%xmm0
2916  DB  196,193,121,196,194,1               ; vpinsrw       $0x1,%r10d,%xmm0,%xmm0
2917  DB  71,15,183,12,72                     ; movzwl        (%r8,%r9,2),%r9d
2918  DB  196,193,121,196,193,2               ; vpinsrw       $0x2,%r9d,%xmm0,%xmm0
2919  DB  65,15,183,4,64                      ; movzwl        (%r8,%rax,2),%eax
2920  DB  197,249,196,192,3                   ; vpinsrw       $0x3,%eax,%xmm0,%xmm0
2921  DB  67,15,183,4,96                      ; movzwl        (%r8,%r12,2),%eax
2922  DB  197,249,196,192,4                   ; vpinsrw       $0x4,%eax,%xmm0,%xmm0
2923  DB  67,15,183,4,120                     ; movzwl        (%r8,%r15,2),%eax
2924  DB  197,249,196,192,5                   ; vpinsrw       $0x5,%eax,%xmm0,%xmm0
2925  DB  67,15,183,4,112                     ; movzwl        (%r8,%r14,2),%eax
2926  DB  197,249,196,192,6                   ; vpinsrw       $0x6,%eax,%xmm0,%xmm0
2927  DB  65,15,183,4,88                      ; movzwl        (%r8,%rbx,2),%eax
2928  DB  197,249,196,192,7                   ; vpinsrw       $0x7,%eax,%xmm0,%xmm0
2929  DB  196,98,125,51,200                   ; vpmovzxwd     %xmm0,%ymm9
2930  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
2931  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2932  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2933  DB  196,193,125,219,193                 ; vpand         %ymm9,%ymm0,%ymm0
2934  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2935  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
2936  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2937  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2938  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2939  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
2940  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2941  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2942  DB  196,193,117,219,201                 ; vpand         %ymm9,%ymm1,%ymm1
2943  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2944  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
2945  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2946  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2947  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
2948  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
2949  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2950  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2951  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
2952  DB  197,124,91,194                      ; vcvtdq2ps     %ymm2,%ymm8
2953  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
2954  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2955  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2956  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
2957  DB  184,15,0,0,0                        ; mov           $0xf,%eax
2958  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2959  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2960  DB  196,193,101,219,217                 ; vpand         %ymm9,%ymm3,%ymm3
2961  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
2962  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
2963  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2964  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2965  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
2966  DB  72,173                              ; lods          %ds:(%rsi),%rax
2967  DB  91                                  ; pop           %rbx
2968  DB  65,92                               ; pop           %r12
2969  DB  65,94                               ; pop           %r14
2970  DB  65,95                               ; pop           %r15
2971  DB  255,224                             ; jmpq          *%rax
2972
2973PUBLIC _sk_store_4444_hsw
2974_sk_store_4444_hsw LABEL PROC
2975  DB  72,173                              ; lods          %ds:(%rsi),%rax
2976  DB  76,139,8                            ; mov           (%rax),%r9
2977  DB  184,0,0,112,65                      ; mov           $0x41700000,%eax
2978  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
2979  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
2980  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
2981  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
2982  DB  196,193,53,114,241,12               ; vpslld        $0xc,%ymm9,%ymm9
2983  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
2984  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
2985  DB  196,193,45,114,242,8                ; vpslld        $0x8,%ymm10,%ymm10
2986  DB  196,65,45,235,201                   ; vpor          %ymm9,%ymm10,%ymm9
2987  DB  197,60,89,210                       ; vmulps        %ymm2,%ymm8,%ymm10
2988  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
2989  DB  196,193,45,114,242,4                ; vpslld        $0x4,%ymm10,%ymm10
2990  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
2991  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
2992  DB  196,65,45,235,192                   ; vpor          %ymm8,%ymm10,%ymm8
2993  DB  196,65,53,235,192                   ; vpor          %ymm8,%ymm9,%ymm8
2994  DB  196,67,125,57,193,1                 ; vextracti128  $0x1,%ymm8,%xmm9
2995  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
2996  DB  72,133,201                          ; test          %rcx,%rcx
2997  DB  117,10                              ; jne           2eaf <_sk_store_4444_hsw+0x72>
2998  DB  196,65,122,127,4,121                ; vmovdqu       %xmm8,(%r9,%rdi,2)
2999  DB  72,173                              ; lods          %ds:(%rsi),%rax
3000  DB  255,224                             ; jmpq          *%rax
3001  DB  65,137,200                          ; mov           %ecx,%r8d
3002  DB  65,128,224,7                        ; and           $0x7,%r8b
3003  DB  65,254,200                          ; dec           %r8b
3004  DB  65,128,248,6                        ; cmp           $0x6,%r8b
3005  DB  119,236                             ; ja            2eab <_sk_store_4444_hsw+0x6e>
3006  DB  65,15,182,192                       ; movzbl        %r8b,%eax
3007  DB  76,141,5,66,0,0,0                   ; lea           0x42(%rip),%r8        # 2f0c <_sk_store_4444_hsw+0xcf>
3008  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
3009  DB  76,1,192                            ; add           %r8,%rax
3010  DB  255,224                             ; jmpq          *%rax
3011  DB  196,67,121,21,68,121,12,6           ; vpextrw       $0x6,%xmm8,0xc(%r9,%rdi,2)
3012  DB  196,67,121,21,68,121,10,5           ; vpextrw       $0x5,%xmm8,0xa(%r9,%rdi,2)
3013  DB  196,67,121,21,68,121,8,4            ; vpextrw       $0x4,%xmm8,0x8(%r9,%rdi,2)
3014  DB  196,67,121,21,68,121,6,3            ; vpextrw       $0x3,%xmm8,0x6(%r9,%rdi,2)
3015  DB  196,67,121,21,68,121,4,2            ; vpextrw       $0x2,%xmm8,0x4(%r9,%rdi,2)
3016  DB  196,67,121,21,68,121,2,1            ; vpextrw       $0x1,%xmm8,0x2(%r9,%rdi,2)
3017  DB  196,67,121,21,4,121,0               ; vpextrw       $0x0,%xmm8,(%r9,%rdi,2)
3018  DB  235,159                             ; jmp           2eab <_sk_store_4444_hsw+0x6e>
3019  DB  247,255                             ; idiv          %edi
3020  DB  255                                 ; (bad)
3021  DB  255                                 ; (bad)
3022  DB  239                                 ; out           %eax,(%dx)
3023  DB  255                                 ; (bad)
3024  DB  255                                 ; (bad)
3025  DB  255,231                             ; jmpq          *%rdi
3026  DB  255                                 ; (bad)
3027  DB  255                                 ; (bad)
3028  DB  255                                 ; (bad)
3029  DB  223,255                             ; (bad)
3030  DB  255                                 ; (bad)
3031  DB  255,215                             ; callq         *%rdi
3032  DB  255                                 ; (bad)
3033  DB  255                                 ; (bad)
3034  DB  255,207                             ; dec           %edi
3035  DB  255                                 ; (bad)
3036  DB  255                                 ; (bad)
3037  DB  255,199                             ; inc           %edi
3038  DB  255                                 ; (bad)
3039  DB  255                                 ; (bad)
3040  DB  255                                 ; .byte         0xff
3041
3042PUBLIC _sk_load_8888_hsw
3043_sk_load_8888_hsw LABEL PROC
3044  DB  73,137,200                          ; mov           %rcx,%r8
3045  DB  72,173                              ; lods          %ds:(%rsi),%rax
3046  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
3047  DB  76,3,8                              ; add           (%rax),%r9
3048  DB  77,133,192                          ; test          %r8,%r8
3049  DB  117,104                             ; jne           2fa5 <_sk_load_8888_hsw+0x7d>
3050  DB  196,193,126,111,25                  ; vmovdqu       (%r9),%ymm3
3051  DB  184,255,0,0,0                       ; mov           $0xff,%eax
3052  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3053  DB  196,226,125,88,208                  ; vpbroadcastd  %xmm0,%ymm2
3054  DB  197,237,219,195                     ; vpand         %ymm3,%ymm2,%ymm0
3055  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
3056  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
3057  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
3058  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
3059  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
3060  DB  197,245,114,211,8                   ; vpsrld        $0x8,%ymm3,%ymm1
3061  DB  197,237,219,201                     ; vpand         %ymm1,%ymm2,%ymm1
3062  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
3063  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
3064  DB  197,181,114,211,16                  ; vpsrld        $0x10,%ymm3,%ymm9
3065  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
3066  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
3067  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
3068  DB  197,229,114,211,24                  ; vpsrld        $0x18,%ymm3,%ymm3
3069  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
3070  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
3071  DB  72,173                              ; lods          %ds:(%rsi),%rax
3072  DB  76,137,193                          ; mov           %r8,%rcx
3073  DB  255,224                             ; jmpq          *%rax
3074  DB  185,8,0,0,0                         ; mov           $0x8,%ecx
3075  DB  68,41,193                           ; sub           %r8d,%ecx
3076  DB  192,225,3                           ; shl           $0x3,%cl
3077  DB  72,199,192,255,255,255,255          ; mov           $0xffffffffffffffff,%rax
3078  DB  72,211,232                          ; shr           %cl,%rax
3079  DB  196,225,249,110,192                 ; vmovq         %rax,%xmm0
3080  DB  196,226,125,33,192                  ; vpmovsxbd     %xmm0,%ymm0
3081  DB  196,194,125,140,25                  ; vpmaskmovd    (%r9),%ymm0,%ymm3
3082  DB  233,116,255,255,255                 ; jmpq          2f42 <_sk_load_8888_hsw+0x1a>
3083
3084PUBLIC _sk_gather_8888_hsw
3085_sk_gather_8888_hsw LABEL PROC
3086  DB  72,173                              ; lods          %ds:(%rsi),%rax
3087  DB  76,139,0                            ; mov           (%rax),%r8
3088  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
3089  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
3090  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
3091  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
3092  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
3093  DB  197,245,118,201                     ; vpcmpeqd      %ymm1,%ymm1,%ymm1
3094  DB  196,194,117,144,28,128              ; vpgatherdd    %ymm1,(%r8,%ymm0,4),%ymm3
3095  DB  184,255,0,0,0                       ; mov           $0xff,%eax
3096  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3097  DB  196,226,125,88,208                  ; vpbroadcastd  %xmm0,%ymm2
3098  DB  197,237,219,195                     ; vpand         %ymm3,%ymm2,%ymm0
3099  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
3100  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
3101  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
3102  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
3103  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
3104  DB  197,245,114,211,8                   ; vpsrld        $0x8,%ymm3,%ymm1
3105  DB  197,237,219,201                     ; vpand         %ymm1,%ymm2,%ymm1
3106  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
3107  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
3108  DB  197,181,114,211,16                  ; vpsrld        $0x10,%ymm3,%ymm9
3109  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
3110  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
3111  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
3112  DB  197,229,114,211,24                  ; vpsrld        $0x18,%ymm3,%ymm3
3113  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
3114  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
3115  DB  72,173                              ; lods          %ds:(%rsi),%rax
3116  DB  255,224                             ; jmpq          *%rax
3117
3118PUBLIC _sk_store_8888_hsw
3119_sk_store_8888_hsw LABEL PROC
3120  DB  73,137,200                          ; mov           %rcx,%r8
3121  DB  72,173                              ; lods          %ds:(%rsi),%rax
3122  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
3123  DB  76,3,8                              ; add           (%rax),%r9
3124  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
3125  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
3126  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3127  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
3128  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
3129  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
3130  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
3131  DB  196,193,45,114,242,8                ; vpslld        $0x8,%ymm10,%ymm10
3132  DB  196,65,45,235,201                   ; vpor          %ymm9,%ymm10,%ymm9
3133  DB  197,60,89,210                       ; vmulps        %ymm2,%ymm8,%ymm10
3134  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
3135  DB  196,193,45,114,242,16               ; vpslld        $0x10,%ymm10,%ymm10
3136  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
3137  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
3138  DB  196,193,61,114,240,24               ; vpslld        $0x18,%ymm8,%ymm8
3139  DB  196,65,45,235,192                   ; vpor          %ymm8,%ymm10,%ymm8
3140  DB  196,65,53,235,192                   ; vpor          %ymm8,%ymm9,%ymm8
3141  DB  77,133,192                          ; test          %r8,%r8
3142  DB  117,12                              ; jne           30c8 <_sk_store_8888_hsw+0x74>
3143  DB  196,65,126,127,1                    ; vmovdqu       %ymm8,(%r9)
3144  DB  72,173                              ; lods          %ds:(%rsi),%rax
3145  DB  76,137,193                          ; mov           %r8,%rcx
3146  DB  255,224                             ; jmpq          *%rax
3147  DB  185,8,0,0,0                         ; mov           $0x8,%ecx
3148  DB  68,41,193                           ; sub           %r8d,%ecx
3149  DB  192,225,3                           ; shl           $0x3,%cl
3150  DB  72,199,192,255,255,255,255          ; mov           $0xffffffffffffffff,%rax
3151  DB  72,211,232                          ; shr           %cl,%rax
3152  DB  196,97,249,110,200                  ; vmovq         %rax,%xmm9
3153  DB  196,66,125,33,201                   ; vpmovsxbd     %xmm9,%ymm9
3154  DB  196,66,53,142,1                     ; vpmaskmovd    %ymm8,%ymm9,(%r9)
3155  DB  235,211                             ; jmp           30c1 <_sk_store_8888_hsw+0x6d>
3156
3157PUBLIC _sk_load_f16_hsw
3158_sk_load_f16_hsw LABEL PROC
3159  DB  72,173                              ; lods          %ds:(%rsi),%rax
3160  DB  72,139,0                            ; mov           (%rax),%rax
3161  DB  72,133,201                          ; test          %rcx,%rcx
3162  DB  117,97                              ; jne           3159 <_sk_load_f16_hsw+0x6b>
3163  DB  197,121,16,4,248                    ; vmovupd       (%rax,%rdi,8),%xmm8
3164  DB  197,249,16,84,248,16                ; vmovupd       0x10(%rax,%rdi,8),%xmm2
3165  DB  197,249,16,92,248,32                ; vmovupd       0x20(%rax,%rdi,8),%xmm3
3166  DB  197,122,111,76,248,48               ; vmovdqu       0x30(%rax,%rdi,8),%xmm9
3167  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
3168  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
3169  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
3170  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
3171  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
3172  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
3173  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
3174  DB  197,241,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm3
3175  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
3176  DB  196,226,125,19,192                  ; vcvtph2ps     %xmm0,%ymm0
3177  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
3178  DB  196,226,125,19,201                  ; vcvtph2ps     %xmm1,%ymm1
3179  DB  197,177,108,211                     ; vpunpcklqdq   %xmm3,%xmm9,%xmm2
3180  DB  196,226,125,19,210                  ; vcvtph2ps     %xmm2,%ymm2
3181  DB  197,177,109,219                     ; vpunpckhqdq   %xmm3,%xmm9,%xmm3
3182  DB  196,226,125,19,219                  ; vcvtph2ps     %xmm3,%ymm3
3183  DB  72,173                              ; lods          %ds:(%rsi),%rax
3184  DB  255,224                             ; jmpq          *%rax
3185  DB  197,123,16,4,248                    ; vmovsd        (%rax,%rdi,8),%xmm8
3186  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
3187  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3188  DB  116,79                              ; je            31b8 <_sk_load_f16_hsw+0xca>
3189  DB  197,57,22,68,248,8                  ; vmovhpd       0x8(%rax,%rdi,8),%xmm8,%xmm8
3190  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3191  DB  114,67                              ; jb            31b8 <_sk_load_f16_hsw+0xca>
3192  DB  197,251,16,84,248,16                ; vmovsd        0x10(%rax,%rdi,8),%xmm2
3193  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3194  DB  116,68                              ; je            31c5 <_sk_load_f16_hsw+0xd7>
3195  DB  197,233,22,84,248,24                ; vmovhpd       0x18(%rax,%rdi,8),%xmm2,%xmm2
3196  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3197  DB  114,56                              ; jb            31c5 <_sk_load_f16_hsw+0xd7>
3198  DB  197,251,16,92,248,32                ; vmovsd        0x20(%rax,%rdi,8),%xmm3
3199  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3200  DB  15,132,114,255,255,255              ; je            310f <_sk_load_f16_hsw+0x21>
3201  DB  197,225,22,92,248,40                ; vmovhpd       0x28(%rax,%rdi,8),%xmm3,%xmm3
3202  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3203  DB  15,130,98,255,255,255               ; jb            310f <_sk_load_f16_hsw+0x21>
3204  DB  197,122,126,76,248,48               ; vmovq         0x30(%rax,%rdi,8),%xmm9
3205  DB  233,87,255,255,255                  ; jmpq          310f <_sk_load_f16_hsw+0x21>
3206  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
3207  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
3208  DB  233,74,255,255,255                  ; jmpq          310f <_sk_load_f16_hsw+0x21>
3209  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
3210  DB  233,65,255,255,255                  ; jmpq          310f <_sk_load_f16_hsw+0x21>
3211
3212PUBLIC _sk_gather_f16_hsw
3213_sk_gather_f16_hsw LABEL PROC
3214  DB  72,173                              ; lods          %ds:(%rsi),%rax
3215  DB  76,139,0                            ; mov           (%rax),%r8
3216  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
3217  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
3218  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
3219  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
3220  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
3221  DB  197,245,118,201                     ; vpcmpeqd      %ymm1,%ymm1,%ymm1
3222  DB  197,237,118,210                     ; vpcmpeqd      %ymm2,%ymm2,%ymm2
3223  DB  196,194,237,144,28,192              ; vpgatherdq    %ymm2,(%r8,%xmm0,8),%ymm3
3224  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
3225  DB  196,194,245,144,20,192              ; vpgatherdq    %ymm1,(%r8,%xmm0,8),%ymm2
3226  DB  196,227,125,57,216,1                ; vextracti128  $0x1,%ymm3,%xmm0
3227  DB  196,227,125,57,209,1                ; vextracti128  $0x1,%ymm2,%xmm1
3228  DB  197,97,97,192                       ; vpunpcklwd    %xmm0,%xmm3,%xmm8
3229  DB  197,225,105,192                     ; vpunpckhwd    %xmm0,%xmm3,%xmm0
3230  DB  197,233,97,217                      ; vpunpcklwd    %xmm1,%xmm2,%xmm3
3231  DB  197,233,105,201                     ; vpunpckhwd    %xmm1,%xmm2,%xmm1
3232  DB  197,57,97,200                       ; vpunpcklwd    %xmm0,%xmm8,%xmm9
3233  DB  197,57,105,192                      ; vpunpckhwd    %xmm0,%xmm8,%xmm8
3234  DB  197,225,97,209                      ; vpunpcklwd    %xmm1,%xmm3,%xmm2
3235  DB  197,225,105,217                     ; vpunpckhwd    %xmm1,%xmm3,%xmm3
3236  DB  197,177,108,194                     ; vpunpcklqdq   %xmm2,%xmm9,%xmm0
3237  DB  196,226,125,19,192                  ; vcvtph2ps     %xmm0,%ymm0
3238  DB  197,177,109,202                     ; vpunpckhqdq   %xmm2,%xmm9,%xmm1
3239  DB  196,226,125,19,201                  ; vcvtph2ps     %xmm1,%ymm1
3240  DB  197,185,108,211                     ; vpunpcklqdq   %xmm3,%xmm8,%xmm2
3241  DB  196,226,125,19,210                  ; vcvtph2ps     %xmm2,%ymm2
3242  DB  197,185,109,219                     ; vpunpckhqdq   %xmm3,%xmm8,%xmm3
3243  DB  196,226,125,19,219                  ; vcvtph2ps     %xmm3,%ymm3
3244  DB  72,173                              ; lods          %ds:(%rsi),%rax
3245  DB  255,224                             ; jmpq          *%rax
3246
3247PUBLIC _sk_store_f16_hsw
3248_sk_store_f16_hsw LABEL PROC
3249  DB  72,173                              ; lods          %ds:(%rsi),%rax
3250  DB  72,139,0                            ; mov           (%rax),%rax
3251  DB  196,195,125,29,192,4                ; vcvtps2ph     $0x4,%ymm0,%xmm8
3252  DB  196,195,125,29,201,4                ; vcvtps2ph     $0x4,%ymm1,%xmm9
3253  DB  196,195,125,29,210,4                ; vcvtps2ph     $0x4,%ymm2,%xmm10
3254  DB  196,195,125,29,219,4                ; vcvtps2ph     $0x4,%ymm3,%xmm11
3255  DB  196,65,57,97,225                    ; vpunpcklwd    %xmm9,%xmm8,%xmm12
3256  DB  196,65,57,105,193                   ; vpunpckhwd    %xmm9,%xmm8,%xmm8
3257  DB  196,65,41,97,203                    ; vpunpcklwd    %xmm11,%xmm10,%xmm9
3258  DB  196,65,41,105,235                   ; vpunpckhwd    %xmm11,%xmm10,%xmm13
3259  DB  196,65,25,98,217                    ; vpunpckldq    %xmm9,%xmm12,%xmm11
3260  DB  196,65,25,106,209                   ; vpunpckhdq    %xmm9,%xmm12,%xmm10
3261  DB  196,65,57,98,205                    ; vpunpckldq    %xmm13,%xmm8,%xmm9
3262  DB  196,65,57,106,197                   ; vpunpckhdq    %xmm13,%xmm8,%xmm8
3263  DB  72,133,201                          ; test          %rcx,%rcx
3264  DB  117,27                              ; jne           32bd <_sk_store_f16_hsw+0x65>
3265  DB  197,120,17,28,248                   ; vmovups       %xmm11,(%rax,%rdi,8)
3266  DB  197,120,17,84,248,16                ; vmovups       %xmm10,0x10(%rax,%rdi,8)
3267  DB  197,120,17,76,248,32                ; vmovups       %xmm9,0x20(%rax,%rdi,8)
3268  DB  197,122,127,68,248,48               ; vmovdqu       %xmm8,0x30(%rax,%rdi,8)
3269  DB  72,173                              ; lods          %ds:(%rsi),%rax
3270  DB  255,224                             ; jmpq          *%rax
3271  DB  197,121,214,28,248                  ; vmovq         %xmm11,(%rax,%rdi,8)
3272  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3273  DB  116,241                             ; je            32b9 <_sk_store_f16_hsw+0x61>
3274  DB  197,121,23,92,248,8                 ; vmovhpd       %xmm11,0x8(%rax,%rdi,8)
3275  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3276  DB  114,229                             ; jb            32b9 <_sk_store_f16_hsw+0x61>
3277  DB  197,121,214,84,248,16               ; vmovq         %xmm10,0x10(%rax,%rdi,8)
3278  DB  116,221                             ; je            32b9 <_sk_store_f16_hsw+0x61>
3279  DB  197,121,23,84,248,24                ; vmovhpd       %xmm10,0x18(%rax,%rdi,8)
3280  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3281  DB  114,209                             ; jb            32b9 <_sk_store_f16_hsw+0x61>
3282  DB  197,121,214,76,248,32               ; vmovq         %xmm9,0x20(%rax,%rdi,8)
3283  DB  116,201                             ; je            32b9 <_sk_store_f16_hsw+0x61>
3284  DB  197,121,23,76,248,40                ; vmovhpd       %xmm9,0x28(%rax,%rdi,8)
3285  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3286  DB  114,189                             ; jb            32b9 <_sk_store_f16_hsw+0x61>
3287  DB  197,121,214,68,248,48               ; vmovq         %xmm8,0x30(%rax,%rdi,8)
3288  DB  235,181                             ; jmp           32b9 <_sk_store_f16_hsw+0x61>
3289
3290PUBLIC _sk_load_u16_be_hsw
3291_sk_load_u16_be_hsw LABEL PROC
3292  DB  72,173                              ; lods          %ds:(%rsi),%rax
3293  DB  76,139,0                            ; mov           (%rax),%r8
3294  DB  72,141,4,189,0,0,0,0                ; lea           0x0(,%rdi,4),%rax
3295  DB  72,133,201                          ; test          %rcx,%rcx
3296  DB  15,133,205,0,0,0                    ; jne           33e7 <_sk_load_u16_be_hsw+0xe3>
3297  DB  196,65,121,16,4,64                  ; vmovupd       (%r8,%rax,2),%xmm8
3298  DB  196,193,121,16,84,64,16             ; vmovupd       0x10(%r8,%rax,2),%xmm2
3299  DB  196,193,121,16,92,64,32             ; vmovupd       0x20(%r8,%rax,2),%xmm3
3300  DB  196,65,122,111,76,64,48             ; vmovdqu       0x30(%r8,%rax,2),%xmm9
3301  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
3302  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
3303  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
3304  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
3305  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
3306  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
3307  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
3308  DB  197,113,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm11
3309  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
3310  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3311  DB  196,98,125,88,208                   ; vpbroadcastd  %xmm0,%ymm10
3312  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
3313  DB  197,241,113,240,8                   ; vpsllw        $0x8,%xmm0,%xmm1
3314  DB  197,249,113,208,8                   ; vpsrlw        $0x8,%xmm0,%xmm0
3315  DB  197,241,235,192                     ; vpor          %xmm0,%xmm1,%xmm0
3316  DB  196,226,125,51,192                  ; vpmovzxwd     %xmm0,%ymm0
3317  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
3318  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
3319  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
3320  DB  197,233,113,241,8                   ; vpsllw        $0x8,%xmm1,%xmm2
3321  DB  197,241,113,209,8                   ; vpsrlw        $0x8,%xmm1,%xmm1
3322  DB  197,233,235,201                     ; vpor          %xmm1,%xmm2,%xmm1
3323  DB  196,226,125,51,201                  ; vpmovzxwd     %xmm1,%ymm1
3324  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
3325  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
3326  DB  196,193,49,108,211                  ; vpunpcklqdq   %xmm11,%xmm9,%xmm2
3327  DB  197,225,113,242,8                   ; vpsllw        $0x8,%xmm2,%xmm3
3328  DB  197,233,113,210,8                   ; vpsrlw        $0x8,%xmm2,%xmm2
3329  DB  197,225,235,210                     ; vpor          %xmm2,%xmm3,%xmm2
3330  DB  196,226,125,51,210                  ; vpmovzxwd     %xmm2,%ymm2
3331  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
3332  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
3333  DB  196,193,49,109,219                  ; vpunpckhqdq   %xmm11,%xmm9,%xmm3
3334  DB  197,185,113,243,8                   ; vpsllw        $0x8,%xmm3,%xmm8
3335  DB  197,225,113,211,8                   ; vpsrlw        $0x8,%xmm3,%xmm3
3336  DB  197,185,235,219                     ; vpor          %xmm3,%xmm8,%xmm3
3337  DB  196,226,125,51,219                  ; vpmovzxwd     %xmm3,%ymm3
3338  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
3339  DB  197,172,89,219                      ; vmulps        %ymm3,%ymm10,%ymm3
3340  DB  72,173                              ; lods          %ds:(%rsi),%rax
3341  DB  255,224                             ; jmpq          *%rax
3342  DB  196,65,123,16,4,64                  ; vmovsd        (%r8,%rax,2),%xmm8
3343  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
3344  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3345  DB  116,85                              ; je            344d <_sk_load_u16_be_hsw+0x149>
3346  DB  196,65,57,22,68,64,8                ; vmovhpd       0x8(%r8,%rax,2),%xmm8,%xmm8
3347  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3348  DB  114,72                              ; jb            344d <_sk_load_u16_be_hsw+0x149>
3349  DB  196,193,123,16,84,64,16             ; vmovsd        0x10(%r8,%rax,2),%xmm2
3350  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3351  DB  116,72                              ; je            345a <_sk_load_u16_be_hsw+0x156>
3352  DB  196,193,105,22,84,64,24             ; vmovhpd       0x18(%r8,%rax,2),%xmm2,%xmm2
3353  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3354  DB  114,59                              ; jb            345a <_sk_load_u16_be_hsw+0x156>
3355  DB  196,193,123,16,92,64,32             ; vmovsd        0x20(%r8,%rax,2),%xmm3
3356  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3357  DB  15,132,5,255,255,255                ; je            3335 <_sk_load_u16_be_hsw+0x31>
3358  DB  196,193,97,22,92,64,40              ; vmovhpd       0x28(%r8,%rax,2),%xmm3,%xmm3
3359  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3360  DB  15,130,244,254,255,255              ; jb            3335 <_sk_load_u16_be_hsw+0x31>
3361  DB  196,65,122,126,76,64,48             ; vmovq         0x30(%r8,%rax,2),%xmm9
3362  DB  233,232,254,255,255                 ; jmpq          3335 <_sk_load_u16_be_hsw+0x31>
3363  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
3364  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
3365  DB  233,219,254,255,255                 ; jmpq          3335 <_sk_load_u16_be_hsw+0x31>
3366  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
3367  DB  233,210,254,255,255                 ; jmpq          3335 <_sk_load_u16_be_hsw+0x31>
3368
3369PUBLIC _sk_load_rgb_u16_be_hsw
3370_sk_load_rgb_u16_be_hsw LABEL PROC
3371  DB  72,173                              ; lods          %ds:(%rsi),%rax
3372  DB  76,139,0                            ; mov           (%rax),%r8
3373  DB  72,141,4,127                        ; lea           (%rdi,%rdi,2),%rax
3374  DB  72,133,201                          ; test          %rcx,%rcx
3375  DB  15,133,211,0,0,0                    ; jne           3548 <_sk_load_rgb_u16_be_hsw+0xe5>
3376  DB  196,193,122,111,4,64                ; vmovdqu       (%r8,%rax,2),%xmm0
3377  DB  196,193,122,111,84,64,12            ; vmovdqu       0xc(%r8,%rax,2),%xmm2
3378  DB  196,193,122,111,76,64,24            ; vmovdqu       0x18(%r8,%rax,2),%xmm1
3379  DB  196,193,122,111,92,64,32            ; vmovdqu       0x20(%r8,%rax,2),%xmm3
3380  DB  197,225,115,219,4                   ; vpsrldq       $0x4,%xmm3,%xmm3
3381  DB  197,185,115,216,6                   ; vpsrldq       $0x6,%xmm0,%xmm8
3382  DB  197,177,115,218,6                   ; vpsrldq       $0x6,%xmm2,%xmm9
3383  DB  197,161,115,217,6                   ; vpsrldq       $0x6,%xmm1,%xmm11
3384  DB  197,169,115,219,6                   ; vpsrldq       $0x6,%xmm3,%xmm10
3385  DB  197,249,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm0
3386  DB  196,193,57,97,209                   ; vpunpcklwd    %xmm9,%xmm8,%xmm2
3387  DB  197,241,97,203                      ; vpunpcklwd    %xmm3,%xmm1,%xmm1
3388  DB  196,193,33,97,218                   ; vpunpcklwd    %xmm10,%xmm11,%xmm3
3389  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
3390  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
3391  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
3392  DB  197,241,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm3
3393  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
3394  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3395  DB  196,98,125,88,208                   ; vpbroadcastd  %xmm0,%ymm10
3396  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
3397  DB  197,241,113,240,8                   ; vpsllw        $0x8,%xmm0,%xmm1
3398  DB  197,249,113,208,8                   ; vpsrlw        $0x8,%xmm0,%xmm0
3399  DB  197,241,235,192                     ; vpor          %xmm0,%xmm1,%xmm0
3400  DB  196,226,125,51,192                  ; vpmovzxwd     %xmm0,%ymm0
3401  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
3402  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
3403  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
3404  DB  197,233,113,241,8                   ; vpsllw        $0x8,%xmm1,%xmm2
3405  DB  197,241,113,209,8                   ; vpsrlw        $0x8,%xmm1,%xmm1
3406  DB  197,233,235,201                     ; vpor          %xmm1,%xmm2,%xmm1
3407  DB  196,226,125,51,201                  ; vpmovzxwd     %xmm1,%ymm1
3408  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
3409  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
3410  DB  197,177,108,211                     ; vpunpcklqdq   %xmm3,%xmm9,%xmm2
3411  DB  197,225,113,242,8                   ; vpsllw        $0x8,%xmm2,%xmm3
3412  DB  197,233,113,210,8                   ; vpsrlw        $0x8,%xmm2,%xmm2
3413  DB  197,225,235,210                     ; vpor          %xmm2,%xmm3,%xmm2
3414  DB  196,226,125,51,210                  ; vpmovzxwd     %xmm2,%ymm2
3415  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
3416  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
3417  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
3418  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
3419  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
3420  DB  72,173                              ; lods          %ds:(%rsi),%rax
3421  DB  255,224                             ; jmpq          *%rax
3422  DB  196,193,121,110,4,64                ; vmovd         (%r8,%rax,2),%xmm0
3423  DB  196,193,121,196,68,64,4,2           ; vpinsrw       $0x2,0x4(%r8,%rax,2),%xmm0,%xmm0
3424  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3425  DB  117,5                               ; jne           3561 <_sk_load_rgb_u16_be_hsw+0xfe>
3426  DB  233,72,255,255,255                  ; jmpq          34a9 <_sk_load_rgb_u16_be_hsw+0x46>
3427  DB  196,193,121,110,76,64,6             ; vmovd         0x6(%r8,%rax,2),%xmm1
3428  DB  196,65,113,196,68,64,10,2           ; vpinsrw       $0x2,0xa(%r8,%rax,2),%xmm1,%xmm8
3429  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3430  DB  114,26                              ; jb            3590 <_sk_load_rgb_u16_be_hsw+0x12d>
3431  DB  196,193,121,110,76,64,12            ; vmovd         0xc(%r8,%rax,2),%xmm1
3432  DB  196,193,113,196,84,64,16,2          ; vpinsrw       $0x2,0x10(%r8,%rax,2),%xmm1,%xmm2
3433  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3434  DB  117,10                              ; jne           3595 <_sk_load_rgb_u16_be_hsw+0x132>
3435  DB  233,25,255,255,255                  ; jmpq          34a9 <_sk_load_rgb_u16_be_hsw+0x46>
3436  DB  233,20,255,255,255                  ; jmpq          34a9 <_sk_load_rgb_u16_be_hsw+0x46>
3437  DB  196,193,121,110,76,64,18            ; vmovd         0x12(%r8,%rax,2),%xmm1
3438  DB  196,65,113,196,76,64,22,2           ; vpinsrw       $0x2,0x16(%r8,%rax,2),%xmm1,%xmm9
3439  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3440  DB  114,26                              ; jb            35c4 <_sk_load_rgb_u16_be_hsw+0x161>
3441  DB  196,193,121,110,76,64,24            ; vmovd         0x18(%r8,%rax,2),%xmm1
3442  DB  196,193,113,196,76,64,28,2          ; vpinsrw       $0x2,0x1c(%r8,%rax,2),%xmm1,%xmm1
3443  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3444  DB  117,10                              ; jne           35c9 <_sk_load_rgb_u16_be_hsw+0x166>
3445  DB  233,229,254,255,255                 ; jmpq          34a9 <_sk_load_rgb_u16_be_hsw+0x46>
3446  DB  233,224,254,255,255                 ; jmpq          34a9 <_sk_load_rgb_u16_be_hsw+0x46>
3447  DB  196,193,121,110,92,64,30            ; vmovd         0x1e(%r8,%rax,2),%xmm3
3448  DB  196,65,97,196,92,64,34,2            ; vpinsrw       $0x2,0x22(%r8,%rax,2),%xmm3,%xmm11
3449  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3450  DB  114,20                              ; jb            35f2 <_sk_load_rgb_u16_be_hsw+0x18f>
3451  DB  196,193,121,110,92,64,36            ; vmovd         0x24(%r8,%rax,2),%xmm3
3452  DB  196,193,97,196,92,64,40,2           ; vpinsrw       $0x2,0x28(%r8,%rax,2),%xmm3,%xmm3
3453  DB  233,183,254,255,255                 ; jmpq          34a9 <_sk_load_rgb_u16_be_hsw+0x46>
3454  DB  233,178,254,255,255                 ; jmpq          34a9 <_sk_load_rgb_u16_be_hsw+0x46>
3455
3456PUBLIC _sk_store_u16_be_hsw
3457_sk_store_u16_be_hsw LABEL PROC
3458  DB  72,173                              ; lods          %ds:(%rsi),%rax
3459  DB  76,139,0                            ; mov           (%rax),%r8
3460  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
3461  DB  184,0,255,127,71                    ; mov           $0x477fff00,%eax
3462  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
3463  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3464  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
3465  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
3466  DB  196,67,125,25,202,1                 ; vextractf128  $0x1,%ymm9,%xmm10
3467  DB  196,66,49,43,202                    ; vpackusdw     %xmm10,%xmm9,%xmm9
3468  DB  196,193,41,113,241,8                ; vpsllw        $0x8,%xmm9,%xmm10
3469  DB  196,193,49,113,209,8                ; vpsrlw        $0x8,%xmm9,%xmm9
3470  DB  196,65,41,235,201                   ; vpor          %xmm9,%xmm10,%xmm9
3471  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
3472  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
3473  DB  196,67,125,25,211,1                 ; vextractf128  $0x1,%ymm10,%xmm11
3474  DB  196,66,41,43,211                    ; vpackusdw     %xmm11,%xmm10,%xmm10
3475  DB  196,193,33,113,242,8                ; vpsllw        $0x8,%xmm10,%xmm11
3476  DB  196,193,41,113,210,8                ; vpsrlw        $0x8,%xmm10,%xmm10
3477  DB  196,65,33,235,210                   ; vpor          %xmm10,%xmm11,%xmm10
3478  DB  197,60,89,218                       ; vmulps        %ymm2,%ymm8,%ymm11
3479  DB  196,65,125,91,219                   ; vcvtps2dq     %ymm11,%ymm11
3480  DB  196,67,125,25,220,1                 ; vextractf128  $0x1,%ymm11,%xmm12
3481  DB  196,66,33,43,220                    ; vpackusdw     %xmm12,%xmm11,%xmm11
3482  DB  196,193,25,113,243,8                ; vpsllw        $0x8,%xmm11,%xmm12
3483  DB  196,193,33,113,211,8                ; vpsrlw        $0x8,%xmm11,%xmm11
3484  DB  196,65,25,235,219                   ; vpor          %xmm11,%xmm12,%xmm11
3485  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
3486  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
3487  DB  196,67,125,25,196,1                 ; vextractf128  $0x1,%ymm8,%xmm12
3488  DB  196,66,57,43,196                    ; vpackusdw     %xmm12,%xmm8,%xmm8
3489  DB  196,193,25,113,240,8                ; vpsllw        $0x8,%xmm8,%xmm12
3490  DB  196,193,57,113,208,8                ; vpsrlw        $0x8,%xmm8,%xmm8
3491  DB  196,65,25,235,192                   ; vpor          %xmm8,%xmm12,%xmm8
3492  DB  196,65,49,97,226                    ; vpunpcklwd    %xmm10,%xmm9,%xmm12
3493  DB  196,65,49,105,234                   ; vpunpckhwd    %xmm10,%xmm9,%xmm13
3494  DB  196,65,33,97,200                    ; vpunpcklwd    %xmm8,%xmm11,%xmm9
3495  DB  196,65,33,105,192                   ; vpunpckhwd    %xmm8,%xmm11,%xmm8
3496  DB  196,65,25,98,217                    ; vpunpckldq    %xmm9,%xmm12,%xmm11
3497  DB  196,65,25,106,209                   ; vpunpckhdq    %xmm9,%xmm12,%xmm10
3498  DB  196,65,17,98,200                    ; vpunpckldq    %xmm8,%xmm13,%xmm9
3499  DB  196,65,17,106,192                   ; vpunpckhdq    %xmm8,%xmm13,%xmm8
3500  DB  72,133,201                          ; test          %rcx,%rcx
3501  DB  117,31                              ; jne           36f2 <_sk_store_u16_be_hsw+0xfb>
3502  DB  196,1,120,17,28,72                  ; vmovups       %xmm11,(%r8,%r9,2)
3503  DB  196,1,120,17,84,72,16               ; vmovups       %xmm10,0x10(%r8,%r9,2)
3504  DB  196,1,120,17,76,72,32               ; vmovups       %xmm9,0x20(%r8,%r9,2)
3505  DB  196,1,122,127,68,72,48              ; vmovdqu       %xmm8,0x30(%r8,%r9,2)
3506  DB  72,173                              ; lods          %ds:(%rsi),%rax
3507  DB  255,224                             ; jmpq          *%rax
3508  DB  196,1,121,214,28,72                 ; vmovq         %xmm11,(%r8,%r9,2)
3509  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3510  DB  116,240                             ; je            36ee <_sk_store_u16_be_hsw+0xf7>
3511  DB  196,1,121,23,92,72,8                ; vmovhpd       %xmm11,0x8(%r8,%r9,2)
3512  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3513  DB  114,227                             ; jb            36ee <_sk_store_u16_be_hsw+0xf7>
3514  DB  196,1,121,214,84,72,16              ; vmovq         %xmm10,0x10(%r8,%r9,2)
3515  DB  116,218                             ; je            36ee <_sk_store_u16_be_hsw+0xf7>
3516  DB  196,1,121,23,84,72,24               ; vmovhpd       %xmm10,0x18(%r8,%r9,2)
3517  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3518  DB  114,205                             ; jb            36ee <_sk_store_u16_be_hsw+0xf7>
3519  DB  196,1,121,214,76,72,32              ; vmovq         %xmm9,0x20(%r8,%r9,2)
3520  DB  116,196                             ; je            36ee <_sk_store_u16_be_hsw+0xf7>
3521  DB  196,1,121,23,76,72,40               ; vmovhpd       %xmm9,0x28(%r8,%r9,2)
3522  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3523  DB  114,183                             ; jb            36ee <_sk_store_u16_be_hsw+0xf7>
3524  DB  196,1,121,214,68,72,48              ; vmovq         %xmm8,0x30(%r8,%r9,2)
3525  DB  235,174                             ; jmp           36ee <_sk_store_u16_be_hsw+0xf7>
3526
3527PUBLIC _sk_load_f32_hsw
3528_sk_load_f32_hsw LABEL PROC
3529  DB  72,173                              ; lods          %ds:(%rsi),%rax
3530  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3531  DB  119,110                             ; ja            37b6 <_sk_load_f32_hsw+0x76>
3532  DB  76,139,0                            ; mov           (%rax),%r8
3533  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
3534  DB  76,141,21,134,0,0,0                 ; lea           0x86(%rip),%r10        # 37e0 <_sk_load_f32_hsw+0xa0>
3535  DB  73,99,4,138                         ; movslq        (%r10,%rcx,4),%rax
3536  DB  76,1,208                            ; add           %r10,%rax
3537  DB  255,224                             ; jmpq          *%rax
3538  DB  196,3,125,24,68,136,112,1           ; vinsertf128   $0x1,0x70(%r8,%r9,4),%ymm0,%ymm8
3539  DB  196,131,125,24,92,136,96,1          ; vinsertf128   $0x1,0x60(%r8,%r9,4),%ymm0,%ymm3
3540  DB  196,131,125,24,76,136,80,1          ; vinsertf128   $0x1,0x50(%r8,%r9,4),%ymm0,%ymm1
3541  DB  196,131,125,24,84,136,64,1          ; vinsertf128   $0x1,0x40(%r8,%r9,4),%ymm0,%ymm2
3542  DB  196,129,121,16,68,136,48            ; vmovupd       0x30(%r8,%r9,4),%xmm0
3543  DB  196,195,125,13,192,12               ; vblendpd      $0xc,%ymm8,%ymm0,%ymm0
3544  DB  196,1,121,16,68,136,32              ; vmovupd       0x20(%r8,%r9,4),%xmm8
3545  DB  196,99,61,13,203,12                 ; vblendpd      $0xc,%ymm3,%ymm8,%ymm9
3546  DB  196,129,121,16,92,136,16            ; vmovupd       0x10(%r8,%r9,4),%xmm3
3547  DB  196,99,101,13,209,12                ; vblendpd      $0xc,%ymm1,%ymm3,%ymm10
3548  DB  196,129,121,16,12,136               ; vmovupd       (%r8,%r9,4),%xmm1
3549  DB  196,227,117,13,202,12               ; vblendpd      $0xc,%ymm2,%ymm1,%ymm1
3550  DB  196,193,116,20,210                  ; vunpcklps     %ymm10,%ymm1,%ymm2
3551  DB  196,193,116,21,218                  ; vunpckhps     %ymm10,%ymm1,%ymm3
3552  DB  197,180,20,200                      ; vunpcklps     %ymm0,%ymm9,%ymm1
3553  DB  197,52,21,192                       ; vunpckhps     %ymm0,%ymm9,%ymm8
3554  DB  197,237,20,193                      ; vunpcklpd     %ymm1,%ymm2,%ymm0
3555  DB  197,237,21,201                      ; vunpckhpd     %ymm1,%ymm2,%ymm1
3556  DB  196,193,101,20,208                  ; vunpcklpd     %ymm8,%ymm3,%ymm2
3557  DB  196,193,101,21,216                  ; vunpckhpd     %ymm8,%ymm3,%ymm3
3558  DB  72,173                              ; lods          %ds:(%rsi),%rax
3559  DB  255,224                             ; jmpq          *%rax
3560  DB  102,144                             ; xchg          %ax,%ax
3561  DB  131,255,255                         ; cmp           $0xffffffff,%edi
3562  DB  255,202                             ; dec           %edx
3563  DB  255                                 ; (bad)
3564  DB  255                                 ; (bad)
3565  DB  255                                 ; (bad)
3566  DB  189,255,255,255,176                 ; mov           $0xb0ffffff,%ebp
3567  DB  255                                 ; (bad)
3568  DB  255                                 ; (bad)
3569  DB  255,163,255,255,255,155             ; jmpq          *-0x64000001(%rbx)
3570  DB  255                                 ; (bad)
3571  DB  255                                 ; (bad)
3572  DB  255,147,255,255,255,139             ; callq         *-0x74000001(%rbx)
3573  DB  255                                 ; (bad)
3574  DB  255                                 ; (bad)
3575  DB  255                                 ; .byte         0xff
3576
3577PUBLIC _sk_store_f32_hsw
3578_sk_store_f32_hsw LABEL PROC
3579  DB  72,173                              ; lods          %ds:(%rsi),%rax
3580  DB  76,139,0                            ; mov           (%rax),%r8
3581  DB  72,141,4,189,0,0,0,0                ; lea           0x0(,%rdi,4),%rax
3582  DB  197,124,20,193                      ; vunpcklps     %ymm1,%ymm0,%ymm8
3583  DB  197,124,21,217                      ; vunpckhps     %ymm1,%ymm0,%ymm11
3584  DB  197,108,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm9
3585  DB  197,108,21,227                      ; vunpckhps     %ymm3,%ymm2,%ymm12
3586  DB  196,65,61,20,209                    ; vunpcklpd     %ymm9,%ymm8,%ymm10
3587  DB  196,65,61,21,201                    ; vunpckhpd     %ymm9,%ymm8,%ymm9
3588  DB  196,65,37,20,196                    ; vunpcklpd     %ymm12,%ymm11,%ymm8
3589  DB  196,65,37,21,220                    ; vunpckhpd     %ymm12,%ymm11,%ymm11
3590  DB  72,133,201                          ; test          %rcx,%rcx
3591  DB  117,55                              ; jne           386d <_sk_store_f32_hsw+0x6d>
3592  DB  196,67,45,24,225,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm12
3593  DB  196,67,61,24,235,1                  ; vinsertf128   $0x1,%xmm11,%ymm8,%ymm13
3594  DB  196,67,45,6,201,49                  ; vperm2f128    $0x31,%ymm9,%ymm10,%ymm9
3595  DB  196,67,61,6,195,49                  ; vperm2f128    $0x31,%ymm11,%ymm8,%ymm8
3596  DB  196,65,125,17,36,128                ; vmovupd       %ymm12,(%r8,%rax,4)
3597  DB  196,65,125,17,108,128,32            ; vmovupd       %ymm13,0x20(%r8,%rax,4)
3598  DB  196,65,125,17,76,128,64             ; vmovupd       %ymm9,0x40(%r8,%rax,4)
3599  DB  196,65,125,17,68,128,96             ; vmovupd       %ymm8,0x60(%r8,%rax,4)
3600  DB  72,173                              ; lods          %ds:(%rsi),%rax
3601  DB  255,224                             ; jmpq          *%rax
3602  DB  196,65,121,17,20,128                ; vmovupd       %xmm10,(%r8,%rax,4)
3603  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3604  DB  116,240                             ; je            3869 <_sk_store_f32_hsw+0x69>
3605  DB  196,65,121,17,76,128,16             ; vmovupd       %xmm9,0x10(%r8,%rax,4)
3606  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3607  DB  114,227                             ; jb            3869 <_sk_store_f32_hsw+0x69>
3608  DB  196,65,121,17,68,128,32             ; vmovupd       %xmm8,0x20(%r8,%rax,4)
3609  DB  116,218                             ; je            3869 <_sk_store_f32_hsw+0x69>
3610  DB  196,65,121,17,92,128,48             ; vmovupd       %xmm11,0x30(%r8,%rax,4)
3611  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3612  DB  114,205                             ; jb            3869 <_sk_store_f32_hsw+0x69>
3613  DB  196,67,125,25,84,128,64,1           ; vextractf128  $0x1,%ymm10,0x40(%r8,%rax,4)
3614  DB  116,195                             ; je            3869 <_sk_store_f32_hsw+0x69>
3615  DB  196,67,125,25,76,128,80,1           ; vextractf128  $0x1,%ymm9,0x50(%r8,%rax,4)
3616  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3617  DB  114,181                             ; jb            3869 <_sk_store_f32_hsw+0x69>
3618  DB  196,67,125,25,68,128,96,1           ; vextractf128  $0x1,%ymm8,0x60(%r8,%rax,4)
3619  DB  235,171                             ; jmp           3869 <_sk_store_f32_hsw+0x69>
3620
3621PUBLIC _sk_clamp_x_hsw
3622_sk_clamp_x_hsw LABEL PROC
3623  DB  72,173                              ; lods          %ds:(%rsi),%rax
3624  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
3625  DB  197,188,95,192                      ; vmaxps        %ymm0,%ymm8,%ymm0
3626  DB  196,98,125,88,0                     ; vpbroadcastd  (%rax),%ymm8
3627  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
3628  DB  196,65,61,254,193                   ; vpaddd        %ymm9,%ymm8,%ymm8
3629  DB  196,193,124,93,192                  ; vminps        %ymm8,%ymm0,%ymm0
3630  DB  72,173                              ; lods          %ds:(%rsi),%rax
3631  DB  255,224                             ; jmpq          *%rax
3632
3633PUBLIC _sk_clamp_y_hsw
3634_sk_clamp_y_hsw LABEL PROC
3635  DB  72,173                              ; lods          %ds:(%rsi),%rax
3636  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
3637  DB  197,188,95,201                      ; vmaxps        %ymm1,%ymm8,%ymm1
3638  DB  196,98,125,88,0                     ; vpbroadcastd  (%rax),%ymm8
3639  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
3640  DB  196,65,61,254,193                   ; vpaddd        %ymm9,%ymm8,%ymm8
3641  DB  196,193,116,93,200                  ; vminps        %ymm8,%ymm1,%ymm1
3642  DB  72,173                              ; lods          %ds:(%rsi),%rax
3643  DB  255,224                             ; jmpq          *%rax
3644
3645PUBLIC _sk_repeat_x_hsw
3646_sk_repeat_x_hsw LABEL PROC
3647  DB  72,173                              ; lods          %ds:(%rsi),%rax
3648  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
3649  DB  196,65,124,94,200                   ; vdivps        %ymm8,%ymm0,%ymm9
3650  DB  196,67,125,8,201,1                  ; vroundps      $0x1,%ymm9,%ymm9
3651  DB  196,98,61,172,200                   ; vfnmadd213ps  %ymm0,%ymm8,%ymm9
3652  DB  197,253,118,192                     ; vpcmpeqd      %ymm0,%ymm0,%ymm0
3653  DB  197,189,254,192                     ; vpaddd        %ymm0,%ymm8,%ymm0
3654  DB  197,180,93,192                      ; vminps        %ymm0,%ymm9,%ymm0
3655  DB  72,173                              ; lods          %ds:(%rsi),%rax
3656  DB  255,224                             ; jmpq          *%rax
3657
3658PUBLIC _sk_repeat_y_hsw
3659_sk_repeat_y_hsw LABEL PROC
3660  DB  72,173                              ; lods          %ds:(%rsi),%rax
3661  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
3662  DB  196,65,116,94,200                   ; vdivps        %ymm8,%ymm1,%ymm9
3663  DB  196,67,125,8,201,1                  ; vroundps      $0x1,%ymm9,%ymm9
3664  DB  196,98,61,172,201                   ; vfnmadd213ps  %ymm1,%ymm8,%ymm9
3665  DB  197,245,118,201                     ; vpcmpeqd      %ymm1,%ymm1,%ymm1
3666  DB  197,189,254,201                     ; vpaddd        %ymm1,%ymm8,%ymm1
3667  DB  197,180,93,201                      ; vminps        %ymm1,%ymm9,%ymm1
3668  DB  72,173                              ; lods          %ds:(%rsi),%rax
3669  DB  255,224                             ; jmpq          *%rax
3670
3671PUBLIC _sk_mirror_x_hsw
3672_sk_mirror_x_hsw LABEL PROC
3673  DB  72,173                              ; lods          %ds:(%rsi),%rax
3674  DB  197,122,16,0                        ; vmovss        (%rax),%xmm8
3675  DB  196,66,125,24,200                   ; vbroadcastss  %xmm8,%ymm9
3676  DB  196,65,124,92,209                   ; vsubps        %ymm9,%ymm0,%ymm10
3677  DB  196,193,58,88,192                   ; vaddss        %xmm8,%xmm8,%xmm0
3678  DB  196,226,125,24,192                  ; vbroadcastss  %xmm0,%ymm0
3679  DB  197,44,94,192                       ; vdivps        %ymm0,%ymm10,%ymm8
3680  DB  196,67,125,8,192,1                  ; vroundps      $0x1,%ymm8,%ymm8
3681  DB  196,66,125,172,194                  ; vfnmadd213ps  %ymm10,%ymm0,%ymm8
3682  DB  196,193,60,92,193                   ; vsubps        %ymm9,%ymm8,%ymm0
3683  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
3684  DB  197,60,92,192                       ; vsubps        %ymm0,%ymm8,%ymm8
3685  DB  197,188,84,192                      ; vandps        %ymm0,%ymm8,%ymm0
3686  DB  196,65,61,118,192                   ; vpcmpeqd      %ymm8,%ymm8,%ymm8
3687  DB  196,65,53,254,192                   ; vpaddd        %ymm8,%ymm9,%ymm8
3688  DB  196,193,124,93,192                  ; vminps        %ymm8,%ymm0,%ymm0
3689  DB  72,173                              ; lods          %ds:(%rsi),%rax
3690  DB  255,224                             ; jmpq          *%rax
3691
3692PUBLIC _sk_mirror_y_hsw
3693_sk_mirror_y_hsw LABEL PROC
3694  DB  72,173                              ; lods          %ds:(%rsi),%rax
3695  DB  197,122,16,0                        ; vmovss        (%rax),%xmm8
3696  DB  196,66,125,24,200                   ; vbroadcastss  %xmm8,%ymm9
3697  DB  196,65,116,92,209                   ; vsubps        %ymm9,%ymm1,%ymm10
3698  DB  196,193,58,88,200                   ; vaddss        %xmm8,%xmm8,%xmm1
3699  DB  196,226,125,24,201                  ; vbroadcastss  %xmm1,%ymm1
3700  DB  197,44,94,193                       ; vdivps        %ymm1,%ymm10,%ymm8
3701  DB  196,67,125,8,192,1                  ; vroundps      $0x1,%ymm8,%ymm8
3702  DB  196,66,117,172,194                  ; vfnmadd213ps  %ymm10,%ymm1,%ymm8
3703  DB  196,193,60,92,201                   ; vsubps        %ymm9,%ymm8,%ymm1
3704  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
3705  DB  197,60,92,193                       ; vsubps        %ymm1,%ymm8,%ymm8
3706  DB  197,188,84,201                      ; vandps        %ymm1,%ymm8,%ymm1
3707  DB  196,65,61,118,192                   ; vpcmpeqd      %ymm8,%ymm8,%ymm8
3708  DB  196,65,53,254,192                   ; vpaddd        %ymm8,%ymm9,%ymm8
3709  DB  196,193,116,93,200                  ; vminps        %ymm8,%ymm1,%ymm1
3710  DB  72,173                              ; lods          %ds:(%rsi),%rax
3711  DB  255,224                             ; jmpq          *%rax
3712
3713PUBLIC _sk_luminance_to_alpha_hsw
3714_sk_luminance_to_alpha_hsw LABEL PROC
3715  DB  184,208,179,89,62                   ; mov           $0x3e59b3d0,%eax
3716  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
3717  DB  196,98,125,88,195                   ; vpbroadcastd  %xmm3,%ymm8
3718  DB  184,89,23,55,63                     ; mov           $0x3f371759,%eax
3719  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
3720  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
3721  DB  197,228,89,201                      ; vmulps        %ymm1,%ymm3,%ymm1
3722  DB  196,98,125,168,193                  ; vfmadd213ps   %ymm1,%ymm0,%ymm8
3723  DB  184,152,221,147,61                  ; mov           $0x3d93dd98,%eax
3724  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3725  DB  196,226,125,88,216                  ; vpbroadcastd  %xmm0,%ymm3
3726  DB  196,194,109,168,216                 ; vfmadd213ps   %ymm8,%ymm2,%ymm3
3727  DB  72,173                              ; lods          %ds:(%rsi),%rax
3728  DB  197,253,239,192                     ; vpxor         %ymm0,%ymm0,%ymm0
3729  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
3730  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
3731  DB  255,224                             ; jmpq          *%rax
3732
3733PUBLIC _sk_matrix_2x3_hsw
3734_sk_matrix_2x3_hsw LABEL PROC
3735  DB  72,173                              ; lods          %ds:(%rsi),%rax
3736  DB  196,98,125,24,8                     ; vbroadcastss  (%rax),%ymm9
3737  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
3738  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
3739  DB  196,66,117,184,194                  ; vfmadd231ps   %ymm10,%ymm1,%ymm8
3740  DB  196,66,125,184,193                  ; vfmadd231ps   %ymm9,%ymm0,%ymm8
3741  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
3742  DB  196,98,125,24,88,12                 ; vbroadcastss  0xc(%rax),%ymm11
3743  DB  196,98,125,24,72,20                 ; vbroadcastss  0x14(%rax),%ymm9
3744  DB  196,66,117,184,203                  ; vfmadd231ps   %ymm11,%ymm1,%ymm9
3745  DB  196,66,125,184,202                  ; vfmadd231ps   %ymm10,%ymm0,%ymm9
3746  DB  72,173                              ; lods          %ds:(%rsi),%rax
3747  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3748  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
3749  DB  255,224                             ; jmpq          *%rax
3750
3751PUBLIC _sk_matrix_3x4_hsw
3752_sk_matrix_3x4_hsw LABEL PROC
3753  DB  72,173                              ; lods          %ds:(%rsi),%rax
3754  DB  196,98,125,24,8                     ; vbroadcastss  (%rax),%ymm9
3755  DB  196,98,125,24,80,12                 ; vbroadcastss  0xc(%rax),%ymm10
3756  DB  196,98,125,24,88,24                 ; vbroadcastss  0x18(%rax),%ymm11
3757  DB  196,98,125,24,64,36                 ; vbroadcastss  0x24(%rax),%ymm8
3758  DB  196,66,109,184,195                  ; vfmadd231ps   %ymm11,%ymm2,%ymm8
3759  DB  196,66,117,184,194                  ; vfmadd231ps   %ymm10,%ymm1,%ymm8
3760  DB  196,66,125,184,193                  ; vfmadd231ps   %ymm9,%ymm0,%ymm8
3761  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
3762  DB  196,98,125,24,88,16                 ; vbroadcastss  0x10(%rax),%ymm11
3763  DB  196,98,125,24,96,28                 ; vbroadcastss  0x1c(%rax),%ymm12
3764  DB  196,98,125,24,72,40                 ; vbroadcastss  0x28(%rax),%ymm9
3765  DB  196,66,109,184,204                  ; vfmadd231ps   %ymm12,%ymm2,%ymm9
3766  DB  196,66,117,184,203                  ; vfmadd231ps   %ymm11,%ymm1,%ymm9
3767  DB  196,66,125,184,202                  ; vfmadd231ps   %ymm10,%ymm0,%ymm9
3768  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
3769  DB  196,98,125,24,96,20                 ; vbroadcastss  0x14(%rax),%ymm12
3770  DB  196,98,125,24,104,32                ; vbroadcastss  0x20(%rax),%ymm13
3771  DB  196,98,125,24,80,44                 ; vbroadcastss  0x2c(%rax),%ymm10
3772  DB  196,66,109,184,213                  ; vfmadd231ps   %ymm13,%ymm2,%ymm10
3773  DB  196,66,117,184,212                  ; vfmadd231ps   %ymm12,%ymm1,%ymm10
3774  DB  196,66,125,184,211                  ; vfmadd231ps   %ymm11,%ymm0,%ymm10
3775  DB  72,173                              ; lods          %ds:(%rsi),%rax
3776  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3777  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
3778  DB  197,124,41,210                      ; vmovaps       %ymm10,%ymm2
3779  DB  255,224                             ; jmpq          *%rax
3780
3781PUBLIC _sk_matrix_4x5_hsw
3782_sk_matrix_4x5_hsw LABEL PROC
3783  DB  72,173                              ; lods          %ds:(%rsi),%rax
3784  DB  196,98,125,24,8                     ; vbroadcastss  (%rax),%ymm9
3785  DB  196,98,125,24,80,16                 ; vbroadcastss  0x10(%rax),%ymm10
3786  DB  196,98,125,24,88,32                 ; vbroadcastss  0x20(%rax),%ymm11
3787  DB  196,98,125,24,96,48                 ; vbroadcastss  0x30(%rax),%ymm12
3788  DB  196,98,125,24,64,64                 ; vbroadcastss  0x40(%rax),%ymm8
3789  DB  196,66,101,184,196                  ; vfmadd231ps   %ymm12,%ymm3,%ymm8
3790  DB  196,66,109,184,195                  ; vfmadd231ps   %ymm11,%ymm2,%ymm8
3791  DB  196,66,117,184,194                  ; vfmadd231ps   %ymm10,%ymm1,%ymm8
3792  DB  196,66,125,184,193                  ; vfmadd231ps   %ymm9,%ymm0,%ymm8
3793  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
3794  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
3795  DB  196,98,125,24,96,36                 ; vbroadcastss  0x24(%rax),%ymm12
3796  DB  196,98,125,24,104,52                ; vbroadcastss  0x34(%rax),%ymm13
3797  DB  196,98,125,24,72,68                 ; vbroadcastss  0x44(%rax),%ymm9
3798  DB  196,66,101,184,205                  ; vfmadd231ps   %ymm13,%ymm3,%ymm9
3799  DB  196,66,109,184,204                  ; vfmadd231ps   %ymm12,%ymm2,%ymm9
3800  DB  196,66,117,184,203                  ; vfmadd231ps   %ymm11,%ymm1,%ymm9
3801  DB  196,66,125,184,202                  ; vfmadd231ps   %ymm10,%ymm0,%ymm9
3802  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
3803  DB  196,98,125,24,96,24                 ; vbroadcastss  0x18(%rax),%ymm12
3804  DB  196,98,125,24,104,40                ; vbroadcastss  0x28(%rax),%ymm13
3805  DB  196,98,125,24,112,56                ; vbroadcastss  0x38(%rax),%ymm14
3806  DB  196,98,125,24,80,72                 ; vbroadcastss  0x48(%rax),%ymm10
3807  DB  196,66,101,184,214                  ; vfmadd231ps   %ymm14,%ymm3,%ymm10
3808  DB  196,66,109,184,213                  ; vfmadd231ps   %ymm13,%ymm2,%ymm10
3809  DB  196,66,117,184,212                  ; vfmadd231ps   %ymm12,%ymm1,%ymm10
3810  DB  196,66,125,184,211                  ; vfmadd231ps   %ymm11,%ymm0,%ymm10
3811  DB  196,98,125,24,96,12                 ; vbroadcastss  0xc(%rax),%ymm12
3812  DB  196,98,125,24,104,28                ; vbroadcastss  0x1c(%rax),%ymm13
3813  DB  196,98,125,24,112,44                ; vbroadcastss  0x2c(%rax),%ymm14
3814  DB  196,98,125,24,120,60                ; vbroadcastss  0x3c(%rax),%ymm15
3815  DB  196,98,125,24,88,76                 ; vbroadcastss  0x4c(%rax),%ymm11
3816  DB  196,66,101,184,223                  ; vfmadd231ps   %ymm15,%ymm3,%ymm11
3817  DB  196,66,109,184,222                  ; vfmadd231ps   %ymm14,%ymm2,%ymm11
3818  DB  196,66,117,184,221                  ; vfmadd231ps   %ymm13,%ymm1,%ymm11
3819  DB  196,66,125,184,220                  ; vfmadd231ps   %ymm12,%ymm0,%ymm11
3820  DB  72,173                              ; lods          %ds:(%rsi),%rax
3821  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3822  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
3823  DB  197,124,41,210                      ; vmovaps       %ymm10,%ymm2
3824  DB  197,124,41,219                      ; vmovaps       %ymm11,%ymm3
3825  DB  255,224                             ; jmpq          *%rax
3826
3827PUBLIC _sk_matrix_perspective_hsw
3828_sk_matrix_perspective_hsw LABEL PROC
3829  DB  72,173                              ; lods          %ds:(%rsi),%rax
3830  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
3831  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
3832  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
3833  DB  196,66,117,184,209                  ; vfmadd231ps   %ymm9,%ymm1,%ymm10
3834  DB  196,66,125,184,208                  ; vfmadd231ps   %ymm8,%ymm0,%ymm10
3835  DB  196,98,125,24,64,12                 ; vbroadcastss  0xc(%rax),%ymm8
3836  DB  196,98,125,24,72,16                 ; vbroadcastss  0x10(%rax),%ymm9
3837  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
3838  DB  196,66,117,184,217                  ; vfmadd231ps   %ymm9,%ymm1,%ymm11
3839  DB  196,66,125,184,216                  ; vfmadd231ps   %ymm8,%ymm0,%ymm11
3840  DB  196,98,125,24,64,24                 ; vbroadcastss  0x18(%rax),%ymm8
3841  DB  196,98,125,24,72,28                 ; vbroadcastss  0x1c(%rax),%ymm9
3842  DB  196,98,125,24,96,32                 ; vbroadcastss  0x20(%rax),%ymm12
3843  DB  196,66,117,184,225                  ; vfmadd231ps   %ymm9,%ymm1,%ymm12
3844  DB  196,66,125,184,224                  ; vfmadd231ps   %ymm8,%ymm0,%ymm12
3845  DB  196,193,124,83,204                  ; vrcpps        %ymm12,%ymm1
3846  DB  197,172,89,193                      ; vmulps        %ymm1,%ymm10,%ymm0
3847  DB  197,164,89,201                      ; vmulps        %ymm1,%ymm11,%ymm1
3848  DB  72,173                              ; lods          %ds:(%rsi),%rax
3849  DB  255,224                             ; jmpq          *%rax
3850
3851PUBLIC _sk_linear_gradient_hsw
3852_sk_linear_gradient_hsw LABEL PROC
3853  DB  72,173                              ; lods          %ds:(%rsi),%rax
3854  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
3855  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
3856  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
3857  DB  196,98,125,24,72,28                 ; vbroadcastss  0x1c(%rax),%ymm9
3858  DB  76,139,0                            ; mov           (%rax),%r8
3859  DB  77,133,192                          ; test          %r8,%r8
3860  DB  15,132,143,0,0,0                    ; je            3cf9 <_sk_linear_gradient_hsw+0xb5>
3861  DB  72,139,64,8                         ; mov           0x8(%rax),%rax
3862  DB  72,131,192,32                       ; add           $0x20,%rax
3863  DB  196,65,28,87,228                    ; vxorps        %ymm12,%ymm12,%ymm12
3864  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
3865  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
3866  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
3867  DB  196,98,125,24,104,224               ; vbroadcastss  -0x20(%rax),%ymm13
3868  DB  196,65,124,194,237,1                ; vcmpltps      %ymm13,%ymm0,%ymm13
3869  DB  196,98,125,24,112,228               ; vbroadcastss  -0x1c(%rax),%ymm14
3870  DB  196,67,13,74,228,208                ; vblendvps     %ymm13,%ymm12,%ymm14,%ymm12
3871  DB  196,98,125,24,112,232               ; vbroadcastss  -0x18(%rax),%ymm14
3872  DB  196,227,13,74,201,208               ; vblendvps     %ymm13,%ymm1,%ymm14,%ymm1
3873  DB  196,98,125,24,112,236               ; vbroadcastss  -0x14(%rax),%ymm14
3874  DB  196,227,13,74,210,208               ; vblendvps     %ymm13,%ymm2,%ymm14,%ymm2
3875  DB  196,98,125,24,112,240               ; vbroadcastss  -0x10(%rax),%ymm14
3876  DB  196,227,13,74,219,208               ; vblendvps     %ymm13,%ymm3,%ymm14,%ymm3
3877  DB  196,98,125,24,112,244               ; vbroadcastss  -0xc(%rax),%ymm14
3878  DB  196,67,13,74,192,208                ; vblendvps     %ymm13,%ymm8,%ymm14,%ymm8
3879  DB  196,98,125,24,112,248               ; vbroadcastss  -0x8(%rax),%ymm14
3880  DB  196,67,13,74,219,208                ; vblendvps     %ymm13,%ymm11,%ymm14,%ymm11
3881  DB  196,98,125,24,112,252               ; vbroadcastss  -0x4(%rax),%ymm14
3882  DB  196,67,13,74,210,208                ; vblendvps     %ymm13,%ymm10,%ymm14,%ymm10
3883  DB  196,98,125,24,48                    ; vbroadcastss  (%rax),%ymm14
3884  DB  196,67,13,74,201,208                ; vblendvps     %ymm13,%ymm9,%ymm14,%ymm9
3885  DB  72,131,192,36                       ; add           $0x24,%rax
3886  DB  73,255,200                          ; dec           %r8
3887  DB  117,140                             ; jne           3c83 <_sk_linear_gradient_hsw+0x3f>
3888  DB  235,17                              ; jmp           3d0a <_sk_linear_gradient_hsw+0xc6>
3889  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
3890  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
3891  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
3892  DB  196,65,28,87,228                    ; vxorps        %ymm12,%ymm12,%ymm12
3893  DB  196,66,125,184,196                  ; vfmadd231ps   %ymm12,%ymm0,%ymm8
3894  DB  196,194,125,168,203                 ; vfmadd213ps   %ymm11,%ymm0,%ymm1
3895  DB  196,194,125,168,210                 ; vfmadd213ps   %ymm10,%ymm0,%ymm2
3896  DB  196,194,125,168,217                 ; vfmadd213ps   %ymm9,%ymm0,%ymm3
3897  DB  72,173                              ; lods          %ds:(%rsi),%rax
3898  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3899  DB  255,224                             ; jmpq          *%rax
3900
3901PUBLIC _sk_linear_gradient_2stops_hsw
3902_sk_linear_gradient_2stops_hsw LABEL PROC
3903  DB  72,173                              ; lods          %ds:(%rsi),%rax
3904  DB  196,226,125,24,8                    ; vbroadcastss  (%rax),%ymm1
3905  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
3906  DB  196,98,125,184,193                  ; vfmadd231ps   %ymm1,%ymm0,%ymm8
3907  DB  196,226,125,24,80,4                 ; vbroadcastss  0x4(%rax),%ymm2
3908  DB  196,226,125,24,72,20                ; vbroadcastss  0x14(%rax),%ymm1
3909  DB  196,226,125,184,202                 ; vfmadd231ps   %ymm2,%ymm0,%ymm1
3910  DB  196,226,125,24,88,8                 ; vbroadcastss  0x8(%rax),%ymm3
3911  DB  196,226,125,24,80,24                ; vbroadcastss  0x18(%rax),%ymm2
3912  DB  196,226,125,184,211                 ; vfmadd231ps   %ymm3,%ymm0,%ymm2
3913  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
3914  DB  196,226,125,24,88,28                ; vbroadcastss  0x1c(%rax),%ymm3
3915  DB  196,194,125,184,217                 ; vfmadd231ps   %ymm9,%ymm0,%ymm3
3916  DB  72,173                              ; lods          %ds:(%rsi),%rax
3917  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3918  DB  255,224                             ; jmpq          *%rax
3919
3920PUBLIC _sk_save_xy_hsw
3921_sk_save_xy_hsw LABEL PROC
3922  DB  72,173                              ; lods          %ds:(%rsi),%rax
3923  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
3924  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3925  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3926  DB  197,60,88,200                       ; vaddps        %ymm0,%ymm8,%ymm9
3927  DB  196,67,125,8,209,1                  ; vroundps      $0x1,%ymm9,%ymm10
3928  DB  196,65,52,92,202                    ; vsubps        %ymm10,%ymm9,%ymm9
3929  DB  197,60,88,193                       ; vaddps        %ymm1,%ymm8,%ymm8
3930  DB  196,67,125,8,208,1                  ; vroundps      $0x1,%ymm8,%ymm10
3931  DB  196,65,60,92,194                    ; vsubps        %ymm10,%ymm8,%ymm8
3932  DB  197,252,17,0                        ; vmovups       %ymm0,(%rax)
3933  DB  197,252,17,72,32                    ; vmovups       %ymm1,0x20(%rax)
3934  DB  197,124,17,72,64                    ; vmovups       %ymm9,0x40(%rax)
3935  DB  197,124,17,64,96                    ; vmovups       %ymm8,0x60(%rax)
3936  DB  72,173                              ; lods          %ds:(%rsi),%rax
3937  DB  255,224                             ; jmpq          *%rax
3938
3939PUBLIC _sk_accumulate_hsw
3940_sk_accumulate_hsw LABEL PROC
3941  DB  72,173                              ; lods          %ds:(%rsi),%rax
3942  DB  197,124,16,128,128,0,0,0            ; vmovups       0x80(%rax),%ymm8
3943  DB  197,60,89,128,160,0,0,0             ; vmulps        0xa0(%rax),%ymm8,%ymm8
3944  DB  196,226,61,184,224                  ; vfmadd231ps   %ymm0,%ymm8,%ymm4
3945  DB  196,226,61,184,233                  ; vfmadd231ps   %ymm1,%ymm8,%ymm5
3946  DB  196,226,61,184,242                  ; vfmadd231ps   %ymm2,%ymm8,%ymm6
3947  DB  196,98,101,168,199                  ; vfmadd213ps   %ymm7,%ymm3,%ymm8
3948  DB  72,173                              ; lods          %ds:(%rsi),%rax
3949  DB  197,124,41,199                      ; vmovaps       %ymm8,%ymm7
3950  DB  255,224                             ; jmpq          *%rax
3951
3952PUBLIC _sk_bilinear_nx_hsw
3953_sk_bilinear_nx_hsw LABEL PROC
3954  DB  72,173                              ; lods          %ds:(%rsi),%rax
3955  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
3956  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
3957  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
3958  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
3959  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
3960  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3961  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3962  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
3963  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
3964  DB  72,173                              ; lods          %ds:(%rsi),%rax
3965  DB  255,224                             ; jmpq          *%rax
3966
3967PUBLIC _sk_bilinear_px_hsw
3968_sk_bilinear_px_hsw LABEL PROC
3969  DB  72,173                              ; lods          %ds:(%rsi),%rax
3970  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
3971  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
3972  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
3973  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
3974  DB  197,124,16,64,64                    ; vmovups       0x40(%rax),%ymm8
3975  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
3976  DB  72,173                              ; lods          %ds:(%rsi),%rax
3977  DB  255,224                             ; jmpq          *%rax
3978
3979PUBLIC _sk_bilinear_ny_hsw
3980_sk_bilinear_ny_hsw LABEL PROC
3981  DB  72,173                              ; lods          %ds:(%rsi),%rax
3982  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
3983  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
3984  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
3985  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
3986  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
3987  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3988  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3989  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
3990  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
3991  DB  72,173                              ; lods          %ds:(%rsi),%rax
3992  DB  255,224                             ; jmpq          *%rax
3993
3994PUBLIC _sk_bilinear_py_hsw
3995_sk_bilinear_py_hsw LABEL PROC
3996  DB  72,173                              ; lods          %ds:(%rsi),%rax
3997  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
3998  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
3999  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
4000  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
4001  DB  197,124,16,64,96                    ; vmovups       0x60(%rax),%ymm8
4002  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
4003  DB  72,173                              ; lods          %ds:(%rsi),%rax
4004  DB  255,224                             ; jmpq          *%rax
4005
4006PUBLIC _sk_bicubic_n3x_hsw
4007_sk_bicubic_n3x_hsw LABEL PROC
4008  DB  72,173                              ; lods          %ds:(%rsi),%rax
4009  DB  65,184,0,0,192,191                  ; mov           $0xbfc00000,%r8d
4010  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
4011  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
4012  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
4013  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
4014  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4015  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4016  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
4017  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
4018  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
4019  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4020  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4021  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
4022  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4023  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4024  DB  196,66,61,168,211                   ; vfmadd213ps   %ymm11,%ymm8,%ymm10
4025  DB  196,65,44,89,193                    ; vmulps        %ymm9,%ymm10,%ymm8
4026  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
4027  DB  72,173                              ; lods          %ds:(%rsi),%rax
4028  DB  255,224                             ; jmpq          *%rax
4029
4030PUBLIC _sk_bicubic_n1x_hsw
4031_sk_bicubic_n1x_hsw LABEL PROC
4032  DB  72,173                              ; lods          %ds:(%rsi),%rax
4033  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
4034  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
4035  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
4036  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
4037  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
4038  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4039  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4040  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
4041  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
4042  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
4043  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
4044  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4045  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4046  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4047  DB  196,66,61,168,202                   ; vfmadd213ps   %ymm10,%ymm8,%ymm9
4048  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
4049  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4050  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4051  DB  196,66,61,184,209                   ; vfmadd231ps   %ymm9,%ymm8,%ymm10
4052  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
4053  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
4054  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
4055  DB  196,66,61,184,202                   ; vfmadd231ps   %ymm10,%ymm8,%ymm9
4056  DB  197,124,17,136,128,0,0,0            ; vmovups       %ymm9,0x80(%rax)
4057  DB  72,173                              ; lods          %ds:(%rsi),%rax
4058  DB  255,224                             ; jmpq          *%rax
4059
4060PUBLIC _sk_bicubic_p1x_hsw
4061_sk_bicubic_p1x_hsw LABEL PROC
4062  DB  72,173                              ; lods          %ds:(%rsi),%rax
4063  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
4064  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
4065  DB  196,98,125,88,192                   ; vpbroadcastd  %xmm0,%ymm8
4066  DB  197,188,88,0                        ; vaddps        (%rax),%ymm8,%ymm0
4067  DB  197,124,16,72,64                    ; vmovups       0x40(%rax),%ymm9
4068  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
4069  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4070  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4071  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4072  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4073  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4074  DB  196,66,53,168,211                   ; vfmadd213ps   %ymm11,%ymm9,%ymm10
4075  DB  196,66,53,168,208                   ; vfmadd213ps   %ymm8,%ymm9,%ymm10
4076  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
4077  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4078  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4079  DB  196,66,53,184,194                   ; vfmadd231ps   %ymm10,%ymm9,%ymm8
4080  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
4081  DB  72,173                              ; lods          %ds:(%rsi),%rax
4082  DB  255,224                             ; jmpq          *%rax
4083
4084PUBLIC _sk_bicubic_p3x_hsw
4085_sk_bicubic_p3x_hsw LABEL PROC
4086  DB  72,173                              ; lods          %ds:(%rsi),%rax
4087  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4088  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
4089  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
4090  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
4091  DB  197,124,16,64,64                    ; vmovups       0x40(%rax),%ymm8
4092  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
4093  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
4094  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4095  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4096  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
4097  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4098  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4099  DB  196,66,61,168,211                   ; vfmadd213ps   %ymm11,%ymm8,%ymm10
4100  DB  196,65,52,89,194                    ; vmulps        %ymm10,%ymm9,%ymm8
4101  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
4102  DB  72,173                              ; lods          %ds:(%rsi),%rax
4103  DB  255,224                             ; jmpq          *%rax
4104
4105PUBLIC _sk_bicubic_n3y_hsw
4106_sk_bicubic_n3y_hsw LABEL PROC
4107  DB  72,173                              ; lods          %ds:(%rsi),%rax
4108  DB  65,184,0,0,192,191                  ; mov           $0xbfc00000,%r8d
4109  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
4110  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
4111  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
4112  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
4113  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4114  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4115  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
4116  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
4117  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
4118  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4119  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4120  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
4121  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4122  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4123  DB  196,66,61,168,211                   ; vfmadd213ps   %ymm11,%ymm8,%ymm10
4124  DB  196,65,44,89,193                    ; vmulps        %ymm9,%ymm10,%ymm8
4125  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
4126  DB  72,173                              ; lods          %ds:(%rsi),%rax
4127  DB  255,224                             ; jmpq          *%rax
4128
4129PUBLIC _sk_bicubic_n1y_hsw
4130_sk_bicubic_n1y_hsw LABEL PROC
4131  DB  72,173                              ; lods          %ds:(%rsi),%rax
4132  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
4133  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
4134  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
4135  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
4136  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
4137  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4138  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4139  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
4140  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
4141  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
4142  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
4143  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4144  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4145  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4146  DB  196,66,61,168,202                   ; vfmadd213ps   %ymm10,%ymm8,%ymm9
4147  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
4148  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4149  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4150  DB  196,66,61,184,209                   ; vfmadd231ps   %ymm9,%ymm8,%ymm10
4151  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
4152  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
4153  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
4154  DB  196,66,61,184,202                   ; vfmadd231ps   %ymm10,%ymm8,%ymm9
4155  DB  197,124,17,136,160,0,0,0            ; vmovups       %ymm9,0xa0(%rax)
4156  DB  72,173                              ; lods          %ds:(%rsi),%rax
4157  DB  255,224                             ; jmpq          *%rax
4158
4159PUBLIC _sk_bicubic_p1y_hsw
4160_sk_bicubic_p1y_hsw LABEL PROC
4161  DB  72,173                              ; lods          %ds:(%rsi),%rax
4162  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
4163  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
4164  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
4165  DB  197,188,88,72,32                    ; vaddps        0x20(%rax),%ymm8,%ymm1
4166  DB  197,124,16,72,96                    ; vmovups       0x60(%rax),%ymm9
4167  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
4168  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4169  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4170  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4171  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4172  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4173  DB  196,66,53,168,211                   ; vfmadd213ps   %ymm11,%ymm9,%ymm10
4174  DB  196,66,53,168,208                   ; vfmadd213ps   %ymm8,%ymm9,%ymm10
4175  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
4176  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4177  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4178  DB  196,66,53,184,194                   ; vfmadd231ps   %ymm10,%ymm9,%ymm8
4179  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
4180  DB  72,173                              ; lods          %ds:(%rsi),%rax
4181  DB  255,224                             ; jmpq          *%rax
4182
4183PUBLIC _sk_bicubic_p3y_hsw
4184_sk_bicubic_p3y_hsw LABEL PROC
4185  DB  72,173                              ; lods          %ds:(%rsi),%rax
4186  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4187  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
4188  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
4189  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
4190  DB  197,124,16,64,96                    ; vmovups       0x60(%rax),%ymm8
4191  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
4192  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
4193  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4194  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4195  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
4196  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4197  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4198  DB  196,66,61,168,211                   ; vfmadd213ps   %ymm11,%ymm8,%ymm10
4199  DB  196,65,52,89,194                    ; vmulps        %ymm10,%ymm9,%ymm8
4200  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
4201  DB  72,173                              ; lods          %ds:(%rsi),%rax
4202  DB  255,224                             ; jmpq          *%rax
4203
4204PUBLIC _sk_callback_hsw
4205_sk_callback_hsw LABEL PROC
4206  DB  65,86                               ; push          %r14
4207  DB  83                                  ; push          %rbx
4208  DB  72,129,236,40,1,0,0                 ; sub           $0x128,%rsp
4209  DB  197,252,17,188,36,0,1,0,0           ; vmovups       %ymm7,0x100(%rsp)
4210  DB  197,252,17,180,36,224,0,0,0         ; vmovups       %ymm6,0xe0(%rsp)
4211  DB  197,252,17,172,36,192,0,0,0         ; vmovups       %ymm5,0xc0(%rsp)
4212  DB  197,252,17,164,36,160,0,0,0         ; vmovups       %ymm4,0xa0(%rsp)
4213  DB  197,252,17,156,36,128,0,0,0         ; vmovups       %ymm3,0x80(%rsp)
4214  DB  197,252,17,84,36,96                 ; vmovups       %ymm2,0x60(%rsp)
4215  DB  197,252,17,76,36,64                 ; vmovups       %ymm1,0x40(%rsp)
4216  DB  197,252,17,68,36,32                 ; vmovups       %ymm0,0x20(%rsp)
4217  DB  72,137,203                          ; mov           %rcx,%rbx
4218  DB  73,137,214                          ; mov           %rdx,%r14
4219  DB  72,173                              ; lods          %ds:(%rsi),%rax
4220  DB  72,139,72,8                         ; mov           0x8(%rax),%rcx
4221  DB  72,133,219                          ; test          %rbx,%rbx
4222  DB  186,8,0,0,0                         ; mov           $0x8,%edx
4223  DB  15,69,211                           ; cmovne        %ebx,%edx
4224  DB  197,248,119                         ; vzeroupper
4225  DB  255,16                              ; callq         *(%rax)
4226  DB  72,173                              ; lods          %ds:(%rsi),%rax
4227  DB  76,137,242                          ; mov           %r14,%rdx
4228  DB  72,137,217                          ; mov           %rbx,%rcx
4229  DB  197,252,16,68,36,32                 ; vmovups       0x20(%rsp),%ymm0
4230  DB  197,252,16,76,36,64                 ; vmovups       0x40(%rsp),%ymm1
4231  DB  197,252,16,84,36,96                 ; vmovups       0x60(%rsp),%ymm2
4232  DB  197,252,16,156,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm3
4233  DB  197,252,16,164,36,160,0,0,0         ; vmovups       0xa0(%rsp),%ymm4
4234  DB  197,252,16,172,36,192,0,0,0         ; vmovups       0xc0(%rsp),%ymm5
4235  DB  197,252,16,180,36,224,0,0,0         ; vmovups       0xe0(%rsp),%ymm6
4236  DB  197,252,16,188,36,0,1,0,0           ; vmovups       0x100(%rsp),%ymm7
4237  DB  72,129,196,40,1,0,0                 ; add           $0x128,%rsp
4238  DB  91                                  ; pop           %rbx
4239  DB  65,94                               ; pop           %r14
4240  DB  255,224                             ; jmpq          *%rax
4241
4242PUBLIC _sk_start_pipeline_avx
4243_sk_start_pipeline_avx LABEL PROC
4244  DB  65,87                               ; push          %r15
4245  DB  65,86                               ; push          %r14
4246  DB  65,85                               ; push          %r13
4247  DB  65,84                               ; push          %r12
4248  DB  86                                  ; push          %rsi
4249  DB  87                                  ; push          %rdi
4250  DB  83                                  ; push          %rbx
4251  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
4252  DB  197,120,41,188,36,144,0,0,0         ; vmovaps       %xmm15,0x90(%rsp)
4253  DB  197,120,41,180,36,128,0,0,0         ; vmovaps       %xmm14,0x80(%rsp)
4254  DB  197,120,41,108,36,112               ; vmovaps       %xmm13,0x70(%rsp)
4255  DB  197,120,41,100,36,96                ; vmovaps       %xmm12,0x60(%rsp)
4256  DB  197,120,41,92,36,80                 ; vmovaps       %xmm11,0x50(%rsp)
4257  DB  197,120,41,84,36,64                 ; vmovaps       %xmm10,0x40(%rsp)
4258  DB  197,120,41,76,36,48                 ; vmovaps       %xmm9,0x30(%rsp)
4259  DB  197,120,41,68,36,32                 ; vmovaps       %xmm8,0x20(%rsp)
4260  DB  197,248,41,124,36,16                ; vmovaps       %xmm7,0x10(%rsp)
4261  DB  197,248,41,52,36                    ; vmovaps       %xmm6,(%rsp)
4262  DB  77,137,205                          ; mov           %r9,%r13
4263  DB  77,137,198                          ; mov           %r8,%r14
4264  DB  72,137,203                          ; mov           %rcx,%rbx
4265  DB  72,137,214                          ; mov           %rdx,%rsi
4266  DB  72,173                              ; lods          %ds:(%rsi),%rax
4267  DB  73,137,199                          ; mov           %rax,%r15
4268  DB  73,137,244                          ; mov           %rsi,%r12
4269  DB  72,141,67,8                         ; lea           0x8(%rbx),%rax
4270  DB  76,57,232                           ; cmp           %r13,%rax
4271  DB  118,5                               ; jbe           75 <_sk_start_pipeline_avx+0x75>
4272  DB  72,137,223                          ; mov           %rbx,%rdi
4273  DB  235,65                              ; jmp           b6 <_sk_start_pipeline_avx+0xb6>
4274  DB  185,0,0,0,0                         ; mov           $0x0,%ecx
4275  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
4276  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
4277  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
4278  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
4279  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
4280  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
4281  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
4282  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
4283  DB  72,137,223                          ; mov           %rbx,%rdi
4284  DB  76,137,230                          ; mov           %r12,%rsi
4285  DB  76,137,242                          ; mov           %r14,%rdx
4286  DB  65,255,215                          ; callq         *%r15
4287  DB  72,141,123,8                        ; lea           0x8(%rbx),%rdi
4288  DB  72,131,195,16                       ; add           $0x10,%rbx
4289  DB  76,57,235                           ; cmp           %r13,%rbx
4290  DB  72,137,251                          ; mov           %rdi,%rbx
4291  DB  118,191                             ; jbe           75 <_sk_start_pipeline_avx+0x75>
4292  DB  76,137,233                          ; mov           %r13,%rcx
4293  DB  72,41,249                           ; sub           %rdi,%rcx
4294  DB  116,41                              ; je            e7 <_sk_start_pipeline_avx+0xe7>
4295  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
4296  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
4297  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
4298  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
4299  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
4300  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
4301  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
4302  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
4303  DB  76,137,230                          ; mov           %r12,%rsi
4304  DB  76,137,242                          ; mov           %r14,%rdx
4305  DB  65,255,215                          ; callq         *%r15
4306  DB  76,137,232                          ; mov           %r13,%rax
4307  DB  197,248,40,52,36                    ; vmovaps       (%rsp),%xmm6
4308  DB  197,248,40,124,36,16                ; vmovaps       0x10(%rsp),%xmm7
4309  DB  197,120,40,68,36,32                 ; vmovaps       0x20(%rsp),%xmm8
4310  DB  197,120,40,76,36,48                 ; vmovaps       0x30(%rsp),%xmm9
4311  DB  197,120,40,84,36,64                 ; vmovaps       0x40(%rsp),%xmm10
4312  DB  197,120,40,92,36,80                 ; vmovaps       0x50(%rsp),%xmm11
4313  DB  197,120,40,100,36,96                ; vmovaps       0x60(%rsp),%xmm12
4314  DB  197,120,40,108,36,112               ; vmovaps       0x70(%rsp),%xmm13
4315  DB  197,120,40,180,36,128,0,0,0         ; vmovaps       0x80(%rsp),%xmm14
4316  DB  197,120,40,188,36,144,0,0,0         ; vmovaps       0x90(%rsp),%xmm15
4317  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
4318  DB  91                                  ; pop           %rbx
4319  DB  95                                  ; pop           %rdi
4320  DB  94                                  ; pop           %rsi
4321  DB  65,92                               ; pop           %r12
4322  DB  65,93                               ; pop           %r13
4323  DB  65,94                               ; pop           %r14
4324  DB  65,95                               ; pop           %r15
4325  DB  197,248,119                         ; vzeroupper
4326  DB  195                                 ; retq
4327
4328PUBLIC _sk_just_return_avx
4329_sk_just_return_avx LABEL PROC
4330  DB  195                                 ; retq
4331
4332PUBLIC _sk_seed_shader_avx
4333_sk_seed_shader_avx LABEL PROC
4334  DB  72,173                              ; lods          %ds:(%rsi),%rax
4335  DB  197,249,110,199                     ; vmovd         %edi,%xmm0
4336  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
4337  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
4338  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
4339  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
4340  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
4341  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
4342  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
4343  DB  197,252,88,193                      ; vaddps        %ymm1,%ymm0,%ymm0
4344  DB  197,252,88,2                        ; vaddps        (%rdx),%ymm0,%ymm0
4345  DB  196,226,125,24,16                   ; vbroadcastss  (%rax),%ymm2
4346  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
4347  DB  197,236,88,201                      ; vaddps        %ymm1,%ymm2,%ymm1
4348  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4349  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
4350  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
4351  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
4352  DB  72,173                              ; lods          %ds:(%rsi),%rax
4353  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
4354  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
4355  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
4356  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
4357  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
4358  DB  255,224                             ; jmpq          *%rax
4359
4360PUBLIC _sk_constant_color_avx
4361_sk_constant_color_avx LABEL PROC
4362  DB  72,173                              ; lods          %ds:(%rsi),%rax
4363  DB  196,226,125,24,0                    ; vbroadcastss  (%rax),%ymm0
4364  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
4365  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
4366  DB  196,226,125,24,88,12                ; vbroadcastss  0xc(%rax),%ymm3
4367  DB  72,173                              ; lods          %ds:(%rsi),%rax
4368  DB  255,224                             ; jmpq          *%rax
4369
4370PUBLIC _sk_clear_avx
4371_sk_clear_avx LABEL PROC
4372  DB  72,173                              ; lods          %ds:(%rsi),%rax
4373  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
4374  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
4375  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
4376  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
4377  DB  255,224                             ; jmpq          *%rax
4378
4379PUBLIC _sk_srcatop_avx
4380_sk_srcatop_avx LABEL PROC
4381  DB  197,124,89,199                      ; vmulps        %ymm7,%ymm0,%ymm8
4382  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4383  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
4384  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
4385  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
4386  DB  197,124,92,203                      ; vsubps        %ymm3,%ymm0,%ymm9
4387  DB  197,180,89,196                      ; vmulps        %ymm4,%ymm9,%ymm0
4388  DB  197,188,88,192                      ; vaddps        %ymm0,%ymm8,%ymm0
4389  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4390  DB  197,52,89,197                       ; vmulps        %ymm5,%ymm9,%ymm8
4391  DB  196,193,116,88,200                  ; vaddps        %ymm8,%ymm1,%ymm1
4392  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4393  DB  197,52,89,198                       ; vmulps        %ymm6,%ymm9,%ymm8
4394  DB  196,193,108,88,208                  ; vaddps        %ymm8,%ymm2,%ymm2
4395  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4396  DB  197,52,89,199                       ; vmulps        %ymm7,%ymm9,%ymm8
4397  DB  196,193,100,88,216                  ; vaddps        %ymm8,%ymm3,%ymm3
4398  DB  72,173                              ; lods          %ds:(%rsi),%rax
4399  DB  255,224                             ; jmpq          *%rax
4400
4401PUBLIC _sk_dstatop_avx
4402_sk_dstatop_avx LABEL PROC
4403  DB  197,100,89,196                      ; vmulps        %ymm4,%ymm3,%ymm8
4404  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4405  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
4406  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
4407  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
4408  DB  197,52,92,207                       ; vsubps        %ymm7,%ymm9,%ymm9
4409  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
4410  DB  197,188,88,192                      ; vaddps        %ymm0,%ymm8,%ymm0
4411  DB  197,100,89,197                      ; vmulps        %ymm5,%ymm3,%ymm8
4412  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
4413  DB  197,188,88,201                      ; vaddps        %ymm1,%ymm8,%ymm1
4414  DB  197,100,89,198                      ; vmulps        %ymm6,%ymm3,%ymm8
4415  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
4416  DB  197,188,88,210                      ; vaddps        %ymm2,%ymm8,%ymm2
4417  DB  197,100,89,199                      ; vmulps        %ymm7,%ymm3,%ymm8
4418  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
4419  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4420  DB  72,173                              ; lods          %ds:(%rsi),%rax
4421  DB  255,224                             ; jmpq          *%rax
4422
4423PUBLIC _sk_srcin_avx
4424_sk_srcin_avx LABEL PROC
4425  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
4426  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4427  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4428  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4429  DB  72,173                              ; lods          %ds:(%rsi),%rax
4430  DB  255,224                             ; jmpq          *%rax
4431
4432PUBLIC _sk_dstin_avx
4433_sk_dstin_avx LABEL PROC
4434  DB  197,228,89,196                      ; vmulps        %ymm4,%ymm3,%ymm0
4435  DB  197,228,89,205                      ; vmulps        %ymm5,%ymm3,%ymm1
4436  DB  197,228,89,214                      ; vmulps        %ymm6,%ymm3,%ymm2
4437  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4438  DB  72,173                              ; lods          %ds:(%rsi),%rax
4439  DB  255,224                             ; jmpq          *%rax
4440
4441PUBLIC _sk_srcout_avx
4442_sk_srcout_avx LABEL PROC
4443  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4444  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4445  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4446  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4447  DB  197,60,92,199                       ; vsubps        %ymm7,%ymm8,%ymm8
4448  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
4449  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
4450  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
4451  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
4452  DB  72,173                              ; lods          %ds:(%rsi),%rax
4453  DB  255,224                             ; jmpq          *%rax
4454
4455PUBLIC _sk_dstout_avx
4456_sk_dstout_avx LABEL PROC
4457  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4458  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
4459  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
4460  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
4461  DB  197,252,92,219                      ; vsubps        %ymm3,%ymm0,%ymm3
4462  DB  197,228,89,196                      ; vmulps        %ymm4,%ymm3,%ymm0
4463  DB  197,228,89,205                      ; vmulps        %ymm5,%ymm3,%ymm1
4464  DB  197,228,89,214                      ; vmulps        %ymm6,%ymm3,%ymm2
4465  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4466  DB  72,173                              ; lods          %ds:(%rsi),%rax
4467  DB  255,224                             ; jmpq          *%rax
4468
4469PUBLIC _sk_srcover_avx
4470_sk_srcover_avx LABEL PROC
4471  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4472  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4473  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4474  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4475  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4476  DB  197,60,89,204                       ; vmulps        %ymm4,%ymm8,%ymm9
4477  DB  197,180,88,192                      ; vaddps        %ymm0,%ymm9,%ymm0
4478  DB  197,60,89,205                       ; vmulps        %ymm5,%ymm8,%ymm9
4479  DB  197,180,88,201                      ; vaddps        %ymm1,%ymm9,%ymm1
4480  DB  197,60,89,206                       ; vmulps        %ymm6,%ymm8,%ymm9
4481  DB  197,180,88,210                      ; vaddps        %ymm2,%ymm9,%ymm2
4482  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4483  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4484  DB  72,173                              ; lods          %ds:(%rsi),%rax
4485  DB  255,224                             ; jmpq          *%rax
4486
4487PUBLIC _sk_dstover_avx
4488_sk_dstover_avx LABEL PROC
4489  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4490  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4491  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4492  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4493  DB  197,60,92,199                       ; vsubps        %ymm7,%ymm8,%ymm8
4494  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
4495  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
4496  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
4497  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
4498  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
4499  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
4500  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
4501  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
4502  DB  72,173                              ; lods          %ds:(%rsi),%rax
4503  DB  255,224                             ; jmpq          *%rax
4504
4505PUBLIC _sk_modulate_avx
4506_sk_modulate_avx LABEL PROC
4507  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
4508  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
4509  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
4510  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4511  DB  72,173                              ; lods          %ds:(%rsi),%rax
4512  DB  255,224                             ; jmpq          *%rax
4513
4514PUBLIC _sk_multiply_avx
4515_sk_multiply_avx LABEL PROC
4516  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4517  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4518  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4519  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4520  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
4521  DB  197,52,89,208                       ; vmulps        %ymm0,%ymm9,%ymm10
4522  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4523  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
4524  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
4525  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
4526  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
4527  DB  197,52,89,209                       ; vmulps        %ymm1,%ymm9,%ymm10
4528  DB  197,60,89,221                       ; vmulps        %ymm5,%ymm8,%ymm11
4529  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
4530  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
4531  DB  196,193,116,88,202                  ; vaddps        %ymm10,%ymm1,%ymm1
4532  DB  197,52,89,210                       ; vmulps        %ymm2,%ymm9,%ymm10
4533  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
4534  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
4535  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
4536  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
4537  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
4538  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4539  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
4540  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4541  DB  196,193,100,88,216                  ; vaddps        %ymm8,%ymm3,%ymm3
4542  DB  72,173                              ; lods          %ds:(%rsi),%rax
4543  DB  255,224                             ; jmpq          *%rax
4544
4545PUBLIC _sk_plus__avx
4546_sk_plus__avx LABEL PROC
4547  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
4548  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
4549  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
4550  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
4551  DB  72,173                              ; lods          %ds:(%rsi),%rax
4552  DB  255,224                             ; jmpq          *%rax
4553
4554PUBLIC _sk_screen_avx
4555_sk_screen_avx LABEL PROC
4556  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4557  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
4558  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4559  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4560  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
4561  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4562  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4563  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
4564  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4565  DB  197,100,88,199                      ; vaddps        %ymm7,%ymm3,%ymm8
4566  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4567  DB  197,188,92,219                      ; vsubps        %ymm3,%ymm8,%ymm3
4568  DB  72,173                              ; lods          %ds:(%rsi),%rax
4569  DB  255,224                             ; jmpq          *%rax
4570
4571PUBLIC _sk_xor__avx
4572_sk_xor__avx LABEL PROC
4573  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4574  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4575  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4576  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4577  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
4578  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
4579  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4580  DB  197,60,89,212                       ; vmulps        %ymm4,%ymm8,%ymm10
4581  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
4582  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
4583  DB  197,60,89,213                       ; vmulps        %ymm5,%ymm8,%ymm10
4584  DB  197,172,88,201                      ; vaddps        %ymm1,%ymm10,%ymm1
4585  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
4586  DB  197,60,89,214                       ; vmulps        %ymm6,%ymm8,%ymm10
4587  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
4588  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
4589  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4590  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4591  DB  72,173                              ; lods          %ds:(%rsi),%rax
4592  DB  255,224                             ; jmpq          *%rax
4593
4594PUBLIC _sk_darken_avx
4595_sk_darken_avx LABEL PROC
4596  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4597  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
4598  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
4599  DB  196,193,124,95,193                  ; vmaxps        %ymm9,%ymm0,%ymm0
4600  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4601  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4602  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4603  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
4604  DB  196,193,116,95,201                  ; vmaxps        %ymm9,%ymm1,%ymm1
4605  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4606  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4607  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4608  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
4609  DB  196,193,108,95,209                  ; vmaxps        %ymm9,%ymm2,%ymm2
4610  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4611  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4612  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4613  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4614  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4615  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4616  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4617  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4618  DB  72,173                              ; lods          %ds:(%rsi),%rax
4619  DB  255,224                             ; jmpq          *%rax
4620
4621PUBLIC _sk_lighten_avx
4622_sk_lighten_avx LABEL PROC
4623  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4624  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
4625  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
4626  DB  196,193,124,93,193                  ; vminps        %ymm9,%ymm0,%ymm0
4627  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4628  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4629  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4630  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
4631  DB  196,193,116,93,201                  ; vminps        %ymm9,%ymm1,%ymm1
4632  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4633  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4634  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4635  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
4636  DB  196,193,108,93,209                  ; vminps        %ymm9,%ymm2,%ymm2
4637  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4638  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4639  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4640  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4641  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4642  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4643  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4644  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4645  DB  72,173                              ; lods          %ds:(%rsi),%rax
4646  DB  255,224                             ; jmpq          *%rax
4647
4648PUBLIC _sk_difference_avx
4649_sk_difference_avx LABEL PROC
4650  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4651  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
4652  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
4653  DB  196,193,124,93,193                  ; vminps        %ymm9,%ymm0,%ymm0
4654  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
4655  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4656  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4657  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4658  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
4659  DB  196,193,116,93,201                  ; vminps        %ymm9,%ymm1,%ymm1
4660  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
4661  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4662  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4663  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4664  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
4665  DB  196,193,108,93,209                  ; vminps        %ymm9,%ymm2,%ymm2
4666  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
4667  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4668  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4669  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4670  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4671  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4672  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4673  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4674  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4675  DB  72,173                              ; lods          %ds:(%rsi),%rax
4676  DB  255,224                             ; jmpq          *%rax
4677
4678PUBLIC _sk_exclusion_avx
4679_sk_exclusion_avx LABEL PROC
4680  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4681  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
4682  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
4683  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4684  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4685  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
4686  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
4687  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4688  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4689  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
4690  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
4691  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4692  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4693  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4694  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4695  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4696  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4697  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4698  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4699  DB  72,173                              ; lods          %ds:(%rsi),%rax
4700  DB  255,224                             ; jmpq          *%rax
4701
4702PUBLIC _sk_colorburn_avx
4703_sk_colorburn_avx LABEL PROC
4704  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4705  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4706  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4707  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4708  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
4709  DB  197,52,89,216                       ; vmulps        %ymm0,%ymm9,%ymm11
4710  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
4711  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4712  DB  197,60,89,228                       ; vmulps        %ymm4,%ymm8,%ymm12
4713  DB  197,68,92,236                       ; vsubps        %ymm4,%ymm7,%ymm13
4714  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
4715  DB  197,20,94,232                       ; vdivps        %ymm0,%ymm13,%ymm13
4716  DB  196,65,68,93,237                    ; vminps        %ymm13,%ymm7,%ymm13
4717  DB  196,65,68,92,237                    ; vsubps        %ymm13,%ymm7,%ymm13
4718  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
4719  DB  196,65,20,88,235                    ; vaddps        %ymm11,%ymm13,%ymm13
4720  DB  196,65,28,88,237                    ; vaddps        %ymm13,%ymm12,%ymm13
4721  DB  197,28,88,224                       ; vaddps        %ymm0,%ymm12,%ymm12
4722  DB  196,193,124,194,194,0               ; vcmpeqps      %ymm10,%ymm0,%ymm0
4723  DB  196,195,21,74,196,0                 ; vblendvps     %ymm0,%ymm12,%ymm13,%ymm0
4724  DB  197,92,194,231,0                    ; vcmpeqps      %ymm7,%ymm4,%ymm12
4725  DB  197,36,88,220                       ; vaddps        %ymm4,%ymm11,%ymm11
4726  DB  196,195,125,74,195,192              ; vblendvps     %ymm12,%ymm11,%ymm0,%ymm0
4727  DB  197,52,89,217                       ; vmulps        %ymm1,%ymm9,%ymm11
4728  DB  197,60,89,229                       ; vmulps        %ymm5,%ymm8,%ymm12
4729  DB  197,68,92,237                       ; vsubps        %ymm5,%ymm7,%ymm13
4730  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
4731  DB  197,20,94,233                       ; vdivps        %ymm1,%ymm13,%ymm13
4732  DB  196,65,68,93,237                    ; vminps        %ymm13,%ymm7,%ymm13
4733  DB  196,65,68,92,237                    ; vsubps        %ymm13,%ymm7,%ymm13
4734  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
4735  DB  196,65,36,88,237                    ; vaddps        %ymm13,%ymm11,%ymm13
4736  DB  196,65,28,88,237                    ; vaddps        %ymm13,%ymm12,%ymm13
4737  DB  197,28,88,225                       ; vaddps        %ymm1,%ymm12,%ymm12
4738  DB  196,193,116,194,202,0               ; vcmpeqps      %ymm10,%ymm1,%ymm1
4739  DB  196,195,21,74,204,16                ; vblendvps     %ymm1,%ymm12,%ymm13,%ymm1
4740  DB  197,84,194,231,0                    ; vcmpeqps      %ymm7,%ymm5,%ymm12
4741  DB  197,36,88,221                       ; vaddps        %ymm5,%ymm11,%ymm11
4742  DB  196,195,117,74,203,192              ; vblendvps     %ymm12,%ymm11,%ymm1,%ymm1
4743  DB  197,52,89,202                       ; vmulps        %ymm2,%ymm9,%ymm9
4744  DB  196,65,108,194,210,0                ; vcmpeqps      %ymm10,%ymm2,%ymm10
4745  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
4746  DB  197,68,92,230                       ; vsubps        %ymm6,%ymm7,%ymm12
4747  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
4748  DB  197,28,94,226                       ; vdivps        %ymm2,%ymm12,%ymm12
4749  DB  197,164,88,210                      ; vaddps        %ymm2,%ymm11,%ymm2
4750  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
4751  DB  196,65,68,92,228                    ; vsubps        %ymm12,%ymm7,%ymm12
4752  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
4753  DB  196,65,52,88,228                    ; vaddps        %ymm12,%ymm9,%ymm12
4754  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
4755  DB  196,227,37,74,210,160               ; vblendvps     %ymm10,%ymm2,%ymm11,%ymm2
4756  DB  197,76,194,215,0                    ; vcmpeqps      %ymm7,%ymm6,%ymm10
4757  DB  197,52,88,206                       ; vaddps        %ymm6,%ymm9,%ymm9
4758  DB  196,195,109,74,209,160              ; vblendvps     %ymm10,%ymm9,%ymm2,%ymm2
4759  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4760  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4761  DB  72,173                              ; lods          %ds:(%rsi),%rax
4762  DB  255,224                             ; jmpq          *%rax
4763
4764PUBLIC _sk_colordodge_avx
4765_sk_colordodge_avx LABEL PROC
4766  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
4767  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4768  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
4769  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
4770  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
4771  DB  197,52,92,215                       ; vsubps        %ymm7,%ymm9,%ymm10
4772  DB  197,44,89,216                       ; vmulps        %ymm0,%ymm10,%ymm11
4773  DB  197,52,92,203                       ; vsubps        %ymm3,%ymm9,%ymm9
4774  DB  197,100,89,228                      ; vmulps        %ymm4,%ymm3,%ymm12
4775  DB  197,100,92,232                      ; vsubps        %ymm0,%ymm3,%ymm13
4776  DB  196,65,28,94,229                    ; vdivps        %ymm13,%ymm12,%ymm12
4777  DB  197,52,89,236                       ; vmulps        %ymm4,%ymm9,%ymm13
4778  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
4779  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
4780  DB  196,65,28,88,227                    ; vaddps        %ymm11,%ymm12,%ymm12
4781  DB  196,65,20,88,228                    ; vaddps        %ymm12,%ymm13,%ymm12
4782  DB  197,20,88,232                       ; vaddps        %ymm0,%ymm13,%ymm13
4783  DB  197,252,194,195,0                   ; vcmpeqps      %ymm3,%ymm0,%ymm0
4784  DB  196,195,29,74,197,0                 ; vblendvps     %ymm0,%ymm13,%ymm12,%ymm0
4785  DB  196,65,92,194,224,0                 ; vcmpeqps      %ymm8,%ymm4,%ymm12
4786  DB  197,36,88,220                       ; vaddps        %ymm4,%ymm11,%ymm11
4787  DB  196,195,125,74,195,192              ; vblendvps     %ymm12,%ymm11,%ymm0,%ymm0
4788  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
4789  DB  197,100,89,229                      ; vmulps        %ymm5,%ymm3,%ymm12
4790  DB  197,100,92,233                      ; vsubps        %ymm1,%ymm3,%ymm13
4791  DB  196,65,28,94,229                    ; vdivps        %ymm13,%ymm12,%ymm12
4792  DB  197,52,89,237                       ; vmulps        %ymm5,%ymm9,%ymm13
4793  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
4794  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
4795  DB  196,65,28,88,227                    ; vaddps        %ymm11,%ymm12,%ymm12
4796  DB  196,65,20,88,228                    ; vaddps        %ymm12,%ymm13,%ymm12
4797  DB  197,20,88,233                       ; vaddps        %ymm1,%ymm13,%ymm13
4798  DB  197,244,194,203,0                   ; vcmpeqps      %ymm3,%ymm1,%ymm1
4799  DB  196,195,29,74,205,16                ; vblendvps     %ymm1,%ymm13,%ymm12,%ymm1
4800  DB  196,65,84,194,224,0                 ; vcmpeqps      %ymm8,%ymm5,%ymm12
4801  DB  197,36,88,221                       ; vaddps        %ymm5,%ymm11,%ymm11
4802  DB  196,195,117,74,203,192              ; vblendvps     %ymm12,%ymm11,%ymm1,%ymm1
4803  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
4804  DB  197,100,89,222                      ; vmulps        %ymm6,%ymm3,%ymm11
4805  DB  197,100,92,226                      ; vsubps        %ymm2,%ymm3,%ymm12
4806  DB  196,65,36,94,220                    ; vdivps        %ymm12,%ymm11,%ymm11
4807  DB  197,52,89,230                       ; vmulps        %ymm6,%ymm9,%ymm12
4808  DB  196,65,68,93,219                    ; vminps        %ymm11,%ymm7,%ymm11
4809  DB  197,36,89,219                       ; vmulps        %ymm3,%ymm11,%ymm11
4810  DB  196,65,44,88,219                    ; vaddps        %ymm11,%ymm10,%ymm11
4811  DB  196,65,28,88,219                    ; vaddps        %ymm11,%ymm12,%ymm11
4812  DB  197,28,88,226                       ; vaddps        %ymm2,%ymm12,%ymm12
4813  DB  197,236,194,211,0                   ; vcmpeqps      %ymm3,%ymm2,%ymm2
4814  DB  196,195,37,74,212,32                ; vblendvps     %ymm2,%ymm12,%ymm11,%ymm2
4815  DB  196,65,76,194,192,0                 ; vcmpeqps      %ymm8,%ymm6,%ymm8
4816  DB  197,44,88,214                       ; vaddps        %ymm6,%ymm10,%ymm10
4817  DB  196,195,109,74,210,128              ; vblendvps     %ymm8,%ymm10,%ymm2,%ymm2
4818  DB  197,52,89,199                       ; vmulps        %ymm7,%ymm9,%ymm8
4819  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4820  DB  72,173                              ; lods          %ds:(%rsi),%rax
4821  DB  255,224                             ; jmpq          *%rax
4822
4823PUBLIC _sk_hardlight_avx
4824_sk_hardlight_avx LABEL PROC
4825  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4826  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4827  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4828  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4829  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
4830  DB  197,44,89,200                       ; vmulps        %ymm0,%ymm10,%ymm9
4831  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4832  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
4833  DB  196,65,52,88,219                    ; vaddps        %ymm11,%ymm9,%ymm11
4834  DB  197,124,88,200                      ; vaddps        %ymm0,%ymm0,%ymm9
4835  DB  197,52,194,227,2                    ; vcmpleps      %ymm3,%ymm9,%ymm12
4836  DB  197,124,89,204                      ; vmulps        %ymm4,%ymm0,%ymm9
4837  DB  196,65,52,88,233                    ; vaddps        %ymm9,%ymm9,%ymm13
4838  DB  197,100,89,207                      ; vmulps        %ymm7,%ymm3,%ymm9
4839  DB  197,68,92,244                       ; vsubps        %ymm4,%ymm7,%ymm14
4840  DB  197,228,92,192                      ; vsubps        %ymm0,%ymm3,%ymm0
4841  DB  196,193,124,89,198                  ; vmulps        %ymm14,%ymm0,%ymm0
4842  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
4843  DB  197,180,92,192                      ; vsubps        %ymm0,%ymm9,%ymm0
4844  DB  196,195,125,74,197,192              ; vblendvps     %ymm12,%ymm13,%ymm0,%ymm0
4845  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
4846  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
4847  DB  197,60,89,229                       ; vmulps        %ymm5,%ymm8,%ymm12
4848  DB  196,65,28,88,219                    ; vaddps        %ymm11,%ymm12,%ymm11
4849  DB  197,116,88,225                      ; vaddps        %ymm1,%ymm1,%ymm12
4850  DB  197,28,194,227,2                    ; vcmpleps      %ymm3,%ymm12,%ymm12
4851  DB  197,116,89,237                      ; vmulps        %ymm5,%ymm1,%ymm13
4852  DB  196,65,20,88,237                    ; vaddps        %ymm13,%ymm13,%ymm13
4853  DB  197,68,92,245                       ; vsubps        %ymm5,%ymm7,%ymm14
4854  DB  197,228,92,201                      ; vsubps        %ymm1,%ymm3,%ymm1
4855  DB  196,193,116,89,206                  ; vmulps        %ymm14,%ymm1,%ymm1
4856  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
4857  DB  197,180,92,201                      ; vsubps        %ymm1,%ymm9,%ymm1
4858  DB  196,195,117,74,205,192              ; vblendvps     %ymm12,%ymm13,%ymm1,%ymm1
4859  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
4860  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
4861  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
4862  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
4863  DB  197,108,88,218                      ; vaddps        %ymm2,%ymm2,%ymm11
4864  DB  197,36,194,219,2                    ; vcmpleps      %ymm3,%ymm11,%ymm11
4865  DB  197,108,89,230                      ; vmulps        %ymm6,%ymm2,%ymm12
4866  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
4867  DB  197,68,92,238                       ; vsubps        %ymm6,%ymm7,%ymm13
4868  DB  197,228,92,210                      ; vsubps        %ymm2,%ymm3,%ymm2
4869  DB  196,193,108,89,213                  ; vmulps        %ymm13,%ymm2,%ymm2
4870  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
4871  DB  197,180,92,210                      ; vsubps        %ymm2,%ymm9,%ymm2
4872  DB  196,195,109,74,212,176              ; vblendvps     %ymm11,%ymm12,%ymm2,%ymm2
4873  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
4874  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4875  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4876  DB  72,173                              ; lods          %ds:(%rsi),%rax
4877  DB  255,224                             ; jmpq          *%rax
4878
4879PUBLIC _sk_overlay_avx
4880_sk_overlay_avx LABEL PROC
4881  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4882  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4883  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4884  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4885  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
4886  DB  197,44,89,200                       ; vmulps        %ymm0,%ymm10,%ymm9
4887  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4888  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
4889  DB  196,65,52,88,219                    ; vaddps        %ymm11,%ymm9,%ymm11
4890  DB  197,92,88,204                       ; vaddps        %ymm4,%ymm4,%ymm9
4891  DB  197,52,194,231,2                    ; vcmpleps      %ymm7,%ymm9,%ymm12
4892  DB  197,124,89,204                      ; vmulps        %ymm4,%ymm0,%ymm9
4893  DB  196,65,52,88,233                    ; vaddps        %ymm9,%ymm9,%ymm13
4894  DB  197,100,89,207                      ; vmulps        %ymm7,%ymm3,%ymm9
4895  DB  197,68,92,244                       ; vsubps        %ymm4,%ymm7,%ymm14
4896  DB  197,228,92,192                      ; vsubps        %ymm0,%ymm3,%ymm0
4897  DB  196,193,124,89,198                  ; vmulps        %ymm14,%ymm0,%ymm0
4898  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
4899  DB  197,180,92,192                      ; vsubps        %ymm0,%ymm9,%ymm0
4900  DB  196,195,125,74,197,192              ; vblendvps     %ymm12,%ymm13,%ymm0,%ymm0
4901  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
4902  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
4903  DB  197,60,89,229                       ; vmulps        %ymm5,%ymm8,%ymm12
4904  DB  196,65,28,88,219                    ; vaddps        %ymm11,%ymm12,%ymm11
4905  DB  197,84,88,229                       ; vaddps        %ymm5,%ymm5,%ymm12
4906  DB  197,28,194,231,2                    ; vcmpleps      %ymm7,%ymm12,%ymm12
4907  DB  197,116,89,237                      ; vmulps        %ymm5,%ymm1,%ymm13
4908  DB  196,65,20,88,237                    ; vaddps        %ymm13,%ymm13,%ymm13
4909  DB  197,68,92,245                       ; vsubps        %ymm5,%ymm7,%ymm14
4910  DB  197,228,92,201                      ; vsubps        %ymm1,%ymm3,%ymm1
4911  DB  196,193,116,89,206                  ; vmulps        %ymm14,%ymm1,%ymm1
4912  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
4913  DB  197,180,92,201                      ; vsubps        %ymm1,%ymm9,%ymm1
4914  DB  196,195,117,74,205,192              ; vblendvps     %ymm12,%ymm13,%ymm1,%ymm1
4915  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
4916  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
4917  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
4918  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
4919  DB  197,76,88,222                       ; vaddps        %ymm6,%ymm6,%ymm11
4920  DB  197,36,194,223,2                    ; vcmpleps      %ymm7,%ymm11,%ymm11
4921  DB  197,108,89,230                      ; vmulps        %ymm6,%ymm2,%ymm12
4922  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
4923  DB  197,68,92,238                       ; vsubps        %ymm6,%ymm7,%ymm13
4924  DB  197,228,92,210                      ; vsubps        %ymm2,%ymm3,%ymm2
4925  DB  196,193,108,89,213                  ; vmulps        %ymm13,%ymm2,%ymm2
4926  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
4927  DB  197,180,92,210                      ; vsubps        %ymm2,%ymm9,%ymm2
4928  DB  196,195,109,74,212,176              ; vblendvps     %ymm11,%ymm12,%ymm2,%ymm2
4929  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
4930  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4931  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4932  DB  72,173                              ; lods          %ds:(%rsi),%rax
4933  DB  255,224                             ; jmpq          *%rax
4934
4935PUBLIC _sk_softlight_avx
4936_sk_softlight_avx LABEL PROC
4937  DB  72,131,236,56                       ; sub           $0x38,%rsp
4938  DB  197,252,17,20,36                    ; vmovups       %ymm2,(%rsp)
4939  DB  197,252,40,209                      ; vmovaps       %ymm1,%ymm2
4940  DB  196,65,52,87,201                    ; vxorps        %ymm9,%ymm9,%ymm9
4941  DB  197,52,194,215,1                    ; vcmpltps      %ymm7,%ymm9,%ymm10
4942  DB  197,92,94,199                       ; vdivps        %ymm7,%ymm4,%ymm8
4943  DB  196,67,53,74,216,160                ; vblendvps     %ymm10,%ymm8,%ymm9,%ymm11
4944  DB  196,65,36,88,195                    ; vaddps        %ymm11,%ymm11,%ymm8
4945  DB  196,65,60,88,224                    ; vaddps        %ymm8,%ymm8,%ymm12
4946  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4947  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4948  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4949  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4950  DB  196,65,28,89,236                    ; vmulps        %ymm12,%ymm12,%ymm13
4951  DB  196,65,28,88,229                    ; vaddps        %ymm13,%ymm12,%ymm12
4952  DB  196,65,36,92,232                    ; vsubps        %ymm8,%ymm11,%ymm13
4953  DB  196,65,28,89,237                    ; vmulps        %ymm13,%ymm12,%ymm13
4954  DB  184,0,0,224,64                      ; mov           $0x40e00000,%eax
4955  DB  197,121,110,224                     ; vmovd         %eax,%xmm12
4956  DB  196,67,121,4,228,0                  ; vpermilps     $0x0,%xmm12,%xmm12
4957  DB  196,67,29,24,228,1                  ; vinsertf128   $0x1,%xmm12,%ymm12,%ymm12
4958  DB  196,65,36,89,244                    ; vmulps        %ymm12,%ymm11,%ymm14
4959  DB  196,65,20,88,238                    ; vaddps        %ymm14,%ymm13,%ymm13
4960  DB  196,65,124,82,243                   ; vrsqrtps      %ymm11,%ymm14
4961  DB  196,65,124,83,246                   ; vrcpps        %ymm14,%ymm14
4962  DB  196,65,12,92,243                    ; vsubps        %ymm11,%ymm14,%ymm14
4963  DB  197,92,88,252                       ; vaddps        %ymm4,%ymm4,%ymm15
4964  DB  196,65,4,88,255                     ; vaddps        %ymm15,%ymm15,%ymm15
4965  DB  197,4,194,255,2                     ; vcmpleps      %ymm7,%ymm15,%ymm15
4966  DB  196,67,13,74,237,240                ; vblendvps     %ymm15,%ymm13,%ymm14,%ymm13
4967  DB  197,124,88,240                      ; vaddps        %ymm0,%ymm0,%ymm14
4968  DB  197,12,92,251                       ; vsubps        %ymm3,%ymm14,%ymm15
4969  DB  196,65,60,92,219                    ; vsubps        %ymm11,%ymm8,%ymm11
4970  DB  196,65,4,89,219                     ; vmulps        %ymm11,%ymm15,%ymm11
4971  DB  197,36,88,219                       ; vaddps        %ymm3,%ymm11,%ymm11
4972  DB  197,36,89,220                       ; vmulps        %ymm4,%ymm11,%ymm11
4973  DB  197,4,89,255                        ; vmulps        %ymm7,%ymm15,%ymm15
4974  DB  196,65,4,89,237                     ; vmulps        %ymm13,%ymm15,%ymm13
4975  DB  197,100,89,252                      ; vmulps        %ymm4,%ymm3,%ymm15
4976  DB  196,65,4,88,237                     ; vaddps        %ymm13,%ymm15,%ymm13
4977  DB  197,12,194,243,2                    ; vcmpleps      %ymm3,%ymm14,%ymm14
4978  DB  196,195,21,74,203,224               ; vblendvps     %ymm14,%ymm11,%ymm13,%ymm1
4979  DB  197,84,94,239                       ; vdivps        %ymm7,%ymm5,%ymm13
4980  DB  196,67,53,74,237,160                ; vblendvps     %ymm10,%ymm13,%ymm9,%ymm13
4981  DB  196,65,20,88,245                    ; vaddps        %ymm13,%ymm13,%ymm14
4982  DB  196,65,12,88,246                    ; vaddps        %ymm14,%ymm14,%ymm14
4983  DB  196,65,12,89,254                    ; vmulps        %ymm14,%ymm14,%ymm15
4984  DB  196,65,12,88,247                    ; vaddps        %ymm15,%ymm14,%ymm14
4985  DB  196,65,20,92,248                    ; vsubps        %ymm8,%ymm13,%ymm15
4986  DB  196,65,4,89,246                     ; vmulps        %ymm14,%ymm15,%ymm14
4987  DB  196,65,28,89,253                    ; vmulps        %ymm13,%ymm12,%ymm15
4988  DB  196,65,4,88,246                     ; vaddps        %ymm14,%ymm15,%ymm14
4989  DB  196,65,124,82,253                   ; vrsqrtps      %ymm13,%ymm15
4990  DB  196,65,124,83,255                   ; vrcpps        %ymm15,%ymm15
4991  DB  196,65,4,92,253                     ; vsubps        %ymm13,%ymm15,%ymm15
4992  DB  197,84,88,221                       ; vaddps        %ymm5,%ymm5,%ymm11
4993  DB  196,65,36,88,219                    ; vaddps        %ymm11,%ymm11,%ymm11
4994  DB  197,36,194,223,2                    ; vcmpleps      %ymm7,%ymm11,%ymm11
4995  DB  196,67,5,74,222,176                 ; vblendvps     %ymm11,%ymm14,%ymm15,%ymm11
4996  DB  197,108,88,242                      ; vaddps        %ymm2,%ymm2,%ymm14
4997  DB  196,65,60,92,237                    ; vsubps        %ymm13,%ymm8,%ymm13
4998  DB  197,12,92,251                       ; vsubps        %ymm3,%ymm14,%ymm15
4999  DB  196,65,4,89,237                     ; vmulps        %ymm13,%ymm15,%ymm13
5000  DB  197,4,89,255                        ; vmulps        %ymm7,%ymm15,%ymm15
5001  DB  196,65,4,89,219                     ; vmulps        %ymm11,%ymm15,%ymm11
5002  DB  197,100,89,253                      ; vmulps        %ymm5,%ymm3,%ymm15
5003  DB  196,65,4,88,219                     ; vaddps        %ymm11,%ymm15,%ymm11
5004  DB  197,20,88,235                       ; vaddps        %ymm3,%ymm13,%ymm13
5005  DB  197,20,89,237                       ; vmulps        %ymm5,%ymm13,%ymm13
5006  DB  197,12,194,243,2                    ; vcmpleps      %ymm3,%ymm14,%ymm14
5007  DB  196,67,37,74,237,224                ; vblendvps     %ymm14,%ymm13,%ymm11,%ymm13
5008  DB  197,76,94,223                       ; vdivps        %ymm7,%ymm6,%ymm11
5009  DB  196,67,53,74,203,160                ; vblendvps     %ymm10,%ymm11,%ymm9,%ymm9
5010  DB  196,65,52,88,209                    ; vaddps        %ymm9,%ymm9,%ymm10
5011  DB  196,65,44,88,210                    ; vaddps        %ymm10,%ymm10,%ymm10
5012  DB  196,65,44,89,218                    ; vmulps        %ymm10,%ymm10,%ymm11
5013  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
5014  DB  196,65,52,92,216                    ; vsubps        %ymm8,%ymm9,%ymm11
5015  DB  196,65,36,89,210                    ; vmulps        %ymm10,%ymm11,%ymm10
5016  DB  196,65,28,89,217                    ; vmulps        %ymm9,%ymm12,%ymm11
5017  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
5018  DB  196,65,124,82,217                   ; vrsqrtps      %ymm9,%ymm11
5019  DB  196,65,124,83,219                   ; vrcpps        %ymm11,%ymm11
5020  DB  196,65,36,92,217                    ; vsubps        %ymm9,%ymm11,%ymm11
5021  DB  197,76,88,230                       ; vaddps        %ymm6,%ymm6,%ymm12
5022  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
5023  DB  197,28,194,231,2                    ; vcmpleps      %ymm7,%ymm12,%ymm12
5024  DB  196,67,37,74,210,192                ; vblendvps     %ymm12,%ymm10,%ymm11,%ymm10
5025  DB  197,124,16,52,36                    ; vmovups       (%rsp),%ymm14
5026  DB  196,65,12,88,222                    ; vaddps        %ymm14,%ymm14,%ymm11
5027  DB  197,36,92,227                       ; vsubps        %ymm3,%ymm11,%ymm12
5028  DB  196,65,60,92,201                    ; vsubps        %ymm9,%ymm8,%ymm9
5029  DB  196,65,28,89,201                    ; vmulps        %ymm9,%ymm12,%ymm9
5030  DB  197,28,89,231                       ; vmulps        %ymm7,%ymm12,%ymm12
5031  DB  196,65,28,89,210                    ; vmulps        %ymm10,%ymm12,%ymm10
5032  DB  197,100,89,230                      ; vmulps        %ymm6,%ymm3,%ymm12
5033  DB  196,65,28,88,210                    ; vaddps        %ymm10,%ymm12,%ymm10
5034  DB  197,52,88,203                       ; vaddps        %ymm3,%ymm9,%ymm9
5035  DB  197,52,89,206                       ; vmulps        %ymm6,%ymm9,%ymm9
5036  DB  197,36,194,219,2                    ; vcmpleps      %ymm3,%ymm11,%ymm11
5037  DB  196,67,45,74,201,176                ; vblendvps     %ymm11,%ymm9,%ymm10,%ymm9
5038  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
5039  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
5040  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
5041  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
5042  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
5043  DB  197,244,88,192                      ; vaddps        %ymm0,%ymm1,%ymm0
5044  DB  197,172,89,202                      ; vmulps        %ymm2,%ymm10,%ymm1
5045  DB  197,188,89,213                      ; vmulps        %ymm5,%ymm8,%ymm2
5046  DB  197,236,88,201                      ; vaddps        %ymm1,%ymm2,%ymm1
5047  DB  196,193,116,88,205                  ; vaddps        %ymm13,%ymm1,%ymm1
5048  DB  196,193,44,89,214                   ; vmulps        %ymm14,%ymm10,%ymm2
5049  DB  197,60,89,214                       ; vmulps        %ymm6,%ymm8,%ymm10
5050  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
5051  DB  196,193,108,88,209                  ; vaddps        %ymm9,%ymm2,%ymm2
5052  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
5053  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
5054  DB  72,173                              ; lods          %ds:(%rsi),%rax
5055  DB  72,131,196,56                       ; add           $0x38,%rsp
5056  DB  255,224                             ; jmpq          *%rax
5057
5058PUBLIC _sk_clamp_0_avx
5059_sk_clamp_0_avx LABEL PROC
5060  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
5061  DB  196,193,124,95,192                  ; vmaxps        %ymm8,%ymm0,%ymm0
5062  DB  196,193,116,95,200                  ; vmaxps        %ymm8,%ymm1,%ymm1
5063  DB  196,193,108,95,208                  ; vmaxps        %ymm8,%ymm2,%ymm2
5064  DB  196,193,100,95,216                  ; vmaxps        %ymm8,%ymm3,%ymm3
5065  DB  72,173                              ; lods          %ds:(%rsi),%rax
5066  DB  255,224                             ; jmpq          *%rax
5067
5068PUBLIC _sk_clamp_1_avx
5069_sk_clamp_1_avx LABEL PROC
5070  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5071  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
5072  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
5073  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
5074  DB  196,193,124,93,192                  ; vminps        %ymm8,%ymm0,%ymm0
5075  DB  196,193,116,93,200                  ; vminps        %ymm8,%ymm1,%ymm1
5076  DB  196,193,108,93,208                  ; vminps        %ymm8,%ymm2,%ymm2
5077  DB  196,193,100,93,216                  ; vminps        %ymm8,%ymm3,%ymm3
5078  DB  72,173                              ; lods          %ds:(%rsi),%rax
5079  DB  255,224                             ; jmpq          *%rax
5080
5081PUBLIC _sk_clamp_a_avx
5082_sk_clamp_a_avx LABEL PROC
5083  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5084  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
5085  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
5086  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
5087  DB  196,193,100,93,216                  ; vminps        %ymm8,%ymm3,%ymm3
5088  DB  197,252,93,195                      ; vminps        %ymm3,%ymm0,%ymm0
5089  DB  197,244,93,203                      ; vminps        %ymm3,%ymm1,%ymm1
5090  DB  197,236,93,211                      ; vminps        %ymm3,%ymm2,%ymm2
5091  DB  72,173                              ; lods          %ds:(%rsi),%rax
5092  DB  255,224                             ; jmpq          *%rax
5093
5094PUBLIC _sk_set_rgb_avx
5095_sk_set_rgb_avx LABEL PROC
5096  DB  72,173                              ; lods          %ds:(%rsi),%rax
5097  DB  196,226,125,24,0                    ; vbroadcastss  (%rax),%ymm0
5098  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
5099  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
5100  DB  72,173                              ; lods          %ds:(%rsi),%rax
5101  DB  255,224                             ; jmpq          *%rax
5102
5103PUBLIC _sk_swap_rb_avx
5104_sk_swap_rb_avx LABEL PROC
5105  DB  197,124,40,192                      ; vmovaps       %ymm0,%ymm8
5106  DB  72,173                              ; lods          %ds:(%rsi),%rax
5107  DB  197,252,40,194                      ; vmovaps       %ymm2,%ymm0
5108  DB  197,124,41,194                      ; vmovaps       %ymm8,%ymm2
5109  DB  255,224                             ; jmpq          *%rax
5110
5111PUBLIC _sk_swap_avx
5112_sk_swap_avx LABEL PROC
5113  DB  197,124,40,195                      ; vmovaps       %ymm3,%ymm8
5114  DB  197,124,40,202                      ; vmovaps       %ymm2,%ymm9
5115  DB  197,124,40,209                      ; vmovaps       %ymm1,%ymm10
5116  DB  197,124,40,216                      ; vmovaps       %ymm0,%ymm11
5117  DB  72,173                              ; lods          %ds:(%rsi),%rax
5118  DB  197,252,40,196                      ; vmovaps       %ymm4,%ymm0
5119  DB  197,252,40,205                      ; vmovaps       %ymm5,%ymm1
5120  DB  197,252,40,214                      ; vmovaps       %ymm6,%ymm2
5121  DB  197,252,40,223                      ; vmovaps       %ymm7,%ymm3
5122  DB  197,124,41,220                      ; vmovaps       %ymm11,%ymm4
5123  DB  197,124,41,213                      ; vmovaps       %ymm10,%ymm5
5124  DB  197,124,41,206                      ; vmovaps       %ymm9,%ymm6
5125  DB  197,124,41,199                      ; vmovaps       %ymm8,%ymm7
5126  DB  255,224                             ; jmpq          *%rax
5127
5128PUBLIC _sk_move_src_dst_avx
5129_sk_move_src_dst_avx LABEL PROC
5130  DB  72,173                              ; lods          %ds:(%rsi),%rax
5131  DB  197,252,40,224                      ; vmovaps       %ymm0,%ymm4
5132  DB  197,252,40,233                      ; vmovaps       %ymm1,%ymm5
5133  DB  197,252,40,242                      ; vmovaps       %ymm2,%ymm6
5134  DB  197,252,40,251                      ; vmovaps       %ymm3,%ymm7
5135  DB  255,224                             ; jmpq          *%rax
5136
5137PUBLIC _sk_move_dst_src_avx
5138_sk_move_dst_src_avx LABEL PROC
5139  DB  72,173                              ; lods          %ds:(%rsi),%rax
5140  DB  197,252,40,196                      ; vmovaps       %ymm4,%ymm0
5141  DB  197,252,40,205                      ; vmovaps       %ymm5,%ymm1
5142  DB  197,252,40,214                      ; vmovaps       %ymm6,%ymm2
5143  DB  197,252,40,223                      ; vmovaps       %ymm7,%ymm3
5144  DB  255,224                             ; jmpq          *%rax
5145
5146PUBLIC _sk_premul_avx
5147_sk_premul_avx LABEL PROC
5148  DB  197,252,89,195                      ; vmulps        %ymm3,%ymm0,%ymm0
5149  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
5150  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
5151  DB  72,173                              ; lods          %ds:(%rsi),%rax
5152  DB  255,224                             ; jmpq          *%rax
5153
5154PUBLIC _sk_unpremul_avx
5155_sk_unpremul_avx LABEL PROC
5156  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
5157  DB  196,65,100,194,200,0                ; vcmpeqps      %ymm8,%ymm3,%ymm9
5158  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5159  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
5160  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
5161  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
5162  DB  197,44,94,211                       ; vdivps        %ymm3,%ymm10,%ymm10
5163  DB  196,67,45,74,192,144                ; vblendvps     %ymm9,%ymm8,%ymm10,%ymm8
5164  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
5165  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
5166  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
5167  DB  72,173                              ; lods          %ds:(%rsi),%rax
5168  DB  255,224                             ; jmpq          *%rax
5169
5170PUBLIC _sk_from_srgb_avx
5171_sk_from_srgb_avx LABEL PROC
5172  DB  184,145,131,158,61                  ; mov           $0x3d9e8391,%eax
5173  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
5174  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
5175  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
5176  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
5177  DB  197,124,89,208                      ; vmulps        %ymm0,%ymm0,%ymm10
5178  DB  184,154,153,153,62                  ; mov           $0x3e99999a,%eax
5179  DB  197,121,110,216                     ; vmovd         %eax,%xmm11
5180  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
5181  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
5182  DB  184,92,143,50,63                    ; mov           $0x3f328f5c,%eax
5183  DB  197,121,110,224                     ; vmovd         %eax,%xmm12
5184  DB  196,67,121,4,228,0                  ; vpermilps     $0x0,%xmm12,%xmm12
5185  DB  196,67,29,24,228,1                  ; vinsertf128   $0x1,%xmm12,%ymm12,%ymm12
5186  DB  197,36,89,232                       ; vmulps        %ymm0,%ymm11,%ymm13
5187  DB  196,65,20,88,236                    ; vaddps        %ymm12,%ymm13,%ymm13
5188  DB  184,10,215,35,59                    ; mov           $0x3b23d70a,%eax
5189  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
5190  DB  196,67,121,4,246,0                  ; vpermilps     $0x0,%xmm14,%xmm14
5191  DB  196,67,13,24,246,1                  ; vinsertf128   $0x1,%xmm14,%ymm14,%ymm14
5192  DB  196,65,44,89,213                    ; vmulps        %ymm13,%ymm10,%ymm10
5193  DB  196,65,12,88,210                    ; vaddps        %ymm10,%ymm14,%ymm10
5194  DB  184,174,71,97,61                    ; mov           $0x3d6147ae,%eax
5195  DB  197,121,110,232                     ; vmovd         %eax,%xmm13
5196  DB  196,67,121,4,237,0                  ; vpermilps     $0x0,%xmm13,%xmm13
5197  DB  196,67,21,24,237,1                  ; vinsertf128   $0x1,%xmm13,%ymm13,%ymm13
5198  DB  196,193,124,194,197,1               ; vcmpltps      %ymm13,%ymm0,%ymm0
5199  DB  196,195,45,74,193,0                 ; vblendvps     %ymm0,%ymm9,%ymm10,%ymm0
5200  DB  197,60,89,201                       ; vmulps        %ymm1,%ymm8,%ymm9
5201  DB  197,116,89,209                      ; vmulps        %ymm1,%ymm1,%ymm10
5202  DB  197,36,89,249                       ; vmulps        %ymm1,%ymm11,%ymm15
5203  DB  196,65,28,88,255                    ; vaddps        %ymm15,%ymm12,%ymm15
5204  DB  196,65,44,89,215                    ; vmulps        %ymm15,%ymm10,%ymm10
5205  DB  196,65,12,88,210                    ; vaddps        %ymm10,%ymm14,%ymm10
5206  DB  196,193,116,194,205,1               ; vcmpltps      %ymm13,%ymm1,%ymm1
5207  DB  196,195,45,74,201,16                ; vblendvps     %ymm1,%ymm9,%ymm10,%ymm1
5208  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
5209  DB  197,108,89,202                      ; vmulps        %ymm2,%ymm2,%ymm9
5210  DB  197,36,89,210                       ; vmulps        %ymm2,%ymm11,%ymm10
5211  DB  196,65,28,88,210                    ; vaddps        %ymm10,%ymm12,%ymm10
5212  DB  196,65,52,89,202                    ; vmulps        %ymm10,%ymm9,%ymm9
5213  DB  196,65,12,88,201                    ; vaddps        %ymm9,%ymm14,%ymm9
5214  DB  196,193,108,194,213,1               ; vcmpltps      %ymm13,%ymm2,%ymm2
5215  DB  196,195,53,74,208,32                ; vblendvps     %ymm2,%ymm8,%ymm9,%ymm2
5216  DB  72,173                              ; lods          %ds:(%rsi),%rax
5217  DB  255,224                             ; jmpq          *%rax
5218
5219PUBLIC _sk_to_srgb_avx
5220_sk_to_srgb_avx LABEL PROC
5221  DB  197,124,82,192                      ; vrsqrtps      %ymm0,%ymm8
5222  DB  196,65,124,83,232                   ; vrcpps        %ymm8,%ymm13
5223  DB  196,65,124,82,240                   ; vrsqrtps      %ymm8,%ymm14
5224  DB  184,41,92,71,65                     ; mov           $0x41475c29,%eax
5225  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
5226  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
5227  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
5228  DB  197,60,89,224                       ; vmulps        %ymm0,%ymm8,%ymm12
5229  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5230  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
5231  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
5232  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
5233  DB  184,194,135,210,62                  ; mov           $0x3ed287c2,%eax
5234  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
5235  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
5236  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
5237  DB  184,206,111,48,63                   ; mov           $0x3f306fce,%eax
5238  DB  197,121,110,216                     ; vmovd         %eax,%xmm11
5239  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
5240  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
5241  DB  184,168,87,202,61                   ; mov           $0x3dca57a8,%eax
5242  DB  53,0,0,0,128                        ; xor           $0x80000000,%eax
5243  DB  197,121,110,248                     ; vmovd         %eax,%xmm15
5244  DB  196,67,121,4,255,0                  ; vpermilps     $0x0,%xmm15,%xmm15
5245  DB  196,67,5,24,255,1                   ; vinsertf128   $0x1,%xmm15,%ymm15,%ymm15
5246  DB  196,65,20,89,235                    ; vmulps        %ymm11,%ymm13,%ymm13
5247  DB  196,65,20,88,239                    ; vaddps        %ymm15,%ymm13,%ymm13
5248  DB  196,65,12,89,242                    ; vmulps        %ymm10,%ymm14,%ymm14
5249  DB  196,65,12,88,237                    ; vaddps        %ymm13,%ymm14,%ymm13
5250  DB  196,65,52,93,237                    ; vminps        %ymm13,%ymm9,%ymm13
5251  DB  184,4,231,140,59                    ; mov           $0x3b8ce704,%eax
5252  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
5253  DB  196,67,121,4,246,0                  ; vpermilps     $0x0,%xmm14,%xmm14
5254  DB  196,67,13,24,246,1                  ; vinsertf128   $0x1,%xmm14,%ymm14,%ymm14
5255  DB  196,193,124,194,198,1               ; vcmpltps      %ymm14,%ymm0,%ymm0
5256  DB  196,195,21,74,196,0                 ; vblendvps     %ymm0,%ymm12,%ymm13,%ymm0
5257  DB  197,124,82,225                      ; vrsqrtps      %ymm1,%ymm12
5258  DB  196,65,124,83,236                   ; vrcpps        %ymm12,%ymm13
5259  DB  196,65,124,82,228                   ; vrsqrtps      %ymm12,%ymm12
5260  DB  196,65,36,89,237                    ; vmulps        %ymm13,%ymm11,%ymm13
5261  DB  196,65,4,88,237                     ; vaddps        %ymm13,%ymm15,%ymm13
5262  DB  196,65,44,89,228                    ; vmulps        %ymm12,%ymm10,%ymm12
5263  DB  196,65,28,88,229                    ; vaddps        %ymm13,%ymm12,%ymm12
5264  DB  197,60,89,233                       ; vmulps        %ymm1,%ymm8,%ymm13
5265  DB  196,65,52,93,228                    ; vminps        %ymm12,%ymm9,%ymm12
5266  DB  196,193,116,194,206,1               ; vcmpltps      %ymm14,%ymm1,%ymm1
5267  DB  196,195,29,74,205,16                ; vblendvps     %ymm1,%ymm13,%ymm12,%ymm1
5268  DB  197,124,82,226                      ; vrsqrtps      %ymm2,%ymm12
5269  DB  196,65,124,83,236                   ; vrcpps        %ymm12,%ymm13
5270  DB  196,65,36,89,221                    ; vmulps        %ymm13,%ymm11,%ymm11
5271  DB  196,65,4,88,219                     ; vaddps        %ymm11,%ymm15,%ymm11
5272  DB  196,65,124,82,228                   ; vrsqrtps      %ymm12,%ymm12
5273  DB  196,65,44,89,212                    ; vmulps        %ymm12,%ymm10,%ymm10
5274  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
5275  DB  196,65,52,93,202                    ; vminps        %ymm10,%ymm9,%ymm9
5276  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
5277  DB  196,193,108,194,214,1               ; vcmpltps      %ymm14,%ymm2,%ymm2
5278  DB  196,195,53,74,208,32                ; vblendvps     %ymm2,%ymm8,%ymm9,%ymm2
5279  DB  72,173                              ; lods          %ds:(%rsi),%rax
5280  DB  255,224                             ; jmpq          *%rax
5281
5282PUBLIC _sk_from_2dot2_avx
5283_sk_from_2dot2_avx LABEL PROC
5284  DB  197,124,82,192                      ; vrsqrtps      %ymm0,%ymm8
5285  DB  196,65,124,82,192                   ; vrsqrtps      %ymm8,%ymm8
5286  DB  196,65,124,82,192                   ; vrsqrtps      %ymm8,%ymm8
5287  DB  196,65,124,82,192                   ; vrsqrtps      %ymm8,%ymm8
5288  DB  196,65,124,82,200                   ; vrsqrtps      %ymm8,%ymm9
5289  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5290  DB  197,252,89,192                      ; vmulps        %ymm0,%ymm0,%ymm0
5291  DB  196,65,60,89,208                    ; vmulps        %ymm8,%ymm8,%ymm10
5292  DB  196,65,60,89,194                    ; vmulps        %ymm10,%ymm8,%ymm8
5293  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
5294  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
5295  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
5296  DB  196,193,124,95,192                  ; vmaxps        %ymm8,%ymm0,%ymm0
5297  DB  197,124,82,201                      ; vrsqrtps      %ymm1,%ymm9
5298  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5299  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5300  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5301  DB  196,65,124,82,209                   ; vrsqrtps      %ymm9,%ymm10
5302  DB  196,65,124,82,210                   ; vrsqrtps      %ymm10,%ymm10
5303  DB  197,244,89,201                      ; vmulps        %ymm1,%ymm1,%ymm1
5304  DB  196,65,52,89,217                    ; vmulps        %ymm9,%ymm9,%ymm11
5305  DB  196,65,52,89,203                    ; vmulps        %ymm11,%ymm9,%ymm9
5306  DB  196,193,116,89,201                  ; vmulps        %ymm9,%ymm1,%ymm1
5307  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
5308  DB  196,193,116,95,200                  ; vmaxps        %ymm8,%ymm1,%ymm1
5309  DB  197,124,82,202                      ; vrsqrtps      %ymm2,%ymm9
5310  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5311  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5312  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5313  DB  196,65,124,82,209                   ; vrsqrtps      %ymm9,%ymm10
5314  DB  196,65,124,82,210                   ; vrsqrtps      %ymm10,%ymm10
5315  DB  197,236,89,210                      ; vmulps        %ymm2,%ymm2,%ymm2
5316  DB  196,65,52,89,217                    ; vmulps        %ymm9,%ymm9,%ymm11
5317  DB  196,65,52,89,203                    ; vmulps        %ymm11,%ymm9,%ymm9
5318  DB  196,193,108,89,209                  ; vmulps        %ymm9,%ymm2,%ymm2
5319  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
5320  DB  196,193,108,95,208                  ; vmaxps        %ymm8,%ymm2,%ymm2
5321  DB  72,173                              ; lods          %ds:(%rsi),%rax
5322  DB  255,224                             ; jmpq          *%rax
5323
5324PUBLIC _sk_to_2dot2_avx
5325_sk_to_2dot2_avx LABEL PROC
5326  DB  197,252,82,192                      ; vrsqrtps      %ymm0,%ymm0
5327  DB  197,124,82,192                      ; vrsqrtps      %ymm0,%ymm8
5328  DB  196,65,124,82,192                   ; vrsqrtps      %ymm8,%ymm8
5329  DB  196,65,124,82,192                   ; vrsqrtps      %ymm8,%ymm8
5330  DB  196,65,124,82,192                   ; vrsqrtps      %ymm8,%ymm8
5331  DB  196,65,124,82,200                   ; vrsqrtps      %ymm8,%ymm9
5332  DB  197,252,83,192                      ; vrcpps        %ymm0,%ymm0
5333  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
5334  DB  196,65,124,83,193                   ; vrcpps        %ymm9,%ymm8
5335  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
5336  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
5337  DB  196,193,124,95,192                  ; vmaxps        %ymm8,%ymm0,%ymm0
5338  DB  197,252,82,201                      ; vrsqrtps      %ymm1,%ymm1
5339  DB  197,124,82,201                      ; vrsqrtps      %ymm1,%ymm9
5340  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5341  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5342  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5343  DB  196,65,124,82,209                   ; vrsqrtps      %ymm9,%ymm10
5344  DB  197,252,83,201                      ; vrcpps        %ymm1,%ymm1
5345  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
5346  DB  196,65,124,83,202                   ; vrcpps        %ymm10,%ymm9
5347  DB  196,193,116,89,201                  ; vmulps        %ymm9,%ymm1,%ymm1
5348  DB  196,193,116,95,200                  ; vmaxps        %ymm8,%ymm1,%ymm1
5349  DB  197,252,82,210                      ; vrsqrtps      %ymm2,%ymm2
5350  DB  197,124,82,202                      ; vrsqrtps      %ymm2,%ymm9
5351  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5352  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5353  DB  196,65,124,82,201                   ; vrsqrtps      %ymm9,%ymm9
5354  DB  196,65,124,82,209                   ; vrsqrtps      %ymm9,%ymm10
5355  DB  197,252,83,210                      ; vrcpps        %ymm2,%ymm2
5356  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
5357  DB  196,65,124,83,202                   ; vrcpps        %ymm10,%ymm9
5358  DB  196,193,108,89,209                  ; vmulps        %ymm9,%ymm2,%ymm2
5359  DB  196,193,108,95,208                  ; vmaxps        %ymm8,%ymm2,%ymm2
5360  DB  72,173                              ; lods          %ds:(%rsi),%rax
5361  DB  255,224                             ; jmpq          *%rax
5362
5363PUBLIC _sk_rgb_to_hsl_avx
5364_sk_rgb_to_hsl_avx LABEL PROC
5365  DB  197,124,95,193                      ; vmaxps        %ymm1,%ymm0,%ymm8
5366  DB  197,60,95,194                       ; vmaxps        %ymm2,%ymm8,%ymm8
5367  DB  197,124,93,201                      ; vminps        %ymm1,%ymm0,%ymm9
5368  DB  197,52,93,202                       ; vminps        %ymm2,%ymm9,%ymm9
5369  DB  196,65,60,92,209                    ; vsubps        %ymm9,%ymm8,%ymm10
5370  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5371  DB  197,121,110,216                     ; vmovd         %eax,%xmm11
5372  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
5373  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
5374  DB  196,65,36,94,218                    ; vdivps        %ymm10,%ymm11,%ymm11
5375  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
5376  DB  197,116,92,226                      ; vsubps        %ymm2,%ymm1,%ymm12
5377  DB  196,65,28,89,227                    ; vmulps        %ymm11,%ymm12,%ymm12
5378  DB  65,185,0,0,192,64                   ; mov           $0x40c00000,%r9d
5379  DB  197,108,92,232                      ; vsubps        %ymm0,%ymm2,%ymm13
5380  DB  196,65,20,89,235                    ; vmulps        %ymm11,%ymm13,%ymm13
5381  DB  65,186,0,0,0,64                     ; mov           $0x40000000,%r10d
5382  DB  197,124,92,241                      ; vsubps        %ymm1,%ymm0,%ymm14
5383  DB  196,65,12,89,219                    ; vmulps        %ymm11,%ymm14,%ymm11
5384  DB  184,0,0,128,64                      ; mov           $0x40800000,%eax
5385  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
5386  DB  196,67,121,4,246,0                  ; vpermilps     $0x0,%xmm14,%xmm14
5387  DB  196,67,13,24,246,1                  ; vinsertf128   $0x1,%xmm14,%ymm14,%ymm14
5388  DB  196,65,36,88,222                    ; vaddps        %ymm14,%ymm11,%ymm11
5389  DB  196,65,121,110,242                  ; vmovd         %r10d,%xmm14
5390  DB  197,244,194,210,1                   ; vcmpltps      %ymm2,%ymm1,%ymm2
5391  DB  197,188,194,201,0                   ; vcmpeqps      %ymm1,%ymm8,%ymm1
5392  DB  196,67,121,4,246,0                  ; vpermilps     $0x0,%xmm14,%xmm14
5393  DB  196,67,13,24,246,1                  ; vinsertf128   $0x1,%xmm14,%ymm14,%ymm14
5394  DB  196,65,20,88,238                    ; vaddps        %ymm14,%ymm13,%ymm13
5395  DB  196,67,37,74,221,16                 ; vblendvps     %ymm1,%ymm13,%ymm11,%ymm11
5396  DB  196,193,121,110,201                 ; vmovd         %r9d,%xmm1
5397  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
5398  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
5399  DB  196,65,20,87,237                    ; vxorps        %ymm13,%ymm13,%ymm13
5400  DB  196,227,21,74,201,32                ; vblendvps     %ymm2,%ymm1,%ymm13,%ymm1
5401  DB  196,193,116,88,204                  ; vaddps        %ymm12,%ymm1,%ymm1
5402  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
5403  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
5404  DB  197,188,194,192,0                   ; vcmpeqps      %ymm0,%ymm8,%ymm0
5405  DB  196,227,37,74,193,0                 ; vblendvps     %ymm0,%ymm1,%ymm11,%ymm0
5406  DB  196,193,60,88,201                   ; vaddps        %ymm9,%ymm8,%ymm1
5407  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
5408  DB  196,99,109,24,218,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm11
5409  DB  196,193,116,89,211                  ; vmulps        %ymm11,%ymm1,%ymm2
5410  DB  197,36,194,218,1                    ; vcmpltps      %ymm2,%ymm11,%ymm11
5411  DB  196,65,12,92,224                    ; vsubps        %ymm8,%ymm14,%ymm12
5412  DB  196,65,28,92,225                    ; vsubps        %ymm9,%ymm12,%ymm12
5413  DB  196,195,117,74,204,176              ; vblendvps     %ymm11,%ymm12,%ymm1,%ymm1
5414  DB  196,65,60,194,193,0                 ; vcmpeqps      %ymm9,%ymm8,%ymm8
5415  DB  197,172,94,201                      ; vdivps        %ymm1,%ymm10,%ymm1
5416  DB  196,67,125,74,205,128               ; vblendvps     %ymm8,%ymm13,%ymm0,%ymm9
5417  DB  196,195,117,74,205,128              ; vblendvps     %ymm8,%ymm13,%ymm1,%ymm1
5418  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
5419  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5420  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5421  DB  196,193,124,89,193                  ; vmulps        %ymm9,%ymm0,%ymm0
5422  DB  72,173                              ; lods          %ds:(%rsi),%rax
5423  DB  255,224                             ; jmpq          *%rax
5424
5425PUBLIC _sk_hsl_to_rgb_avx
5426_sk_hsl_to_rgb_avx LABEL PROC
5427  DB  72,129,236,184,0,0,0                ; sub           $0xb8,%rsp
5428  DB  197,252,17,188,36,128,0,0,0         ; vmovups       %ymm7,0x80(%rsp)
5429  DB  197,252,17,116,36,96                ; vmovups       %ymm6,0x60(%rsp)
5430  DB  197,252,17,108,36,64                ; vmovups       %ymm5,0x40(%rsp)
5431  DB  197,252,17,100,36,32                ; vmovups       %ymm4,0x20(%rsp)
5432  DB  197,252,17,28,36                    ; vmovups       %ymm3,(%rsp)
5433  DB  197,252,40,226                      ; vmovaps       %ymm2,%ymm4
5434  DB  197,252,40,233                      ; vmovaps       %ymm1,%ymm5
5435  DB  197,252,40,216                      ; vmovaps       %ymm0,%ymm3
5436  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
5437  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5438  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5439  DB  196,99,125,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm8
5440  DB  196,193,92,194,192,1                ; vcmpltps      %ymm8,%ymm4,%ymm0
5441  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5442  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
5443  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
5444  DB  196,99,109,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm10
5445  DB  197,172,88,213                      ; vaddps        %ymm5,%ymm10,%ymm2
5446  DB  197,236,89,212                      ; vmulps        %ymm4,%ymm2,%ymm2
5447  DB  197,84,88,204                       ; vaddps        %ymm4,%ymm5,%ymm9
5448  DB  197,84,89,220                       ; vmulps        %ymm4,%ymm5,%ymm11
5449  DB  196,65,52,92,203                    ; vsubps        %ymm11,%ymm9,%ymm9
5450  DB  196,99,53,74,202,0                  ; vblendvps     %ymm0,%ymm2,%ymm9,%ymm9
5451  DB  65,184,0,0,0,64                     ; mov           $0x40000000,%r8d
5452  DB  184,171,170,170,62                  ; mov           $0x3eaaaaab,%eax
5453  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5454  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5455  DB  196,99,125,24,224,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm12
5456  DB  197,28,88,251                       ; vaddps        %ymm3,%ymm12,%ymm15
5457  DB  184,0,0,0,0                         ; mov           $0x0,%eax
5458  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5459  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5460  DB  196,99,125,24,232,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm13
5461  DB  196,193,44,194,199,1                ; vcmpltps      %ymm15,%ymm10,%ymm0
5462  DB  196,193,4,92,210                    ; vsubps        %ymm10,%ymm15,%ymm2
5463  DB  196,227,5,74,194,0                  ; vblendvps     %ymm0,%ymm2,%ymm15,%ymm0
5464  DB  196,193,4,194,213,1                 ; vcmpltps      %ymm13,%ymm15,%ymm2
5465  DB  196,65,44,88,223                    ; vaddps        %ymm15,%ymm10,%ymm11
5466  DB  196,195,125,74,203,32               ; vblendvps     %ymm2,%ymm11,%ymm0,%ymm1
5467  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
5468  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5469  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5470  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
5471  DB  196,65,124,92,217                   ; vsubps        %ymm9,%ymm0,%ymm11
5472  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
5473  DB  184,0,0,192,64                      ; mov           $0x40c00000,%eax
5474  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5475  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5476  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5477  DB  196,193,52,92,211                   ; vsubps        %ymm11,%ymm9,%ymm2
5478  DB  197,108,89,240                      ; vmulps        %ymm0,%ymm2,%ymm14
5479  DB  184,171,170,42,63                   ; mov           $0x3f2aaaab,%eax
5480  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5481  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5482  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5483  DB  197,252,92,209                      ; vsubps        %ymm1,%ymm0,%ymm2
5484  DB  197,140,89,210                      ; vmulps        %ymm2,%ymm14,%ymm2
5485  DB  197,164,88,210                      ; vaddps        %ymm2,%ymm11,%ymm2
5486  DB  197,244,194,248,1                   ; vcmpltps      %ymm0,%ymm1,%ymm7
5487  DB  196,227,37,74,210,112               ; vblendvps     %ymm7,%ymm2,%ymm11,%ymm2
5488  DB  196,193,116,194,248,1               ; vcmpltps      %ymm8,%ymm1,%ymm7
5489  DB  196,195,109,74,249,112              ; vblendvps     %ymm7,%ymm9,%ymm2,%ymm7
5490  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
5491  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
5492  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
5493  DB  197,244,194,202,1                   ; vcmpltps      %ymm2,%ymm1,%ymm1
5494  DB  196,65,4,89,254                     ; vmulps        %ymm14,%ymm15,%ymm15
5495  DB  196,65,36,88,255                    ; vaddps        %ymm15,%ymm11,%ymm15
5496  DB  196,67,69,74,255,16                 ; vblendvps     %ymm1,%ymm15,%ymm7,%ymm15
5497  DB  197,172,194,203,1                   ; vcmpltps      %ymm3,%ymm10,%ymm1
5498  DB  196,193,100,92,250                  ; vsubps        %ymm10,%ymm3,%ymm7
5499  DB  196,227,101,74,207,16               ; vblendvps     %ymm1,%ymm7,%ymm3,%ymm1
5500  DB  196,193,100,194,253,1               ; vcmpltps      %ymm13,%ymm3,%ymm7
5501  DB  197,172,88,243                      ; vaddps        %ymm3,%ymm10,%ymm6
5502  DB  196,227,117,74,206,112              ; vblendvps     %ymm7,%ymm6,%ymm1,%ymm1
5503  DB  197,252,92,241                      ; vsubps        %ymm1,%ymm0,%ymm6
5504  DB  197,140,89,246                      ; vmulps        %ymm6,%ymm14,%ymm6
5505  DB  197,164,88,246                      ; vaddps        %ymm6,%ymm11,%ymm6
5506  DB  197,244,194,248,1                   ; vcmpltps      %ymm0,%ymm1,%ymm7
5507  DB  196,227,37,74,246,112               ; vblendvps     %ymm7,%ymm6,%ymm11,%ymm6
5508  DB  196,193,116,194,248,1               ; vcmpltps      %ymm8,%ymm1,%ymm7
5509  DB  196,195,77,74,241,112               ; vblendvps     %ymm7,%ymm9,%ymm6,%ymm6
5510  DB  197,244,194,202,1                   ; vcmpltps      %ymm2,%ymm1,%ymm1
5511  DB  197,140,89,251                      ; vmulps        %ymm3,%ymm14,%ymm7
5512  DB  197,164,88,255                      ; vaddps        %ymm7,%ymm11,%ymm7
5513  DB  196,227,77,74,207,16                ; vblendvps     %ymm1,%ymm7,%ymm6,%ymm1
5514  DB  196,193,100,92,220                  ; vsubps        %ymm12,%ymm3,%ymm3
5515  DB  197,172,194,243,1                   ; vcmpltps      %ymm3,%ymm10,%ymm6
5516  DB  196,193,100,92,250                  ; vsubps        %ymm10,%ymm3,%ymm7
5517  DB  196,227,101,74,247,96               ; vblendvps     %ymm6,%ymm7,%ymm3,%ymm6
5518  DB  196,193,100,194,253,1               ; vcmpltps      %ymm13,%ymm3,%ymm7
5519  DB  197,44,88,211                       ; vaddps        %ymm3,%ymm10,%ymm10
5520  DB  196,195,77,74,242,112               ; vblendvps     %ymm7,%ymm10,%ymm6,%ymm6
5521  DB  197,204,194,248,1                   ; vcmpltps      %ymm0,%ymm6,%ymm7
5522  DB  197,252,92,198                      ; vsubps        %ymm6,%ymm0,%ymm0
5523  DB  197,140,89,192                      ; vmulps        %ymm0,%ymm14,%ymm0
5524  DB  197,164,88,192                      ; vaddps        %ymm0,%ymm11,%ymm0
5525  DB  196,227,37,74,192,112               ; vblendvps     %ymm7,%ymm0,%ymm11,%ymm0
5526  DB  196,193,76,194,248,1                ; vcmpltps      %ymm8,%ymm6,%ymm7
5527  DB  196,195,125,74,193,112              ; vblendvps     %ymm7,%ymm9,%ymm0,%ymm0
5528  DB  197,204,194,210,1                   ; vcmpltps      %ymm2,%ymm6,%ymm2
5529  DB  196,193,100,89,222                  ; vmulps        %ymm14,%ymm3,%ymm3
5530  DB  197,164,88,219                      ; vaddps        %ymm3,%ymm11,%ymm3
5531  DB  196,227,125,74,211,32               ; vblendvps     %ymm2,%ymm3,%ymm0,%ymm2
5532  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
5533  DB  197,212,194,216,0                   ; vcmpeqps      %ymm0,%ymm5,%ymm3
5534  DB  196,227,5,74,196,48                 ; vblendvps     %ymm3,%ymm4,%ymm15,%ymm0
5535  DB  196,227,117,74,204,48               ; vblendvps     %ymm3,%ymm4,%ymm1,%ymm1
5536  DB  196,227,109,74,212,48               ; vblendvps     %ymm3,%ymm4,%ymm2,%ymm2
5537  DB  72,173                              ; lods          %ds:(%rsi),%rax
5538  DB  197,252,16,28,36                    ; vmovups       (%rsp),%ymm3
5539  DB  197,252,16,100,36,32                ; vmovups       0x20(%rsp),%ymm4
5540  DB  197,252,16,108,36,64                ; vmovups       0x40(%rsp),%ymm5
5541  DB  197,252,16,116,36,96                ; vmovups       0x60(%rsp),%ymm6
5542  DB  197,252,16,188,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm7
5543  DB  72,129,196,184,0,0,0                ; add           $0xb8,%rsp
5544  DB  255,224                             ; jmpq          *%rax
5545
5546PUBLIC _sk_scale_1_float_avx
5547_sk_scale_1_float_avx LABEL PROC
5548  DB  72,173                              ; lods          %ds:(%rsi),%rax
5549  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
5550  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
5551  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
5552  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
5553  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
5554  DB  72,173                              ; lods          %ds:(%rsi),%rax
5555  DB  255,224                             ; jmpq          *%rax
5556
5557PUBLIC _sk_scale_u8_avx
5558_sk_scale_u8_avx LABEL PROC
5559  DB  73,137,200                          ; mov           %rcx,%r8
5560  DB  72,173                              ; lods          %ds:(%rsi),%rax
5561  DB  72,139,0                            ; mov           (%rax),%rax
5562  DB  72,1,248                            ; add           %rdi,%rax
5563  DB  77,133,192                          ; test          %r8,%r8
5564  DB  117,80                              ; jne           14ff <_sk_scale_u8_avx+0x60>
5565  DB  197,122,126,0                       ; vmovq         (%rax),%xmm8
5566  DB  196,66,121,49,200                   ; vpmovzxbd     %xmm8,%xmm9
5567  DB  196,67,121,4,192,229                ; vpermilps     $0xe5,%xmm8,%xmm8
5568  DB  196,66,121,49,192                   ; vpmovzxbd     %xmm8,%xmm8
5569  DB  196,67,53,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm9,%ymm8
5570  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
5571  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
5572  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
5573  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
5574  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
5575  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
5576  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
5577  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
5578  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
5579  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
5580  DB  72,173                              ; lods          %ds:(%rsi),%rax
5581  DB  76,137,193                          ; mov           %r8,%rcx
5582  DB  255,224                             ; jmpq          *%rax
5583  DB  49,201                              ; xor           %ecx,%ecx
5584  DB  77,137,194                          ; mov           %r8,%r10
5585  DB  69,49,201                           ; xor           %r9d,%r9d
5586  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
5587  DB  72,255,192                          ; inc           %rax
5588  DB  73,211,227                          ; shl           %cl,%r11
5589  DB  77,9,217                            ; or            %r11,%r9
5590  DB  72,131,193,8                        ; add           $0x8,%rcx
5591  DB  73,255,202                          ; dec           %r10
5592  DB  117,234                             ; jne           1507 <_sk_scale_u8_avx+0x68>
5593  DB  196,65,249,110,193                  ; vmovq         %r9,%xmm8
5594  DB  235,143                             ; jmp           14b3 <_sk_scale_u8_avx+0x14>
5595
5596PUBLIC _sk_lerp_1_float_avx
5597_sk_lerp_1_float_avx LABEL PROC
5598  DB  72,173                              ; lods          %ds:(%rsi),%rax
5599  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
5600  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
5601  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
5602  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
5603  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
5604  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
5605  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
5606  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
5607  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
5608  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
5609  DB  197,228,92,223                      ; vsubps        %ymm7,%ymm3,%ymm3
5610  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
5611  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
5612  DB  72,173                              ; lods          %ds:(%rsi),%rax
5613  DB  255,224                             ; jmpq          *%rax
5614
5615PUBLIC _sk_lerp_u8_avx
5616_sk_lerp_u8_avx LABEL PROC
5617  DB  73,137,200                          ; mov           %rcx,%r8
5618  DB  72,173                              ; lods          %ds:(%rsi),%rax
5619  DB  72,139,0                            ; mov           (%rax),%rax
5620  DB  72,1,248                            ; add           %rdi,%rax
5621  DB  77,133,192                          ; test          %r8,%r8
5622  DB  117,116                             ; jne           15e7 <_sk_lerp_u8_avx+0x84>
5623  DB  197,122,126,0                       ; vmovq         (%rax),%xmm8
5624  DB  196,66,121,49,200                   ; vpmovzxbd     %xmm8,%xmm9
5625  DB  196,67,121,4,192,229                ; vpermilps     $0xe5,%xmm8,%xmm8
5626  DB  196,66,121,49,192                   ; vpmovzxbd     %xmm8,%xmm8
5627  DB  196,67,53,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm9,%ymm8
5628  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
5629  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
5630  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
5631  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
5632  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
5633  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
5634  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
5635  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
5636  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
5637  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
5638  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
5639  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
5640  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
5641  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
5642  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
5643  DB  197,228,92,223                      ; vsubps        %ymm7,%ymm3,%ymm3
5644  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
5645  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
5646  DB  72,173                              ; lods          %ds:(%rsi),%rax
5647  DB  76,137,193                          ; mov           %r8,%rcx
5648  DB  255,224                             ; jmpq          *%rax
5649  DB  49,201                              ; xor           %ecx,%ecx
5650  DB  77,137,194                          ; mov           %r8,%r10
5651  DB  69,49,201                           ; xor           %r9d,%r9d
5652  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
5653  DB  72,255,192                          ; inc           %rax
5654  DB  73,211,227                          ; shl           %cl,%r11
5655  DB  77,9,217                            ; or            %r11,%r9
5656  DB  72,131,193,8                        ; add           $0x8,%rcx
5657  DB  73,255,202                          ; dec           %r10
5658  DB  117,234                             ; jne           15ef <_sk_lerp_u8_avx+0x8c>
5659  DB  196,65,249,110,193                  ; vmovq         %r9,%xmm8
5660  DB  233,104,255,255,255                 ; jmpq          1577 <_sk_lerp_u8_avx+0x14>
5661
5662PUBLIC _sk_lerp_565_avx
5663_sk_lerp_565_avx LABEL PROC
5664  DB  72,173                              ; lods          %ds:(%rsi),%rax
5665  DB  76,139,16                           ; mov           (%rax),%r10
5666  DB  72,133,201                          ; test          %rcx,%rcx
5667  DB  15,133,250,0,0,0                    ; jne           1717 <_sk_lerp_565_avx+0x108>
5668  DB  196,65,122,111,4,122                ; vmovdqu       (%r10,%rdi,2),%xmm8
5669  DB  197,225,239,219                     ; vpxor         %xmm3,%xmm3,%xmm3
5670  DB  197,185,105,219                     ; vpunpckhwd    %xmm3,%xmm8,%xmm3
5671  DB  196,66,121,51,192                   ; vpmovzxwd     %xmm8,%xmm8
5672  DB  196,99,61,24,195,1                  ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm8
5673  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
5674  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5675  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
5676  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5677  DB  196,193,100,84,216                  ; vandps        %ymm8,%ymm3,%ymm3
5678  DB  197,124,91,203                      ; vcvtdq2ps     %ymm3,%ymm9
5679  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
5680  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5681  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5682  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5683  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
5684  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
5685  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5686  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
5687  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5688  DB  196,193,100,84,216                  ; vandps        %ymm8,%ymm3,%ymm3
5689  DB  197,124,91,211                      ; vcvtdq2ps     %ymm3,%ymm10
5690  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
5691  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5692  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5693  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5694  DB  197,44,89,211                       ; vmulps        %ymm3,%ymm10,%ymm10
5695  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
5696  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5697  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
5698  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5699  DB  196,193,100,84,216                  ; vandps        %ymm8,%ymm3,%ymm3
5700  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
5701  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
5702  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5703  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5704  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5705  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
5706  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
5707  DB  196,193,124,89,193                  ; vmulps        %ymm9,%ymm0,%ymm0
5708  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
5709  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
5710  DB  196,193,116,89,202                  ; vmulps        %ymm10,%ymm1,%ymm1
5711  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
5712  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
5713  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
5714  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
5715  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5716  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5717  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5718  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5719  DB  72,173                              ; lods          %ds:(%rsi),%rax
5720  DB  255,224                             ; jmpq          *%rax
5721  DB  65,137,200                          ; mov           %ecx,%r8d
5722  DB  65,128,224,7                        ; and           $0x7,%r8b
5723  DB  196,65,57,239,192                   ; vpxor         %xmm8,%xmm8,%xmm8
5724  DB  65,254,200                          ; dec           %r8b
5725  DB  65,128,248,6                        ; cmp           $0x6,%r8b
5726  DB  15,135,243,254,255,255              ; ja            1623 <_sk_lerp_565_avx+0x14>
5727  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
5728  DB  76,141,13,73,0,0,0                  ; lea           0x49(%rip),%r9        # 1784 <_sk_lerp_565_avx+0x175>
5729  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
5730  DB  76,1,200                            ; add           %r9,%rax
5731  DB  255,224                             ; jmpq          *%rax
5732  DB  197,225,239,219                     ; vpxor         %xmm3,%xmm3,%xmm3
5733  DB  196,65,97,196,68,122,12,6           ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm3,%xmm8
5734  DB  196,65,57,196,68,122,10,5           ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm8,%xmm8
5735  DB  196,65,57,196,68,122,8,4            ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm8,%xmm8
5736  DB  196,65,57,196,68,122,6,3            ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm8,%xmm8
5737  DB  196,65,57,196,68,122,4,2            ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm8,%xmm8
5738  DB  196,65,57,196,68,122,2,1            ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm8,%xmm8
5739  DB  196,65,57,196,4,122,0               ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm8,%xmm8
5740  DB  233,159,254,255,255                 ; jmpq          1623 <_sk_lerp_565_avx+0x14>
5741  DB  244                                 ; hlt
5742  DB  255                                 ; (bad)
5743  DB  255                                 ; (bad)
5744  DB  255                                 ; (bad)
5745  DB  236                                 ; in            (%dx),%al
5746  DB  255                                 ; (bad)
5747  DB  255                                 ; (bad)
5748  DB  255,228                             ; jmpq          *%rsp
5749  DB  255                                 ; (bad)
5750  DB  255                                 ; (bad)
5751  DB  255                                 ; (bad)
5752  DB  220,255                             ; fdivr         %st,%st(7)
5753  DB  255                                 ; (bad)
5754  DB  255,212                             ; callq         *%rsp
5755  DB  255                                 ; (bad)
5756  DB  255                                 ; (bad)
5757  DB  255,204                             ; dec           %esp
5758  DB  255                                 ; (bad)
5759  DB  255                                 ; (bad)
5760  DB  255,192                             ; inc           %eax
5761  DB  255                                 ; (bad)
5762  DB  255                                 ; (bad)
5763  DB  255                                 ; .byte         0xff
5764
5765PUBLIC _sk_load_tables_avx
5766_sk_load_tables_avx LABEL PROC
5767  DB  85                                  ; push          %rbp
5768  DB  65,87                               ; push          %r15
5769  DB  65,86                               ; push          %r14
5770  DB  65,85                               ; push          %r13
5771  DB  65,84                               ; push          %r12
5772  DB  83                                  ; push          %rbx
5773  DB  72,173                              ; lods          %ds:(%rsi),%rax
5774  DB  76,139,0                            ; mov           (%rax),%r8
5775  DB  72,133,201                          ; test          %rcx,%rcx
5776  DB  15,133,56,2,0,0                     ; jne           19f0 <_sk_load_tables_avx+0x250>
5777  DB  196,65,124,16,4,184                 ; vmovups       (%r8,%rdi,4),%ymm8
5778  DB  187,255,0,0,0                       ; mov           $0xff,%ebx
5779  DB  197,249,110,195                     ; vmovd         %ebx,%xmm0
5780  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
5781  DB  196,99,125,24,200,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm9
5782  DB  196,193,52,84,192                   ; vandps        %ymm8,%ymm9,%ymm0
5783  DB  196,193,249,126,193                 ; vmovq         %xmm0,%r9
5784  DB  69,137,203                          ; mov           %r9d,%r11d
5785  DB  196,195,249,22,194,1                ; vpextrq       $0x1,%xmm0,%r10
5786  DB  69,137,214                          ; mov           %r10d,%r14d
5787  DB  73,193,234,32                       ; shr           $0x20,%r10
5788  DB  73,193,233,32                       ; shr           $0x20,%r9
5789  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
5790  DB  196,193,249,126,196                 ; vmovq         %xmm0,%r12
5791  DB  69,137,231                          ; mov           %r12d,%r15d
5792  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
5793  DB  65,137,221                          ; mov           %ebx,%r13d
5794  DB  72,193,235,32                       ; shr           $0x20,%rbx
5795  DB  73,193,236,32                       ; shr           $0x20,%r12
5796  DB  72,139,104,8                        ; mov           0x8(%rax),%rbp
5797  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
5798  DB  196,161,122,16,68,189,0             ; vmovss        0x0(%rbp,%r15,4),%xmm0
5799  DB  196,163,121,33,68,165,0,16          ; vinsertps     $0x10,0x0(%rbp,%r12,4),%xmm0,%xmm0
5800  DB  196,161,122,16,76,173,0             ; vmovss        0x0(%rbp,%r13,4),%xmm1
5801  DB  196,227,121,33,193,32               ; vinsertps     $0x20,%xmm1,%xmm0,%xmm0
5802  DB  197,250,16,76,157,0                 ; vmovss        0x0(%rbp,%rbx,4),%xmm1
5803  DB  196,227,121,33,193,48               ; vinsertps     $0x30,%xmm1,%xmm0,%xmm0
5804  DB  196,161,122,16,76,157,0             ; vmovss        0x0(%rbp,%r11,4),%xmm1
5805  DB  196,163,113,33,76,141,0,16          ; vinsertps     $0x10,0x0(%rbp,%r9,4),%xmm1,%xmm1
5806  DB  196,161,122,16,92,181,0             ; vmovss        0x0(%rbp,%r14,4),%xmm3
5807  DB  196,227,113,33,203,32               ; vinsertps     $0x20,%xmm3,%xmm1,%xmm1
5808  DB  196,161,122,16,92,149,0             ; vmovss        0x0(%rbp,%r10,4),%xmm3
5809  DB  196,227,113,33,203,48               ; vinsertps     $0x30,%xmm3,%xmm1,%xmm1
5810  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
5811  DB  196,193,113,114,208,8               ; vpsrld        $0x8,%xmm8,%xmm1
5812  DB  196,67,125,25,194,1                 ; vextractf128  $0x1,%ymm8,%xmm10
5813  DB  196,193,105,114,210,8               ; vpsrld        $0x8,%xmm10,%xmm2
5814  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
5815  DB  197,180,84,201                      ; vandps        %ymm1,%ymm9,%ymm1
5816  DB  196,193,249,126,201                 ; vmovq         %xmm1,%r9
5817  DB  69,137,203                          ; mov           %r9d,%r11d
5818  DB  196,195,249,22,202,1                ; vpextrq       $0x1,%xmm1,%r10
5819  DB  69,137,214                          ; mov           %r10d,%r14d
5820  DB  73,193,234,32                       ; shr           $0x20,%r10
5821  DB  73,193,233,32                       ; shr           $0x20,%r9
5822  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
5823  DB  196,225,249,126,205                 ; vmovq         %xmm1,%rbp
5824  DB  65,137,239                          ; mov           %ebp,%r15d
5825  DB  196,227,249,22,203,1                ; vpextrq       $0x1,%xmm1,%rbx
5826  DB  65,137,220                          ; mov           %ebx,%r12d
5827  DB  72,193,235,32                       ; shr           $0x20,%rbx
5828  DB  72,193,237,32                       ; shr           $0x20,%rbp
5829  DB  196,129,122,16,12,184               ; vmovss        (%r8,%r15,4),%xmm1
5830  DB  196,195,113,33,12,168,16            ; vinsertps     $0x10,(%r8,%rbp,4),%xmm1,%xmm1
5831  DB  196,129,122,16,20,160               ; vmovss        (%r8,%r12,4),%xmm2
5832  DB  196,227,113,33,202,32               ; vinsertps     $0x20,%xmm2,%xmm1,%xmm1
5833  DB  196,193,122,16,20,152               ; vmovss        (%r8,%rbx,4),%xmm2
5834  DB  196,227,113,33,202,48               ; vinsertps     $0x30,%xmm2,%xmm1,%xmm1
5835  DB  196,129,122,16,20,152               ; vmovss        (%r8,%r11,4),%xmm2
5836  DB  196,131,105,33,20,136,16            ; vinsertps     $0x10,(%r8,%r9,4),%xmm2,%xmm2
5837  DB  196,129,122,16,28,176               ; vmovss        (%r8,%r14,4),%xmm3
5838  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
5839  DB  196,129,122,16,28,144               ; vmovss        (%r8,%r10,4),%xmm3
5840  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
5841  DB  196,227,109,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm2,%ymm1
5842  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
5843  DB  196,193,105,114,208,16              ; vpsrld        $0x10,%xmm8,%xmm2
5844  DB  196,193,97,114,210,16               ; vpsrld        $0x10,%xmm10,%xmm3
5845  DB  196,227,109,24,211,1                ; vinsertf128   $0x1,%xmm3,%ymm2,%ymm2
5846  DB  197,180,84,210                      ; vandps        %ymm2,%ymm9,%ymm2
5847  DB  196,193,249,126,208                 ; vmovq         %xmm2,%r8
5848  DB  69,137,194                          ; mov           %r8d,%r10d
5849  DB  196,195,249,22,209,1                ; vpextrq       $0x1,%xmm2,%r9
5850  DB  69,137,203                          ; mov           %r9d,%r11d
5851  DB  73,193,233,32                       ; shr           $0x20,%r9
5852  DB  73,193,232,32                       ; shr           $0x20,%r8
5853  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
5854  DB  196,225,249,126,213                 ; vmovq         %xmm2,%rbp
5855  DB  65,137,238                          ; mov           %ebp,%r14d
5856  DB  196,227,249,22,211,1                ; vpextrq       $0x1,%xmm2,%rbx
5857  DB  65,137,223                          ; mov           %ebx,%r15d
5858  DB  72,193,235,32                       ; shr           $0x20,%rbx
5859  DB  72,193,237,32                       ; shr           $0x20,%rbp
5860  DB  196,161,122,16,20,176               ; vmovss        (%rax,%r14,4),%xmm2
5861  DB  196,227,105,33,20,168,16            ; vinsertps     $0x10,(%rax,%rbp,4),%xmm2,%xmm2
5862  DB  196,161,122,16,28,184               ; vmovss        (%rax,%r15,4),%xmm3
5863  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
5864  DB  197,250,16,28,152                   ; vmovss        (%rax,%rbx,4),%xmm3
5865  DB  196,99,105,33,203,48                ; vinsertps     $0x30,%xmm3,%xmm2,%xmm9
5866  DB  196,161,122,16,28,144               ; vmovss        (%rax,%r10,4),%xmm3
5867  DB  196,163,97,33,28,128,16             ; vinsertps     $0x10,(%rax,%r8,4),%xmm3,%xmm3
5868  DB  196,161,122,16,20,152               ; vmovss        (%rax,%r11,4),%xmm2
5869  DB  196,227,97,33,210,32                ; vinsertps     $0x20,%xmm2,%xmm3,%xmm2
5870  DB  196,161,122,16,28,136               ; vmovss        (%rax,%r9,4),%xmm3
5871  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
5872  DB  196,195,109,24,209,1                ; vinsertf128   $0x1,%xmm9,%ymm2,%ymm2
5873  DB  196,193,57,114,208,24               ; vpsrld        $0x18,%xmm8,%xmm8
5874  DB  196,193,97,114,210,24               ; vpsrld        $0x18,%xmm10,%xmm3
5875  DB  196,227,61,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm3
5876  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
5877  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
5878  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5879  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5880  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5881  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
5882  DB  72,173                              ; lods          %ds:(%rsi),%rax
5883  DB  91                                  ; pop           %rbx
5884  DB  65,92                               ; pop           %r12
5885  DB  65,93                               ; pop           %r13
5886  DB  65,94                               ; pop           %r14
5887  DB  65,95                               ; pop           %r15
5888  DB  93                                  ; pop           %rbp
5889  DB  255,224                             ; jmpq          *%rax
5890  DB  137,203                             ; mov           %ecx,%ebx
5891  DB  128,227,7                           ; and           $0x7,%bl
5892  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
5893  DB  254,203                             ; dec           %bl
5894  DB  128,251,6                           ; cmp           $0x6,%bl
5895  DB  15,135,185,253,255,255              ; ja            17be <_sk_load_tables_avx+0x1e>
5896  DB  15,182,219                          ; movzbl        %bl,%ebx
5897  DB  76,141,13,137,0,0,0                 ; lea           0x89(%rip),%r9        # 1a98 <_sk_load_tables_avx+0x2f8>
5898  DB  73,99,28,153                        ; movslq        (%r9,%rbx,4),%rbx
5899  DB  76,1,203                            ; add           %r9,%rbx
5900  DB  255,227                             ; jmpq          *%rbx
5901  DB  196,193,121,110,68,184,24           ; vmovd         0x18(%r8,%rdi,4),%xmm0
5902  DB  197,249,112,192,68                  ; vpshufd       $0x44,%xmm0,%xmm0
5903  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5904  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
5905  DB  196,99,117,12,192,64                ; vblendps      $0x40,%ymm0,%ymm1,%ymm8
5906  DB  196,99,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm0
5907  DB  196,195,121,34,68,184,20,1          ; vpinsrd       $0x1,0x14(%r8,%rdi,4),%xmm0,%xmm0
5908  DB  196,99,61,24,192,1                  ; vinsertf128   $0x1,%xmm0,%ymm8,%ymm8
5909  DB  196,99,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm0
5910  DB  196,195,121,34,68,184,16,0          ; vpinsrd       $0x0,0x10(%r8,%rdi,4),%xmm0,%xmm0
5911  DB  196,99,61,24,192,1                  ; vinsertf128   $0x1,%xmm0,%ymm8,%ymm8
5912  DB  196,195,57,34,68,184,12,3           ; vpinsrd       $0x3,0xc(%r8,%rdi,4),%xmm8,%xmm0
5913  DB  196,99,61,12,192,15                 ; vblendps      $0xf,%ymm0,%ymm8,%ymm8
5914  DB  196,195,57,34,68,184,8,2            ; vpinsrd       $0x2,0x8(%r8,%rdi,4),%xmm8,%xmm0
5915  DB  196,99,61,12,192,15                 ; vblendps      $0xf,%ymm0,%ymm8,%ymm8
5916  DB  196,195,57,34,68,184,4,1            ; vpinsrd       $0x1,0x4(%r8,%rdi,4),%xmm8,%xmm0
5917  DB  196,99,61,12,192,15                 ; vblendps      $0xf,%ymm0,%ymm8,%ymm8
5918  DB  196,195,57,34,4,184,0               ; vpinsrd       $0x0,(%r8,%rdi,4),%xmm8,%xmm0
5919  DB  196,99,61,12,192,15                 ; vblendps      $0xf,%ymm0,%ymm8,%ymm8
5920  DB  233,38,253,255,255                  ; jmpq          17be <_sk_load_tables_avx+0x1e>
5921  DB  238                                 ; out           %al,(%dx)
5922  DB  255                                 ; (bad)
5923  DB  255                                 ; (bad)
5924  DB  255,224                             ; jmpq          *%rax
5925  DB  255                                 ; (bad)
5926  DB  255                                 ; (bad)
5927  DB  255,210                             ; callq         *%rdx
5928  DB  255                                 ; (bad)
5929  DB  255                                 ; (bad)
5930  DB  255,196                             ; inc           %esp
5931  DB  255                                 ; (bad)
5932  DB  255                                 ; (bad)
5933  DB  255,176,255,255,255,156             ; pushq         -0x63000001(%rax)
5934  DB  255                                 ; (bad)
5935  DB  255                                 ; (bad)
5936  DB  255                                 ; .byte         0xff
5937  DB  128,255,255                         ; cmp           $0xff,%bh
5938  DB  255                                 ; .byte         0xff
5939
5940PUBLIC _sk_load_tables_u16_be_avx
5941_sk_load_tables_u16_be_avx LABEL PROC
5942  DB  72,173                              ; lods          %ds:(%rsi),%rax
5943  DB  76,139,0                            ; mov           (%rax),%r8
5944  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
5945  DB  72,133,201                          ; test          %rcx,%rcx
5946  DB  15,133,165,2,0,0                    ; jne           1d6f <_sk_load_tables_u16_be_avx+0x2bb>
5947  DB  196,1,121,16,4,72                   ; vmovupd       (%r8,%r9,2),%xmm8
5948  DB  196,129,121,16,84,72,16             ; vmovupd       0x10(%r8,%r9,2),%xmm2
5949  DB  196,129,121,16,92,72,32             ; vmovupd       0x20(%r8,%r9,2),%xmm3
5950  DB  196,1,122,111,76,72,48              ; vmovdqu       0x30(%r8,%r9,2),%xmm9
5951  DB  85                                  ; push          %rbp
5952  DB  65,87                               ; push          %r15
5953  DB  65,86                               ; push          %r14
5954  DB  65,85                               ; push          %r13
5955  DB  65,84                               ; push          %r12
5956  DB  83                                  ; push          %rbx
5957  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
5958  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
5959  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
5960  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
5961  DB  197,121,97,218                      ; vpunpcklwd    %xmm2,%xmm0,%xmm11
5962  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
5963  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
5964  DB  197,113,105,211                     ; vpunpckhwd    %xmm3,%xmm1,%xmm10
5965  DB  197,161,108,194                     ; vpunpcklqdq   %xmm2,%xmm11,%xmm0
5966  DB  196,65,57,239,192                   ; vpxor         %xmm8,%xmm8,%xmm8
5967  DB  196,193,121,105,200                 ; vpunpckhwd    %xmm8,%xmm0,%xmm1
5968  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
5969  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
5970  DB  187,255,0,0,0                       ; mov           $0xff,%ebx
5971  DB  197,249,110,203                     ; vmovd         %ebx,%xmm1
5972  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
5973  DB  196,99,117,24,225,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm12
5974  DB  196,193,124,84,196                  ; vandps        %ymm12,%ymm0,%ymm0
5975  DB  196,193,249,126,193                 ; vmovq         %xmm0,%r9
5976  DB  69,137,203                          ; mov           %r9d,%r11d
5977  DB  196,195,249,22,194,1                ; vpextrq       $0x1,%xmm0,%r10
5978  DB  69,137,214                          ; mov           %r10d,%r14d
5979  DB  73,193,234,32                       ; shr           $0x20,%r10
5980  DB  73,193,233,32                       ; shr           $0x20,%r9
5981  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
5982  DB  196,193,249,126,196                 ; vmovq         %xmm0,%r12
5983  DB  69,137,231                          ; mov           %r12d,%r15d
5984  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
5985  DB  65,137,221                          ; mov           %ebx,%r13d
5986  DB  72,193,235,32                       ; shr           $0x20,%rbx
5987  DB  73,193,236,32                       ; shr           $0x20,%r12
5988  DB  72,139,104,8                        ; mov           0x8(%rax),%rbp
5989  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
5990  DB  196,161,122,16,68,189,0             ; vmovss        0x0(%rbp,%r15,4),%xmm0
5991  DB  196,163,121,33,68,165,0,16          ; vinsertps     $0x10,0x0(%rbp,%r12,4),%xmm0,%xmm0
5992  DB  196,161,122,16,76,173,0             ; vmovss        0x0(%rbp,%r13,4),%xmm1
5993  DB  196,227,121,33,193,32               ; vinsertps     $0x20,%xmm1,%xmm0,%xmm0
5994  DB  197,250,16,76,157,0                 ; vmovss        0x0(%rbp,%rbx,4),%xmm1
5995  DB  196,227,121,33,193,48               ; vinsertps     $0x30,%xmm1,%xmm0,%xmm0
5996  DB  196,161,122,16,76,157,0             ; vmovss        0x0(%rbp,%r11,4),%xmm1
5997  DB  196,163,113,33,76,141,0,16          ; vinsertps     $0x10,0x0(%rbp,%r9,4),%xmm1,%xmm1
5998  DB  196,161,122,16,92,181,0             ; vmovss        0x0(%rbp,%r14,4),%xmm3
5999  DB  196,227,113,33,203,32               ; vinsertps     $0x20,%xmm3,%xmm1,%xmm1
6000  DB  196,161,122,16,92,149,0             ; vmovss        0x0(%rbp,%r10,4),%xmm3
6001  DB  196,227,113,33,203,48               ; vinsertps     $0x30,%xmm3,%xmm1,%xmm1
6002  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
6003  DB  197,161,109,202                     ; vpunpckhqdq   %xmm2,%xmm11,%xmm1
6004  DB  196,193,113,105,208                 ; vpunpckhwd    %xmm8,%xmm1,%xmm2
6005  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
6006  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
6007  DB  196,193,116,84,204                  ; vandps        %ymm12,%ymm1,%ymm1
6008  DB  196,193,249,126,201                 ; vmovq         %xmm1,%r9
6009  DB  69,137,203                          ; mov           %r9d,%r11d
6010  DB  196,195,249,22,202,1                ; vpextrq       $0x1,%xmm1,%r10
6011  DB  69,137,214                          ; mov           %r10d,%r14d
6012  DB  73,193,234,32                       ; shr           $0x20,%r10
6013  DB  73,193,233,32                       ; shr           $0x20,%r9
6014  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6015  DB  196,225,249,126,205                 ; vmovq         %xmm1,%rbp
6016  DB  65,137,239                          ; mov           %ebp,%r15d
6017  DB  196,227,249,22,203,1                ; vpextrq       $0x1,%xmm1,%rbx
6018  DB  65,137,220                          ; mov           %ebx,%r12d
6019  DB  72,193,235,32                       ; shr           $0x20,%rbx
6020  DB  72,193,237,32                       ; shr           $0x20,%rbp
6021  DB  196,129,122,16,12,184               ; vmovss        (%r8,%r15,4),%xmm1
6022  DB  196,195,113,33,12,168,16            ; vinsertps     $0x10,(%r8,%rbp,4),%xmm1,%xmm1
6023  DB  196,129,122,16,20,160               ; vmovss        (%r8,%r12,4),%xmm2
6024  DB  196,227,113,33,202,32               ; vinsertps     $0x20,%xmm2,%xmm1,%xmm1
6025  DB  196,193,122,16,20,152               ; vmovss        (%r8,%rbx,4),%xmm2
6026  DB  196,227,113,33,202,48               ; vinsertps     $0x30,%xmm2,%xmm1,%xmm1
6027  DB  196,129,122,16,20,152               ; vmovss        (%r8,%r11,4),%xmm2
6028  DB  196,131,105,33,20,136,16            ; vinsertps     $0x10,(%r8,%r9,4),%xmm2,%xmm2
6029  DB  196,129,122,16,28,176               ; vmovss        (%r8,%r14,4),%xmm3
6030  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
6031  DB  196,129,122,16,28,144               ; vmovss        (%r8,%r10,4),%xmm3
6032  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
6033  DB  196,227,109,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm2,%ymm1
6034  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
6035  DB  196,193,49,108,210                  ; vpunpcklqdq   %xmm10,%xmm9,%xmm2
6036  DB  196,193,105,105,216                 ; vpunpckhwd    %xmm8,%xmm2,%xmm3
6037  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
6038  DB  196,227,109,24,211,1                ; vinsertf128   $0x1,%xmm3,%ymm2,%ymm2
6039  DB  196,193,108,84,212                  ; vandps        %ymm12,%ymm2,%ymm2
6040  DB  196,193,249,126,208                 ; vmovq         %xmm2,%r8
6041  DB  69,137,194                          ; mov           %r8d,%r10d
6042  DB  196,195,249,22,209,1                ; vpextrq       $0x1,%xmm2,%r9
6043  DB  69,137,203                          ; mov           %r9d,%r11d
6044  DB  73,193,233,32                       ; shr           $0x20,%r9
6045  DB  73,193,232,32                       ; shr           $0x20,%r8
6046  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6047  DB  196,225,249,126,213                 ; vmovq         %xmm2,%rbp
6048  DB  65,137,238                          ; mov           %ebp,%r14d
6049  DB  196,227,249,22,211,1                ; vpextrq       $0x1,%xmm2,%rbx
6050  DB  65,137,223                          ; mov           %ebx,%r15d
6051  DB  72,193,235,32                       ; shr           $0x20,%rbx
6052  DB  72,193,237,32                       ; shr           $0x20,%rbp
6053  DB  196,161,122,16,20,176               ; vmovss        (%rax,%r14,4),%xmm2
6054  DB  196,227,105,33,20,168,16            ; vinsertps     $0x10,(%rax,%rbp,4),%xmm2,%xmm2
6055  DB  196,161,122,16,28,184               ; vmovss        (%rax,%r15,4),%xmm3
6056  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
6057  DB  197,250,16,28,152                   ; vmovss        (%rax,%rbx,4),%xmm3
6058  DB  196,99,105,33,219,48                ; vinsertps     $0x30,%xmm3,%xmm2,%xmm11
6059  DB  196,161,122,16,28,144               ; vmovss        (%rax,%r10,4),%xmm3
6060  DB  196,163,97,33,28,128,16             ; vinsertps     $0x10,(%rax,%r8,4),%xmm3,%xmm3
6061  DB  196,161,122,16,20,152               ; vmovss        (%rax,%r11,4),%xmm2
6062  DB  196,227,97,33,210,32                ; vinsertps     $0x20,%xmm2,%xmm3,%xmm2
6063  DB  196,161,122,16,28,136               ; vmovss        (%rax,%r9,4),%xmm3
6064  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
6065  DB  196,195,109,24,211,1                ; vinsertf128   $0x1,%xmm11,%ymm2,%ymm2
6066  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
6067  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
6068  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
6069  DB  196,99,101,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm11
6070  DB  196,193,49,109,218                  ; vpunpckhqdq   %xmm10,%xmm9,%xmm3
6071  DB  197,177,113,243,8                   ; vpsllw        $0x8,%xmm3,%xmm9
6072  DB  197,225,113,211,8                   ; vpsrlw        $0x8,%xmm3,%xmm3
6073  DB  197,177,235,219                     ; vpor          %xmm3,%xmm9,%xmm3
6074  DB  196,65,97,105,192                   ; vpunpckhwd    %xmm8,%xmm3,%xmm8
6075  DB  196,226,121,51,219                  ; vpmovzxwd     %xmm3,%xmm3
6076  DB  196,195,101,24,216,1                ; vinsertf128   $0x1,%xmm8,%ymm3,%ymm3
6077  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
6078  DB  196,193,100,89,219                  ; vmulps        %ymm11,%ymm3,%ymm3
6079  DB  72,173                              ; lods          %ds:(%rsi),%rax
6080  DB  91                                  ; pop           %rbx
6081  DB  65,92                               ; pop           %r12
6082  DB  65,93                               ; pop           %r13
6083  DB  65,94                               ; pop           %r14
6084  DB  65,95                               ; pop           %r15
6085  DB  93                                  ; pop           %rbp
6086  DB  255,224                             ; jmpq          *%rax
6087  DB  196,1,123,16,4,72                   ; vmovsd        (%r8,%r9,2),%xmm8
6088  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
6089  DB  72,131,249,1                        ; cmp           $0x1,%rcx
6090  DB  116,85                              ; je            1dd5 <_sk_load_tables_u16_be_avx+0x321>
6091  DB  196,1,57,22,68,72,8                 ; vmovhpd       0x8(%r8,%r9,2),%xmm8,%xmm8
6092  DB  72,131,249,3                        ; cmp           $0x3,%rcx
6093  DB  114,72                              ; jb            1dd5 <_sk_load_tables_u16_be_avx+0x321>
6094  DB  196,129,123,16,84,72,16             ; vmovsd        0x10(%r8,%r9,2),%xmm2
6095  DB  72,131,249,3                        ; cmp           $0x3,%rcx
6096  DB  116,72                              ; je            1de2 <_sk_load_tables_u16_be_avx+0x32e>
6097  DB  196,129,105,22,84,72,24             ; vmovhpd       0x18(%r8,%r9,2),%xmm2,%xmm2
6098  DB  72,131,249,5                        ; cmp           $0x5,%rcx
6099  DB  114,59                              ; jb            1de2 <_sk_load_tables_u16_be_avx+0x32e>
6100  DB  196,129,123,16,92,72,32             ; vmovsd        0x20(%r8,%r9,2),%xmm3
6101  DB  72,131,249,5                        ; cmp           $0x5,%rcx
6102  DB  15,132,45,253,255,255               ; je            1ae5 <_sk_load_tables_u16_be_avx+0x31>
6103  DB  196,129,97,22,92,72,40              ; vmovhpd       0x28(%r8,%r9,2),%xmm3,%xmm3
6104  DB  72,131,249,7                        ; cmp           $0x7,%rcx
6105  DB  15,130,28,253,255,255               ; jb            1ae5 <_sk_load_tables_u16_be_avx+0x31>
6106  DB  196,1,122,126,76,72,48              ; vmovq         0x30(%r8,%r9,2),%xmm9
6107  DB  233,16,253,255,255                  ; jmpq          1ae5 <_sk_load_tables_u16_be_avx+0x31>
6108  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
6109  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
6110  DB  233,3,253,255,255                   ; jmpq          1ae5 <_sk_load_tables_u16_be_avx+0x31>
6111  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
6112  DB  233,250,252,255,255                 ; jmpq          1ae5 <_sk_load_tables_u16_be_avx+0x31>
6113
6114PUBLIC _sk_load_tables_rgb_u16_be_avx
6115_sk_load_tables_rgb_u16_be_avx LABEL PROC
6116  DB  72,173                              ; lods          %ds:(%rsi),%rax
6117  DB  76,139,0                            ; mov           (%rax),%r8
6118  DB  76,141,12,127                       ; lea           (%rdi,%rdi,2),%r9
6119  DB  72,133,201                          ; test          %rcx,%rcx
6120  DB  15,133,146,2,0,0                    ; jne           208f <_sk_load_tables_rgb_u16_be_avx+0x2a4>
6121  DB  196,129,122,111,4,72                ; vmovdqu       (%r8,%r9,2),%xmm0
6122  DB  196,129,122,111,84,72,12            ; vmovdqu       0xc(%r8,%r9,2),%xmm2
6123  DB  196,129,122,111,76,72,24            ; vmovdqu       0x18(%r8,%r9,2),%xmm1
6124  DB  196,129,122,111,92,72,32            ; vmovdqu       0x20(%r8,%r9,2),%xmm3
6125  DB  197,225,115,219,4                   ; vpsrldq       $0x4,%xmm3,%xmm3
6126  DB  197,185,115,216,6                   ; vpsrldq       $0x6,%xmm0,%xmm8
6127  DB  197,177,115,218,6                   ; vpsrldq       $0x6,%xmm2,%xmm9
6128  DB  197,161,115,217,6                   ; vpsrldq       $0x6,%xmm1,%xmm11
6129  DB  197,169,115,219,6                   ; vpsrldq       $0x6,%xmm3,%xmm10
6130  DB  85                                  ; push          %rbp
6131  DB  65,87                               ; push          %r15
6132  DB  65,86                               ; push          %r14
6133  DB  65,85                               ; push          %r13
6134  DB  65,84                               ; push          %r12
6135  DB  83                                  ; push          %rbx
6136  DB  197,249,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm0
6137  DB  196,193,57,97,209                   ; vpunpcklwd    %xmm9,%xmm8,%xmm2
6138  DB  197,241,97,203                      ; vpunpcklwd    %xmm3,%xmm1,%xmm1
6139  DB  196,193,33,97,218                   ; vpunpcklwd    %xmm10,%xmm11,%xmm3
6140  DB  197,121,97,218                      ; vpunpcklwd    %xmm2,%xmm0,%xmm11
6141  DB  197,121,105,194                     ; vpunpckhwd    %xmm2,%xmm0,%xmm8
6142  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
6143  DB  197,113,105,211                     ; vpunpckhwd    %xmm3,%xmm1,%xmm10
6144  DB  197,161,108,194                     ; vpunpcklqdq   %xmm2,%xmm11,%xmm0
6145  DB  196,65,25,239,228                   ; vpxor         %xmm12,%xmm12,%xmm12
6146  DB  196,193,121,105,204                 ; vpunpckhwd    %xmm12,%xmm0,%xmm1
6147  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
6148  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
6149  DB  187,255,0,0,0                       ; mov           $0xff,%ebx
6150  DB  197,249,110,203                     ; vmovd         %ebx,%xmm1
6151  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
6152  DB  196,99,117,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm9
6153  DB  196,193,124,84,193                  ; vandps        %ymm9,%ymm0,%ymm0
6154  DB  196,193,249,126,193                 ; vmovq         %xmm0,%r9
6155  DB  69,137,203                          ; mov           %r9d,%r11d
6156  DB  196,195,249,22,194,1                ; vpextrq       $0x1,%xmm0,%r10
6157  DB  69,137,214                          ; mov           %r10d,%r14d
6158  DB  73,193,234,32                       ; shr           $0x20,%r10
6159  DB  73,193,233,32                       ; shr           $0x20,%r9
6160  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
6161  DB  196,193,249,126,196                 ; vmovq         %xmm0,%r12
6162  DB  69,137,231                          ; mov           %r12d,%r15d
6163  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
6164  DB  65,137,221                          ; mov           %ebx,%r13d
6165  DB  72,193,235,32                       ; shr           $0x20,%rbx
6166  DB  73,193,236,32                       ; shr           $0x20,%r12
6167  DB  72,139,104,8                        ; mov           0x8(%rax),%rbp
6168  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
6169  DB  196,161,122,16,68,189,0             ; vmovss        0x0(%rbp,%r15,4),%xmm0
6170  DB  196,163,121,33,68,165,0,16          ; vinsertps     $0x10,0x0(%rbp,%r12,4),%xmm0,%xmm0
6171  DB  196,161,122,16,76,173,0             ; vmovss        0x0(%rbp,%r13,4),%xmm1
6172  DB  196,227,121,33,193,32               ; vinsertps     $0x20,%xmm1,%xmm0,%xmm0
6173  DB  197,250,16,76,157,0                 ; vmovss        0x0(%rbp,%rbx,4),%xmm1
6174  DB  196,227,121,33,193,48               ; vinsertps     $0x30,%xmm1,%xmm0,%xmm0
6175  DB  196,161,122,16,76,157,0             ; vmovss        0x0(%rbp,%r11,4),%xmm1
6176  DB  196,163,113,33,76,141,0,16          ; vinsertps     $0x10,0x0(%rbp,%r9,4),%xmm1,%xmm1
6177  DB  196,161,122,16,92,181,0             ; vmovss        0x0(%rbp,%r14,4),%xmm3
6178  DB  196,227,113,33,203,32               ; vinsertps     $0x20,%xmm3,%xmm1,%xmm1
6179  DB  196,161,122,16,92,149,0             ; vmovss        0x0(%rbp,%r10,4),%xmm3
6180  DB  196,227,113,33,203,48               ; vinsertps     $0x30,%xmm3,%xmm1,%xmm1
6181  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
6182  DB  197,161,109,202                     ; vpunpckhqdq   %xmm2,%xmm11,%xmm1
6183  DB  196,193,113,105,212                 ; vpunpckhwd    %xmm12,%xmm1,%xmm2
6184  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
6185  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
6186  DB  196,193,116,84,201                  ; vandps        %ymm9,%ymm1,%ymm1
6187  DB  196,193,249,126,201                 ; vmovq         %xmm1,%r9
6188  DB  69,137,203                          ; mov           %r9d,%r11d
6189  DB  196,195,249,22,202,1                ; vpextrq       $0x1,%xmm1,%r10
6190  DB  69,137,214                          ; mov           %r10d,%r14d
6191  DB  73,193,234,32                       ; shr           $0x20,%r10
6192  DB  73,193,233,32                       ; shr           $0x20,%r9
6193  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6194  DB  196,225,249,126,205                 ; vmovq         %xmm1,%rbp
6195  DB  65,137,239                          ; mov           %ebp,%r15d
6196  DB  196,227,249,22,203,1                ; vpextrq       $0x1,%xmm1,%rbx
6197  DB  65,137,220                          ; mov           %ebx,%r12d
6198  DB  72,193,235,32                       ; shr           $0x20,%rbx
6199  DB  72,193,237,32                       ; shr           $0x20,%rbp
6200  DB  196,129,122,16,12,184               ; vmovss        (%r8,%r15,4),%xmm1
6201  DB  196,195,113,33,12,168,16            ; vinsertps     $0x10,(%r8,%rbp,4),%xmm1,%xmm1
6202  DB  196,129,122,16,20,160               ; vmovss        (%r8,%r12,4),%xmm2
6203  DB  196,227,113,33,202,32               ; vinsertps     $0x20,%xmm2,%xmm1,%xmm1
6204  DB  196,193,122,16,20,152               ; vmovss        (%r8,%rbx,4),%xmm2
6205  DB  196,227,113,33,202,48               ; vinsertps     $0x30,%xmm2,%xmm1,%xmm1
6206  DB  196,129,122,16,20,152               ; vmovss        (%r8,%r11,4),%xmm2
6207  DB  196,131,105,33,20,136,16            ; vinsertps     $0x10,(%r8,%r9,4),%xmm2,%xmm2
6208  DB  196,129,122,16,28,176               ; vmovss        (%r8,%r14,4),%xmm3
6209  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
6210  DB  196,129,122,16,28,144               ; vmovss        (%r8,%r10,4),%xmm3
6211  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
6212  DB  196,227,109,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm2,%ymm1
6213  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
6214  DB  196,193,57,108,210                  ; vpunpcklqdq   %xmm10,%xmm8,%xmm2
6215  DB  196,193,105,105,220                 ; vpunpckhwd    %xmm12,%xmm2,%xmm3
6216  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
6217  DB  196,227,109,24,211,1                ; vinsertf128   $0x1,%xmm3,%ymm2,%ymm2
6218  DB  196,193,108,84,209                  ; vandps        %ymm9,%ymm2,%ymm2
6219  DB  196,193,249,126,208                 ; vmovq         %xmm2,%r8
6220  DB  69,137,194                          ; mov           %r8d,%r10d
6221  DB  196,195,249,22,209,1                ; vpextrq       $0x1,%xmm2,%r9
6222  DB  69,137,203                          ; mov           %r9d,%r11d
6223  DB  73,193,233,32                       ; shr           $0x20,%r9
6224  DB  73,193,232,32                       ; shr           $0x20,%r8
6225  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6226  DB  196,225,249,126,213                 ; vmovq         %xmm2,%rbp
6227  DB  65,137,238                          ; mov           %ebp,%r14d
6228  DB  196,227,249,22,211,1                ; vpextrq       $0x1,%xmm2,%rbx
6229  DB  65,137,223                          ; mov           %ebx,%r15d
6230  DB  72,193,235,32                       ; shr           $0x20,%rbx
6231  DB  72,193,237,32                       ; shr           $0x20,%rbp
6232  DB  196,161,122,16,20,176               ; vmovss        (%rax,%r14,4),%xmm2
6233  DB  196,227,105,33,20,168,16            ; vinsertps     $0x10,(%rax,%rbp,4),%xmm2,%xmm2
6234  DB  196,161,122,16,28,184               ; vmovss        (%rax,%r15,4),%xmm3
6235  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
6236  DB  197,250,16,28,152                   ; vmovss        (%rax,%rbx,4),%xmm3
6237  DB  196,99,105,33,195,48                ; vinsertps     $0x30,%xmm3,%xmm2,%xmm8
6238  DB  196,161,122,16,28,144               ; vmovss        (%rax,%r10,4),%xmm3
6239  DB  196,163,97,33,28,128,16             ; vinsertps     $0x10,(%rax,%r8,4),%xmm3,%xmm3
6240  DB  196,161,122,16,20,152               ; vmovss        (%rax,%r11,4),%xmm2
6241  DB  196,227,97,33,210,32                ; vinsertps     $0x20,%xmm2,%xmm3,%xmm2
6242  DB  196,161,122,16,28,136               ; vmovss        (%rax,%r9,4),%xmm3
6243  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
6244  DB  196,195,109,24,208,1                ; vinsertf128   $0x1,%xmm8,%ymm2,%ymm2
6245  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
6246  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
6247  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
6248  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
6249  DB  72,173                              ; lods          %ds:(%rsi),%rax
6250  DB  91                                  ; pop           %rbx
6251  DB  65,92                               ; pop           %r12
6252  DB  65,93                               ; pop           %r13
6253  DB  65,94                               ; pop           %r14
6254  DB  65,95                               ; pop           %r15
6255  DB  93                                  ; pop           %rbp
6256  DB  255,224                             ; jmpq          *%rax
6257  DB  196,129,121,110,4,72                ; vmovd         (%r8,%r9,2),%xmm0
6258  DB  196,129,121,196,68,72,4,2           ; vpinsrw       $0x2,0x4(%r8,%r9,2),%xmm0,%xmm0
6259  DB  72,131,249,1                        ; cmp           $0x1,%rcx
6260  DB  117,5                               ; jne           20a8 <_sk_load_tables_rgb_u16_be_avx+0x2bd>
6261  DB  233,137,253,255,255                 ; jmpq          1e31 <_sk_load_tables_rgb_u16_be_avx+0x46>
6262  DB  196,129,121,110,76,72,6             ; vmovd         0x6(%r8,%r9,2),%xmm1
6263  DB  196,1,113,196,68,72,10,2            ; vpinsrw       $0x2,0xa(%r8,%r9,2),%xmm1,%xmm8
6264  DB  72,131,249,3                        ; cmp           $0x3,%rcx
6265  DB  114,26                              ; jb            20d7 <_sk_load_tables_rgb_u16_be_avx+0x2ec>
6266  DB  196,129,121,110,76,72,12            ; vmovd         0xc(%r8,%r9,2),%xmm1
6267  DB  196,129,113,196,84,72,16,2          ; vpinsrw       $0x2,0x10(%r8,%r9,2),%xmm1,%xmm2
6268  DB  72,131,249,3                        ; cmp           $0x3,%rcx
6269  DB  117,10                              ; jne           20dc <_sk_load_tables_rgb_u16_be_avx+0x2f1>
6270  DB  233,90,253,255,255                  ; jmpq          1e31 <_sk_load_tables_rgb_u16_be_avx+0x46>
6271  DB  233,85,253,255,255                  ; jmpq          1e31 <_sk_load_tables_rgb_u16_be_avx+0x46>
6272  DB  196,129,121,110,76,72,18            ; vmovd         0x12(%r8,%r9,2),%xmm1
6273  DB  196,1,113,196,76,72,22,2            ; vpinsrw       $0x2,0x16(%r8,%r9,2),%xmm1,%xmm9
6274  DB  72,131,249,5                        ; cmp           $0x5,%rcx
6275  DB  114,26                              ; jb            210b <_sk_load_tables_rgb_u16_be_avx+0x320>
6276  DB  196,129,121,110,76,72,24            ; vmovd         0x18(%r8,%r9,2),%xmm1
6277  DB  196,129,113,196,76,72,28,2          ; vpinsrw       $0x2,0x1c(%r8,%r9,2),%xmm1,%xmm1
6278  DB  72,131,249,5                        ; cmp           $0x5,%rcx
6279  DB  117,10                              ; jne           2110 <_sk_load_tables_rgb_u16_be_avx+0x325>
6280  DB  233,38,253,255,255                  ; jmpq          1e31 <_sk_load_tables_rgb_u16_be_avx+0x46>
6281  DB  233,33,253,255,255                  ; jmpq          1e31 <_sk_load_tables_rgb_u16_be_avx+0x46>
6282  DB  196,129,121,110,92,72,30            ; vmovd         0x1e(%r8,%r9,2),%xmm3
6283  DB  196,1,97,196,92,72,34,2             ; vpinsrw       $0x2,0x22(%r8,%r9,2),%xmm3,%xmm11
6284  DB  72,131,249,7                        ; cmp           $0x7,%rcx
6285  DB  114,20                              ; jb            2139 <_sk_load_tables_rgb_u16_be_avx+0x34e>
6286  DB  196,129,121,110,92,72,36            ; vmovd         0x24(%r8,%r9,2),%xmm3
6287  DB  196,129,97,196,92,72,40,2           ; vpinsrw       $0x2,0x28(%r8,%r9,2),%xmm3,%xmm3
6288  DB  233,248,252,255,255                 ; jmpq          1e31 <_sk_load_tables_rgb_u16_be_avx+0x46>
6289  DB  233,243,252,255,255                 ; jmpq          1e31 <_sk_load_tables_rgb_u16_be_avx+0x46>
6290
6291PUBLIC _sk_byte_tables_avx
6292_sk_byte_tables_avx LABEL PROC
6293  DB  85                                  ; push          %rbp
6294  DB  65,87                               ; push          %r15
6295  DB  65,86                               ; push          %r14
6296  DB  65,85                               ; push          %r13
6297  DB  65,84                               ; push          %r12
6298  DB  83                                  ; push          %rbx
6299  DB  72,173                              ; lods          %ds:(%rsi),%rax
6300  DB  65,184,0,0,127,67                   ; mov           $0x437f0000,%r8d
6301  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
6302  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
6303  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6304  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
6305  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
6306  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
6307  DB  68,137,197                          ; mov           %r8d,%ebp
6308  DB  77,137,194                          ; mov           %r8,%r10
6309  DB  73,193,234,32                       ; shr           $0x20,%r10
6310  DB  196,193,249,126,192                 ; vmovq         %xmm0,%r8
6311  DB  69,137,195                          ; mov           %r8d,%r11d
6312  DB  77,137,199                          ; mov           %r8,%r15
6313  DB  73,193,239,32                       ; shr           $0x20,%r15
6314  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
6315  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
6316  DB  69,137,198                          ; mov           %r8d,%r14d
6317  DB  77,137,196                          ; mov           %r8,%r12
6318  DB  73,193,236,32                       ; shr           $0x20,%r12
6319  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
6320  DB  65,137,221                          ; mov           %ebx,%r13d
6321  DB  72,193,235,32                       ; shr           $0x20,%rbx
6322  DB  76,139,8                            ; mov           (%rax),%r9
6323  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
6324  DB  196,131,121,32,4,25,0               ; vpinsrb       $0x0,(%r9,%r11,1),%xmm0,%xmm0
6325  DB  196,131,121,32,4,57,1               ; vpinsrb       $0x1,(%r9,%r15,1),%xmm0,%xmm0
6326  DB  65,15,182,44,41                     ; movzbl        (%r9,%rbp,1),%ebp
6327  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
6328  DB  67,15,182,44,17                     ; movzbl        (%r9,%r10,1),%ebp
6329  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
6330  DB  196,98,121,49,200                   ; vpmovzxbd     %xmm0,%xmm9
6331  DB  196,131,121,32,4,41,0               ; vpinsrb       $0x0,(%r9,%r13,1),%xmm0,%xmm0
6332  DB  196,195,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%rbx,1),%xmm0,%xmm0
6333  DB  67,15,182,44,49                     ; movzbl        (%r9,%r14,1),%ebp
6334  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
6335  DB  67,15,182,44,33                     ; movzbl        (%r9,%r12,1),%ebp
6336  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
6337  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
6338  DB  196,227,53,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm0
6339  DB  197,124,91,208                      ; vcvtdq2ps     %ymm0,%ymm10
6340  DB  189,129,128,128,59                  ; mov           $0x3b808081,%ebp
6341  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
6342  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6343  DB  196,99,125,24,200,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm9
6344  DB  196,193,44,89,193                   ; vmulps        %ymm9,%ymm10,%ymm0
6345  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
6346  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
6347  DB  196,227,249,22,205,1                ; vpextrq       $0x1,%xmm1,%rbp
6348  DB  65,137,233                          ; mov           %ebp,%r9d
6349  DB  72,193,237,32                       ; shr           $0x20,%rbp
6350  DB  196,225,249,126,203                 ; vmovq         %xmm1,%rbx
6351  DB  65,137,218                          ; mov           %ebx,%r10d
6352  DB  72,193,235,32                       ; shr           $0x20,%rbx
6353  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6354  DB  196,195,249,22,203,1                ; vpextrq       $0x1,%xmm1,%r11
6355  DB  69,137,222                          ; mov           %r11d,%r14d
6356  DB  73,193,235,32                       ; shr           $0x20,%r11
6357  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
6358  DB  69,137,252                          ; mov           %r15d,%r12d
6359  DB  73,193,239,32                       ; shr           $0x20,%r15
6360  DB  196,131,121,32,12,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm1
6361  DB  196,195,113,32,12,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm1,%xmm1
6362  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
6363  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
6364  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
6365  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
6366  DB  196,98,121,49,209                   ; vpmovzxbd     %xmm1,%xmm10
6367  DB  196,131,121,32,12,32,0              ; vpinsrb       $0x0,(%r8,%r12,1),%xmm0,%xmm1
6368  DB  196,131,113,32,12,56,1              ; vpinsrb       $0x1,(%r8,%r15,1),%xmm1,%xmm1
6369  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
6370  DB  196,227,113,32,205,2                ; vpinsrb       $0x2,%ebp,%xmm1,%xmm1
6371  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
6372  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
6373  DB  196,226,121,49,201                  ; vpmovzxbd     %xmm1,%xmm1
6374  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
6375  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
6376  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
6377  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
6378  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
6379  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
6380  DB  196,227,249,22,213,1                ; vpextrq       $0x1,%xmm2,%rbp
6381  DB  65,137,233                          ; mov           %ebp,%r9d
6382  DB  72,193,237,32                       ; shr           $0x20,%rbp
6383  DB  196,225,249,126,211                 ; vmovq         %xmm2,%rbx
6384  DB  65,137,218                          ; mov           %ebx,%r10d
6385  DB  72,193,235,32                       ; shr           $0x20,%rbx
6386  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6387  DB  196,195,249,22,211,1                ; vpextrq       $0x1,%xmm2,%r11
6388  DB  69,137,222                          ; mov           %r11d,%r14d
6389  DB  73,193,235,32                       ; shr           $0x20,%r11
6390  DB  196,193,249,126,215                 ; vmovq         %xmm2,%r15
6391  DB  69,137,252                          ; mov           %r15d,%r12d
6392  DB  73,193,239,32                       ; shr           $0x20,%r15
6393  DB  196,131,121,32,20,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm2
6394  DB  196,195,105,32,20,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm2,%xmm2
6395  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
6396  DB  196,227,105,32,211,2                ; vpinsrb       $0x2,%ebx,%xmm2,%xmm2
6397  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
6398  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
6399  DB  196,98,121,49,210                   ; vpmovzxbd     %xmm2,%xmm10
6400  DB  196,131,121,32,20,32,0              ; vpinsrb       $0x0,(%r8,%r12,1),%xmm0,%xmm2
6401  DB  196,131,105,32,20,56,1              ; vpinsrb       $0x1,(%r8,%r15,1),%xmm2,%xmm2
6402  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
6403  DB  196,227,105,32,213,2                ; vpinsrb       $0x2,%ebp,%xmm2,%xmm2
6404  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
6405  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
6406  DB  196,226,121,49,210                  ; vpmovzxbd     %xmm2,%xmm2
6407  DB  196,227,45,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm10,%ymm2
6408  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
6409  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
6410  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
6411  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
6412  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
6413  DB  196,227,249,22,221,1                ; vpextrq       $0x1,%xmm3,%rbp
6414  DB  65,137,232                          ; mov           %ebp,%r8d
6415  DB  72,193,237,32                       ; shr           $0x20,%rbp
6416  DB  196,225,249,126,219                 ; vmovq         %xmm3,%rbx
6417  DB  65,137,217                          ; mov           %ebx,%r9d
6418  DB  72,193,235,32                       ; shr           $0x20,%rbx
6419  DB  196,227,125,25,219,1                ; vextractf128  $0x1,%ymm3,%xmm3
6420  DB  196,195,249,22,218,1                ; vpextrq       $0x1,%xmm3,%r10
6421  DB  69,137,211                          ; mov           %r10d,%r11d
6422  DB  73,193,234,32                       ; shr           $0x20,%r10
6423  DB  196,193,249,126,222                 ; vmovq         %xmm3,%r14
6424  DB  69,137,247                          ; mov           %r14d,%r15d
6425  DB  73,193,238,32                       ; shr           $0x20,%r14
6426  DB  196,163,121,32,28,8,0               ; vpinsrb       $0x0,(%rax,%r9,1),%xmm0,%xmm3
6427  DB  196,227,97,32,28,24,1               ; vpinsrb       $0x1,(%rax,%rbx,1),%xmm3,%xmm3
6428  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
6429  DB  196,227,97,32,219,2                 ; vpinsrb       $0x2,%ebx,%xmm3,%xmm3
6430  DB  15,182,44,40                        ; movzbl        (%rax,%rbp,1),%ebp
6431  DB  196,227,97,32,221,3                 ; vpinsrb       $0x3,%ebp,%xmm3,%xmm3
6432  DB  196,98,121,49,195                   ; vpmovzxbd     %xmm3,%xmm8
6433  DB  196,163,121,32,28,56,0              ; vpinsrb       $0x0,(%rax,%r15,1),%xmm0,%xmm3
6434  DB  196,163,97,32,28,48,1               ; vpinsrb       $0x1,(%rax,%r14,1),%xmm3,%xmm3
6435  DB  66,15,182,44,24                     ; movzbl        (%rax,%r11,1),%ebp
6436  DB  196,227,97,32,221,2                 ; vpinsrb       $0x2,%ebp,%xmm3,%xmm3
6437  DB  66,15,182,4,16                      ; movzbl        (%rax,%r10,1),%eax
6438  DB  196,227,97,32,216,3                 ; vpinsrb       $0x3,%eax,%xmm3,%xmm3
6439  DB  196,226,121,49,219                  ; vpmovzxbd     %xmm3,%xmm3
6440  DB  196,227,61,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm3
6441  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
6442  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
6443  DB  72,173                              ; lods          %ds:(%rsi),%rax
6444  DB  91                                  ; pop           %rbx
6445  DB  65,92                               ; pop           %r12
6446  DB  65,93                               ; pop           %r13
6447  DB  65,94                               ; pop           %r14
6448  DB  65,95                               ; pop           %r15
6449  DB  93                                  ; pop           %rbp
6450  DB  255,224                             ; jmpq          *%rax
6451
6452PUBLIC _sk_byte_tables_rgb_avx
6453_sk_byte_tables_rgb_avx LABEL PROC
6454  DB  85                                  ; push          %rbp
6455  DB  65,87                               ; push          %r15
6456  DB  65,86                               ; push          %r14
6457  DB  65,85                               ; push          %r13
6458  DB  65,84                               ; push          %r12
6459  DB  83                                  ; push          %rbx
6460  DB  72,173                              ; lods          %ds:(%rsi),%rax
6461  DB  68,139,64,24                        ; mov           0x18(%rax),%r8d
6462  DB  65,255,200                          ; dec           %r8d
6463  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
6464  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6465  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6466  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6467  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
6468  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
6469  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
6470  DB  68,137,197                          ; mov           %r8d,%ebp
6471  DB  77,137,194                          ; mov           %r8,%r10
6472  DB  73,193,234,32                       ; shr           $0x20,%r10
6473  DB  196,193,249,126,192                 ; vmovq         %xmm0,%r8
6474  DB  69,137,195                          ; mov           %r8d,%r11d
6475  DB  77,137,199                          ; mov           %r8,%r15
6476  DB  73,193,239,32                       ; shr           $0x20,%r15
6477  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
6478  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
6479  DB  69,137,198                          ; mov           %r8d,%r14d
6480  DB  77,137,196                          ; mov           %r8,%r12
6481  DB  73,193,236,32                       ; shr           $0x20,%r12
6482  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
6483  DB  65,137,221                          ; mov           %ebx,%r13d
6484  DB  72,193,235,32                       ; shr           $0x20,%rbx
6485  DB  76,139,8                            ; mov           (%rax),%r9
6486  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
6487  DB  196,131,121,32,4,25,0               ; vpinsrb       $0x0,(%r9,%r11,1),%xmm0,%xmm0
6488  DB  196,131,121,32,4,57,1               ; vpinsrb       $0x1,(%r9,%r15,1),%xmm0,%xmm0
6489  DB  65,15,182,44,41                     ; movzbl        (%r9,%rbp,1),%ebp
6490  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
6491  DB  67,15,182,44,17                     ; movzbl        (%r9,%r10,1),%ebp
6492  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
6493  DB  196,98,121,49,200                   ; vpmovzxbd     %xmm0,%xmm9
6494  DB  196,131,121,32,4,41,0               ; vpinsrb       $0x0,(%r9,%r13,1),%xmm0,%xmm0
6495  DB  196,195,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%rbx,1),%xmm0,%xmm0
6496  DB  67,15,182,44,49                     ; movzbl        (%r9,%r14,1),%ebp
6497  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
6498  DB  67,15,182,44,33                     ; movzbl        (%r9,%r12,1),%ebp
6499  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
6500  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
6501  DB  196,227,53,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm0
6502  DB  197,124,91,208                      ; vcvtdq2ps     %ymm0,%ymm10
6503  DB  189,129,128,128,59                  ; mov           $0x3b808081,%ebp
6504  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
6505  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6506  DB  196,99,125,24,200,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm9
6507  DB  196,193,44,89,193                   ; vmulps        %ymm9,%ymm10,%ymm0
6508  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
6509  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
6510  DB  196,227,249,22,205,1                ; vpextrq       $0x1,%xmm1,%rbp
6511  DB  65,137,233                          ; mov           %ebp,%r9d
6512  DB  72,193,237,32                       ; shr           $0x20,%rbp
6513  DB  196,225,249,126,203                 ; vmovq         %xmm1,%rbx
6514  DB  65,137,218                          ; mov           %ebx,%r10d
6515  DB  72,193,235,32                       ; shr           $0x20,%rbx
6516  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6517  DB  196,195,249,22,203,1                ; vpextrq       $0x1,%xmm1,%r11
6518  DB  69,137,222                          ; mov           %r11d,%r14d
6519  DB  73,193,235,32                       ; shr           $0x20,%r11
6520  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
6521  DB  69,137,252                          ; mov           %r15d,%r12d
6522  DB  73,193,239,32                       ; shr           $0x20,%r15
6523  DB  196,131,121,32,12,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm1
6524  DB  196,195,113,32,12,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm1,%xmm1
6525  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
6526  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
6527  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
6528  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
6529  DB  196,98,121,49,209                   ; vpmovzxbd     %xmm1,%xmm10
6530  DB  196,131,121,32,12,32,0              ; vpinsrb       $0x0,(%r8,%r12,1),%xmm0,%xmm1
6531  DB  196,131,113,32,12,56,1              ; vpinsrb       $0x1,(%r8,%r15,1),%xmm1,%xmm1
6532  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
6533  DB  196,227,113,32,205,2                ; vpinsrb       $0x2,%ebp,%xmm1,%xmm1
6534  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
6535  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
6536  DB  196,226,121,49,201                  ; vpmovzxbd     %xmm1,%xmm1
6537  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
6538  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
6539  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
6540  DB  72,139,64,16                        ; mov           0x10(%rax),%rax
6541  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
6542  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
6543  DB  196,227,249,22,213,1                ; vpextrq       $0x1,%xmm2,%rbp
6544  DB  65,137,232                          ; mov           %ebp,%r8d
6545  DB  72,193,237,32                       ; shr           $0x20,%rbp
6546  DB  196,225,249,126,211                 ; vmovq         %xmm2,%rbx
6547  DB  65,137,217                          ; mov           %ebx,%r9d
6548  DB  72,193,235,32                       ; shr           $0x20,%rbx
6549  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6550  DB  196,195,249,22,210,1                ; vpextrq       $0x1,%xmm2,%r10
6551  DB  69,137,211                          ; mov           %r10d,%r11d
6552  DB  73,193,234,32                       ; shr           $0x20,%r10
6553  DB  196,193,249,126,214                 ; vmovq         %xmm2,%r14
6554  DB  69,137,247                          ; mov           %r14d,%r15d
6555  DB  73,193,238,32                       ; shr           $0x20,%r14
6556  DB  196,163,121,32,20,8,0               ; vpinsrb       $0x0,(%rax,%r9,1),%xmm0,%xmm2
6557  DB  196,227,105,32,20,24,1              ; vpinsrb       $0x1,(%rax,%rbx,1),%xmm2,%xmm2
6558  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
6559  DB  196,227,105,32,211,2                ; vpinsrb       $0x2,%ebx,%xmm2,%xmm2
6560  DB  15,182,44,40                        ; movzbl        (%rax,%rbp,1),%ebp
6561  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
6562  DB  196,98,121,49,194                   ; vpmovzxbd     %xmm2,%xmm8
6563  DB  196,163,121,32,20,56,0              ; vpinsrb       $0x0,(%rax,%r15,1),%xmm0,%xmm2
6564  DB  196,163,105,32,20,48,1              ; vpinsrb       $0x1,(%rax,%r14,1),%xmm2,%xmm2
6565  DB  66,15,182,44,24                     ; movzbl        (%rax,%r11,1),%ebp
6566  DB  196,227,105,32,213,2                ; vpinsrb       $0x2,%ebp,%xmm2,%xmm2
6567  DB  66,15,182,4,16                      ; movzbl        (%rax,%r10,1),%eax
6568  DB  196,227,105,32,208,3                ; vpinsrb       $0x3,%eax,%xmm2,%xmm2
6569  DB  196,226,121,49,210                  ; vpmovzxbd     %xmm2,%xmm2
6570  DB  196,227,61,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm8,%ymm2
6571  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
6572  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
6573  DB  72,173                              ; lods          %ds:(%rsi),%rax
6574  DB  91                                  ; pop           %rbx
6575  DB  65,92                               ; pop           %r12
6576  DB  65,93                               ; pop           %r13
6577  DB  65,94                               ; pop           %r14
6578  DB  65,95                               ; pop           %r15
6579  DB  93                                  ; pop           %rbp
6580  DB  255,224                             ; jmpq          *%rax
6581
6582PUBLIC _sk_table_r_avx
6583_sk_table_r_avx LABEL PROC
6584  DB  65,87                               ; push          %r15
6585  DB  65,86                               ; push          %r14
6586  DB  65,84                               ; push          %r12
6587  DB  83                                  ; push          %rbx
6588  DB  72,173                              ; lods          %ds:(%rsi),%rax
6589  DB  76,139,0                            ; mov           (%rax),%r8
6590  DB  139,64,8                            ; mov           0x8(%rax),%eax
6591  DB  255,200                             ; dec           %eax
6592  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6593  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6594  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6595  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6596  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
6597  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
6598  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
6599  DB  65,137,193                          ; mov           %eax,%r9d
6600  DB  72,193,232,32                       ; shr           $0x20,%rax
6601  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
6602  DB  69,137,211                          ; mov           %r10d,%r11d
6603  DB  73,193,234,32                       ; shr           $0x20,%r10
6604  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
6605  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
6606  DB  65,137,222                          ; mov           %ebx,%r14d
6607  DB  72,193,235,32                       ; shr           $0x20,%rbx
6608  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
6609  DB  69,137,252                          ; mov           %r15d,%r12d
6610  DB  73,193,239,32                       ; shr           $0x20,%r15
6611  DB  196,129,122,16,4,160                ; vmovss        (%r8,%r12,4),%xmm0
6612  DB  196,3,121,33,4,184,16               ; vinsertps     $0x10,(%r8,%r15,4),%xmm0,%xmm8
6613  DB  196,129,122,16,4,176                ; vmovss        (%r8,%r14,4),%xmm0
6614  DB  196,99,57,33,192,32                 ; vinsertps     $0x20,%xmm0,%xmm8,%xmm8
6615  DB  196,193,122,16,4,152                ; vmovss        (%r8,%rbx,4),%xmm0
6616  DB  196,99,57,33,192,48                 ; vinsertps     $0x30,%xmm0,%xmm8,%xmm8
6617  DB  196,129,122,16,4,152                ; vmovss        (%r8,%r11,4),%xmm0
6618  DB  196,3,121,33,12,144,16              ; vinsertps     $0x10,(%r8,%r10,4),%xmm0,%xmm9
6619  DB  196,129,122,16,4,136                ; vmovss        (%r8,%r9,4),%xmm0
6620  DB  196,99,49,33,200,32                 ; vinsertps     $0x20,%xmm0,%xmm9,%xmm9
6621  DB  196,193,122,16,4,128                ; vmovss        (%r8,%rax,4),%xmm0
6622  DB  196,227,49,33,192,48                ; vinsertps     $0x30,%xmm0,%xmm9,%xmm0
6623  DB  196,195,125,24,192,1                ; vinsertf128   $0x1,%xmm8,%ymm0,%ymm0
6624  DB  72,173                              ; lods          %ds:(%rsi),%rax
6625  DB  91                                  ; pop           %rbx
6626  DB  65,92                               ; pop           %r12
6627  DB  65,94                               ; pop           %r14
6628  DB  65,95                               ; pop           %r15
6629  DB  255,224                             ; jmpq          *%rax
6630
6631PUBLIC _sk_table_g_avx
6632_sk_table_g_avx LABEL PROC
6633  DB  65,87                               ; push          %r15
6634  DB  65,86                               ; push          %r14
6635  DB  65,84                               ; push          %r12
6636  DB  83                                  ; push          %rbx
6637  DB  72,173                              ; lods          %ds:(%rsi),%rax
6638  DB  76,139,0                            ; mov           (%rax),%r8
6639  DB  139,64,8                            ; mov           0x8(%rax),%eax
6640  DB  255,200                             ; dec           %eax
6641  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6642  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6643  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6644  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6645  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
6646  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
6647  DB  196,227,249,22,200,1                ; vpextrq       $0x1,%xmm1,%rax
6648  DB  65,137,193                          ; mov           %eax,%r9d
6649  DB  72,193,232,32                       ; shr           $0x20,%rax
6650  DB  196,193,249,126,202                 ; vmovq         %xmm1,%r10
6651  DB  69,137,211                          ; mov           %r10d,%r11d
6652  DB  73,193,234,32                       ; shr           $0x20,%r10
6653  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6654  DB  196,227,249,22,203,1                ; vpextrq       $0x1,%xmm1,%rbx
6655  DB  65,137,222                          ; mov           %ebx,%r14d
6656  DB  72,193,235,32                       ; shr           $0x20,%rbx
6657  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
6658  DB  69,137,252                          ; mov           %r15d,%r12d
6659  DB  73,193,239,32                       ; shr           $0x20,%r15
6660  DB  196,129,122,16,12,160               ; vmovss        (%r8,%r12,4),%xmm1
6661  DB  196,3,113,33,4,184,16               ; vinsertps     $0x10,(%r8,%r15,4),%xmm1,%xmm8
6662  DB  196,129,122,16,12,176               ; vmovss        (%r8,%r14,4),%xmm1
6663  DB  196,99,57,33,193,32                 ; vinsertps     $0x20,%xmm1,%xmm8,%xmm8
6664  DB  196,193,122,16,12,152               ; vmovss        (%r8,%rbx,4),%xmm1
6665  DB  196,99,57,33,193,48                 ; vinsertps     $0x30,%xmm1,%xmm8,%xmm8
6666  DB  196,129,122,16,12,152               ; vmovss        (%r8,%r11,4),%xmm1
6667  DB  196,3,113,33,12,144,16              ; vinsertps     $0x10,(%r8,%r10,4),%xmm1,%xmm9
6668  DB  196,129,122,16,12,136               ; vmovss        (%r8,%r9,4),%xmm1
6669  DB  196,99,49,33,201,32                 ; vinsertps     $0x20,%xmm1,%xmm9,%xmm9
6670  DB  196,193,122,16,12,128               ; vmovss        (%r8,%rax,4),%xmm1
6671  DB  196,227,49,33,201,48                ; vinsertps     $0x30,%xmm1,%xmm9,%xmm1
6672  DB  196,195,117,24,200,1                ; vinsertf128   $0x1,%xmm8,%ymm1,%ymm1
6673  DB  72,173                              ; lods          %ds:(%rsi),%rax
6674  DB  91                                  ; pop           %rbx
6675  DB  65,92                               ; pop           %r12
6676  DB  65,94                               ; pop           %r14
6677  DB  65,95                               ; pop           %r15
6678  DB  255,224                             ; jmpq          *%rax
6679
6680PUBLIC _sk_table_b_avx
6681_sk_table_b_avx LABEL PROC
6682  DB  65,87                               ; push          %r15
6683  DB  65,86                               ; push          %r14
6684  DB  65,84                               ; push          %r12
6685  DB  83                                  ; push          %rbx
6686  DB  72,173                              ; lods          %ds:(%rsi),%rax
6687  DB  76,139,0                            ; mov           (%rax),%r8
6688  DB  139,64,8                            ; mov           0x8(%rax),%eax
6689  DB  255,200                             ; dec           %eax
6690  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6691  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6692  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6693  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6694  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
6695  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
6696  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
6697  DB  65,137,193                          ; mov           %eax,%r9d
6698  DB  72,193,232,32                       ; shr           $0x20,%rax
6699  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
6700  DB  69,137,211                          ; mov           %r10d,%r11d
6701  DB  73,193,234,32                       ; shr           $0x20,%r10
6702  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6703  DB  196,227,249,22,211,1                ; vpextrq       $0x1,%xmm2,%rbx
6704  DB  65,137,222                          ; mov           %ebx,%r14d
6705  DB  72,193,235,32                       ; shr           $0x20,%rbx
6706  DB  196,193,249,126,215                 ; vmovq         %xmm2,%r15
6707  DB  69,137,252                          ; mov           %r15d,%r12d
6708  DB  73,193,239,32                       ; shr           $0x20,%r15
6709  DB  196,129,122,16,20,160               ; vmovss        (%r8,%r12,4),%xmm2
6710  DB  196,3,105,33,4,184,16               ; vinsertps     $0x10,(%r8,%r15,4),%xmm2,%xmm8
6711  DB  196,129,122,16,20,176               ; vmovss        (%r8,%r14,4),%xmm2
6712  DB  196,99,57,33,194,32                 ; vinsertps     $0x20,%xmm2,%xmm8,%xmm8
6713  DB  196,193,122,16,20,152               ; vmovss        (%r8,%rbx,4),%xmm2
6714  DB  196,99,57,33,194,48                 ; vinsertps     $0x30,%xmm2,%xmm8,%xmm8
6715  DB  196,129,122,16,20,152               ; vmovss        (%r8,%r11,4),%xmm2
6716  DB  196,3,105,33,12,144,16              ; vinsertps     $0x10,(%r8,%r10,4),%xmm2,%xmm9
6717  DB  196,129,122,16,20,136               ; vmovss        (%r8,%r9,4),%xmm2
6718  DB  196,99,49,33,202,32                 ; vinsertps     $0x20,%xmm2,%xmm9,%xmm9
6719  DB  196,193,122,16,20,128               ; vmovss        (%r8,%rax,4),%xmm2
6720  DB  196,227,49,33,210,48                ; vinsertps     $0x30,%xmm2,%xmm9,%xmm2
6721  DB  196,195,109,24,208,1                ; vinsertf128   $0x1,%xmm8,%ymm2,%ymm2
6722  DB  72,173                              ; lods          %ds:(%rsi),%rax
6723  DB  91                                  ; pop           %rbx
6724  DB  65,92                               ; pop           %r12
6725  DB  65,94                               ; pop           %r14
6726  DB  65,95                               ; pop           %r15
6727  DB  255,224                             ; jmpq          *%rax
6728
6729PUBLIC _sk_table_a_avx
6730_sk_table_a_avx LABEL PROC
6731  DB  65,87                               ; push          %r15
6732  DB  65,86                               ; push          %r14
6733  DB  65,84                               ; push          %r12
6734  DB  83                                  ; push          %rbx
6735  DB  72,173                              ; lods          %ds:(%rsi),%rax
6736  DB  76,139,0                            ; mov           (%rax),%r8
6737  DB  139,64,8                            ; mov           0x8(%rax),%eax
6738  DB  255,200                             ; dec           %eax
6739  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6740  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6741  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6742  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6743  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
6744  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
6745  DB  196,227,249,22,216,1                ; vpextrq       $0x1,%xmm3,%rax
6746  DB  65,137,193                          ; mov           %eax,%r9d
6747  DB  72,193,232,32                       ; shr           $0x20,%rax
6748  DB  196,193,249,126,218                 ; vmovq         %xmm3,%r10
6749  DB  69,137,211                          ; mov           %r10d,%r11d
6750  DB  73,193,234,32                       ; shr           $0x20,%r10
6751  DB  196,227,125,25,219,1                ; vextractf128  $0x1,%ymm3,%xmm3
6752  DB  196,227,249,22,219,1                ; vpextrq       $0x1,%xmm3,%rbx
6753  DB  65,137,222                          ; mov           %ebx,%r14d
6754  DB  72,193,235,32                       ; shr           $0x20,%rbx
6755  DB  196,193,249,126,223                 ; vmovq         %xmm3,%r15
6756  DB  69,137,252                          ; mov           %r15d,%r12d
6757  DB  73,193,239,32                       ; shr           $0x20,%r15
6758  DB  196,129,122,16,28,160               ; vmovss        (%r8,%r12,4),%xmm3
6759  DB  196,3,97,33,4,184,16                ; vinsertps     $0x10,(%r8,%r15,4),%xmm3,%xmm8
6760  DB  196,129,122,16,28,176               ; vmovss        (%r8,%r14,4),%xmm3
6761  DB  196,99,57,33,195,32                 ; vinsertps     $0x20,%xmm3,%xmm8,%xmm8
6762  DB  196,193,122,16,28,152               ; vmovss        (%r8,%rbx,4),%xmm3
6763  DB  196,99,57,33,195,48                 ; vinsertps     $0x30,%xmm3,%xmm8,%xmm8
6764  DB  196,129,122,16,28,152               ; vmovss        (%r8,%r11,4),%xmm3
6765  DB  196,3,97,33,12,144,16               ; vinsertps     $0x10,(%r8,%r10,4),%xmm3,%xmm9
6766  DB  196,129,122,16,28,136               ; vmovss        (%r8,%r9,4),%xmm3
6767  DB  196,99,49,33,203,32                 ; vinsertps     $0x20,%xmm3,%xmm9,%xmm9
6768  DB  196,193,122,16,28,128               ; vmovss        (%r8,%rax,4),%xmm3
6769  DB  196,227,49,33,219,48                ; vinsertps     $0x30,%xmm3,%xmm9,%xmm3
6770  DB  196,195,101,24,216,1                ; vinsertf128   $0x1,%xmm8,%ymm3,%ymm3
6771  DB  72,173                              ; lods          %ds:(%rsi),%rax
6772  DB  91                                  ; pop           %rbx
6773  DB  65,92                               ; pop           %r12
6774  DB  65,94                               ; pop           %r14
6775  DB  65,95                               ; pop           %r15
6776  DB  255,224                             ; jmpq          *%rax
6777
6778PUBLIC _sk_parametric_r_avx
6779_sk_parametric_r_avx LABEL PROC
6780  DB  72,173                              ; lods          %ds:(%rsi),%rax
6781  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
6782  DB  196,65,124,194,192,2                ; vcmpleps      %ymm8,%ymm0,%ymm8
6783  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
6784  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
6785  DB  197,52,89,200                       ; vmulps        %ymm0,%ymm9,%ymm9
6786  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
6787  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
6788  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
6789  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
6790  DB  196,65,124,88,211                   ; vaddps        %ymm11,%ymm0,%ymm10
6791  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
6792  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
6793  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
6794  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6795  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6796  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6797  DB  197,36,89,216                       ; vmulps        %ymm0,%ymm11,%ymm11
6798  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
6799  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6800  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
6801  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6802  DB  196,65,124,84,210                   ; vandps        %ymm10,%ymm0,%ymm10
6803  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
6804  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6805  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
6806  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6807  DB  197,44,86,208                       ; vorps         %ymm0,%ymm10,%ymm10
6808  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
6809  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6810  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6811  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6812  DB  197,36,92,216                       ; vsubps        %ymm0,%ymm11,%ymm11
6813  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
6814  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6815  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6816  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6817  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
6818  DB  197,36,92,216                       ; vsubps        %ymm0,%ymm11,%ymm11
6819  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
6820  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6821  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6822  DB  196,99,125,24,232,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm13
6823  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
6824  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6825  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6826  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6827  DB  197,172,88,192                      ; vaddps        %ymm0,%ymm10,%ymm0
6828  DB  197,148,94,192                      ; vdivps        %ymm0,%ymm13,%ymm0
6829  DB  197,164,92,192                      ; vsubps        %ymm0,%ymm11,%ymm0
6830  DB  197,28,89,216                       ; vmulps        %ymm0,%ymm12,%ymm11
6831  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
6832  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
6833  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
6834  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6835  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6836  DB  196,99,125,24,224,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm12
6837  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
6838  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6839  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6840  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6841  DB  196,65,124,88,219                   ; vaddps        %ymm11,%ymm0,%ymm11
6842  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
6843  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6844  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6845  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6846  DB  196,193,124,89,194                  ; vmulps        %ymm10,%ymm0,%ymm0
6847  DB  197,36,92,216                       ; vsubps        %ymm0,%ymm11,%ymm11
6848  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
6849  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6850  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6851  DB  196,99,125,24,232,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm13
6852  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
6853  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6854  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6855  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6856  DB  196,193,124,92,194                  ; vsubps        %ymm10,%ymm0,%ymm0
6857  DB  197,148,94,192                      ; vdivps        %ymm0,%ymm13,%ymm0
6858  DB  197,164,88,192                      ; vaddps        %ymm0,%ymm11,%ymm0
6859  DB  197,156,89,192                      ; vmulps        %ymm0,%ymm12,%ymm0
6860  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
6861  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
6862  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
6863  DB  196,195,125,74,193,128              ; vblendvps     %ymm8,%ymm9,%ymm0,%ymm0
6864  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
6865  DB  196,65,124,95,192                   ; vmaxps        %ymm8,%ymm0,%ymm8
6866  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
6867  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
6868  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6869  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6870  DB  197,188,93,192                      ; vminps        %ymm0,%ymm8,%ymm0
6871  DB  72,173                              ; lods          %ds:(%rsi),%rax
6872  DB  255,224                             ; jmpq          *%rax
6873
6874PUBLIC _sk_parametric_g_avx
6875_sk_parametric_g_avx LABEL PROC
6876  DB  72,173                              ; lods          %ds:(%rsi),%rax
6877  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
6878  DB  196,65,116,194,192,2                ; vcmpleps      %ymm8,%ymm1,%ymm8
6879  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
6880  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
6881  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
6882  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
6883  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
6884  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
6885  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
6886  DB  196,65,116,88,211                   ; vaddps        %ymm11,%ymm1,%ymm10
6887  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
6888  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
6889  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
6890  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6891  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6892  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6893  DB  197,36,89,217                       ; vmulps        %ymm1,%ymm11,%ymm11
6894  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
6895  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6896  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
6897  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6898  DB  196,65,116,84,210                   ; vandps        %ymm10,%ymm1,%ymm10
6899  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
6900  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6901  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
6902  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6903  DB  197,44,86,209                       ; vorps         %ymm1,%ymm10,%ymm10
6904  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
6905  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6906  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6907  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6908  DB  197,36,92,217                       ; vsubps        %ymm1,%ymm11,%ymm11
6909  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
6910  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6911  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6912  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6913  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
6914  DB  197,36,92,217                       ; vsubps        %ymm1,%ymm11,%ymm11
6915  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
6916  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6917  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6918  DB  196,99,117,24,233,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm13
6919  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
6920  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6921  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6922  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6923  DB  197,172,88,201                      ; vaddps        %ymm1,%ymm10,%ymm1
6924  DB  197,148,94,201                      ; vdivps        %ymm1,%ymm13,%ymm1
6925  DB  197,164,92,201                      ; vsubps        %ymm1,%ymm11,%ymm1
6926  DB  197,28,89,217                       ; vmulps        %ymm1,%ymm12,%ymm11
6927  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
6928  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
6929  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
6930  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6931  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6932  DB  196,99,117,24,225,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm12
6933  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
6934  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6935  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6936  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6937  DB  196,65,116,88,219                   ; vaddps        %ymm11,%ymm1,%ymm11
6938  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
6939  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6940  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6941  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6942  DB  196,193,116,89,202                  ; vmulps        %ymm10,%ymm1,%ymm1
6943  DB  197,36,92,217                       ; vsubps        %ymm1,%ymm11,%ymm11
6944  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
6945  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6946  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6947  DB  196,99,117,24,233,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm13
6948  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
6949  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6950  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6951  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6952  DB  196,193,116,92,202                  ; vsubps        %ymm10,%ymm1,%ymm1
6953  DB  197,148,94,201                      ; vdivps        %ymm1,%ymm13,%ymm1
6954  DB  197,164,88,201                      ; vaddps        %ymm1,%ymm11,%ymm1
6955  DB  197,156,89,201                      ; vmulps        %ymm1,%ymm12,%ymm1
6956  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
6957  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
6958  DB  196,193,116,88,202                  ; vaddps        %ymm10,%ymm1,%ymm1
6959  DB  196,195,117,74,201,128              ; vblendvps     %ymm8,%ymm9,%ymm1,%ymm1
6960  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
6961  DB  196,65,116,95,192                   ; vmaxps        %ymm8,%ymm1,%ymm8
6962  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
6963  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
6964  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6965  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6966  DB  197,188,93,201                      ; vminps        %ymm1,%ymm8,%ymm1
6967  DB  72,173                              ; lods          %ds:(%rsi),%rax
6968  DB  255,224                             ; jmpq          *%rax
6969
6970PUBLIC _sk_parametric_b_avx
6971_sk_parametric_b_avx LABEL PROC
6972  DB  72,173                              ; lods          %ds:(%rsi),%rax
6973  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
6974  DB  196,65,108,194,192,2                ; vcmpleps      %ymm8,%ymm2,%ymm8
6975  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
6976  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
6977  DB  197,52,89,202                       ; vmulps        %ymm2,%ymm9,%ymm9
6978  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
6979  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
6980  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
6981  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
6982  DB  196,65,108,88,211                   ; vaddps        %ymm11,%ymm2,%ymm10
6983  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
6984  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
6985  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
6986  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6987  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6988  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6989  DB  197,36,89,218                       ; vmulps        %ymm2,%ymm11,%ymm11
6990  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
6991  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6992  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
6993  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6994  DB  196,65,108,84,210                   ; vandps        %ymm10,%ymm2,%ymm10
6995  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
6996  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6997  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
6998  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6999  DB  197,44,86,210                       ; vorps         %ymm2,%ymm10,%ymm10
7000  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
7001  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
7002  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7003  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7004  DB  197,36,92,218                       ; vsubps        %ymm2,%ymm11,%ymm11
7005  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
7006  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
7007  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7008  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7009  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
7010  DB  197,36,92,218                       ; vsubps        %ymm2,%ymm11,%ymm11
7011  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
7012  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
7013  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7014  DB  196,99,109,24,234,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm13
7015  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
7016  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
7017  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7018  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7019  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
7020  DB  197,148,94,210                      ; vdivps        %ymm2,%ymm13,%ymm2
7021  DB  197,164,92,210                      ; vsubps        %ymm2,%ymm11,%ymm2
7022  DB  197,28,89,218                       ; vmulps        %ymm2,%ymm12,%ymm11
7023  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
7024  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
7025  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
7026  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
7027  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7028  DB  196,99,109,24,226,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm12
7029  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
7030  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
7031  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7032  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7033  DB  196,65,108,88,219                   ; vaddps        %ymm11,%ymm2,%ymm11
7034  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
7035  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
7036  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7037  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7038  DB  196,193,108,89,210                  ; vmulps        %ymm10,%ymm2,%ymm2
7039  DB  197,36,92,218                       ; vsubps        %ymm2,%ymm11,%ymm11
7040  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
7041  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
7042  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7043  DB  196,99,109,24,234,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm13
7044  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
7045  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
7046  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7047  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7048  DB  196,193,108,92,210                  ; vsubps        %ymm10,%ymm2,%ymm2
7049  DB  197,148,94,210                      ; vdivps        %ymm2,%ymm13,%ymm2
7050  DB  197,164,88,210                      ; vaddps        %ymm2,%ymm11,%ymm2
7051  DB  197,156,89,210                      ; vmulps        %ymm2,%ymm12,%ymm2
7052  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
7053  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
7054  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
7055  DB  196,195,109,74,209,128              ; vblendvps     %ymm8,%ymm9,%ymm2,%ymm2
7056  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
7057  DB  196,65,108,95,192                   ; vmaxps        %ymm8,%ymm2,%ymm8
7058  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7059  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7060  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7061  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7062  DB  197,188,93,210                      ; vminps        %ymm2,%ymm8,%ymm2
7063  DB  72,173                              ; lods          %ds:(%rsi),%rax
7064  DB  255,224                             ; jmpq          *%rax
7065
7066PUBLIC _sk_parametric_a_avx
7067_sk_parametric_a_avx LABEL PROC
7068  DB  72,173                              ; lods          %ds:(%rsi),%rax
7069  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
7070  DB  196,65,100,194,192,2                ; vcmpleps      %ymm8,%ymm3,%ymm8
7071  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
7072  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
7073  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
7074  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
7075  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
7076  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
7077  DB  197,172,89,219                      ; vmulps        %ymm3,%ymm10,%ymm3
7078  DB  196,65,100,88,211                   ; vaddps        %ymm11,%ymm3,%ymm10
7079  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
7080  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
7081  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
7082  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7083  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7084  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7085  DB  197,36,89,219                       ; vmulps        %ymm3,%ymm11,%ymm11
7086  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
7087  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7088  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7089  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7090  DB  196,65,100,84,210                   ; vandps        %ymm10,%ymm3,%ymm10
7091  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
7092  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7093  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7094  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7095  DB  197,44,86,211                       ; vorps         %ymm3,%ymm10,%ymm10
7096  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
7097  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7098  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7099  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7100  DB  197,36,92,219                       ; vsubps        %ymm3,%ymm11,%ymm11
7101  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
7102  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7103  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7104  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7105  DB  197,172,89,219                      ; vmulps        %ymm3,%ymm10,%ymm3
7106  DB  197,36,92,219                       ; vsubps        %ymm3,%ymm11,%ymm11
7107  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
7108  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7109  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7110  DB  196,99,101,24,235,1                 ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm13
7111  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
7112  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7113  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7114  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7115  DB  197,172,88,219                      ; vaddps        %ymm3,%ymm10,%ymm3
7116  DB  197,148,94,219                      ; vdivps        %ymm3,%ymm13,%ymm3
7117  DB  197,164,92,219                      ; vsubps        %ymm3,%ymm11,%ymm3
7118  DB  197,28,89,219                       ; vmulps        %ymm3,%ymm12,%ymm11
7119  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
7120  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
7121  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
7122  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7123  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7124  DB  196,99,101,24,227,1                 ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm12
7125  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
7126  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7127  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7128  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7129  DB  196,65,100,88,219                   ; vaddps        %ymm11,%ymm3,%ymm11
7130  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
7131  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7132  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7133  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7134  DB  196,193,100,89,218                  ; vmulps        %ymm10,%ymm3,%ymm3
7135  DB  197,36,92,219                       ; vsubps        %ymm3,%ymm11,%ymm11
7136  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
7137  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7138  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7139  DB  196,99,101,24,235,1                 ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm13
7140  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
7141  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7142  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7143  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7144  DB  196,193,100,92,218                  ; vsubps        %ymm10,%ymm3,%ymm3
7145  DB  197,148,94,219                      ; vdivps        %ymm3,%ymm13,%ymm3
7146  DB  197,164,88,219                      ; vaddps        %ymm3,%ymm11,%ymm3
7147  DB  197,156,89,219                      ; vmulps        %ymm3,%ymm12,%ymm3
7148  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
7149  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
7150  DB  196,193,100,88,218                  ; vaddps        %ymm10,%ymm3,%ymm3
7151  DB  196,195,101,74,217,128              ; vblendvps     %ymm8,%ymm9,%ymm3,%ymm3
7152  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
7153  DB  196,65,100,95,192                   ; vmaxps        %ymm8,%ymm3,%ymm8
7154  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7155  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7156  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7157  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7158  DB  197,188,93,219                      ; vminps        %ymm3,%ymm8,%ymm3
7159  DB  72,173                              ; lods          %ds:(%rsi),%rax
7160  DB  255,224                             ; jmpq          *%rax
7161
7162PUBLIC _sk_load_a8_avx
7163_sk_load_a8_avx LABEL PROC
7164  DB  73,137,200                          ; mov           %rcx,%r8
7165  DB  72,173                              ; lods          %ds:(%rsi),%rax
7166  DB  72,139,0                            ; mov           (%rax),%rax
7167  DB  72,1,248                            ; add           %rdi,%rax
7168  DB  77,133,192                          ; test          %r8,%r8
7169  DB  117,74                              ; jne           3146 <_sk_load_a8_avx+0x5a>
7170  DB  197,250,126,0                       ; vmovq         (%rax),%xmm0
7171  DB  196,226,121,49,200                  ; vpmovzxbd     %xmm0,%xmm1
7172  DB  196,227,121,4,192,229               ; vpermilps     $0xe5,%xmm0,%xmm0
7173  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7174  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
7175  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7176  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7177  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7178  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7179  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7180  DB  197,252,89,217                      ; vmulps        %ymm1,%ymm0,%ymm3
7181  DB  72,173                              ; lods          %ds:(%rsi),%rax
7182  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
7183  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
7184  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
7185  DB  76,137,193                          ; mov           %r8,%rcx
7186  DB  255,224                             ; jmpq          *%rax
7187  DB  49,201                              ; xor           %ecx,%ecx
7188  DB  77,137,194                          ; mov           %r8,%r10
7189  DB  69,49,201                           ; xor           %r9d,%r9d
7190  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
7191  DB  72,255,192                          ; inc           %rax
7192  DB  73,211,227                          ; shl           %cl,%r11
7193  DB  77,9,217                            ; or            %r11,%r9
7194  DB  72,131,193,8                        ; add           $0x8,%rcx
7195  DB  73,255,202                          ; dec           %r10
7196  DB  117,234                             ; jne           314e <_sk_load_a8_avx+0x62>
7197  DB  196,193,249,110,193                 ; vmovq         %r9,%xmm0
7198  DB  235,149                             ; jmp           3100 <_sk_load_a8_avx+0x14>
7199
7200PUBLIC _sk_gather_a8_avx
7201_sk_gather_a8_avx LABEL PROC
7202  DB  65,87                               ; push          %r15
7203  DB  65,86                               ; push          %r14
7204  DB  65,84                               ; push          %r12
7205  DB  83                                  ; push          %rbx
7206  DB  72,173                              ; lods          %ds:(%rsi),%rax
7207  DB  76,139,0                            ; mov           (%rax),%r8
7208  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7209  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7210  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7211  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7212  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7213  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7214  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7215  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7216  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7217  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7218  DB  65,137,193                          ; mov           %eax,%r9d
7219  DB  72,193,232,32                       ; shr           $0x20,%rax
7220  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
7221  DB  69,137,211                          ; mov           %r10d,%r11d
7222  DB  73,193,234,32                       ; shr           $0x20,%r10
7223  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7224  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7225  DB  65,137,222                          ; mov           %ebx,%r14d
7226  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
7227  DB  69,137,252                          ; mov           %r15d,%r12d
7228  DB  73,193,239,32                       ; shr           $0x20,%r15
7229  DB  72,193,235,32                       ; shr           $0x20,%rbx
7230  DB  196,131,121,32,4,48,0               ; vpinsrb       $0x0,(%r8,%r14,1),%xmm0,%xmm0
7231  DB  196,195,121,32,4,24,1               ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm0,%xmm0
7232  DB  67,15,182,28,32                     ; movzbl        (%r8,%r12,1),%ebx
7233  DB  196,227,121,32,195,2                ; vpinsrb       $0x2,%ebx,%xmm0,%xmm0
7234  DB  67,15,182,28,56                     ; movzbl        (%r8,%r15,1),%ebx
7235  DB  196,227,121,32,195,3                ; vpinsrb       $0x3,%ebx,%xmm0,%xmm0
7236  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7237  DB  196,131,121,32,12,24,0              ; vpinsrb       $0x0,(%r8,%r11,1),%xmm0,%xmm1
7238  DB  196,131,113,32,12,16,1              ; vpinsrb       $0x1,(%r8,%r10,1),%xmm1,%xmm1
7239  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
7240  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
7241  DB  65,15,182,4,0                       ; movzbl        (%r8,%rax,1),%eax
7242  DB  196,227,113,32,200,3                ; vpinsrb       $0x3,%eax,%xmm1,%xmm1
7243  DB  196,226,121,49,201                  ; vpmovzxbd     %xmm1,%xmm1
7244  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
7245  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7246  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7247  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7248  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7249  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7250  DB  197,252,89,217                      ; vmulps        %ymm1,%ymm0,%ymm3
7251  DB  72,173                              ; lods          %ds:(%rsi),%rax
7252  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
7253  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
7254  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
7255  DB  91                                  ; pop           %rbx
7256  DB  65,92                               ; pop           %r12
7257  DB  65,94                               ; pop           %r14
7258  DB  65,95                               ; pop           %r15
7259  DB  255,224                             ; jmpq          *%rax
7260
7261PUBLIC _sk_store_a8_avx
7262_sk_store_a8_avx LABEL PROC
7263  DB  72,173                              ; lods          %ds:(%rsi),%rax
7264  DB  76,139,8                            ; mov           (%rax),%r9
7265  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
7266  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
7267  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
7268  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
7269  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
7270  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
7271  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
7272  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
7273  DB  196,65,57,103,192                   ; vpackuswb     %xmm8,%xmm8,%xmm8
7274  DB  72,133,201                          ; test          %rcx,%rcx
7275  DB  117,10                              ; jne           32a7 <_sk_store_a8_avx+0x42>
7276  DB  196,65,123,17,4,57                  ; vmovsd        %xmm8,(%r9,%rdi,1)
7277  DB  72,173                              ; lods          %ds:(%rsi),%rax
7278  DB  255,224                             ; jmpq          *%rax
7279  DB  65,137,200                          ; mov           %ecx,%r8d
7280  DB  65,128,224,7                        ; and           $0x7,%r8b
7281  DB  65,254,200                          ; dec           %r8b
7282  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7283  DB  119,236                             ; ja            32a3 <_sk_store_a8_avx+0x3e>
7284  DB  196,66,121,48,192                   ; vpmovzxbw     %xmm8,%xmm8
7285  DB  65,15,182,192                       ; movzbl        %r8b,%eax
7286  DB  76,141,5,69,0,0,0                   ; lea           0x45(%rip),%r8        # 330c <_sk_store_a8_avx+0xa7>
7287  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
7288  DB  76,1,192                            ; add           %r8,%rax
7289  DB  255,224                             ; jmpq          *%rax
7290  DB  196,67,121,20,68,57,6,12            ; vpextrb       $0xc,%xmm8,0x6(%r9,%rdi,1)
7291  DB  196,67,121,20,68,57,5,10            ; vpextrb       $0xa,%xmm8,0x5(%r9,%rdi,1)
7292  DB  196,67,121,20,68,57,4,8             ; vpextrb       $0x8,%xmm8,0x4(%r9,%rdi,1)
7293  DB  196,67,121,20,68,57,3,6             ; vpextrb       $0x6,%xmm8,0x3(%r9,%rdi,1)
7294  DB  196,67,121,20,68,57,2,4             ; vpextrb       $0x4,%xmm8,0x2(%r9,%rdi,1)
7295  DB  196,67,121,20,68,57,1,2             ; vpextrb       $0x2,%xmm8,0x1(%r9,%rdi,1)
7296  DB  196,67,121,20,4,57,0                ; vpextrb       $0x0,%xmm8,(%r9,%rdi,1)
7297  DB  235,154                             ; jmp           32a3 <_sk_store_a8_avx+0x3e>
7298  DB  15,31,0                             ; nopl          (%rax)
7299  DB  244                                 ; hlt
7300  DB  255                                 ; (bad)
7301  DB  255                                 ; (bad)
7302  DB  255                                 ; (bad)
7303  DB  236                                 ; in            (%dx),%al
7304  DB  255                                 ; (bad)
7305  DB  255                                 ; (bad)
7306  DB  255,228                             ; jmpq          *%rsp
7307  DB  255                                 ; (bad)
7308  DB  255                                 ; (bad)
7309  DB  255                                 ; (bad)
7310  DB  220,255                             ; fdivr         %st,%st(7)
7311  DB  255                                 ; (bad)
7312  DB  255,212                             ; callq         *%rsp
7313  DB  255                                 ; (bad)
7314  DB  255                                 ; (bad)
7315  DB  255,204                             ; dec           %esp
7316  DB  255                                 ; (bad)
7317  DB  255                                 ; (bad)
7318  DB  255,196                             ; inc           %esp
7319  DB  255                                 ; (bad)
7320  DB  255                                 ; (bad)
7321  DB  255                                 ; .byte         0xff
7322
7323PUBLIC _sk_load_g8_avx
7324_sk_load_g8_avx LABEL PROC
7325  DB  73,137,200                          ; mov           %rcx,%r8
7326  DB  72,173                              ; lods          %ds:(%rsi),%rax
7327  DB  72,139,0                            ; mov           (%rax),%rax
7328  DB  72,1,248                            ; add           %rdi,%rax
7329  DB  77,133,192                          ; test          %r8,%r8
7330  DB  117,91                              ; jne           3393 <_sk_load_g8_avx+0x6b>
7331  DB  197,250,126,0                       ; vmovq         (%rax),%xmm0
7332  DB  196,226,121,49,200                  ; vpmovzxbd     %xmm0,%xmm1
7333  DB  196,227,121,4,192,229               ; vpermilps     $0xe5,%xmm0,%xmm0
7334  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7335  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
7336  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7337  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7338  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7339  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7340  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7341  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7342  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7343  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7344  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7345  DB  196,227,117,24,217,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm3
7346  DB  72,173                              ; lods          %ds:(%rsi),%rax
7347  DB  76,137,193                          ; mov           %r8,%rcx
7348  DB  197,252,40,200                      ; vmovaps       %ymm0,%ymm1
7349  DB  197,252,40,208                      ; vmovaps       %ymm0,%ymm2
7350  DB  255,224                             ; jmpq          *%rax
7351  DB  49,201                              ; xor           %ecx,%ecx
7352  DB  77,137,194                          ; mov           %r8,%r10
7353  DB  69,49,201                           ; xor           %r9d,%r9d
7354  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
7355  DB  72,255,192                          ; inc           %rax
7356  DB  73,211,227                          ; shl           %cl,%r11
7357  DB  77,9,217                            ; or            %r11,%r9
7358  DB  72,131,193,8                        ; add           $0x8,%rcx
7359  DB  73,255,202                          ; dec           %r10
7360  DB  117,234                             ; jne           339b <_sk_load_g8_avx+0x73>
7361  DB  196,193,249,110,193                 ; vmovq         %r9,%xmm0
7362  DB  235,132                             ; jmp           333c <_sk_load_g8_avx+0x14>
7363
7364PUBLIC _sk_gather_g8_avx
7365_sk_gather_g8_avx LABEL PROC
7366  DB  65,87                               ; push          %r15
7367  DB  65,86                               ; push          %r14
7368  DB  65,84                               ; push          %r12
7369  DB  83                                  ; push          %rbx
7370  DB  72,173                              ; lods          %ds:(%rsi),%rax
7371  DB  76,139,0                            ; mov           (%rax),%r8
7372  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7373  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7374  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7375  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7376  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7377  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7378  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7379  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7380  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7381  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7382  DB  65,137,193                          ; mov           %eax,%r9d
7383  DB  72,193,232,32                       ; shr           $0x20,%rax
7384  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
7385  DB  69,137,211                          ; mov           %r10d,%r11d
7386  DB  73,193,234,32                       ; shr           $0x20,%r10
7387  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7388  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7389  DB  65,137,222                          ; mov           %ebx,%r14d
7390  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
7391  DB  69,137,252                          ; mov           %r15d,%r12d
7392  DB  73,193,239,32                       ; shr           $0x20,%r15
7393  DB  72,193,235,32                       ; shr           $0x20,%rbx
7394  DB  196,131,121,32,4,48,0               ; vpinsrb       $0x0,(%r8,%r14,1),%xmm0,%xmm0
7395  DB  196,195,121,32,4,24,1               ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm0,%xmm0
7396  DB  67,15,182,28,32                     ; movzbl        (%r8,%r12,1),%ebx
7397  DB  196,227,121,32,195,2                ; vpinsrb       $0x2,%ebx,%xmm0,%xmm0
7398  DB  67,15,182,28,56                     ; movzbl        (%r8,%r15,1),%ebx
7399  DB  196,227,121,32,195,3                ; vpinsrb       $0x3,%ebx,%xmm0,%xmm0
7400  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7401  DB  196,131,121,32,12,24,0              ; vpinsrb       $0x0,(%r8,%r11,1),%xmm0,%xmm1
7402  DB  196,131,113,32,12,16,1              ; vpinsrb       $0x1,(%r8,%r10,1),%xmm1,%xmm1
7403  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
7404  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
7405  DB  65,15,182,4,0                       ; movzbl        (%r8,%rax,1),%eax
7406  DB  196,227,113,32,200,3                ; vpinsrb       $0x3,%eax,%xmm1,%xmm1
7407  DB  196,226,121,49,201                  ; vpmovzxbd     %xmm1,%xmm1
7408  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
7409  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7410  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7411  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7412  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7413  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7414  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7415  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7416  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7417  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7418  DB  196,227,117,24,217,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm3
7419  DB  72,173                              ; lods          %ds:(%rsi),%rax
7420  DB  197,252,40,200                      ; vmovaps       %ymm0,%ymm1
7421  DB  197,252,40,208                      ; vmovaps       %ymm0,%ymm2
7422  DB  91                                  ; pop           %rbx
7423  DB  65,92                               ; pop           %r12
7424  DB  65,94                               ; pop           %r14
7425  DB  65,95                               ; pop           %r15
7426  DB  255,224                             ; jmpq          *%rax
7427
7428PUBLIC _sk_gather_i8_avx
7429_sk_gather_i8_avx LABEL PROC
7430  DB  72,173                              ; lods          %ds:(%rsi),%rax
7431  DB  73,137,192                          ; mov           %rax,%r8
7432  DB  77,133,192                          ; test          %r8,%r8
7433  DB  116,5                               ; je            34d2 <_sk_gather_i8_avx+0xf>
7434  DB  76,137,192                          ; mov           %r8,%rax
7435  DB  235,2                               ; jmp           34d4 <_sk_gather_i8_avx+0x11>
7436  DB  72,173                              ; lods          %ds:(%rsi),%rax
7437  DB  65,87                               ; push          %r15
7438  DB  65,86                               ; push          %r14
7439  DB  65,85                               ; push          %r13
7440  DB  65,84                               ; push          %r12
7441  DB  83                                  ; push          %rbx
7442  DB  76,139,8                            ; mov           (%rax),%r9
7443  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7444  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7445  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7446  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7447  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7448  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7449  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7450  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7451  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7452  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7453  DB  65,137,194                          ; mov           %eax,%r10d
7454  DB  72,193,232,32                       ; shr           $0x20,%rax
7455  DB  196,193,249,126,211                 ; vmovq         %xmm2,%r11
7456  DB  69,137,222                          ; mov           %r11d,%r14d
7457  DB  73,193,235,32                       ; shr           $0x20,%r11
7458  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7459  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7460  DB  65,137,223                          ; mov           %ebx,%r15d
7461  DB  196,195,249,22,196,1                ; vpextrq       $0x1,%xmm0,%r12
7462  DB  69,137,229                          ; mov           %r12d,%r13d
7463  DB  73,193,236,32                       ; shr           $0x20,%r12
7464  DB  72,193,235,32                       ; shr           $0x20,%rbx
7465  DB  196,131,121,32,4,49,0               ; vpinsrb       $0x0,(%r9,%r14,1),%xmm0,%xmm0
7466  DB  196,131,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%r11,1),%xmm0,%xmm0
7467  DB  196,131,121,32,4,17,2               ; vpinsrb       $0x2,(%r9,%r10,1),%xmm0,%xmm0
7468  DB  196,195,121,32,4,1,3                ; vpinsrb       $0x3,(%r9,%rax,1),%xmm0,%xmm0
7469  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7470  DB  196,195,249,22,194,1                ; vpextrq       $0x1,%xmm0,%r10
7471  DB  196,193,249,126,195                 ; vmovq         %xmm0,%r11
7472  DB  196,131,121,32,4,57,0               ; vpinsrb       $0x0,(%r9,%r15,1),%xmm0,%xmm0
7473  DB  196,195,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%rbx,1),%xmm0,%xmm0
7474  DB  196,131,121,32,4,41,2               ; vpinsrb       $0x2,(%r9,%r13,1),%xmm0,%xmm0
7475  DB  196,131,121,32,4,33,3               ; vpinsrb       $0x3,(%r9,%r12,1),%xmm0,%xmm0
7476  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7477  DB  73,139,88,8                         ; mov           0x8(%r8),%rbx
7478  DB  196,193,249,126,193                 ; vmovq         %xmm0,%r9
7479  DB  69,137,200                          ; mov           %r9d,%r8d
7480  DB  73,193,233,30                       ; shr           $0x1e,%r9
7481  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
7482  DB  65,137,198                          ; mov           %eax,%r14d
7483  DB  72,193,232,30                       ; shr           $0x1e,%rax
7484  DB  69,137,223                          ; mov           %r11d,%r15d
7485  DB  73,193,235,30                       ; shr           $0x1e,%r11
7486  DB  69,137,212                          ; mov           %r10d,%r12d
7487  DB  73,193,234,30                       ; shr           $0x1e,%r10
7488  DB  196,161,121,110,4,131               ; vmovd         (%rbx,%r8,4),%xmm0
7489  DB  196,163,121,34,4,11,1               ; vpinsrd       $0x1,(%rbx,%r9,1),%xmm0,%xmm0
7490  DB  196,163,121,34,4,179,2              ; vpinsrd       $0x2,(%rbx,%r14,4),%xmm0,%xmm0
7491  DB  196,99,121,34,4,3,3                 ; vpinsrd       $0x3,(%rbx,%rax,1),%xmm0,%xmm8
7492  DB  196,161,121,110,4,187               ; vmovd         (%rbx,%r15,4),%xmm0
7493  DB  196,163,121,34,4,27,1               ; vpinsrd       $0x1,(%rbx,%r11,1),%xmm0,%xmm0
7494  DB  196,163,121,34,4,163,2              ; vpinsrd       $0x2,(%rbx,%r12,4),%xmm0,%xmm0
7495  DB  196,163,121,34,28,19,3              ; vpinsrd       $0x3,(%rbx,%r10,1),%xmm0,%xmm3
7496  DB  196,227,61,24,195,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm0
7497  DB  184,255,0,0,0                       ; mov           $0xff,%eax
7498  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7499  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7500  DB  196,99,117,24,217,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm11
7501  DB  197,164,84,192                      ; vandps        %ymm0,%ymm11,%ymm0
7502  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7503  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7504  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7505  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7506  DB  196,99,117,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm9
7507  DB  196,193,124,89,193                  ; vmulps        %ymm9,%ymm0,%ymm0
7508  DB  196,193,41,114,208,8                ; vpsrld        $0x8,%xmm8,%xmm10
7509  DB  197,241,114,211,8                   ; vpsrld        $0x8,%xmm3,%xmm1
7510  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
7511  DB  197,164,84,201                      ; vandps        %ymm1,%ymm11,%ymm1
7512  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7513  DB  196,193,116,89,201                  ; vmulps        %ymm9,%ymm1,%ymm1
7514  DB  196,193,41,114,208,16               ; vpsrld        $0x10,%xmm8,%xmm10
7515  DB  197,233,114,211,16                  ; vpsrld        $0x10,%xmm3,%xmm2
7516  DB  196,227,45,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm10,%ymm2
7517  DB  197,164,84,210                      ; vandps        %ymm2,%ymm11,%ymm2
7518  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
7519  DB  196,193,108,89,209                  ; vmulps        %ymm9,%ymm2,%ymm2
7520  DB  196,193,57,114,208,24               ; vpsrld        $0x18,%xmm8,%xmm8
7521  DB  197,225,114,211,24                  ; vpsrld        $0x18,%xmm3,%xmm3
7522  DB  196,227,61,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm3
7523  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
7524  DB  196,193,100,89,217                  ; vmulps        %ymm9,%ymm3,%ymm3
7525  DB  72,173                              ; lods          %ds:(%rsi),%rax
7526  DB  91                                  ; pop           %rbx
7527  DB  65,92                               ; pop           %r12
7528  DB  65,93                               ; pop           %r13
7529  DB  65,94                               ; pop           %r14
7530  DB  65,95                               ; pop           %r15
7531  DB  255,224                             ; jmpq          *%rax
7532
7533PUBLIC _sk_load_565_avx
7534_sk_load_565_avx LABEL PROC
7535  DB  72,173                              ; lods          %ds:(%rsi),%rax
7536  DB  76,139,16                           ; mov           (%rax),%r10
7537  DB  72,133,201                          ; test          %rcx,%rcx
7538  DB  15,133,209,0,0,0                    ; jne           376e <_sk_load_565_avx+0xdf>
7539  DB  196,193,122,111,4,122               ; vmovdqu       (%r10,%rdi,2),%xmm0
7540  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
7541  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
7542  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
7543  DB  196,227,125,24,209,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm2
7544  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
7545  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7546  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7547  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7548  DB  197,252,84,194                      ; vandps        %ymm2,%ymm0,%ymm0
7549  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7550  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
7551  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7552  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7553  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7554  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7555  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
7556  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7557  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7558  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7559  DB  197,244,84,202                      ; vandps        %ymm2,%ymm1,%ymm1
7560  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7561  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
7562  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7563  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7564  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7565  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
7566  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
7567  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7568  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7569  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7570  DB  197,228,84,210                      ; vandps        %ymm2,%ymm3,%ymm2
7571  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
7572  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
7573  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7574  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7575  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7576  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
7577  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7578  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7579  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7580  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7581  DB  72,173                              ; lods          %ds:(%rsi),%rax
7582  DB  255,224                             ; jmpq          *%rax
7583  DB  65,137,200                          ; mov           %ecx,%r8d
7584  DB  65,128,224,7                        ; and           $0x7,%r8b
7585  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
7586  DB  65,254,200                          ; dec           %r8b
7587  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7588  DB  15,135,29,255,255,255               ; ja            36a3 <_sk_load_565_avx+0x14>
7589  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
7590  DB  76,141,13,75,0,0,0                  ; lea           0x4b(%rip),%r9        # 37dc <_sk_load_565_avx+0x14d>
7591  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
7592  DB  76,1,200                            ; add           %r9,%rax
7593  DB  255,224                             ; jmpq          *%rax
7594  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
7595  DB  196,193,121,196,68,122,12,6         ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm0,%xmm0
7596  DB  196,193,121,196,68,122,10,5         ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm0,%xmm0
7597  DB  196,193,121,196,68,122,8,4          ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm0,%xmm0
7598  DB  196,193,121,196,68,122,6,3          ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm0,%xmm0
7599  DB  196,193,121,196,68,122,4,2          ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0
7600  DB  196,193,121,196,68,122,2,1          ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0
7601  DB  196,193,121,196,4,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm0,%xmm0
7602  DB  233,201,254,255,255                 ; jmpq          36a3 <_sk_load_565_avx+0x14>
7603  DB  102,144                             ; xchg          %ax,%ax
7604  DB  242,255                             ; repnz         (bad)
7605  DB  255                                 ; (bad)
7606  DB  255                                 ; (bad)
7607  DB  234                                 ; (bad)
7608  DB  255                                 ; (bad)
7609  DB  255                                 ; (bad)
7610  DB  255,226                             ; jmpq          *%rdx
7611  DB  255                                 ; (bad)
7612  DB  255                                 ; (bad)
7613  DB  255                                 ; (bad)
7614  DB  218,255                             ; (bad)
7615  DB  255                                 ; (bad)
7616  DB  255,210                             ; callq         *%rdx
7617  DB  255                                 ; (bad)
7618  DB  255                                 ; (bad)
7619  DB  255,202                             ; dec           %edx
7620  DB  255                                 ; (bad)
7621  DB  255                                 ; (bad)
7622  DB  255                                 ; (bad)
7623  DB  190                                 ; .byte         0xbe
7624  DB  255                                 ; (bad)
7625  DB  255                                 ; (bad)
7626  DB  255                                 ; .byte         0xff
7627
7628PUBLIC _sk_gather_565_avx
7629_sk_gather_565_avx LABEL PROC
7630  DB  85                                  ; push          %rbp
7631  DB  65,87                               ; push          %r15
7632  DB  65,86                               ; push          %r14
7633  DB  65,84                               ; push          %r12
7634  DB  83                                  ; push          %rbx
7635  DB  72,173                              ; lods          %ds:(%rsi),%rax
7636  DB  76,139,0                            ; mov           (%rax),%r8
7637  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7638  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7639  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7640  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7641  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7642  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7643  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7644  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7645  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7646  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7647  DB  65,137,193                          ; mov           %eax,%r9d
7648  DB  72,193,232,32                       ; shr           $0x20,%rax
7649  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
7650  DB  69,137,211                          ; mov           %r10d,%r11d
7651  DB  73,193,234,32                       ; shr           $0x20,%r10
7652  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7653  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7654  DB  65,137,222                          ; mov           %ebx,%r14d
7655  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
7656  DB  69,137,252                          ; mov           %r15d,%r12d
7657  DB  73,193,239,32                       ; shr           $0x20,%r15
7658  DB  72,193,235,32                       ; shr           $0x20,%rbx
7659  DB  65,15,183,28,88                     ; movzwl        (%r8,%rbx,2),%ebx
7660  DB  67,15,183,44,112                    ; movzwl        (%r8,%r14,2),%ebp
7661  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
7662  DB  197,249,196,195,1                   ; vpinsrw       $0x1,%ebx,%xmm0,%xmm0
7663  DB  67,15,183,28,96                     ; movzwl        (%r8,%r12,2),%ebx
7664  DB  197,249,196,195,2                   ; vpinsrw       $0x2,%ebx,%xmm0,%xmm0
7665  DB  67,15,183,28,120                    ; movzwl        (%r8,%r15,2),%ebx
7666  DB  197,249,196,195,3                   ; vpinsrw       $0x3,%ebx,%xmm0,%xmm0
7667  DB  67,15,183,44,88                     ; movzwl        (%r8,%r11,2),%ebp
7668  DB  197,249,196,197,4                   ; vpinsrw       $0x4,%ebp,%xmm0,%xmm0
7669  DB  67,15,183,44,80                     ; movzwl        (%r8,%r10,2),%ebp
7670  DB  197,249,196,197,5                   ; vpinsrw       $0x5,%ebp,%xmm0,%xmm0
7671  DB  67,15,183,44,72                     ; movzwl        (%r8,%r9,2),%ebp
7672  DB  197,249,196,197,6                   ; vpinsrw       $0x6,%ebp,%xmm0,%xmm0
7673  DB  65,15,183,4,64                      ; movzwl        (%r8,%rax,2),%eax
7674  DB  197,249,196,192,7                   ; vpinsrw       $0x7,%eax,%xmm0,%xmm0
7675  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
7676  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
7677  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
7678  DB  196,227,125,24,209,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm2
7679  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
7680  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7681  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7682  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7683  DB  197,252,84,194                      ; vandps        %ymm2,%ymm0,%ymm0
7684  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7685  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
7686  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7687  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7688  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7689  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7690  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
7691  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7692  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7693  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7694  DB  197,244,84,202                      ; vandps        %ymm2,%ymm1,%ymm1
7695  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7696  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
7697  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7698  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7699  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7700  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
7701  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
7702  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7703  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7704  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7705  DB  197,228,84,210                      ; vandps        %ymm2,%ymm3,%ymm2
7706  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
7707  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
7708  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7709  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7710  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7711  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
7712  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7713  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7714  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7715  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7716  DB  72,173                              ; lods          %ds:(%rsi),%rax
7717  DB  91                                  ; pop           %rbx
7718  DB  65,92                               ; pop           %r12
7719  DB  65,94                               ; pop           %r14
7720  DB  65,95                               ; pop           %r15
7721  DB  93                                  ; pop           %rbp
7722  DB  255,224                             ; jmpq          *%rax
7723
7724PUBLIC _sk_store_565_avx
7725_sk_store_565_avx LABEL PROC
7726  DB  72,173                              ; lods          %ds:(%rsi),%rax
7727  DB  76,139,8                            ; mov           (%rax),%r9
7728  DB  184,0,0,248,65                      ; mov           $0x41f80000,%eax
7729  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
7730  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
7731  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
7732  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
7733  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
7734  DB  196,193,41,114,241,11               ; vpslld        $0xb,%xmm9,%xmm10
7735  DB  196,67,125,25,201,1                 ; vextractf128  $0x1,%ymm9,%xmm9
7736  DB  196,193,49,114,241,11               ; vpslld        $0xb,%xmm9,%xmm9
7737  DB  196,67,45,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm9
7738  DB  184,0,0,124,66                      ; mov           $0x427c0000,%eax
7739  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
7740  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
7741  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
7742  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
7743  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
7744  DB  196,193,33,114,242,5                ; vpslld        $0x5,%xmm10,%xmm11
7745  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
7746  DB  196,193,41,114,242,5                ; vpslld        $0x5,%xmm10,%xmm10
7747  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
7748  DB  196,65,45,86,201                    ; vorpd         %ymm9,%ymm10,%ymm9
7749  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
7750  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
7751  DB  196,65,53,86,192                    ; vorpd         %ymm8,%ymm9,%ymm8
7752  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
7753  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
7754  DB  72,133,201                          ; test          %rcx,%rcx
7755  DB  117,10                              ; jne           3a27 <_sk_store_565_avx+0x9e>
7756  DB  196,65,122,127,4,121                ; vmovdqu       %xmm8,(%r9,%rdi,2)
7757  DB  72,173                              ; lods          %ds:(%rsi),%rax
7758  DB  255,224                             ; jmpq          *%rax
7759  DB  65,137,200                          ; mov           %ecx,%r8d
7760  DB  65,128,224,7                        ; and           $0x7,%r8b
7761  DB  65,254,200                          ; dec           %r8b
7762  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7763  DB  119,236                             ; ja            3a23 <_sk_store_565_avx+0x9a>
7764  DB  65,15,182,192                       ; movzbl        %r8b,%eax
7765  DB  76,141,5,66,0,0,0                   ; lea           0x42(%rip),%r8        # 3a84 <_sk_store_565_avx+0xfb>
7766  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
7767  DB  76,1,192                            ; add           %r8,%rax
7768  DB  255,224                             ; jmpq          *%rax
7769  DB  196,67,121,21,68,121,12,6           ; vpextrw       $0x6,%xmm8,0xc(%r9,%rdi,2)
7770  DB  196,67,121,21,68,121,10,5           ; vpextrw       $0x5,%xmm8,0xa(%r9,%rdi,2)
7771  DB  196,67,121,21,68,121,8,4            ; vpextrw       $0x4,%xmm8,0x8(%r9,%rdi,2)
7772  DB  196,67,121,21,68,121,6,3            ; vpextrw       $0x3,%xmm8,0x6(%r9,%rdi,2)
7773  DB  196,67,121,21,68,121,4,2            ; vpextrw       $0x2,%xmm8,0x4(%r9,%rdi,2)
7774  DB  196,67,121,21,68,121,2,1            ; vpextrw       $0x1,%xmm8,0x2(%r9,%rdi,2)
7775  DB  196,67,121,21,4,121,0               ; vpextrw       $0x0,%xmm8,(%r9,%rdi,2)
7776  DB  235,159                             ; jmp           3a23 <_sk_store_565_avx+0x9a>
7777  DB  247,255                             ; idiv          %edi
7778  DB  255                                 ; (bad)
7779  DB  255                                 ; (bad)
7780  DB  239                                 ; out           %eax,(%dx)
7781  DB  255                                 ; (bad)
7782  DB  255                                 ; (bad)
7783  DB  255,231                             ; jmpq          *%rdi
7784  DB  255                                 ; (bad)
7785  DB  255                                 ; (bad)
7786  DB  255                                 ; (bad)
7787  DB  223,255                             ; (bad)
7788  DB  255                                 ; (bad)
7789  DB  255,215                             ; callq         *%rdi
7790  DB  255                                 ; (bad)
7791  DB  255                                 ; (bad)
7792  DB  255,207                             ; dec           %edi
7793  DB  255                                 ; (bad)
7794  DB  255                                 ; (bad)
7795  DB  255,199                             ; inc           %edi
7796  DB  255                                 ; (bad)
7797  DB  255                                 ; (bad)
7798  DB  255                                 ; .byte         0xff
7799
7800PUBLIC _sk_load_4444_avx
7801_sk_load_4444_avx LABEL PROC
7802  DB  72,173                              ; lods          %ds:(%rsi),%rax
7803  DB  76,139,16                           ; mov           (%rax),%r10
7804  DB  72,133,201                          ; test          %rcx,%rcx
7805  DB  15,133,245,0,0,0                    ; jne           3ba3 <_sk_load_4444_avx+0x103>
7806  DB  196,193,122,111,4,122               ; vmovdqu       (%r10,%rdi,2),%xmm0
7807  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
7808  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
7809  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
7810  DB  196,99,125,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm9
7811  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
7812  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7813  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7814  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7815  DB  196,193,124,84,193                  ; vandps        %ymm9,%ymm0,%ymm0
7816  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7817  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
7818  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7819  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7820  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7821  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7822  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
7823  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7824  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7825  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7826  DB  196,193,116,84,201                  ; vandps        %ymm9,%ymm1,%ymm1
7827  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7828  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
7829  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7830  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7831  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7832  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
7833  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
7834  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7835  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
7836  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7837  DB  196,193,108,84,209                  ; vandps        %ymm9,%ymm2,%ymm2
7838  DB  197,124,91,194                      ; vcvtdq2ps     %ymm2,%ymm8
7839  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
7840  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7841  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7842  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7843  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
7844  DB  184,15,0,0,0                        ; mov           $0xf,%eax
7845  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7846  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7847  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7848  DB  196,193,100,84,217                  ; vandps        %ymm9,%ymm3,%ymm3
7849  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
7850  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
7851  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7852  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7853  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7854  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
7855  DB  72,173                              ; lods          %ds:(%rsi),%rax
7856  DB  255,224                             ; jmpq          *%rax
7857  DB  65,137,200                          ; mov           %ecx,%r8d
7858  DB  65,128,224,7                        ; and           $0x7,%r8b
7859  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
7860  DB  65,254,200                          ; dec           %r8b
7861  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7862  DB  15,135,249,254,255,255              ; ja            3ab4 <_sk_load_4444_avx+0x14>
7863  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
7864  DB  76,141,13,74,0,0,0                  ; lea           0x4a(%rip),%r9        # 3c10 <_sk_load_4444_avx+0x170>
7865  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
7866  DB  76,1,200                            ; add           %r9,%rax
7867  DB  255,224                             ; jmpq          *%rax
7868  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
7869  DB  196,193,121,196,68,122,12,6         ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm0,%xmm0
7870  DB  196,193,121,196,68,122,10,5         ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm0,%xmm0
7871  DB  196,193,121,196,68,122,8,4          ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm0,%xmm0
7872  DB  196,193,121,196,68,122,6,3          ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm0,%xmm0
7873  DB  196,193,121,196,68,122,4,2          ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0
7874  DB  196,193,121,196,68,122,2,1          ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0
7875  DB  196,193,121,196,4,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm0,%xmm0
7876  DB  233,165,254,255,255                 ; jmpq          3ab4 <_sk_load_4444_avx+0x14>
7877  DB  144                                 ; nop
7878  DB  243,255                             ; repz          (bad)
7879  DB  255                                 ; (bad)
7880  DB  255                                 ; (bad)
7881  DB  235,255                             ; jmp           3c15 <_sk_load_4444_avx+0x175>
7882  DB  255                                 ; (bad)
7883  DB  255,227                             ; jmpq          *%rbx
7884  DB  255                                 ; (bad)
7885  DB  255                                 ; (bad)
7886  DB  255                                 ; (bad)
7887  DB  219,255                             ; (bad)
7888  DB  255                                 ; (bad)
7889  DB  255,211                             ; callq         *%rbx
7890  DB  255                                 ; (bad)
7891  DB  255                                 ; (bad)
7892  DB  255,203                             ; dec           %ebx
7893  DB  255                                 ; (bad)
7894  DB  255                                 ; (bad)
7895  DB  255                                 ; (bad)
7896  DB  191                                 ; .byte         0xbf
7897  DB  255                                 ; (bad)
7898  DB  255                                 ; (bad)
7899  DB  255                                 ; .byte         0xff
7900
7901PUBLIC _sk_gather_4444_avx
7902_sk_gather_4444_avx LABEL PROC
7903  DB  85                                  ; push          %rbp
7904  DB  65,87                               ; push          %r15
7905  DB  65,86                               ; push          %r14
7906  DB  65,84                               ; push          %r12
7907  DB  83                                  ; push          %rbx
7908  DB  72,173                              ; lods          %ds:(%rsi),%rax
7909  DB  76,139,0                            ; mov           (%rax),%r8
7910  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7911  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7912  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7913  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7914  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7915  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7916  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7917  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7918  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7919  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7920  DB  65,137,193                          ; mov           %eax,%r9d
7921  DB  72,193,232,32                       ; shr           $0x20,%rax
7922  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
7923  DB  69,137,211                          ; mov           %r10d,%r11d
7924  DB  73,193,234,32                       ; shr           $0x20,%r10
7925  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7926  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7927  DB  65,137,222                          ; mov           %ebx,%r14d
7928  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
7929  DB  69,137,252                          ; mov           %r15d,%r12d
7930  DB  73,193,239,32                       ; shr           $0x20,%r15
7931  DB  72,193,235,32                       ; shr           $0x20,%rbx
7932  DB  65,15,183,28,88                     ; movzwl        (%r8,%rbx,2),%ebx
7933  DB  67,15,183,44,112                    ; movzwl        (%r8,%r14,2),%ebp
7934  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
7935  DB  197,249,196,195,1                   ; vpinsrw       $0x1,%ebx,%xmm0,%xmm0
7936  DB  67,15,183,28,96                     ; movzwl        (%r8,%r12,2),%ebx
7937  DB  197,249,196,195,2                   ; vpinsrw       $0x2,%ebx,%xmm0,%xmm0
7938  DB  67,15,183,28,120                    ; movzwl        (%r8,%r15,2),%ebx
7939  DB  197,249,196,195,3                   ; vpinsrw       $0x3,%ebx,%xmm0,%xmm0
7940  DB  67,15,183,44,88                     ; movzwl        (%r8,%r11,2),%ebp
7941  DB  197,249,196,197,4                   ; vpinsrw       $0x4,%ebp,%xmm0,%xmm0
7942  DB  67,15,183,44,80                     ; movzwl        (%r8,%r10,2),%ebp
7943  DB  197,249,196,197,5                   ; vpinsrw       $0x5,%ebp,%xmm0,%xmm0
7944  DB  67,15,183,44,72                     ; movzwl        (%r8,%r9,2),%ebp
7945  DB  197,249,196,197,6                   ; vpinsrw       $0x6,%ebp,%xmm0,%xmm0
7946  DB  65,15,183,4,64                      ; movzwl        (%r8,%rax,2),%eax
7947  DB  197,249,196,192,7                   ; vpinsrw       $0x7,%eax,%xmm0,%xmm0
7948  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
7949  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
7950  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
7951  DB  196,99,125,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm9
7952  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
7953  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7954  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7955  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7956  DB  196,193,124,84,193                  ; vandps        %ymm9,%ymm0,%ymm0
7957  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7958  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
7959  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7960  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7961  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7962  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7963  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
7964  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7965  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7966  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7967  DB  196,193,116,84,201                  ; vandps        %ymm9,%ymm1,%ymm1
7968  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7969  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
7970  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7971  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7972  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7973  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
7974  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
7975  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7976  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
7977  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7978  DB  196,193,108,84,209                  ; vandps        %ymm9,%ymm2,%ymm2
7979  DB  197,124,91,194                      ; vcvtdq2ps     %ymm2,%ymm8
7980  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
7981  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7982  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7983  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7984  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
7985  DB  184,15,0,0,0                        ; mov           $0xf,%eax
7986  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7987  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7988  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7989  DB  196,193,100,84,217                  ; vandps        %ymm9,%ymm3,%ymm3
7990  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
7991  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
7992  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7993  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7994  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7995  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
7996  DB  72,173                              ; lods          %ds:(%rsi),%rax
7997  DB  91                                  ; pop           %rbx
7998  DB  65,92                               ; pop           %r12
7999  DB  65,94                               ; pop           %r14
8000  DB  65,95                               ; pop           %r15
8001  DB  93                                  ; pop           %rbp
8002  DB  255,224                             ; jmpq          *%rax
8003
8004PUBLIC _sk_store_4444_avx
8005_sk_store_4444_avx LABEL PROC
8006  DB  72,173                              ; lods          %ds:(%rsi),%rax
8007  DB  76,139,8                            ; mov           (%rax),%r9
8008  DB  184,0,0,112,65                      ; mov           $0x41700000,%eax
8009  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
8010  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
8011  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
8012  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
8013  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
8014  DB  196,193,41,114,241,12               ; vpslld        $0xc,%xmm9,%xmm10
8015  DB  196,67,125,25,201,1                 ; vextractf128  $0x1,%ymm9,%xmm9
8016  DB  196,193,49,114,241,12               ; vpslld        $0xc,%xmm9,%xmm9
8017  DB  196,67,45,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm9
8018  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
8019  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
8020  DB  196,193,33,114,242,8                ; vpslld        $0x8,%xmm10,%xmm11
8021  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
8022  DB  196,193,41,114,242,8                ; vpslld        $0x8,%xmm10,%xmm10
8023  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
8024  DB  196,65,45,86,201                    ; vorpd         %ymm9,%ymm10,%ymm9
8025  DB  197,60,89,210                       ; vmulps        %ymm2,%ymm8,%ymm10
8026  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
8027  DB  196,193,33,114,242,4                ; vpslld        $0x4,%xmm10,%xmm11
8028  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
8029  DB  196,193,41,114,242,4                ; vpslld        $0x4,%xmm10,%xmm10
8030  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
8031  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
8032  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
8033  DB  196,65,45,86,192                    ; vorpd         %ymm8,%ymm10,%ymm8
8034  DB  196,65,53,86,192                    ; vorpd         %ymm8,%ymm9,%ymm8
8035  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
8036  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
8037  DB  72,133,201                          ; test          %rcx,%rcx
8038  DB  117,10                              ; jne           3e90 <_sk_store_4444_avx+0xaf>
8039  DB  196,65,122,127,4,121                ; vmovdqu       %xmm8,(%r9,%rdi,2)
8040  DB  72,173                              ; lods          %ds:(%rsi),%rax
8041  DB  255,224                             ; jmpq          *%rax
8042  DB  65,137,200                          ; mov           %ecx,%r8d
8043  DB  65,128,224,7                        ; and           $0x7,%r8b
8044  DB  65,254,200                          ; dec           %r8b
8045  DB  65,128,248,6                        ; cmp           $0x6,%r8b
8046  DB  119,236                             ; ja            3e8c <_sk_store_4444_avx+0xab>
8047  DB  65,15,182,192                       ; movzbl        %r8b,%eax
8048  DB  76,141,5,69,0,0,0                   ; lea           0x45(%rip),%r8        # 3ef0 <_sk_store_4444_avx+0x10f>
8049  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
8050  DB  76,1,192                            ; add           %r8,%rax
8051  DB  255,224                             ; jmpq          *%rax
8052  DB  196,67,121,21,68,121,12,6           ; vpextrw       $0x6,%xmm8,0xc(%r9,%rdi,2)
8053  DB  196,67,121,21,68,121,10,5           ; vpextrw       $0x5,%xmm8,0xa(%r9,%rdi,2)
8054  DB  196,67,121,21,68,121,8,4            ; vpextrw       $0x4,%xmm8,0x8(%r9,%rdi,2)
8055  DB  196,67,121,21,68,121,6,3            ; vpextrw       $0x3,%xmm8,0x6(%r9,%rdi,2)
8056  DB  196,67,121,21,68,121,4,2            ; vpextrw       $0x2,%xmm8,0x4(%r9,%rdi,2)
8057  DB  196,67,121,21,68,121,2,1            ; vpextrw       $0x1,%xmm8,0x2(%r9,%rdi,2)
8058  DB  196,67,121,21,4,121,0               ; vpextrw       $0x0,%xmm8,(%r9,%rdi,2)
8059  DB  235,159                             ; jmp           3e8c <_sk_store_4444_avx+0xab>
8060  DB  15,31,0                             ; nopl          (%rax)
8061  DB  244                                 ; hlt
8062  DB  255                                 ; (bad)
8063  DB  255                                 ; (bad)
8064  DB  255                                 ; (bad)
8065  DB  236                                 ; in            (%dx),%al
8066  DB  255                                 ; (bad)
8067  DB  255                                 ; (bad)
8068  DB  255,228                             ; jmpq          *%rsp
8069  DB  255                                 ; (bad)
8070  DB  255                                 ; (bad)
8071  DB  255                                 ; (bad)
8072  DB  220,255                             ; fdivr         %st,%st(7)
8073  DB  255                                 ; (bad)
8074  DB  255,212                             ; callq         *%rsp
8075  DB  255                                 ; (bad)
8076  DB  255                                 ; (bad)
8077  DB  255,204                             ; dec           %esp
8078  DB  255                                 ; (bad)
8079  DB  255                                 ; (bad)
8080  DB  255,196                             ; inc           %esp
8081  DB  255                                 ; (bad)
8082  DB  255                                 ; (bad)
8083  DB  255                                 ; .byte         0xff
8084
8085PUBLIC _sk_load_8888_avx
8086_sk_load_8888_avx LABEL PROC
8087  DB  72,173                              ; lods          %ds:(%rsi),%rax
8088  DB  76,139,16                           ; mov           (%rax),%r10
8089  DB  72,133,201                          ; test          %rcx,%rcx
8090  DB  15,133,157,0,0,0                    ; jne           3fb7 <_sk_load_8888_avx+0xab>
8091  DB  196,65,124,16,12,186                ; vmovups       (%r10,%rdi,4),%ymm9
8092  DB  184,255,0,0,0                       ; mov           $0xff,%eax
8093  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
8094  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
8095  DB  196,99,125,24,216,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm11
8096  DB  196,193,36,84,193                   ; vandps        %ymm9,%ymm11,%ymm0
8097  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
8098  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
8099  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
8100  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
8101  DB  196,99,117,24,193,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm8
8102  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
8103  DB  196,193,41,114,209,8                ; vpsrld        $0x8,%xmm9,%xmm10
8104  DB  196,99,125,25,203,1                 ; vextractf128  $0x1,%ymm9,%xmm3
8105  DB  197,241,114,211,8                   ; vpsrld        $0x8,%xmm3,%xmm1
8106  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
8107  DB  197,164,84,201                      ; vandps        %ymm1,%ymm11,%ymm1
8108  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
8109  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
8110  DB  196,193,41,114,209,16               ; vpsrld        $0x10,%xmm9,%xmm10
8111  DB  197,233,114,211,16                  ; vpsrld        $0x10,%xmm3,%xmm2
8112  DB  196,227,45,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm10,%ymm2
8113  DB  197,164,84,210                      ; vandps        %ymm2,%ymm11,%ymm2
8114  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
8115  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
8116  DB  196,193,49,114,209,24               ; vpsrld        $0x18,%xmm9,%xmm9
8117  DB  197,225,114,211,24                  ; vpsrld        $0x18,%xmm3,%xmm3
8118  DB  196,227,53,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm9,%ymm3
8119  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
8120  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
8121  DB  72,173                              ; lods          %ds:(%rsi),%rax
8122  DB  255,224                             ; jmpq          *%rax
8123  DB  65,137,200                          ; mov           %ecx,%r8d
8124  DB  65,128,224,7                        ; and           $0x7,%r8b
8125  DB  196,65,52,87,201                    ; vxorps        %ymm9,%ymm9,%ymm9
8126  DB  65,254,200                          ; dec           %r8b
8127  DB  65,128,248,6                        ; cmp           $0x6,%r8b
8128  DB  15,135,80,255,255,255               ; ja            3f20 <_sk_load_8888_avx+0x14>
8129  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
8130  DB  76,141,13,137,0,0,0                 ; lea           0x89(%rip),%r9        # 4064 <_sk_load_8888_avx+0x158>
8131  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
8132  DB  76,1,200                            ; add           %r9,%rax
8133  DB  255,224                             ; jmpq          *%rax
8134  DB  196,193,121,110,68,186,24           ; vmovd         0x18(%r10,%rdi,4),%xmm0
8135  DB  197,249,112,192,68                  ; vpshufd       $0x44,%xmm0,%xmm0
8136  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
8137  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
8138  DB  196,99,117,12,200,64                ; vblendps      $0x40,%ymm0,%ymm1,%ymm9
8139  DB  196,99,125,25,200,1                 ; vextractf128  $0x1,%ymm9,%xmm0
8140  DB  196,195,121,34,68,186,20,1          ; vpinsrd       $0x1,0x14(%r10,%rdi,4),%xmm0,%xmm0
8141  DB  196,99,53,24,200,1                  ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm9
8142  DB  196,99,125,25,200,1                 ; vextractf128  $0x1,%ymm9,%xmm0
8143  DB  196,195,121,34,68,186,16,0          ; vpinsrd       $0x0,0x10(%r10,%rdi,4),%xmm0,%xmm0
8144  DB  196,99,53,24,200,1                  ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm9
8145  DB  196,195,49,34,68,186,12,3           ; vpinsrd       $0x3,0xc(%r10,%rdi,4),%xmm9,%xmm0
8146  DB  196,99,53,12,200,15                 ; vblendps      $0xf,%ymm0,%ymm9,%ymm9
8147  DB  196,195,49,34,68,186,8,2            ; vpinsrd       $0x2,0x8(%r10,%rdi,4),%xmm9,%xmm0
8148  DB  196,99,53,12,200,15                 ; vblendps      $0xf,%ymm0,%ymm9,%ymm9
8149  DB  196,195,49,34,68,186,4,1            ; vpinsrd       $0x1,0x4(%r10,%rdi,4),%xmm9,%xmm0
8150  DB  196,99,53,12,200,15                 ; vblendps      $0xf,%ymm0,%ymm9,%ymm9
8151  DB  196,195,49,34,4,186,0               ; vpinsrd       $0x0,(%r10,%rdi,4),%xmm9,%xmm0
8152  DB  196,99,53,12,200,15                 ; vblendps      $0xf,%ymm0,%ymm9,%ymm9
8153  DB  233,188,254,255,255                 ; jmpq          3f20 <_sk_load_8888_avx+0x14>
8154  DB  238                                 ; out           %al,(%dx)
8155  DB  255                                 ; (bad)
8156  DB  255                                 ; (bad)
8157  DB  255,224                             ; jmpq          *%rax
8158  DB  255                                 ; (bad)
8159  DB  255                                 ; (bad)
8160  DB  255,210                             ; callq         *%rdx
8161  DB  255                                 ; (bad)
8162  DB  255                                 ; (bad)
8163  DB  255,196                             ; inc           %esp
8164  DB  255                                 ; (bad)
8165  DB  255                                 ; (bad)
8166  DB  255,176,255,255,255,156             ; pushq         -0x63000001(%rax)
8167  DB  255                                 ; (bad)
8168  DB  255                                 ; (bad)
8169  DB  255                                 ; .byte         0xff
8170  DB  128,255,255                         ; cmp           $0xff,%bh
8171  DB  255                                 ; .byte         0xff
8172
8173PUBLIC _sk_gather_8888_avx
8174_sk_gather_8888_avx LABEL PROC
8175  DB  65,87                               ; push          %r15
8176  DB  65,86                               ; push          %r14
8177  DB  65,84                               ; push          %r12
8178  DB  83                                  ; push          %rbx
8179  DB  72,173                              ; lods          %ds:(%rsi),%rax
8180  DB  76,139,0                            ; mov           (%rax),%r8
8181  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
8182  DB  197,249,110,80,16                   ; vmovd         0x10(%rax),%xmm2
8183  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
8184  DB  196,226,105,64,217                  ; vpmulld       %xmm1,%xmm2,%xmm3
8185  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
8186  DB  196,226,105,64,201                  ; vpmulld       %xmm1,%xmm2,%xmm1
8187  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
8188  DB  196,227,125,25,194,1                ; vextractf128  $0x1,%ymm0,%xmm2
8189  DB  197,241,254,202                     ; vpaddd        %xmm2,%xmm1,%xmm1
8190  DB  196,225,249,126,200                 ; vmovq         %xmm1,%rax
8191  DB  65,137,193                          ; mov           %eax,%r9d
8192  DB  72,193,232,32                       ; shr           $0x20,%rax
8193  DB  196,195,249,22,202,1                ; vpextrq       $0x1,%xmm1,%r10
8194  DB  69,137,211                          ; mov           %r10d,%r11d
8195  DB  73,193,234,32                       ; shr           $0x20,%r10
8196  DB  197,225,254,192                     ; vpaddd        %xmm0,%xmm3,%xmm0
8197  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
8198  DB  65,137,222                          ; mov           %ebx,%r14d
8199  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
8200  DB  69,137,252                          ; mov           %r15d,%r12d
8201  DB  72,193,235,32                       ; shr           $0x20,%rbx
8202  DB  73,193,239,32                       ; shr           $0x20,%r15
8203  DB  196,129,121,110,4,176               ; vmovd         (%r8,%r14,4),%xmm0
8204  DB  196,195,121,34,4,152,1              ; vpinsrd       $0x1,(%r8,%rbx,4),%xmm0,%xmm0
8205  DB  196,131,121,34,4,160,2              ; vpinsrd       $0x2,(%r8,%r12,4),%xmm0,%xmm0
8206  DB  196,3,121,34,4,184,3                ; vpinsrd       $0x3,(%r8,%r15,4),%xmm0,%xmm8
8207  DB  196,129,121,110,4,136               ; vmovd         (%r8,%r9,4),%xmm0
8208  DB  196,195,121,34,4,128,1              ; vpinsrd       $0x1,(%r8,%rax,4),%xmm0,%xmm0
8209  DB  196,131,121,34,4,152,2              ; vpinsrd       $0x2,(%r8,%r11,4),%xmm0,%xmm0
8210  DB  196,131,121,34,28,144,3             ; vpinsrd       $0x3,(%r8,%r10,4),%xmm0,%xmm3
8211  DB  196,227,61,24,195,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm0
8212  DB  184,255,0,0,0                       ; mov           $0xff,%eax
8213  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
8214  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
8215  DB  196,99,117,24,217,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm11
8216  DB  197,164,84,192                      ; vandps        %ymm0,%ymm11,%ymm0
8217  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
8218  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
8219  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
8220  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
8221  DB  196,99,117,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm9
8222  DB  196,193,124,89,193                  ; vmulps        %ymm9,%ymm0,%ymm0
8223  DB  196,193,41,114,208,8                ; vpsrld        $0x8,%xmm8,%xmm10
8224  DB  197,241,114,211,8                   ; vpsrld        $0x8,%xmm3,%xmm1
8225  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
8226  DB  197,164,84,201                      ; vandps        %ymm1,%ymm11,%ymm1
8227  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
8228  DB  196,193,116,89,201                  ; vmulps        %ymm9,%ymm1,%ymm1
8229  DB  196,193,41,114,208,16               ; vpsrld        $0x10,%xmm8,%xmm10
8230  DB  197,233,114,211,16                  ; vpsrld        $0x10,%xmm3,%xmm2
8231  DB  196,227,45,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm10,%ymm2
8232  DB  197,164,84,210                      ; vandps        %ymm2,%ymm11,%ymm2
8233  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
8234  DB  196,193,108,89,209                  ; vmulps        %ymm9,%ymm2,%ymm2
8235  DB  196,193,57,114,208,24               ; vpsrld        $0x18,%xmm8,%xmm8
8236  DB  197,225,114,211,24                  ; vpsrld        $0x18,%xmm3,%xmm3
8237  DB  196,227,61,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm3
8238  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
8239  DB  196,193,100,89,217                  ; vmulps        %ymm9,%ymm3,%ymm3
8240  DB  72,173                              ; lods          %ds:(%rsi),%rax
8241  DB  91                                  ; pop           %rbx
8242  DB  65,92                               ; pop           %r12
8243  DB  65,94                               ; pop           %r14
8244  DB  65,95                               ; pop           %r15
8245  DB  255,224                             ; jmpq          *%rax
8246
8247PUBLIC _sk_store_8888_avx
8248_sk_store_8888_avx LABEL PROC
8249  DB  72,173                              ; lods          %ds:(%rsi),%rax
8250  DB  76,139,8                            ; mov           (%rax),%r9
8251  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
8252  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
8253  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
8254  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
8255  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
8256  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
8257  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
8258  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
8259  DB  196,193,33,114,242,8                ; vpslld        $0x8,%xmm10,%xmm11
8260  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
8261  DB  196,193,41,114,242,8                ; vpslld        $0x8,%xmm10,%xmm10
8262  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
8263  DB  196,65,45,86,201                    ; vorpd         %ymm9,%ymm10,%ymm9
8264  DB  197,60,89,210                       ; vmulps        %ymm2,%ymm8,%ymm10
8265  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
8266  DB  196,193,33,114,242,16               ; vpslld        $0x10,%xmm10,%xmm11
8267  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
8268  DB  196,193,41,114,242,16               ; vpslld        $0x10,%xmm10,%xmm10
8269  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
8270  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
8271  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
8272  DB  196,193,33,114,240,24               ; vpslld        $0x18,%xmm8,%xmm11
8273  DB  196,67,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm8
8274  DB  196,193,57,114,240,24               ; vpslld        $0x18,%xmm8,%xmm8
8275  DB  196,67,37,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm11,%ymm8
8276  DB  196,65,45,86,192                    ; vorpd         %ymm8,%ymm10,%ymm8
8277  DB  196,65,53,86,192                    ; vorpd         %ymm8,%ymm9,%ymm8
8278  DB  72,133,201                          ; test          %rcx,%rcx
8279  DB  117,10                              ; jne           4265 <_sk_store_8888_avx+0xa4>
8280  DB  196,65,124,17,4,185                 ; vmovups       %ymm8,(%r9,%rdi,4)
8281  DB  72,173                              ; lods          %ds:(%rsi),%rax
8282  DB  255,224                             ; jmpq          *%rax
8283  DB  65,137,200                          ; mov           %ecx,%r8d
8284  DB  65,128,224,7                        ; and           $0x7,%r8b
8285  DB  65,254,200                          ; dec           %r8b
8286  DB  65,128,248,6                        ; cmp           $0x6,%r8b
8287  DB  119,236                             ; ja            4261 <_sk_store_8888_avx+0xa0>
8288  DB  65,15,182,192                       ; movzbl        %r8b,%eax
8289  DB  76,141,5,84,0,0,0                   ; lea           0x54(%rip),%r8        # 42d4 <_sk_store_8888_avx+0x113>
8290  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
8291  DB  76,1,192                            ; add           %r8,%rax
8292  DB  255,224                             ; jmpq          *%rax
8293  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
8294  DB  196,67,121,22,76,185,24,2           ; vpextrd       $0x2,%xmm9,0x18(%r9,%rdi,4)
8295  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
8296  DB  196,67,121,22,76,185,20,1           ; vpextrd       $0x1,%xmm9,0x14(%r9,%rdi,4)
8297  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
8298  DB  196,65,122,17,76,185,16             ; vmovss        %xmm9,0x10(%r9,%rdi,4)
8299  DB  196,67,121,22,68,185,12,3           ; vpextrd       $0x3,%xmm8,0xc(%r9,%rdi,4)
8300  DB  196,67,121,22,68,185,8,2            ; vpextrd       $0x2,%xmm8,0x8(%r9,%rdi,4)
8301  DB  196,67,121,22,68,185,4,1            ; vpextrd       $0x1,%xmm8,0x4(%r9,%rdi,4)
8302  DB  196,65,121,126,4,185                ; vmovd         %xmm8,(%r9,%rdi,4)
8303  DB  235,143                             ; jmp           4261 <_sk_store_8888_avx+0xa0>
8304  DB  102,144                             ; xchg          %ax,%ax
8305  DB  246,255                             ; idiv          %bh
8306  DB  255                                 ; (bad)
8307  DB  255                                 ; (bad)
8308  DB  238                                 ; out           %al,(%dx)
8309  DB  255                                 ; (bad)
8310  DB  255                                 ; (bad)
8311  DB  255,230                             ; jmpq          *%rsi
8312  DB  255                                 ; (bad)
8313  DB  255                                 ; (bad)
8314  DB  255                                 ; (bad)
8315  DB  222,255                             ; fdivrp        %st,%st(7)
8316  DB  255                                 ; (bad)
8317  DB  255,209                             ; callq         *%rcx
8318  DB  255                                 ; (bad)
8319  DB  255                                 ; (bad)
8320  DB  255,195                             ; inc           %ebx
8321  DB  255                                 ; (bad)
8322  DB  255                                 ; (bad)
8323  DB  255                                 ; .byte         0xff
8324  DB  181,255                             ; mov           $0xff,%ch
8325  DB  255                                 ; (bad)
8326  DB  255                                 ; .byte         0xff
8327
8328PUBLIC _sk_load_f16_avx
8329_sk_load_f16_avx LABEL PROC
8330  DB  72,131,236,120                      ; sub           $0x78,%rsp
8331  DB  72,173                              ; lods          %ds:(%rsi),%rax
8332  DB  72,139,0                            ; mov           (%rax),%rax
8333  DB  72,133,201                          ; test          %rcx,%rcx
8334  DB  197,252,17,124,36,64                ; vmovups       %ymm7,0x40(%rsp)
8335  DB  197,252,17,116,36,32                ; vmovups       %ymm6,0x20(%rsp)
8336  DB  197,252,17,44,36                    ; vmovups       %ymm5,(%rsp)
8337  DB  15,133,49,2,0,0                     ; jne           4544 <_sk_load_f16_avx+0x254>
8338  DB  197,121,16,4,248                    ; vmovupd       (%rax,%rdi,8),%xmm8
8339  DB  197,249,16,84,248,16                ; vmovupd       0x10(%rax,%rdi,8),%xmm2
8340  DB  197,249,16,76,248,32                ; vmovupd       0x20(%rax,%rdi,8),%xmm1
8341  DB  197,122,111,76,248,48               ; vmovdqu       0x30(%rax,%rdi,8),%xmm9
8342  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
8343  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
8344  DB  196,193,113,97,217                  ; vpunpcklwd    %xmm9,%xmm1,%xmm3
8345  DB  196,193,113,105,201                 ; vpunpckhwd    %xmm9,%xmm1,%xmm1
8346  DB  197,121,97,242                      ; vpunpcklwd    %xmm2,%xmm0,%xmm14
8347  DB  197,121,105,194                     ; vpunpckhwd    %xmm2,%xmm0,%xmm8
8348  DB  197,97,97,249                       ; vpunpcklwd    %xmm1,%xmm3,%xmm15
8349  DB  197,97,105,217                      ; vpunpckhwd    %xmm1,%xmm3,%xmm11
8350  DB  196,193,9,108,199                   ; vpunpcklqdq   %xmm15,%xmm14,%xmm0
8351  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
8352  DB  196,193,121,105,201                 ; vpunpckhwd    %xmm9,%xmm0,%xmm1
8353  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
8354  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
8355  DB  184,0,128,0,0                       ; mov           $0x8000,%eax
8356  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
8357  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
8358  DB  196,99,117,24,209,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm10
8359  DB  196,193,124,84,202                  ; vandps        %ymm10,%ymm0,%ymm1
8360  DB  197,252,87,193                      ; vxorps        %ymm1,%ymm0,%ymm0
8361  DB  184,0,4,0,0                         ; mov           $0x400,%eax
8362  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
8363  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
8364  DB  197,121,112,226,0                   ; vpshufd       $0x0,%xmm2,%xmm12
8365  DB  197,153,102,211                     ; vpcmpgtd      %xmm3,%xmm12,%xmm2
8366  DB  197,25,102,232                      ; vpcmpgtd      %xmm0,%xmm12,%xmm13
8367  DB  196,227,21,24,242,1                 ; vinsertf128   $0x1,%xmm2,%ymm13,%ymm6
8368  DB  196,227,125,25,202,1                ; vextractf128  $0x1,%ymm1,%xmm2
8369  DB  197,145,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm13
8370  DB  197,233,114,243,13                  ; vpslld        $0xd,%xmm3,%xmm2
8371  DB  184,0,0,0,56                        ; mov           $0x38000000,%eax
8372  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
8373  DB  197,249,112,235,0                   ; vpshufd       $0x0,%xmm3,%xmm5
8374  DB  197,145,254,253                     ; vpaddd        %xmm5,%xmm13,%xmm7
8375  DB  197,193,254,210                     ; vpaddd        %xmm2,%xmm7,%xmm2
8376  DB  197,241,114,241,16                  ; vpslld        $0x10,%xmm1,%xmm1
8377  DB  197,249,114,240,13                  ; vpslld        $0xd,%xmm0,%xmm0
8378  DB  197,241,254,205                     ; vpaddd        %xmm5,%xmm1,%xmm1
8379  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
8380  DB  196,227,125,24,194,1                ; vinsertf128   $0x1,%xmm2,%ymm0,%ymm0
8381  DB  196,65,20,87,237                    ; vxorps        %ymm13,%ymm13,%ymm13
8382  DB  196,195,125,74,197,96               ; vblendvps     %ymm6,%ymm13,%ymm0,%ymm0
8383  DB  196,193,9,109,207                   ; vpunpckhqdq   %xmm15,%xmm14,%xmm1
8384  DB  196,193,113,105,209                 ; vpunpckhwd    %xmm9,%xmm1,%xmm2
8385  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
8386  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8387  DB  196,193,116,84,210                  ; vandps        %ymm10,%ymm1,%ymm2
8388  DB  197,244,87,202                      ; vxorps        %ymm2,%ymm1,%ymm1
8389  DB  196,227,125,25,206,1                ; vextractf128  $0x1,%ymm1,%xmm6
8390  DB  197,153,102,254                     ; vpcmpgtd      %xmm6,%xmm12,%xmm7
8391  DB  197,25,102,241                      ; vpcmpgtd      %xmm1,%xmm12,%xmm14
8392  DB  196,99,13,24,247,1                  ; vinsertf128   $0x1,%xmm7,%ymm14,%ymm14
8393  DB  196,227,125,25,215,1                ; vextractf128  $0x1,%ymm2,%xmm7
8394  DB  197,193,114,247,16                  ; vpslld        $0x10,%xmm7,%xmm7
8395  DB  197,201,114,246,13                  ; vpslld        $0xd,%xmm6,%xmm6
8396  DB  197,193,254,253                     ; vpaddd        %xmm5,%xmm7,%xmm7
8397  DB  197,193,254,246                     ; vpaddd        %xmm6,%xmm7,%xmm6
8398  DB  197,233,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm2
8399  DB  197,241,114,241,13                  ; vpslld        $0xd,%xmm1,%xmm1
8400  DB  197,233,254,213                     ; vpaddd        %xmm5,%xmm2,%xmm2
8401  DB  197,233,254,201                     ; vpaddd        %xmm1,%xmm2,%xmm1
8402  DB  196,227,117,24,206,1                ; vinsertf128   $0x1,%xmm6,%ymm1,%ymm1
8403  DB  196,195,117,74,205,224              ; vblendvps     %ymm14,%ymm13,%ymm1,%ymm1
8404  DB  196,193,57,108,211                  ; vpunpcklqdq   %xmm11,%xmm8,%xmm2
8405  DB  196,193,105,105,241                 ; vpunpckhwd    %xmm9,%xmm2,%xmm6
8406  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
8407  DB  196,227,109,24,214,1                ; vinsertf128   $0x1,%xmm6,%ymm2,%ymm2
8408  DB  196,193,108,84,242                  ; vandps        %ymm10,%ymm2,%ymm6
8409  DB  197,236,87,214                      ; vxorps        %ymm6,%ymm2,%ymm2
8410  DB  196,195,125,25,214,1                ; vextractf128  $0x1,%ymm2,%xmm14
8411  DB  196,193,25,102,254                  ; vpcmpgtd      %xmm14,%xmm12,%xmm7
8412  DB  197,25,102,250                      ; vpcmpgtd      %xmm2,%xmm12,%xmm15
8413  DB  196,99,5,24,255,1                   ; vinsertf128   $0x1,%xmm7,%ymm15,%ymm15
8414  DB  196,227,125,25,247,1                ; vextractf128  $0x1,%ymm6,%xmm7
8415  DB  197,193,114,247,16                  ; vpslld        $0x10,%xmm7,%xmm7
8416  DB  196,193,9,114,246,13                ; vpslld        $0xd,%xmm14,%xmm14
8417  DB  197,193,254,253                     ; vpaddd        %xmm5,%xmm7,%xmm7
8418  DB  196,193,65,254,254                  ; vpaddd        %xmm14,%xmm7,%xmm7
8419  DB  197,201,114,246,16                  ; vpslld        $0x10,%xmm6,%xmm6
8420  DB  197,233,114,242,13                  ; vpslld        $0xd,%xmm2,%xmm2
8421  DB  197,201,254,245                     ; vpaddd        %xmm5,%xmm6,%xmm6
8422  DB  197,201,254,210                     ; vpaddd        %xmm2,%xmm6,%xmm2
8423  DB  196,227,109,24,215,1                ; vinsertf128   $0x1,%xmm7,%ymm2,%ymm2
8424  DB  196,195,109,74,213,240              ; vblendvps     %ymm15,%ymm13,%ymm2,%ymm2
8425  DB  196,193,57,109,243                  ; vpunpckhqdq   %xmm11,%xmm8,%xmm6
8426  DB  196,193,73,105,249                  ; vpunpckhwd    %xmm9,%xmm6,%xmm7
8427  DB  196,226,121,51,246                  ; vpmovzxwd     %xmm6,%xmm6
8428  DB  196,227,77,24,247,1                 ; vinsertf128   $0x1,%xmm7,%ymm6,%ymm6
8429  DB  196,193,76,84,250                   ; vandps        %ymm10,%ymm6,%ymm7
8430  DB  197,204,87,247                      ; vxorps        %ymm7,%ymm6,%ymm6
8431  DB  196,195,125,25,240,1                ; vextractf128  $0x1,%ymm6,%xmm8
8432  DB  196,65,25,102,200                   ; vpcmpgtd      %xmm8,%xmm12,%xmm9
8433  DB  197,25,102,214                      ; vpcmpgtd      %xmm6,%xmm12,%xmm10
8434  DB  196,67,45,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm9
8435  DB  196,227,125,25,251,1                ; vextractf128  $0x1,%ymm7,%xmm3
8436  DB  197,225,114,243,16                  ; vpslld        $0x10,%xmm3,%xmm3
8437  DB  197,193,114,247,16                  ; vpslld        $0x10,%xmm7,%xmm7
8438  DB  197,193,254,253                     ; vpaddd        %xmm5,%xmm7,%xmm7
8439  DB  197,225,254,221                     ; vpaddd        %xmm5,%xmm3,%xmm3
8440  DB  196,193,81,114,240,13               ; vpslld        $0xd,%xmm8,%xmm5
8441  DB  197,225,254,221                     ; vpaddd        %xmm5,%xmm3,%xmm3
8442  DB  197,209,114,246,13                  ; vpslld        $0xd,%xmm6,%xmm5
8443  DB  197,193,254,237                     ; vpaddd        %xmm5,%xmm7,%xmm5
8444  DB  196,227,85,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm5,%ymm3
8445  DB  196,195,101,74,221,144              ; vblendvps     %ymm9,%ymm13,%ymm3,%ymm3
8446  DB  72,173                              ; lods          %ds:(%rsi),%rax
8447  DB  197,252,16,44,36                    ; vmovups       (%rsp),%ymm5
8448  DB  197,252,16,116,36,32                ; vmovups       0x20(%rsp),%ymm6
8449  DB  197,252,16,124,36,64                ; vmovups       0x40(%rsp),%ymm7
8450  DB  72,131,196,120                      ; add           $0x78,%rsp
8451  DB  255,224                             ; jmpq          *%rax
8452  DB  197,123,16,4,248                    ; vmovsd        (%rax,%rdi,8),%xmm8
8453  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
8454  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8455  DB  116,79                              ; je            45a3 <_sk_load_f16_avx+0x2b3>
8456  DB  197,57,22,68,248,8                  ; vmovhpd       0x8(%rax,%rdi,8),%xmm8,%xmm8
8457  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8458  DB  114,67                              ; jb            45a3 <_sk_load_f16_avx+0x2b3>
8459  DB  197,251,16,84,248,16                ; vmovsd        0x10(%rax,%rdi,8),%xmm2
8460  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8461  DB  116,68                              ; je            45b0 <_sk_load_f16_avx+0x2c0>
8462  DB  197,233,22,84,248,24                ; vmovhpd       0x18(%rax,%rdi,8),%xmm2,%xmm2
8463  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8464  DB  114,56                              ; jb            45b0 <_sk_load_f16_avx+0x2c0>
8465  DB  197,251,16,76,248,32                ; vmovsd        0x20(%rax,%rdi,8),%xmm1
8466  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8467  DB  15,132,162,253,255,255              ; je            432a <_sk_load_f16_avx+0x3a>
8468  DB  197,241,22,76,248,40                ; vmovhpd       0x28(%rax,%rdi,8),%xmm1,%xmm1
8469  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8470  DB  15,130,146,253,255,255              ; jb            432a <_sk_load_f16_avx+0x3a>
8471  DB  197,122,126,76,248,48               ; vmovq         0x30(%rax,%rdi,8),%xmm9
8472  DB  233,135,253,255,255                 ; jmpq          432a <_sk_load_f16_avx+0x3a>
8473  DB  197,241,87,201                      ; vxorpd        %xmm1,%xmm1,%xmm1
8474  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
8475  DB  233,122,253,255,255                 ; jmpq          432a <_sk_load_f16_avx+0x3a>
8476  DB  197,241,87,201                      ; vxorpd        %xmm1,%xmm1,%xmm1
8477  DB  233,113,253,255,255                 ; jmpq          432a <_sk_load_f16_avx+0x3a>
8478
8479PUBLIC _sk_gather_f16_avx
8480_sk_gather_f16_avx LABEL PROC
8481  DB  65,87                               ; push          %r15
8482  DB  65,86                               ; push          %r14
8483  DB  65,84                               ; push          %r12
8484  DB  83                                  ; push          %rbx
8485  DB  72,129,236,152,0,0,0                ; sub           $0x98,%rsp
8486  DB  197,252,17,124,36,96                ; vmovups       %ymm7,0x60(%rsp)
8487  DB  197,252,17,116,36,64                ; vmovups       %ymm6,0x40(%rsp)
8488  DB  197,252,17,108,36,32                ; vmovups       %ymm5,0x20(%rsp)
8489  DB  197,252,17,36,36                    ; vmovups       %ymm4,(%rsp)
8490  DB  72,173                              ; lods          %ds:(%rsi),%rax
8491  DB  76,139,0                            ; mov           (%rax),%r8
8492  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
8493  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
8494  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
8495  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
8496  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
8497  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
8498  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
8499  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
8500  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
8501  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
8502  DB  65,137,193                          ; mov           %eax,%r9d
8503  DB  72,193,232,32                       ; shr           $0x20,%rax
8504  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
8505  DB  69,137,211                          ; mov           %r10d,%r11d
8506  DB  73,193,234,32                       ; shr           $0x20,%r10
8507  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
8508  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
8509  DB  65,137,222                          ; mov           %ebx,%r14d
8510  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
8511  DB  69,137,252                          ; mov           %r15d,%r12d
8512  DB  73,193,239,32                       ; shr           $0x20,%r15
8513  DB  72,193,235,32                       ; shr           $0x20,%rbx
8514  DB  196,193,122,126,4,216               ; vmovq         (%r8,%rbx,8),%xmm0
8515  DB  196,129,122,126,12,240              ; vmovq         (%r8,%r14,8),%xmm1
8516  DB  197,113,108,200                     ; vpunpcklqdq   %xmm0,%xmm1,%xmm9
8517  DB  196,129,122,126,12,248              ; vmovq         (%r8,%r15,8),%xmm1
8518  DB  196,129,122,126,20,224              ; vmovq         (%r8,%r12,8),%xmm2
8519  DB  197,233,108,201                     ; vpunpcklqdq   %xmm1,%xmm2,%xmm1
8520  DB  196,129,122,126,20,208              ; vmovq         (%r8,%r10,8),%xmm2
8521  DB  196,129,122,126,28,216              ; vmovq         (%r8,%r11,8),%xmm3
8522  DB  197,97,108,210                      ; vpunpcklqdq   %xmm2,%xmm3,%xmm10
8523  DB  196,65,122,126,4,192                ; vmovq         (%r8,%rax,8),%xmm8
8524  DB  196,129,122,126,28,200              ; vmovq         (%r8,%r9,8),%xmm3
8525  DB  196,193,97,108,216                  ; vpunpcklqdq   %xmm8,%xmm3,%xmm3
8526  DB  197,177,97,193                      ; vpunpcklwd    %xmm1,%xmm9,%xmm0
8527  DB  197,177,105,201                     ; vpunpckhwd    %xmm1,%xmm9,%xmm1
8528  DB  197,169,97,211                      ; vpunpcklwd    %xmm3,%xmm10,%xmm2
8529  DB  197,169,105,219                     ; vpunpckhwd    %xmm3,%xmm10,%xmm3
8530  DB  197,121,97,241                      ; vpunpcklwd    %xmm1,%xmm0,%xmm14
8531  DB  197,121,105,193                     ; vpunpckhwd    %xmm1,%xmm0,%xmm8
8532  DB  197,105,97,251                      ; vpunpcklwd    %xmm3,%xmm2,%xmm15
8533  DB  197,105,105,219                     ; vpunpckhwd    %xmm3,%xmm2,%xmm11
8534  DB  196,193,9,108,199                   ; vpunpcklqdq   %xmm15,%xmm14,%xmm0
8535  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
8536  DB  196,193,121,105,209                 ; vpunpckhwd    %xmm9,%xmm0,%xmm2
8537  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
8538  DB  196,227,125,24,194,1                ; vinsertf128   $0x1,%xmm2,%ymm0,%ymm0
8539  DB  184,0,128,0,0                       ; mov           $0x8000,%eax
8540  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
8541  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
8542  DB  196,99,109,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm10
8543  DB  196,193,124,84,210                  ; vandps        %ymm10,%ymm0,%ymm2
8544  DB  197,252,87,194                      ; vxorps        %ymm2,%ymm0,%ymm0
8545  DB  184,0,4,0,0                         ; mov           $0x400,%eax
8546  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
8547  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
8548  DB  197,121,112,225,0                   ; vpshufd       $0x0,%xmm1,%xmm12
8549  DB  197,153,102,203                     ; vpcmpgtd      %xmm3,%xmm12,%xmm1
8550  DB  197,25,102,232                      ; vpcmpgtd      %xmm0,%xmm12,%xmm13
8551  DB  196,227,21,24,225,1                 ; vinsertf128   $0x1,%xmm1,%ymm13,%ymm4
8552  DB  196,227,125,25,209,1                ; vextractf128  $0x1,%ymm2,%xmm1
8553  DB  197,145,114,241,16                  ; vpslld        $0x10,%xmm1,%xmm13
8554  DB  197,241,114,243,13                  ; vpslld        $0xd,%xmm3,%xmm1
8555  DB  184,0,0,0,56                        ; mov           $0x38000000,%eax
8556  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
8557  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
8558  DB  197,145,254,251                     ; vpaddd        %xmm3,%xmm13,%xmm7
8559  DB  197,193,254,201                     ; vpaddd        %xmm1,%xmm7,%xmm1
8560  DB  197,233,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm2
8561  DB  197,249,114,240,13                  ; vpslld        $0xd,%xmm0,%xmm0
8562  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
8563  DB  197,233,254,192                     ; vpaddd        %xmm0,%xmm2,%xmm0
8564  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
8565  DB  196,65,20,87,237                    ; vxorps        %ymm13,%ymm13,%ymm13
8566  DB  196,195,125,74,197,64               ; vblendvps     %ymm4,%ymm13,%ymm0,%ymm0
8567  DB  196,193,9,109,207                   ; vpunpckhqdq   %xmm15,%xmm14,%xmm1
8568  DB  196,193,113,105,209                 ; vpunpckhwd    %xmm9,%xmm1,%xmm2
8569  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
8570  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8571  DB  196,193,116,84,210                  ; vandps        %ymm10,%ymm1,%ymm2
8572  DB  197,244,87,202                      ; vxorps        %ymm2,%ymm1,%ymm1
8573  DB  196,227,125,25,204,1                ; vextractf128  $0x1,%ymm1,%xmm4
8574  DB  197,153,102,252                     ; vpcmpgtd      %xmm4,%xmm12,%xmm7
8575  DB  197,25,102,241                      ; vpcmpgtd      %xmm1,%xmm12,%xmm14
8576  DB  196,227,13,24,255,1                 ; vinsertf128   $0x1,%xmm7,%ymm14,%ymm7
8577  DB  196,227,125,25,214,1                ; vextractf128  $0x1,%ymm2,%xmm6
8578  DB  197,201,114,246,16                  ; vpslld        $0x10,%xmm6,%xmm6
8579  DB  197,217,114,244,13                  ; vpslld        $0xd,%xmm4,%xmm4
8580  DB  197,201,254,243                     ; vpaddd        %xmm3,%xmm6,%xmm6
8581  DB  197,201,254,228                     ; vpaddd        %xmm4,%xmm6,%xmm4
8582  DB  197,233,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm2
8583  DB  197,241,114,241,13                  ; vpslld        $0xd,%xmm1,%xmm1
8584  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
8585  DB  197,233,254,201                     ; vpaddd        %xmm1,%xmm2,%xmm1
8586  DB  196,227,117,24,204,1                ; vinsertf128   $0x1,%xmm4,%ymm1,%ymm1
8587  DB  196,195,117,74,205,112              ; vblendvps     %ymm7,%ymm13,%ymm1,%ymm1
8588  DB  196,193,57,108,211                  ; vpunpcklqdq   %xmm11,%xmm8,%xmm2
8589  DB  196,193,105,105,225                 ; vpunpckhwd    %xmm9,%xmm2,%xmm4
8590  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
8591  DB  196,227,109,24,212,1                ; vinsertf128   $0x1,%xmm4,%ymm2,%ymm2
8592  DB  196,193,108,84,226                  ; vandps        %ymm10,%ymm2,%ymm4
8593  DB  197,236,87,212                      ; vxorps        %ymm4,%ymm2,%ymm2
8594  DB  196,227,125,25,214,1                ; vextractf128  $0x1,%ymm2,%xmm6
8595  DB  197,153,102,254                     ; vpcmpgtd      %xmm6,%xmm12,%xmm7
8596  DB  197,25,102,242                      ; vpcmpgtd      %xmm2,%xmm12,%xmm14
8597  DB  196,227,13,24,255,1                 ; vinsertf128   $0x1,%xmm7,%ymm14,%ymm7
8598  DB  196,227,125,25,229,1                ; vextractf128  $0x1,%ymm4,%xmm5
8599  DB  197,209,114,245,16                  ; vpslld        $0x10,%xmm5,%xmm5
8600  DB  197,201,114,246,13                  ; vpslld        $0xd,%xmm6,%xmm6
8601  DB  197,209,254,235                     ; vpaddd        %xmm3,%xmm5,%xmm5
8602  DB  197,209,254,238                     ; vpaddd        %xmm6,%xmm5,%xmm5
8603  DB  197,217,114,244,16                  ; vpslld        $0x10,%xmm4,%xmm4
8604  DB  197,233,114,242,13                  ; vpslld        $0xd,%xmm2,%xmm2
8605  DB  197,217,254,227                     ; vpaddd        %xmm3,%xmm4,%xmm4
8606  DB  197,217,254,210                     ; vpaddd        %xmm2,%xmm4,%xmm2
8607  DB  196,227,109,24,213,1                ; vinsertf128   $0x1,%xmm5,%ymm2,%ymm2
8608  DB  196,195,109,74,213,112              ; vblendvps     %ymm7,%ymm13,%ymm2,%ymm2
8609  DB  196,193,57,109,227                  ; vpunpckhqdq   %xmm11,%xmm8,%xmm4
8610  DB  196,193,89,105,233                  ; vpunpckhwd    %xmm9,%xmm4,%xmm5
8611  DB  196,226,121,51,228                  ; vpmovzxwd     %xmm4,%xmm4
8612  DB  196,227,93,24,229,1                 ; vinsertf128   $0x1,%xmm5,%ymm4,%ymm4
8613  DB  196,193,92,84,234                   ; vandps        %ymm10,%ymm4,%ymm5
8614  DB  197,220,87,229                      ; vxorps        %ymm5,%ymm4,%ymm4
8615  DB  196,227,125,25,230,1                ; vextractf128  $0x1,%ymm4,%xmm6
8616  DB  197,153,102,254                     ; vpcmpgtd      %xmm6,%xmm12,%xmm7
8617  DB  197,25,102,196                      ; vpcmpgtd      %xmm4,%xmm12,%xmm8
8618  DB  196,99,61,24,199,1                  ; vinsertf128   $0x1,%xmm7,%ymm8,%ymm8
8619  DB  196,227,125,25,239,1                ; vextractf128  $0x1,%ymm5,%xmm7
8620  DB  197,193,114,247,16                  ; vpslld        $0x10,%xmm7,%xmm7
8621  DB  197,209,114,245,16                  ; vpslld        $0x10,%xmm5,%xmm5
8622  DB  197,209,254,235                     ; vpaddd        %xmm3,%xmm5,%xmm5
8623  DB  197,193,254,219                     ; vpaddd        %xmm3,%xmm7,%xmm3
8624  DB  197,201,114,246,13                  ; vpslld        $0xd,%xmm6,%xmm6
8625  DB  197,225,254,222                     ; vpaddd        %xmm6,%xmm3,%xmm3
8626  DB  197,217,114,244,13                  ; vpslld        $0xd,%xmm4,%xmm4
8627  DB  197,209,254,228                     ; vpaddd        %xmm4,%xmm5,%xmm4
8628  DB  196,227,93,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm4,%ymm3
8629  DB  196,195,101,74,221,128              ; vblendvps     %ymm8,%ymm13,%ymm3,%ymm3
8630  DB  72,173                              ; lods          %ds:(%rsi),%rax
8631  DB  197,252,16,36,36                    ; vmovups       (%rsp),%ymm4
8632  DB  197,252,16,108,36,32                ; vmovups       0x20(%rsp),%ymm5
8633  DB  197,252,16,116,36,64                ; vmovups       0x40(%rsp),%ymm6
8634  DB  197,252,16,124,36,96                ; vmovups       0x60(%rsp),%ymm7
8635  DB  72,129,196,152,0,0,0                ; add           $0x98,%rsp
8636  DB  91                                  ; pop           %rbx
8637  DB  65,92                               ; pop           %r12
8638  DB  65,94                               ; pop           %r14
8639  DB  65,95                               ; pop           %r15
8640  DB  255,224                             ; jmpq          *%rax
8641
8642PUBLIC _sk_store_f16_avx
8643_sk_store_f16_avx LABEL PROC
8644  DB  72,129,236,216,0,0,0                ; sub           $0xd8,%rsp
8645  DB  197,252,17,188,36,160,0,0,0         ; vmovups       %ymm7,0xa0(%rsp)
8646  DB  197,252,17,180,36,128,0,0,0         ; vmovups       %ymm6,0x80(%rsp)
8647  DB  197,252,17,108,36,96                ; vmovups       %ymm5,0x60(%rsp)
8648  DB  197,252,17,100,36,64                ; vmovups       %ymm4,0x40(%rsp)
8649  DB  197,252,40,225                      ; vmovaps       %ymm1,%ymm4
8650  DB  72,173                              ; lods          %ds:(%rsi),%rax
8651  DB  76,139,0                            ; mov           (%rax),%r8
8652  DB  184,0,0,0,128                       ; mov           $0x80000000,%eax
8653  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
8654  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
8655  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
8656  DB  197,60,84,208                       ; vandps        %ymm0,%ymm8,%ymm10
8657  DB  196,65,124,87,218                   ; vxorps        %ymm10,%ymm0,%ymm11
8658  DB  184,0,0,128,56                      ; mov           $0x38800000,%eax
8659  DB  196,67,125,25,220,1                 ; vextractf128  $0x1,%ymm11,%xmm12
8660  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
8661  DB  196,65,121,112,201,0                ; vpshufd       $0x0,%xmm9,%xmm9
8662  DB  196,65,49,102,236                   ; vpcmpgtd      %xmm12,%xmm9,%xmm13
8663  DB  196,65,49,102,243                   ; vpcmpgtd      %xmm11,%xmm9,%xmm14
8664  DB  196,67,13,24,237,1                  ; vinsertf128   $0x1,%xmm13,%ymm14,%ymm13
8665  DB  196,67,125,25,214,1                 ; vextractf128  $0x1,%ymm10,%xmm14
8666  DB  196,193,9,114,214,16                ; vpsrld        $0x10,%xmm14,%xmm14
8667  DB  196,193,1,114,210,16                ; vpsrld        $0x10,%xmm10,%xmm15
8668  DB  196,193,33,114,211,13               ; vpsrld        $0xd,%xmm11,%xmm11
8669  DB  196,193,25,114,212,13               ; vpsrld        $0xd,%xmm12,%xmm12
8670  DB  184,0,192,1,0                       ; mov           $0x1c000,%eax
8671  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
8672  DB  196,65,121,112,210,0                ; vpshufd       $0x0,%xmm10,%xmm10
8673  DB  196,65,1,250,250                    ; vpsubd        %xmm10,%xmm15,%xmm15
8674  DB  196,65,9,250,242                    ; vpsubd        %xmm10,%xmm14,%xmm14
8675  DB  196,65,9,254,228                    ; vpaddd        %xmm12,%xmm14,%xmm12
8676  DB  196,65,1,254,219                    ; vpaddd        %xmm11,%xmm15,%xmm11
8677  DB  196,67,37,24,228,1                  ; vinsertf128   $0x1,%xmm12,%ymm11,%ymm12
8678  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
8679  DB  196,99,29,74,225,208                ; vblendvps     %ymm13,%ymm1,%ymm12,%ymm12
8680  DB  197,60,84,236                       ; vandps        %ymm4,%ymm8,%ymm13
8681  DB  197,252,17,36,36                    ; vmovups       %ymm4,(%rsp)
8682  DB  196,65,92,87,245                    ; vxorps        %ymm13,%ymm4,%ymm14
8683  DB  196,67,125,25,247,1                 ; vextractf128  $0x1,%ymm14,%xmm15
8684  DB  196,193,49,102,255                  ; vpcmpgtd      %xmm15,%xmm9,%xmm7
8685  DB  196,65,49,102,222                   ; vpcmpgtd      %xmm14,%xmm9,%xmm11
8686  DB  196,99,37,24,223,1                  ; vinsertf128   $0x1,%xmm7,%ymm11,%ymm11
8687  DB  196,99,125,25,238,1                 ; vextractf128  $0x1,%ymm13,%xmm6
8688  DB  197,201,114,214,16                  ; vpsrld        $0x10,%xmm6,%xmm6
8689  DB  196,193,65,114,215,13               ; vpsrld        $0xd,%xmm15,%xmm7
8690  DB  196,193,73,250,242                  ; vpsubd        %xmm10,%xmm6,%xmm6
8691  DB  197,73,254,255                      ; vpaddd        %xmm7,%xmm6,%xmm15
8692  DB  196,193,65,114,213,16               ; vpsrld        $0x10,%xmm13,%xmm7
8693  DB  196,193,73,114,214,13               ; vpsrld        $0xd,%xmm14,%xmm6
8694  DB  196,193,65,250,250                  ; vpsubd        %xmm10,%xmm7,%xmm7
8695  DB  197,193,254,246                     ; vpaddd        %xmm6,%xmm7,%xmm6
8696  DB  196,195,77,24,247,1                 ; vinsertf128   $0x1,%xmm15,%ymm6,%ymm6
8697  DB  196,99,77,74,233,176                ; vblendvps     %ymm11,%ymm1,%ymm6,%ymm13
8698  DB  197,188,84,242                      ; vandps        %ymm2,%ymm8,%ymm6
8699  DB  197,252,17,84,36,32                 ; vmovups       %ymm2,0x20(%rsp)
8700  DB  197,236,87,254                      ; vxorps        %ymm6,%ymm2,%ymm7
8701  DB  196,195,125,25,251,1                ; vextractf128  $0x1,%ymm7,%xmm11
8702  DB  196,65,49,102,243                   ; vpcmpgtd      %xmm11,%xmm9,%xmm14
8703  DB  197,49,102,255                      ; vpcmpgtd      %xmm7,%xmm9,%xmm15
8704  DB  196,67,5,24,246,1                   ; vinsertf128   $0x1,%xmm14,%ymm15,%ymm14
8705  DB  196,227,125,25,245,1                ; vextractf128  $0x1,%ymm6,%xmm5
8706  DB  197,129,114,213,16                  ; vpsrld        $0x10,%xmm5,%xmm15
8707  DB  196,193,81,114,211,13               ; vpsrld        $0xd,%xmm11,%xmm5
8708  DB  196,193,1,250,226                   ; vpsubd        %xmm10,%xmm15,%xmm4
8709  DB  197,217,254,229                     ; vpaddd        %xmm5,%xmm4,%xmm4
8710  DB  197,209,114,214,16                  ; vpsrld        $0x10,%xmm6,%xmm5
8711  DB  197,201,114,215,13                  ; vpsrld        $0xd,%xmm7,%xmm6
8712  DB  196,193,81,250,234                  ; vpsubd        %xmm10,%xmm5,%xmm5
8713  DB  197,209,254,238                     ; vpaddd        %xmm6,%xmm5,%xmm5
8714  DB  196,227,85,24,228,1                 ; vinsertf128   $0x1,%xmm4,%ymm5,%ymm4
8715  DB  196,99,93,74,217,224                ; vblendvps     %ymm14,%ymm1,%ymm4,%ymm11
8716  DB  197,188,84,235                      ; vandps        %ymm3,%ymm8,%ymm5
8717  DB  197,228,87,245                      ; vxorps        %ymm5,%ymm3,%ymm6
8718  DB  196,227,125,25,247,1                ; vextractf128  $0x1,%ymm6,%xmm7
8719  DB  197,177,102,231                     ; vpcmpgtd      %xmm7,%xmm9,%xmm4
8720  DB  197,49,102,198                      ; vpcmpgtd      %xmm6,%xmm9,%xmm8
8721  DB  196,227,61,24,228,1                 ; vinsertf128   $0x1,%xmm4,%ymm8,%ymm4
8722  DB  196,227,125,25,234,1                ; vextractf128  $0x1,%ymm5,%xmm2
8723  DB  197,233,114,210,16                  ; vpsrld        $0x10,%xmm2,%xmm2
8724  DB  197,209,114,213,16                  ; vpsrld        $0x10,%xmm5,%xmm5
8725  DB  196,193,81,250,234                  ; vpsubd        %xmm10,%xmm5,%xmm5
8726  DB  196,193,105,250,210                 ; vpsubd        %xmm10,%xmm2,%xmm2
8727  DB  197,193,114,215,13                  ; vpsrld        $0xd,%xmm7,%xmm7
8728  DB  197,233,254,215                     ; vpaddd        %xmm7,%xmm2,%xmm2
8729  DB  197,201,114,214,13                  ; vpsrld        $0xd,%xmm6,%xmm6
8730  DB  197,209,254,238                     ; vpaddd        %xmm6,%xmm5,%xmm5
8731  DB  196,227,85,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm5,%ymm2
8732  DB  196,227,109,74,209,64               ; vblendvps     %ymm4,%ymm1,%ymm2,%ymm2
8733  DB  196,99,125,25,225,1                 ; vextractf128  $0x1,%ymm12,%xmm1
8734  DB  196,226,25,43,201                   ; vpackusdw     %xmm1,%xmm12,%xmm1
8735  DB  196,99,125,25,236,1                 ; vextractf128  $0x1,%ymm13,%xmm4
8736  DB  196,226,17,43,228                   ; vpackusdw     %xmm4,%xmm13,%xmm4
8737  DB  196,99,125,25,221,1                 ; vextractf128  $0x1,%ymm11,%xmm5
8738  DB  196,226,33,43,237                   ; vpackusdw     %xmm5,%xmm11,%xmm5
8739  DB  196,227,125,25,214,1                ; vextractf128  $0x1,%ymm2,%xmm6
8740  DB  196,226,105,43,214                  ; vpackusdw     %xmm6,%xmm2,%xmm2
8741  DB  197,241,97,244                      ; vpunpcklwd    %xmm4,%xmm1,%xmm6
8742  DB  197,241,105,204                     ; vpunpckhwd    %xmm4,%xmm1,%xmm1
8743  DB  197,209,97,226                      ; vpunpcklwd    %xmm2,%xmm5,%xmm4
8744  DB  197,209,105,210                     ; vpunpckhwd    %xmm2,%xmm5,%xmm2
8745  DB  197,73,98,220                       ; vpunpckldq    %xmm4,%xmm6,%xmm11
8746  DB  197,73,106,212                      ; vpunpckhdq    %xmm4,%xmm6,%xmm10
8747  DB  197,113,98,202                      ; vpunpckldq    %xmm2,%xmm1,%xmm9
8748  DB  197,113,106,194                     ; vpunpckhdq    %xmm2,%xmm1,%xmm8
8749  DB  72,133,201                          ; test          %rcx,%rcx
8750  DB  117,79                              ; jne           4b1a <_sk_store_f16_avx+0x271>
8751  DB  196,65,120,17,28,248                ; vmovups       %xmm11,(%r8,%rdi,8)
8752  DB  196,65,120,17,84,248,16             ; vmovups       %xmm10,0x10(%r8,%rdi,8)
8753  DB  196,65,120,17,76,248,32             ; vmovups       %xmm9,0x20(%r8,%rdi,8)
8754  DB  196,65,122,127,68,248,48            ; vmovdqu       %xmm8,0x30(%r8,%rdi,8)
8755  DB  72,173                              ; lods          %ds:(%rsi),%rax
8756  DB  197,252,16,12,36                    ; vmovups       (%rsp),%ymm1
8757  DB  197,252,16,84,36,32                 ; vmovups       0x20(%rsp),%ymm2
8758  DB  197,252,16,100,36,64                ; vmovups       0x40(%rsp),%ymm4
8759  DB  197,252,16,108,36,96                ; vmovups       0x60(%rsp),%ymm5
8760  DB  197,252,16,180,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm6
8761  DB  197,252,16,188,36,160,0,0,0         ; vmovups       0xa0(%rsp),%ymm7
8762  DB  72,129,196,216,0,0,0                ; add           $0xd8,%rsp
8763  DB  255,224                             ; jmpq          *%rax
8764  DB  196,65,121,214,28,248               ; vmovq         %xmm11,(%r8,%rdi,8)
8765  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8766  DB  116,192                             ; je            4ae6 <_sk_store_f16_avx+0x23d>
8767  DB  196,65,121,23,92,248,8              ; vmovhpd       %xmm11,0x8(%r8,%rdi,8)
8768  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8769  DB  114,179                             ; jb            4ae6 <_sk_store_f16_avx+0x23d>
8770  DB  196,65,121,214,84,248,16            ; vmovq         %xmm10,0x10(%r8,%rdi,8)
8771  DB  116,170                             ; je            4ae6 <_sk_store_f16_avx+0x23d>
8772  DB  196,65,121,23,84,248,24             ; vmovhpd       %xmm10,0x18(%r8,%rdi,8)
8773  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8774  DB  114,157                             ; jb            4ae6 <_sk_store_f16_avx+0x23d>
8775  DB  196,65,121,214,76,248,32            ; vmovq         %xmm9,0x20(%r8,%rdi,8)
8776  DB  116,148                             ; je            4ae6 <_sk_store_f16_avx+0x23d>
8777  DB  196,65,121,23,76,248,40             ; vmovhpd       %xmm9,0x28(%r8,%rdi,8)
8778  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8779  DB  114,135                             ; jb            4ae6 <_sk_store_f16_avx+0x23d>
8780  DB  196,65,121,214,68,248,48            ; vmovq         %xmm8,0x30(%r8,%rdi,8)
8781  DB  233,123,255,255,255                 ; jmpq          4ae6 <_sk_store_f16_avx+0x23d>
8782
8783PUBLIC _sk_load_u16_be_avx
8784_sk_load_u16_be_avx LABEL PROC
8785  DB  72,173                              ; lods          %ds:(%rsi),%rax
8786  DB  76,139,0                            ; mov           (%rax),%r8
8787  DB  72,141,4,189,0,0,0,0                ; lea           0x0(,%rdi,4),%rax
8788  DB  72,133,201                          ; test          %rcx,%rcx
8789  DB  15,133,5,1,0,0                      ; jne           4c86 <_sk_load_u16_be_avx+0x11b>
8790  DB  196,65,121,16,4,64                  ; vmovupd       (%r8,%rax,2),%xmm8
8791  DB  196,193,121,16,84,64,16             ; vmovupd       0x10(%r8,%rax,2),%xmm2
8792  DB  196,193,121,16,92,64,32             ; vmovupd       0x20(%r8,%rax,2),%xmm3
8793  DB  196,65,122,111,76,64,48             ; vmovdqu       0x30(%r8,%rax,2),%xmm9
8794  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
8795  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
8796  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
8797  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
8798  DB  197,121,97,210                      ; vpunpcklwd    %xmm2,%xmm0,%xmm10
8799  DB  197,121,105,194                     ; vpunpckhwd    %xmm2,%xmm0,%xmm8
8800  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
8801  DB  197,113,105,203                     ; vpunpckhwd    %xmm3,%xmm1,%xmm9
8802  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
8803  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
8804  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
8805  DB  196,99,125,24,224,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm12
8806  DB  197,169,108,194                     ; vpunpcklqdq   %xmm2,%xmm10,%xmm0
8807  DB  197,241,113,240,8                   ; vpsllw        $0x8,%xmm0,%xmm1
8808  DB  197,249,113,208,8                   ; vpsrlw        $0x8,%xmm0,%xmm0
8809  DB  197,241,235,192                     ; vpor          %xmm0,%xmm1,%xmm0
8810  DB  196,65,33,239,219                   ; vpxor         %xmm11,%xmm11,%xmm11
8811  DB  196,193,121,105,203                 ; vpunpckhwd    %xmm11,%xmm0,%xmm1
8812  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
8813  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
8814  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
8815  DB  197,156,89,192                      ; vmulps        %ymm0,%ymm12,%ymm0
8816  DB  197,169,109,202                     ; vpunpckhqdq   %xmm2,%xmm10,%xmm1
8817  DB  197,233,113,241,8                   ; vpsllw        $0x8,%xmm1,%xmm2
8818  DB  197,241,113,209,8                   ; vpsrlw        $0x8,%xmm1,%xmm1
8819  DB  197,233,235,201                     ; vpor          %xmm1,%xmm2,%xmm1
8820  DB  196,193,113,105,211                 ; vpunpckhwd    %xmm11,%xmm1,%xmm2
8821  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
8822  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8823  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
8824  DB  197,156,89,201                      ; vmulps        %ymm1,%ymm12,%ymm1
8825  DB  196,193,57,108,209                  ; vpunpcklqdq   %xmm9,%xmm8,%xmm2
8826  DB  197,169,113,242,8                   ; vpsllw        $0x8,%xmm2,%xmm10
8827  DB  197,233,113,210,8                   ; vpsrlw        $0x8,%xmm2,%xmm2
8828  DB  197,169,235,210                     ; vpor          %xmm2,%xmm10,%xmm2
8829  DB  196,65,105,105,211                  ; vpunpckhwd    %xmm11,%xmm2,%xmm10
8830  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
8831  DB  196,195,109,24,210,1                ; vinsertf128   $0x1,%xmm10,%ymm2,%ymm2
8832  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
8833  DB  197,156,89,210                      ; vmulps        %ymm2,%ymm12,%ymm2
8834  DB  196,193,57,109,217                  ; vpunpckhqdq   %xmm9,%xmm8,%xmm3
8835  DB  197,185,113,243,8                   ; vpsllw        $0x8,%xmm3,%xmm8
8836  DB  197,225,113,211,8                   ; vpsrlw        $0x8,%xmm3,%xmm3
8837  DB  197,185,235,219                     ; vpor          %xmm3,%xmm8,%xmm3
8838  DB  196,65,97,105,195                   ; vpunpckhwd    %xmm11,%xmm3,%xmm8
8839  DB  196,226,121,51,219                  ; vpmovzxwd     %xmm3,%xmm3
8840  DB  196,195,101,24,216,1                ; vinsertf128   $0x1,%xmm8,%ymm3,%ymm3
8841  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
8842  DB  197,156,89,219                      ; vmulps        %ymm3,%ymm12,%ymm3
8843  DB  72,173                              ; lods          %ds:(%rsi),%rax
8844  DB  255,224                             ; jmpq          *%rax
8845  DB  196,65,123,16,4,64                  ; vmovsd        (%r8,%rax,2),%xmm8
8846  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
8847  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8848  DB  116,85                              ; je            4cec <_sk_load_u16_be_avx+0x181>
8849  DB  196,65,57,22,68,64,8                ; vmovhpd       0x8(%r8,%rax,2),%xmm8,%xmm8
8850  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8851  DB  114,72                              ; jb            4cec <_sk_load_u16_be_avx+0x181>
8852  DB  196,193,123,16,84,64,16             ; vmovsd        0x10(%r8,%rax,2),%xmm2
8853  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8854  DB  116,72                              ; je            4cf9 <_sk_load_u16_be_avx+0x18e>
8855  DB  196,193,105,22,84,64,24             ; vmovhpd       0x18(%r8,%rax,2),%xmm2,%xmm2
8856  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8857  DB  114,59                              ; jb            4cf9 <_sk_load_u16_be_avx+0x18e>
8858  DB  196,193,123,16,92,64,32             ; vmovsd        0x20(%r8,%rax,2),%xmm3
8859  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8860  DB  15,132,205,254,255,255              ; je            4b9c <_sk_load_u16_be_avx+0x31>
8861  DB  196,193,97,22,92,64,40              ; vmovhpd       0x28(%r8,%rax,2),%xmm3,%xmm3
8862  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8863  DB  15,130,188,254,255,255              ; jb            4b9c <_sk_load_u16_be_avx+0x31>
8864  DB  196,65,122,126,76,64,48             ; vmovq         0x30(%r8,%rax,2),%xmm9
8865  DB  233,176,254,255,255                 ; jmpq          4b9c <_sk_load_u16_be_avx+0x31>
8866  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
8867  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
8868  DB  233,163,254,255,255                 ; jmpq          4b9c <_sk_load_u16_be_avx+0x31>
8869  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
8870  DB  233,154,254,255,255                 ; jmpq          4b9c <_sk_load_u16_be_avx+0x31>
8871
8872PUBLIC _sk_load_rgb_u16_be_avx
8873_sk_load_rgb_u16_be_avx LABEL PROC
8874  DB  72,173                              ; lods          %ds:(%rsi),%rax
8875  DB  76,139,0                            ; mov           (%rax),%r8
8876  DB  72,141,4,127                        ; lea           (%rdi,%rdi,2),%rax
8877  DB  72,133,201                          ; test          %rcx,%rcx
8878  DB  15,133,8,1,0,0                      ; jne           4e1c <_sk_load_rgb_u16_be_avx+0x11a>
8879  DB  196,193,122,111,4,64                ; vmovdqu       (%r8,%rax,2),%xmm0
8880  DB  196,193,122,111,84,64,12            ; vmovdqu       0xc(%r8,%rax,2),%xmm2
8881  DB  196,193,122,111,76,64,24            ; vmovdqu       0x18(%r8,%rax,2),%xmm1
8882  DB  196,193,122,111,92,64,32            ; vmovdqu       0x20(%r8,%rax,2),%xmm3
8883  DB  197,225,115,219,4                   ; vpsrldq       $0x4,%xmm3,%xmm3
8884  DB  197,185,115,216,6                   ; vpsrldq       $0x6,%xmm0,%xmm8
8885  DB  197,177,115,218,6                   ; vpsrldq       $0x6,%xmm2,%xmm9
8886  DB  197,161,115,217,6                   ; vpsrldq       $0x6,%xmm1,%xmm11
8887  DB  197,169,115,219,6                   ; vpsrldq       $0x6,%xmm3,%xmm10
8888  DB  197,249,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm0
8889  DB  196,193,57,97,209                   ; vpunpcklwd    %xmm9,%xmm8,%xmm2
8890  DB  197,241,97,203                      ; vpunpcklwd    %xmm3,%xmm1,%xmm1
8891  DB  196,193,33,97,218                   ; vpunpcklwd    %xmm10,%xmm11,%xmm3
8892  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
8893  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
8894  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
8895  DB  197,113,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm11
8896  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
8897  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
8898  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
8899  DB  196,99,125,24,208,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm10
8900  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
8901  DB  197,241,113,240,8                   ; vpsllw        $0x8,%xmm0,%xmm1
8902  DB  197,249,113,208,8                   ; vpsrlw        $0x8,%xmm0,%xmm0
8903  DB  197,241,235,192                     ; vpor          %xmm0,%xmm1,%xmm0
8904  DB  196,65,25,239,228                   ; vpxor         %xmm12,%xmm12,%xmm12
8905  DB  196,193,121,105,204                 ; vpunpckhwd    %xmm12,%xmm0,%xmm1
8906  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
8907  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
8908  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
8909  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
8910  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
8911  DB  197,233,113,241,8                   ; vpsllw        $0x8,%xmm1,%xmm2
8912  DB  197,241,113,209,8                   ; vpsrlw        $0x8,%xmm1,%xmm1
8913  DB  197,233,235,201                     ; vpor          %xmm1,%xmm2,%xmm1
8914  DB  196,193,113,105,212                 ; vpunpckhwd    %xmm12,%xmm1,%xmm2
8915  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
8916  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8917  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
8918  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
8919  DB  196,193,49,108,211                  ; vpunpcklqdq   %xmm11,%xmm9,%xmm2
8920  DB  197,225,113,242,8                   ; vpsllw        $0x8,%xmm2,%xmm3
8921  DB  197,233,113,210,8                   ; vpsrlw        $0x8,%xmm2,%xmm2
8922  DB  197,225,235,210                     ; vpor          %xmm2,%xmm3,%xmm2
8923  DB  196,193,105,105,220                 ; vpunpckhwd    %xmm12,%xmm2,%xmm3
8924  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
8925  DB  196,227,109,24,211,1                ; vinsertf128   $0x1,%xmm3,%ymm2,%ymm2
8926  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
8927  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
8928  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
8929  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
8930  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
8931  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
8932  DB  72,173                              ; lods          %ds:(%rsi),%rax
8933  DB  255,224                             ; jmpq          *%rax
8934  DB  196,193,121,110,4,64                ; vmovd         (%r8,%rax,2),%xmm0
8935  DB  196,193,121,196,68,64,4,2           ; vpinsrw       $0x2,0x4(%r8,%rax,2),%xmm0,%xmm0
8936  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8937  DB  117,5                               ; jne           4e35 <_sk_load_rgb_u16_be_avx+0x133>
8938  DB  233,19,255,255,255                  ; jmpq          4d48 <_sk_load_rgb_u16_be_avx+0x46>
8939  DB  196,193,121,110,76,64,6             ; vmovd         0x6(%r8,%rax,2),%xmm1
8940  DB  196,65,113,196,68,64,10,2           ; vpinsrw       $0x2,0xa(%r8,%rax,2),%xmm1,%xmm8
8941  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8942  DB  114,26                              ; jb            4e64 <_sk_load_rgb_u16_be_avx+0x162>
8943  DB  196,193,121,110,76,64,12            ; vmovd         0xc(%r8,%rax,2),%xmm1
8944  DB  196,193,113,196,84,64,16,2          ; vpinsrw       $0x2,0x10(%r8,%rax,2),%xmm1,%xmm2
8945  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8946  DB  117,10                              ; jne           4e69 <_sk_load_rgb_u16_be_avx+0x167>
8947  DB  233,228,254,255,255                 ; jmpq          4d48 <_sk_load_rgb_u16_be_avx+0x46>
8948  DB  233,223,254,255,255                 ; jmpq          4d48 <_sk_load_rgb_u16_be_avx+0x46>
8949  DB  196,193,121,110,76,64,18            ; vmovd         0x12(%r8,%rax,2),%xmm1
8950  DB  196,65,113,196,76,64,22,2           ; vpinsrw       $0x2,0x16(%r8,%rax,2),%xmm1,%xmm9
8951  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8952  DB  114,26                              ; jb            4e98 <_sk_load_rgb_u16_be_avx+0x196>
8953  DB  196,193,121,110,76,64,24            ; vmovd         0x18(%r8,%rax,2),%xmm1
8954  DB  196,193,113,196,76,64,28,2          ; vpinsrw       $0x2,0x1c(%r8,%rax,2),%xmm1,%xmm1
8955  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8956  DB  117,10                              ; jne           4e9d <_sk_load_rgb_u16_be_avx+0x19b>
8957  DB  233,176,254,255,255                 ; jmpq          4d48 <_sk_load_rgb_u16_be_avx+0x46>
8958  DB  233,171,254,255,255                 ; jmpq          4d48 <_sk_load_rgb_u16_be_avx+0x46>
8959  DB  196,193,121,110,92,64,30            ; vmovd         0x1e(%r8,%rax,2),%xmm3
8960  DB  196,65,97,196,92,64,34,2            ; vpinsrw       $0x2,0x22(%r8,%rax,2),%xmm3,%xmm11
8961  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8962  DB  114,20                              ; jb            4ec6 <_sk_load_rgb_u16_be_avx+0x1c4>
8963  DB  196,193,121,110,92,64,36            ; vmovd         0x24(%r8,%rax,2),%xmm3
8964  DB  196,193,97,196,92,64,40,2           ; vpinsrw       $0x2,0x28(%r8,%rax,2),%xmm3,%xmm3
8965  DB  233,130,254,255,255                 ; jmpq          4d48 <_sk_load_rgb_u16_be_avx+0x46>
8966  DB  233,125,254,255,255                 ; jmpq          4d48 <_sk_load_rgb_u16_be_avx+0x46>
8967
8968PUBLIC _sk_store_u16_be_avx
8969_sk_store_u16_be_avx LABEL PROC
8970  DB  72,173                              ; lods          %ds:(%rsi),%rax
8971  DB  76,139,0                            ; mov           (%rax),%r8
8972  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
8973  DB  184,0,255,127,71                    ; mov           $0x477fff00,%eax
8974  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
8975  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
8976  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
8977  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
8978  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
8979  DB  196,67,125,25,202,1                 ; vextractf128  $0x1,%ymm9,%xmm10
8980  DB  196,66,49,43,202                    ; vpackusdw     %xmm10,%xmm9,%xmm9
8981  DB  196,193,41,113,241,8                ; vpsllw        $0x8,%xmm9,%xmm10
8982  DB  196,193,49,113,209,8                ; vpsrlw        $0x8,%xmm9,%xmm9
8983  DB  196,65,41,235,201                   ; vpor          %xmm9,%xmm10,%xmm9
8984  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
8985  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
8986  DB  196,67,125,25,211,1                 ; vextractf128  $0x1,%ymm10,%xmm11
8987  DB  196,66,41,43,211                    ; vpackusdw     %xmm11,%xmm10,%xmm10
8988  DB  196,193,33,113,242,8                ; vpsllw        $0x8,%xmm10,%xmm11
8989  DB  196,193,41,113,210,8                ; vpsrlw        $0x8,%xmm10,%xmm10
8990  DB  196,65,33,235,210                   ; vpor          %xmm10,%xmm11,%xmm10
8991  DB  197,60,89,218                       ; vmulps        %ymm2,%ymm8,%ymm11
8992  DB  196,65,125,91,219                   ; vcvtps2dq     %ymm11,%ymm11
8993  DB  196,67,125,25,220,1                 ; vextractf128  $0x1,%ymm11,%xmm12
8994  DB  196,66,33,43,220                    ; vpackusdw     %xmm12,%xmm11,%xmm11
8995  DB  196,193,25,113,243,8                ; vpsllw        $0x8,%xmm11,%xmm12
8996  DB  196,193,33,113,211,8                ; vpsrlw        $0x8,%xmm11,%xmm11
8997  DB  196,65,25,235,219                   ; vpor          %xmm11,%xmm12,%xmm11
8998  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
8999  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
9000  DB  196,67,125,25,196,1                 ; vextractf128  $0x1,%ymm8,%xmm12
9001  DB  196,66,57,43,196                    ; vpackusdw     %xmm12,%xmm8,%xmm8
9002  DB  196,193,25,113,240,8                ; vpsllw        $0x8,%xmm8,%xmm12
9003  DB  196,193,57,113,208,8                ; vpsrlw        $0x8,%xmm8,%xmm8
9004  DB  196,65,25,235,192                   ; vpor          %xmm8,%xmm12,%xmm8
9005  DB  196,65,49,97,226                    ; vpunpcklwd    %xmm10,%xmm9,%xmm12
9006  DB  196,65,49,105,234                   ; vpunpckhwd    %xmm10,%xmm9,%xmm13
9007  DB  196,65,33,97,200                    ; vpunpcklwd    %xmm8,%xmm11,%xmm9
9008  DB  196,65,33,105,192                   ; vpunpckhwd    %xmm8,%xmm11,%xmm8
9009  DB  196,65,25,98,217                    ; vpunpckldq    %xmm9,%xmm12,%xmm11
9010  DB  196,65,25,106,209                   ; vpunpckhdq    %xmm9,%xmm12,%xmm10
9011  DB  196,65,17,98,200                    ; vpunpckldq    %xmm8,%xmm13,%xmm9
9012  DB  196,65,17,106,192                   ; vpunpckhdq    %xmm8,%xmm13,%xmm8
9013  DB  72,133,201                          ; test          %rcx,%rcx
9014  DB  117,31                              ; jne           4fcd <_sk_store_u16_be_avx+0x102>
9015  DB  196,1,120,17,28,72                  ; vmovups       %xmm11,(%r8,%r9,2)
9016  DB  196,1,120,17,84,72,16               ; vmovups       %xmm10,0x10(%r8,%r9,2)
9017  DB  196,1,120,17,76,72,32               ; vmovups       %xmm9,0x20(%r8,%r9,2)
9018  DB  196,1,122,127,68,72,48              ; vmovdqu       %xmm8,0x30(%r8,%r9,2)
9019  DB  72,173                              ; lods          %ds:(%rsi),%rax
9020  DB  255,224                             ; jmpq          *%rax
9021  DB  196,1,121,214,28,72                 ; vmovq         %xmm11,(%r8,%r9,2)
9022  DB  72,131,249,1                        ; cmp           $0x1,%rcx
9023  DB  116,240                             ; je            4fc9 <_sk_store_u16_be_avx+0xfe>
9024  DB  196,1,121,23,92,72,8                ; vmovhpd       %xmm11,0x8(%r8,%r9,2)
9025  DB  72,131,249,3                        ; cmp           $0x3,%rcx
9026  DB  114,227                             ; jb            4fc9 <_sk_store_u16_be_avx+0xfe>
9027  DB  196,1,121,214,84,72,16              ; vmovq         %xmm10,0x10(%r8,%r9,2)
9028  DB  116,218                             ; je            4fc9 <_sk_store_u16_be_avx+0xfe>
9029  DB  196,1,121,23,84,72,24               ; vmovhpd       %xmm10,0x18(%r8,%r9,2)
9030  DB  72,131,249,5                        ; cmp           $0x5,%rcx
9031  DB  114,205                             ; jb            4fc9 <_sk_store_u16_be_avx+0xfe>
9032  DB  196,1,121,214,76,72,32              ; vmovq         %xmm9,0x20(%r8,%r9,2)
9033  DB  116,196                             ; je            4fc9 <_sk_store_u16_be_avx+0xfe>
9034  DB  196,1,121,23,76,72,40               ; vmovhpd       %xmm9,0x28(%r8,%r9,2)
9035  DB  72,131,249,7                        ; cmp           $0x7,%rcx
9036  DB  114,183                             ; jb            4fc9 <_sk_store_u16_be_avx+0xfe>
9037  DB  196,1,121,214,68,72,48              ; vmovq         %xmm8,0x30(%r8,%r9,2)
9038  DB  235,174                             ; jmp           4fc9 <_sk_store_u16_be_avx+0xfe>
9039
9040PUBLIC _sk_load_f32_avx
9041_sk_load_f32_avx LABEL PROC
9042  DB  72,173                              ; lods          %ds:(%rsi),%rax
9043  DB  72,131,249,7                        ; cmp           $0x7,%rcx
9044  DB  119,110                             ; ja            5091 <_sk_load_f32_avx+0x76>
9045  DB  76,139,0                            ; mov           (%rax),%r8
9046  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
9047  DB  76,141,21,135,0,0,0                 ; lea           0x87(%rip),%r10        # 50bc <_sk_load_f32_avx+0xa1>
9048  DB  73,99,4,138                         ; movslq        (%r10,%rcx,4),%rax
9049  DB  76,1,208                            ; add           %r10,%rax
9050  DB  255,224                             ; jmpq          *%rax
9051  DB  196,3,125,24,68,136,112,1           ; vinsertf128   $0x1,0x70(%r8,%r9,4),%ymm0,%ymm8
9052  DB  196,131,125,24,92,136,96,1          ; vinsertf128   $0x1,0x60(%r8,%r9,4),%ymm0,%ymm3
9053  DB  196,131,125,24,76,136,80,1          ; vinsertf128   $0x1,0x50(%r8,%r9,4),%ymm0,%ymm1
9054  DB  196,131,125,24,84,136,64,1          ; vinsertf128   $0x1,0x40(%r8,%r9,4),%ymm0,%ymm2
9055  DB  196,129,121,16,68,136,48            ; vmovupd       0x30(%r8,%r9,4),%xmm0
9056  DB  196,195,125,13,192,12               ; vblendpd      $0xc,%ymm8,%ymm0,%ymm0
9057  DB  196,1,121,16,68,136,32              ; vmovupd       0x20(%r8,%r9,4),%xmm8
9058  DB  196,99,61,13,203,12                 ; vblendpd      $0xc,%ymm3,%ymm8,%ymm9
9059  DB  196,129,121,16,92,136,16            ; vmovupd       0x10(%r8,%r9,4),%xmm3
9060  DB  196,99,101,13,209,12                ; vblendpd      $0xc,%ymm1,%ymm3,%ymm10
9061  DB  196,129,121,16,12,136               ; vmovupd       (%r8,%r9,4),%xmm1
9062  DB  196,227,117,13,202,12               ; vblendpd      $0xc,%ymm2,%ymm1,%ymm1
9063  DB  196,193,116,20,210                  ; vunpcklps     %ymm10,%ymm1,%ymm2
9064  DB  196,193,116,21,218                  ; vunpckhps     %ymm10,%ymm1,%ymm3
9065  DB  197,180,20,200                      ; vunpcklps     %ymm0,%ymm9,%ymm1
9066  DB  197,52,21,192                       ; vunpckhps     %ymm0,%ymm9,%ymm8
9067  DB  197,237,20,193                      ; vunpcklpd     %ymm1,%ymm2,%ymm0
9068  DB  197,237,21,201                      ; vunpckhpd     %ymm1,%ymm2,%ymm1
9069  DB  196,193,101,20,208                  ; vunpcklpd     %ymm8,%ymm3,%ymm2
9070  DB  196,193,101,21,216                  ; vunpckhpd     %ymm8,%ymm3,%ymm3
9071  DB  72,173                              ; lods          %ds:(%rsi),%rax
9072  DB  255,224                             ; jmpq          *%rax
9073  DB  15,31,0                             ; nopl          (%rax)
9074  DB  130                                 ; (bad)
9075  DB  255                                 ; (bad)
9076  DB  255                                 ; (bad)
9077  DB  255,201                             ; dec           %ecx
9078  DB  255                                 ; (bad)
9079  DB  255                                 ; (bad)
9080  DB  255                                 ; (bad)
9081  DB  188,255,255,255,175                 ; mov           $0xafffffff,%esp
9082  DB  255                                 ; (bad)
9083  DB  255                                 ; (bad)
9084  DB  255,162,255,255,255,154             ; jmpq          *-0x65000001(%rdx)
9085  DB  255                                 ; (bad)
9086  DB  255                                 ; (bad)
9087  DB  255,146,255,255,255,138             ; callq         *-0x75000001(%rdx)
9088  DB  255                                 ; (bad)
9089  DB  255                                 ; (bad)
9090  DB  255                                 ; .byte         0xff
9091
9092PUBLIC _sk_store_f32_avx
9093_sk_store_f32_avx LABEL PROC
9094  DB  72,173                              ; lods          %ds:(%rsi),%rax
9095  DB  76,139,0                            ; mov           (%rax),%r8
9096  DB  72,141,4,189,0,0,0,0                ; lea           0x0(,%rdi,4),%rax
9097  DB  197,124,20,193                      ; vunpcklps     %ymm1,%ymm0,%ymm8
9098  DB  197,124,21,217                      ; vunpckhps     %ymm1,%ymm0,%ymm11
9099  DB  197,108,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm9
9100  DB  197,108,21,227                      ; vunpckhps     %ymm3,%ymm2,%ymm12
9101  DB  196,65,61,20,209                    ; vunpcklpd     %ymm9,%ymm8,%ymm10
9102  DB  196,65,61,21,201                    ; vunpckhpd     %ymm9,%ymm8,%ymm9
9103  DB  196,65,37,20,196                    ; vunpcklpd     %ymm12,%ymm11,%ymm8
9104  DB  196,65,37,21,220                    ; vunpckhpd     %ymm12,%ymm11,%ymm11
9105  DB  72,133,201                          ; test          %rcx,%rcx
9106  DB  117,55                              ; jne           5149 <_sk_store_f32_avx+0x6d>
9107  DB  196,67,45,24,225,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm12
9108  DB  196,67,61,24,235,1                  ; vinsertf128   $0x1,%xmm11,%ymm8,%ymm13
9109  DB  196,67,45,6,201,49                  ; vperm2f128    $0x31,%ymm9,%ymm10,%ymm9
9110  DB  196,67,61,6,195,49                  ; vperm2f128    $0x31,%ymm11,%ymm8,%ymm8
9111  DB  196,65,125,17,36,128                ; vmovupd       %ymm12,(%r8,%rax,4)
9112  DB  196,65,125,17,108,128,32            ; vmovupd       %ymm13,0x20(%r8,%rax,4)
9113  DB  196,65,125,17,76,128,64             ; vmovupd       %ymm9,0x40(%r8,%rax,4)
9114  DB  196,65,125,17,68,128,96             ; vmovupd       %ymm8,0x60(%r8,%rax,4)
9115  DB  72,173                              ; lods          %ds:(%rsi),%rax
9116  DB  255,224                             ; jmpq          *%rax
9117  DB  196,65,121,17,20,128                ; vmovupd       %xmm10,(%r8,%rax,4)
9118  DB  72,131,249,1                        ; cmp           $0x1,%rcx
9119  DB  116,240                             ; je            5145 <_sk_store_f32_avx+0x69>
9120  DB  196,65,121,17,76,128,16             ; vmovupd       %xmm9,0x10(%r8,%rax,4)
9121  DB  72,131,249,3                        ; cmp           $0x3,%rcx
9122  DB  114,227                             ; jb            5145 <_sk_store_f32_avx+0x69>
9123  DB  196,65,121,17,68,128,32             ; vmovupd       %xmm8,0x20(%r8,%rax,4)
9124  DB  116,218                             ; je            5145 <_sk_store_f32_avx+0x69>
9125  DB  196,65,121,17,92,128,48             ; vmovupd       %xmm11,0x30(%r8,%rax,4)
9126  DB  72,131,249,5                        ; cmp           $0x5,%rcx
9127  DB  114,205                             ; jb            5145 <_sk_store_f32_avx+0x69>
9128  DB  196,67,125,25,84,128,64,1           ; vextractf128  $0x1,%ymm10,0x40(%r8,%rax,4)
9129  DB  116,195                             ; je            5145 <_sk_store_f32_avx+0x69>
9130  DB  196,67,125,25,76,128,80,1           ; vextractf128  $0x1,%ymm9,0x50(%r8,%rax,4)
9131  DB  72,131,249,7                        ; cmp           $0x7,%rcx
9132  DB  114,181                             ; jb            5145 <_sk_store_f32_avx+0x69>
9133  DB  196,67,125,25,68,128,96,1           ; vextractf128  $0x1,%ymm8,0x60(%r8,%rax,4)
9134  DB  235,171                             ; jmp           5145 <_sk_store_f32_avx+0x69>
9135
9136PUBLIC _sk_clamp_x_avx
9137_sk_clamp_x_avx LABEL PROC
9138  DB  72,173                              ; lods          %ds:(%rsi),%rax
9139  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
9140  DB  197,60,95,200                       ; vmaxps        %ymm0,%ymm8,%ymm9
9141  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9142  DB  196,99,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm0
9143  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9144  DB  196,193,121,254,194                 ; vpaddd        %xmm10,%xmm0,%xmm0
9145  DB  196,65,57,254,194                   ; vpaddd        %xmm10,%xmm8,%xmm8
9146  DB  196,227,61,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm8,%ymm0
9147  DB  197,180,93,192                      ; vminps        %ymm0,%ymm9,%ymm0
9148  DB  72,173                              ; lods          %ds:(%rsi),%rax
9149  DB  255,224                             ; jmpq          *%rax
9150
9151PUBLIC _sk_clamp_y_avx
9152_sk_clamp_y_avx LABEL PROC
9153  DB  72,173                              ; lods          %ds:(%rsi),%rax
9154  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
9155  DB  197,60,95,201                       ; vmaxps        %ymm1,%ymm8,%ymm9
9156  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9157  DB  196,99,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm1
9158  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9159  DB  196,193,113,254,202                 ; vpaddd        %xmm10,%xmm1,%xmm1
9160  DB  196,65,57,254,194                   ; vpaddd        %xmm10,%xmm8,%xmm8
9161  DB  196,227,61,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm8,%ymm1
9162  DB  197,180,93,201                      ; vminps        %ymm1,%ymm9,%ymm1
9163  DB  72,173                              ; lods          %ds:(%rsi),%rax
9164  DB  255,224                             ; jmpq          *%rax
9165
9166PUBLIC _sk_repeat_x_avx
9167_sk_repeat_x_avx LABEL PROC
9168  DB  72,173                              ; lods          %ds:(%rsi),%rax
9169  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9170  DB  196,65,124,94,200                   ; vdivps        %ymm8,%ymm0,%ymm9
9171  DB  196,67,125,8,201,1                  ; vroundps      $0x1,%ymm9,%ymm9
9172  DB  196,65,52,89,200                    ; vmulps        %ymm8,%ymm9,%ymm9
9173  DB  196,65,124,92,201                   ; vsubps        %ymm9,%ymm0,%ymm9
9174  DB  196,99,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm0
9175  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9176  DB  196,193,121,254,194                 ; vpaddd        %xmm10,%xmm0,%xmm0
9177  DB  196,65,57,254,194                   ; vpaddd        %xmm10,%xmm8,%xmm8
9178  DB  196,227,61,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm8,%ymm0
9179  DB  197,180,93,192                      ; vminps        %ymm0,%ymm9,%ymm0
9180  DB  72,173                              ; lods          %ds:(%rsi),%rax
9181  DB  255,224                             ; jmpq          *%rax
9182
9183PUBLIC _sk_repeat_y_avx
9184_sk_repeat_y_avx LABEL PROC
9185  DB  72,173                              ; lods          %ds:(%rsi),%rax
9186  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9187  DB  196,65,116,94,200                   ; vdivps        %ymm8,%ymm1,%ymm9
9188  DB  196,67,125,8,201,1                  ; vroundps      $0x1,%ymm9,%ymm9
9189  DB  196,65,52,89,200                    ; vmulps        %ymm8,%ymm9,%ymm9
9190  DB  196,65,116,92,201                   ; vsubps        %ymm9,%ymm1,%ymm9
9191  DB  196,99,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm1
9192  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9193  DB  196,193,113,254,202                 ; vpaddd        %xmm10,%xmm1,%xmm1
9194  DB  196,65,57,254,194                   ; vpaddd        %xmm10,%xmm8,%xmm8
9195  DB  196,227,61,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm8,%ymm1
9196  DB  197,180,93,201                      ; vminps        %ymm1,%ymm9,%ymm1
9197  DB  72,173                              ; lods          %ds:(%rsi),%rax
9198  DB  255,224                             ; jmpq          *%rax
9199
9200PUBLIC _sk_mirror_x_avx
9201_sk_mirror_x_avx LABEL PROC
9202  DB  72,173                              ; lods          %ds:(%rsi),%rax
9203  DB  197,121,110,0                       ; vmovd         (%rax),%xmm8
9204  DB  196,65,121,112,200,0                ; vpshufd       $0x0,%xmm8,%xmm9
9205  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
9206  DB  196,65,124,92,209                   ; vsubps        %ymm9,%ymm0,%ymm10
9207  DB  196,193,58,88,192                   ; vaddss        %xmm8,%xmm8,%xmm0
9208  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9209  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9210  DB  197,44,94,192                       ; vdivps        %ymm0,%ymm10,%ymm8
9211  DB  196,67,125,8,192,1                  ; vroundps      $0x1,%ymm8,%ymm8
9212  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
9213  DB  197,172,92,192                      ; vsubps        %ymm0,%ymm10,%ymm0
9214  DB  196,193,124,92,193                  ; vsubps        %ymm9,%ymm0,%ymm0
9215  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
9216  DB  197,60,92,192                       ; vsubps        %ymm0,%ymm8,%ymm8
9217  DB  197,60,84,192                       ; vandps        %ymm0,%ymm8,%ymm8
9218  DB  196,99,125,25,200,1                 ; vextractf128  $0x1,%ymm9,%xmm0
9219  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9220  DB  196,193,121,254,194                 ; vpaddd        %xmm10,%xmm0,%xmm0
9221  DB  196,65,49,254,202                   ; vpaddd        %xmm10,%xmm9,%xmm9
9222  DB  196,227,53,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm0
9223  DB  197,188,93,192                      ; vminps        %ymm0,%ymm8,%ymm0
9224  DB  72,173                              ; lods          %ds:(%rsi),%rax
9225  DB  255,224                             ; jmpq          *%rax
9226
9227PUBLIC _sk_mirror_y_avx
9228_sk_mirror_y_avx LABEL PROC
9229  DB  72,173                              ; lods          %ds:(%rsi),%rax
9230  DB  197,121,110,0                       ; vmovd         (%rax),%xmm8
9231  DB  196,65,121,112,200,0                ; vpshufd       $0x0,%xmm8,%xmm9
9232  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
9233  DB  196,65,116,92,209                   ; vsubps        %ymm9,%ymm1,%ymm10
9234  DB  196,193,58,88,200                   ; vaddss        %xmm8,%xmm8,%xmm1
9235  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9236  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9237  DB  197,44,94,193                       ; vdivps        %ymm1,%ymm10,%ymm8
9238  DB  196,67,125,8,192,1                  ; vroundps      $0x1,%ymm8,%ymm8
9239  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
9240  DB  197,172,92,201                      ; vsubps        %ymm1,%ymm10,%ymm1
9241  DB  196,193,116,92,201                  ; vsubps        %ymm9,%ymm1,%ymm1
9242  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
9243  DB  197,60,92,193                       ; vsubps        %ymm1,%ymm8,%ymm8
9244  DB  197,60,84,193                       ; vandps        %ymm1,%ymm8,%ymm8
9245  DB  196,99,125,25,201,1                 ; vextractf128  $0x1,%ymm9,%xmm1
9246  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9247  DB  196,193,113,254,202                 ; vpaddd        %xmm10,%xmm1,%xmm1
9248  DB  196,65,49,254,202                   ; vpaddd        %xmm10,%xmm9,%xmm9
9249  DB  196,227,53,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm9,%ymm1
9250  DB  197,188,93,201                      ; vminps        %ymm1,%ymm8,%ymm1
9251  DB  72,173                              ; lods          %ds:(%rsi),%rax
9252  DB  255,224                             ; jmpq          *%rax
9253
9254PUBLIC _sk_luminance_to_alpha_avx
9255_sk_luminance_to_alpha_avx LABEL PROC
9256  DB  184,208,179,89,62                   ; mov           $0x3e59b3d0,%eax
9257  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
9258  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
9259  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
9260  DB  197,228,89,192                      ; vmulps        %ymm0,%ymm3,%ymm0
9261  DB  184,89,23,55,63                     ; mov           $0x3f371759,%eax
9262  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
9263  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
9264  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
9265  DB  197,228,89,201                      ; vmulps        %ymm1,%ymm3,%ymm1
9266  DB  197,252,88,193                      ; vaddps        %ymm1,%ymm0,%ymm0
9267  DB  184,152,221,147,61                  ; mov           $0x3d93dd98,%eax
9268  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
9269  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9270  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9271  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
9272  DB  197,252,88,217                      ; vaddps        %ymm1,%ymm0,%ymm3
9273  DB  72,173                              ; lods          %ds:(%rsi),%rax
9274  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
9275  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
9276  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
9277  DB  255,224                             ; jmpq          *%rax
9278
9279PUBLIC _sk_matrix_2x3_avx
9280_sk_matrix_2x3_avx LABEL PROC
9281  DB  72,173                              ; lods          %ds:(%rsi),%rax
9282  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9283  DB  196,98,125,24,72,8                  ; vbroadcastss  0x8(%rax),%ymm9
9284  DB  196,98,125,24,80,16                 ; vbroadcastss  0x10(%rax),%ymm10
9285  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
9286  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9287  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
9288  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
9289  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
9290  DB  196,98,125,24,80,12                 ; vbroadcastss  0xc(%rax),%ymm10
9291  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
9292  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
9293  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
9294  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
9295  DB  197,252,88,201                      ; vaddps        %ymm1,%ymm0,%ymm1
9296  DB  72,173                              ; lods          %ds:(%rsi),%rax
9297  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9298  DB  255,224                             ; jmpq          *%rax
9299
9300PUBLIC _sk_matrix_3x4_avx
9301_sk_matrix_3x4_avx LABEL PROC
9302  DB  72,173                              ; lods          %ds:(%rsi),%rax
9303  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9304  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
9305  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
9306  DB  196,98,125,24,88,36                 ; vbroadcastss  0x24(%rax),%ymm11
9307  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
9308  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9309  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
9310  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9311  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
9312  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
9313  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
9314  DB  196,98,125,24,80,16                 ; vbroadcastss  0x10(%rax),%ymm10
9315  DB  196,98,125,24,88,28                 ; vbroadcastss  0x1c(%rax),%ymm11
9316  DB  196,98,125,24,96,40                 ; vbroadcastss  0x28(%rax),%ymm12
9317  DB  197,36,89,218                       ; vmulps        %ymm2,%ymm11,%ymm11
9318  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
9319  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
9320  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9321  DB  197,52,89,200                       ; vmulps        %ymm0,%ymm9,%ymm9
9322  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9323  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
9324  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
9325  DB  196,98,125,24,96,32                 ; vbroadcastss  0x20(%rax),%ymm12
9326  DB  196,98,125,24,104,44                ; vbroadcastss  0x2c(%rax),%ymm13
9327  DB  197,156,89,210                      ; vmulps        %ymm2,%ymm12,%ymm2
9328  DB  196,193,108,88,213                  ; vaddps        %ymm13,%ymm2,%ymm2
9329  DB  197,164,89,201                      ; vmulps        %ymm1,%ymm11,%ymm1
9330  DB  197,244,88,202                      ; vaddps        %ymm2,%ymm1,%ymm1
9331  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
9332  DB  197,252,88,209                      ; vaddps        %ymm1,%ymm0,%ymm2
9333  DB  72,173                              ; lods          %ds:(%rsi),%rax
9334  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9335  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
9336  DB  255,224                             ; jmpq          *%rax
9337
9338PUBLIC _sk_matrix_4x5_avx
9339_sk_matrix_4x5_avx LABEL PROC
9340  DB  72,173                              ; lods          %ds:(%rsi),%rax
9341  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9342  DB  196,98,125,24,72,16                 ; vbroadcastss  0x10(%rax),%ymm9
9343  DB  196,98,125,24,80,32                 ; vbroadcastss  0x20(%rax),%ymm10
9344  DB  196,98,125,24,88,48                 ; vbroadcastss  0x30(%rax),%ymm11
9345  DB  196,98,125,24,96,64                 ; vbroadcastss  0x40(%rax),%ymm12
9346  DB  197,36,89,219                       ; vmulps        %ymm3,%ymm11,%ymm11
9347  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
9348  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
9349  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9350  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
9351  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9352  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
9353  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
9354  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
9355  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
9356  DB  196,98,125,24,88,36                 ; vbroadcastss  0x24(%rax),%ymm11
9357  DB  196,98,125,24,96,52                 ; vbroadcastss  0x34(%rax),%ymm12
9358  DB  196,98,125,24,104,68                ; vbroadcastss  0x44(%rax),%ymm13
9359  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
9360  DB  196,65,28,88,229                    ; vaddps        %ymm13,%ymm12,%ymm12
9361  DB  197,36,89,218                       ; vmulps        %ymm2,%ymm11,%ymm11
9362  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
9363  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
9364  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9365  DB  197,52,89,200                       ; vmulps        %ymm0,%ymm9,%ymm9
9366  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9367  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
9368  DB  196,98,125,24,88,24                 ; vbroadcastss  0x18(%rax),%ymm11
9369  DB  196,98,125,24,96,40                 ; vbroadcastss  0x28(%rax),%ymm12
9370  DB  196,98,125,24,104,56                ; vbroadcastss  0x38(%rax),%ymm13
9371  DB  196,98,125,24,112,72                ; vbroadcastss  0x48(%rax),%ymm14
9372  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
9373  DB  196,65,20,88,238                    ; vaddps        %ymm14,%ymm13,%ymm13
9374  DB  197,28,89,226                       ; vmulps        %ymm2,%ymm12,%ymm12
9375  DB  196,65,28,88,229                    ; vaddps        %ymm13,%ymm12,%ymm12
9376  DB  197,36,89,217                       ; vmulps        %ymm1,%ymm11,%ymm11
9377  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
9378  DB  197,44,89,208                       ; vmulps        %ymm0,%ymm10,%ymm10
9379  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9380  DB  196,98,125,24,88,12                 ; vbroadcastss  0xc(%rax),%ymm11
9381  DB  196,98,125,24,96,28                 ; vbroadcastss  0x1c(%rax),%ymm12
9382  DB  196,98,125,24,104,44                ; vbroadcastss  0x2c(%rax),%ymm13
9383  DB  196,98,125,24,112,60                ; vbroadcastss  0x3c(%rax),%ymm14
9384  DB  196,98,125,24,120,76                ; vbroadcastss  0x4c(%rax),%ymm15
9385  DB  197,140,89,219                      ; vmulps        %ymm3,%ymm14,%ymm3
9386  DB  196,193,100,88,223                  ; vaddps        %ymm15,%ymm3,%ymm3
9387  DB  197,148,89,210                      ; vmulps        %ymm2,%ymm13,%ymm2
9388  DB  197,236,88,211                      ; vaddps        %ymm3,%ymm2,%ymm2
9389  DB  197,156,89,201                      ; vmulps        %ymm1,%ymm12,%ymm1
9390  DB  197,244,88,202                      ; vaddps        %ymm2,%ymm1,%ymm1
9391  DB  197,164,89,192                      ; vmulps        %ymm0,%ymm11,%ymm0
9392  DB  197,252,88,217                      ; vaddps        %ymm1,%ymm0,%ymm3
9393  DB  72,173                              ; lods          %ds:(%rsi),%rax
9394  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9395  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
9396  DB  197,124,41,210                      ; vmovaps       %ymm10,%ymm2
9397  DB  255,224                             ; jmpq          *%rax
9398
9399PUBLIC _sk_matrix_perspective_avx
9400_sk_matrix_perspective_avx LABEL PROC
9401  DB  72,173                              ; lods          %ds:(%rsi),%rax
9402  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9403  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
9404  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
9405  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
9406  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9407  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
9408  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
9409  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
9410  DB  196,98,125,24,80,16                 ; vbroadcastss  0x10(%rax),%ymm10
9411  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
9412  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
9413  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9414  DB  197,52,89,200                       ; vmulps        %ymm0,%ymm9,%ymm9
9415  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9416  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
9417  DB  196,98,125,24,88,28                 ; vbroadcastss  0x1c(%rax),%ymm11
9418  DB  196,98,125,24,96,32                 ; vbroadcastss  0x20(%rax),%ymm12
9419  DB  197,164,89,201                      ; vmulps        %ymm1,%ymm11,%ymm1
9420  DB  196,193,116,88,204                  ; vaddps        %ymm12,%ymm1,%ymm1
9421  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
9422  DB  197,252,88,193                      ; vaddps        %ymm1,%ymm0,%ymm0
9423  DB  197,252,83,200                      ; vrcpps        %ymm0,%ymm1
9424  DB  197,188,89,193                      ; vmulps        %ymm1,%ymm8,%ymm0
9425  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
9426  DB  72,173                              ; lods          %ds:(%rsi),%rax
9427  DB  255,224                             ; jmpq          *%rax
9428
9429PUBLIC _sk_linear_gradient_avx
9430_sk_linear_gradient_avx LABEL PROC
9431  DB  72,173                              ; lods          %ds:(%rsi),%rax
9432  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
9433  DB  196,226,125,24,72,20                ; vbroadcastss  0x14(%rax),%ymm1
9434  DB  196,226,125,24,80,24                ; vbroadcastss  0x18(%rax),%ymm2
9435  DB  196,226,125,24,88,28                ; vbroadcastss  0x1c(%rax),%ymm3
9436  DB  76,139,0                            ; mov           (%rax),%r8
9437  DB  77,133,192                          ; test          %r8,%r8
9438  DB  15,132,146,0,0,0                    ; je            56fd <_sk_linear_gradient_avx+0xb8>
9439  DB  72,139,64,8                         ; mov           0x8(%rax),%rax
9440  DB  72,131,192,32                       ; add           $0x20,%rax
9441  DB  196,65,28,87,228                    ; vxorps        %ymm12,%ymm12,%ymm12
9442  DB  196,65,52,87,201                    ; vxorps        %ymm9,%ymm9,%ymm9
9443  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
9444  DB  196,65,36,87,219                    ; vxorps        %ymm11,%ymm11,%ymm11
9445  DB  196,98,125,24,104,224               ; vbroadcastss  -0x20(%rax),%ymm13
9446  DB  196,65,124,194,237,1                ; vcmpltps      %ymm13,%ymm0,%ymm13
9447  DB  196,98,125,24,112,228               ; vbroadcastss  -0x1c(%rax),%ymm14
9448  DB  196,67,13,74,228,208                ; vblendvps     %ymm13,%ymm12,%ymm14,%ymm12
9449  DB  196,98,125,24,112,232               ; vbroadcastss  -0x18(%rax),%ymm14
9450  DB  196,67,13,74,219,208                ; vblendvps     %ymm13,%ymm11,%ymm14,%ymm11
9451  DB  196,98,125,24,112,236               ; vbroadcastss  -0x14(%rax),%ymm14
9452  DB  196,67,13,74,210,208                ; vblendvps     %ymm13,%ymm10,%ymm14,%ymm10
9453  DB  196,98,125,24,112,240               ; vbroadcastss  -0x10(%rax),%ymm14
9454  DB  196,67,13,74,201,208                ; vblendvps     %ymm13,%ymm9,%ymm14,%ymm9
9455  DB  196,98,125,24,112,244               ; vbroadcastss  -0xc(%rax),%ymm14
9456  DB  196,67,13,74,192,208                ; vblendvps     %ymm13,%ymm8,%ymm14,%ymm8
9457  DB  196,98,125,24,112,248               ; vbroadcastss  -0x8(%rax),%ymm14
9458  DB  196,227,13,74,201,208               ; vblendvps     %ymm13,%ymm1,%ymm14,%ymm1
9459  DB  196,98,125,24,112,252               ; vbroadcastss  -0x4(%rax),%ymm14
9460  DB  196,227,13,74,210,208               ; vblendvps     %ymm13,%ymm2,%ymm14,%ymm2
9461  DB  196,98,125,24,48                    ; vbroadcastss  (%rax),%ymm14
9462  DB  196,227,13,74,219,208               ; vblendvps     %ymm13,%ymm3,%ymm14,%ymm3
9463  DB  72,131,192,36                       ; add           $0x24,%rax
9464  DB  73,255,200                          ; dec           %r8
9465  DB  117,140                             ; jne           5687 <_sk_linear_gradient_avx+0x42>
9466  DB  235,20                              ; jmp           5711 <_sk_linear_gradient_avx+0xcc>
9467  DB  196,65,36,87,219                    ; vxorps        %ymm11,%ymm11,%ymm11
9468  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
9469  DB  196,65,52,87,201                    ; vxorps        %ymm9,%ymm9,%ymm9
9470  DB  196,65,28,87,228                    ; vxorps        %ymm12,%ymm12,%ymm12
9471  DB  197,28,89,224                       ; vmulps        %ymm0,%ymm12,%ymm12
9472  DB  196,65,60,88,196                    ; vaddps        %ymm12,%ymm8,%ymm8
9473  DB  197,36,89,216                       ; vmulps        %ymm0,%ymm11,%ymm11
9474  DB  197,164,88,201                      ; vaddps        %ymm1,%ymm11,%ymm1
9475  DB  197,44,89,208                       ; vmulps        %ymm0,%ymm10,%ymm10
9476  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
9477  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
9478  DB  197,252,88,219                      ; vaddps        %ymm3,%ymm0,%ymm3
9479  DB  72,173                              ; lods          %ds:(%rsi),%rax
9480  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9481  DB  255,224                             ; jmpq          *%rax
9482
9483PUBLIC _sk_linear_gradient_2stops_avx
9484_sk_linear_gradient_2stops_avx LABEL PROC
9485  DB  72,173                              ; lods          %ds:(%rsi),%rax
9486  DB  196,226,125,24,8                    ; vbroadcastss  (%rax),%ymm1
9487  DB  196,226,125,24,80,16                ; vbroadcastss  0x10(%rax),%ymm2
9488  DB  197,244,89,200                      ; vmulps        %ymm0,%ymm1,%ymm1
9489  DB  197,116,88,194                      ; vaddps        %ymm2,%ymm1,%ymm8
9490  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
9491  DB  196,226,125,24,80,20                ; vbroadcastss  0x14(%rax),%ymm2
9492  DB  197,244,89,200                      ; vmulps        %ymm0,%ymm1,%ymm1
9493  DB  197,244,88,202                      ; vaddps        %ymm2,%ymm1,%ymm1
9494  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
9495  DB  196,226,125,24,88,24                ; vbroadcastss  0x18(%rax),%ymm3
9496  DB  197,236,89,208                      ; vmulps        %ymm0,%ymm2,%ymm2
9497  DB  197,236,88,211                      ; vaddps        %ymm3,%ymm2,%ymm2
9498  DB  196,226,125,24,88,12                ; vbroadcastss  0xc(%rax),%ymm3
9499  DB  196,98,125,24,72,28                 ; vbroadcastss  0x1c(%rax),%ymm9
9500  DB  197,228,89,192                      ; vmulps        %ymm0,%ymm3,%ymm0
9501  DB  196,193,124,88,217                  ; vaddps        %ymm9,%ymm0,%ymm3
9502  DB  72,173                              ; lods          %ds:(%rsi),%rax
9503  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9504  DB  255,224                             ; jmpq          *%rax
9505
9506PUBLIC _sk_save_xy_avx
9507_sk_save_xy_avx LABEL PROC
9508  DB  72,173                              ; lods          %ds:(%rsi),%rax
9509  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9510  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9511  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9512  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9513  DB  197,60,88,200                       ; vaddps        %ymm0,%ymm8,%ymm9
9514  DB  196,67,125,8,209,1                  ; vroundps      $0x1,%ymm9,%ymm10
9515  DB  196,65,52,92,202                    ; vsubps        %ymm10,%ymm9,%ymm9
9516  DB  197,60,88,193                       ; vaddps        %ymm1,%ymm8,%ymm8
9517  DB  196,67,125,8,208,1                  ; vroundps      $0x1,%ymm8,%ymm10
9518  DB  196,65,60,92,194                    ; vsubps        %ymm10,%ymm8,%ymm8
9519  DB  197,252,17,0                        ; vmovups       %ymm0,(%rax)
9520  DB  197,252,17,72,32                    ; vmovups       %ymm1,0x20(%rax)
9521  DB  197,124,17,72,64                    ; vmovups       %ymm9,0x40(%rax)
9522  DB  197,124,17,64,96                    ; vmovups       %ymm8,0x60(%rax)
9523  DB  72,173                              ; lods          %ds:(%rsi),%rax
9524  DB  255,224                             ; jmpq          *%rax
9525
9526PUBLIC _sk_accumulate_avx
9527_sk_accumulate_avx LABEL PROC
9528  DB  72,173                              ; lods          %ds:(%rsi),%rax
9529  DB  197,124,16,128,128,0,0,0            ; vmovups       0x80(%rax),%ymm8
9530  DB  197,60,89,128,160,0,0,0             ; vmulps        0xa0(%rax),%ymm8,%ymm8
9531  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
9532  DB  197,180,88,228                      ; vaddps        %ymm4,%ymm9,%ymm4
9533  DB  197,60,89,201                       ; vmulps        %ymm1,%ymm8,%ymm9
9534  DB  197,180,88,237                      ; vaddps        %ymm5,%ymm9,%ymm5
9535  DB  197,60,89,202                       ; vmulps        %ymm2,%ymm8,%ymm9
9536  DB  197,180,88,246                      ; vaddps        %ymm6,%ymm9,%ymm6
9537  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
9538  DB  197,188,88,255                      ; vaddps        %ymm7,%ymm8,%ymm7
9539  DB  72,173                              ; lods          %ds:(%rsi),%rax
9540  DB  255,224                             ; jmpq          *%rax
9541
9542PUBLIC _sk_bilinear_nx_avx
9543_sk_bilinear_nx_avx LABEL PROC
9544  DB  72,173                              ; lods          %ds:(%rsi),%rax
9545  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
9546  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9547  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9548  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9549  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9550  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9551  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9552  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9553  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9554  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
9555  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9556  DB  72,173                              ; lods          %ds:(%rsi),%rax
9557  DB  255,224                             ; jmpq          *%rax
9558
9559PUBLIC _sk_bilinear_px_avx
9560_sk_bilinear_px_avx LABEL PROC
9561  DB  72,173                              ; lods          %ds:(%rsi),%rax
9562  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9563  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9564  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9565  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9566  DB  197,124,16,64,64                    ; vmovups       0x40(%rax),%ymm8
9567  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9568  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9569  DB  72,173                              ; lods          %ds:(%rsi),%rax
9570  DB  255,224                             ; jmpq          *%rax
9571
9572PUBLIC _sk_bilinear_ny_avx
9573_sk_bilinear_ny_avx LABEL PROC
9574  DB  72,173                              ; lods          %ds:(%rsi),%rax
9575  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
9576  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9577  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9578  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9579  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9580  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9581  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9582  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9583  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9584  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
9585  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9586  DB  72,173                              ; lods          %ds:(%rsi),%rax
9587  DB  255,224                             ; jmpq          *%rax
9588
9589PUBLIC _sk_bilinear_py_avx
9590_sk_bilinear_py_avx LABEL PROC
9591  DB  72,173                              ; lods          %ds:(%rsi),%rax
9592  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9593  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9594  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9595  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9596  DB  197,124,16,64,96                    ; vmovups       0x60(%rax),%ymm8
9597  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9598  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9599  DB  72,173                              ; lods          %ds:(%rsi),%rax
9600  DB  255,224                             ; jmpq          *%rax
9601
9602PUBLIC _sk_bicubic_n3x_avx
9603_sk_bicubic_n3x_avx LABEL PROC
9604  DB  72,173                              ; lods          %ds:(%rsi),%rax
9605  DB  65,184,0,0,192,191                  ; mov           $0xbfc00000,%r8d
9606  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9607  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9608  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9609  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9610  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9611  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9612  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9613  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9614  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
9615  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
9616  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
9617  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9618  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9619  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9620  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
9621  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9622  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9623  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9624  DB  196,65,44,89,192                    ; vmulps        %ymm8,%ymm10,%ymm8
9625  DB  196,65,60,88,195                    ; vaddps        %ymm11,%ymm8,%ymm8
9626  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9627  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9628  DB  72,173                              ; lods          %ds:(%rsi),%rax
9629  DB  255,224                             ; jmpq          *%rax
9630
9631PUBLIC _sk_bicubic_n1x_avx
9632_sk_bicubic_n1x_avx LABEL PROC
9633  DB  72,173                              ; lods          %ds:(%rsi),%rax
9634  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
9635  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9636  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9637  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9638  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9639  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9640  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9641  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9642  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9643  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
9644  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
9645  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
9646  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
9647  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
9648  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9649  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9650  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9651  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9652  DB  196,65,52,89,200                    ; vmulps        %ymm8,%ymm9,%ymm9
9653  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9654  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9655  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9656  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9657  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9658  DB  196,65,60,89,201                    ; vmulps        %ymm9,%ymm8,%ymm9
9659  DB  196,65,44,88,201                    ; vaddps        %ymm9,%ymm10,%ymm9
9660  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
9661  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9662  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9663  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9664  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
9665  DB  196,65,44,88,192                    ; vaddps        %ymm8,%ymm10,%ymm8
9666  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9667  DB  72,173                              ; lods          %ds:(%rsi),%rax
9668  DB  255,224                             ; jmpq          *%rax
9669
9670PUBLIC _sk_bicubic_p1x_avx
9671_sk_bicubic_p1x_avx LABEL PROC
9672  DB  72,173                              ; lods          %ds:(%rsi),%rax
9673  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9674  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9675  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9676  DB  196,99,125,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm8
9677  DB  197,188,88,0                        ; vaddps        (%rax),%ymm8,%ymm0
9678  DB  197,124,16,72,64                    ; vmovups       0x40(%rax),%ymm9
9679  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
9680  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9681  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9682  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9683  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9684  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9685  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9686  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9687  DB  196,65,52,89,210                    ; vmulps        %ymm10,%ymm9,%ymm10
9688  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9689  DB  196,65,52,89,210                    ; vmulps        %ymm10,%ymm9,%ymm10
9690  DB  196,65,60,88,194                    ; vaddps        %ymm10,%ymm8,%ymm8
9691  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
9692  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9693  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9694  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9695  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9696  DB  196,65,44,88,192                    ; vaddps        %ymm8,%ymm10,%ymm8
9697  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9698  DB  72,173                              ; lods          %ds:(%rsi),%rax
9699  DB  255,224                             ; jmpq          *%rax
9700
9701PUBLIC _sk_bicubic_p3x_avx
9702_sk_bicubic_p3x_avx LABEL PROC
9703  DB  72,173                              ; lods          %ds:(%rsi),%rax
9704  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9705  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9706  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9707  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9708  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9709  DB  197,124,16,64,64                    ; vmovups       0x40(%rax),%ymm8
9710  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
9711  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
9712  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9713  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9714  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9715  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
9716  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9717  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9718  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9719  DB  196,65,60,89,194                    ; vmulps        %ymm10,%ymm8,%ymm8
9720  DB  196,65,60,88,195                    ; vaddps        %ymm11,%ymm8,%ymm8
9721  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9722  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9723  DB  72,173                              ; lods          %ds:(%rsi),%rax
9724  DB  255,224                             ; jmpq          *%rax
9725
9726PUBLIC _sk_bicubic_n3y_avx
9727_sk_bicubic_n3y_avx LABEL PROC
9728  DB  72,173                              ; lods          %ds:(%rsi),%rax
9729  DB  65,184,0,0,192,191                  ; mov           $0xbfc00000,%r8d
9730  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9731  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9732  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9733  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9734  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9735  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9736  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9737  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9738  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
9739  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
9740  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
9741  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9742  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9743  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9744  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
9745  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9746  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9747  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9748  DB  196,65,44,89,192                    ; vmulps        %ymm8,%ymm10,%ymm8
9749  DB  196,65,60,88,195                    ; vaddps        %ymm11,%ymm8,%ymm8
9750  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9751  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9752  DB  72,173                              ; lods          %ds:(%rsi),%rax
9753  DB  255,224                             ; jmpq          *%rax
9754
9755PUBLIC _sk_bicubic_n1y_avx
9756_sk_bicubic_n1y_avx LABEL PROC
9757  DB  72,173                              ; lods          %ds:(%rsi),%rax
9758  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
9759  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9760  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9761  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9762  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9763  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9764  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9765  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9766  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9767  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
9768  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
9769  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
9770  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
9771  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
9772  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9773  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9774  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9775  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9776  DB  196,65,52,89,200                    ; vmulps        %ymm8,%ymm9,%ymm9
9777  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9778  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9779  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9780  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9781  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9782  DB  196,65,60,89,201                    ; vmulps        %ymm9,%ymm8,%ymm9
9783  DB  196,65,44,88,201                    ; vaddps        %ymm9,%ymm10,%ymm9
9784  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
9785  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9786  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9787  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9788  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
9789  DB  196,65,44,88,192                    ; vaddps        %ymm8,%ymm10,%ymm8
9790  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9791  DB  72,173                              ; lods          %ds:(%rsi),%rax
9792  DB  255,224                             ; jmpq          *%rax
9793
9794PUBLIC _sk_bicubic_p1y_avx
9795_sk_bicubic_p1y_avx LABEL PROC
9796  DB  72,173                              ; lods          %ds:(%rsi),%rax
9797  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9798  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9799  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9800  DB  196,99,117,24,193,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm8
9801  DB  197,188,88,72,32                    ; vaddps        0x20(%rax),%ymm8,%ymm1
9802  DB  197,124,16,72,96                    ; vmovups       0x60(%rax),%ymm9
9803  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
9804  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9805  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9806  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9807  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9808  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9809  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9810  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9811  DB  196,65,52,89,210                    ; vmulps        %ymm10,%ymm9,%ymm10
9812  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9813  DB  196,65,52,89,210                    ; vmulps        %ymm10,%ymm9,%ymm10
9814  DB  196,65,60,88,194                    ; vaddps        %ymm10,%ymm8,%ymm8
9815  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
9816  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9817  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9818  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9819  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9820  DB  196,65,44,88,192                    ; vaddps        %ymm8,%ymm10,%ymm8
9821  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9822  DB  72,173                              ; lods          %ds:(%rsi),%rax
9823  DB  255,224                             ; jmpq          *%rax
9824
9825PUBLIC _sk_bicubic_p3y_avx
9826_sk_bicubic_p3y_avx LABEL PROC
9827  DB  72,173                              ; lods          %ds:(%rsi),%rax
9828  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9829  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9830  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9831  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9832  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9833  DB  197,124,16,64,96                    ; vmovups       0x60(%rax),%ymm8
9834  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
9835  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
9836  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9837  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9838  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9839  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
9840  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9841  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9842  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9843  DB  196,65,60,89,194                    ; vmulps        %ymm10,%ymm8,%ymm8
9844  DB  196,65,60,88,195                    ; vaddps        %ymm11,%ymm8,%ymm8
9845  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9846  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9847  DB  72,173                              ; lods          %ds:(%rsi),%rax
9848  DB  255,224                             ; jmpq          *%rax
9849
9850PUBLIC _sk_callback_avx
9851_sk_callback_avx LABEL PROC
9852  DB  65,86                               ; push          %r14
9853  DB  83                                  ; push          %rbx
9854  DB  72,129,236,40,1,0,0                 ; sub           $0x128,%rsp
9855  DB  197,252,17,188,36,0,1,0,0           ; vmovups       %ymm7,0x100(%rsp)
9856  DB  197,252,17,180,36,224,0,0,0         ; vmovups       %ymm6,0xe0(%rsp)
9857  DB  197,252,17,172,36,192,0,0,0         ; vmovups       %ymm5,0xc0(%rsp)
9858  DB  197,252,17,164,36,160,0,0,0         ; vmovups       %ymm4,0xa0(%rsp)
9859  DB  197,252,17,156,36,128,0,0,0         ; vmovups       %ymm3,0x80(%rsp)
9860  DB  197,252,17,84,36,96                 ; vmovups       %ymm2,0x60(%rsp)
9861  DB  197,252,17,76,36,64                 ; vmovups       %ymm1,0x40(%rsp)
9862  DB  197,252,17,68,36,32                 ; vmovups       %ymm0,0x20(%rsp)
9863  DB  72,137,203                          ; mov           %rcx,%rbx
9864  DB  73,137,214                          ; mov           %rdx,%r14
9865  DB  72,173                              ; lods          %ds:(%rsi),%rax
9866  DB  72,139,72,8                         ; mov           0x8(%rax),%rcx
9867  DB  72,133,219                          ; test          %rbx,%rbx
9868  DB  186,8,0,0,0                         ; mov           $0x8,%edx
9869  DB  15,69,211                           ; cmovne        %ebx,%edx
9870  DB  197,248,119                         ; vzeroupper
9871  DB  255,16                              ; callq         *(%rax)
9872  DB  72,173                              ; lods          %ds:(%rsi),%rax
9873  DB  76,137,242                          ; mov           %r14,%rdx
9874  DB  72,137,217                          ; mov           %rbx,%rcx
9875  DB  197,252,16,68,36,32                 ; vmovups       0x20(%rsp),%ymm0
9876  DB  197,252,16,76,36,64                 ; vmovups       0x40(%rsp),%ymm1
9877  DB  197,252,16,84,36,96                 ; vmovups       0x60(%rsp),%ymm2
9878  DB  197,252,16,156,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm3
9879  DB  197,252,16,164,36,160,0,0,0         ; vmovups       0xa0(%rsp),%ymm4
9880  DB  197,252,16,172,36,192,0,0,0         ; vmovups       0xc0(%rsp),%ymm5
9881  DB  197,252,16,180,36,224,0,0,0         ; vmovups       0xe0(%rsp),%ymm6
9882  DB  197,252,16,188,36,0,1,0,0           ; vmovups       0x100(%rsp),%ymm7
9883  DB  72,129,196,40,1,0,0                 ; add           $0x128,%rsp
9884  DB  91                                  ; pop           %rbx
9885  DB  65,94                               ; pop           %r14
9886  DB  255,224                             ; jmpq          *%rax
9887
9888PUBLIC _sk_start_pipeline_sse41
9889_sk_start_pipeline_sse41 LABEL PROC
9890  DB  65,87                               ; push          %r15
9891  DB  65,86                               ; push          %r14
9892  DB  65,85                               ; push          %r13
9893  DB  65,84                               ; push          %r12
9894  DB  86                                  ; push          %rsi
9895  DB  87                                  ; push          %rdi
9896  DB  83                                  ; push          %rbx
9897  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
9898  DB  68,15,41,188,36,144,0,0,0           ; movaps        %xmm15,0x90(%rsp)
9899  DB  68,15,41,180,36,128,0,0,0           ; movaps        %xmm14,0x80(%rsp)
9900  DB  68,15,41,108,36,112                 ; movaps        %xmm13,0x70(%rsp)
9901  DB  68,15,41,100,36,96                  ; movaps        %xmm12,0x60(%rsp)
9902  DB  68,15,41,92,36,80                   ; movaps        %xmm11,0x50(%rsp)
9903  DB  68,15,41,84,36,64                   ; movaps        %xmm10,0x40(%rsp)
9904  DB  68,15,41,76,36,48                   ; movaps        %xmm9,0x30(%rsp)
9905  DB  68,15,41,68,36,32                   ; movaps        %xmm8,0x20(%rsp)
9906  DB  15,41,124,36,16                     ; movaps        %xmm7,0x10(%rsp)
9907  DB  15,41,52,36                         ; movaps        %xmm6,(%rsp)
9908  DB  77,137,207                          ; mov           %r9,%r15
9909  DB  77,137,198                          ; mov           %r8,%r14
9910  DB  72,137,203                          ; mov           %rcx,%rbx
9911  DB  72,137,214                          ; mov           %rdx,%rsi
9912  DB  72,173                              ; lods          %ds:(%rsi),%rax
9913  DB  73,137,196                          ; mov           %rax,%r12
9914  DB  73,137,245                          ; mov           %rsi,%r13
9915  DB  72,141,67,4                         ; lea           0x4(%rbx),%rax
9916  DB  76,57,248                           ; cmp           %r15,%rax
9917  DB  118,5                               ; jbe           73 <_sk_start_pipeline_sse41+0x73>
9918  DB  72,137,216                          ; mov           %rbx,%rax
9919  DB  235,52                              ; jmp           a7 <_sk_start_pipeline_sse41+0xa7>
9920  DB  15,87,192                           ; xorps         %xmm0,%xmm0
9921  DB  15,87,201                           ; xorps         %xmm1,%xmm1
9922  DB  15,87,210                           ; xorps         %xmm2,%xmm2
9923  DB  15,87,219                           ; xorps         %xmm3,%xmm3
9924  DB  15,87,228                           ; xorps         %xmm4,%xmm4
9925  DB  15,87,237                           ; xorps         %xmm5,%xmm5
9926  DB  15,87,246                           ; xorps         %xmm6,%xmm6
9927  DB  15,87,255                           ; xorps         %xmm7,%xmm7
9928  DB  72,137,223                          ; mov           %rbx,%rdi
9929  DB  76,137,238                          ; mov           %r13,%rsi
9930  DB  76,137,242                          ; mov           %r14,%rdx
9931  DB  65,255,212                          ; callq         *%r12
9932  DB  72,141,67,4                         ; lea           0x4(%rbx),%rax
9933  DB  72,131,195,8                        ; add           $0x8,%rbx
9934  DB  76,57,251                           ; cmp           %r15,%rbx
9935  DB  72,137,195                          ; mov           %rax,%rbx
9936  DB  118,204                             ; jbe           73 <_sk_start_pipeline_sse41+0x73>
9937  DB  15,40,52,36                         ; movaps        (%rsp),%xmm6
9938  DB  15,40,124,36,16                     ; movaps        0x10(%rsp),%xmm7
9939  DB  68,15,40,68,36,32                   ; movaps        0x20(%rsp),%xmm8
9940  DB  68,15,40,76,36,48                   ; movaps        0x30(%rsp),%xmm9
9941  DB  68,15,40,84,36,64                   ; movaps        0x40(%rsp),%xmm10
9942  DB  68,15,40,92,36,80                   ; movaps        0x50(%rsp),%xmm11
9943  DB  68,15,40,100,36,96                  ; movaps        0x60(%rsp),%xmm12
9944  DB  68,15,40,108,36,112                 ; movaps        0x70(%rsp),%xmm13
9945  DB  68,15,40,180,36,128,0,0,0           ; movaps        0x80(%rsp),%xmm14
9946  DB  68,15,40,188,36,144,0,0,0           ; movaps        0x90(%rsp),%xmm15
9947  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
9948  DB  91                                  ; pop           %rbx
9949  DB  95                                  ; pop           %rdi
9950  DB  94                                  ; pop           %rsi
9951  DB  65,92                               ; pop           %r12
9952  DB  65,93                               ; pop           %r13
9953  DB  65,94                               ; pop           %r14
9954  DB  65,95                               ; pop           %r15
9955  DB  195                                 ; retq
9956
9957PUBLIC _sk_just_return_sse41
9958_sk_just_return_sse41 LABEL PROC
9959  DB  195                                 ; retq
9960
9961PUBLIC _sk_seed_shader_sse41
9962_sk_seed_shader_sse41 LABEL PROC
9963  DB  72,173                              ; lods          %ds:(%rsi),%rax
9964  DB  102,15,110,199                      ; movd          %edi,%xmm0
9965  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
9966  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
9967  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
9968  DB  102,15,110,209                      ; movd          %ecx,%xmm2
9969  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
9970  DB  15,88,202                           ; addps         %xmm2,%xmm1
9971  DB  15,16,2                             ; movups        (%rdx),%xmm0
9972  DB  15,88,193                           ; addps         %xmm1,%xmm0
9973  DB  102,15,110,8                        ; movd          (%rax),%xmm1
9974  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
9975  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
9976  DB  15,88,202                           ; addps         %xmm2,%xmm1
9977  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
9978  DB  102,15,110,208                      ; movd          %eax,%xmm2
9979  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
9980  DB  72,173                              ; lods          %ds:(%rsi),%rax
9981  DB  15,87,219                           ; xorps         %xmm3,%xmm3
9982  DB  15,87,228                           ; xorps         %xmm4,%xmm4
9983  DB  15,87,237                           ; xorps         %xmm5,%xmm5
9984  DB  15,87,246                           ; xorps         %xmm6,%xmm6
9985  DB  15,87,255                           ; xorps         %xmm7,%xmm7
9986  DB  255,224                             ; jmpq          *%rax
9987
9988PUBLIC _sk_constant_color_sse41
9989_sk_constant_color_sse41 LABEL PROC
9990  DB  72,173                              ; lods          %ds:(%rsi),%rax
9991  DB  243,15,16,0                         ; movss         (%rax),%xmm0
9992  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
9993  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
9994  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
9995  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
9996  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
9997  DB  243,15,16,88,12                     ; movss         0xc(%rax),%xmm3
9998  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
9999  DB  72,173                              ; lods          %ds:(%rsi),%rax
10000  DB  255,224                             ; jmpq          *%rax
10001
10002PUBLIC _sk_clear_sse41
10003_sk_clear_sse41 LABEL PROC
10004  DB  72,173                              ; lods          %ds:(%rsi),%rax
10005  DB  15,87,192                           ; xorps         %xmm0,%xmm0
10006  DB  15,87,201                           ; xorps         %xmm1,%xmm1
10007  DB  15,87,210                           ; xorps         %xmm2,%xmm2
10008  DB  15,87,219                           ; xorps         %xmm3,%xmm3
10009  DB  255,224                             ; jmpq          *%rax
10010
10011PUBLIC _sk_srcatop_sse41
10012_sk_srcatop_sse41 LABEL PROC
10013  DB  15,89,199                           ; mulps         %xmm7,%xmm0
10014  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10015  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10016  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10017  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
10018  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10019  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
10020  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
10021  DB  15,89,207                           ; mulps         %xmm7,%xmm1
10022  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10023  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10024  DB  65,15,88,201                        ; addps         %xmm9,%xmm1
10025  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10026  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10027  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10028  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
10029  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10030  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10031  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
10032  DB  72,173                              ; lods          %ds:(%rsi),%rax
10033  DB  255,224                             ; jmpq          *%rax
10034
10035PUBLIC _sk_dstatop_sse41
10036_sk_dstatop_sse41 LABEL PROC
10037  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10038  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
10039  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10040  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
10041  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
10042  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
10043  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
10044  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
10045  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10046  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
10047  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
10048  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
10049  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10050  DB  68,15,89,198                        ; mulps         %xmm6,%xmm8
10051  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
10052  DB  65,15,88,208                        ; addps         %xmm8,%xmm2
10053  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
10054  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10055  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
10056  DB  72,173                              ; lods          %ds:(%rsi),%rax
10057  DB  255,224                             ; jmpq          *%rax
10058
10059PUBLIC _sk_srcin_sse41
10060_sk_srcin_sse41 LABEL PROC
10061  DB  15,89,199                           ; mulps         %xmm7,%xmm0
10062  DB  15,89,207                           ; mulps         %xmm7,%xmm1
10063  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10064  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10065  DB  72,173                              ; lods          %ds:(%rsi),%rax
10066  DB  255,224                             ; jmpq          *%rax
10067
10068PUBLIC _sk_dstin_sse41
10069_sk_dstin_sse41 LABEL PROC
10070  DB  15,40,195                           ; movaps        %xmm3,%xmm0
10071  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10072  DB  15,40,203                           ; movaps        %xmm3,%xmm1
10073  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10074  DB  15,40,211                           ; movaps        %xmm3,%xmm2
10075  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10076  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10077  DB  72,173                              ; lods          %ds:(%rsi),%rax
10078  DB  255,224                             ; jmpq          *%rax
10079
10080PUBLIC _sk_srcout_sse41
10081_sk_srcout_sse41 LABEL PROC
10082  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10083  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10084  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10085  DB  68,15,92,199                        ; subps         %xmm7,%xmm8
10086  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
10087  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
10088  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
10089  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
10090  DB  72,173                              ; lods          %ds:(%rsi),%rax
10091  DB  255,224                             ; jmpq          *%rax
10092
10093PUBLIC _sk_dstout_sse41
10094_sk_dstout_sse41 LABEL PROC
10095  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10096  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10097  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10098  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
10099  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10100  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10101  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10102  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10103  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10104  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10105  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10106  DB  72,173                              ; lods          %ds:(%rsi),%rax
10107  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
10108  DB  255,224                             ; jmpq          *%rax
10109
10110PUBLIC _sk_srcover_sse41
10111_sk_srcover_sse41 LABEL PROC
10112  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10113  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10114  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10115  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
10116  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10117  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
10118  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
10119  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10120  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10121  DB  65,15,88,201                        ; addps         %xmm9,%xmm1
10122  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10123  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10124  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
10125  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10126  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
10127  DB  72,173                              ; lods          %ds:(%rsi),%rax
10128  DB  255,224                             ; jmpq          *%rax
10129
10130PUBLIC _sk_dstover_sse41
10131_sk_dstover_sse41 LABEL PROC
10132  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10133  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10134  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10135  DB  68,15,92,199                        ; subps         %xmm7,%xmm8
10136  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
10137  DB  15,88,196                           ; addps         %xmm4,%xmm0
10138  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
10139  DB  15,88,205                           ; addps         %xmm5,%xmm1
10140  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
10141  DB  15,88,214                           ; addps         %xmm6,%xmm2
10142  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
10143  DB  15,88,223                           ; addps         %xmm7,%xmm3
10144  DB  72,173                              ; lods          %ds:(%rsi),%rax
10145  DB  255,224                             ; jmpq          *%rax
10146
10147PUBLIC _sk_modulate_sse41
10148_sk_modulate_sse41 LABEL PROC
10149  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10150  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10151  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10152  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10153  DB  72,173                              ; lods          %ds:(%rsi),%rax
10154  DB  255,224                             ; jmpq          *%rax
10155
10156PUBLIC _sk_multiply_sse41
10157_sk_multiply_sse41 LABEL PROC
10158  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10159  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10160  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10161  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10162  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
10163  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
10164  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
10165  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
10166  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
10167  DB  68,15,89,220                        ; mulps         %xmm4,%xmm11
10168  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
10169  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10170  DB  65,15,88,195                        ; addps         %xmm11,%xmm0
10171  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
10172  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
10173  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
10174  DB  68,15,89,221                        ; mulps         %xmm5,%xmm11
10175  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
10176  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10177  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
10178  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
10179  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
10180  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
10181  DB  68,15,89,222                        ; mulps         %xmm6,%xmm11
10182  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
10183  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10184  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
10185  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
10186  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10187  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
10188  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10189  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
10190  DB  72,173                              ; lods          %ds:(%rsi),%rax
10191  DB  255,224                             ; jmpq          *%rax
10192
10193PUBLIC _sk_plus__sse41
10194_sk_plus__sse41 LABEL PROC
10195  DB  15,88,196                           ; addps         %xmm4,%xmm0
10196  DB  15,88,205                           ; addps         %xmm5,%xmm1
10197  DB  15,88,214                           ; addps         %xmm6,%xmm2
10198  DB  15,88,223                           ; addps         %xmm7,%xmm3
10199  DB  72,173                              ; lods          %ds:(%rsi),%rax
10200  DB  255,224                             ; jmpq          *%rax
10201
10202PUBLIC _sk_screen_sse41
10203_sk_screen_sse41 LABEL PROC
10204  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
10205  DB  68,15,88,196                        ; addps         %xmm4,%xmm8
10206  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10207  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
10208  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
10209  DB  68,15,88,205                        ; addps         %xmm5,%xmm9
10210  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10211  DB  68,15,92,201                        ; subps         %xmm1,%xmm9
10212  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
10213  DB  68,15,88,214                        ; addps         %xmm6,%xmm10
10214  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10215  DB  68,15,92,210                        ; subps         %xmm2,%xmm10
10216  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
10217  DB  68,15,88,223                        ; addps         %xmm7,%xmm11
10218  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10219  DB  68,15,92,219                        ; subps         %xmm3,%xmm11
10220  DB  72,173                              ; lods          %ds:(%rsi),%rax
10221  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10222  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
10223  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10224  DB  65,15,40,219                        ; movaps        %xmm11,%xmm3
10225  DB  255,224                             ; jmpq          *%rax
10226
10227PUBLIC _sk_xor__sse41
10228_sk_xor__sse41 LABEL PROC
10229  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10230  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10231  DB  102,15,110,216                      ; movd          %eax,%xmm3
10232  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
10233  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10234  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
10235  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
10236  DB  65,15,92,216                        ; subps         %xmm8,%xmm3
10237  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
10238  DB  68,15,89,212                        ; mulps         %xmm4,%xmm10
10239  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
10240  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
10241  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
10242  DB  68,15,89,213                        ; mulps         %xmm5,%xmm10
10243  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
10244  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
10245  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
10246  DB  68,15,89,214                        ; mulps         %xmm6,%xmm10
10247  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
10248  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
10249  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10250  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
10251  DB  72,173                              ; lods          %ds:(%rsi),%rax
10252  DB  255,224                             ; jmpq          *%rax
10253
10254PUBLIC _sk_darken_sse41
10255_sk_darken_sse41 LABEL PROC
10256  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
10257  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10258  DB  15,88,196                           ; addps         %xmm4,%xmm0
10259  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
10260  DB  15,40,203                           ; movaps        %xmm3,%xmm1
10261  DB  15,89,204                           ; mulps         %xmm4,%xmm1
10262  DB  68,15,95,201                        ; maxps         %xmm1,%xmm9
10263  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
10264  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10265  DB  15,88,205                           ; addps         %xmm5,%xmm1
10266  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10267  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10268  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10269  DB  69,15,95,193                        ; maxps         %xmm9,%xmm8
10270  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
10271  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
10272  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
10273  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10274  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10275  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10276  DB  65,15,95,209                        ; maxps         %xmm9,%xmm2
10277  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
10278  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10279  DB  102,15,110,208                      ; movd          %eax,%xmm2
10280  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10281  DB  15,92,211                           ; subps         %xmm3,%xmm2
10282  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10283  DB  15,88,218                           ; addps         %xmm2,%xmm3
10284  DB  72,173                              ; lods          %ds:(%rsi),%rax
10285  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10286  DB  255,224                             ; jmpq          *%rax
10287
10288PUBLIC _sk_lighten_sse41
10289_sk_lighten_sse41 LABEL PROC
10290  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
10291  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10292  DB  15,88,196                           ; addps         %xmm4,%xmm0
10293  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
10294  DB  15,40,203                           ; movaps        %xmm3,%xmm1
10295  DB  15,89,204                           ; mulps         %xmm4,%xmm1
10296  DB  68,15,93,201                        ; minps         %xmm1,%xmm9
10297  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
10298  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10299  DB  15,88,205                           ; addps         %xmm5,%xmm1
10300  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10301  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10302  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10303  DB  69,15,93,193                        ; minps         %xmm9,%xmm8
10304  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
10305  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
10306  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
10307  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10308  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10309  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10310  DB  65,15,93,209                        ; minps         %xmm9,%xmm2
10311  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
10312  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10313  DB  102,15,110,208                      ; movd          %eax,%xmm2
10314  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10315  DB  15,92,211                           ; subps         %xmm3,%xmm2
10316  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10317  DB  15,88,218                           ; addps         %xmm2,%xmm3
10318  DB  72,173                              ; lods          %ds:(%rsi),%rax
10319  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10320  DB  255,224                             ; jmpq          *%rax
10321
10322PUBLIC _sk_difference_sse41
10323_sk_difference_sse41 LABEL PROC
10324  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
10325  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10326  DB  15,88,196                           ; addps         %xmm4,%xmm0
10327  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
10328  DB  15,40,203                           ; movaps        %xmm3,%xmm1
10329  DB  15,89,204                           ; mulps         %xmm4,%xmm1
10330  DB  68,15,93,201                        ; minps         %xmm1,%xmm9
10331  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
10332  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
10333  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10334  DB  15,88,205                           ; addps         %xmm5,%xmm1
10335  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10336  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10337  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10338  DB  69,15,93,193                        ; minps         %xmm9,%xmm8
10339  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
10340  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
10341  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
10342  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
10343  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10344  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10345  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10346  DB  65,15,93,209                        ; minps         %xmm9,%xmm2
10347  DB  15,88,210                           ; addps         %xmm2,%xmm2
10348  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
10349  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10350  DB  102,15,110,208                      ; movd          %eax,%xmm2
10351  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10352  DB  15,92,211                           ; subps         %xmm3,%xmm2
10353  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10354  DB  15,88,218                           ; addps         %xmm2,%xmm3
10355  DB  72,173                              ; lods          %ds:(%rsi),%rax
10356  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10357  DB  255,224                             ; jmpq          *%rax
10358
10359PUBLIC _sk_exclusion_sse41
10360_sk_exclusion_sse41 LABEL PROC
10361  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
10362  DB  15,40,200                           ; movaps        %xmm0,%xmm1
10363  DB  15,88,196                           ; addps         %xmm4,%xmm0
10364  DB  15,89,204                           ; mulps         %xmm4,%xmm1
10365  DB  15,88,201                           ; addps         %xmm1,%xmm1
10366  DB  15,92,193                           ; subps         %xmm1,%xmm0
10367  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10368  DB  15,88,205                           ; addps         %xmm5,%xmm1
10369  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
10370  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
10371  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
10372  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
10373  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
10374  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10375  DB  15,88,210                           ; addps         %xmm2,%xmm2
10376  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
10377  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10378  DB  102,15,110,208                      ; movd          %eax,%xmm2
10379  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10380  DB  15,92,211                           ; subps         %xmm3,%xmm2
10381  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10382  DB  15,88,218                           ; addps         %xmm2,%xmm3
10383  DB  72,173                              ; lods          %ds:(%rsi),%rax
10384  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10385  DB  255,224                             ; jmpq          *%rax
10386
10387PUBLIC _sk_colorburn_sse41
10388_sk_colorburn_sse41 LABEL PROC
10389  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10390  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10391  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
10392  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
10393  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
10394  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
10395  DB  69,15,40,227                        ; movaps        %xmm11,%xmm12
10396  DB  69,15,89,225                        ; mulps         %xmm9,%xmm12
10397  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
10398  DB  15,40,199                           ; movaps        %xmm7,%xmm0
10399  DB  15,92,196                           ; subps         %xmm4,%xmm0
10400  DB  15,89,195                           ; mulps         %xmm3,%xmm0
10401  DB  65,15,94,193                        ; divps         %xmm9,%xmm0
10402  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10403  DB  68,15,93,232                        ; minps         %xmm0,%xmm13
10404  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10405  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
10406  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10407  DB  65,15,194,192,0                     ; cmpeqps       %xmm8,%xmm0
10408  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
10409  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
10410  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
10411  DB  102,69,15,56,20,241                 ; blendvps      %xmm0,%xmm9,%xmm14
10412  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
10413  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
10414  DB  68,15,88,228                        ; addps         %xmm4,%xmm12
10415  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10416  DB  15,194,199,0                        ; cmpeqps       %xmm7,%xmm0
10417  DB  69,15,88,206                        ; addps         %xmm14,%xmm9
10418  DB  102,69,15,56,20,204                 ; blendvps      %xmm0,%xmm12,%xmm9
10419  DB  69,15,40,227                        ; movaps        %xmm11,%xmm12
10420  DB  68,15,89,225                        ; mulps         %xmm1,%xmm12
10421  DB  15,40,199                           ; movaps        %xmm7,%xmm0
10422  DB  15,92,197                           ; subps         %xmm5,%xmm0
10423  DB  15,89,195                           ; mulps         %xmm3,%xmm0
10424  DB  15,94,193                           ; divps         %xmm1,%xmm0
10425  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10426  DB  68,15,93,232                        ; minps         %xmm0,%xmm13
10427  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10428  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
10429  DB  15,40,193                           ; movaps        %xmm1,%xmm0
10430  DB  65,15,194,192,0                     ; cmpeqps       %xmm8,%xmm0
10431  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
10432  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
10433  DB  102,68,15,56,20,241                 ; blendvps      %xmm0,%xmm1,%xmm14
10434  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
10435  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10436  DB  68,15,88,229                        ; addps         %xmm5,%xmm12
10437  DB  65,15,88,206                        ; addps         %xmm14,%xmm1
10438  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10439  DB  15,194,199,0                        ; cmpeqps       %xmm7,%xmm0
10440  DB  102,65,15,56,20,204                 ; blendvps      %xmm0,%xmm12,%xmm1
10441  DB  15,40,199                           ; movaps        %xmm7,%xmm0
10442  DB  15,92,198                           ; subps         %xmm6,%xmm0
10443  DB  15,89,195                           ; mulps         %xmm3,%xmm0
10444  DB  15,94,194                           ; divps         %xmm2,%xmm0
10445  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
10446  DB  68,15,93,224                        ; minps         %xmm0,%xmm12
10447  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10448  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
10449  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
10450  DB  68,15,194,194,0                     ; cmpeqps       %xmm2,%xmm8
10451  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
10452  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
10453  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10454  DB  102,68,15,56,20,234                 ; blendvps      %xmm0,%xmm2,%xmm13
10455  DB  68,15,88,222                        ; addps         %xmm6,%xmm11
10456  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10457  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10458  DB  65,15,88,213                        ; addps         %xmm13,%xmm2
10459  DB  15,40,198                           ; movaps        %xmm6,%xmm0
10460  DB  15,194,199,0                        ; cmpeqps       %xmm7,%xmm0
10461  DB  102,65,15,56,20,211                 ; blendvps      %xmm0,%xmm11,%xmm2
10462  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10463  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
10464  DB  72,173                              ; lods          %ds:(%rsi),%rax
10465  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10466  DB  255,224                             ; jmpq          *%rax
10467
10468PUBLIC _sk_colordodge_sse41
10469_sk_colordodge_sse41 LABEL PROC
10470  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
10471  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10472  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
10473  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
10474  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
10475  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
10476  DB  69,15,40,227                        ; movaps        %xmm11,%xmm12
10477  DB  69,15,89,224                        ; mulps         %xmm8,%xmm12
10478  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10479  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
10480  DB  15,40,195                           ; movaps        %xmm3,%xmm0
10481  DB  65,15,92,192                        ; subps         %xmm8,%xmm0
10482  DB  68,15,94,200                        ; divps         %xmm0,%xmm9
10483  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10484  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10485  DB  69,15,93,241                        ; minps         %xmm9,%xmm14
10486  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10487  DB  15,194,195,0                        ; cmpeqps       %xmm3,%xmm0
10488  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
10489  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
10490  DB  102,69,15,56,20,240                 ; blendvps      %xmm0,%xmm8,%xmm14
10491  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
10492  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
10493  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
10494  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
10495  DB  68,15,88,228                        ; addps         %xmm4,%xmm12
10496  DB  69,15,88,198                        ; addps         %xmm14,%xmm8
10497  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10498  DB  65,15,194,193,0                     ; cmpeqps       %xmm9,%xmm0
10499  DB  102,69,15,56,20,196                 ; blendvps      %xmm0,%xmm12,%xmm8
10500  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
10501  DB  68,15,89,229                        ; mulps         %xmm5,%xmm12
10502  DB  15,40,195                           ; movaps        %xmm3,%xmm0
10503  DB  15,92,193                           ; subps         %xmm1,%xmm0
10504  DB  68,15,94,224                        ; divps         %xmm0,%xmm12
10505  DB  69,15,40,243                        ; movaps        %xmm11,%xmm14
10506  DB  68,15,89,241                        ; mulps         %xmm1,%xmm14
10507  DB  69,15,93,236                        ; minps         %xmm12,%xmm13
10508  DB  15,40,193                           ; movaps        %xmm1,%xmm0
10509  DB  15,194,195,0                        ; cmpeqps       %xmm3,%xmm0
10510  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
10511  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
10512  DB  102,68,15,56,20,233                 ; blendvps      %xmm0,%xmm1,%xmm13
10513  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
10514  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10515  DB  68,15,88,245                        ; addps         %xmm5,%xmm14
10516  DB  65,15,88,205                        ; addps         %xmm13,%xmm1
10517  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10518  DB  65,15,194,193,0                     ; cmpeqps       %xmm9,%xmm0
10519  DB  102,65,15,56,20,206                 ; blendvps      %xmm0,%xmm14,%xmm1
10520  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
10521  DB  68,15,89,230                        ; mulps         %xmm6,%xmm12
10522  DB  15,40,195                           ; movaps        %xmm3,%xmm0
10523  DB  15,92,194                           ; subps         %xmm2,%xmm0
10524  DB  68,15,94,224                        ; divps         %xmm0,%xmm12
10525  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10526  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
10527  DB  69,15,93,236                        ; minps         %xmm12,%xmm13
10528  DB  15,40,194                           ; movaps        %xmm2,%xmm0
10529  DB  15,194,195,0                        ; cmpeqps       %xmm3,%xmm0
10530  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
10531  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
10532  DB  102,68,15,56,20,234                 ; blendvps      %xmm0,%xmm2,%xmm13
10533  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10534  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10535  DB  65,15,88,213                        ; addps         %xmm13,%xmm2
10536  DB  68,15,194,206,0                     ; cmpeqps       %xmm6,%xmm9
10537  DB  68,15,88,222                        ; addps         %xmm6,%xmm11
10538  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10539  DB  102,65,15,56,20,211                 ; blendvps      %xmm0,%xmm11,%xmm2
10540  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10541  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
10542  DB  72,173                              ; lods          %ds:(%rsi),%rax
10543  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10544  DB  255,224                             ; jmpq          *%rax
10545
10546PUBLIC _sk_hardlight_sse41
10547_sk_hardlight_sse41 LABEL PROC
10548  DB  72,131,236,24                       ; sub           $0x18,%rsp
10549  DB  15,41,52,36                         ; movaps        %xmm6,(%rsp)
10550  DB  68,15,40,229                        ; movaps        %xmm5,%xmm12
10551  DB  15,40,244                           ; movaps        %xmm4,%xmm6
10552  DB  15,40,227                           ; movaps        %xmm3,%xmm4
10553  DB  15,40,234                           ; movaps        %xmm2,%xmm5
10554  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10555  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10556  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
10557  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
10558  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10559  DB  15,92,215                           ; subps         %xmm7,%xmm2
10560  DB  15,40,194                           ; movaps        %xmm2,%xmm0
10561  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
10562  DB  68,15,92,212                        ; subps         %xmm4,%xmm10
10563  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
10564  DB  68,15,89,198                        ; mulps         %xmm6,%xmm8
10565  DB  68,15,88,192                        ; addps         %xmm0,%xmm8
10566  DB  68,15,40,252                        ; movaps        %xmm4,%xmm15
10567  DB  69,15,92,249                        ; subps         %xmm9,%xmm15
10568  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10569  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10570  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10571  DB  15,40,199                           ; movaps        %xmm7,%xmm0
10572  DB  15,92,198                           ; subps         %xmm6,%xmm0
10573  DB  65,15,89,199                        ; mulps         %xmm15,%xmm0
10574  DB  15,88,192                           ; addps         %xmm0,%xmm0
10575  DB  68,15,40,251                        ; movaps        %xmm3,%xmm15
10576  DB  68,15,92,248                        ; subps         %xmm0,%xmm15
10577  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10578  DB  15,88,192                           ; addps         %xmm0,%xmm0
10579  DB  15,194,196,2                        ; cmpleps       %xmm4,%xmm0
10580  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10581  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
10582  DB  102,69,15,56,20,249                 ; blendvps      %xmm0,%xmm9,%xmm15
10583  DB  68,15,40,218                        ; movaps        %xmm2,%xmm11
10584  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
10585  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10586  DB  15,92,193                           ; subps         %xmm1,%xmm0
10587  DB  69,15,40,204                        ; movaps        %xmm12,%xmm9
10588  DB  69,15,92,233                        ; subps         %xmm9,%xmm13
10589  DB  68,15,89,232                        ; mulps         %xmm0,%xmm13
10590  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
10591  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
10592  DB  69,15,92,229                        ; subps         %xmm13,%xmm12
10593  DB  15,40,193                           ; movaps        %xmm1,%xmm0
10594  DB  15,88,192                           ; addps         %xmm0,%xmm0
10595  DB  15,194,196,2                        ; cmpleps       %xmm4,%xmm0
10596  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
10597  DB  69,15,40,233                        ; movaps        %xmm9,%xmm13
10598  DB  15,88,201                           ; addps         %xmm1,%xmm1
10599  DB  102,68,15,56,20,225                 ; blendvps      %xmm0,%xmm1,%xmm12
10600  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
10601  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
10602  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10603  DB  69,15,88,199                        ; addps         %xmm15,%xmm8
10604  DB  65,15,89,205                        ; mulps         %xmm13,%xmm1
10605  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
10606  DB  65,15,88,204                        ; addps         %xmm12,%xmm1
10607  DB  15,89,213                           ; mulps         %xmm5,%xmm2
10608  DB  68,15,40,28,36                      ; movaps        (%rsp),%xmm11
10609  DB  69,15,89,203                        ; mulps         %xmm11,%xmm9
10610  DB  68,15,88,202                        ; addps         %xmm2,%xmm9
10611  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10612  DB  15,88,192                           ; addps         %xmm0,%xmm0
10613  DB  15,194,196,2                        ; cmpleps       %xmm4,%xmm0
10614  DB  15,40,212                           ; movaps        %xmm4,%xmm2
10615  DB  15,92,213                           ; subps         %xmm5,%xmm2
10616  DB  65,15,89,235                        ; mulps         %xmm11,%xmm5
10617  DB  15,88,237                           ; addps         %xmm5,%xmm5
10618  DB  69,15,92,243                        ; subps         %xmm11,%xmm14
10619  DB  68,15,89,242                        ; mulps         %xmm2,%xmm14
10620  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
10621  DB  65,15,92,222                        ; subps         %xmm14,%xmm3
10622  DB  102,15,56,20,221                    ; blendvps      %xmm0,%xmm5,%xmm3
10623  DB  68,15,88,203                        ; addps         %xmm3,%xmm9
10624  DB  65,15,88,226                        ; addps         %xmm10,%xmm4
10625  DB  72,173                              ; lods          %ds:(%rsi),%rax
10626  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10627  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
10628  DB  15,40,220                           ; movaps        %xmm4,%xmm3
10629  DB  15,40,230                           ; movaps        %xmm6,%xmm4
10630  DB  65,15,40,237                        ; movaps        %xmm13,%xmm5
10631  DB  65,15,40,243                        ; movaps        %xmm11,%xmm6
10632  DB  72,131,196,24                       ; add           $0x18,%rsp
10633  DB  255,224                             ; jmpq          *%rax
10634
10635PUBLIC _sk_overlay_sse41
10636_sk_overlay_sse41 LABEL PROC
10637  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
10638  DB  68,15,40,240                        ; movaps        %xmm0,%xmm14
10639  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10640  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
10641  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
10642  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
10643  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
10644  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
10645  DB  65,15,89,198                        ; mulps         %xmm14,%xmm0
10646  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
10647  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
10648  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
10649  DB  68,15,88,192                        ; addps         %xmm0,%xmm8
10650  DB  68,15,40,235                        ; movaps        %xmm3,%xmm13
10651  DB  69,15,92,238                        ; subps         %xmm14,%xmm13
10652  DB  68,15,89,244                        ; mulps         %xmm4,%xmm14
10653  DB  15,40,207                           ; movaps        %xmm7,%xmm1
10654  DB  15,92,204                           ; subps         %xmm4,%xmm1
10655  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10656  DB  15,88,192                           ; addps         %xmm0,%xmm0
10657  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10658  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
10659  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
10660  DB  68,15,89,231                        ; mulps         %xmm7,%xmm12
10661  DB  65,15,89,205                        ; mulps         %xmm13,%xmm1
10662  DB  15,88,201                           ; addps         %xmm1,%xmm1
10663  DB  69,15,40,236                        ; movaps        %xmm12,%xmm13
10664  DB  68,15,92,233                        ; subps         %xmm1,%xmm13
10665  DB  102,69,15,56,20,238                 ; blendvps      %xmm0,%xmm14,%xmm13
10666  DB  69,15,88,197                        ; addps         %xmm13,%xmm8
10667  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
10668  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
10669  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
10670  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10671  DB  15,88,200                           ; addps         %xmm0,%xmm1
10672  DB  68,15,40,235                        ; movaps        %xmm3,%xmm13
10673  DB  69,15,92,233                        ; subps         %xmm9,%xmm13
10674  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10675  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10676  DB  68,15,92,245                        ; subps         %xmm5,%xmm14
10677  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10678  DB  15,88,192                           ; addps         %xmm0,%xmm0
10679  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10680  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
10681  DB  69,15,89,245                        ; mulps         %xmm13,%xmm14
10682  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
10683  DB  69,15,40,236                        ; movaps        %xmm12,%xmm13
10684  DB  69,15,92,238                        ; subps         %xmm14,%xmm13
10685  DB  102,69,15,56,20,233                 ; blendvps      %xmm0,%xmm9,%xmm13
10686  DB  65,15,88,205                        ; addps         %xmm13,%xmm1
10687  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
10688  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
10689  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10690  DB  69,15,88,203                        ; addps         %xmm11,%xmm9
10691  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
10692  DB  68,15,92,218                        ; subps         %xmm2,%xmm11
10693  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10694  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10695  DB  68,15,92,238                        ; subps         %xmm6,%xmm13
10696  DB  15,40,198                           ; movaps        %xmm6,%xmm0
10697  DB  15,88,192                           ; addps         %xmm0,%xmm0
10698  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10699  DB  15,88,210                           ; addps         %xmm2,%xmm2
10700  DB  69,15,89,235                        ; mulps         %xmm11,%xmm13
10701  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
10702  DB  69,15,92,229                        ; subps         %xmm13,%xmm12
10703  DB  102,68,15,56,20,226                 ; blendvps      %xmm0,%xmm2,%xmm12
10704  DB  69,15,88,204                        ; addps         %xmm12,%xmm9
10705  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10706  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
10707  DB  72,173                              ; lods          %ds:(%rsi),%rax
10708  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10709  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
10710  DB  255,224                             ; jmpq          *%rax
10711
10712PUBLIC _sk_softlight_sse41
10713_sk_softlight_sse41 LABEL PROC
10714  DB  72,131,236,56                       ; sub           $0x38,%rsp
10715  DB  15,41,116,36,16                     ; movaps        %xmm6,0x10(%rsp)
10716  DB  15,40,244                           ; movaps        %xmm4,%xmm6
10717  DB  15,41,84,36,32                      ; movaps        %xmm2,0x20(%rsp)
10718  DB  68,15,40,225                        ; movaps        %xmm1,%xmm12
10719  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
10720  DB  15,87,228                           ; xorps         %xmm4,%xmm4
10721  DB  15,194,231,1                        ; cmpltps       %xmm7,%xmm4
10722  DB  15,40,198                           ; movaps        %xmm6,%xmm0
10723  DB  15,94,199                           ; divps         %xmm7,%xmm0
10724  DB  15,84,196                           ; andps         %xmm4,%xmm0
10725  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10726  DB  102,15,110,200                      ; movd          %eax,%xmm1
10727  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
10728  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
10729  DB  68,15,92,208                        ; subps         %xmm0,%xmm10
10730  DB  68,15,40,240                        ; movaps        %xmm0,%xmm14
10731  DB  68,15,40,248                        ; movaps        %xmm0,%xmm15
10732  DB  15,82,208                           ; rsqrtps       %xmm0,%xmm2
10733  DB  68,15,83,218                        ; rcpps         %xmm2,%xmm11
10734  DB  68,15,92,216                        ; subps         %xmm0,%xmm11
10735  DB  15,88,192                           ; addps         %xmm0,%xmm0
10736  DB  15,88,192                           ; addps         %xmm0,%xmm0
10737  DB  15,40,208                           ; movaps        %xmm0,%xmm2
10738  DB  15,89,210                           ; mulps         %xmm2,%xmm2
10739  DB  15,88,208                           ; addps         %xmm0,%xmm2
10740  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10741  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
10742  DB  68,15,92,241                        ; subps         %xmm1,%xmm14
10743  DB  68,15,89,242                        ; mulps         %xmm2,%xmm14
10744  DB  184,0,0,224,64                      ; mov           $0x40e00000,%eax
10745  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
10746  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
10747  DB  69,15,89,253                        ; mulps         %xmm13,%xmm15
10748  DB  69,15,88,254                        ; addps         %xmm14,%xmm15
10749  DB  15,40,198                           ; movaps        %xmm6,%xmm0
10750  DB  15,88,192                           ; addps         %xmm0,%xmm0
10751  DB  15,88,192                           ; addps         %xmm0,%xmm0
10752  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10753  DB  102,69,15,56,20,223                 ; blendvps      %xmm0,%xmm15,%xmm11
10754  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10755  DB  15,92,195                           ; subps         %xmm3,%xmm0
10756  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
10757  DB  68,15,88,211                        ; addps         %xmm3,%xmm10
10758  DB  68,15,89,214                        ; mulps         %xmm6,%xmm10
10759  DB  15,40,211                           ; movaps        %xmm3,%xmm2
10760  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10761  DB  15,89,199                           ; mulps         %xmm7,%xmm0
10762  DB  68,15,89,216                        ; mulps         %xmm0,%xmm11
10763  DB  68,15,88,218                        ; addps         %xmm2,%xmm11
10764  DB  68,15,194,203,2                     ; cmpleps       %xmm3,%xmm9
10765  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10766  DB  102,69,15,56,20,218                 ; blendvps      %xmm0,%xmm10,%xmm11
10767  DB  68,15,40,213                        ; movaps        %xmm5,%xmm10
10768  DB  68,15,94,215                        ; divps         %xmm7,%xmm10
10769  DB  68,15,84,212                        ; andps         %xmm4,%xmm10
10770  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
10771  DB  69,15,92,202                        ; subps         %xmm10,%xmm9
10772  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10773  DB  15,88,210                           ; addps         %xmm2,%xmm2
10774  DB  15,88,210                           ; addps         %xmm2,%xmm2
10775  DB  15,40,194                           ; movaps        %xmm2,%xmm0
10776  DB  15,89,192                           ; mulps         %xmm0,%xmm0
10777  DB  15,88,194                           ; addps         %xmm2,%xmm0
10778  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10779  DB  15,92,209                           ; subps         %xmm1,%xmm2
10780  DB  15,89,208                           ; mulps         %xmm0,%xmm2
10781  DB  65,15,82,194                        ; rsqrtps       %xmm10,%xmm0
10782  DB  68,15,83,240                        ; rcpps         %xmm0,%xmm14
10783  DB  69,15,92,242                        ; subps         %xmm10,%xmm14
10784  DB  69,15,89,213                        ; mulps         %xmm13,%xmm10
10785  DB  68,15,88,210                        ; addps         %xmm2,%xmm10
10786  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10787  DB  15,88,192                           ; addps         %xmm0,%xmm0
10788  DB  15,88,192                           ; addps         %xmm0,%xmm0
10789  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10790  DB  102,69,15,56,20,242                 ; blendvps      %xmm0,%xmm10,%xmm14
10791  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
10792  DB  15,88,192                           ; addps         %xmm0,%xmm0
10793  DB  15,40,208                           ; movaps        %xmm0,%xmm2
10794  DB  15,92,211                           ; subps         %xmm3,%xmm2
10795  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
10796  DB  68,15,88,203                        ; addps         %xmm3,%xmm9
10797  DB  15,41,44,36                         ; movaps        %xmm5,(%rsp)
10798  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10799  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10800  DB  68,15,89,242                        ; mulps         %xmm2,%xmm14
10801  DB  15,40,211                           ; movaps        %xmm3,%xmm2
10802  DB  15,89,213                           ; mulps         %xmm5,%xmm2
10803  DB  68,15,88,242                        ; addps         %xmm2,%xmm14
10804  DB  68,15,40,249                        ; movaps        %xmm1,%xmm15
10805  DB  15,194,195,2                        ; cmpleps       %xmm3,%xmm0
10806  DB  102,69,15,56,20,241                 ; blendvps      %xmm0,%xmm9,%xmm14
10807  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
10808  DB  15,40,108,36,16                     ; movaps        0x10(%rsp),%xmm5
10809  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10810  DB  15,94,199                           ; divps         %xmm7,%xmm0
10811  DB  15,84,196                           ; andps         %xmm4,%xmm0
10812  DB  15,40,208                           ; movaps        %xmm0,%xmm2
10813  DB  15,92,209                           ; subps         %xmm1,%xmm2
10814  DB  15,92,200                           ; subps         %xmm0,%xmm1
10815  DB  68,15,89,232                        ; mulps         %xmm0,%xmm13
10816  DB  15,82,224                           ; rsqrtps       %xmm0,%xmm4
10817  DB  68,15,83,204                        ; rcpps         %xmm4,%xmm9
10818  DB  68,15,92,200                        ; subps         %xmm0,%xmm9
10819  DB  15,88,192                           ; addps         %xmm0,%xmm0
10820  DB  15,88,192                           ; addps         %xmm0,%xmm0
10821  DB  15,40,224                           ; movaps        %xmm0,%xmm4
10822  DB  15,89,228                           ; mulps         %xmm4,%xmm4
10823  DB  15,88,224                           ; addps         %xmm0,%xmm4
10824  DB  15,89,226                           ; mulps         %xmm2,%xmm4
10825  DB  68,15,88,236                        ; addps         %xmm4,%xmm13
10826  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10827  DB  15,88,192                           ; addps         %xmm0,%xmm0
10828  DB  15,88,192                           ; addps         %xmm0,%xmm0
10829  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10830  DB  102,69,15,56,20,205                 ; blendvps      %xmm0,%xmm13,%xmm9
10831  DB  68,15,40,108,36,32                  ; movaps        0x20(%rsp),%xmm13
10832  DB  65,15,40,197                        ; movaps        %xmm13,%xmm0
10833  DB  15,88,192                           ; addps         %xmm0,%xmm0
10834  DB  15,40,208                           ; movaps        %xmm0,%xmm2
10835  DB  15,92,211                           ; subps         %xmm3,%xmm2
10836  DB  15,89,202                           ; mulps         %xmm2,%xmm1
10837  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10838  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
10839  DB  15,40,211                           ; movaps        %xmm3,%xmm2
10840  DB  15,89,213                           ; mulps         %xmm5,%xmm2
10841  DB  68,15,88,202                        ; addps         %xmm2,%xmm9
10842  DB  15,88,203                           ; addps         %xmm3,%xmm1
10843  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10844  DB  15,40,213                           ; movaps        %xmm5,%xmm2
10845  DB  15,194,195,2                        ; cmpleps       %xmm3,%xmm0
10846  DB  102,68,15,56,20,201                 ; blendvps      %xmm0,%xmm1,%xmm9
10847  DB  68,15,92,255                        ; subps         %xmm7,%xmm15
10848  DB  69,15,89,199                        ; mulps         %xmm15,%xmm8
10849  DB  69,15,89,231                        ; mulps         %xmm15,%xmm12
10850  DB  69,15,89,253                        ; mulps         %xmm13,%xmm15
10851  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
10852  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
10853  DB  15,89,198                           ; mulps         %xmm6,%xmm0
10854  DB  68,15,88,192                        ; addps         %xmm0,%xmm8
10855  DB  69,15,88,195                        ; addps         %xmm11,%xmm8
10856  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
10857  DB  15,40,44,36                         ; movaps        (%rsp),%xmm5
10858  DB  15,89,197                           ; mulps         %xmm5,%xmm0
10859  DB  68,15,88,224                        ; addps         %xmm0,%xmm12
10860  DB  69,15,88,230                        ; addps         %xmm14,%xmm12
10861  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
10862  DB  15,89,194                           ; mulps         %xmm2,%xmm0
10863  DB  65,15,88,199                        ; addps         %xmm15,%xmm0
10864  DB  68,15,88,200                        ; addps         %xmm0,%xmm9
10865  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10866  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
10867  DB  72,173                              ; lods          %ds:(%rsi),%rax
10868  DB  15,40,230                           ; movaps        %xmm6,%xmm4
10869  DB  15,40,242                           ; movaps        %xmm2,%xmm6
10870  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10871  DB  65,15,40,204                        ; movaps        %xmm12,%xmm1
10872  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
10873  DB  72,131,196,56                       ; add           $0x38,%rsp
10874  DB  255,224                             ; jmpq          *%rax
10875
10876PUBLIC _sk_clamp_0_sse41
10877_sk_clamp_0_sse41 LABEL PROC
10878  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
10879  DB  65,15,95,192                        ; maxps         %xmm8,%xmm0
10880  DB  65,15,95,200                        ; maxps         %xmm8,%xmm1
10881  DB  65,15,95,208                        ; maxps         %xmm8,%xmm2
10882  DB  65,15,95,216                        ; maxps         %xmm8,%xmm3
10883  DB  72,173                              ; lods          %ds:(%rsi),%rax
10884  DB  255,224                             ; jmpq          *%rax
10885
10886PUBLIC _sk_clamp_1_sse41
10887_sk_clamp_1_sse41 LABEL PROC
10888  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10889  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10890  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10891  DB  65,15,93,192                        ; minps         %xmm8,%xmm0
10892  DB  65,15,93,200                        ; minps         %xmm8,%xmm1
10893  DB  65,15,93,208                        ; minps         %xmm8,%xmm2
10894  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
10895  DB  72,173                              ; lods          %ds:(%rsi),%rax
10896  DB  255,224                             ; jmpq          *%rax
10897
10898PUBLIC _sk_clamp_a_sse41
10899_sk_clamp_a_sse41 LABEL PROC
10900  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10901  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10902  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10903  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
10904  DB  15,93,195                           ; minps         %xmm3,%xmm0
10905  DB  15,93,203                           ; minps         %xmm3,%xmm1
10906  DB  15,93,211                           ; minps         %xmm3,%xmm2
10907  DB  72,173                              ; lods          %ds:(%rsi),%rax
10908  DB  255,224                             ; jmpq          *%rax
10909
10910PUBLIC _sk_set_rgb_sse41
10911_sk_set_rgb_sse41 LABEL PROC
10912  DB  72,173                              ; lods          %ds:(%rsi),%rax
10913  DB  243,15,16,0                         ; movss         (%rax),%xmm0
10914  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
10915  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
10916  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
10917  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
10918  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10919  DB  72,173                              ; lods          %ds:(%rsi),%rax
10920  DB  255,224                             ; jmpq          *%rax
10921
10922PUBLIC _sk_swap_rb_sse41
10923_sk_swap_rb_sse41 LABEL PROC
10924  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
10925  DB  72,173                              ; lods          %ds:(%rsi),%rax
10926  DB  15,40,194                           ; movaps        %xmm2,%xmm0
10927  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10928  DB  255,224                             ; jmpq          *%rax
10929
10930PUBLIC _sk_swap_sse41
10931_sk_swap_sse41 LABEL PROC
10932  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10933  DB  68,15,40,202                        ; movaps        %xmm2,%xmm9
10934  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
10935  DB  68,15,40,216                        ; movaps        %xmm0,%xmm11
10936  DB  72,173                              ; lods          %ds:(%rsi),%rax
10937  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10938  DB  15,40,205                           ; movaps        %xmm5,%xmm1
10939  DB  15,40,214                           ; movaps        %xmm6,%xmm2
10940  DB  15,40,223                           ; movaps        %xmm7,%xmm3
10941  DB  65,15,40,227                        ; movaps        %xmm11,%xmm4
10942  DB  65,15,40,234                        ; movaps        %xmm10,%xmm5
10943  DB  65,15,40,241                        ; movaps        %xmm9,%xmm6
10944  DB  65,15,40,248                        ; movaps        %xmm8,%xmm7
10945  DB  255,224                             ; jmpq          *%rax
10946
10947PUBLIC _sk_move_src_dst_sse41
10948_sk_move_src_dst_sse41 LABEL PROC
10949  DB  72,173                              ; lods          %ds:(%rsi),%rax
10950  DB  15,40,224                           ; movaps        %xmm0,%xmm4
10951  DB  15,40,233                           ; movaps        %xmm1,%xmm5
10952  DB  15,40,242                           ; movaps        %xmm2,%xmm6
10953  DB  15,40,251                           ; movaps        %xmm3,%xmm7
10954  DB  255,224                             ; jmpq          *%rax
10955
10956PUBLIC _sk_move_dst_src_sse41
10957_sk_move_dst_src_sse41 LABEL PROC
10958  DB  72,173                              ; lods          %ds:(%rsi),%rax
10959  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10960  DB  15,40,205                           ; movaps        %xmm5,%xmm1
10961  DB  15,40,214                           ; movaps        %xmm6,%xmm2
10962  DB  15,40,223                           ; movaps        %xmm7,%xmm3
10963  DB  255,224                             ; jmpq          *%rax
10964
10965PUBLIC _sk_premul_sse41
10966_sk_premul_sse41 LABEL PROC
10967  DB  15,89,195                           ; mulps         %xmm3,%xmm0
10968  DB  15,89,203                           ; mulps         %xmm3,%xmm1
10969  DB  15,89,211                           ; mulps         %xmm3,%xmm2
10970  DB  72,173                              ; lods          %ds:(%rsi),%rax
10971  DB  255,224                             ; jmpq          *%rax
10972
10973PUBLIC _sk_unpremul_sse41
10974_sk_unpremul_sse41 LABEL PROC
10975  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
10976  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10977  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
10978  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
10979  DB  68,15,94,203                        ; divps         %xmm3,%xmm9
10980  DB  68,15,194,195,4                     ; cmpneqps      %xmm3,%xmm8
10981  DB  69,15,84,193                        ; andps         %xmm9,%xmm8
10982  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
10983  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
10984  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
10985  DB  72,173                              ; lods          %ds:(%rsi),%rax
10986  DB  255,224                             ; jmpq          *%rax
10987
10988PUBLIC _sk_from_srgb_sse41
10989_sk_from_srgb_sse41 LABEL PROC
10990  DB  184,145,131,158,61                  ; mov           $0x3d9e8391,%eax
10991  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
10992  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
10993  DB  69,15,40,211                        ; movaps        %xmm11,%xmm10
10994  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
10995  DB  68,15,40,240                        ; movaps        %xmm0,%xmm14
10996  DB  69,15,89,246                        ; mulps         %xmm14,%xmm14
10997  DB  184,154,153,153,62                  ; mov           $0x3e99999a,%eax
10998  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10999  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11000  DB  184,92,143,50,63                    ; mov           $0x3f328f5c,%eax
11001  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
11002  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
11003  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
11004  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
11005  DB  69,15,88,204                        ; addps         %xmm12,%xmm9
11006  DB  184,10,215,35,59                    ; mov           $0x3b23d70a,%eax
11007  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
11008  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
11009  DB  69,15,89,206                        ; mulps         %xmm14,%xmm9
11010  DB  69,15,88,205                        ; addps         %xmm13,%xmm9
11011  DB  184,174,71,97,61                    ; mov           $0x3d6147ae,%eax
11012  DB  102,68,15,110,240                   ; movd          %eax,%xmm14
11013  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
11014  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
11015  DB  102,69,15,56,20,202                 ; blendvps      %xmm0,%xmm10,%xmm9
11016  DB  69,15,40,251                        ; movaps        %xmm11,%xmm15
11017  DB  68,15,89,249                        ; mulps         %xmm1,%xmm15
11018  DB  15,40,193                           ; movaps        %xmm1,%xmm0
11019  DB  15,89,192                           ; mulps         %xmm0,%xmm0
11020  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
11021  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
11022  DB  69,15,88,212                        ; addps         %xmm12,%xmm10
11023  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
11024  DB  69,15,88,213                        ; addps         %xmm13,%xmm10
11025  DB  65,15,194,206,1                     ; cmpltps       %xmm14,%xmm1
11026  DB  15,40,193                           ; movaps        %xmm1,%xmm0
11027  DB  102,69,15,56,20,215                 ; blendvps      %xmm0,%xmm15,%xmm10
11028  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
11029  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11030  DB  15,89,192                           ; mulps         %xmm0,%xmm0
11031  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
11032  DB  69,15,88,196                        ; addps         %xmm12,%xmm8
11033  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
11034  DB  69,15,88,197                        ; addps         %xmm13,%xmm8
11035  DB  65,15,194,214,1                     ; cmpltps       %xmm14,%xmm2
11036  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11037  DB  102,69,15,56,20,195                 ; blendvps      %xmm0,%xmm11,%xmm8
11038  DB  72,173                              ; lods          %ds:(%rsi),%rax
11039  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
11040  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
11041  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
11042  DB  255,224                             ; jmpq          *%rax
11043
11044PUBLIC _sk_to_srgb_sse41
11045_sk_to_srgb_sse41 LABEL PROC
11046  DB  72,131,236,24                       ; sub           $0x18,%rsp
11047  DB  15,41,60,36                         ; movaps        %xmm7,(%rsp)
11048  DB  15,40,254                           ; movaps        %xmm6,%xmm7
11049  DB  15,40,245                           ; movaps        %xmm5,%xmm6
11050  DB  15,40,236                           ; movaps        %xmm4,%xmm5
11051  DB  15,40,227                           ; movaps        %xmm3,%xmm4
11052  DB  15,40,218                           ; movaps        %xmm2,%xmm3
11053  DB  15,40,209                           ; movaps        %xmm1,%xmm2
11054  DB  68,15,82,192                        ; rsqrtps       %xmm0,%xmm8
11055  DB  69,15,83,200                        ; rcpps         %xmm8,%xmm9
11056  DB  69,15,82,248                        ; rsqrtps       %xmm8,%xmm15
11057  DB  184,41,92,71,65                     ; mov           $0x41475c29,%eax
11058  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
11059  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
11060  DB  69,15,40,211                        ; movaps        %xmm11,%xmm10
11061  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
11062  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11063  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11064  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11065  DB  184,194,135,210,62                  ; mov           $0x3ed287c2,%eax
11066  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
11067  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
11068  DB  184,206,111,48,63                   ; mov           $0x3f306fce,%eax
11069  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
11070  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
11071  DB  184,168,87,202,61                   ; mov           $0x3dca57a8,%eax
11072  DB  53,0,0,0,128                        ; xor           $0x80000000,%eax
11073  DB  102,68,15,110,240                   ; movd          %eax,%xmm14
11074  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
11075  DB  69,15,89,205                        ; mulps         %xmm13,%xmm9
11076  DB  69,15,88,206                        ; addps         %xmm14,%xmm9
11077  DB  69,15,89,252                        ; mulps         %xmm12,%xmm15
11078  DB  69,15,88,249                        ; addps         %xmm9,%xmm15
11079  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
11080  DB  69,15,93,207                        ; minps         %xmm15,%xmm9
11081  DB  184,4,231,140,59                    ; mov           $0x3b8ce704,%eax
11082  DB  102,68,15,110,248                   ; movd          %eax,%xmm15
11083  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
11084  DB  65,15,194,199,1                     ; cmpltps       %xmm15,%xmm0
11085  DB  102,69,15,56,20,202                 ; blendvps      %xmm0,%xmm10,%xmm9
11086  DB  68,15,82,210                        ; rsqrtps       %xmm2,%xmm10
11087  DB  65,15,83,194                        ; rcpps         %xmm10,%xmm0
11088  DB  69,15,82,210                        ; rsqrtps       %xmm10,%xmm10
11089  DB  65,15,89,197                        ; mulps         %xmm13,%xmm0
11090  DB  65,15,88,198                        ; addps         %xmm14,%xmm0
11091  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
11092  DB  68,15,88,208                        ; addps         %xmm0,%xmm10
11093  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
11094  DB  65,15,93,202                        ; minps         %xmm10,%xmm1
11095  DB  69,15,40,211                        ; movaps        %xmm11,%xmm10
11096  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
11097  DB  65,15,194,215,1                     ; cmpltps       %xmm15,%xmm2
11098  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11099  DB  102,65,15,56,20,202                 ; blendvps      %xmm0,%xmm10,%xmm1
11100  DB  15,82,195                           ; rsqrtps       %xmm3,%xmm0
11101  DB  15,83,208                           ; rcpps         %xmm0,%xmm2
11102  DB  65,15,89,213                        ; mulps         %xmm13,%xmm2
11103  DB  65,15,88,214                        ; addps         %xmm14,%xmm2
11104  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
11105  DB  65,15,89,196                        ; mulps         %xmm12,%xmm0
11106  DB  15,88,194                           ; addps         %xmm2,%xmm0
11107  DB  68,15,93,192                        ; minps         %xmm0,%xmm8
11108  DB  68,15,89,219                        ; mulps         %xmm3,%xmm11
11109  DB  65,15,194,223,1                     ; cmpltps       %xmm15,%xmm3
11110  DB  15,40,195                           ; movaps        %xmm3,%xmm0
11111  DB  102,69,15,56,20,195                 ; blendvps      %xmm0,%xmm11,%xmm8
11112  DB  72,173                              ; lods          %ds:(%rsi),%rax
11113  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
11114  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
11115  DB  15,40,220                           ; movaps        %xmm4,%xmm3
11116  DB  15,40,229                           ; movaps        %xmm5,%xmm4
11117  DB  15,40,238                           ; movaps        %xmm6,%xmm5
11118  DB  15,40,247                           ; movaps        %xmm7,%xmm6
11119  DB  15,40,60,36                         ; movaps        (%rsp),%xmm7
11120  DB  72,131,196,24                       ; add           $0x18,%rsp
11121  DB  255,224                             ; jmpq          *%rax
11122
11123PUBLIC _sk_from_2dot2_sse41
11124_sk_from_2dot2_sse41 LABEL PROC
11125  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
11126  DB  65,15,82,192                        ; rsqrtps       %xmm8,%xmm0
11127  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
11128  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
11129  DB  68,15,82,200                        ; rsqrtps       %xmm0,%xmm9
11130  DB  65,15,82,193                        ; rsqrtps       %xmm9,%xmm0
11131  DB  68,15,82,208                        ; rsqrtps       %xmm0,%xmm10
11132  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
11133  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
11134  DB  15,89,192                           ; mulps         %xmm0,%xmm0
11135  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11136  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11137  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
11138  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
11139  DB  65,15,95,194                        ; maxps         %xmm10,%xmm0
11140  DB  68,15,82,193                        ; rsqrtps       %xmm1,%xmm8
11141  DB  69,15,82,192                        ; rsqrtps       %xmm8,%xmm8
11142  DB  69,15,82,192                        ; rsqrtps       %xmm8,%xmm8
11143  DB  69,15,82,200                        ; rsqrtps       %xmm8,%xmm9
11144  DB  69,15,82,193                        ; rsqrtps       %xmm9,%xmm8
11145  DB  69,15,82,216                        ; rsqrtps       %xmm8,%xmm11
11146  DB  15,89,201                           ; mulps         %xmm1,%xmm1
11147  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
11148  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
11149  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
11150  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
11151  DB  69,15,89,195                        ; mulps         %xmm11,%xmm8
11152  DB  69,15,95,194                        ; maxps         %xmm10,%xmm8
11153  DB  15,82,202                           ; rsqrtps       %xmm2,%xmm1
11154  DB  15,82,201                           ; rsqrtps       %xmm1,%xmm1
11155  DB  15,82,201                           ; rsqrtps       %xmm1,%xmm1
11156  DB  68,15,82,217                        ; rsqrtps       %xmm1,%xmm11
11157  DB  65,15,82,203                        ; rsqrtps       %xmm11,%xmm1
11158  DB  15,82,201                           ; rsqrtps       %xmm1,%xmm1
11159  DB  15,89,210                           ; mulps         %xmm2,%xmm2
11160  DB  69,15,40,203                        ; movaps        %xmm11,%xmm9
11161  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
11162  DB  69,15,89,203                        ; mulps         %xmm11,%xmm9
11163  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
11164  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
11165  DB  69,15,95,202                        ; maxps         %xmm10,%xmm9
11166  DB  72,173                              ; lods          %ds:(%rsi),%rax
11167  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
11168  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
11169  DB  255,224                             ; jmpq          *%rax
11170
11171PUBLIC _sk_to_2dot2_sse41
11172_sk_to_2dot2_sse41 LABEL PROC
11173  DB  68,15,82,192                        ; rsqrtps       %xmm0,%xmm8
11174  DB  65,15,82,192                        ; rsqrtps       %xmm8,%xmm0
11175  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
11176  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
11177  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
11178  DB  68,15,82,200                        ; rsqrtps       %xmm0,%xmm9
11179  DB  69,15,83,192                        ; rcpps         %xmm8,%xmm8
11180  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
11181  DB  65,15,83,193                        ; rcpps         %xmm9,%xmm0
11182  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11183  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
11184  DB  65,15,95,192                        ; maxps         %xmm8,%xmm0
11185  DB  68,15,82,201                        ; rsqrtps       %xmm1,%xmm9
11186  DB  65,15,82,201                        ; rsqrtps       %xmm9,%xmm1
11187  DB  15,82,201                           ; rsqrtps       %xmm1,%xmm1
11188  DB  15,82,201                           ; rsqrtps       %xmm1,%xmm1
11189  DB  15,82,201                           ; rsqrtps       %xmm1,%xmm1
11190  DB  68,15,82,209                        ; rsqrtps       %xmm1,%xmm10
11191  DB  69,15,83,201                        ; rcpps         %xmm9,%xmm9
11192  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
11193  DB  65,15,83,202                        ; rcpps         %xmm10,%xmm1
11194  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11195  DB  65,15,95,200                        ; maxps         %xmm8,%xmm1
11196  DB  68,15,82,202                        ; rsqrtps       %xmm2,%xmm9
11197  DB  65,15,82,209                        ; rsqrtps       %xmm9,%xmm2
11198  DB  15,82,210                           ; rsqrtps       %xmm2,%xmm2
11199  DB  15,82,210                           ; rsqrtps       %xmm2,%xmm2
11200  DB  15,82,210                           ; rsqrtps       %xmm2,%xmm2
11201  DB  68,15,82,210                        ; rsqrtps       %xmm2,%xmm10
11202  DB  69,15,83,201                        ; rcpps         %xmm9,%xmm9
11203  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
11204  DB  65,15,83,210                        ; rcpps         %xmm10,%xmm2
11205  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11206  DB  65,15,95,208                        ; maxps         %xmm8,%xmm2
11207  DB  72,173                              ; lods          %ds:(%rsi),%rax
11208  DB  255,224                             ; jmpq          *%rax
11209
11210PUBLIC _sk_rgb_to_hsl_sse41
11211_sk_rgb_to_hsl_sse41 LABEL PROC
11212  DB  72,131,236,24                       ; sub           $0x18,%rsp
11213  DB  15,41,60,36                         ; movaps        %xmm7,(%rsp)
11214  DB  15,40,254                           ; movaps        %xmm6,%xmm7
11215  DB  15,40,245                           ; movaps        %xmm5,%xmm6
11216  DB  15,40,236                           ; movaps        %xmm4,%xmm5
11217  DB  15,40,227                           ; movaps        %xmm3,%xmm4
11218  DB  15,40,218                           ; movaps        %xmm2,%xmm3
11219  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11220  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
11221  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
11222  DB  65,185,0,0,192,64                   ; mov           $0x40c00000,%r9d
11223  DB  184,0,0,0,64                        ; mov           $0x40000000,%eax
11224  DB  185,0,0,128,64                      ; mov           $0x40800000,%ecx
11225  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
11226  DB  68,15,40,224                        ; movaps        %xmm0,%xmm12
11227  DB  68,15,95,225                        ; maxps         %xmm1,%xmm12
11228  DB  68,15,95,227                        ; maxps         %xmm3,%xmm12
11229  DB  68,15,40,232                        ; movaps        %xmm0,%xmm13
11230  DB  68,15,93,233                        ; minps         %xmm1,%xmm13
11231  DB  68,15,93,235                        ; minps         %xmm3,%xmm13
11232  DB  69,15,40,204                        ; movaps        %xmm12,%xmm9
11233  DB  68,15,194,200,0                     ; cmpeqps       %xmm0,%xmm9
11234  DB  68,15,40,241                        ; movaps        %xmm1,%xmm14
11235  DB  68,15,92,243                        ; subps         %xmm3,%xmm14
11236  DB  68,15,40,249                        ; movaps        %xmm1,%xmm15
11237  DB  68,15,194,251,1                     ; cmpltps       %xmm3,%xmm15
11238  DB  69,15,40,212                        ; movaps        %xmm12,%xmm10
11239  DB  68,15,194,209,0                     ; cmpeqps       %xmm1,%xmm10
11240  DB  15,92,216                           ; subps         %xmm0,%xmm3
11241  DB  15,92,193                           ; subps         %xmm1,%xmm0
11242  DB  65,15,40,212                        ; movaps        %xmm12,%xmm2
11243  DB  65,15,92,213                        ; subps         %xmm13,%xmm2
11244  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
11245  DB  68,15,94,218                        ; divps         %xmm2,%xmm11
11246  DB  65,15,89,195                        ; mulps         %xmm11,%xmm0
11247  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11248  DB  68,15,88,192                        ; addps         %xmm0,%xmm8
11249  DB  102,15,110,200                      ; movd          %eax,%xmm1
11250  DB  65,15,89,219                        ; mulps         %xmm11,%xmm3
11251  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
11252  DB  15,88,217                           ; addps         %xmm1,%xmm3
11253  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
11254  DB  102,68,15,56,20,195                 ; blendvps      %xmm0,%xmm3,%xmm8
11255  DB  69,15,89,243                        ; mulps         %xmm11,%xmm14
11256  DB  102,65,15,110,217                   ; movd          %r9d,%xmm3
11257  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11258  DB  65,15,84,223                        ; andps         %xmm15,%xmm3
11259  DB  65,15,88,222                        ; addps         %xmm14,%xmm3
11260  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
11261  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
11262  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
11263  DB  102,68,15,56,20,195                 ; blendvps      %xmm0,%xmm3,%xmm8
11264  DB  65,15,40,220                        ; movaps        %xmm12,%xmm3
11265  DB  65,15,92,204                        ; subps         %xmm12,%xmm1
11266  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
11267  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
11268  DB  69,15,40,204                        ; movaps        %xmm12,%xmm9
11269  DB  69,15,89,202                        ; mulps         %xmm10,%xmm9
11270  DB  69,15,194,209,1                     ; cmpltps       %xmm9,%xmm10
11271  DB  65,15,92,205                        ; subps         %xmm13,%xmm1
11272  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
11273  DB  102,68,15,56,20,225                 ; blendvps      %xmm0,%xmm1,%xmm12
11274  DB  65,15,194,221,4                     ; cmpneqps      %xmm13,%xmm3
11275  DB  102,65,15,110,192                   ; movd          %r8d,%xmm0
11276  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
11277  DB  68,15,84,195                        ; andps         %xmm3,%xmm8
11278  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
11279  DB  65,15,94,212                        ; divps         %xmm12,%xmm2
11280  DB  15,84,211                           ; andps         %xmm3,%xmm2
11281  DB  72,173                              ; lods          %ds:(%rsi),%rax
11282  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11283  DB  15,40,202                           ; movaps        %xmm2,%xmm1
11284  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
11285  DB  15,40,220                           ; movaps        %xmm4,%xmm3
11286  DB  15,40,229                           ; movaps        %xmm5,%xmm4
11287  DB  15,40,238                           ; movaps        %xmm6,%xmm5
11288  DB  15,40,247                           ; movaps        %xmm7,%xmm6
11289  DB  15,40,60,36                         ; movaps        (%rsp),%xmm7
11290  DB  72,131,196,24                       ; add           $0x18,%rsp
11291  DB  255,224                             ; jmpq          *%rax
11292
11293PUBLIC _sk_hsl_to_rgb_sse41
11294_sk_hsl_to_rgb_sse41 LABEL PROC
11295  DB  72,129,236,152,0,0,0                ; sub           $0x98,%rsp
11296  DB  15,41,188,36,128,0,0,0              ; movaps        %xmm7,0x80(%rsp)
11297  DB  15,41,116,36,112                    ; movaps        %xmm6,0x70(%rsp)
11298  DB  15,41,108,36,96                     ; movaps        %xmm5,0x60(%rsp)
11299  DB  15,41,100,36,80                     ; movaps        %xmm4,0x50(%rsp)
11300  DB  15,41,92,36,64                      ; movaps        %xmm3,0x40(%rsp)
11301  DB  68,15,40,208                        ; movaps        %xmm0,%xmm10
11302  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
11303  DB  102,15,110,216                      ; movd          %eax,%xmm3
11304  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11305  DB  15,41,28,36                         ; movaps        %xmm3,(%rsp)
11306  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11307  DB  15,194,195,1                        ; cmpltps       %xmm3,%xmm0
11308  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11309  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11310  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11311  DB  65,15,40,224                        ; movaps        %xmm8,%xmm4
11312  DB  15,88,225                           ; addps         %xmm1,%xmm4
11313  DB  15,89,226                           ; mulps         %xmm2,%xmm4
11314  DB  15,40,217                           ; movaps        %xmm1,%xmm3
11315  DB  15,40,249                           ; movaps        %xmm1,%xmm7
11316  DB  15,88,250                           ; addps         %xmm2,%xmm7
11317  DB  15,89,218                           ; mulps         %xmm2,%xmm3
11318  DB  15,40,234                           ; movaps        %xmm2,%xmm5
11319  DB  15,92,251                           ; subps         %xmm3,%xmm7
11320  DB  102,15,56,20,252                    ; blendvps      %xmm0,%xmm4,%xmm7
11321  DB  184,0,0,0,64                        ; mov           $0x40000000,%eax
11322  DB  185,171,170,170,62                  ; mov           $0x3eaaaaab,%ecx
11323  DB  102,15,110,209                      ; movd          %ecx,%xmm2
11324  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
11325  DB  15,41,84,36,48                      ; movaps        %xmm2,0x30(%rsp)
11326  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
11327  DB  185,0,0,0,0                         ; mov           $0x0,%ecx
11328  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11329  DB  15,194,194,1                        ; cmpltps       %xmm2,%xmm0
11330  DB  15,40,218                           ; movaps        %xmm2,%xmm3
11331  DB  65,15,92,216                        ; subps         %xmm8,%xmm3
11332  DB  68,15,40,226                        ; movaps        %xmm2,%xmm12
11333  DB  102,68,15,56,20,227                 ; blendvps      %xmm0,%xmm3,%xmm12
11334  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
11335  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
11336  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11337  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
11338  DB  68,15,41,116,36,32                  ; movaps        %xmm14,0x20(%rsp)
11339  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
11340  DB  15,88,218                           ; addps         %xmm2,%xmm3
11341  DB  102,68,15,56,20,227                 ; blendvps      %xmm0,%xmm3,%xmm12
11342  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
11343  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11344  DB  15,40,229                           ; movaps        %xmm5,%xmm4
11345  DB  15,41,100,36,16                     ; movaps        %xmm4,0x10(%rsp)
11346  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
11347  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
11348  DB  184,171,170,42,62                   ; mov           $0x3e2aaaab,%eax
11349  DB  15,40,199                           ; movaps        %xmm7,%xmm0
11350  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
11351  DB  185,0,0,192,64                      ; mov           $0x40c00000,%ecx
11352  DB  102,15,110,241                      ; movd          %ecx,%xmm6
11353  DB  15,198,246,0                        ; shufps        $0x0,%xmm6,%xmm6
11354  DB  15,89,240                           ; mulps         %xmm0,%xmm6
11355  DB  185,171,170,42,63                   ; mov           $0x3f2aaaab,%ecx
11356  DB  102,15,110,217                      ; movd          %ecx,%xmm3
11357  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11358  DB  15,40,235                           ; movaps        %xmm3,%xmm5
11359  DB  65,15,92,236                        ; subps         %xmm12,%xmm5
11360  DB  69,15,40,236                        ; movaps        %xmm12,%xmm13
11361  DB  69,15,40,252                        ; movaps        %xmm12,%xmm15
11362  DB  68,15,194,227,1                     ; cmpltps       %xmm3,%xmm12
11363  DB  15,89,238                           ; mulps         %xmm6,%xmm5
11364  DB  65,15,88,233                        ; addps         %xmm9,%xmm5
11365  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
11366  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
11367  DB  102,68,15,56,20,221                 ; blendvps      %xmm0,%xmm5,%xmm11
11368  DB  68,15,194,60,36,1                   ; cmpltps       (%rsp),%xmm15
11369  DB  65,15,40,199                        ; movaps        %xmm15,%xmm0
11370  DB  102,68,15,56,20,223                 ; blendvps      %xmm0,%xmm7,%xmm11
11371  DB  102,15,110,232                      ; movd          %eax,%xmm5
11372  DB  15,198,237,0                        ; shufps        $0x0,%xmm5,%xmm5
11373  DB  68,15,194,237,1                     ; cmpltps       %xmm5,%xmm13
11374  DB  15,89,214                           ; mulps         %xmm6,%xmm2
11375  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
11376  DB  65,15,40,197                        ; movaps        %xmm13,%xmm0
11377  DB  102,68,15,56,20,218                 ; blendvps      %xmm0,%xmm2,%xmm11
11378  DB  69,15,87,228                        ; xorps         %xmm12,%xmm12
11379  DB  68,15,194,225,0                     ; cmpeqps       %xmm1,%xmm12
11380  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
11381  DB  102,68,15,56,20,220                 ; blendvps      %xmm0,%xmm4,%xmm11
11382  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11383  DB  65,15,194,194,1                     ; cmpltps       %xmm10,%xmm0
11384  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
11385  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
11386  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
11387  DB  102,68,15,56,20,233                 ; blendvps      %xmm0,%xmm1,%xmm13
11388  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
11389  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
11390  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
11391  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
11392  DB  102,68,15,56,20,233                 ; blendvps      %xmm0,%xmm1,%xmm13
11393  DB  68,15,40,243                        ; movaps        %xmm3,%xmm14
11394  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
11395  DB  65,15,40,229                        ; movaps        %xmm13,%xmm4
11396  DB  69,15,40,253                        ; movaps        %xmm13,%xmm15
11397  DB  68,15,194,235,1                     ; cmpltps       %xmm3,%xmm13
11398  DB  68,15,89,246                        ; mulps         %xmm6,%xmm14
11399  DB  69,15,88,241                        ; addps         %xmm9,%xmm14
11400  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
11401  DB  65,15,40,197                        ; movaps        %xmm13,%xmm0
11402  DB  102,65,15,56,20,206                 ; blendvps      %xmm0,%xmm14,%xmm1
11403  DB  68,15,40,52,36                      ; movaps        (%rsp),%xmm14
11404  DB  69,15,194,254,1                     ; cmpltps       %xmm14,%xmm15
11405  DB  65,15,40,199                        ; movaps        %xmm15,%xmm0
11406  DB  102,15,56,20,207                    ; blendvps      %xmm0,%xmm7,%xmm1
11407  DB  15,194,229,1                        ; cmpltps       %xmm5,%xmm4
11408  DB  15,40,214                           ; movaps        %xmm6,%xmm2
11409  DB  65,15,89,210                        ; mulps         %xmm10,%xmm2
11410  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
11411  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11412  DB  102,15,56,20,202                    ; blendvps      %xmm0,%xmm2,%xmm1
11413  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
11414  DB  68,15,40,124,36,16                  ; movaps        0x10(%rsp),%xmm15
11415  DB  102,65,15,56,20,207                 ; blendvps      %xmm0,%xmm15,%xmm1
11416  DB  68,15,92,84,36,48                   ; subps         0x30(%rsp),%xmm10
11417  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
11418  DB  65,15,92,208                        ; subps         %xmm8,%xmm2
11419  DB  69,15,40,232                        ; movaps        %xmm8,%xmm13
11420  DB  69,15,194,194,1                     ; cmpltps       %xmm10,%xmm8
11421  DB  65,15,40,226                        ; movaps        %xmm10,%xmm4
11422  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11423  DB  102,15,56,20,226                    ; blendvps      %xmm0,%xmm2,%xmm4
11424  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
11425  DB  15,194,68,36,32,1                   ; cmpltps       0x20(%rsp),%xmm0
11426  DB  69,15,88,234                        ; addps         %xmm10,%xmm13
11427  DB  102,65,15,56,20,229                 ; blendvps      %xmm0,%xmm13,%xmm4
11428  DB  68,15,89,214                        ; mulps         %xmm6,%xmm10
11429  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11430  DB  15,194,195,1                        ; cmpltps       %xmm3,%xmm0
11431  DB  15,92,220                           ; subps         %xmm4,%xmm3
11432  DB  15,89,222                           ; mulps         %xmm6,%xmm3
11433  DB  69,15,88,209                        ; addps         %xmm9,%xmm10
11434  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
11435  DB  102,68,15,56,20,203                 ; blendvps      %xmm0,%xmm3,%xmm9
11436  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11437  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
11438  DB  102,68,15,56,20,207                 ; blendvps      %xmm0,%xmm7,%xmm9
11439  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11440  DB  15,194,197,1                        ; cmpltps       %xmm5,%xmm0
11441  DB  102,69,15,56,20,202                 ; blendvps      %xmm0,%xmm10,%xmm9
11442  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
11443  DB  102,69,15,56,20,207                 ; blendvps      %xmm0,%xmm15,%xmm9
11444  DB  72,173                              ; lods          %ds:(%rsi),%rax
11445  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
11446  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
11447  DB  15,40,92,36,64                      ; movaps        0x40(%rsp),%xmm3
11448  DB  15,40,100,36,80                     ; movaps        0x50(%rsp),%xmm4
11449  DB  15,40,108,36,96                     ; movaps        0x60(%rsp),%xmm5
11450  DB  15,40,116,36,112                    ; movaps        0x70(%rsp),%xmm6
11451  DB  15,40,188,36,128,0,0,0              ; movaps        0x80(%rsp),%xmm7
11452  DB  72,129,196,152,0,0,0                ; add           $0x98,%rsp
11453  DB  255,224                             ; jmpq          *%rax
11454
11455PUBLIC _sk_scale_1_float_sse41
11456_sk_scale_1_float_sse41 LABEL PROC
11457  DB  72,173                              ; lods          %ds:(%rsi),%rax
11458  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
11459  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11460  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11461  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11462  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11463  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11464  DB  72,173                              ; lods          %ds:(%rsi),%rax
11465  DB  255,224                             ; jmpq          *%rax
11466
11467PUBLIC _sk_scale_u8_sse41
11468_sk_scale_u8_sse41 LABEL PROC
11469  DB  72,173                              ; lods          %ds:(%rsi),%rax
11470  DB  72,139,0                            ; mov           (%rax),%rax
11471  DB  102,68,15,56,49,4,56                ; pmovzxbd      (%rax,%rdi,1),%xmm8
11472  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11473  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
11474  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
11475  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11476  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
11477  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11478  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11479  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11480  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
11481  DB  72,173                              ; lods          %ds:(%rsi),%rax
11482  DB  255,224                             ; jmpq          *%rax
11483
11484PUBLIC _sk_lerp_1_float_sse41
11485_sk_lerp_1_float_sse41 LABEL PROC
11486  DB  72,173                              ; lods          %ds:(%rsi),%rax
11487  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
11488  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11489  DB  15,92,196                           ; subps         %xmm4,%xmm0
11490  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11491  DB  15,88,196                           ; addps         %xmm4,%xmm0
11492  DB  15,92,205                           ; subps         %xmm5,%xmm1
11493  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11494  DB  15,88,205                           ; addps         %xmm5,%xmm1
11495  DB  15,92,214                           ; subps         %xmm6,%xmm2
11496  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11497  DB  15,88,214                           ; addps         %xmm6,%xmm2
11498  DB  15,92,223                           ; subps         %xmm7,%xmm3
11499  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11500  DB  15,88,223                           ; addps         %xmm7,%xmm3
11501  DB  72,173                              ; lods          %ds:(%rsi),%rax
11502  DB  255,224                             ; jmpq          *%rax
11503
11504PUBLIC _sk_lerp_u8_sse41
11505_sk_lerp_u8_sse41 LABEL PROC
11506  DB  72,173                              ; lods          %ds:(%rsi),%rax
11507  DB  72,139,0                            ; mov           (%rax),%rax
11508  DB  102,68,15,56,49,4,56                ; pmovzxbd      (%rax,%rdi,1),%xmm8
11509  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11510  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
11511  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
11512  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11513  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
11514  DB  15,92,196                           ; subps         %xmm4,%xmm0
11515  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11516  DB  15,88,196                           ; addps         %xmm4,%xmm0
11517  DB  15,92,205                           ; subps         %xmm5,%xmm1
11518  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11519  DB  15,88,205                           ; addps         %xmm5,%xmm1
11520  DB  15,92,214                           ; subps         %xmm6,%xmm2
11521  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11522  DB  15,88,214                           ; addps         %xmm6,%xmm2
11523  DB  15,92,223                           ; subps         %xmm7,%xmm3
11524  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
11525  DB  15,88,223                           ; addps         %xmm7,%xmm3
11526  DB  72,173                              ; lods          %ds:(%rsi),%rax
11527  DB  255,224                             ; jmpq          *%rax
11528
11529PUBLIC _sk_lerp_565_sse41
11530_sk_lerp_565_sse41 LABEL PROC
11531  DB  72,173                              ; lods          %ds:(%rsi),%rax
11532  DB  72,139,0                            ; mov           (%rax),%rax
11533  DB  102,68,15,56,51,4,120               ; pmovzxwd      (%rax,%rdi,2),%xmm8
11534  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
11535  DB  102,15,110,216                      ; movd          %eax,%xmm3
11536  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
11537  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
11538  DB  68,15,91,203                        ; cvtdq2ps      %xmm3,%xmm9
11539  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
11540  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
11541  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
11542  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
11543  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
11544  DB  102,15,110,216                      ; movd          %eax,%xmm3
11545  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
11546  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
11547  DB  68,15,91,203                        ; cvtdq2ps      %xmm3,%xmm9
11548  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
11549  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
11550  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
11551  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
11552  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
11553  DB  102,15,110,216                      ; movd          %eax,%xmm3
11554  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
11555  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
11556  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
11557  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
11558  DB  102,15,110,216                      ; movd          %eax,%xmm3
11559  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11560  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11561  DB  15,92,196                           ; subps         %xmm4,%xmm0
11562  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
11563  DB  15,88,196                           ; addps         %xmm4,%xmm0
11564  DB  15,92,205                           ; subps         %xmm5,%xmm1
11565  DB  65,15,89,203                        ; mulps         %xmm11,%xmm1
11566  DB  15,88,205                           ; addps         %xmm5,%xmm1
11567  DB  15,92,214                           ; subps         %xmm6,%xmm2
11568  DB  15,89,211                           ; mulps         %xmm3,%xmm2
11569  DB  15,88,214                           ; addps         %xmm6,%xmm2
11570  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11571  DB  102,15,110,216                      ; movd          %eax,%xmm3
11572  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11573  DB  72,173                              ; lods          %ds:(%rsi),%rax
11574  DB  255,224                             ; jmpq          *%rax
11575
11576PUBLIC _sk_load_tables_sse41
11577_sk_load_tables_sse41 LABEL PROC
11578  DB  72,173                              ; lods          %ds:(%rsi),%rax
11579  DB  72,139,8                            ; mov           (%rax),%rcx
11580  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
11581  DB  243,68,15,111,4,185                 ; movdqu        (%rcx,%rdi,4),%xmm8
11582  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
11583  DB  102,15,110,193                      ; movd          %ecx,%xmm0
11584  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
11585  DB  102,65,15,111,200                   ; movdqa        %xmm8,%xmm1
11586  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
11587  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
11588  DB  102,65,15,111,208                   ; movdqa        %xmm8,%xmm2
11589  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
11590  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
11591  DB  102,65,15,219,192                   ; pand          %xmm8,%xmm0
11592  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
11593  DB  65,137,201                          ; mov           %ecx,%r9d
11594  DB  72,193,233,32                       ; shr           $0x20,%rcx
11595  DB  102,73,15,126,194                   ; movq          %xmm0,%r10
11596  DB  69,137,211                          ; mov           %r10d,%r11d
11597  DB  73,193,234,32                       ; shr           $0x20,%r10
11598  DB  243,67,15,16,4,152                  ; movss         (%r8,%r11,4),%xmm0
11599  DB  102,67,15,58,33,4,144,16            ; insertps      $0x10,(%r8,%r10,4),%xmm0
11600  DB  102,67,15,58,33,4,136,32            ; insertps      $0x20,(%r8,%r9,4),%xmm0
11601  DB  102,65,15,58,33,4,136,48            ; insertps      $0x30,(%r8,%rcx,4),%xmm0
11602  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
11603  DB  102,73,15,58,22,202,1               ; pextrq        $0x1,%xmm1,%r10
11604  DB  77,137,209                          ; mov           %r10,%r9
11605  DB  73,193,233,32                       ; shr           $0x20,%r9
11606  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
11607  DB  65,137,203                          ; mov           %ecx,%r11d
11608  DB  65,129,227,255,255,255,0            ; and           $0xffffff,%r11d
11609  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11610  DB  65,129,226,255,255,255,0            ; and           $0xffffff,%r10d
11611  DB  243,67,15,16,12,152                 ; movss         (%r8,%r11,4),%xmm1
11612  DB  102,65,15,58,33,12,8,16             ; insertps      $0x10,(%r8,%rcx,1),%xmm1
11613  DB  243,67,15,16,28,144                 ; movss         (%r8,%r10,4),%xmm3
11614  DB  102,15,58,33,203,32                 ; insertps      $0x20,%xmm3,%xmm1
11615  DB  243,67,15,16,28,136                 ; movss         (%r8,%r9,4),%xmm3
11616  DB  102,15,58,33,203,48                 ; insertps      $0x30,%xmm3,%xmm1
11617  DB  76,139,72,24                        ; mov           0x18(%rax),%r9
11618  DB  102,72,15,58,22,209,1               ; pextrq        $0x1,%xmm2,%rcx
11619  DB  68,15,183,193                       ; movzwl        %cx,%r8d
11620  DB  72,193,233,32                       ; shr           $0x20,%rcx
11621  DB  102,72,15,126,208                   ; movq          %xmm2,%rax
11622  DB  68,15,183,208                       ; movzwl        %ax,%r10d
11623  DB  72,193,232,30                       ; shr           $0x1e,%rax
11624  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
11625  DB  102,65,15,58,33,20,1,16             ; insertps      $0x10,(%r9,%rax,1),%xmm2
11626  DB  243,67,15,16,28,129                 ; movss         (%r9,%r8,4),%xmm3
11627  DB  102,15,58,33,211,32                 ; insertps      $0x20,%xmm3,%xmm2
11628  DB  243,65,15,16,28,137                 ; movss         (%r9,%rcx,4),%xmm3
11629  DB  102,15,58,33,211,48                 ; insertps      $0x30,%xmm3,%xmm2
11630  DB  102,65,15,114,208,24                ; psrld         $0x18,%xmm8
11631  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11632  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
11633  DB  102,15,110,216                      ; movd          %eax,%xmm3
11634  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11635  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11636  DB  72,173                              ; lods          %ds:(%rsi),%rax
11637  DB  255,224                             ; jmpq          *%rax
11638
11639PUBLIC _sk_load_tables_u16_be_sse41
11640_sk_load_tables_u16_be_sse41 LABEL PROC
11641  DB  72,173                              ; lods          %ds:(%rsi),%rax
11642  DB  72,139,8                            ; mov           (%rax),%rcx
11643  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
11644  DB  243,15,111,4,249                    ; movdqu        (%rcx,%rdi,8),%xmm0
11645  DB  243,15,111,76,249,16                ; movdqu        0x10(%rcx,%rdi,8),%xmm1
11646  DB  102,15,111,216                      ; movdqa        %xmm0,%xmm3
11647  DB  102,15,97,217                       ; punpcklwd     %xmm1,%xmm3
11648  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
11649  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
11650  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
11651  DB  102,15,105,216                      ; punpckhwd     %xmm0,%xmm3
11652  DB  102,15,56,51,193                    ; pmovzxwd      %xmm1,%xmm0
11653  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
11654  DB  102,15,110,209                      ; movd          %ecx,%xmm2
11655  DB  102,68,15,112,194,0                 ; pshufd        $0x0,%xmm2,%xmm8
11656  DB  102,65,15,219,192                   ; pand          %xmm8,%xmm0
11657  DB  102,73,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%r9
11658  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
11659  DB  65,137,202                          ; mov           %ecx,%r10d
11660  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11661  DB  69,137,203                          ; mov           %r9d,%r11d
11662  DB  73,193,233,30                       ; shr           $0x1e,%r9
11663  DB  243,67,15,16,4,144                  ; movss         (%r8,%r10,4),%xmm0
11664  DB  102,65,15,58,33,4,8,16              ; insertps      $0x10,(%r8,%rcx,1),%xmm0
11665  DB  102,67,15,58,33,4,152,32            ; insertps      $0x20,(%r8,%r11,4),%xmm0
11666  DB  102,67,15,58,33,4,8,48              ; insertps      $0x30,(%r8,%r9,1),%xmm0
11667  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
11668  DB  102,15,115,217,8                    ; psrldq        $0x8,%xmm1
11669  DB  102,15,56,51,201                    ; pmovzxwd      %xmm1,%xmm1
11670  DB  102,65,15,219,200                   ; pand          %xmm8,%xmm1
11671  DB  102,73,15,58,22,201,1               ; pextrq        $0x1,%xmm1,%r9
11672  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
11673  DB  65,137,202                          ; mov           %ecx,%r10d
11674  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11675  DB  69,137,203                          ; mov           %r9d,%r11d
11676  DB  73,193,233,30                       ; shr           $0x1e,%r9
11677  DB  243,67,15,16,12,144                 ; movss         (%r8,%r10,4),%xmm1
11678  DB  102,65,15,58,33,12,8,16             ; insertps      $0x10,(%r8,%rcx,1),%xmm1
11679  DB  243,67,15,16,20,152                 ; movss         (%r8,%r11,4),%xmm2
11680  DB  102,15,58,33,202,32                 ; insertps      $0x20,%xmm2,%xmm1
11681  DB  243,67,15,16,20,8                   ; movss         (%r8,%r9,1),%xmm2
11682  DB  102,15,58,33,202,48                 ; insertps      $0x30,%xmm2,%xmm1
11683  DB  76,139,64,24                        ; mov           0x18(%rax),%r8
11684  DB  102,15,56,51,211                    ; pmovzxwd      %xmm3,%xmm2
11685  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
11686  DB  102,72,15,58,22,209,1               ; pextrq        $0x1,%xmm2,%rcx
11687  DB  102,72,15,126,208                   ; movq          %xmm2,%rax
11688  DB  65,137,193                          ; mov           %eax,%r9d
11689  DB  72,193,232,30                       ; shr           $0x1e,%rax
11690  DB  65,137,202                          ; mov           %ecx,%r10d
11691  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11692  DB  243,67,15,16,20,136                 ; movss         (%r8,%r9,4),%xmm2
11693  DB  102,65,15,58,33,20,0,16             ; insertps      $0x10,(%r8,%rax,1),%xmm2
11694  DB  102,67,15,58,33,20,144,32           ; insertps      $0x20,(%r8,%r10,4),%xmm2
11695  DB  102,65,15,58,33,20,8,48             ; insertps      $0x30,(%r8,%rcx,1),%xmm2
11696  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
11697  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11698  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11699  DB  102,15,112,219,78                   ; pshufd        $0x4e,%xmm3,%xmm3
11700  DB  102,68,15,111,203                   ; movdqa        %xmm3,%xmm9
11701  DB  102,65,15,113,241,8                 ; psllw         $0x8,%xmm9
11702  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
11703  DB  102,65,15,235,217                   ; por           %xmm9,%xmm3
11704  DB  102,15,56,51,219                    ; pmovzxwd      %xmm3,%xmm3
11705  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
11706  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11707  DB  72,173                              ; lods          %ds:(%rsi),%rax
11708  DB  255,224                             ; jmpq          *%rax
11709
11710PUBLIC _sk_load_tables_rgb_u16_be_sse41
11711_sk_load_tables_rgb_u16_be_sse41 LABEL PROC
11712  DB  72,173                              ; lods          %ds:(%rsi),%rax
11713  DB  76,141,12,127                       ; lea           (%rdi,%rdi,2),%r9
11714  DB  72,139,8                            ; mov           (%rax),%rcx
11715  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
11716  DB  243,66,15,111,20,73                 ; movdqu        (%rcx,%r9,2),%xmm2
11717  DB  243,66,15,111,68,73,8               ; movdqu        0x8(%rcx,%r9,2),%xmm0
11718  DB  102,15,115,216,4                    ; psrldq        $0x4,%xmm0
11719  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
11720  DB  102,15,115,217,6                    ; psrldq        $0x6,%xmm1
11721  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
11722  DB  102,15,115,216,6                    ; psrldq        $0x6,%xmm0
11723  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
11724  DB  102,15,111,194                      ; movdqa        %xmm2,%xmm0
11725  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
11726  DB  102,68,15,112,192,78                ; pshufd        $0x4e,%xmm0,%xmm8
11727  DB  102,15,105,209                      ; punpckhwd     %xmm1,%xmm2
11728  DB  102,15,56,51,192                    ; pmovzxwd      %xmm0,%xmm0
11729  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
11730  DB  102,15,110,201                      ; movd          %ecx,%xmm1
11731  DB  102,68,15,112,201,0                 ; pshufd        $0x0,%xmm1,%xmm9
11732  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
11733  DB  102,73,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%r9
11734  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
11735  DB  65,137,202                          ; mov           %ecx,%r10d
11736  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11737  DB  69,137,203                          ; mov           %r9d,%r11d
11738  DB  73,193,233,30                       ; shr           $0x1e,%r9
11739  DB  243,67,15,16,4,144                  ; movss         (%r8,%r10,4),%xmm0
11740  DB  102,65,15,58,33,4,8,16              ; insertps      $0x10,(%r8,%rcx,1),%xmm0
11741  DB  102,67,15,58,33,4,152,32            ; insertps      $0x20,(%r8,%r11,4),%xmm0
11742  DB  102,67,15,58,33,4,8,48              ; insertps      $0x30,(%r8,%r9,1),%xmm0
11743  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
11744  DB  102,65,15,56,51,200                 ; pmovzxwd      %xmm8,%xmm1
11745  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
11746  DB  102,73,15,58,22,201,1               ; pextrq        $0x1,%xmm1,%r9
11747  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
11748  DB  65,137,202                          ; mov           %ecx,%r10d
11749  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11750  DB  69,137,203                          ; mov           %r9d,%r11d
11751  DB  73,193,233,30                       ; shr           $0x1e,%r9
11752  DB  243,67,15,16,12,144                 ; movss         (%r8,%r10,4),%xmm1
11753  DB  102,65,15,58,33,12,8,16             ; insertps      $0x10,(%r8,%rcx,1),%xmm1
11754  DB  243,67,15,16,28,152                 ; movss         (%r8,%r11,4),%xmm3
11755  DB  102,15,58,33,203,32                 ; insertps      $0x20,%xmm3,%xmm1
11756  DB  243,67,15,16,28,8                   ; movss         (%r8,%r9,1),%xmm3
11757  DB  102,15,58,33,203,48                 ; insertps      $0x30,%xmm3,%xmm1
11758  DB  76,139,64,24                        ; mov           0x18(%rax),%r8
11759  DB  102,15,56,51,210                    ; pmovzxwd      %xmm2,%xmm2
11760  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
11761  DB  102,72,15,58,22,209,1               ; pextrq        $0x1,%xmm2,%rcx
11762  DB  102,72,15,126,208                   ; movq          %xmm2,%rax
11763  DB  65,137,193                          ; mov           %eax,%r9d
11764  DB  72,193,232,30                       ; shr           $0x1e,%rax
11765  DB  65,137,202                          ; mov           %ecx,%r10d
11766  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11767  DB  243,67,15,16,20,136                 ; movss         (%r8,%r9,4),%xmm2
11768  DB  102,65,15,58,33,20,0,16             ; insertps      $0x10,(%r8,%rax,1),%xmm2
11769  DB  102,67,15,58,33,20,144,32           ; insertps      $0x20,(%r8,%r10,4),%xmm2
11770  DB  102,65,15,58,33,20,8,48             ; insertps      $0x30,(%r8,%rcx,1),%xmm2
11771  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11772  DB  102,15,110,216                      ; movd          %eax,%xmm3
11773  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11774  DB  72,173                              ; lods          %ds:(%rsi),%rax
11775  DB  255,224                             ; jmpq          *%rax
11776
11777PUBLIC _sk_byte_tables_sse41
11778_sk_byte_tables_sse41 LABEL PROC
11779  DB  65,86                               ; push          %r14
11780  DB  83                                  ; push          %rbx
11781  DB  72,173                              ; lods          %ds:(%rsi),%rax
11782  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
11783  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
11784  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11785  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11786  DB  102,15,91,192                       ; cvtps2dq      %xmm0,%xmm0
11787  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
11788  DB  65,137,200                          ; mov           %ecx,%r8d
11789  DB  72,193,233,32                       ; shr           $0x20,%rcx
11790  DB  102,73,15,126,193                   ; movq          %xmm0,%r9
11791  DB  69,137,202                          ; mov           %r9d,%r10d
11792  DB  77,137,203                          ; mov           %r9,%r11
11793  DB  73,193,235,32                       ; shr           $0x20,%r11
11794  DB  76,139,48                           ; mov           (%rax),%r14
11795  DB  76,139,72,8                         ; mov           0x8(%rax),%r9
11796  DB  102,67,15,58,32,4,22,0              ; pinsrb        $0x0,(%r14,%r10,1),%xmm0
11797  DB  102,67,15,58,32,4,30,1              ; pinsrb        $0x1,(%r14,%r11,1),%xmm0
11798  DB  67,15,182,28,6                      ; movzbl        (%r14,%r8,1),%ebx
11799  DB  102,15,58,32,195,2                  ; pinsrb        $0x2,%ebx,%xmm0
11800  DB  65,15,182,12,14                     ; movzbl        (%r14,%rcx,1),%ecx
11801  DB  102,15,58,32,193,3                  ; pinsrb        $0x3,%ecx,%xmm0
11802  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
11803  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
11804  DB  185,129,128,128,59                  ; mov           $0x3b808081,%ecx
11805  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
11806  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11807  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11808  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11809  DB  102,15,91,201                       ; cvtps2dq      %xmm1,%xmm1
11810  DB  102,72,15,58,22,201,1               ; pextrq        $0x1,%xmm1,%rcx
11811  DB  65,137,200                          ; mov           %ecx,%r8d
11812  DB  72,193,233,32                       ; shr           $0x20,%rcx
11813  DB  102,72,15,126,203                   ; movq          %xmm1,%rbx
11814  DB  65,137,218                          ; mov           %ebx,%r10d
11815  DB  72,193,235,32                       ; shr           $0x20,%rbx
11816  DB  102,67,15,58,32,12,17,0             ; pinsrb        $0x0,(%r9,%r10,1),%xmm1
11817  DB  102,65,15,58,32,12,25,1             ; pinsrb        $0x1,(%r9,%rbx,1),%xmm1
11818  DB  67,15,182,28,1                      ; movzbl        (%r9,%r8,1),%ebx
11819  DB  102,15,58,32,203,2                  ; pinsrb        $0x2,%ebx,%xmm1
11820  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
11821  DB  102,15,58,32,201,3                  ; pinsrb        $0x3,%ecx,%xmm1
11822  DB  102,15,56,49,201                    ; pmovzxbd      %xmm1,%xmm1
11823  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
11824  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11825  DB  76,139,72,16                        ; mov           0x10(%rax),%r9
11826  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11827  DB  102,15,91,210                       ; cvtps2dq      %xmm2,%xmm2
11828  DB  102,72,15,58,22,211,1               ; pextrq        $0x1,%xmm2,%rbx
11829  DB  65,137,216                          ; mov           %ebx,%r8d
11830  DB  72,193,235,32                       ; shr           $0x20,%rbx
11831  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
11832  DB  65,137,202                          ; mov           %ecx,%r10d
11833  DB  72,193,233,32                       ; shr           $0x20,%rcx
11834  DB  102,67,15,58,32,20,17,0             ; pinsrb        $0x0,(%r9,%r10,1),%xmm2
11835  DB  102,65,15,58,32,20,9,1              ; pinsrb        $0x1,(%r9,%rcx,1),%xmm2
11836  DB  67,15,182,12,1                      ; movzbl        (%r9,%r8,1),%ecx
11837  DB  102,15,58,32,209,2                  ; pinsrb        $0x2,%ecx,%xmm2
11838  DB  65,15,182,12,25                     ; movzbl        (%r9,%rbx,1),%ecx
11839  DB  102,15,58,32,209,3                  ; pinsrb        $0x3,%ecx,%xmm2
11840  DB  102,15,56,49,210                    ; pmovzxbd      %xmm2,%xmm2
11841  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
11842  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11843  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
11844  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
11845  DB  102,65,15,91,216                    ; cvtps2dq      %xmm8,%xmm3
11846  DB  102,72,15,58,22,217,1               ; pextrq        $0x1,%xmm3,%rcx
11847  DB  65,137,200                          ; mov           %ecx,%r8d
11848  DB  72,193,233,32                       ; shr           $0x20,%rcx
11849  DB  102,72,15,126,219                   ; movq          %xmm3,%rbx
11850  DB  65,137,217                          ; mov           %ebx,%r9d
11851  DB  72,193,235,32                       ; shr           $0x20,%rbx
11852  DB  102,66,15,58,32,28,8,0              ; pinsrb        $0x0,(%rax,%r9,1),%xmm3
11853  DB  102,15,58,32,28,24,1                ; pinsrb        $0x1,(%rax,%rbx,1),%xmm3
11854  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
11855  DB  102,15,58,32,219,2                  ; pinsrb        $0x2,%ebx,%xmm3
11856  DB  15,182,4,8                          ; movzbl        (%rax,%rcx,1),%eax
11857  DB  102,15,58,32,216,3                  ; pinsrb        $0x3,%eax,%xmm3
11858  DB  102,15,56,49,219                    ; pmovzxbd      %xmm3,%xmm3
11859  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
11860  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
11861  DB  72,173                              ; lods          %ds:(%rsi),%rax
11862  DB  91                                  ; pop           %rbx
11863  DB  65,94                               ; pop           %r14
11864  DB  255,224                             ; jmpq          *%rax
11865
11866PUBLIC _sk_byte_tables_rgb_sse41
11867_sk_byte_tables_rgb_sse41 LABEL PROC
11868  DB  65,86                               ; push          %r14
11869  DB  83                                  ; push          %rbx
11870  DB  72,173                              ; lods          %ds:(%rsi),%rax
11871  DB  139,72,24                           ; mov           0x18(%rax),%ecx
11872  DB  255,201                             ; dec           %ecx
11873  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
11874  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11875  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11876  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11877  DB  102,15,91,192                       ; cvtps2dq      %xmm0,%xmm0
11878  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
11879  DB  65,137,200                          ; mov           %ecx,%r8d
11880  DB  72,193,233,32                       ; shr           $0x20,%rcx
11881  DB  102,73,15,126,193                   ; movq          %xmm0,%r9
11882  DB  69,137,202                          ; mov           %r9d,%r10d
11883  DB  77,137,203                          ; mov           %r9,%r11
11884  DB  73,193,235,32                       ; shr           $0x20,%r11
11885  DB  76,139,48                           ; mov           (%rax),%r14
11886  DB  76,139,72,8                         ; mov           0x8(%rax),%r9
11887  DB  102,67,15,58,32,4,22,0              ; pinsrb        $0x0,(%r14,%r10,1),%xmm0
11888  DB  102,67,15,58,32,4,30,1              ; pinsrb        $0x1,(%r14,%r11,1),%xmm0
11889  DB  67,15,182,28,6                      ; movzbl        (%r14,%r8,1),%ebx
11890  DB  102,15,58,32,195,2                  ; pinsrb        $0x2,%ebx,%xmm0
11891  DB  65,15,182,12,14                     ; movzbl        (%r14,%rcx,1),%ecx
11892  DB  102,15,58,32,193,3                  ; pinsrb        $0x3,%ecx,%xmm0
11893  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
11894  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
11895  DB  185,129,128,128,59                  ; mov           $0x3b808081,%ecx
11896  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
11897  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11898  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11899  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11900  DB  102,15,91,201                       ; cvtps2dq      %xmm1,%xmm1
11901  DB  102,72,15,58,22,201,1               ; pextrq        $0x1,%xmm1,%rcx
11902  DB  65,137,200                          ; mov           %ecx,%r8d
11903  DB  72,193,233,32                       ; shr           $0x20,%rcx
11904  DB  102,72,15,126,203                   ; movq          %xmm1,%rbx
11905  DB  65,137,218                          ; mov           %ebx,%r10d
11906  DB  72,193,235,32                       ; shr           $0x20,%rbx
11907  DB  102,67,15,58,32,12,17,0             ; pinsrb        $0x0,(%r9,%r10,1),%xmm1
11908  DB  102,65,15,58,32,12,25,1             ; pinsrb        $0x1,(%r9,%rbx,1),%xmm1
11909  DB  67,15,182,28,1                      ; movzbl        (%r9,%r8,1),%ebx
11910  DB  102,15,58,32,203,2                  ; pinsrb        $0x2,%ebx,%xmm1
11911  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
11912  DB  102,15,58,32,201,3                  ; pinsrb        $0x3,%ecx,%xmm1
11913  DB  102,15,56,49,201                    ; pmovzxbd      %xmm1,%xmm1
11914  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
11915  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11916  DB  72,139,64,16                        ; mov           0x10(%rax),%rax
11917  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11918  DB  102,15,91,210                       ; cvtps2dq      %xmm2,%xmm2
11919  DB  102,72,15,58,22,209,1               ; pextrq        $0x1,%xmm2,%rcx
11920  DB  65,137,200                          ; mov           %ecx,%r8d
11921  DB  72,193,233,32                       ; shr           $0x20,%rcx
11922  DB  102,72,15,126,211                   ; movq          %xmm2,%rbx
11923  DB  65,137,217                          ; mov           %ebx,%r9d
11924  DB  72,193,235,32                       ; shr           $0x20,%rbx
11925  DB  102,66,15,58,32,20,8,0              ; pinsrb        $0x0,(%rax,%r9,1),%xmm2
11926  DB  102,15,58,32,20,24,1                ; pinsrb        $0x1,(%rax,%rbx,1),%xmm2
11927  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
11928  DB  102,15,58,32,211,2                  ; pinsrb        $0x2,%ebx,%xmm2
11929  DB  15,182,4,8                          ; movzbl        (%rax,%rcx,1),%eax
11930  DB  102,15,58,32,208,3                  ; pinsrb        $0x3,%eax,%xmm2
11931  DB  102,15,56,49,210                    ; pmovzxbd      %xmm2,%xmm2
11932  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
11933  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11934  DB  72,173                              ; lods          %ds:(%rsi),%rax
11935  DB  91                                  ; pop           %rbx
11936  DB  65,94                               ; pop           %r14
11937  DB  255,224                             ; jmpq          *%rax
11938
11939PUBLIC _sk_table_r_sse41
11940_sk_table_r_sse41 LABEL PROC
11941  DB  72,173                              ; lods          %ds:(%rsi),%rax
11942  DB  76,139,8                            ; mov           (%rax),%r9
11943  DB  139,64,8                            ; mov           0x8(%rax),%eax
11944  DB  255,200                             ; dec           %eax
11945  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11946  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11947  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11948  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
11949  DB  102,65,15,91,192                    ; cvtps2dq      %xmm8,%xmm0
11950  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
11951  DB  65,137,192                          ; mov           %eax,%r8d
11952  DB  72,193,232,32                       ; shr           $0x20,%rax
11953  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
11954  DB  65,137,202                          ; mov           %ecx,%r10d
11955  DB  72,193,233,32                       ; shr           $0x20,%rcx
11956  DB  243,67,15,16,4,145                  ; movss         (%r9,%r10,4),%xmm0
11957  DB  102,65,15,58,33,4,137,16            ; insertps      $0x10,(%r9,%rcx,4),%xmm0
11958  DB  243,71,15,16,4,129                  ; movss         (%r9,%r8,4),%xmm8
11959  DB  102,65,15,58,33,192,32              ; insertps      $0x20,%xmm8,%xmm0
11960  DB  243,69,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm8
11961  DB  102,65,15,58,33,192,48              ; insertps      $0x30,%xmm8,%xmm0
11962  DB  72,173                              ; lods          %ds:(%rsi),%rax
11963  DB  255,224                             ; jmpq          *%rax
11964
11965PUBLIC _sk_table_g_sse41
11966_sk_table_g_sse41 LABEL PROC
11967  DB  72,173                              ; lods          %ds:(%rsi),%rax
11968  DB  76,139,8                            ; mov           (%rax),%r9
11969  DB  139,64,8                            ; mov           0x8(%rax),%eax
11970  DB  255,200                             ; dec           %eax
11971  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11972  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11973  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11974  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
11975  DB  102,65,15,91,200                    ; cvtps2dq      %xmm8,%xmm1
11976  DB  102,72,15,58,22,200,1               ; pextrq        $0x1,%xmm1,%rax
11977  DB  65,137,192                          ; mov           %eax,%r8d
11978  DB  72,193,232,32                       ; shr           $0x20,%rax
11979  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
11980  DB  65,137,202                          ; mov           %ecx,%r10d
11981  DB  72,193,233,32                       ; shr           $0x20,%rcx
11982  DB  243,67,15,16,12,145                 ; movss         (%r9,%r10,4),%xmm1
11983  DB  102,65,15,58,33,12,137,16           ; insertps      $0x10,(%r9,%rcx,4),%xmm1
11984  DB  243,71,15,16,4,129                  ; movss         (%r9,%r8,4),%xmm8
11985  DB  102,65,15,58,33,200,32              ; insertps      $0x20,%xmm8,%xmm1
11986  DB  243,69,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm8
11987  DB  102,65,15,58,33,200,48              ; insertps      $0x30,%xmm8,%xmm1
11988  DB  72,173                              ; lods          %ds:(%rsi),%rax
11989  DB  255,224                             ; jmpq          *%rax
11990
11991PUBLIC _sk_table_b_sse41
11992_sk_table_b_sse41 LABEL PROC
11993  DB  72,173                              ; lods          %ds:(%rsi),%rax
11994  DB  76,139,8                            ; mov           (%rax),%r9
11995  DB  139,64,8                            ; mov           0x8(%rax),%eax
11996  DB  255,200                             ; dec           %eax
11997  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11998  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11999  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
12000  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
12001  DB  102,65,15,91,208                    ; cvtps2dq      %xmm8,%xmm2
12002  DB  102,72,15,58,22,208,1               ; pextrq        $0x1,%xmm2,%rax
12003  DB  65,137,192                          ; mov           %eax,%r8d
12004  DB  72,193,232,32                       ; shr           $0x20,%rax
12005  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
12006  DB  65,137,202                          ; mov           %ecx,%r10d
12007  DB  72,193,233,32                       ; shr           $0x20,%rcx
12008  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
12009  DB  102,65,15,58,33,20,137,16           ; insertps      $0x10,(%r9,%rcx,4),%xmm2
12010  DB  243,71,15,16,4,129                  ; movss         (%r9,%r8,4),%xmm8
12011  DB  102,65,15,58,33,208,32              ; insertps      $0x20,%xmm8,%xmm2
12012  DB  243,69,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm8
12013  DB  102,65,15,58,33,208,48              ; insertps      $0x30,%xmm8,%xmm2
12014  DB  72,173                              ; lods          %ds:(%rsi),%rax
12015  DB  255,224                             ; jmpq          *%rax
12016
12017PUBLIC _sk_table_a_sse41
12018_sk_table_a_sse41 LABEL PROC
12019  DB  72,173                              ; lods          %ds:(%rsi),%rax
12020  DB  76,139,8                            ; mov           (%rax),%r9
12021  DB  139,64,8                            ; mov           0x8(%rax),%eax
12022  DB  255,200                             ; dec           %eax
12023  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
12024  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
12025  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
12026  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
12027  DB  102,65,15,91,216                    ; cvtps2dq      %xmm8,%xmm3
12028  DB  102,72,15,58,22,216,1               ; pextrq        $0x1,%xmm3,%rax
12029  DB  65,137,192                          ; mov           %eax,%r8d
12030  DB  72,193,232,32                       ; shr           $0x20,%rax
12031  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
12032  DB  65,137,202                          ; mov           %ecx,%r10d
12033  DB  72,193,233,32                       ; shr           $0x20,%rcx
12034  DB  243,67,15,16,28,145                 ; movss         (%r9,%r10,4),%xmm3
12035  DB  102,65,15,58,33,28,137,16           ; insertps      $0x10,(%r9,%rcx,4),%xmm3
12036  DB  243,71,15,16,4,129                  ; movss         (%r9,%r8,4),%xmm8
12037  DB  102,65,15,58,33,216,32              ; insertps      $0x20,%xmm8,%xmm3
12038  DB  243,69,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm8
12039  DB  102,65,15,58,33,216,48              ; insertps      $0x30,%xmm8,%xmm3
12040  DB  72,173                              ; lods          %ds:(%rsi),%rax
12041  DB  255,224                             ; jmpq          *%rax
12042
12043PUBLIC _sk_parametric_r_sse41
12044_sk_parametric_r_sse41 LABEL PROC
12045  DB  72,173                              ; lods          %ds:(%rsi),%rax
12046  DB  243,68,15,16,64,16                  ; movss         0x10(%rax),%xmm8
12047  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12048  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
12049  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
12050  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12051  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
12052  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12053  DB  68,15,89,216                        ; mulps         %xmm0,%xmm11
12054  DB  65,15,194,192,2                     ; cmpleps       %xmm8,%xmm0
12055  DB  243,68,15,16,64,24                  ; movss         0x18(%rax),%xmm8
12056  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12057  DB  69,15,88,200                        ; addps         %xmm8,%xmm9
12058  DB  243,68,15,16,16                     ; movss         (%rax),%xmm10
12059  DB  243,68,15,16,64,8                   ; movss         0x8(%rax),%xmm8
12060  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12061  DB  69,15,88,216                        ; addps         %xmm8,%xmm11
12062  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12063  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
12064  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
12065  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12066  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12067  DB  69,15,89,196                        ; mulps         %xmm12,%xmm8
12068  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
12069  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12070  DB  102,69,15,112,228,0                 ; pshufd        $0x0,%xmm12,%xmm12
12071  DB  102,69,15,219,227                   ; pand          %xmm11,%xmm12
12072  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
12073  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
12074  DB  102,69,15,112,219,0                 ; pshufd        $0x0,%xmm11,%xmm11
12075  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
12076  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
12077  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12078  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12079  DB  69,15,92,196                        ; subps         %xmm12,%xmm8
12080  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
12081  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12082  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12083  DB  69,15,89,227                        ; mulps         %xmm11,%xmm12
12084  DB  69,15,92,196                        ; subps         %xmm12,%xmm8
12085  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
12086  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12087  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12088  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
12089  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
12090  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
12091  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
12092  DB  69,15,94,229                        ; divps         %xmm13,%xmm12
12093  DB  69,15,92,196                        ; subps         %xmm12,%xmm8
12094  DB  69,15,89,194                        ; mulps         %xmm10,%xmm8
12095  DB  102,69,15,58,8,216,1                ; roundps       $0x1,%xmm8,%xmm11
12096  DB  185,0,0,0,75                        ; mov           $0x4b000000,%ecx
12097  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
12098  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12099  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
12100  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12101  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12102  DB  69,15,88,224                        ; addps         %xmm8,%xmm12
12103  DB  69,15,92,195                        ; subps         %xmm11,%xmm8
12104  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
12105  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
12106  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12107  DB  69,15,89,216                        ; mulps         %xmm8,%xmm11
12108  DB  69,15,92,227                        ; subps         %xmm11,%xmm12
12109  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
12110  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
12111  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12112  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
12113  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
12114  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
12115  DB  69,15,92,232                        ; subps         %xmm8,%xmm13
12116  DB  69,15,94,221                        ; divps         %xmm13,%xmm11
12117  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
12118  DB  69,15,89,218                        ; mulps         %xmm10,%xmm11
12119  DB  102,69,15,91,211                    ; cvtps2dq      %xmm11,%xmm10
12120  DB  243,68,15,16,64,20                  ; movss         0x14(%rax),%xmm8
12121  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12122  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
12123  DB  102,69,15,56,20,193                 ; blendvps      %xmm0,%xmm9,%xmm8
12124  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12125  DB  68,15,95,192                        ; maxps         %xmm0,%xmm8
12126  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12127  DB  102,15,110,192                      ; movd          %eax,%xmm0
12128  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12129  DB  68,15,93,192                        ; minps         %xmm0,%xmm8
12130  DB  72,173                              ; lods          %ds:(%rsi),%rax
12131  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12132  DB  255,224                             ; jmpq          *%rax
12133
12134PUBLIC _sk_parametric_g_sse41
12135_sk_parametric_g_sse41 LABEL PROC
12136  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
12137  DB  72,173                              ; lods          %ds:(%rsi),%rax
12138  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
12139  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12140  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
12141  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
12142  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
12143  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
12144  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12145  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
12146  DB  15,40,193                           ; movaps        %xmm1,%xmm0
12147  DB  65,15,194,194,2                     ; cmpleps       %xmm10,%xmm0
12148  DB  243,15,16,72,24                     ; movss         0x18(%rax),%xmm1
12149  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12150  DB  68,15,88,201                        ; addps         %xmm1,%xmm9
12151  DB  243,68,15,16,16                     ; movss         (%rax),%xmm10
12152  DB  243,15,16,72,8                      ; movss         0x8(%rax),%xmm1
12153  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12154  DB  68,15,88,217                        ; addps         %xmm1,%xmm11
12155  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12156  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
12157  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
12158  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
12159  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
12160  DB  69,15,89,236                        ; mulps         %xmm12,%xmm13
12161  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
12162  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12163  DB  102,68,15,112,225,0                 ; pshufd        $0x0,%xmm1,%xmm12
12164  DB  102,69,15,219,227                   ; pand          %xmm11,%xmm12
12165  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
12166  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12167  DB  102,68,15,112,217,0                 ; pshufd        $0x0,%xmm1,%xmm11
12168  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
12169  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
12170  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12171  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12172  DB  68,15,92,233                        ; subps         %xmm1,%xmm13
12173  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
12174  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12175  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12176  DB  65,15,89,203                        ; mulps         %xmm11,%xmm1
12177  DB  68,15,92,233                        ; subps         %xmm1,%xmm13
12178  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
12179  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12180  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12181  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
12182  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12183  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12184  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
12185  DB  68,15,94,225                        ; divps         %xmm1,%xmm12
12186  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
12187  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
12188  DB  102,69,15,58,8,221,1                ; roundps       $0x1,%xmm13,%xmm11
12189  DB  185,0,0,0,75                        ; mov           $0x4b000000,%ecx
12190  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
12191  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12192  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
12193  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12194  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12195  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
12196  DB  69,15,92,235                        ; subps         %xmm11,%xmm13
12197  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
12198  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12199  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12200  DB  65,15,89,205                        ; mulps         %xmm13,%xmm1
12201  DB  68,15,92,225                        ; subps         %xmm1,%xmm12
12202  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
12203  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
12204  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12205  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
12206  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12207  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12208  DB  65,15,92,205                        ; subps         %xmm13,%xmm1
12209  DB  68,15,94,217                        ; divps         %xmm1,%xmm11
12210  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
12211  DB  69,15,89,218                        ; mulps         %xmm10,%xmm11
12212  DB  102,69,15,91,211                    ; cvtps2dq      %xmm11,%xmm10
12213  DB  243,15,16,72,20                     ; movss         0x14(%rax),%xmm1
12214  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12215  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
12216  DB  102,65,15,56,20,201                 ; blendvps      %xmm0,%xmm9,%xmm1
12217  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12218  DB  15,95,200                           ; maxps         %xmm0,%xmm1
12219  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12220  DB  102,15,110,192                      ; movd          %eax,%xmm0
12221  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12222  DB  15,93,200                           ; minps         %xmm0,%xmm1
12223  DB  72,173                              ; lods          %ds:(%rsi),%rax
12224  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12225  DB  255,224                             ; jmpq          *%rax
12226
12227PUBLIC _sk_parametric_b_sse41
12228_sk_parametric_b_sse41 LABEL PROC
12229  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
12230  DB  72,173                              ; lods          %ds:(%rsi),%rax
12231  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
12232  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12233  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
12234  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
12235  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
12236  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
12237  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12238  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
12239  DB  15,40,194                           ; movaps        %xmm2,%xmm0
12240  DB  65,15,194,194,2                     ; cmpleps       %xmm10,%xmm0
12241  DB  243,15,16,80,24                     ; movss         0x18(%rax),%xmm2
12242  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12243  DB  68,15,88,202                        ; addps         %xmm2,%xmm9
12244  DB  243,68,15,16,16                     ; movss         (%rax),%xmm10
12245  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
12246  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12247  DB  68,15,88,218                        ; addps         %xmm2,%xmm11
12248  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12249  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
12250  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
12251  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
12252  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
12253  DB  69,15,89,236                        ; mulps         %xmm12,%xmm13
12254  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
12255  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12256  DB  102,68,15,112,226,0                 ; pshufd        $0x0,%xmm2,%xmm12
12257  DB  102,69,15,219,227                   ; pand          %xmm11,%xmm12
12258  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
12259  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12260  DB  102,68,15,112,218,0                 ; pshufd        $0x0,%xmm2,%xmm11
12261  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
12262  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
12263  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12264  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12265  DB  68,15,92,234                        ; subps         %xmm2,%xmm13
12266  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
12267  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12268  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12269  DB  65,15,89,211                        ; mulps         %xmm11,%xmm2
12270  DB  68,15,92,234                        ; subps         %xmm2,%xmm13
12271  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
12272  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12273  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12274  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
12275  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12276  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12277  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
12278  DB  68,15,94,226                        ; divps         %xmm2,%xmm12
12279  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
12280  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
12281  DB  102,69,15,58,8,221,1                ; roundps       $0x1,%xmm13,%xmm11
12282  DB  185,0,0,0,75                        ; mov           $0x4b000000,%ecx
12283  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
12284  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12285  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
12286  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12287  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12288  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
12289  DB  69,15,92,235                        ; subps         %xmm11,%xmm13
12290  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
12291  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12292  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12293  DB  65,15,89,213                        ; mulps         %xmm13,%xmm2
12294  DB  68,15,92,226                        ; subps         %xmm2,%xmm12
12295  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
12296  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
12297  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12298  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
12299  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12300  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12301  DB  65,15,92,213                        ; subps         %xmm13,%xmm2
12302  DB  68,15,94,218                        ; divps         %xmm2,%xmm11
12303  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
12304  DB  69,15,89,218                        ; mulps         %xmm10,%xmm11
12305  DB  102,69,15,91,211                    ; cvtps2dq      %xmm11,%xmm10
12306  DB  243,15,16,80,20                     ; movss         0x14(%rax),%xmm2
12307  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12308  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
12309  DB  102,65,15,56,20,209                 ; blendvps      %xmm0,%xmm9,%xmm2
12310  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12311  DB  15,95,208                           ; maxps         %xmm0,%xmm2
12312  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12313  DB  102,15,110,192                      ; movd          %eax,%xmm0
12314  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12315  DB  15,93,208                           ; minps         %xmm0,%xmm2
12316  DB  72,173                              ; lods          %ds:(%rsi),%rax
12317  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12318  DB  255,224                             ; jmpq          *%rax
12319
12320PUBLIC _sk_parametric_a_sse41
12321_sk_parametric_a_sse41 LABEL PROC
12322  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
12323  DB  72,173                              ; lods          %ds:(%rsi),%rax
12324  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
12325  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12326  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
12327  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
12328  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
12329  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
12330  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12331  DB  68,15,89,219                        ; mulps         %xmm3,%xmm11
12332  DB  15,40,195                           ; movaps        %xmm3,%xmm0
12333  DB  65,15,194,194,2                     ; cmpleps       %xmm10,%xmm0
12334  DB  243,15,16,88,24                     ; movss         0x18(%rax),%xmm3
12335  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12336  DB  68,15,88,203                        ; addps         %xmm3,%xmm9
12337  DB  243,68,15,16,16                     ; movss         (%rax),%xmm10
12338  DB  243,15,16,88,8                      ; movss         0x8(%rax),%xmm3
12339  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12340  DB  68,15,88,219                        ; addps         %xmm3,%xmm11
12341  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12342  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
12343  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
12344  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
12345  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
12346  DB  69,15,89,236                        ; mulps         %xmm12,%xmm13
12347  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
12348  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12349  DB  102,68,15,112,227,0                 ; pshufd        $0x0,%xmm3,%xmm12
12350  DB  102,69,15,219,227                   ; pand          %xmm11,%xmm12
12351  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
12352  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12353  DB  102,68,15,112,219,0                 ; pshufd        $0x0,%xmm3,%xmm11
12354  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
12355  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
12356  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12357  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12358  DB  68,15,92,235                        ; subps         %xmm3,%xmm13
12359  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
12360  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12361  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12362  DB  65,15,89,219                        ; mulps         %xmm11,%xmm3
12363  DB  68,15,92,235                        ; subps         %xmm3,%xmm13
12364  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
12365  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12366  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12367  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
12368  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12369  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12370  DB  65,15,88,219                        ; addps         %xmm11,%xmm3
12371  DB  68,15,94,227                        ; divps         %xmm3,%xmm12
12372  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
12373  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
12374  DB  102,69,15,58,8,221,1                ; roundps       $0x1,%xmm13,%xmm11
12375  DB  185,0,0,0,75                        ; mov           $0x4b000000,%ecx
12376  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
12377  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12378  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
12379  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12380  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12381  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
12382  DB  69,15,92,235                        ; subps         %xmm11,%xmm13
12383  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
12384  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12385  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12386  DB  65,15,89,221                        ; mulps         %xmm13,%xmm3
12387  DB  68,15,92,227                        ; subps         %xmm3,%xmm12
12388  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
12389  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
12390  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12391  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
12392  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12393  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12394  DB  65,15,92,221                        ; subps         %xmm13,%xmm3
12395  DB  68,15,94,219                        ; divps         %xmm3,%xmm11
12396  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
12397  DB  69,15,89,218                        ; mulps         %xmm10,%xmm11
12398  DB  102,69,15,91,211                    ; cvtps2dq      %xmm11,%xmm10
12399  DB  243,15,16,88,20                     ; movss         0x14(%rax),%xmm3
12400  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12401  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
12402  DB  102,65,15,56,20,217                 ; blendvps      %xmm0,%xmm9,%xmm3
12403  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12404  DB  15,95,216                           ; maxps         %xmm0,%xmm3
12405  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12406  DB  102,15,110,192                      ; movd          %eax,%xmm0
12407  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12408  DB  15,93,216                           ; minps         %xmm0,%xmm3
12409  DB  72,173                              ; lods          %ds:(%rsi),%rax
12410  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12411  DB  255,224                             ; jmpq          *%rax
12412
12413PUBLIC _sk_load_a8_sse41
12414_sk_load_a8_sse41 LABEL PROC
12415  DB  72,173                              ; lods          %ds:(%rsi),%rax
12416  DB  72,139,0                            ; mov           (%rax),%rax
12417  DB  102,15,56,49,4,56                   ; pmovzxbd      (%rax,%rdi,1),%xmm0
12418  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12419  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12420  DB  102,15,110,216                      ; movd          %eax,%xmm3
12421  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12422  DB  15,89,216                           ; mulps         %xmm0,%xmm3
12423  DB  72,173                              ; lods          %ds:(%rsi),%rax
12424  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12425  DB  15,87,201                           ; xorps         %xmm1,%xmm1
12426  DB  15,87,210                           ; xorps         %xmm2,%xmm2
12427  DB  255,224                             ; jmpq          *%rax
12428
12429PUBLIC _sk_gather_a8_sse41
12430_sk_gather_a8_sse41 LABEL PROC
12431  DB  72,173                              ; lods          %ds:(%rsi),%rax
12432  DB  76,139,8                            ; mov           (%rax),%r9
12433  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12434  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12435  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12436  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12437  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12438  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12439  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12440  DB  65,137,192                          ; mov           %eax,%r8d
12441  DB  72,193,232,32                       ; shr           $0x20,%rax
12442  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12443  DB  65,137,202                          ; mov           %ecx,%r10d
12444  DB  72,193,233,32                       ; shr           $0x20,%rcx
12445  DB  102,67,15,58,32,4,17,0              ; pinsrb        $0x0,(%r9,%r10,1),%xmm0
12446  DB  102,65,15,58,32,4,9,1               ; pinsrb        $0x1,(%r9,%rcx,1),%xmm0
12447  DB  67,15,182,12,1                      ; movzbl        (%r9,%r8,1),%ecx
12448  DB  102,15,58,32,193,2                  ; pinsrb        $0x2,%ecx,%xmm0
12449  DB  65,15,182,4,1                       ; movzbl        (%r9,%rax,1),%eax
12450  DB  102,15,58,32,192,3                  ; pinsrb        $0x3,%eax,%xmm0
12451  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
12452  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12453  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12454  DB  102,15,110,216                      ; movd          %eax,%xmm3
12455  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12456  DB  15,89,216                           ; mulps         %xmm0,%xmm3
12457  DB  72,173                              ; lods          %ds:(%rsi),%rax
12458  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12459  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
12460  DB  102,15,239,210                      ; pxor          %xmm2,%xmm2
12461  DB  255,224                             ; jmpq          *%rax
12462
12463PUBLIC _sk_store_a8_sse41
12464_sk_store_a8_sse41 LABEL PROC
12465  DB  72,173                              ; lods          %ds:(%rsi),%rax
12466  DB  72,139,0                            ; mov           (%rax),%rax
12467  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
12468  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12469  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12470  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
12471  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
12472  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
12473  DB  102,69,15,103,192                   ; packuswb      %xmm8,%xmm8
12474  DB  102,68,15,126,4,56                  ; movd          %xmm8,(%rax,%rdi,1)
12475  DB  72,173                              ; lods          %ds:(%rsi),%rax
12476  DB  255,224                             ; jmpq          *%rax
12477
12478PUBLIC _sk_load_g8_sse41
12479_sk_load_g8_sse41 LABEL PROC
12480  DB  72,173                              ; lods          %ds:(%rsi),%rax
12481  DB  72,139,0                            ; mov           (%rax),%rax
12482  DB  102,15,56,49,4,56                   ; pmovzxbd      (%rax,%rdi,1),%xmm0
12483  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12484  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12485  DB  102,15,110,192                      ; movd          %eax,%xmm0
12486  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12487  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12488  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12489  DB  102,15,110,216                      ; movd          %eax,%xmm3
12490  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12491  DB  72,173                              ; lods          %ds:(%rsi),%rax
12492  DB  15,40,200                           ; movaps        %xmm0,%xmm1
12493  DB  15,40,208                           ; movaps        %xmm0,%xmm2
12494  DB  255,224                             ; jmpq          *%rax
12495
12496PUBLIC _sk_gather_g8_sse41
12497_sk_gather_g8_sse41 LABEL PROC
12498  DB  72,173                              ; lods          %ds:(%rsi),%rax
12499  DB  76,139,8                            ; mov           (%rax),%r9
12500  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12501  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12502  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12503  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12504  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12505  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12506  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12507  DB  65,137,192                          ; mov           %eax,%r8d
12508  DB  72,193,232,32                       ; shr           $0x20,%rax
12509  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12510  DB  65,137,202                          ; mov           %ecx,%r10d
12511  DB  72,193,233,32                       ; shr           $0x20,%rcx
12512  DB  102,67,15,58,32,4,17,0              ; pinsrb        $0x0,(%r9,%r10,1),%xmm0
12513  DB  102,65,15,58,32,4,9,1               ; pinsrb        $0x1,(%r9,%rcx,1),%xmm0
12514  DB  67,15,182,12,1                      ; movzbl        (%r9,%r8,1),%ecx
12515  DB  102,15,58,32,193,2                  ; pinsrb        $0x2,%ecx,%xmm0
12516  DB  65,15,182,4,1                       ; movzbl        (%r9,%rax,1),%eax
12517  DB  102,15,58,32,192,3                  ; pinsrb        $0x3,%eax,%xmm0
12518  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
12519  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12520  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12521  DB  102,15,110,192                      ; movd          %eax,%xmm0
12522  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12523  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12524  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12525  DB  102,15,110,216                      ; movd          %eax,%xmm3
12526  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12527  DB  72,173                              ; lods          %ds:(%rsi),%rax
12528  DB  15,40,200                           ; movaps        %xmm0,%xmm1
12529  DB  15,40,208                           ; movaps        %xmm0,%xmm2
12530  DB  255,224                             ; jmpq          *%rax
12531
12532PUBLIC _sk_gather_i8_sse41
12533_sk_gather_i8_sse41 LABEL PROC
12534  DB  72,173                              ; lods          %ds:(%rsi),%rax
12535  DB  73,137,192                          ; mov           %rax,%r8
12536  DB  77,133,192                          ; test          %r8,%r8
12537  DB  116,5                               ; je            2757 <_sk_gather_i8_sse41+0xf>
12538  DB  76,137,192                          ; mov           %r8,%rax
12539  DB  235,2                               ; jmp           2759 <_sk_gather_i8_sse41+0x11>
12540  DB  72,173                              ; lods          %ds:(%rsi),%rax
12541  DB  76,139,16                           ; mov           (%rax),%r10
12542  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12543  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12544  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12545  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12546  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12547  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12548  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12549  DB  65,137,193                          ; mov           %eax,%r9d
12550  DB  72,193,232,32                       ; shr           $0x20,%rax
12551  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12552  DB  65,137,203                          ; mov           %ecx,%r11d
12553  DB  72,193,233,32                       ; shr           $0x20,%rcx
12554  DB  102,67,15,58,32,4,26,0              ; pinsrb        $0x0,(%r10,%r11,1),%xmm0
12555  DB  102,65,15,58,32,4,10,1              ; pinsrb        $0x1,(%r10,%rcx,1),%xmm0
12556  DB  102,67,15,58,32,4,10,2              ; pinsrb        $0x2,(%r10,%r9,1),%xmm0
12557  DB  102,65,15,58,32,4,2,3               ; pinsrb        $0x3,(%r10,%rax,1),%xmm0
12558  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
12559  DB  102,73,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%r9
12560  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12561  DB  73,139,64,8                         ; mov           0x8(%r8),%rax
12562  DB  65,137,200                          ; mov           %ecx,%r8d
12563  DB  72,193,233,30                       ; shr           $0x1e,%rcx
12564  DB  69,137,202                          ; mov           %r9d,%r10d
12565  DB  73,193,233,30                       ; shr           $0x1e,%r9
12566  DB  102,66,15,110,28,128                ; movd          (%rax,%r8,4),%xmm3
12567  DB  102,15,58,34,28,8,1                 ; pinsrd        $0x1,(%rax,%rcx,1),%xmm3
12568  DB  102,66,15,58,34,28,144,2            ; pinsrd        $0x2,(%rax,%r10,4),%xmm3
12569  DB  102,66,15,58,34,28,8,3              ; pinsrd        $0x3,(%rax,%r9,1),%xmm3
12570  DB  184,255,0,0,0                       ; mov           $0xff,%eax
12571  DB  102,15,110,192                      ; movd          %eax,%xmm0
12572  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12573  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
12574  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
12575  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
12576  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
12577  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
12578  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
12579  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
12580  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12581  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12582  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
12583  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12584  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
12585  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
12586  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
12587  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
12588  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12589  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
12590  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12591  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12592  DB  72,173                              ; lods          %ds:(%rsi),%rax
12593  DB  255,224                             ; jmpq          *%rax
12594
12595PUBLIC _sk_load_565_sse41
12596_sk_load_565_sse41 LABEL PROC
12597  DB  72,173                              ; lods          %ds:(%rsi),%rax
12598  DB  72,139,0                            ; mov           (%rax),%rax
12599  DB  102,15,56,51,20,120                 ; pmovzxwd      (%rax,%rdi,2),%xmm2
12600  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
12601  DB  102,15,110,192                      ; movd          %eax,%xmm0
12602  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12603  DB  102,15,219,194                      ; pand          %xmm2,%xmm0
12604  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12605  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
12606  DB  102,15,110,192                      ; movd          %eax,%xmm0
12607  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12608  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12609  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
12610  DB  102,15,110,200                      ; movd          %eax,%xmm1
12611  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
12612  DB  102,15,219,202                      ; pand          %xmm2,%xmm1
12613  DB  15,91,217                           ; cvtdq2ps      %xmm1,%xmm3
12614  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
12615  DB  102,15,110,200                      ; movd          %eax,%xmm1
12616  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12617  DB  15,89,203                           ; mulps         %xmm3,%xmm1
12618  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
12619  DB  102,15,110,216                      ; movd          %eax,%xmm3
12620  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
12621  DB  102,15,219,218                      ; pand          %xmm2,%xmm3
12622  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12623  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
12624  DB  102,15,110,208                      ; movd          %eax,%xmm2
12625  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12626  DB  15,89,211                           ; mulps         %xmm3,%xmm2
12627  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12628  DB  102,15,110,216                      ; movd          %eax,%xmm3
12629  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12630  DB  72,173                              ; lods          %ds:(%rsi),%rax
12631  DB  255,224                             ; jmpq          *%rax
12632
12633PUBLIC _sk_gather_565_sse41
12634_sk_gather_565_sse41 LABEL PROC
12635  DB  72,173                              ; lods          %ds:(%rsi),%rax
12636  DB  76,139,8                            ; mov           (%rax),%r9
12637  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12638  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12639  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12640  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12641  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12642  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12643  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12644  DB  65,137,192                          ; mov           %eax,%r8d
12645  DB  72,193,232,32                       ; shr           $0x20,%rax
12646  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12647  DB  65,137,202                          ; mov           %ecx,%r10d
12648  DB  72,193,233,32                       ; shr           $0x20,%rcx
12649  DB  102,67,15,196,4,81,0                ; pinsrw        $0x0,(%r9,%r10,2),%xmm0
12650  DB  102,65,15,196,4,73,1                ; pinsrw        $0x1,(%r9,%rcx,2),%xmm0
12651  DB  67,15,183,12,65                     ; movzwl        (%r9,%r8,2),%ecx
12652  DB  102,15,196,193,2                    ; pinsrw        $0x2,%ecx,%xmm0
12653  DB  65,15,183,4,65                      ; movzwl        (%r9,%rax,2),%eax
12654  DB  102,15,196,192,3                    ; pinsrw        $0x3,%eax,%xmm0
12655  DB  102,15,56,51,208                    ; pmovzxwd      %xmm0,%xmm2
12656  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
12657  DB  102,15,110,192                      ; movd          %eax,%xmm0
12658  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12659  DB  102,15,219,194                      ; pand          %xmm2,%xmm0
12660  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12661  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
12662  DB  102,15,110,192                      ; movd          %eax,%xmm0
12663  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12664  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12665  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
12666  DB  102,15,110,200                      ; movd          %eax,%xmm1
12667  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
12668  DB  102,15,219,202                      ; pand          %xmm2,%xmm1
12669  DB  15,91,217                           ; cvtdq2ps      %xmm1,%xmm3
12670  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
12671  DB  102,15,110,200                      ; movd          %eax,%xmm1
12672  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12673  DB  15,89,203                           ; mulps         %xmm3,%xmm1
12674  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
12675  DB  102,15,110,216                      ; movd          %eax,%xmm3
12676  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
12677  DB  102,15,219,218                      ; pand          %xmm2,%xmm3
12678  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12679  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
12680  DB  102,15,110,208                      ; movd          %eax,%xmm2
12681  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12682  DB  15,89,211                           ; mulps         %xmm3,%xmm2
12683  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12684  DB  102,15,110,216                      ; movd          %eax,%xmm3
12685  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12686  DB  72,173                              ; lods          %ds:(%rsi),%rax
12687  DB  255,224                             ; jmpq          *%rax
12688
12689PUBLIC _sk_store_565_sse41
12690_sk_store_565_sse41 LABEL PROC
12691  DB  72,173                              ; lods          %ds:(%rsi),%rax
12692  DB  72,139,0                            ; mov           (%rax),%rax
12693  DB  185,0,0,248,65                      ; mov           $0x41f80000,%ecx
12694  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12695  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12696  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12697  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12698  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12699  DB  102,65,15,114,241,11                ; pslld         $0xb,%xmm9
12700  DB  185,0,0,124,66                      ; mov           $0x427c0000,%ecx
12701  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
12702  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12703  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
12704  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
12705  DB  102,65,15,114,242,5                 ; pslld         $0x5,%xmm10
12706  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
12707  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
12708  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
12709  DB  102,69,15,86,194                    ; orpd          %xmm10,%xmm8
12710  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
12711  DB  102,68,15,214,4,120                 ; movq          %xmm8,(%rax,%rdi,2)
12712  DB  72,173                              ; lods          %ds:(%rsi),%rax
12713  DB  255,224                             ; jmpq          *%rax
12714
12715PUBLIC _sk_load_4444_sse41
12716_sk_load_4444_sse41 LABEL PROC
12717  DB  72,173                              ; lods          %ds:(%rsi),%rax
12718  DB  72,139,0                            ; mov           (%rax),%rax
12719  DB  102,68,15,56,51,12,120              ; pmovzxwd      (%rax,%rdi,2),%xmm9
12720  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
12721  DB  102,15,110,192                      ; movd          %eax,%xmm0
12722  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12723  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
12724  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12725  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
12726  DB  102,15,110,192                      ; movd          %eax,%xmm0
12727  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12728  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12729  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
12730  DB  102,15,110,200                      ; movd          %eax,%xmm1
12731  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
12732  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
12733  DB  15,91,209                           ; cvtdq2ps      %xmm1,%xmm2
12734  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
12735  DB  102,15,110,200                      ; movd          %eax,%xmm1
12736  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12737  DB  15,89,202                           ; mulps         %xmm2,%xmm1
12738  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
12739  DB  102,15,110,208                      ; movd          %eax,%xmm2
12740  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12741  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
12742  DB  68,15,91,194                        ; cvtdq2ps      %xmm2,%xmm8
12743  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
12744  DB  102,15,110,208                      ; movd          %eax,%xmm2
12745  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12746  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12747  DB  184,15,0,0,0                        ; mov           $0xf,%eax
12748  DB  102,15,110,216                      ; movd          %eax,%xmm3
12749  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
12750  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
12751  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
12752  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
12753  DB  102,15,110,216                      ; movd          %eax,%xmm3
12754  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12755  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12756  DB  72,173                              ; lods          %ds:(%rsi),%rax
12757  DB  255,224                             ; jmpq          *%rax
12758
12759PUBLIC _sk_gather_4444_sse41
12760_sk_gather_4444_sse41 LABEL PROC
12761  DB  72,173                              ; lods          %ds:(%rsi),%rax
12762  DB  76,139,8                            ; mov           (%rax),%r9
12763  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12764  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12765  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12766  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12767  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12768  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12769  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12770  DB  65,137,192                          ; mov           %eax,%r8d
12771  DB  72,193,232,32                       ; shr           $0x20,%rax
12772  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12773  DB  65,137,202                          ; mov           %ecx,%r10d
12774  DB  72,193,233,32                       ; shr           $0x20,%rcx
12775  DB  102,67,15,196,4,81,0                ; pinsrw        $0x0,(%r9,%r10,2),%xmm0
12776  DB  102,65,15,196,4,73,1                ; pinsrw        $0x1,(%r9,%rcx,2),%xmm0
12777  DB  67,15,183,12,65                     ; movzwl        (%r9,%r8,2),%ecx
12778  DB  102,15,196,193,2                    ; pinsrw        $0x2,%ecx,%xmm0
12779  DB  65,15,183,4,65                      ; movzwl        (%r9,%rax,2),%eax
12780  DB  102,15,196,192,3                    ; pinsrw        $0x3,%eax,%xmm0
12781  DB  102,68,15,56,51,200                 ; pmovzxwd      %xmm0,%xmm9
12782  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
12783  DB  102,15,110,192                      ; movd          %eax,%xmm0
12784  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12785  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
12786  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12787  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
12788  DB  102,15,110,192                      ; movd          %eax,%xmm0
12789  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12790  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12791  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
12792  DB  102,15,110,200                      ; movd          %eax,%xmm1
12793  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
12794  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
12795  DB  15,91,209                           ; cvtdq2ps      %xmm1,%xmm2
12796  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
12797  DB  102,15,110,200                      ; movd          %eax,%xmm1
12798  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12799  DB  15,89,202                           ; mulps         %xmm2,%xmm1
12800  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
12801  DB  102,15,110,208                      ; movd          %eax,%xmm2
12802  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12803  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
12804  DB  68,15,91,194                        ; cvtdq2ps      %xmm2,%xmm8
12805  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
12806  DB  102,15,110,208                      ; movd          %eax,%xmm2
12807  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12808  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12809  DB  184,15,0,0,0                        ; mov           $0xf,%eax
12810  DB  102,15,110,216                      ; movd          %eax,%xmm3
12811  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
12812  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
12813  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
12814  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
12815  DB  102,15,110,216                      ; movd          %eax,%xmm3
12816  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12817  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12818  DB  72,173                              ; lods          %ds:(%rsi),%rax
12819  DB  255,224                             ; jmpq          *%rax
12820
12821PUBLIC _sk_store_4444_sse41
12822_sk_store_4444_sse41 LABEL PROC
12823  DB  72,173                              ; lods          %ds:(%rsi),%rax
12824  DB  72,139,0                            ; mov           (%rax),%rax
12825  DB  185,0,0,112,65                      ; mov           $0x41700000,%ecx
12826  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12827  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12828  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12829  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12830  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12831  DB  102,65,15,114,241,12                ; pslld         $0xc,%xmm9
12832  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
12833  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
12834  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
12835  DB  102,65,15,114,242,8                 ; pslld         $0x8,%xmm10
12836  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
12837  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12838  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
12839  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12840  DB  102,65,15,114,241,4                 ; pslld         $0x4,%xmm9
12841  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
12842  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
12843  DB  102,69,15,86,193                    ; orpd          %xmm9,%xmm8
12844  DB  102,69,15,86,194                    ; orpd          %xmm10,%xmm8
12845  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
12846  DB  102,68,15,214,4,120                 ; movq          %xmm8,(%rax,%rdi,2)
12847  DB  72,173                              ; lods          %ds:(%rsi),%rax
12848  DB  255,224                             ; jmpq          *%rax
12849
12850PUBLIC _sk_load_8888_sse41
12851_sk_load_8888_sse41 LABEL PROC
12852  DB  72,173                              ; lods          %ds:(%rsi),%rax
12853  DB  72,139,0                            ; mov           (%rax),%rax
12854  DB  243,15,111,28,184                   ; movdqu        (%rax,%rdi,4),%xmm3
12855  DB  184,255,0,0,0                       ; mov           $0xff,%eax
12856  DB  102,15,110,192                      ; movd          %eax,%xmm0
12857  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12858  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
12859  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
12860  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
12861  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
12862  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
12863  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
12864  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
12865  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12866  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12867  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
12868  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12869  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
12870  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
12871  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
12872  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
12873  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12874  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
12875  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12876  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12877  DB  72,173                              ; lods          %ds:(%rsi),%rax
12878  DB  255,224                             ; jmpq          *%rax
12879
12880PUBLIC _sk_gather_8888_sse41
12881_sk_gather_8888_sse41 LABEL PROC
12882  DB  72,173                              ; lods          %ds:(%rsi),%rax
12883  DB  76,139,8                            ; mov           (%rax),%r9
12884  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12885  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12886  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12887  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12888  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12889  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12890  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
12891  DB  65,137,192                          ; mov           %eax,%r8d
12892  DB  72,193,232,32                       ; shr           $0x20,%rax
12893  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
12894  DB  65,137,202                          ; mov           %ecx,%r10d
12895  DB  72,193,233,32                       ; shr           $0x20,%rcx
12896  DB  102,67,15,110,28,129                ; movd          (%r9,%r8,4),%xmm3
12897  DB  102,65,15,58,34,28,129,1            ; pinsrd        $0x1,(%r9,%rax,4),%xmm3
12898  DB  102,67,15,58,34,28,145,2            ; pinsrd        $0x2,(%r9,%r10,4),%xmm3
12899  DB  102,65,15,58,34,28,137,3            ; pinsrd        $0x3,(%r9,%rcx,4),%xmm3
12900  DB  184,255,0,0,0                       ; mov           $0xff,%eax
12901  DB  102,15,110,192                      ; movd          %eax,%xmm0
12902  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12903  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
12904  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
12905  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
12906  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
12907  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
12908  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
12909  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
12910  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12911  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12912  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
12913  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12914  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
12915  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
12916  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
12917  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
12918  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12919  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
12920  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12921  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12922  DB  72,173                              ; lods          %ds:(%rsi),%rax
12923  DB  255,224                             ; jmpq          *%rax
12924
12925PUBLIC _sk_store_8888_sse41
12926_sk_store_8888_sse41 LABEL PROC
12927  DB  72,173                              ; lods          %ds:(%rsi),%rax
12928  DB  72,139,0                            ; mov           (%rax),%rax
12929  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
12930  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12931  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12932  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12933  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12934  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12935  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
12936  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
12937  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
12938  DB  102,65,15,114,242,8                 ; pslld         $0x8,%xmm10
12939  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
12940  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12941  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
12942  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12943  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
12944  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
12945  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
12946  DB  102,65,15,114,240,24                ; pslld         $0x18,%xmm8
12947  DB  102,69,15,235,193                   ; por           %xmm9,%xmm8
12948  DB  102,69,15,235,194                   ; por           %xmm10,%xmm8
12949  DB  243,68,15,127,4,184                 ; movdqu        %xmm8,(%rax,%rdi,4)
12950  DB  72,173                              ; lods          %ds:(%rsi),%rax
12951  DB  255,224                             ; jmpq          *%rax
12952
12953PUBLIC _sk_load_f16_sse41
12954_sk_load_f16_sse41 LABEL PROC
12955  DB  72,173                              ; lods          %ds:(%rsi),%rax
12956  DB  72,139,0                            ; mov           (%rax),%rax
12957  DB  243,15,111,4,248                    ; movdqu        (%rax,%rdi,8),%xmm0
12958  DB  243,15,111,76,248,16                ; movdqu        0x10(%rax,%rdi,8),%xmm1
12959  DB  102,68,15,111,200                   ; movdqa        %xmm0,%xmm9
12960  DB  102,68,15,97,201                    ; punpcklwd     %xmm1,%xmm9
12961  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
12962  DB  102,69,15,111,217                   ; movdqa        %xmm9,%xmm11
12963  DB  102,68,15,97,216                    ; punpcklwd     %xmm0,%xmm11
12964  DB  102,68,15,105,200                   ; punpckhwd     %xmm0,%xmm9
12965  DB  102,69,15,56,51,227                 ; pmovzxwd      %xmm11,%xmm12
12966  DB  184,0,128,0,0                       ; mov           $0x8000,%eax
12967  DB  102,15,110,192                      ; movd          %eax,%xmm0
12968  DB  102,68,15,112,192,0                 ; pshufd        $0x0,%xmm0,%xmm8
12969  DB  102,65,15,111,212                   ; movdqa        %xmm12,%xmm2
12970  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
12971  DB  102,68,15,239,226                   ; pxor          %xmm2,%xmm12
12972  DB  184,0,4,0,0                         ; mov           $0x400,%eax
12973  DB  102,15,110,192                      ; movd          %eax,%xmm0
12974  DB  102,15,112,216,0                    ; pshufd        $0x0,%xmm0,%xmm3
12975  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
12976  DB  102,15,111,195                      ; movdqa        %xmm3,%xmm0
12977  DB  102,65,15,102,196                   ; pcmpgtd       %xmm12,%xmm0
12978  DB  102,65,15,114,244,13                ; pslld         $0xd,%xmm12
12979  DB  184,0,0,0,56                        ; mov           $0x38000000,%eax
12980  DB  102,15,110,200                      ; movd          %eax,%xmm1
12981  DB  102,68,15,112,209,0                 ; pshufd        $0x0,%xmm1,%xmm10
12982  DB  102,65,15,254,210                   ; paddd         %xmm10,%xmm2
12983  DB  102,65,15,254,212                   ; paddd         %xmm12,%xmm2
12984  DB  102,15,223,194                      ; pandn         %xmm2,%xmm0
12985  DB  102,65,15,115,219,8                 ; psrldq        $0x8,%xmm11
12986  DB  102,69,15,56,51,219                 ; pmovzxwd      %xmm11,%xmm11
12987  DB  102,65,15,111,211                   ; movdqa        %xmm11,%xmm2
12988  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
12989  DB  102,68,15,239,218                   ; pxor          %xmm2,%xmm11
12990  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
12991  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
12992  DB  102,65,15,102,203                   ; pcmpgtd       %xmm11,%xmm1
12993  DB  102,65,15,114,243,13                ; pslld         $0xd,%xmm11
12994  DB  102,65,15,254,210                   ; paddd         %xmm10,%xmm2
12995  DB  102,65,15,254,211                   ; paddd         %xmm11,%xmm2
12996  DB  102,15,223,202                      ; pandn         %xmm2,%xmm1
12997  DB  102,69,15,56,51,217                 ; pmovzxwd      %xmm9,%xmm11
12998  DB  102,69,15,111,227                   ; movdqa        %xmm11,%xmm12
12999  DB  102,69,15,219,224                   ; pand          %xmm8,%xmm12
13000  DB  102,69,15,239,220                   ; pxor          %xmm12,%xmm11
13001  DB  102,65,15,114,244,16                ; pslld         $0x10,%xmm12
13002  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
13003  DB  102,65,15,102,211                   ; pcmpgtd       %xmm11,%xmm2
13004  DB  102,65,15,114,243,13                ; pslld         $0xd,%xmm11
13005  DB  102,69,15,254,226                   ; paddd         %xmm10,%xmm12
13006  DB  102,69,15,254,227                   ; paddd         %xmm11,%xmm12
13007  DB  102,65,15,223,212                   ; pandn         %xmm12,%xmm2
13008  DB  102,65,15,115,217,8                 ; psrldq        $0x8,%xmm9
13009  DB  102,69,15,56,51,201                 ; pmovzxwd      %xmm9,%xmm9
13010  DB  102,69,15,219,193                   ; pand          %xmm9,%xmm8
13011  DB  102,69,15,239,200                   ; pxor          %xmm8,%xmm9
13012  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
13013  DB  102,65,15,102,217                   ; pcmpgtd       %xmm9,%xmm3
13014  DB  102,65,15,114,241,13                ; pslld         $0xd,%xmm9
13015  DB  102,69,15,254,194                   ; paddd         %xmm10,%xmm8
13016  DB  102,69,15,254,193                   ; paddd         %xmm9,%xmm8
13017  DB  102,65,15,223,216                   ; pandn         %xmm8,%xmm3
13018  DB  72,173                              ; lods          %ds:(%rsi),%rax
13019  DB  255,224                             ; jmpq          *%rax
13020
13021PUBLIC _sk_gather_f16_sse41
13022_sk_gather_f16_sse41 LABEL PROC
13023  DB  72,173                              ; lods          %ds:(%rsi),%rax
13024  DB  76,139,8                            ; mov           (%rax),%r9
13025  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
13026  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
13027  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
13028  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
13029  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
13030  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
13031  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
13032  DB  65,137,192                          ; mov           %eax,%r8d
13033  DB  72,193,232,32                       ; shr           $0x20,%rax
13034  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
13035  DB  65,137,202                          ; mov           %ecx,%r10d
13036  DB  72,193,233,32                       ; shr           $0x20,%rcx
13037  DB  243,65,15,126,4,201                 ; movq          (%r9,%rcx,8),%xmm0
13038  DB  243,67,15,126,12,209                ; movq          (%r9,%r10,8),%xmm1
13039  DB  102,15,108,200                      ; punpcklqdq    %xmm0,%xmm1
13040  DB  243,65,15,126,4,193                 ; movq          (%r9,%rax,8),%xmm0
13041  DB  243,67,15,126,20,193                ; movq          (%r9,%r8,8),%xmm2
13042  DB  102,15,108,208                      ; punpcklqdq    %xmm0,%xmm2
13043  DB  102,68,15,111,202                   ; movdqa        %xmm2,%xmm9
13044  DB  102,68,15,97,201                    ; punpcklwd     %xmm1,%xmm9
13045  DB  102,15,105,209                      ; punpckhwd     %xmm1,%xmm2
13046  DB  102,69,15,111,217                   ; movdqa        %xmm9,%xmm11
13047  DB  102,68,15,97,218                    ; punpcklwd     %xmm2,%xmm11
13048  DB  102,68,15,105,202                   ; punpckhwd     %xmm2,%xmm9
13049  DB  102,69,15,56,51,227                 ; pmovzxwd      %xmm11,%xmm12
13050  DB  184,0,128,0,0                       ; mov           $0x8000,%eax
13051  DB  102,15,110,192                      ; movd          %eax,%xmm0
13052  DB  102,68,15,112,192,0                 ; pshufd        $0x0,%xmm0,%xmm8
13053  DB  102,65,15,111,212                   ; movdqa        %xmm12,%xmm2
13054  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
13055  DB  102,68,15,239,226                   ; pxor          %xmm2,%xmm12
13056  DB  184,0,4,0,0                         ; mov           $0x400,%eax
13057  DB  102,15,110,192                      ; movd          %eax,%xmm0
13058  DB  102,15,112,216,0                    ; pshufd        $0x0,%xmm0,%xmm3
13059  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
13060  DB  102,15,111,195                      ; movdqa        %xmm3,%xmm0
13061  DB  102,65,15,102,196                   ; pcmpgtd       %xmm12,%xmm0
13062  DB  102,65,15,114,244,13                ; pslld         $0xd,%xmm12
13063  DB  184,0,0,0,56                        ; mov           $0x38000000,%eax
13064  DB  102,15,110,200                      ; movd          %eax,%xmm1
13065  DB  102,68,15,112,209,0                 ; pshufd        $0x0,%xmm1,%xmm10
13066  DB  102,65,15,254,210                   ; paddd         %xmm10,%xmm2
13067  DB  102,65,15,254,212                   ; paddd         %xmm12,%xmm2
13068  DB  102,15,223,194                      ; pandn         %xmm2,%xmm0
13069  DB  102,65,15,115,219,8                 ; psrldq        $0x8,%xmm11
13070  DB  102,69,15,56,51,219                 ; pmovzxwd      %xmm11,%xmm11
13071  DB  102,65,15,111,211                   ; movdqa        %xmm11,%xmm2
13072  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
13073  DB  102,68,15,239,218                   ; pxor          %xmm2,%xmm11
13074  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
13075  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
13076  DB  102,65,15,102,203                   ; pcmpgtd       %xmm11,%xmm1
13077  DB  102,65,15,114,243,13                ; pslld         $0xd,%xmm11
13078  DB  102,65,15,254,210                   ; paddd         %xmm10,%xmm2
13079  DB  102,65,15,254,211                   ; paddd         %xmm11,%xmm2
13080  DB  102,15,223,202                      ; pandn         %xmm2,%xmm1
13081  DB  102,69,15,56,51,217                 ; pmovzxwd      %xmm9,%xmm11
13082  DB  102,69,15,111,227                   ; movdqa        %xmm11,%xmm12
13083  DB  102,69,15,219,224                   ; pand          %xmm8,%xmm12
13084  DB  102,69,15,239,220                   ; pxor          %xmm12,%xmm11
13085  DB  102,65,15,114,244,16                ; pslld         $0x10,%xmm12
13086  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
13087  DB  102,65,15,102,211                   ; pcmpgtd       %xmm11,%xmm2
13088  DB  102,65,15,114,243,13                ; pslld         $0xd,%xmm11
13089  DB  102,69,15,254,226                   ; paddd         %xmm10,%xmm12
13090  DB  102,69,15,254,227                   ; paddd         %xmm11,%xmm12
13091  DB  102,65,15,223,212                   ; pandn         %xmm12,%xmm2
13092  DB  102,65,15,115,217,8                 ; psrldq        $0x8,%xmm9
13093  DB  102,69,15,56,51,201                 ; pmovzxwd      %xmm9,%xmm9
13094  DB  102,69,15,219,193                   ; pand          %xmm9,%xmm8
13095  DB  102,69,15,239,200                   ; pxor          %xmm8,%xmm9
13096  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
13097  DB  102,65,15,102,217                   ; pcmpgtd       %xmm9,%xmm3
13098  DB  102,65,15,114,241,13                ; pslld         $0xd,%xmm9
13099  DB  102,69,15,254,194                   ; paddd         %xmm10,%xmm8
13100  DB  102,69,15,254,193                   ; paddd         %xmm9,%xmm8
13101  DB  102,65,15,223,216                   ; pandn         %xmm8,%xmm3
13102  DB  72,173                              ; lods          %ds:(%rsi),%rax
13103  DB  255,224                             ; jmpq          *%rax
13104
13105PUBLIC _sk_store_f16_sse41
13106_sk_store_f16_sse41 LABEL PROC
13107  DB  72,173                              ; lods          %ds:(%rsi),%rax
13108  DB  72,139,0                            ; mov           (%rax),%rax
13109  DB  185,0,0,0,128                       ; mov           $0x80000000,%ecx
13110  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13111  DB  102,69,15,112,200,0                 ; pshufd        $0x0,%xmm8,%xmm9
13112  DB  102,69,15,111,225                   ; movdqa        %xmm9,%xmm12
13113  DB  102,68,15,219,224                   ; pand          %xmm0,%xmm12
13114  DB  102,68,15,111,232                   ; movdqa        %xmm0,%xmm13
13115  DB  102,69,15,239,236                   ; pxor          %xmm12,%xmm13
13116  DB  185,0,0,128,56                      ; mov           $0x38800000,%ecx
13117  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13118  DB  102,69,15,112,208,0                 ; pshufd        $0x0,%xmm8,%xmm10
13119  DB  102,65,15,114,212,16                ; psrld         $0x10,%xmm12
13120  DB  102,69,15,111,194                   ; movdqa        %xmm10,%xmm8
13121  DB  102,69,15,102,197                   ; pcmpgtd       %xmm13,%xmm8
13122  DB  102,65,15,114,213,13                ; psrld         $0xd,%xmm13
13123  DB  185,0,192,1,0                       ; mov           $0x1c000,%ecx
13124  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
13125  DB  102,69,15,112,219,0                 ; pshufd        $0x0,%xmm11,%xmm11
13126  DB  102,69,15,250,227                   ; psubd         %xmm11,%xmm12
13127  DB  102,69,15,254,229                   ; paddd         %xmm13,%xmm12
13128  DB  102,69,15,223,196                   ; pandn         %xmm12,%xmm8
13129  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
13130  DB  102,69,15,111,233                   ; movdqa        %xmm9,%xmm13
13131  DB  102,68,15,219,233                   ; pand          %xmm1,%xmm13
13132  DB  102,68,15,111,241                   ; movdqa        %xmm1,%xmm14
13133  DB  102,69,15,239,245                   ; pxor          %xmm13,%xmm14
13134  DB  102,65,15,114,213,16                ; psrld         $0x10,%xmm13
13135  DB  102,69,15,111,226                   ; movdqa        %xmm10,%xmm12
13136  DB  102,69,15,102,230                   ; pcmpgtd       %xmm14,%xmm12
13137  DB  102,65,15,114,214,13                ; psrld         $0xd,%xmm14
13138  DB  102,69,15,250,235                   ; psubd         %xmm11,%xmm13
13139  DB  102,69,15,254,238                   ; paddd         %xmm14,%xmm13
13140  DB  102,69,15,223,229                   ; pandn         %xmm13,%xmm12
13141  DB  102,69,15,56,43,228                 ; packusdw      %xmm12,%xmm12
13142  DB  102,69,15,111,241                   ; movdqa        %xmm9,%xmm14
13143  DB  102,68,15,219,242                   ; pand          %xmm2,%xmm14
13144  DB  102,68,15,111,250                   ; movdqa        %xmm2,%xmm15
13145  DB  102,69,15,239,254                   ; pxor          %xmm14,%xmm15
13146  DB  102,65,15,114,214,16                ; psrld         $0x10,%xmm14
13147  DB  102,69,15,111,234                   ; movdqa        %xmm10,%xmm13
13148  DB  102,69,15,102,239                   ; pcmpgtd       %xmm15,%xmm13
13149  DB  102,65,15,114,215,13                ; psrld         $0xd,%xmm15
13150  DB  102,69,15,250,243                   ; psubd         %xmm11,%xmm14
13151  DB  102,69,15,254,247                   ; paddd         %xmm15,%xmm14
13152  DB  102,69,15,223,238                   ; pandn         %xmm14,%xmm13
13153  DB  102,69,15,56,43,237                 ; packusdw      %xmm13,%xmm13
13154  DB  102,68,15,219,203                   ; pand          %xmm3,%xmm9
13155  DB  102,68,15,111,243                   ; movdqa        %xmm3,%xmm14
13156  DB  102,69,15,239,241                   ; pxor          %xmm9,%xmm14
13157  DB  102,65,15,114,209,16                ; psrld         $0x10,%xmm9
13158  DB  102,69,15,102,214                   ; pcmpgtd       %xmm14,%xmm10
13159  DB  102,65,15,114,214,13                ; psrld         $0xd,%xmm14
13160  DB  102,69,15,250,203                   ; psubd         %xmm11,%xmm9
13161  DB  102,69,15,254,206                   ; paddd         %xmm14,%xmm9
13162  DB  102,69,15,223,209                   ; pandn         %xmm9,%xmm10
13163  DB  102,69,15,56,43,210                 ; packusdw      %xmm10,%xmm10
13164  DB  102,69,15,97,196                    ; punpcklwd     %xmm12,%xmm8
13165  DB  102,69,15,97,234                    ; punpcklwd     %xmm10,%xmm13
13166  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
13167  DB  102,69,15,98,205                    ; punpckldq     %xmm13,%xmm9
13168  DB  243,68,15,127,12,248                ; movdqu        %xmm9,(%rax,%rdi,8)
13169  DB  102,69,15,106,197                   ; punpckhdq     %xmm13,%xmm8
13170  DB  243,68,15,127,68,248,16             ; movdqu        %xmm8,0x10(%rax,%rdi,8)
13171  DB  72,173                              ; lods          %ds:(%rsi),%rax
13172  DB  255,224                             ; jmpq          *%rax
13173
13174PUBLIC _sk_load_u16_be_sse41
13175_sk_load_u16_be_sse41 LABEL PROC
13176  DB  72,173                              ; lods          %ds:(%rsi),%rax
13177  DB  72,139,0                            ; mov           (%rax),%rax
13178  DB  243,15,111,4,248                    ; movdqu        (%rax,%rdi,8),%xmm0
13179  DB  243,15,111,76,248,16                ; movdqu        0x10(%rax,%rdi,8),%xmm1
13180  DB  102,15,111,208                      ; movdqa        %xmm0,%xmm2
13181  DB  102,15,97,209                       ; punpcklwd     %xmm1,%xmm2
13182  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
13183  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
13184  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
13185  DB  102,15,105,208                      ; punpckhwd     %xmm0,%xmm2
13186  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
13187  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
13188  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13189  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
13190  DB  102,15,113,240,8                    ; psllw         $0x8,%xmm0
13191  DB  102,15,112,217,78                   ; pshufd        $0x4e,%xmm1,%xmm3
13192  DB  102,15,113,209,8                    ; psrlw         $0x8,%xmm1
13193  DB  102,15,235,200                      ; por           %xmm0,%xmm1
13194  DB  102,15,56,51,193                    ; pmovzxwd      %xmm1,%xmm0
13195  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
13196  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13197  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
13198  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
13199  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
13200  DB  102,15,235,217                      ; por           %xmm1,%xmm3
13201  DB  102,15,56,51,203                    ; pmovzxwd      %xmm3,%xmm1
13202  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
13203  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13204  DB  102,68,15,111,202                   ; movdqa        %xmm2,%xmm9
13205  DB  102,65,15,113,241,8                 ; psllw         $0x8,%xmm9
13206  DB  102,15,112,218,78                   ; pshufd        $0x4e,%xmm2,%xmm3
13207  DB  102,15,113,210,8                    ; psrlw         $0x8,%xmm2
13208  DB  102,65,15,235,209                   ; por           %xmm9,%xmm2
13209  DB  102,15,56,51,210                    ; pmovzxwd      %xmm2,%xmm2
13210  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
13211  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
13212  DB  102,68,15,111,203                   ; movdqa        %xmm3,%xmm9
13213  DB  102,65,15,113,241,8                 ; psllw         $0x8,%xmm9
13214  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
13215  DB  102,65,15,235,217                   ; por           %xmm9,%xmm3
13216  DB  102,15,56,51,219                    ; pmovzxwd      %xmm3,%xmm3
13217  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
13218  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
13219  DB  72,173                              ; lods          %ds:(%rsi),%rax
13220  DB  255,224                             ; jmpq          *%rax
13221
13222PUBLIC _sk_load_rgb_u16_be_sse41
13223_sk_load_rgb_u16_be_sse41 LABEL PROC
13224  DB  72,173                              ; lods          %ds:(%rsi),%rax
13225  DB  72,139,0                            ; mov           (%rax),%rax
13226  DB  72,141,12,127                       ; lea           (%rdi,%rdi,2),%rcx
13227  DB  243,15,111,20,72                    ; movdqu        (%rax,%rcx,2),%xmm2
13228  DB  243,15,111,68,72,8                  ; movdqu        0x8(%rax,%rcx,2),%xmm0
13229  DB  102,15,115,216,4                    ; psrldq        $0x4,%xmm0
13230  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
13231  DB  102,15,115,217,6                    ; psrldq        $0x6,%xmm1
13232  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
13233  DB  102,15,115,216,6                    ; psrldq        $0x6,%xmm0
13234  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
13235  DB  102,15,111,194                      ; movdqa        %xmm2,%xmm0
13236  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
13237  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
13238  DB  102,15,105,209                      ; punpckhwd     %xmm1,%xmm2
13239  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
13240  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
13241  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13242  DB  102,15,111,200                      ; movdqa        %xmm0,%xmm1
13243  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
13244  DB  102,15,113,208,8                    ; psrlw         $0x8,%xmm0
13245  DB  102,15,235,193                      ; por           %xmm1,%xmm0
13246  DB  102,15,56,51,192                    ; pmovzxwd      %xmm0,%xmm0
13247  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
13248  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13249  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
13250  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
13251  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
13252  DB  102,15,235,217                      ; por           %xmm1,%xmm3
13253  DB  102,15,56,51,203                    ; pmovzxwd      %xmm3,%xmm1
13254  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
13255  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13256  DB  102,15,111,218                      ; movdqa        %xmm2,%xmm3
13257  DB  102,15,113,243,8                    ; psllw         $0x8,%xmm3
13258  DB  102,15,113,210,8                    ; psrlw         $0x8,%xmm2
13259  DB  102,15,235,211                      ; por           %xmm3,%xmm2
13260  DB  102,15,56,51,210                    ; pmovzxwd      %xmm2,%xmm2
13261  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
13262  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
13263  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
13264  DB  102,15,110,216                      ; movd          %eax,%xmm3
13265  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13266  DB  72,173                              ; lods          %ds:(%rsi),%rax
13267  DB  255,224                             ; jmpq          *%rax
13268
13269PUBLIC _sk_store_u16_be_sse41
13270_sk_store_u16_be_sse41 LABEL PROC
13271  DB  72,173                              ; lods          %ds:(%rsi),%rax
13272  DB  72,139,0                            ; mov           (%rax),%rax
13273  DB  185,0,255,127,71                    ; mov           $0x477fff00,%ecx
13274  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
13275  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13276  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
13277  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
13278  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
13279  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
13280  DB  102,69,15,111,208                   ; movdqa        %xmm8,%xmm10
13281  DB  102,65,15,113,242,8                 ; psllw         $0x8,%xmm10
13282  DB  102,65,15,113,208,8                 ; psrlw         $0x8,%xmm8
13283  DB  102,69,15,235,194                   ; por           %xmm10,%xmm8
13284  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
13285  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
13286  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
13287  DB  102,69,15,56,43,210                 ; packusdw      %xmm10,%xmm10
13288  DB  102,69,15,111,218                   ; movdqa        %xmm10,%xmm11
13289  DB  102,65,15,113,243,8                 ; psllw         $0x8,%xmm11
13290  DB  102,65,15,113,210,8                 ; psrlw         $0x8,%xmm10
13291  DB  102,69,15,235,211                   ; por           %xmm11,%xmm10
13292  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
13293  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13294  DB  102,69,15,91,219                    ; cvtps2dq      %xmm11,%xmm11
13295  DB  102,69,15,56,43,219                 ; packusdw      %xmm11,%xmm11
13296  DB  102,69,15,111,227                   ; movdqa        %xmm11,%xmm12
13297  DB  102,65,15,113,244,8                 ; psllw         $0x8,%xmm12
13298  DB  102,65,15,113,211,8                 ; psrlw         $0x8,%xmm11
13299  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
13300  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
13301  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
13302  DB  102,69,15,56,43,201                 ; packusdw      %xmm9,%xmm9
13303  DB  102,69,15,111,225                   ; movdqa        %xmm9,%xmm12
13304  DB  102,65,15,113,244,8                 ; psllw         $0x8,%xmm12
13305  DB  102,65,15,113,209,8                 ; psrlw         $0x8,%xmm9
13306  DB  102,69,15,235,204                   ; por           %xmm12,%xmm9
13307  DB  102,69,15,97,194                    ; punpcklwd     %xmm10,%xmm8
13308  DB  102,69,15,97,217                    ; punpcklwd     %xmm9,%xmm11
13309  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
13310  DB  102,69,15,98,203                    ; punpckldq     %xmm11,%xmm9
13311  DB  243,68,15,127,12,248                ; movdqu        %xmm9,(%rax,%rdi,8)
13312  DB  102,69,15,106,195                   ; punpckhdq     %xmm11,%xmm8
13313  DB  243,68,15,127,68,248,16             ; movdqu        %xmm8,0x10(%rax,%rdi,8)
13314  DB  72,173                              ; lods          %ds:(%rsi),%rax
13315  DB  255,224                             ; jmpq          *%rax
13316
13317PUBLIC _sk_load_f32_sse41
13318_sk_load_f32_sse41 LABEL PROC
13319  DB  72,173                              ; lods          %ds:(%rsi),%rax
13320  DB  72,139,0                            ; mov           (%rax),%rax
13321  DB  72,137,249                          ; mov           %rdi,%rcx
13322  DB  72,193,225,4                        ; shl           $0x4,%rcx
13323  DB  68,15,16,4,8                        ; movups        (%rax,%rcx,1),%xmm8
13324  DB  15,16,68,8,16                       ; movups        0x10(%rax,%rcx,1),%xmm0
13325  DB  15,16,92,8,32                       ; movups        0x20(%rax,%rcx,1),%xmm3
13326  DB  68,15,16,76,8,48                    ; movups        0x30(%rax,%rcx,1),%xmm9
13327  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
13328  DB  15,20,208                           ; unpcklps      %xmm0,%xmm2
13329  DB  15,40,203                           ; movaps        %xmm3,%xmm1
13330  DB  65,15,20,201                        ; unpcklps      %xmm9,%xmm1
13331  DB  68,15,21,192                        ; unpckhps      %xmm0,%xmm8
13332  DB  65,15,21,217                        ; unpckhps      %xmm9,%xmm3
13333  DB  15,40,194                           ; movaps        %xmm2,%xmm0
13334  DB  102,15,20,193                       ; unpcklpd      %xmm1,%xmm0
13335  DB  15,18,202                           ; movhlps       %xmm2,%xmm1
13336  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
13337  DB  102,15,20,211                       ; unpcklpd      %xmm3,%xmm2
13338  DB  65,15,18,216                        ; movhlps       %xmm8,%xmm3
13339  DB  72,173                              ; lods          %ds:(%rsi),%rax
13340  DB  255,224                             ; jmpq          *%rax
13341
13342PUBLIC _sk_store_f32_sse41
13343_sk_store_f32_sse41 LABEL PROC
13344  DB  72,173                              ; lods          %ds:(%rsi),%rax
13345  DB  72,139,0                            ; mov           (%rax),%rax
13346  DB  72,137,249                          ; mov           %rdi,%rcx
13347  DB  72,193,225,4                        ; shl           $0x4,%rcx
13348  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13349  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
13350  DB  68,15,20,201                        ; unpcklps      %xmm1,%xmm9
13351  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
13352  DB  68,15,40,218                        ; movaps        %xmm2,%xmm11
13353  DB  68,15,20,219                        ; unpcklps      %xmm3,%xmm11
13354  DB  68,15,21,193                        ; unpckhps      %xmm1,%xmm8
13355  DB  68,15,21,211                        ; unpckhps      %xmm3,%xmm10
13356  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
13357  DB  102,69,15,20,227                    ; unpcklpd      %xmm11,%xmm12
13358  DB  69,15,18,217                        ; movhlps       %xmm9,%xmm11
13359  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
13360  DB  102,69,15,20,202                    ; unpcklpd      %xmm10,%xmm9
13361  DB  69,15,18,208                        ; movhlps       %xmm8,%xmm10
13362  DB  102,68,15,17,36,8                   ; movupd        %xmm12,(%rax,%rcx,1)
13363  DB  68,15,17,92,8,16                    ; movups        %xmm11,0x10(%rax,%rcx,1)
13364  DB  102,68,15,17,76,8,32                ; movupd        %xmm9,0x20(%rax,%rcx,1)
13365  DB  68,15,17,84,8,48                    ; movups        %xmm10,0x30(%rax,%rcx,1)
13366  DB  72,173                              ; lods          %ds:(%rsi),%rax
13367  DB  255,224                             ; jmpq          *%rax
13368
13369PUBLIC _sk_clamp_x_sse41
13370_sk_clamp_x_sse41 LABEL PROC
13371  DB  72,173                              ; lods          %ds:(%rsi),%rax
13372  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
13373  DB  68,15,95,192                        ; maxps         %xmm0,%xmm8
13374  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
13375  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13376  DB  102,15,118,192                      ; pcmpeqd       %xmm0,%xmm0
13377  DB  102,65,15,254,193                   ; paddd         %xmm9,%xmm0
13378  DB  68,15,93,192                        ; minps         %xmm0,%xmm8
13379  DB  72,173                              ; lods          %ds:(%rsi),%rax
13380  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
13381  DB  255,224                             ; jmpq          *%rax
13382
13383PUBLIC _sk_clamp_y_sse41
13384_sk_clamp_y_sse41 LABEL PROC
13385  DB  72,173                              ; lods          %ds:(%rsi),%rax
13386  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
13387  DB  68,15,95,193                        ; maxps         %xmm1,%xmm8
13388  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
13389  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13390  DB  102,15,118,201                      ; pcmpeqd       %xmm1,%xmm1
13391  DB  102,65,15,254,201                   ; paddd         %xmm9,%xmm1
13392  DB  68,15,93,193                        ; minps         %xmm1,%xmm8
13393  DB  72,173                              ; lods          %ds:(%rsi),%rax
13394  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
13395  DB  255,224                             ; jmpq          *%rax
13396
13397PUBLIC _sk_repeat_x_sse41
13398_sk_repeat_x_sse41 LABEL PROC
13399  DB  72,173                              ; lods          %ds:(%rsi),%rax
13400  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
13401  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13402  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
13403  DB  69,15,94,200                        ; divps         %xmm8,%xmm9
13404  DB  102,69,15,58,8,201,1                ; roundps       $0x1,%xmm9,%xmm9
13405  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13406  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
13407  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
13408  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
13409  DB  65,15,93,193                        ; minps         %xmm9,%xmm0
13410  DB  72,173                              ; lods          %ds:(%rsi),%rax
13411  DB  255,224                             ; jmpq          *%rax
13412
13413PUBLIC _sk_repeat_y_sse41
13414_sk_repeat_y_sse41 LABEL PROC
13415  DB  72,173                              ; lods          %ds:(%rsi),%rax
13416  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
13417  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13418  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
13419  DB  69,15,94,200                        ; divps         %xmm8,%xmm9
13420  DB  102,69,15,58,8,201,1                ; roundps       $0x1,%xmm9,%xmm9
13421  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13422  DB  65,15,92,201                        ; subps         %xmm9,%xmm1
13423  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
13424  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
13425  DB  65,15,93,201                        ; minps         %xmm9,%xmm1
13426  DB  72,173                              ; lods          %ds:(%rsi),%rax
13427  DB  255,224                             ; jmpq          *%rax
13428
13429PUBLIC _sk_mirror_x_sse41
13430_sk_mirror_x_sse41 LABEL PROC
13431  DB  72,173                              ; lods          %ds:(%rsi),%rax
13432  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
13433  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
13434  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13435  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
13436  DB  243,69,15,88,192                    ; addss         %xmm8,%xmm8
13437  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13438  DB  68,15,40,208                        ; movaps        %xmm0,%xmm10
13439  DB  69,15,94,208                        ; divps         %xmm8,%xmm10
13440  DB  102,69,15,58,8,210,1                ; roundps       $0x1,%xmm10,%xmm10
13441  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13442  DB  65,15,92,194                        ; subps         %xmm10,%xmm0
13443  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
13444  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
13445  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
13446  DB  65,15,84,192                        ; andps         %xmm8,%xmm0
13447  DB  102,69,15,118,192                   ; pcmpeqd       %xmm8,%xmm8
13448  DB  102,69,15,254,193                   ; paddd         %xmm9,%xmm8
13449  DB  65,15,93,192                        ; minps         %xmm8,%xmm0
13450  DB  72,173                              ; lods          %ds:(%rsi),%rax
13451  DB  255,224                             ; jmpq          *%rax
13452
13453PUBLIC _sk_mirror_y_sse41
13454_sk_mirror_y_sse41 LABEL PROC
13455  DB  72,173                              ; lods          %ds:(%rsi),%rax
13456  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
13457  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
13458  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13459  DB  65,15,92,201                        ; subps         %xmm9,%xmm1
13460  DB  243,69,15,88,192                    ; addss         %xmm8,%xmm8
13461  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13462  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
13463  DB  69,15,94,208                        ; divps         %xmm8,%xmm10
13464  DB  102,69,15,58,8,210,1                ; roundps       $0x1,%xmm10,%xmm10
13465  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13466  DB  65,15,92,202                        ; subps         %xmm10,%xmm1
13467  DB  65,15,92,201                        ; subps         %xmm9,%xmm1
13468  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
13469  DB  68,15,92,193                        ; subps         %xmm1,%xmm8
13470  DB  65,15,84,200                        ; andps         %xmm8,%xmm1
13471  DB  102,69,15,118,192                   ; pcmpeqd       %xmm8,%xmm8
13472  DB  102,69,15,254,193                   ; paddd         %xmm9,%xmm8
13473  DB  65,15,93,200                        ; minps         %xmm8,%xmm1
13474  DB  72,173                              ; lods          %ds:(%rsi),%rax
13475  DB  255,224                             ; jmpq          *%rax
13476
13477PUBLIC _sk_luminance_to_alpha_sse41
13478_sk_luminance_to_alpha_sse41 LABEL PROC
13479  DB  184,208,179,89,62                   ; mov           $0x3e59b3d0,%eax
13480  DB  102,15,110,216                      ; movd          %eax,%xmm3
13481  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13482  DB  15,89,216                           ; mulps         %xmm0,%xmm3
13483  DB  184,89,23,55,63                     ; mov           $0x3f371759,%eax
13484  DB  102,15,110,192                      ; movd          %eax,%xmm0
13485  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13486  DB  15,89,193                           ; mulps         %xmm1,%xmm0
13487  DB  15,88,195                           ; addps         %xmm3,%xmm0
13488  DB  184,152,221,147,61                  ; mov           $0x3d93dd98,%eax
13489  DB  102,15,110,216                      ; movd          %eax,%xmm3
13490  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13491  DB  15,89,218                           ; mulps         %xmm2,%xmm3
13492  DB  15,88,216                           ; addps         %xmm0,%xmm3
13493  DB  72,173                              ; lods          %ds:(%rsi),%rax
13494  DB  15,87,192                           ; xorps         %xmm0,%xmm0
13495  DB  15,87,201                           ; xorps         %xmm1,%xmm1
13496  DB  15,87,210                           ; xorps         %xmm2,%xmm2
13497  DB  255,224                             ; jmpq          *%rax
13498
13499PUBLIC _sk_matrix_2x3_sse41
13500_sk_matrix_2x3_sse41 LABEL PROC
13501  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
13502  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13503  DB  72,173                              ; lods          %ds:(%rsi),%rax
13504  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13505  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
13506  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13507  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
13508  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13509  DB  243,68,15,16,88,16                  ; movss         0x10(%rax),%xmm11
13510  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13511  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13512  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13513  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13514  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
13515  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13516  DB  243,68,15,16,80,12                  ; movss         0xc(%rax),%xmm10
13517  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13518  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
13519  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13520  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13521  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13522  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13523  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
13524  DB  72,173                              ; lods          %ds:(%rsi),%rax
13525  DB  255,224                             ; jmpq          *%rax
13526
13527PUBLIC _sk_matrix_3x4_sse41
13528_sk_matrix_3x4_sse41 LABEL PROC
13529  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
13530  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13531  DB  72,173                              ; lods          %ds:(%rsi),%rax
13532  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13533  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
13534  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13535  DB  243,68,15,16,80,12                  ; movss         0xc(%rax),%xmm10
13536  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13537  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
13538  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13539  DB  243,68,15,16,96,36                  ; movss         0x24(%rax),%xmm12
13540  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13541  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13542  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13543  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13544  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13545  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13546  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
13547  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13548  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
13549  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13550  DB  243,68,15,16,88,28                  ; movss         0x1c(%rax),%xmm11
13551  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13552  DB  243,68,15,16,96,40                  ; movss         0x28(%rax),%xmm12
13553  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13554  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13555  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13556  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13557  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13558  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13559  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
13560  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
13561  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13562  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
13563  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13564  DB  243,68,15,16,96,32                  ; movss         0x20(%rax),%xmm12
13565  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13566  DB  243,68,15,16,104,44                 ; movss         0x2c(%rax),%xmm13
13567  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13568  DB  68,15,89,226                        ; mulps         %xmm2,%xmm12
13569  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13570  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
13571  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13572  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13573  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13574  DB  72,173                              ; lods          %ds:(%rsi),%rax
13575  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
13576  DB  255,224                             ; jmpq          *%rax
13577
13578PUBLIC _sk_matrix_4x5_sse41
13579_sk_matrix_4x5_sse41 LABEL PROC
13580  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
13581  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13582  DB  72,173                              ; lods          %ds:(%rsi),%rax
13583  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13584  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
13585  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13586  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
13587  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13588  DB  243,68,15,16,88,32                  ; movss         0x20(%rax),%xmm11
13589  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13590  DB  243,68,15,16,96,48                  ; movss         0x30(%rax),%xmm12
13591  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13592  DB  243,68,15,16,104,64                 ; movss         0x40(%rax),%xmm13
13593  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13594  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
13595  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13596  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13597  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13598  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13599  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13600  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13601  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
13602  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13603  DB  243,68,15,16,80,20                  ; movss         0x14(%rax),%xmm10
13604  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13605  DB  243,68,15,16,88,36                  ; movss         0x24(%rax),%xmm11
13606  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13607  DB  243,68,15,16,96,52                  ; movss         0x34(%rax),%xmm12
13608  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13609  DB  243,68,15,16,104,68                 ; movss         0x44(%rax),%xmm13
13610  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13611  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
13612  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13613  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13614  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13615  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13616  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13617  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13618  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
13619  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
13620  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13621  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
13622  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13623  DB  243,68,15,16,96,40                  ; movss         0x28(%rax),%xmm12
13624  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13625  DB  243,68,15,16,104,56                 ; movss         0x38(%rax),%xmm13
13626  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13627  DB  243,68,15,16,112,72                 ; movss         0x48(%rax),%xmm14
13628  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
13629  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
13630  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
13631  DB  68,15,89,226                        ; mulps         %xmm2,%xmm12
13632  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13633  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
13634  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13635  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13636  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13637  DB  243,68,15,16,88,12                  ; movss         0xc(%rax),%xmm11
13638  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13639  DB  243,68,15,16,96,28                  ; movss         0x1c(%rax),%xmm12
13640  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13641  DB  243,68,15,16,104,44                 ; movss         0x2c(%rax),%xmm13
13642  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13643  DB  243,68,15,16,112,60                 ; movss         0x3c(%rax),%xmm14
13644  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
13645  DB  243,68,15,16,120,76                 ; movss         0x4c(%rax),%xmm15
13646  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
13647  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
13648  DB  69,15,88,247                        ; addps         %xmm15,%xmm14
13649  DB  68,15,89,234                        ; mulps         %xmm2,%xmm13
13650  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
13651  DB  69,15,89,225                        ; mulps         %xmm9,%xmm12
13652  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13653  DB  69,15,89,216                        ; mulps         %xmm8,%xmm11
13654  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13655  DB  72,173                              ; lods          %ds:(%rsi),%rax
13656  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
13657  DB  65,15,40,219                        ; movaps        %xmm11,%xmm3
13658  DB  255,224                             ; jmpq          *%rax
13659
13660PUBLIC _sk_matrix_perspective_sse41
13661_sk_matrix_perspective_sse41 LABEL PROC
13662  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13663  DB  72,173                              ; lods          %ds:(%rsi),%rax
13664  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13665  DB  243,68,15,16,72,4                   ; movss         0x4(%rax),%xmm9
13666  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13667  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13668  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
13669  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13670  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
13671  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13672  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13673  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
13674  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
13675  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13676  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
13677  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13678  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
13679  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13680  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
13681  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13682  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13683  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13684  DB  243,68,15,16,80,24                  ; movss         0x18(%rax),%xmm10
13685  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13686  DB  243,68,15,16,88,28                  ; movss         0x1c(%rax),%xmm11
13687  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13688  DB  243,68,15,16,96,32                  ; movss         0x20(%rax),%xmm12
13689  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13690  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
13691  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13692  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13693  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13694  DB  65,15,83,202                        ; rcpps         %xmm10,%xmm1
13695  DB  15,89,193                           ; mulps         %xmm1,%xmm0
13696  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
13697  DB  72,173                              ; lods          %ds:(%rsi),%rax
13698  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
13699  DB  255,224                             ; jmpq          *%rax
13700
13701PUBLIC _sk_linear_gradient_sse41
13702_sk_linear_gradient_sse41 LABEL PROC
13703  DB  72,173                              ; lods          %ds:(%rsi),%rax
13704  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
13705  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13706  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
13707  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13708  DB  243,68,15,16,96,24                  ; movss         0x18(%rax),%xmm12
13709  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13710  DB  243,68,15,16,104,28                 ; movss         0x1c(%rax),%xmm13
13711  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13712  DB  72,139,8                            ; mov           (%rax),%rcx
13713  DB  72,133,201                          ; test          %rcx,%rcx
13714  DB  15,132,4,1,0,0                      ; je            3b48 <_sk_linear_gradient_sse41+0x13e>
13715  DB  72,131,236,88                       ; sub           $0x58,%rsp
13716  DB  15,41,36,36                         ; movaps        %xmm4,(%rsp)
13717  DB  15,41,108,36,16                     ; movaps        %xmm5,0x10(%rsp)
13718  DB  15,41,116,36,32                     ; movaps        %xmm6,0x20(%rsp)
13719  DB  15,41,124,36,48                     ; movaps        %xmm7,0x30(%rsp)
13720  DB  72,139,64,8                         ; mov           0x8(%rax),%rax
13721  DB  72,131,192,32                       ; add           $0x20,%rax
13722  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
13723  DB  15,87,219                           ; xorps         %xmm3,%xmm3
13724  DB  15,87,210                           ; xorps         %xmm2,%xmm2
13725  DB  15,87,201                           ; xorps         %xmm1,%xmm1
13726  DB  15,40,233                           ; movaps        %xmm1,%xmm5
13727  DB  15,40,242                           ; movaps        %xmm2,%xmm6
13728  DB  15,40,251                           ; movaps        %xmm3,%xmm7
13729  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
13730  DB  69,15,40,243                        ; movaps        %xmm11,%xmm14
13731  DB  69,15,40,252                        ; movaps        %xmm12,%xmm15
13732  DB  68,15,41,108,36,64                  ; movaps        %xmm13,0x40(%rsp)
13733  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
13734  DB  243,15,16,80,224                    ; movss         -0x20(%rax),%xmm2
13735  DB  243,68,15,16,72,228                 ; movss         -0x1c(%rax),%xmm9
13736  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13737  DB  15,40,224                           ; movaps        %xmm0,%xmm4
13738  DB  15,194,194,1                        ; cmpltps       %xmm2,%xmm0
13739  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13740  DB  102,68,15,56,20,201                 ; blendvps      %xmm0,%xmm1,%xmm9
13741  DB  243,15,16,72,232                    ; movss         -0x18(%rax),%xmm1
13742  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13743  DB  102,15,56,20,205                    ; blendvps      %xmm0,%xmm5,%xmm1
13744  DB  243,15,16,80,236                    ; movss         -0x14(%rax),%xmm2
13745  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13746  DB  102,15,56,20,214                    ; blendvps      %xmm0,%xmm6,%xmm2
13747  DB  243,15,16,88,240                    ; movss         -0x10(%rax),%xmm3
13748  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13749  DB  102,15,56,20,223                    ; blendvps      %xmm0,%xmm7,%xmm3
13750  DB  243,68,15,16,80,244                 ; movss         -0xc(%rax),%xmm10
13751  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13752  DB  102,69,15,56,20,208                 ; blendvps      %xmm0,%xmm8,%xmm10
13753  DB  243,68,15,16,88,248                 ; movss         -0x8(%rax),%xmm11
13754  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13755  DB  102,69,15,56,20,222                 ; blendvps      %xmm0,%xmm14,%xmm11
13756  DB  243,68,15,16,96,252                 ; movss         -0x4(%rax),%xmm12
13757  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13758  DB  102,69,15,56,20,231                 ; blendvps      %xmm0,%xmm15,%xmm12
13759  DB  243,68,15,16,40                     ; movss         (%rax),%xmm13
13760  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13761  DB  102,68,15,56,20,108,36,64           ; blendvps      %xmm0,0x40(%rsp),%xmm13
13762  DB  15,40,196                           ; movaps        %xmm4,%xmm0
13763  DB  72,131,192,36                       ; add           $0x24,%rax
13764  DB  72,255,201                          ; dec           %rcx
13765  DB  15,133,65,255,255,255               ; jne           3a70 <_sk_linear_gradient_sse41+0x66>
13766  DB  15,40,124,36,48                     ; movaps        0x30(%rsp),%xmm7
13767  DB  15,40,116,36,32                     ; movaps        0x20(%rsp),%xmm6
13768  DB  15,40,108,36,16                     ; movaps        0x10(%rsp),%xmm5
13769  DB  15,40,36,36                         ; movaps        (%rsp),%xmm4
13770  DB  72,131,196,88                       ; add           $0x58,%rsp
13771  DB  235,13                              ; jmp           3b55 <_sk_linear_gradient_sse41+0x14b>
13772  DB  15,87,201                           ; xorps         %xmm1,%xmm1
13773  DB  15,87,210                           ; xorps         %xmm2,%xmm2
13774  DB  15,87,219                           ; xorps         %xmm3,%xmm3
13775  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
13776  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
13777  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13778  DB  15,89,200                           ; mulps         %xmm0,%xmm1
13779  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
13780  DB  15,89,208                           ; mulps         %xmm0,%xmm2
13781  DB  65,15,88,212                        ; addps         %xmm12,%xmm2
13782  DB  15,89,216                           ; mulps         %xmm0,%xmm3
13783  DB  65,15,88,221                        ; addps         %xmm13,%xmm3
13784  DB  72,173                              ; lods          %ds:(%rsi),%rax
13785  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
13786  DB  255,224                             ; jmpq          *%rax
13787
13788PUBLIC _sk_linear_gradient_2stops_sse41
13789_sk_linear_gradient_2stops_sse41 LABEL PROC
13790  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13791  DB  72,173                              ; lods          %ds:(%rsi),%rax
13792  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13793  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
13794  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13795  DB  243,15,16,80,16                     ; movss         0x10(%rax),%xmm2
13796  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13797  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13798  DB  15,88,194                           ; addps         %xmm2,%xmm0
13799  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13800  DB  243,15,16,80,20                     ; movss         0x14(%rax),%xmm2
13801  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13802  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13803  DB  15,88,202                           ; addps         %xmm2,%xmm1
13804  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
13805  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13806  DB  243,15,16,88,24                     ; movss         0x18(%rax),%xmm3
13807  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13808  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
13809  DB  15,88,211                           ; addps         %xmm3,%xmm2
13810  DB  243,15,16,88,12                     ; movss         0xc(%rax),%xmm3
13811  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13812  DB  243,68,15,16,72,28                  ; movss         0x1c(%rax),%xmm9
13813  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13814  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
13815  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
13816  DB  72,173                              ; lods          %ds:(%rsi),%rax
13817  DB  255,224                             ; jmpq          *%rax
13818
13819PUBLIC _sk_save_xy_sse41
13820_sk_save_xy_sse41 LABEL PROC
13821  DB  72,173                              ; lods          %ds:(%rsi),%rax
13822  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13823  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13824  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13825  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
13826  DB  68,15,88,200                        ; addps         %xmm0,%xmm9
13827  DB  102,69,15,58,8,209,1                ; roundps       $0x1,%xmm9,%xmm10
13828  DB  69,15,92,202                        ; subps         %xmm10,%xmm9
13829  DB  68,15,88,193                        ; addps         %xmm1,%xmm8
13830  DB  102,69,15,58,8,208,1                ; roundps       $0x1,%xmm8,%xmm10
13831  DB  69,15,92,194                        ; subps         %xmm10,%xmm8
13832  DB  15,17,0                             ; movups        %xmm0,(%rax)
13833  DB  15,17,72,32                         ; movups        %xmm1,0x20(%rax)
13834  DB  68,15,17,72,64                      ; movups        %xmm9,0x40(%rax)
13835  DB  68,15,17,64,96                      ; movups        %xmm8,0x60(%rax)
13836  DB  72,173                              ; lods          %ds:(%rsi),%rax
13837  DB  255,224                             ; jmpq          *%rax
13838
13839PUBLIC _sk_accumulate_sse41
13840_sk_accumulate_sse41 LABEL PROC
13841  DB  72,173                              ; lods          %ds:(%rsi),%rax
13842  DB  68,15,16,128,128,0,0,0              ; movups        0x80(%rax),%xmm8
13843  DB  68,15,16,136,160,0,0,0              ; movups        0xa0(%rax),%xmm9
13844  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13845  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
13846  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
13847  DB  65,15,88,224                        ; addps         %xmm8,%xmm4
13848  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
13849  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
13850  DB  65,15,88,232                        ; addps         %xmm8,%xmm5
13851  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
13852  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
13853  DB  65,15,88,240                        ; addps         %xmm8,%xmm6
13854  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
13855  DB  65,15,88,249                        ; addps         %xmm9,%xmm7
13856  DB  72,173                              ; lods          %ds:(%rsi),%rax
13857  DB  255,224                             ; jmpq          *%rax
13858
13859PUBLIC _sk_bilinear_nx_sse41
13860_sk_bilinear_nx_sse41 LABEL PROC
13861  DB  72,173                              ; lods          %ds:(%rsi),%rax
13862  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
13863  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13864  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13865  DB  15,16,0                             ; movups        (%rax),%xmm0
13866  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13867  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13868  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13869  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13870  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13871  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13872  DB  68,15,17,128,128,0,0,0              ; movups        %xmm8,0x80(%rax)
13873  DB  72,173                              ; lods          %ds:(%rsi),%rax
13874  DB  255,224                             ; jmpq          *%rax
13875
13876PUBLIC _sk_bilinear_px_sse41
13877_sk_bilinear_px_sse41 LABEL PROC
13878  DB  72,173                              ; lods          %ds:(%rsi),%rax
13879  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13880  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13881  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13882  DB  15,16,0                             ; movups        (%rax),%xmm0
13883  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13884  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13885  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
13886  DB  72,173                              ; lods          %ds:(%rsi),%rax
13887  DB  255,224                             ; jmpq          *%rax
13888
13889PUBLIC _sk_bilinear_ny_sse41
13890_sk_bilinear_ny_sse41 LABEL PROC
13891  DB  72,173                              ; lods          %ds:(%rsi),%rax
13892  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
13893  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13894  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13895  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
13896  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
13897  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
13898  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13899  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13900  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13901  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13902  DB  68,15,17,128,160,0,0,0              ; movups        %xmm8,0xa0(%rax)
13903  DB  72,173                              ; lods          %ds:(%rsi),%rax
13904  DB  255,224                             ; jmpq          *%rax
13905
13906PUBLIC _sk_bilinear_py_sse41
13907_sk_bilinear_py_sse41 LABEL PROC
13908  DB  72,173                              ; lods          %ds:(%rsi),%rax
13909  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13910  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13911  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13912  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
13913  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
13914  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
13915  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
13916  DB  72,173                              ; lods          %ds:(%rsi),%rax
13917  DB  255,224                             ; jmpq          *%rax
13918
13919PUBLIC _sk_bicubic_n3x_sse41
13920_sk_bicubic_n3x_sse41 LABEL PROC
13921  DB  72,173                              ; lods          %ds:(%rsi),%rax
13922  DB  185,0,0,192,191                     ; mov           $0xbfc00000,%ecx
13923  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13924  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13925  DB  15,16,0                             ; movups        (%rax),%xmm0
13926  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13927  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13928  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13929  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13930  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13931  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13932  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
13933  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
13934  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13935  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
13936  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13937  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13938  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13939  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
13940  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13941  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13942  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
13943  DB  72,173                              ; lods          %ds:(%rsi),%rax
13944  DB  255,224                             ; jmpq          *%rax
13945
13946PUBLIC _sk_bicubic_n1x_sse41
13947_sk_bicubic_n1x_sse41 LABEL PROC
13948  DB  72,173                              ; lods          %ds:(%rsi),%rax
13949  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
13950  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13951  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13952  DB  15,16,0                             ; movups        (%rax),%xmm0
13953  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13954  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13955  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13956  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13957  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13958  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13959  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
13960  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
13961  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13962  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
13963  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13964  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13965  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13966  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13967  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13968  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13969  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13970  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13971  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13972  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
13973  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13974  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13975  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13976  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13977  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
13978  DB  72,173                              ; lods          %ds:(%rsi),%rax
13979  DB  255,224                             ; jmpq          *%rax
13980
13981PUBLIC _sk_bicubic_p1x_sse41
13982_sk_bicubic_p1x_sse41 LABEL PROC
13983  DB  72,173                              ; lods          %ds:(%rsi),%rax
13984  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13985  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13986  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13987  DB  15,16,0                             ; movups        (%rax),%xmm0
13988  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13989  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13990  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
13991  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13992  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13993  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
13994  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
13995  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13996  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13997  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13998  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13999  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
14000  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
14001  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14002  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14003  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
14004  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
14005  DB  68,15,17,144,128,0,0,0              ; movups        %xmm10,0x80(%rax)
14006  DB  72,173                              ; lods          %ds:(%rsi),%rax
14007  DB  255,224                             ; jmpq          *%rax
14008
14009PUBLIC _sk_bicubic_p3x_sse41
14010_sk_bicubic_p3x_sse41 LABEL PROC
14011  DB  72,173                              ; lods          %ds:(%rsi),%rax
14012  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
14013  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14014  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14015  DB  15,16,0                             ; movups        (%rax),%xmm0
14016  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
14017  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
14018  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
14019  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14020  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14021  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
14022  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
14023  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
14024  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14025  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14026  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
14027  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
14028  DB  68,15,17,128,128,0,0,0              ; movups        %xmm8,0x80(%rax)
14029  DB  72,173                              ; lods          %ds:(%rsi),%rax
14030  DB  255,224                             ; jmpq          *%rax
14031
14032PUBLIC _sk_bicubic_n3y_sse41
14033_sk_bicubic_n3y_sse41 LABEL PROC
14034  DB  72,173                              ; lods          %ds:(%rsi),%rax
14035  DB  185,0,0,192,191                     ; mov           $0xbfc00000,%ecx
14036  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14037  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14038  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
14039  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
14040  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
14041  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
14042  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14043  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14044  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
14045  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
14046  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
14047  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
14048  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
14049  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14050  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14051  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14052  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
14053  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
14054  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14055  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
14056  DB  72,173                              ; lods          %ds:(%rsi),%rax
14057  DB  255,224                             ; jmpq          *%rax
14058
14059PUBLIC _sk_bicubic_n1y_sse41
14060_sk_bicubic_n1y_sse41 LABEL PROC
14061  DB  72,173                              ; lods          %ds:(%rsi),%rax
14062  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
14063  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14064  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14065  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
14066  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
14067  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
14068  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
14069  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14070  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14071  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
14072  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
14073  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
14074  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
14075  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
14076  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14077  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14078  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14079  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
14080  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
14081  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14082  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14083  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14084  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
14085  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
14086  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14087  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14088  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14089  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
14090  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
14091  DB  72,173                              ; lods          %ds:(%rsi),%rax
14092  DB  255,224                             ; jmpq          *%rax
14093
14094PUBLIC _sk_bicubic_p1y_sse41
14095_sk_bicubic_p1y_sse41 LABEL PROC
14096  DB  72,173                              ; lods          %ds:(%rsi),%rax
14097  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
14098  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14099  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14100  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
14101  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
14102  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
14103  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
14104  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14105  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14106  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
14107  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
14108  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
14109  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
14110  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
14111  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
14112  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
14113  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
14114  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14115  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14116  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
14117  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
14118  DB  68,15,17,144,160,0,0,0              ; movups        %xmm10,0xa0(%rax)
14119  DB  72,173                              ; lods          %ds:(%rsi),%rax
14120  DB  255,224                             ; jmpq          *%rax
14121
14122PUBLIC _sk_bicubic_p3y_sse41
14123_sk_bicubic_p3y_sse41 LABEL PROC
14124  DB  72,173                              ; lods          %ds:(%rsi),%rax
14125  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
14126  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14127  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14128  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
14129  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
14130  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
14131  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
14132  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14133  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14134  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
14135  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
14136  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
14137  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14138  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14139  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
14140  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
14141  DB  68,15,17,128,160,0,0,0              ; movups        %xmm8,0xa0(%rax)
14142  DB  72,173                              ; lods          %ds:(%rsi),%rax
14143  DB  255,224                             ; jmpq          *%rax
14144
14145PUBLIC _sk_callback_sse41
14146_sk_callback_sse41 LABEL PROC
14147  DB  83                                  ; push          %rbx
14148  DB  72,131,236,32                       ; sub           $0x20,%rsp
14149  DB  68,15,40,197                        ; movaps        %xmm5,%xmm8
14150  DB  68,15,40,204                        ; movaps        %xmm4,%xmm9
14151  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
14152  DB  68,15,40,218                        ; movaps        %xmm2,%xmm11
14153  DB  68,15,40,225                        ; movaps        %xmm1,%xmm12
14154  DB  68,15,40,232                        ; movaps        %xmm0,%xmm13
14155  DB  72,137,211                          ; mov           %rdx,%rbx
14156  DB  72,173                              ; lods          %ds:(%rsi),%rax
14157  DB  72,139,72,8                         ; mov           0x8(%rax),%rcx
14158  DB  186,4,0,0,0                         ; mov           $0x4,%edx
14159  DB  255,16                              ; callq         *(%rax)
14160  DB  72,173                              ; lods          %ds:(%rsi),%rax
14161  DB  72,137,218                          ; mov           %rbx,%rdx
14162  DB  65,15,40,197                        ; movaps        %xmm13,%xmm0
14163  DB  65,15,40,204                        ; movaps        %xmm12,%xmm1
14164  DB  65,15,40,211                        ; movaps        %xmm11,%xmm2
14165  DB  65,15,40,218                        ; movaps        %xmm10,%xmm3
14166  DB  65,15,40,225                        ; movaps        %xmm9,%xmm4
14167  DB  65,15,40,232                        ; movaps        %xmm8,%xmm5
14168  DB  72,131,196,32                       ; add           $0x20,%rsp
14169  DB  91                                  ; pop           %rbx
14170  DB  255,224                             ; jmpq          *%rax
14171
14172PUBLIC _sk_start_pipeline_sse2
14173_sk_start_pipeline_sse2 LABEL PROC
14174  DB  65,87                               ; push          %r15
14175  DB  65,86                               ; push          %r14
14176  DB  65,85                               ; push          %r13
14177  DB  65,84                               ; push          %r12
14178  DB  86                                  ; push          %rsi
14179  DB  87                                  ; push          %rdi
14180  DB  83                                  ; push          %rbx
14181  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
14182  DB  68,15,41,188,36,144,0,0,0           ; movaps        %xmm15,0x90(%rsp)
14183  DB  68,15,41,180,36,128,0,0,0           ; movaps        %xmm14,0x80(%rsp)
14184  DB  68,15,41,108,36,112                 ; movaps        %xmm13,0x70(%rsp)
14185  DB  68,15,41,100,36,96                  ; movaps        %xmm12,0x60(%rsp)
14186  DB  68,15,41,92,36,80                   ; movaps        %xmm11,0x50(%rsp)
14187  DB  68,15,41,84,36,64                   ; movaps        %xmm10,0x40(%rsp)
14188  DB  68,15,41,76,36,48                   ; movaps        %xmm9,0x30(%rsp)
14189  DB  68,15,41,68,36,32                   ; movaps        %xmm8,0x20(%rsp)
14190  DB  15,41,124,36,16                     ; movaps        %xmm7,0x10(%rsp)
14191  DB  15,41,52,36                         ; movaps        %xmm6,(%rsp)
14192  DB  77,137,207                          ; mov           %r9,%r15
14193  DB  77,137,198                          ; mov           %r8,%r14
14194  DB  72,137,203                          ; mov           %rcx,%rbx
14195  DB  72,137,214                          ; mov           %rdx,%rsi
14196  DB  72,173                              ; lods          %ds:(%rsi),%rax
14197  DB  73,137,196                          ; mov           %rax,%r12
14198  DB  73,137,245                          ; mov           %rsi,%r13
14199  DB  72,141,67,4                         ; lea           0x4(%rbx),%rax
14200  DB  76,57,248                           ; cmp           %r15,%rax
14201  DB  118,5                               ; jbe           73 <_sk_start_pipeline_sse2+0x73>
14202  DB  72,137,216                          ; mov           %rbx,%rax
14203  DB  235,52                              ; jmp           a7 <_sk_start_pipeline_sse2+0xa7>
14204  DB  15,87,192                           ; xorps         %xmm0,%xmm0
14205  DB  15,87,201                           ; xorps         %xmm1,%xmm1
14206  DB  15,87,210                           ; xorps         %xmm2,%xmm2
14207  DB  15,87,219                           ; xorps         %xmm3,%xmm3
14208  DB  15,87,228                           ; xorps         %xmm4,%xmm4
14209  DB  15,87,237                           ; xorps         %xmm5,%xmm5
14210  DB  15,87,246                           ; xorps         %xmm6,%xmm6
14211  DB  15,87,255                           ; xorps         %xmm7,%xmm7
14212  DB  72,137,223                          ; mov           %rbx,%rdi
14213  DB  76,137,238                          ; mov           %r13,%rsi
14214  DB  76,137,242                          ; mov           %r14,%rdx
14215  DB  65,255,212                          ; callq         *%r12
14216  DB  72,141,67,4                         ; lea           0x4(%rbx),%rax
14217  DB  72,131,195,8                        ; add           $0x8,%rbx
14218  DB  76,57,251                           ; cmp           %r15,%rbx
14219  DB  72,137,195                          ; mov           %rax,%rbx
14220  DB  118,204                             ; jbe           73 <_sk_start_pipeline_sse2+0x73>
14221  DB  15,40,52,36                         ; movaps        (%rsp),%xmm6
14222  DB  15,40,124,36,16                     ; movaps        0x10(%rsp),%xmm7
14223  DB  68,15,40,68,36,32                   ; movaps        0x20(%rsp),%xmm8
14224  DB  68,15,40,76,36,48                   ; movaps        0x30(%rsp),%xmm9
14225  DB  68,15,40,84,36,64                   ; movaps        0x40(%rsp),%xmm10
14226  DB  68,15,40,92,36,80                   ; movaps        0x50(%rsp),%xmm11
14227  DB  68,15,40,100,36,96                  ; movaps        0x60(%rsp),%xmm12
14228  DB  68,15,40,108,36,112                 ; movaps        0x70(%rsp),%xmm13
14229  DB  68,15,40,180,36,128,0,0,0           ; movaps        0x80(%rsp),%xmm14
14230  DB  68,15,40,188,36,144,0,0,0           ; movaps        0x90(%rsp),%xmm15
14231  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
14232  DB  91                                  ; pop           %rbx
14233  DB  95                                  ; pop           %rdi
14234  DB  94                                  ; pop           %rsi
14235  DB  65,92                               ; pop           %r12
14236  DB  65,93                               ; pop           %r13
14237  DB  65,94                               ; pop           %r14
14238  DB  65,95                               ; pop           %r15
14239  DB  195                                 ; retq
14240
14241PUBLIC _sk_just_return_sse2
14242_sk_just_return_sse2 LABEL PROC
14243  DB  195                                 ; retq
14244
14245PUBLIC _sk_seed_shader_sse2
14246_sk_seed_shader_sse2 LABEL PROC
14247  DB  72,173                              ; lods          %ds:(%rsi),%rax
14248  DB  102,15,110,199                      ; movd          %edi,%xmm0
14249  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
14250  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
14251  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
14252  DB  102,15,110,209                      ; movd          %ecx,%xmm2
14253  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14254  DB  15,88,202                           ; addps         %xmm2,%xmm1
14255  DB  15,16,2                             ; movups        (%rdx),%xmm0
14256  DB  15,88,193                           ; addps         %xmm1,%xmm0
14257  DB  102,15,110,8                        ; movd          (%rax),%xmm1
14258  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
14259  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
14260  DB  15,88,202                           ; addps         %xmm2,%xmm1
14261  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14262  DB  102,15,110,208                      ; movd          %eax,%xmm2
14263  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14264  DB  72,173                              ; lods          %ds:(%rsi),%rax
14265  DB  15,87,219                           ; xorps         %xmm3,%xmm3
14266  DB  15,87,228                           ; xorps         %xmm4,%xmm4
14267  DB  15,87,237                           ; xorps         %xmm5,%xmm5
14268  DB  15,87,246                           ; xorps         %xmm6,%xmm6
14269  DB  15,87,255                           ; xorps         %xmm7,%xmm7
14270  DB  255,224                             ; jmpq          *%rax
14271
14272PUBLIC _sk_constant_color_sse2
14273_sk_constant_color_sse2 LABEL PROC
14274  DB  72,173                              ; lods          %ds:(%rsi),%rax
14275  DB  243,15,16,0                         ; movss         (%rax),%xmm0
14276  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
14277  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
14278  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
14279  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
14280  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14281  DB  243,15,16,88,12                     ; movss         0xc(%rax),%xmm3
14282  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
14283  DB  72,173                              ; lods          %ds:(%rsi),%rax
14284  DB  255,224                             ; jmpq          *%rax
14285
14286PUBLIC _sk_clear_sse2
14287_sk_clear_sse2 LABEL PROC
14288  DB  72,173                              ; lods          %ds:(%rsi),%rax
14289  DB  15,87,192                           ; xorps         %xmm0,%xmm0
14290  DB  15,87,201                           ; xorps         %xmm1,%xmm1
14291  DB  15,87,210                           ; xorps         %xmm2,%xmm2
14292  DB  15,87,219                           ; xorps         %xmm3,%xmm3
14293  DB  255,224                             ; jmpq          *%rax
14294
14295PUBLIC _sk_srcatop_sse2
14296_sk_srcatop_sse2 LABEL PROC
14297  DB  15,89,199                           ; mulps         %xmm7,%xmm0
14298  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14299  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14300  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14301  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14302  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14303  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
14304  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
14305  DB  15,89,207                           ; mulps         %xmm7,%xmm1
14306  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14307  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14308  DB  65,15,88,201                        ; addps         %xmm9,%xmm1
14309  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14310  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14311  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14312  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
14313  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14314  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14315  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
14316  DB  72,173                              ; lods          %ds:(%rsi),%rax
14317  DB  255,224                             ; jmpq          *%rax
14318
14319PUBLIC _sk_dstatop_sse2
14320_sk_dstatop_sse2 LABEL PROC
14321  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14322  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
14323  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14324  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
14325  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
14326  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
14327  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
14328  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
14329  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14330  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
14331  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
14332  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
14333  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14334  DB  68,15,89,198                        ; mulps         %xmm6,%xmm8
14335  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
14336  DB  65,15,88,208                        ; addps         %xmm8,%xmm2
14337  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
14338  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14339  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
14340  DB  72,173                              ; lods          %ds:(%rsi),%rax
14341  DB  255,224                             ; jmpq          *%rax
14342
14343PUBLIC _sk_srcin_sse2
14344_sk_srcin_sse2 LABEL PROC
14345  DB  15,89,199                           ; mulps         %xmm7,%xmm0
14346  DB  15,89,207                           ; mulps         %xmm7,%xmm1
14347  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14348  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14349  DB  72,173                              ; lods          %ds:(%rsi),%rax
14350  DB  255,224                             ; jmpq          *%rax
14351
14352PUBLIC _sk_dstin_sse2
14353_sk_dstin_sse2 LABEL PROC
14354  DB  15,40,195                           ; movaps        %xmm3,%xmm0
14355  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14356  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14357  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14358  DB  15,40,211                           ; movaps        %xmm3,%xmm2
14359  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14360  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14361  DB  72,173                              ; lods          %ds:(%rsi),%rax
14362  DB  255,224                             ; jmpq          *%rax
14363
14364PUBLIC _sk_srcout_sse2
14365_sk_srcout_sse2 LABEL PROC
14366  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14367  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14368  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14369  DB  68,15,92,199                        ; subps         %xmm7,%xmm8
14370  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
14371  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
14372  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
14373  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
14374  DB  72,173                              ; lods          %ds:(%rsi),%rax
14375  DB  255,224                             ; jmpq          *%rax
14376
14377PUBLIC _sk_dstout_sse2
14378_sk_dstout_sse2 LABEL PROC
14379  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14380  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14381  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14382  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14383  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
14384  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14385  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14386  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14387  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14388  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14389  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14390  DB  72,173                              ; lods          %ds:(%rsi),%rax
14391  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
14392  DB  255,224                             ; jmpq          *%rax
14393
14394PUBLIC _sk_srcover_sse2
14395_sk_srcover_sse2 LABEL PROC
14396  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14397  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14398  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14399  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14400  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14401  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
14402  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
14403  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14404  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14405  DB  65,15,88,201                        ; addps         %xmm9,%xmm1
14406  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14407  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14408  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
14409  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14410  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
14411  DB  72,173                              ; lods          %ds:(%rsi),%rax
14412  DB  255,224                             ; jmpq          *%rax
14413
14414PUBLIC _sk_dstover_sse2
14415_sk_dstover_sse2 LABEL PROC
14416  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14417  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14418  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14419  DB  68,15,92,199                        ; subps         %xmm7,%xmm8
14420  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
14421  DB  15,88,196                           ; addps         %xmm4,%xmm0
14422  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
14423  DB  15,88,205                           ; addps         %xmm5,%xmm1
14424  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
14425  DB  15,88,214                           ; addps         %xmm6,%xmm2
14426  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
14427  DB  15,88,223                           ; addps         %xmm7,%xmm3
14428  DB  72,173                              ; lods          %ds:(%rsi),%rax
14429  DB  255,224                             ; jmpq          *%rax
14430
14431PUBLIC _sk_modulate_sse2
14432_sk_modulate_sse2 LABEL PROC
14433  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14434  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14435  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14436  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14437  DB  72,173                              ; lods          %ds:(%rsi),%rax
14438  DB  255,224                             ; jmpq          *%rax
14439
14440PUBLIC _sk_multiply_sse2
14441_sk_multiply_sse2 LABEL PROC
14442  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14443  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14444  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14445  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14446  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
14447  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
14448  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
14449  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14450  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
14451  DB  68,15,89,220                        ; mulps         %xmm4,%xmm11
14452  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
14453  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14454  DB  65,15,88,195                        ; addps         %xmm11,%xmm0
14455  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
14456  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
14457  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
14458  DB  68,15,89,221                        ; mulps         %xmm5,%xmm11
14459  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
14460  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14461  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
14462  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
14463  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
14464  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
14465  DB  68,15,89,222                        ; mulps         %xmm6,%xmm11
14466  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
14467  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14468  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
14469  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
14470  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14471  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
14472  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14473  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
14474  DB  72,173                              ; lods          %ds:(%rsi),%rax
14475  DB  255,224                             ; jmpq          *%rax
14476
14477PUBLIC _sk_plus__sse2
14478_sk_plus__sse2 LABEL PROC
14479  DB  15,88,196                           ; addps         %xmm4,%xmm0
14480  DB  15,88,205                           ; addps         %xmm5,%xmm1
14481  DB  15,88,214                           ; addps         %xmm6,%xmm2
14482  DB  15,88,223                           ; addps         %xmm7,%xmm3
14483  DB  72,173                              ; lods          %ds:(%rsi),%rax
14484  DB  255,224                             ; jmpq          *%rax
14485
14486PUBLIC _sk_screen_sse2
14487_sk_screen_sse2 LABEL PROC
14488  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
14489  DB  68,15,88,196                        ; addps         %xmm4,%xmm8
14490  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14491  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
14492  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
14493  DB  68,15,88,205                        ; addps         %xmm5,%xmm9
14494  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14495  DB  68,15,92,201                        ; subps         %xmm1,%xmm9
14496  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
14497  DB  68,15,88,214                        ; addps         %xmm6,%xmm10
14498  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14499  DB  68,15,92,210                        ; subps         %xmm2,%xmm10
14500  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
14501  DB  68,15,88,223                        ; addps         %xmm7,%xmm11
14502  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14503  DB  68,15,92,219                        ; subps         %xmm3,%xmm11
14504  DB  72,173                              ; lods          %ds:(%rsi),%rax
14505  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
14506  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
14507  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
14508  DB  65,15,40,219                        ; movaps        %xmm11,%xmm3
14509  DB  255,224                             ; jmpq          *%rax
14510
14511PUBLIC _sk_xor__sse2
14512_sk_xor__sse2 LABEL PROC
14513  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14514  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14515  DB  102,15,110,216                      ; movd          %eax,%xmm3
14516  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
14517  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14518  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
14519  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
14520  DB  65,15,92,216                        ; subps         %xmm8,%xmm3
14521  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
14522  DB  68,15,89,212                        ; mulps         %xmm4,%xmm10
14523  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
14524  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
14525  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
14526  DB  68,15,89,213                        ; mulps         %xmm5,%xmm10
14527  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
14528  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
14529  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
14530  DB  68,15,89,214                        ; mulps         %xmm6,%xmm10
14531  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
14532  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14533  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14534  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
14535  DB  72,173                              ; lods          %ds:(%rsi),%rax
14536  DB  255,224                             ; jmpq          *%rax
14537
14538PUBLIC _sk_darken_sse2
14539_sk_darken_sse2 LABEL PROC
14540  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14541  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
14542  DB  15,88,196                           ; addps         %xmm4,%xmm0
14543  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
14544  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14545  DB  15,89,204                           ; mulps         %xmm4,%xmm1
14546  DB  68,15,95,201                        ; maxps         %xmm1,%xmm9
14547  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
14548  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14549  DB  15,88,205                           ; addps         %xmm5,%xmm1
14550  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14551  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14552  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14553  DB  69,15,95,193                        ; maxps         %xmm9,%xmm8
14554  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
14555  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
14556  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14557  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14558  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14559  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14560  DB  65,15,95,209                        ; maxps         %xmm9,%xmm2
14561  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
14562  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14563  DB  102,15,110,208                      ; movd          %eax,%xmm2
14564  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14565  DB  15,92,211                           ; subps         %xmm3,%xmm2
14566  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14567  DB  15,88,218                           ; addps         %xmm2,%xmm3
14568  DB  72,173                              ; lods          %ds:(%rsi),%rax
14569  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14570  DB  255,224                             ; jmpq          *%rax
14571
14572PUBLIC _sk_lighten_sse2
14573_sk_lighten_sse2 LABEL PROC
14574  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14575  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
14576  DB  15,88,196                           ; addps         %xmm4,%xmm0
14577  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
14578  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14579  DB  15,89,204                           ; mulps         %xmm4,%xmm1
14580  DB  68,15,93,201                        ; minps         %xmm1,%xmm9
14581  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
14582  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14583  DB  15,88,205                           ; addps         %xmm5,%xmm1
14584  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14585  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14586  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14587  DB  69,15,93,193                        ; minps         %xmm9,%xmm8
14588  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
14589  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
14590  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14591  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14592  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14593  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14594  DB  65,15,93,209                        ; minps         %xmm9,%xmm2
14595  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
14596  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14597  DB  102,15,110,208                      ; movd          %eax,%xmm2
14598  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14599  DB  15,92,211                           ; subps         %xmm3,%xmm2
14600  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14601  DB  15,88,218                           ; addps         %xmm2,%xmm3
14602  DB  72,173                              ; lods          %ds:(%rsi),%rax
14603  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14604  DB  255,224                             ; jmpq          *%rax
14605
14606PUBLIC _sk_difference_sse2
14607_sk_difference_sse2 LABEL PROC
14608  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14609  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
14610  DB  15,88,196                           ; addps         %xmm4,%xmm0
14611  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
14612  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14613  DB  15,89,204                           ; mulps         %xmm4,%xmm1
14614  DB  68,15,93,201                        ; minps         %xmm1,%xmm9
14615  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
14616  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
14617  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14618  DB  15,88,205                           ; addps         %xmm5,%xmm1
14619  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14620  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14621  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14622  DB  69,15,93,193                        ; minps         %xmm9,%xmm8
14623  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
14624  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
14625  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
14626  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14627  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14628  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14629  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14630  DB  65,15,93,209                        ; minps         %xmm9,%xmm2
14631  DB  15,88,210                           ; addps         %xmm2,%xmm2
14632  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
14633  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14634  DB  102,15,110,208                      ; movd          %eax,%xmm2
14635  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14636  DB  15,92,211                           ; subps         %xmm3,%xmm2
14637  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14638  DB  15,88,218                           ; addps         %xmm2,%xmm3
14639  DB  72,173                              ; lods          %ds:(%rsi),%rax
14640  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14641  DB  255,224                             ; jmpq          *%rax
14642
14643PUBLIC _sk_exclusion_sse2
14644_sk_exclusion_sse2 LABEL PROC
14645  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14646  DB  15,40,200                           ; movaps        %xmm0,%xmm1
14647  DB  15,88,196                           ; addps         %xmm4,%xmm0
14648  DB  15,89,204                           ; mulps         %xmm4,%xmm1
14649  DB  15,88,201                           ; addps         %xmm1,%xmm1
14650  DB  15,92,193                           ; subps         %xmm1,%xmm0
14651  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14652  DB  15,88,205                           ; addps         %xmm5,%xmm1
14653  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
14654  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
14655  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
14656  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
14657  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14658  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14659  DB  15,88,210                           ; addps         %xmm2,%xmm2
14660  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
14661  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14662  DB  102,15,110,208                      ; movd          %eax,%xmm2
14663  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14664  DB  15,92,211                           ; subps         %xmm3,%xmm2
14665  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14666  DB  15,88,218                           ; addps         %xmm2,%xmm3
14667  DB  72,173                              ; lods          %ds:(%rsi),%rax
14668  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14669  DB  255,224                             ; jmpq          *%rax
14670
14671PUBLIC _sk_colorburn_sse2
14672_sk_colorburn_sse2 LABEL PROC
14673  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14674  DB  68,15,40,224                        ; movaps        %xmm0,%xmm12
14675  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14676  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
14677  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
14678  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
14679  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
14680  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
14681  DB  65,15,89,196                        ; mulps         %xmm12,%xmm0
14682  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
14683  DB  15,40,207                           ; movaps        %xmm7,%xmm1
14684  DB  15,92,204                           ; subps         %xmm4,%xmm1
14685  DB  15,89,203                           ; mulps         %xmm3,%xmm1
14686  DB  65,15,94,204                        ; divps         %xmm12,%xmm1
14687  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14688  DB  68,15,93,233                        ; minps         %xmm1,%xmm13
14689  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
14690  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
14691  DB  65,15,40,204                        ; movaps        %xmm12,%xmm1
14692  DB  65,15,194,202,0                     ; cmpeqps       %xmm10,%xmm1
14693  DB  68,15,92,203                        ; subps         %xmm3,%xmm9
14694  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
14695  DB  68,15,88,240                        ; addps         %xmm0,%xmm14
14696  DB  68,15,84,225                        ; andps         %xmm1,%xmm12
14697  DB  65,15,85,206                        ; andnps        %xmm14,%xmm1
14698  DB  69,15,40,233                        ; movaps        %xmm9,%xmm13
14699  DB  68,15,89,236                        ; mulps         %xmm4,%xmm13
14700  DB  15,88,196                           ; addps         %xmm4,%xmm0
14701  DB  65,15,86,204                        ; orps          %xmm12,%xmm1
14702  DB  68,15,40,228                        ; movaps        %xmm4,%xmm12
14703  DB  68,15,194,231,0                     ; cmpeqps       %xmm7,%xmm12
14704  DB  65,15,88,205                        ; addps         %xmm13,%xmm1
14705  DB  65,15,84,196                        ; andps         %xmm12,%xmm0
14706  DB  68,15,85,225                        ; andnps        %xmm1,%xmm12
14707  DB  65,15,86,196                        ; orps          %xmm12,%xmm0
14708  DB  65,15,40,203                        ; movaps        %xmm11,%xmm1
14709  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
14710  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
14711  DB  68,15,92,229                        ; subps         %xmm5,%xmm12
14712  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
14713  DB  69,15,94,224                        ; divps         %xmm8,%xmm12
14714  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14715  DB  69,15,93,236                        ; minps         %xmm12,%xmm13
14716  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
14717  DB  69,15,92,229                        ; subps         %xmm13,%xmm12
14718  DB  69,15,40,232                        ; movaps        %xmm8,%xmm13
14719  DB  69,15,194,234,0                     ; cmpeqps       %xmm10,%xmm13
14720  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
14721  DB  68,15,88,225                        ; addps         %xmm1,%xmm12
14722  DB  69,15,84,197                        ; andps         %xmm13,%xmm8
14723  DB  69,15,85,236                        ; andnps        %xmm12,%xmm13
14724  DB  69,15,86,232                        ; orps          %xmm8,%xmm13
14725  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
14726  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
14727  DB  15,88,205                           ; addps         %xmm5,%xmm1
14728  DB  69,15,88,232                        ; addps         %xmm8,%xmm13
14729  DB  68,15,40,197                        ; movaps        %xmm5,%xmm8
14730  DB  68,15,194,199,0                     ; cmpeqps       %xmm7,%xmm8
14731  DB  65,15,84,200                        ; andps         %xmm8,%xmm1
14732  DB  69,15,85,197                        ; andnps        %xmm13,%xmm8
14733  DB  65,15,86,200                        ; orps          %xmm8,%xmm1
14734  DB  68,15,40,199                        ; movaps        %xmm7,%xmm8
14735  DB  68,15,92,198                        ; subps         %xmm6,%xmm8
14736  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
14737  DB  68,15,94,194                        ; divps         %xmm2,%xmm8
14738  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
14739  DB  69,15,93,224                        ; minps         %xmm8,%xmm12
14740  DB  68,15,40,199                        ; movaps        %xmm7,%xmm8
14741  DB  69,15,92,196                        ; subps         %xmm12,%xmm8
14742  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
14743  DB  68,15,194,210,0                     ; cmpeqps       %xmm2,%xmm10
14744  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
14745  DB  69,15,88,195                        ; addps         %xmm11,%xmm8
14746  DB  65,15,84,210                        ; andps         %xmm10,%xmm2
14747  DB  69,15,85,208                        ; andnps        %xmm8,%xmm10
14748  DB  69,15,40,195                        ; movaps        %xmm11,%xmm8
14749  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14750  DB  68,15,86,210                        ; orps          %xmm2,%xmm10
14751  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
14752  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14753  DB  68,15,88,210                        ; addps         %xmm2,%xmm10
14754  DB  15,40,214                           ; movaps        %xmm6,%xmm2
14755  DB  15,194,215,0                        ; cmpeqps       %xmm7,%xmm2
14756  DB  68,15,84,194                        ; andps         %xmm2,%xmm8
14757  DB  65,15,85,210                        ; andnps        %xmm10,%xmm2
14758  DB  68,15,86,194                        ; orps          %xmm2,%xmm8
14759  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
14760  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
14761  DB  72,173                              ; lods          %ds:(%rsi),%rax
14762  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14763  DB  255,224                             ; jmpq          *%rax
14764
14765PUBLIC _sk_colordodge_sse2
14766_sk_colordodge_sse2 LABEL PROC
14767  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
14768  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14769  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
14770  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14771  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
14772  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
14773  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
14774  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
14775  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14776  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
14777  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
14778  DB  69,15,92,225                        ; subps         %xmm9,%xmm12
14779  DB  69,15,94,196                        ; divps         %xmm12,%xmm8
14780  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
14781  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14782  DB  69,15,93,232                        ; minps         %xmm8,%xmm13
14783  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
14784  DB  68,15,194,243,0                     ; cmpeqps       %xmm3,%xmm14
14785  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
14786  DB  68,15,88,232                        ; addps         %xmm0,%xmm13
14787  DB  69,15,84,206                        ; andps         %xmm14,%xmm9
14788  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
14789  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
14790  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
14791  DB  69,15,86,241                        ; orps          %xmm9,%xmm14
14792  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
14793  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
14794  DB  15,88,196                           ; addps         %xmm4,%xmm0
14795  DB  69,15,88,241                        ; addps         %xmm9,%xmm14
14796  DB  68,15,40,204                        ; movaps        %xmm4,%xmm9
14797  DB  69,15,194,200,0                     ; cmpeqps       %xmm8,%xmm9
14798  DB  65,15,84,193                        ; andps         %xmm9,%xmm0
14799  DB  69,15,85,206                        ; andnps        %xmm14,%xmm9
14800  DB  65,15,86,193                        ; orps          %xmm9,%xmm0
14801  DB  68,15,40,235                        ; movaps        %xmm3,%xmm13
14802  DB  68,15,89,237                        ; mulps         %xmm5,%xmm13
14803  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14804  DB  68,15,92,201                        ; subps         %xmm1,%xmm9
14805  DB  69,15,94,233                        ; divps         %xmm9,%xmm13
14806  DB  69,15,40,203                        ; movaps        %xmm11,%xmm9
14807  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
14808  DB  69,15,93,229                        ; minps         %xmm13,%xmm12
14809  DB  68,15,40,233                        ; movaps        %xmm1,%xmm13
14810  DB  68,15,194,235,0                     ; cmpeqps       %xmm3,%xmm13
14811  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
14812  DB  69,15,88,225                        ; addps         %xmm9,%xmm12
14813  DB  65,15,84,205                        ; andps         %xmm13,%xmm1
14814  DB  69,15,85,236                        ; andnps        %xmm12,%xmm13
14815  DB  68,15,86,233                        ; orps          %xmm1,%xmm13
14816  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
14817  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14818  DB  68,15,88,205                        ; addps         %xmm5,%xmm9
14819  DB  68,15,88,233                        ; addps         %xmm1,%xmm13
14820  DB  15,40,205                           ; movaps        %xmm5,%xmm1
14821  DB  65,15,194,200,0                     ; cmpeqps       %xmm8,%xmm1
14822  DB  68,15,84,201                        ; andps         %xmm1,%xmm9
14823  DB  65,15,85,205                        ; andnps        %xmm13,%xmm1
14824  DB  68,15,86,201                        ; orps          %xmm1,%xmm9
14825  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
14826  DB  68,15,89,230                        ; mulps         %xmm6,%xmm12
14827  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14828  DB  15,92,202                           ; subps         %xmm2,%xmm1
14829  DB  68,15,94,225                        ; divps         %xmm1,%xmm12
14830  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14831  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
14832  DB  69,15,93,236                        ; minps         %xmm12,%xmm13
14833  DB  15,40,202                           ; movaps        %xmm2,%xmm1
14834  DB  15,194,203,0                        ; cmpeqps       %xmm3,%xmm1
14835  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
14836  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
14837  DB  15,84,209                           ; andps         %xmm1,%xmm2
14838  DB  65,15,85,205                        ; andnps        %xmm13,%xmm1
14839  DB  15,86,202                           ; orps          %xmm2,%xmm1
14840  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
14841  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14842  DB  15,88,202                           ; addps         %xmm2,%xmm1
14843  DB  68,15,194,198,0                     ; cmpeqps       %xmm6,%xmm8
14844  DB  68,15,88,222                        ; addps         %xmm6,%xmm11
14845  DB  69,15,84,216                        ; andps         %xmm8,%xmm11
14846  DB  68,15,85,193                        ; andnps        %xmm1,%xmm8
14847  DB  69,15,86,195                        ; orps          %xmm11,%xmm8
14848  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
14849  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
14850  DB  72,173                              ; lods          %ds:(%rsi),%rax
14851  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
14852  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14853  DB  255,224                             ; jmpq          *%rax
14854
14855PUBLIC _sk_hardlight_sse2
14856_sk_hardlight_sse2 LABEL PROC
14857  DB  72,131,236,24                       ; sub           $0x18,%rsp
14858  DB  15,41,52,36                         ; movaps        %xmm6,(%rsp)
14859  DB  15,40,245                           ; movaps        %xmm5,%xmm6
14860  DB  15,40,236                           ; movaps        %xmm4,%xmm5
14861  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14862  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
14863  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
14864  DB  69,15,40,211                        ; movaps        %xmm11,%xmm10
14865  DB  68,15,92,215                        ; subps         %xmm7,%xmm10
14866  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
14867  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
14868  DB  68,15,92,219                        ; subps         %xmm3,%xmm11
14869  DB  69,15,40,203                        ; movaps        %xmm11,%xmm9
14870  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14871  DB  69,15,88,200                        ; addps         %xmm8,%xmm9
14872  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14873  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
14874  DB  15,40,227                           ; movaps        %xmm3,%xmm4
14875  DB  15,89,231                           ; mulps         %xmm7,%xmm4
14876  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14877  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
14878  DB  68,15,40,255                        ; movaps        %xmm7,%xmm15
14879  DB  68,15,92,253                        ; subps         %xmm5,%xmm15
14880  DB  69,15,89,248                        ; mulps         %xmm8,%xmm15
14881  DB  69,15,88,255                        ; addps         %xmm15,%xmm15
14882  DB  68,15,40,228                        ; movaps        %xmm4,%xmm12
14883  DB  69,15,92,231                        ; subps         %xmm15,%xmm12
14884  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
14885  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
14886  DB  68,15,194,195,2                     ; cmpleps       %xmm3,%xmm8
14887  DB  15,89,197                           ; mulps         %xmm5,%xmm0
14888  DB  15,88,192                           ; addps         %xmm0,%xmm0
14889  DB  65,15,84,192                        ; andps         %xmm8,%xmm0
14890  DB  69,15,85,196                        ; andnps        %xmm12,%xmm8
14891  DB  68,15,86,192                        ; orps          %xmm0,%xmm8
14892  DB  69,15,40,251                        ; movaps        %xmm11,%xmm15
14893  DB  69,15,40,227                        ; movaps        %xmm11,%xmm12
14894  DB  68,15,89,223                        ; mulps         %xmm7,%xmm11
14895  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
14896  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
14897  DB  15,89,193                           ; mulps         %xmm1,%xmm0
14898  DB  68,15,89,254                        ; mulps         %xmm6,%xmm15
14899  DB  68,15,88,248                        ; addps         %xmm0,%xmm15
14900  DB  15,40,195                           ; movaps        %xmm3,%xmm0
14901  DB  15,92,193                           ; subps         %xmm1,%xmm0
14902  DB  68,15,92,238                        ; subps         %xmm6,%xmm13
14903  DB  68,15,89,232                        ; mulps         %xmm0,%xmm13
14904  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
14905  DB  15,40,196                           ; movaps        %xmm4,%xmm0
14906  DB  65,15,92,197                        ; subps         %xmm13,%xmm0
14907  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
14908  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
14909  DB  68,15,194,203,2                     ; cmpleps       %xmm3,%xmm9
14910  DB  15,89,206                           ; mulps         %xmm6,%xmm1
14911  DB  15,88,201                           ; addps         %xmm1,%xmm1
14912  DB  65,15,84,201                        ; andps         %xmm9,%xmm1
14913  DB  68,15,85,200                        ; andnps        %xmm0,%xmm9
14914  DB  68,15,86,201                        ; orps          %xmm1,%xmm9
14915  DB  69,15,88,207                        ; addps         %xmm15,%xmm9
14916  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
14917  DB  68,15,40,44,36                      ; movaps        (%rsp),%xmm13
14918  DB  69,15,89,229                        ; mulps         %xmm13,%xmm12
14919  DB  69,15,88,226                        ; addps         %xmm10,%xmm12
14920  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
14921  DB  69,15,88,210                        ; addps         %xmm10,%xmm10
14922  DB  68,15,194,211,2                     ; cmpleps       %xmm3,%xmm10
14923  DB  15,40,195                           ; movaps        %xmm3,%xmm0
14924  DB  15,92,194                           ; subps         %xmm2,%xmm0
14925  DB  65,15,89,213                        ; mulps         %xmm13,%xmm2
14926  DB  15,88,210                           ; addps         %xmm2,%xmm2
14927  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
14928  DB  68,15,89,240                        ; mulps         %xmm0,%xmm14
14929  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
14930  DB  65,15,92,230                        ; subps         %xmm14,%xmm4
14931  DB  65,15,84,210                        ; andps         %xmm10,%xmm2
14932  DB  68,15,85,212                        ; andnps        %xmm4,%xmm10
14933  DB  68,15,86,210                        ; orps          %xmm2,%xmm10
14934  DB  69,15,88,212                        ; addps         %xmm12,%xmm10
14935  DB  65,15,88,219                        ; addps         %xmm11,%xmm3
14936  DB  72,173                              ; lods          %ds:(%rsi),%rax
14937  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
14938  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
14939  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
14940  DB  15,40,229                           ; movaps        %xmm5,%xmm4
14941  DB  15,40,238                           ; movaps        %xmm6,%xmm5
14942  DB  65,15,40,245                        ; movaps        %xmm13,%xmm6
14943  DB  72,131,196,24                       ; add           $0x18,%rsp
14944  DB  255,224                             ; jmpq          *%rax
14945
14946PUBLIC _sk_overlay_sse2
14947_sk_overlay_sse2 LABEL PROC
14948  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14949  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14950  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14951  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14952  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
14953  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
14954  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
14955  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14956  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
14957  DB  68,15,89,220                        ; mulps         %xmm4,%xmm11
14958  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
14959  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
14960  DB  68,15,92,224                        ; subps         %xmm0,%xmm12
14961  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14962  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14963  DB  68,15,92,236                        ; subps         %xmm4,%xmm13
14964  DB  68,15,40,244                        ; movaps        %xmm4,%xmm14
14965  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
14966  DB  68,15,194,247,2                     ; cmpleps       %xmm7,%xmm14
14967  DB  15,88,192                           ; addps         %xmm0,%xmm0
14968  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
14969  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
14970  DB  69,15,89,236                        ; mulps         %xmm12,%xmm13
14971  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
14972  DB  69,15,40,226                        ; movaps        %xmm10,%xmm12
14973  DB  69,15,92,229                        ; subps         %xmm13,%xmm12
14974  DB  65,15,84,198                        ; andps         %xmm14,%xmm0
14975  DB  69,15,85,244                        ; andnps        %xmm12,%xmm14
14976  DB  65,15,86,198                        ; orps          %xmm14,%xmm0
14977  DB  65,15,88,195                        ; addps         %xmm11,%xmm0
14978  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
14979  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
14980  DB  69,15,40,224                        ; movaps        %xmm8,%xmm12
14981  DB  68,15,89,229                        ; mulps         %xmm5,%xmm12
14982  DB  69,15,88,227                        ; addps         %xmm11,%xmm12
14983  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
14984  DB  68,15,92,217                        ; subps         %xmm1,%xmm11
14985  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14986  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14987  DB  68,15,92,237                        ; subps         %xmm5,%xmm13
14988  DB  68,15,40,245                        ; movaps        %xmm5,%xmm14
14989  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
14990  DB  68,15,194,247,2                     ; cmpleps       %xmm7,%xmm14
14991  DB  15,88,201                           ; addps         %xmm1,%xmm1
14992  DB  69,15,89,235                        ; mulps         %xmm11,%xmm13
14993  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
14994  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
14995  DB  69,15,92,221                        ; subps         %xmm13,%xmm11
14996  DB  65,15,84,206                        ; andps         %xmm14,%xmm1
14997  DB  69,15,85,243                        ; andnps        %xmm11,%xmm14
14998  DB  65,15,86,206                        ; orps          %xmm14,%xmm1
14999  DB  65,15,88,204                        ; addps         %xmm12,%xmm1
15000  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
15001  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
15002  DB  68,15,89,222                        ; mulps         %xmm6,%xmm11
15003  DB  69,15,88,217                        ; addps         %xmm9,%xmm11
15004  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
15005  DB  68,15,92,202                        ; subps         %xmm2,%xmm9
15006  DB  15,89,214                           ; mulps         %xmm6,%xmm2
15007  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
15008  DB  68,15,92,230                        ; subps         %xmm6,%xmm12
15009  DB  68,15,40,238                        ; movaps        %xmm6,%xmm13
15010  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
15011  DB  68,15,194,239,2                     ; cmpleps       %xmm7,%xmm13
15012  DB  15,88,210                           ; addps         %xmm2,%xmm2
15013  DB  69,15,89,225                        ; mulps         %xmm9,%xmm12
15014  DB  69,15,88,228                        ; addps         %xmm12,%xmm12
15015  DB  69,15,92,212                        ; subps         %xmm12,%xmm10
15016  DB  65,15,84,213                        ; andps         %xmm13,%xmm2
15017  DB  69,15,85,234                        ; andnps        %xmm10,%xmm13
15018  DB  65,15,86,213                        ; orps          %xmm13,%xmm2
15019  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
15020  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
15021  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
15022  DB  72,173                              ; lods          %ds:(%rsi),%rax
15023  DB  255,224                             ; jmpq          *%rax
15024
15025PUBLIC _sk_softlight_sse2
15026_sk_softlight_sse2 LABEL PROC
15027  DB  72,131,236,56                       ; sub           $0x38,%rsp
15028  DB  15,41,84,36,32                      ; movaps        %xmm2,0x20(%rsp)
15029  DB  15,40,209                           ; movaps        %xmm1,%xmm2
15030  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
15031  DB  69,15,87,228                        ; xorps         %xmm12,%xmm12
15032  DB  68,15,194,231,1                     ; cmpltps       %xmm7,%xmm12
15033  DB  68,15,40,212                        ; movaps        %xmm4,%xmm10
15034  DB  68,15,94,215                        ; divps         %xmm7,%xmm10
15035  DB  69,15,84,212                        ; andps         %xmm12,%xmm10
15036  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15037  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15038  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15039  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15040  DB  69,15,92,242                        ; subps         %xmm10,%xmm14
15041  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
15042  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
15043  DB  65,15,82,194                        ; rsqrtps       %xmm10,%xmm0
15044  DB  68,15,83,248                        ; rcpps         %xmm0,%xmm15
15045  DB  69,15,92,250                        ; subps         %xmm10,%xmm15
15046  DB  69,15,88,210                        ; addps         %xmm10,%xmm10
15047  DB  69,15,88,210                        ; addps         %xmm10,%xmm10
15048  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
15049  DB  15,89,192                           ; mulps         %xmm0,%xmm0
15050  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
15051  DB  69,15,92,217                        ; subps         %xmm9,%xmm11
15052  DB  68,15,89,216                        ; mulps         %xmm0,%xmm11
15053  DB  184,0,0,224,64                      ; mov           $0x40e00000,%eax
15054  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
15055  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
15056  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
15057  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
15058  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
15059  DB  15,40,204                           ; movaps        %xmm4,%xmm1
15060  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
15061  DB  15,88,228                           ; addps         %xmm4,%xmm4
15062  DB  15,88,228                           ; addps         %xmm4,%xmm4
15063  DB  15,194,231,2                        ; cmpleps       %xmm7,%xmm4
15064  DB  68,15,84,236                        ; andps         %xmm4,%xmm13
15065  DB  65,15,85,231                        ; andnps        %xmm15,%xmm4
15066  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
15067  DB  15,88,192                           ; addps         %xmm0,%xmm0
15068  DB  65,15,86,229                        ; orps          %xmm13,%xmm4
15069  DB  68,15,40,232                        ; movaps        %xmm0,%xmm13
15070  DB  68,15,92,235                        ; subps         %xmm3,%xmm13
15071  DB  69,15,89,245                        ; mulps         %xmm13,%xmm14
15072  DB  68,15,89,239                        ; mulps         %xmm7,%xmm13
15073  DB  65,15,89,229                        ; mulps         %xmm13,%xmm4
15074  DB  65,15,88,227                        ; addps         %xmm11,%xmm4
15075  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
15076  DB  68,15,92,219                        ; subps         %xmm3,%xmm11
15077  DB  69,15,40,251                        ; movaps        %xmm11,%xmm15
15078  DB  15,41,76,36,16                      ; movaps        %xmm1,0x10(%rsp)
15079  DB  68,15,89,249                        ; mulps         %xmm1,%xmm15
15080  DB  69,15,40,233                        ; movaps        %xmm9,%xmm13
15081  DB  68,15,92,239                        ; subps         %xmm7,%xmm13
15082  DB  69,15,89,197                        ; mulps         %xmm13,%xmm8
15083  DB  69,15,88,199                        ; addps         %xmm15,%xmm8
15084  DB  68,15,88,243                        ; addps         %xmm3,%xmm14
15085  DB  68,15,89,241                        ; mulps         %xmm1,%xmm14
15086  DB  15,194,195,2                        ; cmpleps       %xmm3,%xmm0
15087  DB  68,15,84,240                        ; andps         %xmm0,%xmm14
15088  DB  15,85,196                           ; andnps        %xmm4,%xmm0
15089  DB  65,15,86,198                        ; orps          %xmm14,%xmm0
15090  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
15091  DB  15,41,44,36                         ; movaps        %xmm5,(%rsp)
15092  DB  68,15,40,197                        ; movaps        %xmm5,%xmm8
15093  DB  68,15,94,199                        ; divps         %xmm7,%xmm8
15094  DB  69,15,84,196                        ; andps         %xmm12,%xmm8
15095  DB  69,15,40,240                        ; movaps        %xmm8,%xmm14
15096  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
15097  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
15098  DB  65,15,40,230                        ; movaps        %xmm14,%xmm4
15099  DB  15,89,228                           ; mulps         %xmm4,%xmm4
15100  DB  65,15,88,230                        ; addps         %xmm14,%xmm4
15101  DB  69,15,40,248                        ; movaps        %xmm8,%xmm15
15102  DB  69,15,92,249                        ; subps         %xmm9,%xmm15
15103  DB  68,15,89,252                        ; mulps         %xmm4,%xmm15
15104  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15105  DB  69,15,92,240                        ; subps         %xmm8,%xmm14
15106  DB  65,15,82,224                        ; rsqrtps       %xmm8,%xmm4
15107  DB  15,83,228                           ; rcpps         %xmm4,%xmm4
15108  DB  65,15,92,224                        ; subps         %xmm8,%xmm4
15109  DB  69,15,89,194                        ; mulps         %xmm10,%xmm8
15110  DB  69,15,88,199                        ; addps         %xmm15,%xmm8
15111  DB  68,15,40,253                        ; movaps        %xmm5,%xmm15
15112  DB  69,15,88,255                        ; addps         %xmm15,%xmm15
15113  DB  69,15,88,255                        ; addps         %xmm15,%xmm15
15114  DB  68,15,194,255,2                     ; cmpleps       %xmm7,%xmm15
15115  DB  69,15,84,199                        ; andps         %xmm15,%xmm8
15116  DB  68,15,85,252                        ; andnps        %xmm4,%xmm15
15117  DB  69,15,86,248                        ; orps          %xmm8,%xmm15
15118  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
15119  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
15120  DB  65,15,40,224                        ; movaps        %xmm8,%xmm4
15121  DB  15,92,227                           ; subps         %xmm3,%xmm4
15122  DB  68,15,89,244                        ; mulps         %xmm4,%xmm14
15123  DB  15,89,231                           ; mulps         %xmm7,%xmm4
15124  DB  68,15,89,252                        ; mulps         %xmm4,%xmm15
15125  DB  15,40,227                           ; movaps        %xmm3,%xmm4
15126  DB  15,89,229                           ; mulps         %xmm5,%xmm4
15127  DB  68,15,88,252                        ; addps         %xmm4,%xmm15
15128  DB  65,15,40,227                        ; movaps        %xmm11,%xmm4
15129  DB  15,89,229                           ; mulps         %xmm5,%xmm4
15130  DB  65,15,89,213                        ; mulps         %xmm13,%xmm2
15131  DB  15,88,212                           ; addps         %xmm4,%xmm2
15132  DB  68,15,88,243                        ; addps         %xmm3,%xmm14
15133  DB  68,15,89,245                        ; mulps         %xmm5,%xmm14
15134  DB  68,15,194,195,2                     ; cmpleps       %xmm3,%xmm8
15135  DB  69,15,84,240                        ; andps         %xmm8,%xmm14
15136  DB  69,15,85,199                        ; andnps        %xmm15,%xmm8
15137  DB  69,15,86,198                        ; orps          %xmm14,%xmm8
15138  DB  68,15,88,194                        ; addps         %xmm2,%xmm8
15139  DB  68,15,40,246                        ; movaps        %xmm6,%xmm14
15140  DB  65,15,40,206                        ; movaps        %xmm14,%xmm1
15141  DB  15,94,207                           ; divps         %xmm7,%xmm1
15142  DB  65,15,84,204                        ; andps         %xmm12,%xmm1
15143  DB  15,40,225                           ; movaps        %xmm1,%xmm4
15144  DB  65,15,92,225                        ; subps         %xmm9,%xmm4
15145  DB  68,15,92,201                        ; subps         %xmm1,%xmm9
15146  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
15147  DB  15,82,241                           ; rsqrtps       %xmm1,%xmm6
15148  DB  15,83,246                           ; rcpps         %xmm6,%xmm6
15149  DB  15,92,241                           ; subps         %xmm1,%xmm6
15150  DB  15,88,201                           ; addps         %xmm1,%xmm1
15151  DB  15,88,201                           ; addps         %xmm1,%xmm1
15152  DB  15,40,233                           ; movaps        %xmm1,%xmm5
15153  DB  15,89,237                           ; mulps         %xmm5,%xmm5
15154  DB  15,88,233                           ; addps         %xmm1,%xmm5
15155  DB  15,89,236                           ; mulps         %xmm4,%xmm5
15156  DB  68,15,88,213                        ; addps         %xmm5,%xmm10
15157  DB  65,15,40,238                        ; movaps        %xmm14,%xmm5
15158  DB  15,40,205                           ; movaps        %xmm5,%xmm1
15159  DB  15,88,201                           ; addps         %xmm1,%xmm1
15160  DB  15,88,201                           ; addps         %xmm1,%xmm1
15161  DB  15,194,207,2                        ; cmpleps       %xmm7,%xmm1
15162  DB  68,15,84,209                        ; andps         %xmm1,%xmm10
15163  DB  15,85,206                           ; andnps        %xmm6,%xmm1
15164  DB  15,40,84,36,32                      ; movaps        0x20(%rsp),%xmm2
15165  DB  68,15,89,234                        ; mulps         %xmm2,%xmm13
15166  DB  15,88,210                           ; addps         %xmm2,%xmm2
15167  DB  65,15,86,202                        ; orps          %xmm10,%xmm1
15168  DB  15,40,226                           ; movaps        %xmm2,%xmm4
15169  DB  15,92,227                           ; subps         %xmm3,%xmm4
15170  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
15171  DB  15,89,231                           ; mulps         %xmm7,%xmm4
15172  DB  15,89,204                           ; mulps         %xmm4,%xmm1
15173  DB  15,40,227                           ; movaps        %xmm3,%xmm4
15174  DB  15,89,229                           ; mulps         %xmm5,%xmm4
15175  DB  15,88,204                           ; addps         %xmm4,%xmm1
15176  DB  65,15,40,227                        ; movaps        %xmm11,%xmm4
15177  DB  15,89,229                           ; mulps         %xmm5,%xmm4
15178  DB  65,15,88,229                        ; addps         %xmm13,%xmm4
15179  DB  68,15,88,203                        ; addps         %xmm3,%xmm9
15180  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
15181  DB  15,40,245                           ; movaps        %xmm5,%xmm6
15182  DB  15,194,211,2                        ; cmpleps       %xmm3,%xmm2
15183  DB  68,15,84,202                        ; andps         %xmm2,%xmm9
15184  DB  15,85,209                           ; andnps        %xmm1,%xmm2
15185  DB  65,15,86,209                        ; orps          %xmm9,%xmm2
15186  DB  15,88,212                           ; addps         %xmm4,%xmm2
15187  DB  68,15,89,223                        ; mulps         %xmm7,%xmm11
15188  DB  65,15,88,219                        ; addps         %xmm11,%xmm3
15189  DB  72,173                              ; lods          %ds:(%rsi),%rax
15190  DB  15,40,100,36,16                     ; movaps        0x10(%rsp),%xmm4
15191  DB  15,40,44,36                         ; movaps        (%rsp),%xmm5
15192  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
15193  DB  72,131,196,56                       ; add           $0x38,%rsp
15194  DB  255,224                             ; jmpq          *%rax
15195
15196PUBLIC _sk_clamp_0_sse2
15197_sk_clamp_0_sse2 LABEL PROC
15198  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
15199  DB  65,15,95,192                        ; maxps         %xmm8,%xmm0
15200  DB  65,15,95,200                        ; maxps         %xmm8,%xmm1
15201  DB  65,15,95,208                        ; maxps         %xmm8,%xmm2
15202  DB  65,15,95,216                        ; maxps         %xmm8,%xmm3
15203  DB  72,173                              ; lods          %ds:(%rsi),%rax
15204  DB  255,224                             ; jmpq          *%rax
15205
15206PUBLIC _sk_clamp_1_sse2
15207_sk_clamp_1_sse2 LABEL PROC
15208  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15209  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15210  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15211  DB  65,15,93,192                        ; minps         %xmm8,%xmm0
15212  DB  65,15,93,200                        ; minps         %xmm8,%xmm1
15213  DB  65,15,93,208                        ; minps         %xmm8,%xmm2
15214  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
15215  DB  72,173                              ; lods          %ds:(%rsi),%rax
15216  DB  255,224                             ; jmpq          *%rax
15217
15218PUBLIC _sk_clamp_a_sse2
15219_sk_clamp_a_sse2 LABEL PROC
15220  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15221  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15222  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15223  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
15224  DB  15,93,195                           ; minps         %xmm3,%xmm0
15225  DB  15,93,203                           ; minps         %xmm3,%xmm1
15226  DB  15,93,211                           ; minps         %xmm3,%xmm2
15227  DB  72,173                              ; lods          %ds:(%rsi),%rax
15228  DB  255,224                             ; jmpq          *%rax
15229
15230PUBLIC _sk_set_rgb_sse2
15231_sk_set_rgb_sse2 LABEL PROC
15232  DB  72,173                              ; lods          %ds:(%rsi),%rax
15233  DB  243,15,16,0                         ; movss         (%rax),%xmm0
15234  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
15235  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
15236  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
15237  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
15238  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
15239  DB  72,173                              ; lods          %ds:(%rsi),%rax
15240  DB  255,224                             ; jmpq          *%rax
15241
15242PUBLIC _sk_swap_rb_sse2
15243_sk_swap_rb_sse2 LABEL PROC
15244  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
15245  DB  72,173                              ; lods          %ds:(%rsi),%rax
15246  DB  15,40,194                           ; movaps        %xmm2,%xmm0
15247  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
15248  DB  255,224                             ; jmpq          *%rax
15249
15250PUBLIC _sk_swap_sse2
15251_sk_swap_sse2 LABEL PROC
15252  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
15253  DB  68,15,40,202                        ; movaps        %xmm2,%xmm9
15254  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
15255  DB  68,15,40,216                        ; movaps        %xmm0,%xmm11
15256  DB  72,173                              ; lods          %ds:(%rsi),%rax
15257  DB  15,40,196                           ; movaps        %xmm4,%xmm0
15258  DB  15,40,205                           ; movaps        %xmm5,%xmm1
15259  DB  15,40,214                           ; movaps        %xmm6,%xmm2
15260  DB  15,40,223                           ; movaps        %xmm7,%xmm3
15261  DB  65,15,40,227                        ; movaps        %xmm11,%xmm4
15262  DB  65,15,40,234                        ; movaps        %xmm10,%xmm5
15263  DB  65,15,40,241                        ; movaps        %xmm9,%xmm6
15264  DB  65,15,40,248                        ; movaps        %xmm8,%xmm7
15265  DB  255,224                             ; jmpq          *%rax
15266
15267PUBLIC _sk_move_src_dst_sse2
15268_sk_move_src_dst_sse2 LABEL PROC
15269  DB  72,173                              ; lods          %ds:(%rsi),%rax
15270  DB  15,40,224                           ; movaps        %xmm0,%xmm4
15271  DB  15,40,233                           ; movaps        %xmm1,%xmm5
15272  DB  15,40,242                           ; movaps        %xmm2,%xmm6
15273  DB  15,40,251                           ; movaps        %xmm3,%xmm7
15274  DB  255,224                             ; jmpq          *%rax
15275
15276PUBLIC _sk_move_dst_src_sse2
15277_sk_move_dst_src_sse2 LABEL PROC
15278  DB  72,173                              ; lods          %ds:(%rsi),%rax
15279  DB  15,40,196                           ; movaps        %xmm4,%xmm0
15280  DB  15,40,205                           ; movaps        %xmm5,%xmm1
15281  DB  15,40,214                           ; movaps        %xmm6,%xmm2
15282  DB  15,40,223                           ; movaps        %xmm7,%xmm3
15283  DB  255,224                             ; jmpq          *%rax
15284
15285PUBLIC _sk_premul_sse2
15286_sk_premul_sse2 LABEL PROC
15287  DB  15,89,195                           ; mulps         %xmm3,%xmm0
15288  DB  15,89,203                           ; mulps         %xmm3,%xmm1
15289  DB  15,89,211                           ; mulps         %xmm3,%xmm2
15290  DB  72,173                              ; lods          %ds:(%rsi),%rax
15291  DB  255,224                             ; jmpq          *%rax
15292
15293PUBLIC _sk_unpremul_sse2
15294_sk_unpremul_sse2 LABEL PROC
15295  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
15296  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15297  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15298  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15299  DB  68,15,94,203                        ; divps         %xmm3,%xmm9
15300  DB  68,15,194,195,4                     ; cmpneqps      %xmm3,%xmm8
15301  DB  69,15,84,193                        ; andps         %xmm9,%xmm8
15302  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
15303  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
15304  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
15305  DB  72,173                              ; lods          %ds:(%rsi),%rax
15306  DB  255,224                             ; jmpq          *%rax
15307
15308PUBLIC _sk_from_srgb_sse2
15309_sk_from_srgb_sse2 LABEL PROC
15310  DB  184,145,131,158,61                  ; mov           $0x3d9e8391,%eax
15311  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15312  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15313  DB  69,15,40,232                        ; movaps        %xmm8,%xmm13
15314  DB  68,15,89,232                        ; mulps         %xmm0,%xmm13
15315  DB  68,15,40,224                        ; movaps        %xmm0,%xmm12
15316  DB  69,15,89,228                        ; mulps         %xmm12,%xmm12
15317  DB  184,154,153,153,62                  ; mov           $0x3e99999a,%eax
15318  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15319  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15320  DB  184,92,143,50,63                    ; mov           $0x3f328f5c,%eax
15321  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
15322  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
15323  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15324  DB  68,15,89,240                        ; mulps         %xmm0,%xmm14
15325  DB  69,15,88,242                        ; addps         %xmm10,%xmm14
15326  DB  184,10,215,35,59                    ; mov           $0x3b23d70a,%eax
15327  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
15328  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
15329  DB  69,15,89,244                        ; mulps         %xmm12,%xmm14
15330  DB  69,15,88,243                        ; addps         %xmm11,%xmm14
15331  DB  184,174,71,97,61                    ; mov           $0x3d6147ae,%eax
15332  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15333  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15334  DB  65,15,194,196,1                     ; cmpltps       %xmm12,%xmm0
15335  DB  68,15,84,232                        ; andps         %xmm0,%xmm13
15336  DB  65,15,85,198                        ; andnps        %xmm14,%xmm0
15337  DB  65,15,86,197                        ; orps          %xmm13,%xmm0
15338  DB  69,15,40,232                        ; movaps        %xmm8,%xmm13
15339  DB  68,15,89,233                        ; mulps         %xmm1,%xmm13
15340  DB  68,15,40,241                        ; movaps        %xmm1,%xmm14
15341  DB  69,15,89,246                        ; mulps         %xmm14,%xmm14
15342  DB  69,15,40,249                        ; movaps        %xmm9,%xmm15
15343  DB  68,15,89,249                        ; mulps         %xmm1,%xmm15
15344  DB  69,15,88,250                        ; addps         %xmm10,%xmm15
15345  DB  69,15,89,254                        ; mulps         %xmm14,%xmm15
15346  DB  69,15,88,251                        ; addps         %xmm11,%xmm15
15347  DB  65,15,194,204,1                     ; cmpltps       %xmm12,%xmm1
15348  DB  68,15,84,233                        ; andps         %xmm1,%xmm13
15349  DB  65,15,85,207                        ; andnps        %xmm15,%xmm1
15350  DB  65,15,86,205                        ; orps          %xmm13,%xmm1
15351  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
15352  DB  68,15,40,234                        ; movaps        %xmm2,%xmm13
15353  DB  69,15,89,237                        ; mulps         %xmm13,%xmm13
15354  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
15355  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
15356  DB  69,15,89,205                        ; mulps         %xmm13,%xmm9
15357  DB  69,15,88,203                        ; addps         %xmm11,%xmm9
15358  DB  65,15,194,212,1                     ; cmpltps       %xmm12,%xmm2
15359  DB  68,15,84,194                        ; andps         %xmm2,%xmm8
15360  DB  65,15,85,209                        ; andnps        %xmm9,%xmm2
15361  DB  65,15,86,208                        ; orps          %xmm8,%xmm2
15362  DB  72,173                              ; lods          %ds:(%rsi),%rax
15363  DB  255,224                             ; jmpq          *%rax
15364
15365PUBLIC _sk_to_srgb_sse2
15366_sk_to_srgb_sse2 LABEL PROC
15367  DB  68,15,82,192                        ; rsqrtps       %xmm0,%xmm8
15368  DB  69,15,83,248                        ; rcpps         %xmm8,%xmm15
15369  DB  69,15,82,232                        ; rsqrtps       %xmm8,%xmm13
15370  DB  184,41,92,71,65                     ; mov           $0x41475c29,%eax
15371  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15372  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15373  DB  69,15,40,240                        ; movaps        %xmm8,%xmm14
15374  DB  68,15,89,240                        ; mulps         %xmm0,%xmm14
15375  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15376  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15377  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15378  DB  184,194,135,210,62                  ; mov           $0x3ed287c2,%eax
15379  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
15380  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
15381  DB  184,206,111,48,63                   ; mov           $0x3f306fce,%eax
15382  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
15383  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
15384  DB  184,168,87,202,61                   ; mov           $0x3dca57a8,%eax
15385  DB  53,0,0,0,128                        ; xor           $0x80000000,%eax
15386  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15387  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15388  DB  69,15,89,251                        ; mulps         %xmm11,%xmm15
15389  DB  69,15,88,252                        ; addps         %xmm12,%xmm15
15390  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
15391  DB  69,15,88,239                        ; addps         %xmm15,%xmm13
15392  DB  69,15,40,249                        ; movaps        %xmm9,%xmm15
15393  DB  69,15,93,253                        ; minps         %xmm13,%xmm15
15394  DB  184,4,231,140,59                    ; mov           $0x3b8ce704,%eax
15395  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
15396  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
15397  DB  65,15,194,197,1                     ; cmpltps       %xmm13,%xmm0
15398  DB  68,15,84,240                        ; andps         %xmm0,%xmm14
15399  DB  65,15,85,199                        ; andnps        %xmm15,%xmm0
15400  DB  65,15,86,198                        ; orps          %xmm14,%xmm0
15401  DB  68,15,82,241                        ; rsqrtps       %xmm1,%xmm14
15402  DB  69,15,83,254                        ; rcpps         %xmm14,%xmm15
15403  DB  69,15,82,246                        ; rsqrtps       %xmm14,%xmm14
15404  DB  69,15,89,251                        ; mulps         %xmm11,%xmm15
15405  DB  69,15,88,252                        ; addps         %xmm12,%xmm15
15406  DB  69,15,89,242                        ; mulps         %xmm10,%xmm14
15407  DB  69,15,88,247                        ; addps         %xmm15,%xmm14
15408  DB  69,15,40,249                        ; movaps        %xmm9,%xmm15
15409  DB  69,15,93,254                        ; minps         %xmm14,%xmm15
15410  DB  69,15,40,240                        ; movaps        %xmm8,%xmm14
15411  DB  68,15,89,241                        ; mulps         %xmm1,%xmm14
15412  DB  65,15,194,205,1                     ; cmpltps       %xmm13,%xmm1
15413  DB  68,15,84,241                        ; andps         %xmm1,%xmm14
15414  DB  65,15,85,207                        ; andnps        %xmm15,%xmm1
15415  DB  65,15,86,206                        ; orps          %xmm14,%xmm1
15416  DB  68,15,82,242                        ; rsqrtps       %xmm2,%xmm14
15417  DB  69,15,83,254                        ; rcpps         %xmm14,%xmm15
15418  DB  69,15,89,251                        ; mulps         %xmm11,%xmm15
15419  DB  69,15,88,252                        ; addps         %xmm12,%xmm15
15420  DB  69,15,82,222                        ; rsqrtps       %xmm14,%xmm11
15421  DB  69,15,89,218                        ; mulps         %xmm10,%xmm11
15422  DB  69,15,88,223                        ; addps         %xmm15,%xmm11
15423  DB  69,15,93,203                        ; minps         %xmm11,%xmm9
15424  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
15425  DB  65,15,194,213,1                     ; cmpltps       %xmm13,%xmm2
15426  DB  68,15,84,194                        ; andps         %xmm2,%xmm8
15427  DB  65,15,85,209                        ; andnps        %xmm9,%xmm2
15428  DB  65,15,86,208                        ; orps          %xmm8,%xmm2
15429  DB  72,173                              ; lods          %ds:(%rsi),%rax
15430  DB  255,224                             ; jmpq          *%rax
15431
15432PUBLIC _sk_from_2dot2_sse2
15433_sk_from_2dot2_sse2 LABEL PROC
15434  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
15435  DB  65,15,82,192                        ; rsqrtps       %xmm8,%xmm0
15436  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
15437  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
15438  DB  68,15,82,200                        ; rsqrtps       %xmm0,%xmm9
15439  DB  65,15,82,193                        ; rsqrtps       %xmm9,%xmm0
15440  DB  68,15,82,208                        ; rsqrtps       %xmm0,%xmm10
15441  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
15442  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
15443  DB  15,89,192                           ; mulps         %xmm0,%xmm0
15444  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
15445  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
15446  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
15447  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
15448  DB  65,15,95,194                        ; maxps         %xmm10,%xmm0
15449  DB  68,15,82,193                        ; rsqrtps       %xmm1,%xmm8
15450  DB  69,15,82,192                        ; rsqrtps       %xmm8,%xmm8
15451  DB  69,15,82,192                        ; rsqrtps       %xmm8,%xmm8
15452  DB  69,15,82,200                        ; rsqrtps       %xmm8,%xmm9
15453  DB  69,15,82,193                        ; rsqrtps       %xmm9,%xmm8
15454  DB  69,15,82,216                        ; rsqrtps       %xmm8,%xmm11
15455  DB  15,89,201                           ; mulps         %xmm1,%xmm1
15456  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
15457  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
15458  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
15459  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
15460  DB  69,15,89,195                        ; mulps         %xmm11,%xmm8
15461  DB  69,15,95,194                        ; maxps         %xmm10,%xmm8
15462  DB  15,82,202                           ; rsqrtps       %xmm2,%xmm1
15463  DB  15,82,201                           ; rsqrtps       %xmm1,%xmm1
15464  DB  15,82,201                           ; rsqrtps       %xmm1,%xmm1
15465  DB  68,15,82,217                        ; rsqrtps       %xmm1,%xmm11
15466  DB  65,15,82,203                        ; rsqrtps       %xmm11,%xmm1
15467  DB  15,82,201                           ; rsqrtps       %xmm1,%xmm1
15468  DB  15,89,210                           ; mulps         %xmm2,%xmm2
15469  DB  69,15,40,203                        ; movaps        %xmm11,%xmm9
15470  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
15471  DB  69,15,89,203                        ; mulps         %xmm11,%xmm9
15472  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
15473  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
15474  DB  69,15,95,202                        ; maxps         %xmm10,%xmm9
15475  DB  72,173                              ; lods          %ds:(%rsi),%rax
15476  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
15477  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
15478  DB  255,224                             ; jmpq          *%rax
15479
15480PUBLIC _sk_to_2dot2_sse2
15481_sk_to_2dot2_sse2 LABEL PROC
15482  DB  68,15,82,192                        ; rsqrtps       %xmm0,%xmm8
15483  DB  65,15,82,192                        ; rsqrtps       %xmm8,%xmm0
15484  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
15485  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
15486  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
15487  DB  68,15,82,200                        ; rsqrtps       %xmm0,%xmm9
15488  DB  69,15,83,192                        ; rcpps         %xmm8,%xmm8
15489  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
15490  DB  65,15,83,193                        ; rcpps         %xmm9,%xmm0
15491  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
15492  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
15493  DB  65,15,95,192                        ; maxps         %xmm8,%xmm0
15494  DB  68,15,82,201                        ; rsqrtps       %xmm1,%xmm9
15495  DB  65,15,82,201                        ; rsqrtps       %xmm9,%xmm1
15496  DB  15,82,201                           ; rsqrtps       %xmm1,%xmm1
15497  DB  15,82,201                           ; rsqrtps       %xmm1,%xmm1
15498  DB  15,82,201                           ; rsqrtps       %xmm1,%xmm1
15499  DB  68,15,82,209                        ; rsqrtps       %xmm1,%xmm10
15500  DB  69,15,83,201                        ; rcpps         %xmm9,%xmm9
15501  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
15502  DB  65,15,83,202                        ; rcpps         %xmm10,%xmm1
15503  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
15504  DB  65,15,95,200                        ; maxps         %xmm8,%xmm1
15505  DB  68,15,82,202                        ; rsqrtps       %xmm2,%xmm9
15506  DB  65,15,82,209                        ; rsqrtps       %xmm9,%xmm2
15507  DB  15,82,210                           ; rsqrtps       %xmm2,%xmm2
15508  DB  15,82,210                           ; rsqrtps       %xmm2,%xmm2
15509  DB  15,82,210                           ; rsqrtps       %xmm2,%xmm2
15510  DB  68,15,82,210                        ; rsqrtps       %xmm2,%xmm10
15511  DB  69,15,83,201                        ; rcpps         %xmm9,%xmm9
15512  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
15513  DB  65,15,83,210                        ; rcpps         %xmm10,%xmm2
15514  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
15515  DB  65,15,95,208                        ; maxps         %xmm8,%xmm2
15516  DB  72,173                              ; lods          %ds:(%rsi),%rax
15517  DB  255,224                             ; jmpq          *%rax
15518
15519PUBLIC _sk_rgb_to_hsl_sse2
15520_sk_rgb_to_hsl_sse2 LABEL PROC
15521  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
15522  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
15523  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
15524  DB  69,15,95,209                        ; maxps         %xmm9,%xmm10
15525  DB  68,15,95,210                        ; maxps         %xmm2,%xmm10
15526  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
15527  DB  69,15,93,217                        ; minps         %xmm9,%xmm11
15528  DB  68,15,93,218                        ; minps         %xmm2,%xmm11
15529  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
15530  DB  65,15,92,203                        ; subps         %xmm11,%xmm1
15531  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15532  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15533  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15534  DB  68,15,94,225                        ; divps         %xmm1,%xmm12
15535  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
15536  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
15537  DB  65,15,194,192,0                     ; cmpeqps       %xmm8,%xmm0
15538  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15539  DB  68,15,194,242,1                     ; cmpltps       %xmm2,%xmm14
15540  DB  185,0,0,192,64                      ; mov           $0x40c00000,%ecx
15541  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
15542  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
15543  DB  69,15,84,238                        ; andps         %xmm14,%xmm13
15544  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15545  DB  68,15,92,242                        ; subps         %xmm2,%xmm14
15546  DB  69,15,89,244                        ; mulps         %xmm12,%xmm14
15547  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
15548  DB  69,15,40,242                        ; movaps        %xmm10,%xmm14
15549  DB  69,15,194,241,0                     ; cmpeqps       %xmm9,%xmm14
15550  DB  65,15,92,208                        ; subps         %xmm8,%xmm2
15551  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
15552  DB  65,15,89,212                        ; mulps         %xmm12,%xmm2
15553  DB  185,0,0,0,64                        ; mov           $0x40000000,%ecx
15554  DB  69,15,89,196                        ; mulps         %xmm12,%xmm8
15555  DB  184,0,0,128,64                      ; mov           $0x40800000,%eax
15556  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15557  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15558  DB  69,15,88,200                        ; addps         %xmm8,%xmm9
15559  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
15560  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15561  DB  65,15,88,208                        ; addps         %xmm8,%xmm2
15562  DB  65,15,84,214                        ; andps         %xmm14,%xmm2
15563  DB  69,15,85,241                        ; andnps        %xmm9,%xmm14
15564  DB  68,15,86,242                        ; orps          %xmm2,%xmm14
15565  DB  68,15,84,232                        ; andps         %xmm0,%xmm13
15566  DB  65,15,85,198                        ; andnps        %xmm14,%xmm0
15567  DB  102,65,15,110,208                   ; movd          %r8d,%xmm2
15568  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
15569  DB  65,15,86,197                        ; orps          %xmm13,%xmm0
15570  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
15571  DB  69,15,194,203,4                     ; cmpneqps      %xmm11,%xmm9
15572  DB  65,15,84,193                        ; andps         %xmm9,%xmm0
15573  DB  15,89,194                           ; mulps         %xmm2,%xmm0
15574  DB  69,15,92,194                        ; subps         %xmm10,%xmm8
15575  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
15576  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
15577  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15578  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15579  DB  69,15,92,195                        ; subps         %xmm11,%xmm8
15580  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
15581  DB  65,15,89,212                        ; mulps         %xmm12,%xmm2
15582  DB  68,15,194,226,1                     ; cmpltps       %xmm2,%xmm12
15583  DB  69,15,84,196                        ; andps         %xmm12,%xmm8
15584  DB  69,15,85,226                        ; andnps        %xmm10,%xmm12
15585  DB  69,15,86,224                        ; orps          %xmm8,%xmm12
15586  DB  65,15,94,204                        ; divps         %xmm12,%xmm1
15587  DB  65,15,84,201                        ; andps         %xmm9,%xmm1
15588  DB  72,173                              ; lods          %ds:(%rsi),%rax
15589  DB  255,224                             ; jmpq          *%rax
15590
15591PUBLIC _sk_hsl_to_rgb_sse2
15592_sk_hsl_to_rgb_sse2 LABEL PROC
15593  DB  72,131,236,104                      ; sub           $0x68,%rsp
15594  DB  15,41,124,36,80                     ; movaps        %xmm7,0x50(%rsp)
15595  DB  15,41,116,36,64                     ; movaps        %xmm6,0x40(%rsp)
15596  DB  15,41,108,36,48                     ; movaps        %xmm5,0x30(%rsp)
15597  DB  15,41,100,36,32                     ; movaps        %xmm4,0x20(%rsp)
15598  DB  15,41,92,36,16                      ; movaps        %xmm3,0x10(%rsp)
15599  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
15600  DB  15,40,209                           ; movaps        %xmm1,%xmm2
15601  DB  15,40,240                           ; movaps        %xmm0,%xmm6
15602  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
15603  DB  102,68,15,110,240                   ; movd          %eax,%xmm14
15604  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
15605  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
15606  DB  69,15,194,206,1                     ; cmpltps       %xmm14,%xmm9
15607  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15608  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15609  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15610  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
15611  DB  15,88,194                           ; addps         %xmm2,%xmm0
15612  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
15613  DB  15,40,218                           ; movaps        %xmm2,%xmm3
15614  DB  69,15,87,219                        ; xorps         %xmm11,%xmm11
15615  DB  68,15,194,218,0                     ; cmpeqps       %xmm2,%xmm11
15616  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
15617  DB  65,15,89,218                        ; mulps         %xmm10,%xmm3
15618  DB  15,92,211                           ; subps         %xmm3,%xmm2
15619  DB  65,15,84,193                        ; andps         %xmm9,%xmm0
15620  DB  68,15,85,202                        ; andnps        %xmm2,%xmm9
15621  DB  68,15,86,200                        ; orps          %xmm0,%xmm9
15622  DB  184,0,0,0,64                        ; mov           $0x40000000,%eax
15623  DB  185,171,170,170,62                  ; mov           $0x3eaaaaab,%ecx
15624  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
15625  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15626  DB  68,15,41,4,36                       ; movaps        %xmm8,(%rsp)
15627  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
15628  DB  185,0,0,0,0                         ; mov           $0x0,%ecx
15629  DB  102,15,110,233                      ; movd          %ecx,%xmm5
15630  DB  15,198,237,0                        ; shufps        $0x0,%xmm5,%xmm5
15631  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
15632  DB  65,15,194,192,1                     ; cmpltps       %xmm8,%xmm0
15633  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
15634  DB  65,15,92,220                        ; subps         %xmm12,%xmm3
15635  DB  15,84,216                           ; andps         %xmm0,%xmm3
15636  DB  65,15,85,192                        ; andnps        %xmm8,%xmm0
15637  DB  15,86,195                           ; orps          %xmm3,%xmm0
15638  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
15639  DB  15,194,221,1                        ; cmpltps       %xmm5,%xmm3
15640  DB  65,15,40,212                        ; movaps        %xmm12,%xmm2
15641  DB  65,15,88,208                        ; addps         %xmm8,%xmm2
15642  DB  15,84,211                           ; andps         %xmm3,%xmm2
15643  DB  15,85,216                           ; andnps        %xmm0,%xmm3
15644  DB  15,86,218                           ; orps          %xmm2,%xmm3
15645  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
15646  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
15647  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
15648  DB  69,15,92,233                        ; subps         %xmm9,%xmm13
15649  DB  184,171,170,42,62                   ; mov           $0x3e2aaaab,%eax
15650  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
15651  DB  65,15,92,197                        ; subps         %xmm13,%xmm0
15652  DB  185,0,0,192,64                      ; mov           $0x40c00000,%ecx
15653  DB  102,68,15,110,249                   ; movd          %ecx,%xmm15
15654  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
15655  DB  68,15,89,248                        ; mulps         %xmm0,%xmm15
15656  DB  185,171,170,42,63                   ; mov           $0x3f2aaaab,%ecx
15657  DB  102,15,110,225                      ; movd          %ecx,%xmm4
15658  DB  15,198,228,0                        ; shufps        $0x0,%xmm4,%xmm4
15659  DB  15,40,212                           ; movaps        %xmm4,%xmm2
15660  DB  15,92,211                           ; subps         %xmm3,%xmm2
15661  DB  15,40,203                           ; movaps        %xmm3,%xmm1
15662  DB  15,40,195                           ; movaps        %xmm3,%xmm0
15663  DB  15,194,220,1                        ; cmpltps       %xmm4,%xmm3
15664  DB  65,15,89,215                        ; mulps         %xmm15,%xmm2
15665  DB  65,15,88,213                        ; addps         %xmm13,%xmm2
15666  DB  15,84,211                           ; andps         %xmm3,%xmm2
15667  DB  65,15,85,221                        ; andnps        %xmm13,%xmm3
15668  DB  15,86,218                           ; orps          %xmm2,%xmm3
15669  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
15670  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
15671  DB  15,84,208                           ; andps         %xmm0,%xmm2
15672  DB  15,85,195                           ; andnps        %xmm3,%xmm0
15673  DB  15,86,194                           ; orps          %xmm2,%xmm0
15674  DB  102,15,110,248                      ; movd          %eax,%xmm7
15675  DB  15,198,255,0                        ; shufps        $0x0,%xmm7,%xmm7
15676  DB  15,194,207,1                        ; cmpltps       %xmm7,%xmm1
15677  DB  69,15,89,199                        ; mulps         %xmm15,%xmm8
15678  DB  69,15,88,197                        ; addps         %xmm13,%xmm8
15679  DB  68,15,84,193                        ; andps         %xmm1,%xmm8
15680  DB  15,85,200                           ; andnps        %xmm0,%xmm1
15681  DB  65,15,86,200                        ; orps          %xmm8,%xmm1
15682  DB  69,15,40,195                        ; movaps        %xmm11,%xmm8
15683  DB  68,15,85,193                        ; andnps        %xmm1,%xmm8
15684  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
15685  DB  15,194,198,1                        ; cmpltps       %xmm6,%xmm0
15686  DB  15,40,206                           ; movaps        %xmm6,%xmm1
15687  DB  65,15,92,204                        ; subps         %xmm12,%xmm1
15688  DB  15,84,200                           ; andps         %xmm0,%xmm1
15689  DB  15,85,198                           ; andnps        %xmm6,%xmm0
15690  DB  15,86,193                           ; orps          %xmm1,%xmm0
15691  DB  15,40,206                           ; movaps        %xmm6,%xmm1
15692  DB  15,194,205,1                        ; cmpltps       %xmm5,%xmm1
15693  DB  65,15,40,212                        ; movaps        %xmm12,%xmm2
15694  DB  15,88,214                           ; addps         %xmm6,%xmm2
15695  DB  15,84,209                           ; andps         %xmm1,%xmm2
15696  DB  15,85,200                           ; andnps        %xmm0,%xmm1
15697  DB  15,86,202                           ; orps          %xmm2,%xmm1
15698  DB  15,40,196                           ; movaps        %xmm4,%xmm0
15699  DB  15,92,193                           ; subps         %xmm1,%xmm0
15700  DB  15,40,217                           ; movaps        %xmm1,%xmm3
15701  DB  15,40,209                           ; movaps        %xmm1,%xmm2
15702  DB  15,194,204,1                        ; cmpltps       %xmm4,%xmm1
15703  DB  65,15,89,199                        ; mulps         %xmm15,%xmm0
15704  DB  65,15,88,197                        ; addps         %xmm13,%xmm0
15705  DB  15,84,193                           ; andps         %xmm1,%xmm0
15706  DB  65,15,85,205                        ; andnps        %xmm13,%xmm1
15707  DB  15,86,200                           ; orps          %xmm0,%xmm1
15708  DB  65,15,194,214,1                     ; cmpltps       %xmm14,%xmm2
15709  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
15710  DB  15,84,194                           ; andps         %xmm2,%xmm0
15711  DB  15,85,209                           ; andnps        %xmm1,%xmm2
15712  DB  15,86,208                           ; orps          %xmm0,%xmm2
15713  DB  15,194,223,1                        ; cmpltps       %xmm7,%xmm3
15714  DB  65,15,40,199                        ; movaps        %xmm15,%xmm0
15715  DB  15,89,198                           ; mulps         %xmm6,%xmm0
15716  DB  65,15,88,197                        ; addps         %xmm13,%xmm0
15717  DB  15,84,195                           ; andps         %xmm3,%xmm0
15718  DB  15,85,218                           ; andnps        %xmm2,%xmm3
15719  DB  15,86,216                           ; orps          %xmm0,%xmm3
15720  DB  65,15,40,203                        ; movaps        %xmm11,%xmm1
15721  DB  15,85,203                           ; andnps        %xmm3,%xmm1
15722  DB  15,92,52,36                         ; subps         (%rsp),%xmm6
15723  DB  15,40,198                           ; movaps        %xmm6,%xmm0
15724  DB  15,194,197,1                        ; cmpltps       %xmm5,%xmm0
15725  DB  15,40,214                           ; movaps        %xmm6,%xmm2
15726  DB  65,15,92,212                        ; subps         %xmm12,%xmm2
15727  DB  65,15,40,220                        ; movaps        %xmm12,%xmm3
15728  DB  68,15,194,230,1                     ; cmpltps       %xmm6,%xmm12
15729  DB  65,15,84,212                        ; andps         %xmm12,%xmm2
15730  DB  68,15,85,230                        ; andnps        %xmm6,%xmm12
15731  DB  68,15,86,226                        ; orps          %xmm2,%xmm12
15732  DB  15,88,222                           ; addps         %xmm6,%xmm3
15733  DB  15,84,216                           ; andps         %xmm0,%xmm3
15734  DB  65,15,85,196                        ; andnps        %xmm12,%xmm0
15735  DB  15,86,195                           ; orps          %xmm3,%xmm0
15736  DB  15,40,232                           ; movaps        %xmm0,%xmm5
15737  DB  15,194,239,1                        ; cmpltps       %xmm7,%xmm5
15738  DB  15,40,208                           ; movaps        %xmm0,%xmm2
15739  DB  15,194,212,1                        ; cmpltps       %xmm4,%xmm2
15740  DB  15,92,224                           ; subps         %xmm0,%xmm4
15741  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
15742  DB  65,15,89,247                        ; mulps         %xmm15,%xmm6
15743  DB  65,15,89,231                        ; mulps         %xmm15,%xmm4
15744  DB  65,15,88,245                        ; addps         %xmm13,%xmm6
15745  DB  65,15,88,229                        ; addps         %xmm13,%xmm4
15746  DB  15,84,226                           ; andps         %xmm2,%xmm4
15747  DB  65,15,85,213                        ; andnps        %xmm13,%xmm2
15748  DB  15,86,212                           ; orps          %xmm4,%xmm2
15749  DB  68,15,84,200                        ; andps         %xmm0,%xmm9
15750  DB  15,85,194                           ; andnps        %xmm2,%xmm0
15751  DB  65,15,86,193                        ; orps          %xmm9,%xmm0
15752  DB  15,84,245                           ; andps         %xmm5,%xmm6
15753  DB  15,85,232                           ; andnps        %xmm0,%xmm5
15754  DB  15,86,238                           ; orps          %xmm6,%xmm5
15755  DB  69,15,84,211                        ; andps         %xmm11,%xmm10
15756  DB  68,15,85,221                        ; andnps        %xmm5,%xmm11
15757  DB  69,15,86,194                        ; orps          %xmm10,%xmm8
15758  DB  65,15,86,202                        ; orps          %xmm10,%xmm1
15759  DB  69,15,86,211                        ; orps          %xmm11,%xmm10
15760  DB  72,173                              ; lods          %ds:(%rsi),%rax
15761  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
15762  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
15763  DB  15,40,92,36,16                      ; movaps        0x10(%rsp),%xmm3
15764  DB  15,40,100,36,32                     ; movaps        0x20(%rsp),%xmm4
15765  DB  15,40,108,36,48                     ; movaps        0x30(%rsp),%xmm5
15766  DB  15,40,116,36,64                     ; movaps        0x40(%rsp),%xmm6
15767  DB  15,40,124,36,80                     ; movaps        0x50(%rsp),%xmm7
15768  DB  72,131,196,104                      ; add           $0x68,%rsp
15769  DB  255,224                             ; jmpq          *%rax
15770
15771PUBLIC _sk_scale_1_float_sse2
15772_sk_scale_1_float_sse2 LABEL PROC
15773  DB  72,173                              ; lods          %ds:(%rsi),%rax
15774  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
15775  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15776  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
15777  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
15778  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
15779  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
15780  DB  72,173                              ; lods          %ds:(%rsi),%rax
15781  DB  255,224                             ; jmpq          *%rax
15782
15783PUBLIC _sk_scale_u8_sse2
15784_sk_scale_u8_sse2 LABEL PROC
15785  DB  72,173                              ; lods          %ds:(%rsi),%rax
15786  DB  72,139,0                            ; mov           (%rax),%rax
15787  DB  102,68,15,110,4,56                  ; movd          (%rax,%rdi,1),%xmm8
15788  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
15789  DB  102,69,15,96,193                    ; punpcklbw     %xmm9,%xmm8
15790  DB  102,69,15,97,193                    ; punpcklwd     %xmm9,%xmm8
15791  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
15792  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
15793  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15794  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15795  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
15796  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
15797  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
15798  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
15799  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
15800  DB  72,173                              ; lods          %ds:(%rsi),%rax
15801  DB  255,224                             ; jmpq          *%rax
15802
15803PUBLIC _sk_lerp_1_float_sse2
15804_sk_lerp_1_float_sse2 LABEL PROC
15805  DB  72,173                              ; lods          %ds:(%rsi),%rax
15806  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
15807  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15808  DB  15,92,196                           ; subps         %xmm4,%xmm0
15809  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
15810  DB  15,88,196                           ; addps         %xmm4,%xmm0
15811  DB  15,92,205                           ; subps         %xmm5,%xmm1
15812  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
15813  DB  15,88,205                           ; addps         %xmm5,%xmm1
15814  DB  15,92,214                           ; subps         %xmm6,%xmm2
15815  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
15816  DB  15,88,214                           ; addps         %xmm6,%xmm2
15817  DB  15,92,223                           ; subps         %xmm7,%xmm3
15818  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
15819  DB  15,88,223                           ; addps         %xmm7,%xmm3
15820  DB  72,173                              ; lods          %ds:(%rsi),%rax
15821  DB  255,224                             ; jmpq          *%rax
15822
15823PUBLIC _sk_lerp_u8_sse2
15824_sk_lerp_u8_sse2 LABEL PROC
15825  DB  72,173                              ; lods          %ds:(%rsi),%rax
15826  DB  72,139,0                            ; mov           (%rax),%rax
15827  DB  102,68,15,110,4,56                  ; movd          (%rax,%rdi,1),%xmm8
15828  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
15829  DB  102,69,15,96,193                    ; punpcklbw     %xmm9,%xmm8
15830  DB  102,69,15,97,193                    ; punpcklwd     %xmm9,%xmm8
15831  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
15832  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
15833  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15834  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15835  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
15836  DB  15,92,196                           ; subps         %xmm4,%xmm0
15837  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
15838  DB  15,88,196                           ; addps         %xmm4,%xmm0
15839  DB  15,92,205                           ; subps         %xmm5,%xmm1
15840  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
15841  DB  15,88,205                           ; addps         %xmm5,%xmm1
15842  DB  15,92,214                           ; subps         %xmm6,%xmm2
15843  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
15844  DB  15,88,214                           ; addps         %xmm6,%xmm2
15845  DB  15,92,223                           ; subps         %xmm7,%xmm3
15846  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
15847  DB  15,88,223                           ; addps         %xmm7,%xmm3
15848  DB  72,173                              ; lods          %ds:(%rsi),%rax
15849  DB  255,224                             ; jmpq          *%rax
15850
15851PUBLIC _sk_lerp_565_sse2
15852_sk_lerp_565_sse2 LABEL PROC
15853  DB  72,173                              ; lods          %ds:(%rsi),%rax
15854  DB  72,139,0                            ; mov           (%rax),%rax
15855  DB  243,68,15,126,4,120                 ; movq          (%rax,%rdi,2),%xmm8
15856  DB  102,15,239,219                      ; pxor          %xmm3,%xmm3
15857  DB  102,68,15,97,195                    ; punpcklwd     %xmm3,%xmm8
15858  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
15859  DB  102,15,110,216                      ; movd          %eax,%xmm3
15860  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
15861  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
15862  DB  68,15,91,203                        ; cvtdq2ps      %xmm3,%xmm9
15863  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
15864  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
15865  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
15866  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
15867  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
15868  DB  102,15,110,216                      ; movd          %eax,%xmm3
15869  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
15870  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
15871  DB  68,15,91,203                        ; cvtdq2ps      %xmm3,%xmm9
15872  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
15873  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
15874  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
15875  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
15876  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
15877  DB  102,15,110,216                      ; movd          %eax,%xmm3
15878  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
15879  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
15880  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
15881  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
15882  DB  102,15,110,216                      ; movd          %eax,%xmm3
15883  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
15884  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
15885  DB  15,92,196                           ; subps         %xmm4,%xmm0
15886  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
15887  DB  15,88,196                           ; addps         %xmm4,%xmm0
15888  DB  15,92,205                           ; subps         %xmm5,%xmm1
15889  DB  65,15,89,203                        ; mulps         %xmm11,%xmm1
15890  DB  15,88,205                           ; addps         %xmm5,%xmm1
15891  DB  15,92,214                           ; subps         %xmm6,%xmm2
15892  DB  15,89,211                           ; mulps         %xmm3,%xmm2
15893  DB  15,88,214                           ; addps         %xmm6,%xmm2
15894  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15895  DB  102,15,110,216                      ; movd          %eax,%xmm3
15896  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
15897  DB  72,173                              ; lods          %ds:(%rsi),%rax
15898  DB  255,224                             ; jmpq          *%rax
15899
15900PUBLIC _sk_load_tables_sse2
15901_sk_load_tables_sse2 LABEL PROC
15902  DB  72,173                              ; lods          %ds:(%rsi),%rax
15903  DB  72,139,8                            ; mov           (%rax),%rcx
15904  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
15905  DB  243,68,15,111,4,185                 ; movdqu        (%rcx,%rdi,4),%xmm8
15906  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
15907  DB  102,15,110,193                      ; movd          %ecx,%xmm0
15908  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
15909  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
15910  DB  102,65,15,114,209,8                 ; psrld         $0x8,%xmm9
15911  DB  102,68,15,219,200                   ; pand          %xmm0,%xmm9
15912  DB  102,69,15,111,208                   ; movdqa        %xmm8,%xmm10
15913  DB  102,65,15,114,210,16                ; psrld         $0x10,%xmm10
15914  DB  102,68,15,219,208                   ; pand          %xmm0,%xmm10
15915  DB  102,65,15,219,192                   ; pand          %xmm8,%xmm0
15916  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
15917  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
15918  DB  65,137,201                          ; mov           %ecx,%r9d
15919  DB  72,193,233,32                       ; shr           $0x20,%rcx
15920  DB  102,73,15,126,194                   ; movq          %xmm0,%r10
15921  DB  69,137,211                          ; mov           %r10d,%r11d
15922  DB  73,193,234,32                       ; shr           $0x20,%r10
15923  DB  243,67,15,16,28,144                 ; movss         (%r8,%r10,4),%xmm3
15924  DB  243,65,15,16,4,136                  ; movss         (%r8,%rcx,4),%xmm0
15925  DB  15,20,216                           ; unpcklps      %xmm0,%xmm3
15926  DB  243,67,15,16,4,152                  ; movss         (%r8,%r11,4),%xmm0
15927  DB  243,67,15,16,12,136                 ; movss         (%r8,%r9,4),%xmm1
15928  DB  15,20,193                           ; unpcklps      %xmm1,%xmm0
15929  DB  15,20,195                           ; unpcklps      %xmm3,%xmm0
15930  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
15931  DB  102,65,15,112,201,78                ; pshufd        $0x4e,%xmm9,%xmm1
15932  DB  102,73,15,126,202                   ; movq          %xmm1,%r10
15933  DB  77,137,209                          ; mov           %r10,%r9
15934  DB  73,193,233,32                       ; shr           $0x20,%r9
15935  DB  102,76,15,126,201                   ; movq          %xmm9,%rcx
15936  DB  65,137,203                          ; mov           %ecx,%r11d
15937  DB  65,129,227,255,255,255,0            ; and           $0xffffff,%r11d
15938  DB  72,193,233,30                       ; shr           $0x1e,%rcx
15939  DB  65,129,226,255,255,255,0            ; and           $0xffffff,%r10d
15940  DB  243,65,15,16,28,8                   ; movss         (%r8,%rcx,1),%xmm3
15941  DB  243,67,15,16,12,136                 ; movss         (%r8,%r9,4),%xmm1
15942  DB  15,20,217                           ; unpcklps      %xmm1,%xmm3
15943  DB  243,67,15,16,12,152                 ; movss         (%r8,%r11,4),%xmm1
15944  DB  243,67,15,16,20,144                 ; movss         (%r8,%r10,4),%xmm2
15945  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
15946  DB  15,20,203                           ; unpcklps      %xmm3,%xmm1
15947  DB  76,139,72,24                        ; mov           0x18(%rax),%r9
15948  DB  102,65,15,112,210,78                ; pshufd        $0x4e,%xmm10,%xmm2
15949  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
15950  DB  68,15,183,193                       ; movzwl        %cx,%r8d
15951  DB  72,193,233,32                       ; shr           $0x20,%rcx
15952  DB  102,76,15,126,208                   ; movq          %xmm10,%rax
15953  DB  68,15,183,208                       ; movzwl        %ax,%r10d
15954  DB  72,193,232,30                       ; shr           $0x1e,%rax
15955  DB  243,69,15,16,12,1                   ; movss         (%r9,%rax,1),%xmm9
15956  DB  243,65,15,16,20,137                 ; movss         (%r9,%rcx,4),%xmm2
15957  DB  68,15,20,202                        ; unpcklps      %xmm2,%xmm9
15958  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
15959  DB  243,67,15,16,28,129                 ; movss         (%r9,%r8,4),%xmm3
15960  DB  15,20,211                           ; unpcklps      %xmm3,%xmm2
15961  DB  65,15,20,209                        ; unpcklps      %xmm9,%xmm2
15962  DB  102,65,15,114,208,24                ; psrld         $0x18,%xmm8
15963  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
15964  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
15965  DB  102,15,110,216                      ; movd          %eax,%xmm3
15966  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
15967  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
15968  DB  72,173                              ; lods          %ds:(%rsi),%rax
15969  DB  255,224                             ; jmpq          *%rax
15970
15971PUBLIC _sk_load_tables_u16_be_sse2
15972_sk_load_tables_u16_be_sse2 LABEL PROC
15973  DB  72,173                              ; lods          %ds:(%rsi),%rax
15974  DB  72,139,8                            ; mov           (%rax),%rcx
15975  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
15976  DB  243,15,111,4,249                    ; movdqu        (%rcx,%rdi,8),%xmm0
15977  DB  243,15,111,76,249,16                ; movdqu        0x10(%rcx,%rdi,8),%xmm1
15978  DB  102,68,15,111,208                   ; movdqa        %xmm0,%xmm10
15979  DB  102,68,15,97,209                    ; punpcklwd     %xmm1,%xmm10
15980  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
15981  DB  102,65,15,111,202                   ; movdqa        %xmm10,%xmm1
15982  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
15983  DB  102,68,15,105,208                   ; punpckhwd     %xmm0,%xmm10
15984  DB  102,69,15,239,192                   ; pxor          %xmm8,%xmm8
15985  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
15986  DB  102,65,15,97,192                    ; punpcklwd     %xmm8,%xmm0
15987  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
15988  DB  102,15,110,217                      ; movd          %ecx,%xmm3
15989  DB  102,68,15,112,203,0                 ; pshufd        $0x0,%xmm3,%xmm9
15990  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
15991  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
15992  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
15993  DB  68,15,183,201                       ; movzwl        %cx,%r9d
15994  DB  72,193,233,32                       ; shr           $0x20,%rcx
15995  DB  102,73,15,126,194                   ; movq          %xmm0,%r10
15996  DB  69,15,183,218                       ; movzwl        %r10w,%r11d
15997  DB  73,193,234,30                       ; shr           $0x1e,%r10
15998  DB  243,67,15,16,28,16                  ; movss         (%r8,%r10,1),%xmm3
15999  DB  243,65,15,16,4,136                  ; movss         (%r8,%rcx,4),%xmm0
16000  DB  15,20,216                           ; unpcklps      %xmm0,%xmm3
16001  DB  243,67,15,16,4,152                  ; movss         (%r8,%r11,4),%xmm0
16002  DB  243,67,15,16,20,136                 ; movss         (%r8,%r9,4),%xmm2
16003  DB  15,20,194                           ; unpcklps      %xmm2,%xmm0
16004  DB  15,20,195                           ; unpcklps      %xmm3,%xmm0
16005  DB  76,139,80,16                        ; mov           0x10(%rax),%r10
16006  DB  102,15,115,217,8                    ; psrldq        $0x8,%xmm1
16007  DB  102,65,15,97,200                    ; punpcklwd     %xmm8,%xmm1
16008  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
16009  DB  102,15,112,209,78                   ; pshufd        $0x4e,%xmm1,%xmm2
16010  DB  102,73,15,126,208                   ; movq          %xmm2,%r8
16011  DB  69,15,183,200                       ; movzwl        %r8w,%r9d
16012  DB  73,193,232,32                       ; shr           $0x20,%r8
16013  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
16014  DB  68,15,183,217                       ; movzwl        %cx,%r11d
16015  DB  72,193,233,30                       ; shr           $0x1e,%rcx
16016  DB  243,65,15,16,20,10                  ; movss         (%r10,%rcx,1),%xmm2
16017  DB  243,67,15,16,12,130                 ; movss         (%r10,%r8,4),%xmm1
16018  DB  15,20,209                           ; unpcklps      %xmm1,%xmm2
16019  DB  243,67,15,16,12,154                 ; movss         (%r10,%r11,4),%xmm1
16020  DB  243,67,15,16,28,138                 ; movss         (%r10,%r9,4),%xmm3
16021  DB  15,20,203                           ; unpcklps      %xmm3,%xmm1
16022  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
16023  DB  76,139,72,24                        ; mov           0x18(%rax),%r9
16024  DB  102,69,15,112,218,78                ; pshufd        $0x4e,%xmm10,%xmm11
16025  DB  102,69,15,97,208                    ; punpcklwd     %xmm8,%xmm10
16026  DB  102,69,15,219,209                   ; pand          %xmm9,%xmm10
16027  DB  102,65,15,112,210,78                ; pshufd        $0x4e,%xmm10,%xmm2
16028  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16029  DB  68,15,183,193                       ; movzwl        %cx,%r8d
16030  DB  72,193,233,32                       ; shr           $0x20,%rcx
16031  DB  102,76,15,126,208                   ; movq          %xmm10,%rax
16032  DB  68,15,183,208                       ; movzwl        %ax,%r10d
16033  DB  72,193,232,30                       ; shr           $0x1e,%rax
16034  DB  243,69,15,16,12,1                   ; movss         (%r9,%rax,1),%xmm9
16035  DB  243,65,15,16,20,137                 ; movss         (%r9,%rcx,4),%xmm2
16036  DB  68,15,20,202                        ; unpcklps      %xmm2,%xmm9
16037  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
16038  DB  243,67,15,16,28,129                 ; movss         (%r9,%r8,4),%xmm3
16039  DB  15,20,211                           ; unpcklps      %xmm3,%xmm2
16040  DB  65,15,20,209                        ; unpcklps      %xmm9,%xmm2
16041  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
16042  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
16043  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16044  DB  102,65,15,111,219                   ; movdqa        %xmm11,%xmm3
16045  DB  102,15,113,243,8                    ; psllw         $0x8,%xmm3
16046  DB  102,65,15,113,211,8                 ; psrlw         $0x8,%xmm11
16047  DB  102,68,15,235,219                   ; por           %xmm3,%xmm11
16048  DB  102,69,15,97,216                    ; punpcklwd     %xmm8,%xmm11
16049  DB  65,15,91,219                        ; cvtdq2ps      %xmm11,%xmm3
16050  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
16051  DB  72,173                              ; lods          %ds:(%rsi),%rax
16052  DB  255,224                             ; jmpq          *%rax
16053
16054PUBLIC _sk_load_tables_rgb_u16_be_sse2
16055_sk_load_tables_rgb_u16_be_sse2 LABEL PROC
16056  DB  72,173                              ; lods          %ds:(%rsi),%rax
16057  DB  76,141,12,127                       ; lea           (%rdi,%rdi,2),%r9
16058  DB  72,139,8                            ; mov           (%rax),%rcx
16059  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
16060  DB  243,70,15,111,28,73                 ; movdqu        (%rcx,%r9,2),%xmm11
16061  DB  243,66,15,111,68,73,8               ; movdqu        0x8(%rcx,%r9,2),%xmm0
16062  DB  102,15,115,216,4                    ; psrldq        $0x4,%xmm0
16063  DB  102,65,15,111,219                   ; movdqa        %xmm11,%xmm3
16064  DB  102,15,115,219,6                    ; psrldq        $0x6,%xmm3
16065  DB  102,68,15,97,216                    ; punpcklwd     %xmm0,%xmm11
16066  DB  102,15,115,216,6                    ; psrldq        $0x6,%xmm0
16067  DB  102,15,97,216                       ; punpcklwd     %xmm0,%xmm3
16068  DB  102,65,15,111,195                   ; movdqa        %xmm11,%xmm0
16069  DB  102,15,97,195                       ; punpcklwd     %xmm3,%xmm0
16070  DB  102,68,15,112,208,78                ; pshufd        $0x4e,%xmm0,%xmm10
16071  DB  102,68,15,105,219                   ; punpckhwd     %xmm3,%xmm11
16072  DB  102,69,15,239,192                   ; pxor          %xmm8,%xmm8
16073  DB  102,65,15,97,192                    ; punpcklwd     %xmm8,%xmm0
16074  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
16075  DB  102,15,110,217                      ; movd          %ecx,%xmm3
16076  DB  102,68,15,112,203,0                 ; pshufd        $0x0,%xmm3,%xmm9
16077  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
16078  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
16079  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
16080  DB  68,15,183,201                       ; movzwl        %cx,%r9d
16081  DB  72,193,233,32                       ; shr           $0x20,%rcx
16082  DB  102,73,15,126,194                   ; movq          %xmm0,%r10
16083  DB  69,15,183,218                       ; movzwl        %r10w,%r11d
16084  DB  73,193,234,30                       ; shr           $0x1e,%r10
16085  DB  243,67,15,16,28,16                  ; movss         (%r8,%r10,1),%xmm3
16086  DB  243,65,15,16,4,136                  ; movss         (%r8,%rcx,4),%xmm0
16087  DB  15,20,216                           ; unpcklps      %xmm0,%xmm3
16088  DB  243,67,15,16,4,152                  ; movss         (%r8,%r11,4),%xmm0
16089  DB  243,67,15,16,12,136                 ; movss         (%r8,%r9,4),%xmm1
16090  DB  15,20,193                           ; unpcklps      %xmm1,%xmm0
16091  DB  15,20,195                           ; unpcklps      %xmm3,%xmm0
16092  DB  76,139,80,16                        ; mov           0x10(%rax),%r10
16093  DB  102,69,15,97,208                    ; punpcklwd     %xmm8,%xmm10
16094  DB  102,69,15,219,209                   ; pand          %xmm9,%xmm10
16095  DB  102,65,15,112,202,78                ; pshufd        $0x4e,%xmm10,%xmm1
16096  DB  102,73,15,126,200                   ; movq          %xmm1,%r8
16097  DB  69,15,183,200                       ; movzwl        %r8w,%r9d
16098  DB  73,193,232,32                       ; shr           $0x20,%r8
16099  DB  102,76,15,126,209                   ; movq          %xmm10,%rcx
16100  DB  68,15,183,217                       ; movzwl        %cx,%r11d
16101  DB  72,193,233,30                       ; shr           $0x1e,%rcx
16102  DB  243,65,15,16,28,10                  ; movss         (%r10,%rcx,1),%xmm3
16103  DB  243,67,15,16,12,130                 ; movss         (%r10,%r8,4),%xmm1
16104  DB  15,20,217                           ; unpcklps      %xmm1,%xmm3
16105  DB  243,67,15,16,12,154                 ; movss         (%r10,%r11,4),%xmm1
16106  DB  243,67,15,16,20,138                 ; movss         (%r10,%r9,4),%xmm2
16107  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
16108  DB  15,20,203                           ; unpcklps      %xmm3,%xmm1
16109  DB  76,139,72,24                        ; mov           0x18(%rax),%r9
16110  DB  102,69,15,97,216                    ; punpcklwd     %xmm8,%xmm11
16111  DB  102,69,15,219,217                   ; pand          %xmm9,%xmm11
16112  DB  102,65,15,112,211,78                ; pshufd        $0x4e,%xmm11,%xmm2
16113  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16114  DB  68,15,183,193                       ; movzwl        %cx,%r8d
16115  DB  72,193,233,32                       ; shr           $0x20,%rcx
16116  DB  102,76,15,126,216                   ; movq          %xmm11,%rax
16117  DB  68,15,183,208                       ; movzwl        %ax,%r10d
16118  DB  72,193,232,30                       ; shr           $0x1e,%rax
16119  DB  243,69,15,16,4,1                    ; movss         (%r9,%rax,1),%xmm8
16120  DB  243,65,15,16,20,137                 ; movss         (%r9,%rcx,4),%xmm2
16121  DB  68,15,20,194                        ; unpcklps      %xmm2,%xmm8
16122  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
16123  DB  243,67,15,16,28,129                 ; movss         (%r9,%r8,4),%xmm3
16124  DB  15,20,211                           ; unpcklps      %xmm3,%xmm2
16125  DB  65,15,20,208                        ; unpcklps      %xmm8,%xmm2
16126  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
16127  DB  102,15,110,216                      ; movd          %eax,%xmm3
16128  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
16129  DB  72,173                              ; lods          %ds:(%rsi),%rax
16130  DB  255,224                             ; jmpq          *%rax
16131
16132PUBLIC _sk_byte_tables_sse2
16133_sk_byte_tables_sse2 LABEL PROC
16134  DB  65,86                               ; push          %r14
16135  DB  83                                  ; push          %rbx
16136  DB  72,173                              ; lods          %ds:(%rsi),%rax
16137  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
16138  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
16139  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16140  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
16141  DB  102,15,91,192                       ; cvtps2dq      %xmm0,%xmm0
16142  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
16143  DB  65,137,200                          ; mov           %ecx,%r8d
16144  DB  72,193,233,32                       ; shr           $0x20,%rcx
16145  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
16146  DB  102,73,15,126,193                   ; movq          %xmm0,%r9
16147  DB  69,137,202                          ; mov           %r9d,%r10d
16148  DB  77,137,203                          ; mov           %r9,%r11
16149  DB  73,193,235,32                       ; shr           $0x20,%r11
16150  DB  76,139,48                           ; mov           (%rax),%r14
16151  DB  76,139,72,8                         ; mov           0x8(%rax),%r9
16152  DB  71,15,182,20,22                     ; movzbl        (%r14,%r10,1),%r10d
16153  DB  67,15,182,28,30                     ; movzbl        (%r14,%r11,1),%ebx
16154  DB  193,227,8                           ; shl           $0x8,%ebx
16155  DB  68,9,211                            ; or            %r10d,%ebx
16156  DB  71,15,182,4,6                       ; movzbl        (%r14,%r8,1),%r8d
16157  DB  65,15,182,12,14                     ; movzbl        (%r14,%rcx,1),%ecx
16158  DB  193,225,8                           ; shl           $0x8,%ecx
16159  DB  68,9,193                            ; or            %r8d,%ecx
16160  DB  102,15,196,193,0                    ; pinsrw        $0x0,%ecx,%xmm0
16161  DB  102,15,196,195,1                    ; pinsrw        $0x1,%ebx,%xmm0
16162  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
16163  DB  102,65,15,96,193                    ; punpcklbw     %xmm9,%xmm0
16164  DB  102,65,15,97,193                    ; punpcklwd     %xmm9,%xmm0
16165  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
16166  DB  185,129,128,128,59                  ; mov           $0x3b808081,%ecx
16167  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16168  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16169  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
16170  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
16171  DB  102,15,91,201                       ; cvtps2dq      %xmm1,%xmm1
16172  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
16173  DB  65,137,200                          ; mov           %ecx,%r8d
16174  DB  72,193,233,32                       ; shr           $0x20,%rcx
16175  DB  102,15,112,201,78                   ; pshufd        $0x4e,%xmm1,%xmm1
16176  DB  102,72,15,126,203                   ; movq          %xmm1,%rbx
16177  DB  65,137,218                          ; mov           %ebx,%r10d
16178  DB  72,193,235,32                       ; shr           $0x20,%rbx
16179  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
16180  DB  65,15,182,28,25                     ; movzbl        (%r9,%rbx,1),%ebx
16181  DB  193,227,8                           ; shl           $0x8,%ebx
16182  DB  68,9,211                            ; or            %r10d,%ebx
16183  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
16184  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
16185  DB  193,225,8                           ; shl           $0x8,%ecx
16186  DB  68,9,193                            ; or            %r8d,%ecx
16187  DB  102,15,196,201,0                    ; pinsrw        $0x0,%ecx,%xmm1
16188  DB  102,15,196,203,1                    ; pinsrw        $0x1,%ebx,%xmm1
16189  DB  102,65,15,96,201                    ; punpcklbw     %xmm9,%xmm1
16190  DB  102,65,15,97,201                    ; punpcklwd     %xmm9,%xmm1
16191  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
16192  DB  65,15,89,202                        ; mulps         %xmm10,%xmm1
16193  DB  76,139,72,16                        ; mov           0x10(%rax),%r9
16194  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
16195  DB  102,15,91,210                       ; cvtps2dq      %xmm2,%xmm2
16196  DB  102,72,15,126,211                   ; movq          %xmm2,%rbx
16197  DB  65,137,216                          ; mov           %ebx,%r8d
16198  DB  72,193,235,32                       ; shr           $0x20,%rbx
16199  DB  102,15,112,210,78                   ; pshufd        $0x4e,%xmm2,%xmm2
16200  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16201  DB  65,137,202                          ; mov           %ecx,%r10d
16202  DB  72,193,233,32                       ; shr           $0x20,%rcx
16203  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
16204  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
16205  DB  193,225,8                           ; shl           $0x8,%ecx
16206  DB  68,9,209                            ; or            %r10d,%ecx
16207  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
16208  DB  65,15,182,28,25                     ; movzbl        (%r9,%rbx,1),%ebx
16209  DB  193,227,8                           ; shl           $0x8,%ebx
16210  DB  68,9,195                            ; or            %r8d,%ebx
16211  DB  102,15,196,211,0                    ; pinsrw        $0x0,%ebx,%xmm2
16212  DB  102,15,196,209,1                    ; pinsrw        $0x1,%ecx,%xmm2
16213  DB  102,65,15,96,209                    ; punpcklbw     %xmm9,%xmm2
16214  DB  102,65,15,97,209                    ; punpcklwd     %xmm9,%xmm2
16215  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
16216  DB  65,15,89,210                        ; mulps         %xmm10,%xmm2
16217  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
16218  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
16219  DB  102,65,15,91,216                    ; cvtps2dq      %xmm8,%xmm3
16220  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
16221  DB  65,137,200                          ; mov           %ecx,%r8d
16222  DB  72,193,233,32                       ; shr           $0x20,%rcx
16223  DB  102,15,112,219,78                   ; pshufd        $0x4e,%xmm3,%xmm3
16224  DB  102,72,15,126,219                   ; movq          %xmm3,%rbx
16225  DB  65,137,217                          ; mov           %ebx,%r9d
16226  DB  72,193,235,32                       ; shr           $0x20,%rbx
16227  DB  70,15,182,12,8                      ; movzbl        (%rax,%r9,1),%r9d
16228  DB  15,182,28,24                        ; movzbl        (%rax,%rbx,1),%ebx
16229  DB  193,227,8                           ; shl           $0x8,%ebx
16230  DB  68,9,203                            ; or            %r9d,%ebx
16231  DB  70,15,182,4,0                       ; movzbl        (%rax,%r8,1),%r8d
16232  DB  15,182,4,8                          ; movzbl        (%rax,%rcx,1),%eax
16233  DB  193,224,8                           ; shl           $0x8,%eax
16234  DB  68,9,192                            ; or            %r8d,%eax
16235  DB  102,15,196,216,0                    ; pinsrw        $0x0,%eax,%xmm3
16236  DB  102,15,196,219,1                    ; pinsrw        $0x1,%ebx,%xmm3
16237  DB  102,65,15,96,217                    ; punpcklbw     %xmm9,%xmm3
16238  DB  102,65,15,97,217                    ; punpcklwd     %xmm9,%xmm3
16239  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
16240  DB  65,15,89,218                        ; mulps         %xmm10,%xmm3
16241  DB  72,173                              ; lods          %ds:(%rsi),%rax
16242  DB  91                                  ; pop           %rbx
16243  DB  65,94                               ; pop           %r14
16244  DB  255,224                             ; jmpq          *%rax
16245
16246PUBLIC _sk_byte_tables_rgb_sse2
16247_sk_byte_tables_rgb_sse2 LABEL PROC
16248  DB  65,86                               ; push          %r14
16249  DB  83                                  ; push          %rbx
16250  DB  72,173                              ; lods          %ds:(%rsi),%rax
16251  DB  139,72,24                           ; mov           0x18(%rax),%ecx
16252  DB  255,201                             ; dec           %ecx
16253  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
16254  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16255  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16256  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
16257  DB  102,15,91,192                       ; cvtps2dq      %xmm0,%xmm0
16258  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
16259  DB  65,137,200                          ; mov           %ecx,%r8d
16260  DB  72,193,233,32                       ; shr           $0x20,%rcx
16261  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
16262  DB  102,73,15,126,193                   ; movq          %xmm0,%r9
16263  DB  69,137,202                          ; mov           %r9d,%r10d
16264  DB  77,137,203                          ; mov           %r9,%r11
16265  DB  73,193,235,32                       ; shr           $0x20,%r11
16266  DB  76,139,48                           ; mov           (%rax),%r14
16267  DB  76,139,72,8                         ; mov           0x8(%rax),%r9
16268  DB  71,15,182,20,22                     ; movzbl        (%r14,%r10,1),%r10d
16269  DB  67,15,182,28,30                     ; movzbl        (%r14,%r11,1),%ebx
16270  DB  193,227,8                           ; shl           $0x8,%ebx
16271  DB  68,9,211                            ; or            %r10d,%ebx
16272  DB  71,15,182,4,6                       ; movzbl        (%r14,%r8,1),%r8d
16273  DB  65,15,182,12,14                     ; movzbl        (%r14,%rcx,1),%ecx
16274  DB  193,225,8                           ; shl           $0x8,%ecx
16275  DB  68,9,193                            ; or            %r8d,%ecx
16276  DB  102,15,196,193,0                    ; pinsrw        $0x0,%ecx,%xmm0
16277  DB  102,15,196,195,1                    ; pinsrw        $0x1,%ebx,%xmm0
16278  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
16279  DB  102,65,15,96,193                    ; punpcklbw     %xmm9,%xmm0
16280  DB  102,65,15,97,193                    ; punpcklwd     %xmm9,%xmm0
16281  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
16282  DB  185,129,128,128,59                  ; mov           $0x3b808081,%ecx
16283  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16284  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16285  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
16286  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
16287  DB  102,15,91,201                       ; cvtps2dq      %xmm1,%xmm1
16288  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
16289  DB  65,137,200                          ; mov           %ecx,%r8d
16290  DB  72,193,233,32                       ; shr           $0x20,%rcx
16291  DB  102,15,112,201,78                   ; pshufd        $0x4e,%xmm1,%xmm1
16292  DB  102,72,15,126,203                   ; movq          %xmm1,%rbx
16293  DB  65,137,218                          ; mov           %ebx,%r10d
16294  DB  72,193,235,32                       ; shr           $0x20,%rbx
16295  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
16296  DB  65,15,182,28,25                     ; movzbl        (%r9,%rbx,1),%ebx
16297  DB  193,227,8                           ; shl           $0x8,%ebx
16298  DB  68,9,211                            ; or            %r10d,%ebx
16299  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
16300  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
16301  DB  193,225,8                           ; shl           $0x8,%ecx
16302  DB  68,9,193                            ; or            %r8d,%ecx
16303  DB  102,15,196,201,0                    ; pinsrw        $0x0,%ecx,%xmm1
16304  DB  102,15,196,203,1                    ; pinsrw        $0x1,%ebx,%xmm1
16305  DB  102,65,15,96,201                    ; punpcklbw     %xmm9,%xmm1
16306  DB  102,65,15,97,201                    ; punpcklwd     %xmm9,%xmm1
16307  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
16308  DB  65,15,89,202                        ; mulps         %xmm10,%xmm1
16309  DB  72,139,64,16                        ; mov           0x10(%rax),%rax
16310  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
16311  DB  102,15,91,210                       ; cvtps2dq      %xmm2,%xmm2
16312  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16313  DB  65,137,200                          ; mov           %ecx,%r8d
16314  DB  72,193,233,32                       ; shr           $0x20,%rcx
16315  DB  102,15,112,210,78                   ; pshufd        $0x4e,%xmm2,%xmm2
16316  DB  102,72,15,126,211                   ; movq          %xmm2,%rbx
16317  DB  65,137,217                          ; mov           %ebx,%r9d
16318  DB  72,193,235,32                       ; shr           $0x20,%rbx
16319  DB  70,15,182,12,8                      ; movzbl        (%rax,%r9,1),%r9d
16320  DB  15,182,28,24                        ; movzbl        (%rax,%rbx,1),%ebx
16321  DB  193,227,8                           ; shl           $0x8,%ebx
16322  DB  68,9,203                            ; or            %r9d,%ebx
16323  DB  70,15,182,4,0                       ; movzbl        (%rax,%r8,1),%r8d
16324  DB  15,182,4,8                          ; movzbl        (%rax,%rcx,1),%eax
16325  DB  193,224,8                           ; shl           $0x8,%eax
16326  DB  68,9,192                            ; or            %r8d,%eax
16327  DB  102,15,196,208,0                    ; pinsrw        $0x0,%eax,%xmm2
16328  DB  102,15,196,211,1                    ; pinsrw        $0x1,%ebx,%xmm2
16329  DB  102,65,15,96,209                    ; punpcklbw     %xmm9,%xmm2
16330  DB  102,65,15,97,209                    ; punpcklwd     %xmm9,%xmm2
16331  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
16332  DB  65,15,89,210                        ; mulps         %xmm10,%xmm2
16333  DB  72,173                              ; lods          %ds:(%rsi),%rax
16334  DB  91                                  ; pop           %rbx
16335  DB  65,94                               ; pop           %r14
16336  DB  255,224                             ; jmpq          *%rax
16337
16338PUBLIC _sk_table_r_sse2
16339_sk_table_r_sse2 LABEL PROC
16340  DB  72,173                              ; lods          %ds:(%rsi),%rax
16341  DB  76,139,8                            ; mov           (%rax),%r9
16342  DB  139,64,8                            ; mov           0x8(%rax),%eax
16343  DB  255,200                             ; dec           %eax
16344  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16345  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16346  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16347  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
16348  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16349  DB  102,65,15,112,192,78                ; pshufd        $0x4e,%xmm8,%xmm0
16350  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
16351  DB  65,137,192                          ; mov           %eax,%r8d
16352  DB  72,193,232,32                       ; shr           $0x20,%rax
16353  DB  102,76,15,126,193                   ; movq          %xmm8,%rcx
16354  DB  65,137,202                          ; mov           %ecx,%r10d
16355  DB  72,193,233,32                       ; shr           $0x20,%rcx
16356  DB  243,69,15,16,4,137                  ; movss         (%r9,%rcx,4),%xmm8
16357  DB  243,65,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm0
16358  DB  68,15,20,192                        ; unpcklps      %xmm0,%xmm8
16359  DB  243,67,15,16,4,145                  ; movss         (%r9,%r10,4),%xmm0
16360  DB  243,71,15,16,12,129                 ; movss         (%r9,%r8,4),%xmm9
16361  DB  65,15,20,193                        ; unpcklps      %xmm9,%xmm0
16362  DB  65,15,20,192                        ; unpcklps      %xmm8,%xmm0
16363  DB  72,173                              ; lods          %ds:(%rsi),%rax
16364  DB  255,224                             ; jmpq          *%rax
16365
16366PUBLIC _sk_table_g_sse2
16367_sk_table_g_sse2 LABEL PROC
16368  DB  72,173                              ; lods          %ds:(%rsi),%rax
16369  DB  76,139,8                            ; mov           (%rax),%r9
16370  DB  139,64,8                            ; mov           0x8(%rax),%eax
16371  DB  255,200                             ; dec           %eax
16372  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16373  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16374  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16375  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
16376  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16377  DB  102,65,15,112,200,78                ; pshufd        $0x4e,%xmm8,%xmm1
16378  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
16379  DB  65,137,192                          ; mov           %eax,%r8d
16380  DB  72,193,232,32                       ; shr           $0x20,%rax
16381  DB  102,76,15,126,193                   ; movq          %xmm8,%rcx
16382  DB  65,137,202                          ; mov           %ecx,%r10d
16383  DB  72,193,233,32                       ; shr           $0x20,%rcx
16384  DB  243,69,15,16,4,137                  ; movss         (%r9,%rcx,4),%xmm8
16385  DB  243,65,15,16,12,129                 ; movss         (%r9,%rax,4),%xmm1
16386  DB  68,15,20,193                        ; unpcklps      %xmm1,%xmm8
16387  DB  243,67,15,16,12,145                 ; movss         (%r9,%r10,4),%xmm1
16388  DB  243,71,15,16,12,129                 ; movss         (%r9,%r8,4),%xmm9
16389  DB  65,15,20,201                        ; unpcklps      %xmm9,%xmm1
16390  DB  65,15,20,200                        ; unpcklps      %xmm8,%xmm1
16391  DB  72,173                              ; lods          %ds:(%rsi),%rax
16392  DB  255,224                             ; jmpq          *%rax
16393
16394PUBLIC _sk_table_b_sse2
16395_sk_table_b_sse2 LABEL PROC
16396  DB  72,173                              ; lods          %ds:(%rsi),%rax
16397  DB  76,139,8                            ; mov           (%rax),%r9
16398  DB  139,64,8                            ; mov           0x8(%rax),%eax
16399  DB  255,200                             ; dec           %eax
16400  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16401  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16402  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16403  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
16404  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16405  DB  102,65,15,112,208,78                ; pshufd        $0x4e,%xmm8,%xmm2
16406  DB  102,72,15,126,208                   ; movq          %xmm2,%rax
16407  DB  65,137,192                          ; mov           %eax,%r8d
16408  DB  72,193,232,32                       ; shr           $0x20,%rax
16409  DB  102,76,15,126,193                   ; movq          %xmm8,%rcx
16410  DB  65,137,202                          ; mov           %ecx,%r10d
16411  DB  72,193,233,32                       ; shr           $0x20,%rcx
16412  DB  243,69,15,16,4,137                  ; movss         (%r9,%rcx,4),%xmm8
16413  DB  243,65,15,16,20,129                 ; movss         (%r9,%rax,4),%xmm2
16414  DB  68,15,20,194                        ; unpcklps      %xmm2,%xmm8
16415  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
16416  DB  243,71,15,16,12,129                 ; movss         (%r9,%r8,4),%xmm9
16417  DB  65,15,20,209                        ; unpcklps      %xmm9,%xmm2
16418  DB  65,15,20,208                        ; unpcklps      %xmm8,%xmm2
16419  DB  72,173                              ; lods          %ds:(%rsi),%rax
16420  DB  255,224                             ; jmpq          *%rax
16421
16422PUBLIC _sk_table_a_sse2
16423_sk_table_a_sse2 LABEL PROC
16424  DB  72,173                              ; lods          %ds:(%rsi),%rax
16425  DB  76,139,8                            ; mov           (%rax),%r9
16426  DB  139,64,8                            ; mov           0x8(%rax),%eax
16427  DB  255,200                             ; dec           %eax
16428  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16429  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16430  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16431  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
16432  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16433  DB  102,65,15,112,216,78                ; pshufd        $0x4e,%xmm8,%xmm3
16434  DB  102,72,15,126,216                   ; movq          %xmm3,%rax
16435  DB  65,137,192                          ; mov           %eax,%r8d
16436  DB  72,193,232,32                       ; shr           $0x20,%rax
16437  DB  102,76,15,126,193                   ; movq          %xmm8,%rcx
16438  DB  65,137,202                          ; mov           %ecx,%r10d
16439  DB  72,193,233,32                       ; shr           $0x20,%rcx
16440  DB  243,69,15,16,4,137                  ; movss         (%r9,%rcx,4),%xmm8
16441  DB  243,65,15,16,28,129                 ; movss         (%r9,%rax,4),%xmm3
16442  DB  68,15,20,195                        ; unpcklps      %xmm3,%xmm8
16443  DB  243,67,15,16,28,145                 ; movss         (%r9,%r10,4),%xmm3
16444  DB  243,71,15,16,12,129                 ; movss         (%r9,%r8,4),%xmm9
16445  DB  65,15,20,217                        ; unpcklps      %xmm9,%xmm3
16446  DB  65,15,20,216                        ; unpcklps      %xmm8,%xmm3
16447  DB  72,173                              ; lods          %ds:(%rsi),%rax
16448  DB  255,224                             ; jmpq          *%rax
16449
16450PUBLIC _sk_parametric_r_sse2
16451_sk_parametric_r_sse2 LABEL PROC
16452  DB  72,173                              ; lods          %ds:(%rsi),%rax
16453  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
16454  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16455  DB  243,68,15,16,64,12                  ; movss         0xc(%rax),%xmm8
16456  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16457  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
16458  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
16459  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16460  DB  68,15,89,216                        ; mulps         %xmm0,%xmm11
16461  DB  65,15,194,193,2                     ; cmpleps       %xmm9,%xmm0
16462  DB  243,68,15,16,72,24                  ; movss         0x18(%rax),%xmm9
16463  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16464  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
16465  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
16466  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
16467  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16468  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
16469  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
16470  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
16471  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16472  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16473  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
16474  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
16475  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16476  DB  102,69,15,112,236,0                 ; pshufd        $0x0,%xmm12,%xmm13
16477  DB  102,69,15,219,235                   ; pand          %xmm11,%xmm13
16478  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
16479  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16480  DB  102,69,15,112,227,0                 ; pshufd        $0x0,%xmm11,%xmm12
16481  DB  102,69,15,235,229                   ; por           %xmm13,%xmm12
16482  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
16483  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16484  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16485  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16486  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
16487  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16488  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16489  DB  69,15,89,220                        ; mulps         %xmm12,%xmm11
16490  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16491  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
16492  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
16493  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
16494  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16495  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
16496  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16497  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
16498  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
16499  DB  102,68,15,110,249                   ; movd          %ecx,%xmm15
16500  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16501  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
16502  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16503  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
16504  DB  69,15,94,238                        ; divps         %xmm14,%xmm13
16505  DB  69,15,92,213                        ; subps         %xmm13,%xmm10
16506  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
16507  DB  243,69,15,91,202                    ; cvttps2dq     %xmm10,%xmm9
16508  DB  69,15,91,225                        ; cvtdq2ps      %xmm9,%xmm12
16509  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
16510  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
16511  DB  69,15,88,250                        ; addps         %xmm10,%xmm15
16512  DB  69,15,194,212,1                     ; cmpltps       %xmm12,%xmm10
16513  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16514  DB  69,15,84,211                        ; andps         %xmm11,%xmm10
16515  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
16516  DB  69,15,92,226                        ; subps         %xmm10,%xmm12
16517  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
16518  DB  102,69,15,110,208                   ; movd          %r8d,%xmm10
16519  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16520  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
16521  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16522  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16523  DB  69,15,89,229                        ; mulps         %xmm13,%xmm12
16524  DB  69,15,92,252                        ; subps         %xmm12,%xmm15
16525  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
16526  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16527  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16528  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
16529  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16530  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16531  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
16532  DB  69,15,94,230                        ; divps         %xmm14,%xmm12
16533  DB  69,15,88,231                        ; addps         %xmm15,%xmm12
16534  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
16535  DB  102,69,15,91,212                    ; cvtps2dq      %xmm12,%xmm10
16536  DB  243,68,15,16,96,20                  ; movss         0x14(%rax),%xmm12
16537  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16538  DB  69,15,88,226                        ; addps         %xmm10,%xmm12
16539  DB  68,15,84,192                        ; andps         %xmm0,%xmm8
16540  DB  65,15,85,196                        ; andnps        %xmm12,%xmm0
16541  DB  65,15,86,192                        ; orps          %xmm8,%xmm0
16542  DB  65,15,95,193                        ; maxps         %xmm9,%xmm0
16543  DB  65,15,93,195                        ; minps         %xmm11,%xmm0
16544  DB  72,173                              ; lods          %ds:(%rsi),%rax
16545  DB  255,224                             ; jmpq          *%rax
16546
16547PUBLIC _sk_parametric_g_sse2
16548_sk_parametric_g_sse2 LABEL PROC
16549  DB  72,173                              ; lods          %ds:(%rsi),%rax
16550  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
16551  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16552  DB  243,68,15,16,64,12                  ; movss         0xc(%rax),%xmm8
16553  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16554  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
16555  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
16556  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16557  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
16558  DB  65,15,194,201,2                     ; cmpleps       %xmm9,%xmm1
16559  DB  243,68,15,16,72,24                  ; movss         0x18(%rax),%xmm9
16560  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16561  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
16562  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
16563  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
16564  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16565  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
16566  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
16567  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
16568  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16569  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16570  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
16571  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
16572  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16573  DB  102,69,15,112,236,0                 ; pshufd        $0x0,%xmm12,%xmm13
16574  DB  102,69,15,219,235                   ; pand          %xmm11,%xmm13
16575  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
16576  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16577  DB  102,69,15,112,227,0                 ; pshufd        $0x0,%xmm11,%xmm12
16578  DB  102,69,15,235,229                   ; por           %xmm13,%xmm12
16579  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
16580  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16581  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16582  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16583  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
16584  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16585  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16586  DB  69,15,89,220                        ; mulps         %xmm12,%xmm11
16587  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16588  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
16589  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
16590  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
16591  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16592  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
16593  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16594  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
16595  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
16596  DB  102,68,15,110,249                   ; movd          %ecx,%xmm15
16597  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16598  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
16599  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16600  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
16601  DB  69,15,94,238                        ; divps         %xmm14,%xmm13
16602  DB  69,15,92,213                        ; subps         %xmm13,%xmm10
16603  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
16604  DB  243,69,15,91,202                    ; cvttps2dq     %xmm10,%xmm9
16605  DB  69,15,91,225                        ; cvtdq2ps      %xmm9,%xmm12
16606  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
16607  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
16608  DB  69,15,88,250                        ; addps         %xmm10,%xmm15
16609  DB  69,15,194,212,1                     ; cmpltps       %xmm12,%xmm10
16610  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16611  DB  69,15,84,211                        ; andps         %xmm11,%xmm10
16612  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
16613  DB  69,15,92,226                        ; subps         %xmm10,%xmm12
16614  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
16615  DB  102,69,15,110,208                   ; movd          %r8d,%xmm10
16616  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16617  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
16618  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16619  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16620  DB  69,15,89,229                        ; mulps         %xmm13,%xmm12
16621  DB  69,15,92,252                        ; subps         %xmm12,%xmm15
16622  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
16623  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16624  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16625  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
16626  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16627  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16628  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
16629  DB  69,15,94,230                        ; divps         %xmm14,%xmm12
16630  DB  69,15,88,231                        ; addps         %xmm15,%xmm12
16631  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
16632  DB  102,69,15,91,212                    ; cvtps2dq      %xmm12,%xmm10
16633  DB  243,68,15,16,96,20                  ; movss         0x14(%rax),%xmm12
16634  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16635  DB  69,15,88,226                        ; addps         %xmm10,%xmm12
16636  DB  68,15,84,193                        ; andps         %xmm1,%xmm8
16637  DB  65,15,85,204                        ; andnps        %xmm12,%xmm1
16638  DB  65,15,86,200                        ; orps          %xmm8,%xmm1
16639  DB  65,15,95,201                        ; maxps         %xmm9,%xmm1
16640  DB  65,15,93,203                        ; minps         %xmm11,%xmm1
16641  DB  72,173                              ; lods          %ds:(%rsi),%rax
16642  DB  255,224                             ; jmpq          *%rax
16643
16644PUBLIC _sk_parametric_b_sse2
16645_sk_parametric_b_sse2 LABEL PROC
16646  DB  72,173                              ; lods          %ds:(%rsi),%rax
16647  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
16648  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16649  DB  243,68,15,16,64,12                  ; movss         0xc(%rax),%xmm8
16650  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16651  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
16652  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
16653  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16654  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
16655  DB  65,15,194,209,2                     ; cmpleps       %xmm9,%xmm2
16656  DB  243,68,15,16,72,24                  ; movss         0x18(%rax),%xmm9
16657  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16658  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
16659  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
16660  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
16661  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16662  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
16663  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
16664  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
16665  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16666  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16667  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
16668  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
16669  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16670  DB  102,69,15,112,236,0                 ; pshufd        $0x0,%xmm12,%xmm13
16671  DB  102,69,15,219,235                   ; pand          %xmm11,%xmm13
16672  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
16673  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16674  DB  102,69,15,112,227,0                 ; pshufd        $0x0,%xmm11,%xmm12
16675  DB  102,69,15,235,229                   ; por           %xmm13,%xmm12
16676  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
16677  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16678  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16679  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16680  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
16681  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16682  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16683  DB  69,15,89,220                        ; mulps         %xmm12,%xmm11
16684  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16685  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
16686  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
16687  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
16688  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16689  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
16690  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16691  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
16692  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
16693  DB  102,68,15,110,249                   ; movd          %ecx,%xmm15
16694  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16695  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
16696  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16697  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
16698  DB  69,15,94,238                        ; divps         %xmm14,%xmm13
16699  DB  69,15,92,213                        ; subps         %xmm13,%xmm10
16700  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
16701  DB  243,69,15,91,202                    ; cvttps2dq     %xmm10,%xmm9
16702  DB  69,15,91,225                        ; cvtdq2ps      %xmm9,%xmm12
16703  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
16704  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
16705  DB  69,15,88,250                        ; addps         %xmm10,%xmm15
16706  DB  69,15,194,212,1                     ; cmpltps       %xmm12,%xmm10
16707  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16708  DB  69,15,84,211                        ; andps         %xmm11,%xmm10
16709  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
16710  DB  69,15,92,226                        ; subps         %xmm10,%xmm12
16711  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
16712  DB  102,69,15,110,208                   ; movd          %r8d,%xmm10
16713  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16714  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
16715  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16716  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16717  DB  69,15,89,229                        ; mulps         %xmm13,%xmm12
16718  DB  69,15,92,252                        ; subps         %xmm12,%xmm15
16719  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
16720  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16721  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16722  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
16723  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16724  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16725  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
16726  DB  69,15,94,230                        ; divps         %xmm14,%xmm12
16727  DB  69,15,88,231                        ; addps         %xmm15,%xmm12
16728  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
16729  DB  102,69,15,91,212                    ; cvtps2dq      %xmm12,%xmm10
16730  DB  243,68,15,16,96,20                  ; movss         0x14(%rax),%xmm12
16731  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16732  DB  69,15,88,226                        ; addps         %xmm10,%xmm12
16733  DB  68,15,84,194                        ; andps         %xmm2,%xmm8
16734  DB  65,15,85,212                        ; andnps        %xmm12,%xmm2
16735  DB  65,15,86,208                        ; orps          %xmm8,%xmm2
16736  DB  65,15,95,209                        ; maxps         %xmm9,%xmm2
16737  DB  65,15,93,211                        ; minps         %xmm11,%xmm2
16738  DB  72,173                              ; lods          %ds:(%rsi),%rax
16739  DB  255,224                             ; jmpq          *%rax
16740
16741PUBLIC _sk_parametric_a_sse2
16742_sk_parametric_a_sse2 LABEL PROC
16743  DB  72,173                              ; lods          %ds:(%rsi),%rax
16744  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
16745  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16746  DB  243,68,15,16,64,12                  ; movss         0xc(%rax),%xmm8
16747  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16748  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
16749  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
16750  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16751  DB  68,15,89,219                        ; mulps         %xmm3,%xmm11
16752  DB  65,15,194,217,2                     ; cmpleps       %xmm9,%xmm3
16753  DB  243,68,15,16,72,24                  ; movss         0x18(%rax),%xmm9
16754  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16755  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
16756  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
16757  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
16758  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16759  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
16760  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
16761  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
16762  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16763  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16764  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
16765  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
16766  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16767  DB  102,69,15,112,236,0                 ; pshufd        $0x0,%xmm12,%xmm13
16768  DB  102,69,15,219,235                   ; pand          %xmm11,%xmm13
16769  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
16770  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16771  DB  102,69,15,112,227,0                 ; pshufd        $0x0,%xmm11,%xmm12
16772  DB  102,69,15,235,229                   ; por           %xmm13,%xmm12
16773  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
16774  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16775  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16776  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16777  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
16778  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16779  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16780  DB  69,15,89,220                        ; mulps         %xmm12,%xmm11
16781  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16782  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
16783  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
16784  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
16785  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16786  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
16787  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16788  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
16789  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
16790  DB  102,68,15,110,249                   ; movd          %ecx,%xmm15
16791  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16792  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
16793  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16794  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
16795  DB  69,15,94,238                        ; divps         %xmm14,%xmm13
16796  DB  69,15,92,213                        ; subps         %xmm13,%xmm10
16797  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
16798  DB  243,69,15,91,202                    ; cvttps2dq     %xmm10,%xmm9
16799  DB  69,15,91,225                        ; cvtdq2ps      %xmm9,%xmm12
16800  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
16801  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
16802  DB  69,15,88,250                        ; addps         %xmm10,%xmm15
16803  DB  69,15,194,212,1                     ; cmpltps       %xmm12,%xmm10
16804  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16805  DB  69,15,84,211                        ; andps         %xmm11,%xmm10
16806  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
16807  DB  69,15,92,226                        ; subps         %xmm10,%xmm12
16808  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
16809  DB  102,69,15,110,208                   ; movd          %r8d,%xmm10
16810  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16811  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
16812  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16813  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16814  DB  69,15,89,229                        ; mulps         %xmm13,%xmm12
16815  DB  69,15,92,252                        ; subps         %xmm12,%xmm15
16816  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
16817  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16818  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16819  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
16820  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16821  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16822  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
16823  DB  69,15,94,230                        ; divps         %xmm14,%xmm12
16824  DB  69,15,88,231                        ; addps         %xmm15,%xmm12
16825  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
16826  DB  102,69,15,91,212                    ; cvtps2dq      %xmm12,%xmm10
16827  DB  243,68,15,16,96,20                  ; movss         0x14(%rax),%xmm12
16828  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16829  DB  69,15,88,226                        ; addps         %xmm10,%xmm12
16830  DB  68,15,84,195                        ; andps         %xmm3,%xmm8
16831  DB  65,15,85,220                        ; andnps        %xmm12,%xmm3
16832  DB  65,15,86,216                        ; orps          %xmm8,%xmm3
16833  DB  65,15,95,217                        ; maxps         %xmm9,%xmm3
16834  DB  65,15,93,219                        ; minps         %xmm11,%xmm3
16835  DB  72,173                              ; lods          %ds:(%rsi),%rax
16836  DB  255,224                             ; jmpq          *%rax
16837
16838PUBLIC _sk_load_a8_sse2
16839_sk_load_a8_sse2 LABEL PROC
16840  DB  72,173                              ; lods          %ds:(%rsi),%rax
16841  DB  72,139,0                            ; mov           (%rax),%rax
16842  DB  102,15,110,4,56                     ; movd          (%rax,%rdi,1),%xmm0
16843  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
16844  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
16845  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
16846  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
16847  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
16848  DB  102,15,110,216                      ; movd          %eax,%xmm3
16849  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
16850  DB  15,89,216                           ; mulps         %xmm0,%xmm3
16851  DB  72,173                              ; lods          %ds:(%rsi),%rax
16852  DB  15,87,192                           ; xorps         %xmm0,%xmm0
16853  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
16854  DB  15,87,210                           ; xorps         %xmm2,%xmm2
16855  DB  255,224                             ; jmpq          *%rax
16856
16857PUBLIC _sk_gather_a8_sse2
16858_sk_gather_a8_sse2 LABEL PROC
16859  DB  72,173                              ; lods          %ds:(%rsi),%rax
16860  DB  76,139,8                            ; mov           (%rax),%r9
16861  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
16862  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
16863  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
16864  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
16865  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
16866  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
16867  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
16868  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
16869  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
16870  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
16871  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
16872  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
16873  DB  65,137,192                          ; mov           %eax,%r8d
16874  DB  72,193,232,32                       ; shr           $0x20,%rax
16875  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
16876  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
16877  DB  65,137,202                          ; mov           %ecx,%r10d
16878  DB  72,193,233,32                       ; shr           $0x20,%rcx
16879  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
16880  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
16881  DB  193,225,8                           ; shl           $0x8,%ecx
16882  DB  68,9,209                            ; or            %r10d,%ecx
16883  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
16884  DB  65,15,182,4,1                       ; movzbl        (%r9,%rax,1),%eax
16885  DB  193,224,8                           ; shl           $0x8,%eax
16886  DB  68,9,192                            ; or            %r8d,%eax
16887  DB  102,15,196,192,0                    ; pinsrw        $0x0,%eax,%xmm0
16888  DB  102,15,196,193,1                    ; pinsrw        $0x1,%ecx,%xmm0
16889  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
16890  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
16891  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
16892  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
16893  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
16894  DB  102,15,110,216                      ; movd          %eax,%xmm3
16895  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
16896  DB  15,89,216                           ; mulps         %xmm0,%xmm3
16897  DB  72,173                              ; lods          %ds:(%rsi),%rax
16898  DB  15,87,192                           ; xorps         %xmm0,%xmm0
16899  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
16900  DB  102,15,239,210                      ; pxor          %xmm2,%xmm2
16901  DB  255,224                             ; jmpq          *%rax
16902
16903PUBLIC _sk_store_a8_sse2
16904_sk_store_a8_sse2 LABEL PROC
16905  DB  72,173                              ; lods          %ds:(%rsi),%rax
16906  DB  72,139,0                            ; mov           (%rax),%rax
16907  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
16908  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
16909  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16910  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
16911  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16912  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
16913  DB  102,65,15,114,224,16                ; psrad         $0x10,%xmm8
16914  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
16915  DB  102,69,15,103,192                   ; packuswb      %xmm8,%xmm8
16916  DB  102,68,15,126,4,56                  ; movd          %xmm8,(%rax,%rdi,1)
16917  DB  72,173                              ; lods          %ds:(%rsi),%rax
16918  DB  255,224                             ; jmpq          *%rax
16919
16920PUBLIC _sk_load_g8_sse2
16921_sk_load_g8_sse2 LABEL PROC
16922  DB  72,173                              ; lods          %ds:(%rsi),%rax
16923  DB  72,139,0                            ; mov           (%rax),%rax
16924  DB  102,15,110,4,56                     ; movd          (%rax,%rdi,1),%xmm0
16925  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
16926  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
16927  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
16928  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
16929  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
16930  DB  102,15,110,192                      ; movd          %eax,%xmm0
16931  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
16932  DB  15,89,193                           ; mulps         %xmm1,%xmm0
16933  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
16934  DB  102,15,110,216                      ; movd          %eax,%xmm3
16935  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
16936  DB  72,173                              ; lods          %ds:(%rsi),%rax
16937  DB  15,40,200                           ; movaps        %xmm0,%xmm1
16938  DB  15,40,208                           ; movaps        %xmm0,%xmm2
16939  DB  255,224                             ; jmpq          *%rax
16940
16941PUBLIC _sk_gather_g8_sse2
16942_sk_gather_g8_sse2 LABEL PROC
16943  DB  72,173                              ; lods          %ds:(%rsi),%rax
16944  DB  76,139,8                            ; mov           (%rax),%r9
16945  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
16946  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
16947  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
16948  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
16949  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
16950  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
16951  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
16952  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
16953  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
16954  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
16955  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
16956  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
16957  DB  65,137,192                          ; mov           %eax,%r8d
16958  DB  72,193,232,32                       ; shr           $0x20,%rax
16959  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
16960  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
16961  DB  65,137,202                          ; mov           %ecx,%r10d
16962  DB  72,193,233,32                       ; shr           $0x20,%rcx
16963  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
16964  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
16965  DB  193,225,8                           ; shl           $0x8,%ecx
16966  DB  68,9,209                            ; or            %r10d,%ecx
16967  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
16968  DB  65,15,182,4,1                       ; movzbl        (%r9,%rax,1),%eax
16969  DB  193,224,8                           ; shl           $0x8,%eax
16970  DB  68,9,192                            ; or            %r8d,%eax
16971  DB  102,15,196,192,0                    ; pinsrw        $0x0,%eax,%xmm0
16972  DB  102,15,196,193,1                    ; pinsrw        $0x1,%ecx,%xmm0
16973  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
16974  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
16975  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
16976  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
16977  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
16978  DB  102,15,110,192                      ; movd          %eax,%xmm0
16979  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
16980  DB  15,89,193                           ; mulps         %xmm1,%xmm0
16981  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
16982  DB  102,15,110,216                      ; movd          %eax,%xmm3
16983  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
16984  DB  72,173                              ; lods          %ds:(%rsi),%rax
16985  DB  15,40,200                           ; movaps        %xmm0,%xmm1
16986  DB  15,40,208                           ; movaps        %xmm0,%xmm2
16987  DB  255,224                             ; jmpq          *%rax
16988
16989PUBLIC _sk_gather_i8_sse2
16990_sk_gather_i8_sse2 LABEL PROC
16991  DB  72,173                              ; lods          %ds:(%rsi),%rax
16992  DB  73,137,192                          ; mov           %rax,%r8
16993  DB  77,133,192                          ; test          %r8,%r8
16994  DB  116,5                               ; je            295d <_sk_gather_i8_sse2+0xf>
16995  DB  76,137,192                          ; mov           %r8,%rax
16996  DB  235,2                               ; jmp           295f <_sk_gather_i8_sse2+0x11>
16997  DB  72,173                              ; lods          %ds:(%rsi),%rax
16998  DB  76,139,16                           ; mov           (%rax),%r10
16999  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17000  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17001  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17002  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17003  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17004  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17005  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17006  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17007  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17008  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17009  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17010  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
17011  DB  65,137,193                          ; mov           %eax,%r9d
17012  DB  72,193,232,32                       ; shr           $0x20,%rax
17013  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
17014  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17015  DB  65,137,203                          ; mov           %ecx,%r11d
17016  DB  72,193,233,32                       ; shr           $0x20,%rcx
17017  DB  71,15,182,28,26                     ; movzbl        (%r10,%r11,1),%r11d
17018  DB  65,15,182,12,10                     ; movzbl        (%r10,%rcx,1),%ecx
17019  DB  193,225,8                           ; shl           $0x8,%ecx
17020  DB  68,9,217                            ; or            %r11d,%ecx
17021  DB  71,15,182,12,10                     ; movzbl        (%r10,%r9,1),%r9d
17022  DB  65,15,182,4,2                       ; movzbl        (%r10,%rax,1),%eax
17023  DB  193,224,8                           ; shl           $0x8,%eax
17024  DB  68,9,200                            ; or            %r9d,%eax
17025  DB  102,15,196,192,0                    ; pinsrw        $0x0,%eax,%xmm0
17026  DB  102,15,196,193,1                    ; pinsrw        $0x1,%ecx,%xmm0
17027  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
17028  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
17029  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
17030  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17031  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17032  DB  68,15,182,200                       ; movzbl        %al,%r9d
17033  DB  72,193,232,32                       ; shr           $0x20,%rax
17034  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17035  DB  77,139,64,8                         ; mov           0x8(%r8),%r8
17036  DB  68,15,182,209                       ; movzbl        %cl,%r10d
17037  DB  72,193,233,30                       ; shr           $0x1e,%rcx
17038  DB  102,65,15,110,4,8                   ; movd          (%r8,%rcx,1),%xmm0
17039  DB  102,65,15,110,12,128                ; movd          (%r8,%rax,4),%xmm1
17040  DB  102,15,98,193                       ; punpckldq     %xmm1,%xmm0
17041  DB  102,67,15,110,28,144                ; movd          (%r8,%r10,4),%xmm3
17042  DB  102,67,15,110,12,136                ; movd          (%r8,%r9,4),%xmm1
17043  DB  102,15,98,217                       ; punpckldq     %xmm1,%xmm3
17044  DB  102,15,98,216                       ; punpckldq     %xmm0,%xmm3
17045  DB  184,255,0,0,0                       ; mov           $0xff,%eax
17046  DB  102,15,110,192                      ; movd          %eax,%xmm0
17047  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17048  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17049  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
17050  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
17051  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17052  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
17053  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
17054  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
17055  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17056  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17057  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17058  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17059  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17060  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
17061  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17062  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17063  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17064  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
17065  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17066  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17067  DB  72,173                              ; lods          %ds:(%rsi),%rax
17068  DB  255,224                             ; jmpq          *%rax
17069
17070PUBLIC _sk_load_565_sse2
17071_sk_load_565_sse2 LABEL PROC
17072  DB  72,173                              ; lods          %ds:(%rsi),%rax
17073  DB  72,139,0                            ; mov           (%rax),%rax
17074  DB  243,15,126,20,120                   ; movq          (%rax,%rdi,2),%xmm2
17075  DB  102,15,239,192                      ; pxor          %xmm0,%xmm0
17076  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
17077  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
17078  DB  102,15,110,192                      ; movd          %eax,%xmm0
17079  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17080  DB  102,15,219,194                      ; pand          %xmm2,%xmm0
17081  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17082  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
17083  DB  102,15,110,192                      ; movd          %eax,%xmm0
17084  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17085  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17086  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
17087  DB  102,15,110,200                      ; movd          %eax,%xmm1
17088  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
17089  DB  102,15,219,202                      ; pand          %xmm2,%xmm1
17090  DB  15,91,217                           ; cvtdq2ps      %xmm1,%xmm3
17091  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
17092  DB  102,15,110,200                      ; movd          %eax,%xmm1
17093  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
17094  DB  15,89,203                           ; mulps         %xmm3,%xmm1
17095  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
17096  DB  102,15,110,216                      ; movd          %eax,%xmm3
17097  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
17098  DB  102,15,219,218                      ; pand          %xmm2,%xmm3
17099  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17100  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
17101  DB  102,15,110,208                      ; movd          %eax,%xmm2
17102  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17103  DB  15,89,211                           ; mulps         %xmm3,%xmm2
17104  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17105  DB  102,15,110,216                      ; movd          %eax,%xmm3
17106  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17107  DB  72,173                              ; lods          %ds:(%rsi),%rax
17108  DB  255,224                             ; jmpq          *%rax
17109
17110PUBLIC _sk_gather_565_sse2
17111_sk_gather_565_sse2 LABEL PROC
17112  DB  72,173                              ; lods          %ds:(%rsi),%rax
17113  DB  76,139,8                            ; mov           (%rax),%r9
17114  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17115  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17116  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17117  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17118  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17119  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17120  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17121  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17122  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17123  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17124  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17125  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17126  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17127  DB  65,137,192                          ; mov           %eax,%r8d
17128  DB  72,193,232,32                       ; shr           $0x20,%rax
17129  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17130  DB  65,137,202                          ; mov           %ecx,%r10d
17131  DB  72,193,233,32                       ; shr           $0x20,%rcx
17132  DB  102,67,15,196,20,81,0               ; pinsrw        $0x0,(%r9,%r10,2),%xmm2
17133  DB  102,65,15,196,20,73,1               ; pinsrw        $0x1,(%r9,%rcx,2),%xmm2
17134  DB  67,15,183,12,65                     ; movzwl        (%r9,%r8,2),%ecx
17135  DB  102,15,196,209,2                    ; pinsrw        $0x2,%ecx,%xmm2
17136  DB  65,15,183,4,65                      ; movzwl        (%r9,%rax,2),%eax
17137  DB  102,15,196,208,3                    ; pinsrw        $0x3,%eax,%xmm2
17138  DB  102,15,239,192                      ; pxor          %xmm0,%xmm0
17139  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
17140  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
17141  DB  102,15,110,192                      ; movd          %eax,%xmm0
17142  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17143  DB  102,15,219,194                      ; pand          %xmm2,%xmm0
17144  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17145  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
17146  DB  102,15,110,192                      ; movd          %eax,%xmm0
17147  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17148  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17149  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
17150  DB  102,15,110,200                      ; movd          %eax,%xmm1
17151  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
17152  DB  102,15,219,202                      ; pand          %xmm2,%xmm1
17153  DB  15,91,217                           ; cvtdq2ps      %xmm1,%xmm3
17154  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
17155  DB  102,15,110,200                      ; movd          %eax,%xmm1
17156  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
17157  DB  15,89,203                           ; mulps         %xmm3,%xmm1
17158  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
17159  DB  102,15,110,216                      ; movd          %eax,%xmm3
17160  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
17161  DB  102,15,219,218                      ; pand          %xmm2,%xmm3
17162  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17163  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
17164  DB  102,15,110,208                      ; movd          %eax,%xmm2
17165  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17166  DB  15,89,211                           ; mulps         %xmm3,%xmm2
17167  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17168  DB  102,15,110,216                      ; movd          %eax,%xmm3
17169  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17170  DB  72,173                              ; lods          %ds:(%rsi),%rax
17171  DB  255,224                             ; jmpq          *%rax
17172
17173PUBLIC _sk_store_565_sse2
17174_sk_store_565_sse2 LABEL PROC
17175  DB  72,173                              ; lods          %ds:(%rsi),%rax
17176  DB  72,139,0                            ; mov           (%rax),%rax
17177  DB  185,0,0,248,65                      ; mov           $0x41f80000,%ecx
17178  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17179  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17180  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17181  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
17182  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17183  DB  102,65,15,114,241,11                ; pslld         $0xb,%xmm9
17184  DB  185,0,0,124,66                      ; mov           $0x427c0000,%ecx
17185  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
17186  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
17187  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
17188  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
17189  DB  102,65,15,114,242,5                 ; pslld         $0x5,%xmm10
17190  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
17191  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
17192  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17193  DB  102,69,15,86,194                    ; orpd          %xmm10,%xmm8
17194  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
17195  DB  102,65,15,114,224,16                ; psrad         $0x10,%xmm8
17196  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17197  DB  102,68,15,214,4,120                 ; movq          %xmm8,(%rax,%rdi,2)
17198  DB  72,173                              ; lods          %ds:(%rsi),%rax
17199  DB  255,224                             ; jmpq          *%rax
17200
17201PUBLIC _sk_load_4444_sse2
17202_sk_load_4444_sse2 LABEL PROC
17203  DB  72,173                              ; lods          %ds:(%rsi),%rax
17204  DB  72,139,0                            ; mov           (%rax),%rax
17205  DB  243,68,15,126,12,120                ; movq          (%rax,%rdi,2),%xmm9
17206  DB  102,15,239,192                      ; pxor          %xmm0,%xmm0
17207  DB  102,68,15,97,200                    ; punpcklwd     %xmm0,%xmm9
17208  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
17209  DB  102,15,110,192                      ; movd          %eax,%xmm0
17210  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17211  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
17212  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17213  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
17214  DB  102,15,110,192                      ; movd          %eax,%xmm0
17215  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17216  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17217  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
17218  DB  102,15,110,200                      ; movd          %eax,%xmm1
17219  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
17220  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
17221  DB  15,91,209                           ; cvtdq2ps      %xmm1,%xmm2
17222  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
17223  DB  102,15,110,200                      ; movd          %eax,%xmm1
17224  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
17225  DB  15,89,202                           ; mulps         %xmm2,%xmm1
17226  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
17227  DB  102,15,110,208                      ; movd          %eax,%xmm2
17228  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17229  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
17230  DB  68,15,91,194                        ; cvtdq2ps      %xmm2,%xmm8
17231  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
17232  DB  102,15,110,208                      ; movd          %eax,%xmm2
17233  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17234  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17235  DB  184,15,0,0,0                        ; mov           $0xf,%eax
17236  DB  102,15,110,216                      ; movd          %eax,%xmm3
17237  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
17238  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
17239  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
17240  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
17241  DB  102,15,110,216                      ; movd          %eax,%xmm3
17242  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17243  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17244  DB  72,173                              ; lods          %ds:(%rsi),%rax
17245  DB  255,224                             ; jmpq          *%rax
17246
17247PUBLIC _sk_gather_4444_sse2
17248_sk_gather_4444_sse2 LABEL PROC
17249  DB  72,173                              ; lods          %ds:(%rsi),%rax
17250  DB  76,139,8                            ; mov           (%rax),%r9
17251  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17252  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17253  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17254  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17255  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17256  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17257  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17258  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17259  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17260  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17261  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17262  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17263  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17264  DB  65,137,192                          ; mov           %eax,%r8d
17265  DB  72,193,232,32                       ; shr           $0x20,%rax
17266  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17267  DB  65,137,202                          ; mov           %ecx,%r10d
17268  DB  72,193,233,32                       ; shr           $0x20,%rcx
17269  DB  102,71,15,196,12,81,0               ; pinsrw        $0x0,(%r9,%r10,2),%xmm9
17270  DB  102,69,15,196,12,73,1               ; pinsrw        $0x1,(%r9,%rcx,2),%xmm9
17271  DB  67,15,183,12,65                     ; movzwl        (%r9,%r8,2),%ecx
17272  DB  102,68,15,196,201,2                 ; pinsrw        $0x2,%ecx,%xmm9
17273  DB  65,15,183,4,65                      ; movzwl        (%r9,%rax,2),%eax
17274  DB  102,68,15,196,200,3                 ; pinsrw        $0x3,%eax,%xmm9
17275  DB  102,15,239,192                      ; pxor          %xmm0,%xmm0
17276  DB  102,68,15,97,200                    ; punpcklwd     %xmm0,%xmm9
17277  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
17278  DB  102,15,110,192                      ; movd          %eax,%xmm0
17279  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17280  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
17281  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17282  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
17283  DB  102,15,110,192                      ; movd          %eax,%xmm0
17284  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17285  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17286  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
17287  DB  102,15,110,200                      ; movd          %eax,%xmm1
17288  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
17289  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
17290  DB  15,91,209                           ; cvtdq2ps      %xmm1,%xmm2
17291  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
17292  DB  102,15,110,200                      ; movd          %eax,%xmm1
17293  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
17294  DB  15,89,202                           ; mulps         %xmm2,%xmm1
17295  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
17296  DB  102,15,110,208                      ; movd          %eax,%xmm2
17297  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17298  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
17299  DB  68,15,91,194                        ; cvtdq2ps      %xmm2,%xmm8
17300  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
17301  DB  102,15,110,208                      ; movd          %eax,%xmm2
17302  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17303  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17304  DB  184,15,0,0,0                        ; mov           $0xf,%eax
17305  DB  102,15,110,216                      ; movd          %eax,%xmm3
17306  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
17307  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
17308  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
17309  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
17310  DB  102,15,110,216                      ; movd          %eax,%xmm3
17311  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17312  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17313  DB  72,173                              ; lods          %ds:(%rsi),%rax
17314  DB  255,224                             ; jmpq          *%rax
17315
17316PUBLIC _sk_store_4444_sse2
17317_sk_store_4444_sse2 LABEL PROC
17318  DB  72,173                              ; lods          %ds:(%rsi),%rax
17319  DB  72,139,0                            ; mov           (%rax),%rax
17320  DB  185,0,0,112,65                      ; mov           $0x41700000,%ecx
17321  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17322  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17323  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17324  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
17325  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17326  DB  102,65,15,114,241,12                ; pslld         $0xc,%xmm9
17327  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
17328  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
17329  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
17330  DB  102,65,15,114,242,8                 ; pslld         $0x8,%xmm10
17331  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
17332  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17333  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
17334  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17335  DB  102,65,15,114,241,4                 ; pslld         $0x4,%xmm9
17336  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
17337  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17338  DB  102,69,15,86,193                    ; orpd          %xmm9,%xmm8
17339  DB  102,69,15,86,194                    ; orpd          %xmm10,%xmm8
17340  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
17341  DB  102,65,15,114,224,16                ; psrad         $0x10,%xmm8
17342  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17343  DB  102,68,15,214,4,120                 ; movq          %xmm8,(%rax,%rdi,2)
17344  DB  72,173                              ; lods          %ds:(%rsi),%rax
17345  DB  255,224                             ; jmpq          *%rax
17346
17347PUBLIC _sk_load_8888_sse2
17348_sk_load_8888_sse2 LABEL PROC
17349  DB  72,173                              ; lods          %ds:(%rsi),%rax
17350  DB  72,139,0                            ; mov           (%rax),%rax
17351  DB  243,15,111,28,184                   ; movdqu        (%rax,%rdi,4),%xmm3
17352  DB  184,255,0,0,0                       ; mov           $0xff,%eax
17353  DB  102,15,110,192                      ; movd          %eax,%xmm0
17354  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17355  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17356  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
17357  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
17358  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17359  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
17360  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
17361  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
17362  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17363  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17364  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17365  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17366  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17367  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
17368  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17369  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17370  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17371  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
17372  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17373  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17374  DB  72,173                              ; lods          %ds:(%rsi),%rax
17375  DB  255,224                             ; jmpq          *%rax
17376
17377PUBLIC _sk_gather_8888_sse2
17378_sk_gather_8888_sse2 LABEL PROC
17379  DB  72,173                              ; lods          %ds:(%rsi),%rax
17380  DB  76,139,8                            ; mov           (%rax),%r9
17381  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17382  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17383  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17384  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17385  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17386  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17387  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17388  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17389  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17390  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17391  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17392  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17393  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17394  DB  65,137,192                          ; mov           %eax,%r8d
17395  DB  72,193,232,32                       ; shr           $0x20,%rax
17396  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17397  DB  65,137,202                          ; mov           %ecx,%r10d
17398  DB  72,193,233,32                       ; shr           $0x20,%rcx
17399  DB  102,65,15,110,4,137                 ; movd          (%r9,%rcx,4),%xmm0
17400  DB  102,65,15,110,12,129                ; movd          (%r9,%rax,4),%xmm1
17401  DB  102,15,98,193                       ; punpckldq     %xmm1,%xmm0
17402  DB  102,67,15,110,28,145                ; movd          (%r9,%r10,4),%xmm3
17403  DB  102,67,15,110,12,129                ; movd          (%r9,%r8,4),%xmm1
17404  DB  102,15,98,217                       ; punpckldq     %xmm1,%xmm3
17405  DB  102,15,98,216                       ; punpckldq     %xmm0,%xmm3
17406  DB  184,255,0,0,0                       ; mov           $0xff,%eax
17407  DB  102,15,110,192                      ; movd          %eax,%xmm0
17408  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17409  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17410  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
17411  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
17412  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17413  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
17414  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
17415  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
17416  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17417  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17418  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17419  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17420  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17421  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
17422  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17423  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17424  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17425  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
17426  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17427  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17428  DB  72,173                              ; lods          %ds:(%rsi),%rax
17429  DB  255,224                             ; jmpq          *%rax
17430
17431PUBLIC _sk_store_8888_sse2
17432_sk_store_8888_sse2 LABEL PROC
17433  DB  72,173                              ; lods          %ds:(%rsi),%rax
17434  DB  72,139,0                            ; mov           (%rax),%rax
17435  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
17436  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17437  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17438  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17439  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
17440  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17441  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
17442  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
17443  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
17444  DB  102,65,15,114,242,8                 ; pslld         $0x8,%xmm10
17445  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
17446  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17447  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
17448  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17449  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
17450  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
17451  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17452  DB  102,65,15,114,240,24                ; pslld         $0x18,%xmm8
17453  DB  102,69,15,235,193                   ; por           %xmm9,%xmm8
17454  DB  102,69,15,235,194                   ; por           %xmm10,%xmm8
17455  DB  243,68,15,127,4,184                 ; movdqu        %xmm8,(%rax,%rdi,4)
17456  DB  72,173                              ; lods          %ds:(%rsi),%rax
17457  DB  255,224                             ; jmpq          *%rax
17458
17459PUBLIC _sk_load_f16_sse2
17460_sk_load_f16_sse2 LABEL PROC
17461  DB  72,173                              ; lods          %ds:(%rsi),%rax
17462  DB  72,139,0                            ; mov           (%rax),%rax
17463  DB  243,15,111,4,248                    ; movdqu        (%rax,%rdi,8),%xmm0
17464  DB  243,15,111,76,248,16                ; movdqu        0x10(%rax,%rdi,8),%xmm1
17465  DB  102,68,15,111,192                   ; movdqa        %xmm0,%xmm8
17466  DB  102,68,15,97,193                    ; punpcklwd     %xmm1,%xmm8
17467  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
17468  DB  102,69,15,111,224                   ; movdqa        %xmm8,%xmm12
17469  DB  102,68,15,97,224                    ; punpcklwd     %xmm0,%xmm12
17470  DB  102,68,15,105,192                   ; punpckhwd     %xmm0,%xmm8
17471  DB  102,69,15,239,210                   ; pxor          %xmm10,%xmm10
17472  DB  102,69,15,111,236                   ; movdqa        %xmm12,%xmm13
17473  DB  102,69,15,97,234                    ; punpcklwd     %xmm10,%xmm13
17474  DB  184,0,128,0,0                       ; mov           $0x8000,%eax
17475  DB  102,15,110,192                      ; movd          %eax,%xmm0
17476  DB  102,68,15,112,200,0                 ; pshufd        $0x0,%xmm0,%xmm9
17477  DB  102,65,15,111,205                   ; movdqa        %xmm13,%xmm1
17478  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
17479  DB  102,68,15,239,233                   ; pxor          %xmm1,%xmm13
17480  DB  184,0,4,0,0                         ; mov           $0x400,%eax
17481  DB  102,15,110,192                      ; movd          %eax,%xmm0
17482  DB  102,15,112,216,0                    ; pshufd        $0x0,%xmm0,%xmm3
17483  DB  102,15,114,241,16                   ; pslld         $0x10,%xmm1
17484  DB  102,15,111,195                      ; movdqa        %xmm3,%xmm0
17485  DB  102,65,15,102,197                   ; pcmpgtd       %xmm13,%xmm0
17486  DB  102,65,15,114,245,13                ; pslld         $0xd,%xmm13
17487  DB  184,0,0,0,56                        ; mov           $0x38000000,%eax
17488  DB  102,15,110,208                      ; movd          %eax,%xmm2
17489  DB  102,68,15,112,218,0                 ; pshufd        $0x0,%xmm2,%xmm11
17490  DB  102,65,15,254,203                   ; paddd         %xmm11,%xmm1
17491  DB  102,65,15,254,205                   ; paddd         %xmm13,%xmm1
17492  DB  102,15,223,193                      ; pandn         %xmm1,%xmm0
17493  DB  102,65,15,115,220,8                 ; psrldq        $0x8,%xmm12
17494  DB  102,69,15,97,226                    ; punpcklwd     %xmm10,%xmm12
17495  DB  102,65,15,111,212                   ; movdqa        %xmm12,%xmm2
17496  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
17497  DB  102,68,15,239,226                   ; pxor          %xmm2,%xmm12
17498  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
17499  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17500  DB  102,65,15,102,204                   ; pcmpgtd       %xmm12,%xmm1
17501  DB  102,65,15,114,244,13                ; pslld         $0xd,%xmm12
17502  DB  102,65,15,254,211                   ; paddd         %xmm11,%xmm2
17503  DB  102,65,15,254,212                   ; paddd         %xmm12,%xmm2
17504  DB  102,15,223,202                      ; pandn         %xmm2,%xmm1
17505  DB  102,69,15,111,224                   ; movdqa        %xmm8,%xmm12
17506  DB  102,69,15,97,226                    ; punpcklwd     %xmm10,%xmm12
17507  DB  102,69,15,111,236                   ; movdqa        %xmm12,%xmm13
17508  DB  102,69,15,219,233                   ; pand          %xmm9,%xmm13
17509  DB  102,69,15,239,229                   ; pxor          %xmm13,%xmm12
17510  DB  102,65,15,114,245,16                ; pslld         $0x10,%xmm13
17511  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17512  DB  102,65,15,102,212                   ; pcmpgtd       %xmm12,%xmm2
17513  DB  102,65,15,114,244,13                ; pslld         $0xd,%xmm12
17514  DB  102,69,15,254,235                   ; paddd         %xmm11,%xmm13
17515  DB  102,69,15,254,236                   ; paddd         %xmm12,%xmm13
17516  DB  102,65,15,223,213                   ; pandn         %xmm13,%xmm2
17517  DB  102,65,15,115,216,8                 ; psrldq        $0x8,%xmm8
17518  DB  102,69,15,97,194                    ; punpcklwd     %xmm10,%xmm8
17519  DB  102,69,15,219,200                   ; pand          %xmm8,%xmm9
17520  DB  102,69,15,239,193                   ; pxor          %xmm9,%xmm8
17521  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
17522  DB  102,65,15,102,216                   ; pcmpgtd       %xmm8,%xmm3
17523  DB  102,65,15,114,240,13                ; pslld         $0xd,%xmm8
17524  DB  102,69,15,254,203                   ; paddd         %xmm11,%xmm9
17525  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
17526  DB  102,65,15,223,217                   ; pandn         %xmm9,%xmm3
17527  DB  72,173                              ; lods          %ds:(%rsi),%rax
17528  DB  255,224                             ; jmpq          *%rax
17529
17530PUBLIC _sk_gather_f16_sse2
17531_sk_gather_f16_sse2 LABEL PROC
17532  DB  72,173                              ; lods          %ds:(%rsi),%rax
17533  DB  76,139,8                            ; mov           (%rax),%r9
17534  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17535  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17536  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17537  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17538  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17539  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17540  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17541  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17542  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17543  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17544  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17545  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17546  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17547  DB  65,137,192                          ; mov           %eax,%r8d
17548  DB  72,193,232,32                       ; shr           $0x20,%rax
17549  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17550  DB  65,137,202                          ; mov           %ecx,%r10d
17551  DB  72,193,233,32                       ; shr           $0x20,%rcx
17552  DB  243,65,15,126,4,201                 ; movq          (%r9,%rcx,8),%xmm0
17553  DB  243,67,15,126,12,209                ; movq          (%r9,%r10,8),%xmm1
17554  DB  102,15,108,200                      ; punpcklqdq    %xmm0,%xmm1
17555  DB  243,65,15,126,4,193                 ; movq          (%r9,%rax,8),%xmm0
17556  DB  243,67,15,126,20,193                ; movq          (%r9,%r8,8),%xmm2
17557  DB  102,15,108,208                      ; punpcklqdq    %xmm0,%xmm2
17558  DB  102,68,15,111,193                   ; movdqa        %xmm1,%xmm8
17559  DB  102,68,15,97,194                    ; punpcklwd     %xmm2,%xmm8
17560  DB  102,15,105,202                      ; punpckhwd     %xmm2,%xmm1
17561  DB  102,69,15,111,224                   ; movdqa        %xmm8,%xmm12
17562  DB  102,68,15,97,225                    ; punpcklwd     %xmm1,%xmm12
17563  DB  102,68,15,105,193                   ; punpckhwd     %xmm1,%xmm8
17564  DB  102,69,15,239,210                   ; pxor          %xmm10,%xmm10
17565  DB  102,69,15,111,236                   ; movdqa        %xmm12,%xmm13
17566  DB  102,69,15,97,234                    ; punpcklwd     %xmm10,%xmm13
17567  DB  184,0,128,0,0                       ; mov           $0x8000,%eax
17568  DB  102,15,110,192                      ; movd          %eax,%xmm0
17569  DB  102,68,15,112,200,0                 ; pshufd        $0x0,%xmm0,%xmm9
17570  DB  102,65,15,111,205                   ; movdqa        %xmm13,%xmm1
17571  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
17572  DB  102,68,15,239,233                   ; pxor          %xmm1,%xmm13
17573  DB  184,0,4,0,0                         ; mov           $0x400,%eax
17574  DB  102,15,110,192                      ; movd          %eax,%xmm0
17575  DB  102,15,112,216,0                    ; pshufd        $0x0,%xmm0,%xmm3
17576  DB  102,15,114,241,16                   ; pslld         $0x10,%xmm1
17577  DB  102,15,111,195                      ; movdqa        %xmm3,%xmm0
17578  DB  102,65,15,102,197                   ; pcmpgtd       %xmm13,%xmm0
17579  DB  102,65,15,114,245,13                ; pslld         $0xd,%xmm13
17580  DB  184,0,0,0,56                        ; mov           $0x38000000,%eax
17581  DB  102,15,110,208                      ; movd          %eax,%xmm2
17582  DB  102,68,15,112,218,0                 ; pshufd        $0x0,%xmm2,%xmm11
17583  DB  102,65,15,254,203                   ; paddd         %xmm11,%xmm1
17584  DB  102,65,15,254,205                   ; paddd         %xmm13,%xmm1
17585  DB  102,15,223,193                      ; pandn         %xmm1,%xmm0
17586  DB  102,65,15,115,220,8                 ; psrldq        $0x8,%xmm12
17587  DB  102,69,15,97,226                    ; punpcklwd     %xmm10,%xmm12
17588  DB  102,65,15,111,212                   ; movdqa        %xmm12,%xmm2
17589  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
17590  DB  102,68,15,239,226                   ; pxor          %xmm2,%xmm12
17591  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
17592  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17593  DB  102,65,15,102,204                   ; pcmpgtd       %xmm12,%xmm1
17594  DB  102,65,15,114,244,13                ; pslld         $0xd,%xmm12
17595  DB  102,65,15,254,211                   ; paddd         %xmm11,%xmm2
17596  DB  102,65,15,254,212                   ; paddd         %xmm12,%xmm2
17597  DB  102,15,223,202                      ; pandn         %xmm2,%xmm1
17598  DB  102,69,15,111,224                   ; movdqa        %xmm8,%xmm12
17599  DB  102,69,15,97,226                    ; punpcklwd     %xmm10,%xmm12
17600  DB  102,69,15,111,236                   ; movdqa        %xmm12,%xmm13
17601  DB  102,69,15,219,233                   ; pand          %xmm9,%xmm13
17602  DB  102,69,15,239,229                   ; pxor          %xmm13,%xmm12
17603  DB  102,65,15,114,245,16                ; pslld         $0x10,%xmm13
17604  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17605  DB  102,65,15,102,212                   ; pcmpgtd       %xmm12,%xmm2
17606  DB  102,65,15,114,244,13                ; pslld         $0xd,%xmm12
17607  DB  102,69,15,254,235                   ; paddd         %xmm11,%xmm13
17608  DB  102,69,15,254,236                   ; paddd         %xmm12,%xmm13
17609  DB  102,65,15,223,213                   ; pandn         %xmm13,%xmm2
17610  DB  102,65,15,115,216,8                 ; psrldq        $0x8,%xmm8
17611  DB  102,69,15,97,194                    ; punpcklwd     %xmm10,%xmm8
17612  DB  102,69,15,219,200                   ; pand          %xmm8,%xmm9
17613  DB  102,69,15,239,193                   ; pxor          %xmm9,%xmm8
17614  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
17615  DB  102,65,15,102,216                   ; pcmpgtd       %xmm8,%xmm3
17616  DB  102,65,15,114,240,13                ; pslld         $0xd,%xmm8
17617  DB  102,69,15,254,203                   ; paddd         %xmm11,%xmm9
17618  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
17619  DB  102,65,15,223,217                   ; pandn         %xmm9,%xmm3
17620  DB  72,173                              ; lods          %ds:(%rsi),%rax
17621  DB  255,224                             ; jmpq          *%rax
17622
17623PUBLIC _sk_store_f16_sse2
17624_sk_store_f16_sse2 LABEL PROC
17625  DB  72,173                              ; lods          %ds:(%rsi),%rax
17626  DB  72,139,0                            ; mov           (%rax),%rax
17627  DB  185,0,0,0,128                       ; mov           $0x80000000,%ecx
17628  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17629  DB  102,69,15,112,200,0                 ; pshufd        $0x0,%xmm8,%xmm9
17630  DB  102,69,15,111,225                   ; movdqa        %xmm9,%xmm12
17631  DB  102,68,15,219,224                   ; pand          %xmm0,%xmm12
17632  DB  102,68,15,111,232                   ; movdqa        %xmm0,%xmm13
17633  DB  102,69,15,239,236                   ; pxor          %xmm12,%xmm13
17634  DB  185,0,0,128,56                      ; mov           $0x38800000,%ecx
17635  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17636  DB  102,69,15,112,208,0                 ; pshufd        $0x0,%xmm8,%xmm10
17637  DB  102,65,15,114,212,16                ; psrld         $0x10,%xmm12
17638  DB  102,69,15,111,194                   ; movdqa        %xmm10,%xmm8
17639  DB  102,69,15,102,197                   ; pcmpgtd       %xmm13,%xmm8
17640  DB  102,65,15,114,213,13                ; psrld         $0xd,%xmm13
17641  DB  185,0,192,1,0                       ; mov           $0x1c000,%ecx
17642  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
17643  DB  102,69,15,112,219,0                 ; pshufd        $0x0,%xmm11,%xmm11
17644  DB  102,69,15,250,227                   ; psubd         %xmm11,%xmm12
17645  DB  102,69,15,254,229                   ; paddd         %xmm13,%xmm12
17646  DB  102,65,15,114,244,16                ; pslld         $0x10,%xmm12
17647  DB  102,65,15,114,228,16                ; psrad         $0x10,%xmm12
17648  DB  102,69,15,223,196                   ; pandn         %xmm12,%xmm8
17649  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17650  DB  102,69,15,111,233                   ; movdqa        %xmm9,%xmm13
17651  DB  102,68,15,219,233                   ; pand          %xmm1,%xmm13
17652  DB  102,68,15,111,241                   ; movdqa        %xmm1,%xmm14
17653  DB  102,69,15,239,245                   ; pxor          %xmm13,%xmm14
17654  DB  102,65,15,114,213,16                ; psrld         $0x10,%xmm13
17655  DB  102,69,15,111,226                   ; movdqa        %xmm10,%xmm12
17656  DB  102,69,15,102,230                   ; pcmpgtd       %xmm14,%xmm12
17657  DB  102,65,15,114,214,13                ; psrld         $0xd,%xmm14
17658  DB  102,69,15,250,235                   ; psubd         %xmm11,%xmm13
17659  DB  102,69,15,254,238                   ; paddd         %xmm14,%xmm13
17660  DB  102,65,15,114,245,16                ; pslld         $0x10,%xmm13
17661  DB  102,65,15,114,229,16                ; psrad         $0x10,%xmm13
17662  DB  102,69,15,223,229                   ; pandn         %xmm13,%xmm12
17663  DB  102,69,15,107,228                   ; packssdw      %xmm12,%xmm12
17664  DB  102,69,15,111,241                   ; movdqa        %xmm9,%xmm14
17665  DB  102,68,15,219,242                   ; pand          %xmm2,%xmm14
17666  DB  102,68,15,111,250                   ; movdqa        %xmm2,%xmm15
17667  DB  102,69,15,239,254                   ; pxor          %xmm14,%xmm15
17668  DB  102,65,15,114,214,16                ; psrld         $0x10,%xmm14
17669  DB  102,69,15,111,234                   ; movdqa        %xmm10,%xmm13
17670  DB  102,69,15,102,239                   ; pcmpgtd       %xmm15,%xmm13
17671  DB  102,65,15,114,215,13                ; psrld         $0xd,%xmm15
17672  DB  102,69,15,250,243                   ; psubd         %xmm11,%xmm14
17673  DB  102,69,15,254,247                   ; paddd         %xmm15,%xmm14
17674  DB  102,65,15,114,246,16                ; pslld         $0x10,%xmm14
17675  DB  102,65,15,114,230,16                ; psrad         $0x10,%xmm14
17676  DB  102,69,15,223,238                   ; pandn         %xmm14,%xmm13
17677  DB  102,69,15,107,237                   ; packssdw      %xmm13,%xmm13
17678  DB  102,68,15,219,203                   ; pand          %xmm3,%xmm9
17679  DB  102,68,15,111,243                   ; movdqa        %xmm3,%xmm14
17680  DB  102,69,15,239,241                   ; pxor          %xmm9,%xmm14
17681  DB  102,65,15,114,209,16                ; psrld         $0x10,%xmm9
17682  DB  102,69,15,102,214                   ; pcmpgtd       %xmm14,%xmm10
17683  DB  102,65,15,114,214,13                ; psrld         $0xd,%xmm14
17684  DB  102,69,15,250,203                   ; psubd         %xmm11,%xmm9
17685  DB  102,69,15,254,206                   ; paddd         %xmm14,%xmm9
17686  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
17687  DB  102,65,15,114,225,16                ; psrad         $0x10,%xmm9
17688  DB  102,69,15,223,209                   ; pandn         %xmm9,%xmm10
17689  DB  102,69,15,107,210                   ; packssdw      %xmm10,%xmm10
17690  DB  102,69,15,97,196                    ; punpcklwd     %xmm12,%xmm8
17691  DB  102,69,15,97,234                    ; punpcklwd     %xmm10,%xmm13
17692  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
17693  DB  102,69,15,98,205                    ; punpckldq     %xmm13,%xmm9
17694  DB  243,68,15,127,12,248                ; movdqu        %xmm9,(%rax,%rdi,8)
17695  DB  102,69,15,106,197                   ; punpckhdq     %xmm13,%xmm8
17696  DB  243,68,15,127,68,248,16             ; movdqu        %xmm8,0x10(%rax,%rdi,8)
17697  DB  72,173                              ; lods          %ds:(%rsi),%rax
17698  DB  255,224                             ; jmpq          *%rax
17699
17700PUBLIC _sk_load_u16_be_sse2
17701_sk_load_u16_be_sse2 LABEL PROC
17702  DB  72,173                              ; lods          %ds:(%rsi),%rax
17703  DB  72,139,0                            ; mov           (%rax),%rax
17704  DB  243,15,111,4,248                    ; movdqu        (%rax,%rdi,8),%xmm0
17705  DB  243,15,111,76,248,16                ; movdqu        0x10(%rax,%rdi,8),%xmm1
17706  DB  102,15,111,208                      ; movdqa        %xmm0,%xmm2
17707  DB  102,15,97,209                       ; punpcklwd     %xmm1,%xmm2
17708  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
17709  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
17710  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
17711  DB  102,15,105,208                      ; punpckhwd     %xmm0,%xmm2
17712  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
17713  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17714  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17715  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
17716  DB  102,15,113,240,8                    ; psllw         $0x8,%xmm0
17717  DB  102,15,112,217,78                   ; pshufd        $0x4e,%xmm1,%xmm3
17718  DB  102,15,113,209,8                    ; psrlw         $0x8,%xmm1
17719  DB  102,15,235,200                      ; por           %xmm0,%xmm1
17720  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
17721  DB  102,65,15,97,201                    ; punpcklwd     %xmm9,%xmm1
17722  DB  15,91,193                           ; cvtdq2ps      %xmm1,%xmm0
17723  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17724  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17725  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
17726  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
17727  DB  102,15,235,217                      ; por           %xmm1,%xmm3
17728  DB  102,65,15,97,217                    ; punpcklwd     %xmm9,%xmm3
17729  DB  15,91,203                           ; cvtdq2ps      %xmm3,%xmm1
17730  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17731  DB  102,68,15,111,210                   ; movdqa        %xmm2,%xmm10
17732  DB  102,65,15,113,242,8                 ; psllw         $0x8,%xmm10
17733  DB  102,15,112,218,78                   ; pshufd        $0x4e,%xmm2,%xmm3
17734  DB  102,15,113,210,8                    ; psrlw         $0x8,%xmm2
17735  DB  102,65,15,235,210                   ; por           %xmm10,%xmm2
17736  DB  102,65,15,97,209                    ; punpcklwd     %xmm9,%xmm2
17737  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17738  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17739  DB  102,68,15,111,211                   ; movdqa        %xmm3,%xmm10
17740  DB  102,65,15,113,242,8                 ; psllw         $0x8,%xmm10
17741  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
17742  DB  102,65,15,235,218                   ; por           %xmm10,%xmm3
17743  DB  102,65,15,97,217                    ; punpcklwd     %xmm9,%xmm3
17744  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17745  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17746  DB  72,173                              ; lods          %ds:(%rsi),%rax
17747  DB  255,224                             ; jmpq          *%rax
17748
17749PUBLIC _sk_load_rgb_u16_be_sse2
17750_sk_load_rgb_u16_be_sse2 LABEL PROC
17751  DB  72,173                              ; lods          %ds:(%rsi),%rax
17752  DB  72,139,0                            ; mov           (%rax),%rax
17753  DB  72,141,12,127                       ; lea           (%rdi,%rdi,2),%rcx
17754  DB  243,15,111,20,72                    ; movdqu        (%rax,%rcx,2),%xmm2
17755  DB  243,15,111,68,72,8                  ; movdqu        0x8(%rax,%rcx,2),%xmm0
17756  DB  102,15,115,216,4                    ; psrldq        $0x4,%xmm0
17757  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
17758  DB  102,15,115,217,6                    ; psrldq        $0x6,%xmm1
17759  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
17760  DB  102,15,115,216,6                    ; psrldq        $0x6,%xmm0
17761  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
17762  DB  102,15,111,194                      ; movdqa        %xmm2,%xmm0
17763  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
17764  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
17765  DB  102,15,105,209                      ; punpckhwd     %xmm1,%xmm2
17766  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
17767  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17768  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17769  DB  102,15,111,200                      ; movdqa        %xmm0,%xmm1
17770  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
17771  DB  102,15,113,208,8                    ; psrlw         $0x8,%xmm0
17772  DB  102,15,235,193                      ; por           %xmm1,%xmm0
17773  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
17774  DB  102,65,15,97,193                    ; punpcklwd     %xmm9,%xmm0
17775  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17776  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17777  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17778  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
17779  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
17780  DB  102,15,235,217                      ; por           %xmm1,%xmm3
17781  DB  102,65,15,97,217                    ; punpcklwd     %xmm9,%xmm3
17782  DB  15,91,203                           ; cvtdq2ps      %xmm3,%xmm1
17783  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17784  DB  102,15,111,218                      ; movdqa        %xmm2,%xmm3
17785  DB  102,15,113,243,8                    ; psllw         $0x8,%xmm3
17786  DB  102,15,113,210,8                    ; psrlw         $0x8,%xmm2
17787  DB  102,15,235,211                      ; por           %xmm3,%xmm2
17788  DB  102,65,15,97,209                    ; punpcklwd     %xmm9,%xmm2
17789  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17790  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17791  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17792  DB  102,15,110,216                      ; movd          %eax,%xmm3
17793  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17794  DB  72,173                              ; lods          %ds:(%rsi),%rax
17795  DB  255,224                             ; jmpq          *%rax
17796
17797PUBLIC _sk_store_u16_be_sse2
17798_sk_store_u16_be_sse2 LABEL PROC
17799  DB  72,173                              ; lods          %ds:(%rsi),%rax
17800  DB  72,139,0                            ; mov           (%rax),%rax
17801  DB  185,0,255,127,71                    ; mov           $0x477fff00,%ecx
17802  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
17803  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
17804  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
17805  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
17806  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17807  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
17808  DB  102,65,15,114,224,16                ; psrad         $0x10,%xmm8
17809  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17810  DB  102,69,15,111,208                   ; movdqa        %xmm8,%xmm10
17811  DB  102,65,15,113,242,8                 ; psllw         $0x8,%xmm10
17812  DB  102,65,15,113,208,8                 ; psrlw         $0x8,%xmm8
17813  DB  102,69,15,235,194                   ; por           %xmm10,%xmm8
17814  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
17815  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
17816  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
17817  DB  102,65,15,114,242,16                ; pslld         $0x10,%xmm10
17818  DB  102,65,15,114,226,16                ; psrad         $0x10,%xmm10
17819  DB  102,69,15,107,210                   ; packssdw      %xmm10,%xmm10
17820  DB  102,69,15,111,218                   ; movdqa        %xmm10,%xmm11
17821  DB  102,65,15,113,243,8                 ; psllw         $0x8,%xmm11
17822  DB  102,65,15,113,210,8                 ; psrlw         $0x8,%xmm10
17823  DB  102,69,15,235,211                   ; por           %xmm11,%xmm10
17824  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
17825  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
17826  DB  102,69,15,91,219                    ; cvtps2dq      %xmm11,%xmm11
17827  DB  102,65,15,114,243,16                ; pslld         $0x10,%xmm11
17828  DB  102,65,15,114,227,16                ; psrad         $0x10,%xmm11
17829  DB  102,69,15,107,219                   ; packssdw      %xmm11,%xmm11
17830  DB  102,69,15,111,227                   ; movdqa        %xmm11,%xmm12
17831  DB  102,65,15,113,244,8                 ; psllw         $0x8,%xmm12
17832  DB  102,65,15,113,211,8                 ; psrlw         $0x8,%xmm11
17833  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
17834  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
17835  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17836  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
17837  DB  102,65,15,114,225,16                ; psrad         $0x10,%xmm9
17838  DB  102,69,15,107,201                   ; packssdw      %xmm9,%xmm9
17839  DB  102,69,15,111,225                   ; movdqa        %xmm9,%xmm12
17840  DB  102,65,15,113,244,8                 ; psllw         $0x8,%xmm12
17841  DB  102,65,15,113,209,8                 ; psrlw         $0x8,%xmm9
17842  DB  102,69,15,235,204                   ; por           %xmm12,%xmm9
17843  DB  102,69,15,97,194                    ; punpcklwd     %xmm10,%xmm8
17844  DB  102,69,15,97,217                    ; punpcklwd     %xmm9,%xmm11
17845  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
17846  DB  102,69,15,98,203                    ; punpckldq     %xmm11,%xmm9
17847  DB  243,68,15,127,12,248                ; movdqu        %xmm9,(%rax,%rdi,8)
17848  DB  102,69,15,106,195                   ; punpckhdq     %xmm11,%xmm8
17849  DB  243,68,15,127,68,248,16             ; movdqu        %xmm8,0x10(%rax,%rdi,8)
17850  DB  72,173                              ; lods          %ds:(%rsi),%rax
17851  DB  255,224                             ; jmpq          *%rax
17852
17853PUBLIC _sk_load_f32_sse2
17854_sk_load_f32_sse2 LABEL PROC
17855  DB  72,173                              ; lods          %ds:(%rsi),%rax
17856  DB  72,139,0                            ; mov           (%rax),%rax
17857  DB  72,137,249                          ; mov           %rdi,%rcx
17858  DB  72,193,225,4                        ; shl           $0x4,%rcx
17859  DB  68,15,16,4,8                        ; movups        (%rax,%rcx,1),%xmm8
17860  DB  15,16,68,8,16                       ; movups        0x10(%rax,%rcx,1),%xmm0
17861  DB  15,16,92,8,32                       ; movups        0x20(%rax,%rcx,1),%xmm3
17862  DB  68,15,16,76,8,48                    ; movups        0x30(%rax,%rcx,1),%xmm9
17863  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
17864  DB  15,20,208                           ; unpcklps      %xmm0,%xmm2
17865  DB  15,40,203                           ; movaps        %xmm3,%xmm1
17866  DB  65,15,20,201                        ; unpcklps      %xmm9,%xmm1
17867  DB  68,15,21,192                        ; unpckhps      %xmm0,%xmm8
17868  DB  65,15,21,217                        ; unpckhps      %xmm9,%xmm3
17869  DB  15,40,194                           ; movaps        %xmm2,%xmm0
17870  DB  102,15,20,193                       ; unpcklpd      %xmm1,%xmm0
17871  DB  15,18,202                           ; movhlps       %xmm2,%xmm1
17872  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
17873  DB  102,15,20,211                       ; unpcklpd      %xmm3,%xmm2
17874  DB  65,15,18,216                        ; movhlps       %xmm8,%xmm3
17875  DB  72,173                              ; lods          %ds:(%rsi),%rax
17876  DB  255,224                             ; jmpq          *%rax
17877
17878PUBLIC _sk_store_f32_sse2
17879_sk_store_f32_sse2 LABEL PROC
17880  DB  72,173                              ; lods          %ds:(%rsi),%rax
17881  DB  72,139,0                            ; mov           (%rax),%rax
17882  DB  72,137,249                          ; mov           %rdi,%rcx
17883  DB  72,193,225,4                        ; shl           $0x4,%rcx
17884  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
17885  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
17886  DB  68,15,20,201                        ; unpcklps      %xmm1,%xmm9
17887  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
17888  DB  68,15,40,218                        ; movaps        %xmm2,%xmm11
17889  DB  68,15,20,219                        ; unpcklps      %xmm3,%xmm11
17890  DB  68,15,21,193                        ; unpckhps      %xmm1,%xmm8
17891  DB  68,15,21,211                        ; unpckhps      %xmm3,%xmm10
17892  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
17893  DB  102,69,15,20,227                    ; unpcklpd      %xmm11,%xmm12
17894  DB  69,15,18,217                        ; movhlps       %xmm9,%xmm11
17895  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17896  DB  102,69,15,20,202                    ; unpcklpd      %xmm10,%xmm9
17897  DB  69,15,18,208                        ; movhlps       %xmm8,%xmm10
17898  DB  102,68,15,17,36,8                   ; movupd        %xmm12,(%rax,%rcx,1)
17899  DB  68,15,17,92,8,16                    ; movups        %xmm11,0x10(%rax,%rcx,1)
17900  DB  102,68,15,17,76,8,32                ; movupd        %xmm9,0x20(%rax,%rcx,1)
17901  DB  68,15,17,84,8,48                    ; movups        %xmm10,0x30(%rax,%rcx,1)
17902  DB  72,173                              ; lods          %ds:(%rsi),%rax
17903  DB  255,224                             ; jmpq          *%rax
17904
17905PUBLIC _sk_clamp_x_sse2
17906_sk_clamp_x_sse2 LABEL PROC
17907  DB  72,173                              ; lods          %ds:(%rsi),%rax
17908  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
17909  DB  68,15,95,192                        ; maxps         %xmm0,%xmm8
17910  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
17911  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
17912  DB  102,15,118,192                      ; pcmpeqd       %xmm0,%xmm0
17913  DB  102,65,15,254,193                   ; paddd         %xmm9,%xmm0
17914  DB  68,15,93,192                        ; minps         %xmm0,%xmm8
17915  DB  72,173                              ; lods          %ds:(%rsi),%rax
17916  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
17917  DB  255,224                             ; jmpq          *%rax
17918
17919PUBLIC _sk_clamp_y_sse2
17920_sk_clamp_y_sse2 LABEL PROC
17921  DB  72,173                              ; lods          %ds:(%rsi),%rax
17922  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
17923  DB  68,15,95,193                        ; maxps         %xmm1,%xmm8
17924  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
17925  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
17926  DB  102,15,118,201                      ; pcmpeqd       %xmm1,%xmm1
17927  DB  102,65,15,254,201                   ; paddd         %xmm9,%xmm1
17928  DB  68,15,93,193                        ; minps         %xmm1,%xmm8
17929  DB  72,173                              ; lods          %ds:(%rsi),%rax
17930  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
17931  DB  255,224                             ; jmpq          *%rax
17932
17933PUBLIC _sk_repeat_x_sse2
17934_sk_repeat_x_sse2 LABEL PROC
17935  DB  72,173                              ; lods          %ds:(%rsi),%rax
17936  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
17937  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17938  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
17939  DB  69,15,94,200                        ; divps         %xmm8,%xmm9
17940  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
17941  DB  69,15,91,210                        ; cvtdq2ps      %xmm10,%xmm10
17942  DB  69,15,194,202,1                     ; cmpltps       %xmm10,%xmm9
17943  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17944  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
17945  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
17946  DB  69,15,84,217                        ; andps         %xmm9,%xmm11
17947  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
17948  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
17949  DB  65,15,92,194                        ; subps         %xmm10,%xmm0
17950  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
17951  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
17952  DB  65,15,93,193                        ; minps         %xmm9,%xmm0
17953  DB  72,173                              ; lods          %ds:(%rsi),%rax
17954  DB  255,224                             ; jmpq          *%rax
17955
17956PUBLIC _sk_repeat_y_sse2
17957_sk_repeat_y_sse2 LABEL PROC
17958  DB  72,173                              ; lods          %ds:(%rsi),%rax
17959  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
17960  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17961  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
17962  DB  69,15,94,200                        ; divps         %xmm8,%xmm9
17963  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
17964  DB  69,15,91,210                        ; cvtdq2ps      %xmm10,%xmm10
17965  DB  69,15,194,202,1                     ; cmpltps       %xmm10,%xmm9
17966  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17967  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
17968  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
17969  DB  69,15,84,217                        ; andps         %xmm9,%xmm11
17970  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
17971  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
17972  DB  65,15,92,202                        ; subps         %xmm10,%xmm1
17973  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
17974  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
17975  DB  65,15,93,201                        ; minps         %xmm9,%xmm1
17976  DB  72,173                              ; lods          %ds:(%rsi),%rax
17977  DB  255,224                             ; jmpq          *%rax
17978
17979PUBLIC _sk_mirror_x_sse2
17980_sk_mirror_x_sse2 LABEL PROC
17981  DB  72,173                              ; lods          %ds:(%rsi),%rax
17982  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
17983  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
17984  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17985  DB  65,15,92,192                        ; subps         %xmm8,%xmm0
17986  DB  243,69,15,88,201                    ; addss         %xmm9,%xmm9
17987  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
17988  DB  68,15,40,208                        ; movaps        %xmm0,%xmm10
17989  DB  69,15,94,209                        ; divps         %xmm9,%xmm10
17990  DB  243,69,15,91,218                    ; cvttps2dq     %xmm10,%xmm11
17991  DB  69,15,91,219                        ; cvtdq2ps      %xmm11,%xmm11
17992  DB  69,15,194,211,1                     ; cmpltps       %xmm11,%xmm10
17993  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17994  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
17995  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
17996  DB  69,15,84,226                        ; andps         %xmm10,%xmm12
17997  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
17998  DB  69,15,92,220                        ; subps         %xmm12,%xmm11
17999  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
18000  DB  65,15,92,195                        ; subps         %xmm11,%xmm0
18001  DB  65,15,92,192                        ; subps         %xmm8,%xmm0
18002  DB  68,15,92,208                        ; subps         %xmm0,%xmm10
18003  DB  65,15,84,194                        ; andps         %xmm10,%xmm0
18004  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
18005  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
18006  DB  65,15,93,193                        ; minps         %xmm9,%xmm0
18007  DB  72,173                              ; lods          %ds:(%rsi),%rax
18008  DB  255,224                             ; jmpq          *%rax
18009
18010PUBLIC _sk_mirror_y_sse2
18011_sk_mirror_y_sse2 LABEL PROC
18012  DB  72,173                              ; lods          %ds:(%rsi),%rax
18013  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
18014  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
18015  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18016  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
18017  DB  243,69,15,88,201                    ; addss         %xmm9,%xmm9
18018  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18019  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
18020  DB  69,15,94,209                        ; divps         %xmm9,%xmm10
18021  DB  243,69,15,91,218                    ; cvttps2dq     %xmm10,%xmm11
18022  DB  69,15,91,219                        ; cvtdq2ps      %xmm11,%xmm11
18023  DB  69,15,194,211,1                     ; cmpltps       %xmm11,%xmm10
18024  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
18025  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
18026  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18027  DB  69,15,84,226                        ; andps         %xmm10,%xmm12
18028  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
18029  DB  69,15,92,220                        ; subps         %xmm12,%xmm11
18030  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
18031  DB  65,15,92,203                        ; subps         %xmm11,%xmm1
18032  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
18033  DB  68,15,92,209                        ; subps         %xmm1,%xmm10
18034  DB  65,15,84,202                        ; andps         %xmm10,%xmm1
18035  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
18036  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
18037  DB  65,15,93,201                        ; minps         %xmm9,%xmm1
18038  DB  72,173                              ; lods          %ds:(%rsi),%rax
18039  DB  255,224                             ; jmpq          *%rax
18040
18041PUBLIC _sk_luminance_to_alpha_sse2
18042_sk_luminance_to_alpha_sse2 LABEL PROC
18043  DB  184,208,179,89,62                   ; mov           $0x3e59b3d0,%eax
18044  DB  102,15,110,216                      ; movd          %eax,%xmm3
18045  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
18046  DB  15,89,216                           ; mulps         %xmm0,%xmm3
18047  DB  184,89,23,55,63                     ; mov           $0x3f371759,%eax
18048  DB  102,15,110,192                      ; movd          %eax,%xmm0
18049  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18050  DB  15,89,193                           ; mulps         %xmm1,%xmm0
18051  DB  15,88,195                           ; addps         %xmm3,%xmm0
18052  DB  184,152,221,147,61                  ; mov           $0x3d93dd98,%eax
18053  DB  102,15,110,216                      ; movd          %eax,%xmm3
18054  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
18055  DB  15,89,218                           ; mulps         %xmm2,%xmm3
18056  DB  15,88,216                           ; addps         %xmm0,%xmm3
18057  DB  72,173                              ; lods          %ds:(%rsi),%rax
18058  DB  15,87,192                           ; xorps         %xmm0,%xmm0
18059  DB  15,87,201                           ; xorps         %xmm1,%xmm1
18060  DB  15,87,210                           ; xorps         %xmm2,%xmm2
18061  DB  255,224                             ; jmpq          *%rax
18062
18063PUBLIC _sk_matrix_2x3_sse2
18064_sk_matrix_2x3_sse2 LABEL PROC
18065  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
18066  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18067  DB  72,173                              ; lods          %ds:(%rsi),%rax
18068  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18069  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
18070  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18071  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
18072  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18073  DB  243,68,15,16,88,16                  ; movss         0x10(%rax),%xmm11
18074  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18075  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18076  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18077  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18078  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
18079  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
18080  DB  243,68,15,16,80,12                  ; movss         0xc(%rax),%xmm10
18081  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18082  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
18083  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18084  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18085  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18086  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
18087  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
18088  DB  72,173                              ; lods          %ds:(%rsi),%rax
18089  DB  255,224                             ; jmpq          *%rax
18090
18091PUBLIC _sk_matrix_3x4_sse2
18092_sk_matrix_3x4_sse2 LABEL PROC
18093  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
18094  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18095  DB  72,173                              ; lods          %ds:(%rsi),%rax
18096  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18097  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
18098  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18099  DB  243,68,15,16,80,12                  ; movss         0xc(%rax),%xmm10
18100  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18101  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
18102  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18103  DB  243,68,15,16,96,36                  ; movss         0x24(%rax),%xmm12
18104  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18105  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
18106  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18107  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18108  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18109  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18110  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
18111  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
18112  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
18113  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18114  DB  243,68,15,16,88,28                  ; movss         0x1c(%rax),%xmm11
18115  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18116  DB  243,68,15,16,96,40                  ; movss         0x28(%rax),%xmm12
18117  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18118  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
18119  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18120  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18121  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18122  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
18123  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
18124  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
18125  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18126  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
18127  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18128  DB  243,68,15,16,96,32                  ; movss         0x20(%rax),%xmm12
18129  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18130  DB  243,68,15,16,104,44                 ; movss         0x2c(%rax),%xmm13
18131  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18132  DB  68,15,89,226                        ; mulps         %xmm2,%xmm12
18133  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18134  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
18135  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18136  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18137  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18138  DB  72,173                              ; lods          %ds:(%rsi),%rax
18139  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
18140  DB  255,224                             ; jmpq          *%rax
18141
18142PUBLIC _sk_matrix_4x5_sse2
18143_sk_matrix_4x5_sse2 LABEL PROC
18144  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
18145  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18146  DB  72,173                              ; lods          %ds:(%rsi),%rax
18147  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18148  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
18149  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18150  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
18151  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18152  DB  243,68,15,16,88,32                  ; movss         0x20(%rax),%xmm11
18153  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18154  DB  243,68,15,16,96,48                  ; movss         0x30(%rax),%xmm12
18155  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18156  DB  243,68,15,16,104,64                 ; movss         0x40(%rax),%xmm13
18157  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18158  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
18159  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18160  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
18161  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18162  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18163  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18164  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18165  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
18166  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
18167  DB  243,68,15,16,80,20                  ; movss         0x14(%rax),%xmm10
18168  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18169  DB  243,68,15,16,88,36                  ; movss         0x24(%rax),%xmm11
18170  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18171  DB  243,68,15,16,96,52                  ; movss         0x34(%rax),%xmm12
18172  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18173  DB  243,68,15,16,104,68                 ; movss         0x44(%rax),%xmm13
18174  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18175  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
18176  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18177  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
18178  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18179  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18180  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18181  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
18182  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
18183  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
18184  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18185  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
18186  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18187  DB  243,68,15,16,96,40                  ; movss         0x28(%rax),%xmm12
18188  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18189  DB  243,68,15,16,104,56                 ; movss         0x38(%rax),%xmm13
18190  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18191  DB  243,68,15,16,112,72                 ; movss         0x48(%rax),%xmm14
18192  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
18193  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
18194  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
18195  DB  68,15,89,226                        ; mulps         %xmm2,%xmm12
18196  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18197  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
18198  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18199  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18200  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18201  DB  243,68,15,16,88,12                  ; movss         0xc(%rax),%xmm11
18202  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18203  DB  243,68,15,16,96,28                  ; movss         0x1c(%rax),%xmm12
18204  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18205  DB  243,68,15,16,104,44                 ; movss         0x2c(%rax),%xmm13
18206  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18207  DB  243,68,15,16,112,60                 ; movss         0x3c(%rax),%xmm14
18208  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
18209  DB  243,68,15,16,120,76                 ; movss         0x4c(%rax),%xmm15
18210  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
18211  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
18212  DB  69,15,88,247                        ; addps         %xmm15,%xmm14
18213  DB  68,15,89,234                        ; mulps         %xmm2,%xmm13
18214  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
18215  DB  69,15,89,225                        ; mulps         %xmm9,%xmm12
18216  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18217  DB  69,15,89,216                        ; mulps         %xmm8,%xmm11
18218  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18219  DB  72,173                              ; lods          %ds:(%rsi),%rax
18220  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
18221  DB  65,15,40,219                        ; movaps        %xmm11,%xmm3
18222  DB  255,224                             ; jmpq          *%rax
18223
18224PUBLIC _sk_matrix_perspective_sse2
18225_sk_matrix_perspective_sse2 LABEL PROC
18226  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18227  DB  72,173                              ; lods          %ds:(%rsi),%rax
18228  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18229  DB  243,68,15,16,72,4                   ; movss         0x4(%rax),%xmm9
18230  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18231  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18232  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
18233  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18234  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
18235  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18236  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18237  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
18238  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
18239  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18240  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
18241  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18242  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
18243  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18244  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
18245  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18246  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18247  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18248  DB  243,68,15,16,80,24                  ; movss         0x18(%rax),%xmm10
18249  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18250  DB  243,68,15,16,88,28                  ; movss         0x1c(%rax),%xmm11
18251  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18252  DB  243,68,15,16,96,32                  ; movss         0x20(%rax),%xmm12
18253  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18254  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
18255  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18256  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18257  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18258  DB  65,15,83,202                        ; rcpps         %xmm10,%xmm1
18259  DB  15,89,193                           ; mulps         %xmm1,%xmm0
18260  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
18261  DB  72,173                              ; lods          %ds:(%rsi),%rax
18262  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
18263  DB  255,224                             ; jmpq          *%rax
18264
18265PUBLIC _sk_linear_gradient_sse2
18266_sk_linear_gradient_sse2 LABEL PROC
18267  DB  72,173                              ; lods          %ds:(%rsi),%rax
18268  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
18269  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18270  DB  243,68,15,16,80,20                  ; movss         0x14(%rax),%xmm10
18271  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18272  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
18273  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18274  DB  243,68,15,16,96,28                  ; movss         0x1c(%rax),%xmm12
18275  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18276  DB  72,139,8                            ; mov           (%rax),%rcx
18277  DB  72,133,201                          ; test          %rcx,%rcx
18278  DB  15,132,15,1,0,0                     ; je            3f16 <_sk_linear_gradient_sse2+0x149>
18279  DB  72,139,64,8                         ; mov           0x8(%rax),%rax
18280  DB  72,131,192,32                       ; add           $0x20,%rax
18281  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
18282  DB  15,87,219                           ; xorps         %xmm3,%xmm3
18283  DB  15,87,210                           ; xorps         %xmm2,%xmm2
18284  DB  15,87,201                           ; xorps         %xmm1,%xmm1
18285  DB  243,68,15,16,112,224                ; movss         -0x20(%rax),%xmm14
18286  DB  243,68,15,16,104,228                ; movss         -0x1c(%rax),%xmm13
18287  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
18288  DB  69,15,40,252                        ; movaps        %xmm12,%xmm15
18289  DB  68,15,40,224                        ; movaps        %xmm0,%xmm12
18290  DB  69,15,194,230,1                     ; cmpltps       %xmm14,%xmm12
18291  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18292  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18293  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18294  DB  69,15,84,196                        ; andps         %xmm12,%xmm8
18295  DB  69,15,86,198                        ; orps          %xmm14,%xmm8
18296  DB  243,68,15,16,104,232                ; movss         -0x18(%rax),%xmm13
18297  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18298  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18299  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18300  DB  65,15,84,204                        ; andps         %xmm12,%xmm1
18301  DB  65,15,86,206                        ; orps          %xmm14,%xmm1
18302  DB  243,68,15,16,104,236                ; movss         -0x14(%rax),%xmm13
18303  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18304  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18305  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18306  DB  65,15,84,212                        ; andps         %xmm12,%xmm2
18307  DB  65,15,86,214                        ; orps          %xmm14,%xmm2
18308  DB  243,68,15,16,104,240                ; movss         -0x10(%rax),%xmm13
18309  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18310  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18311  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18312  DB  65,15,84,220                        ; andps         %xmm12,%xmm3
18313  DB  65,15,86,222                        ; orps          %xmm14,%xmm3
18314  DB  243,68,15,16,104,244                ; movss         -0xc(%rax),%xmm13
18315  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18316  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18317  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18318  DB  69,15,84,204                        ; andps         %xmm12,%xmm9
18319  DB  69,15,86,206                        ; orps          %xmm14,%xmm9
18320  DB  243,68,15,16,104,248                ; movss         -0x8(%rax),%xmm13
18321  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18322  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18323  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18324  DB  69,15,84,212                        ; andps         %xmm12,%xmm10
18325  DB  69,15,86,214                        ; orps          %xmm14,%xmm10
18326  DB  243,68,15,16,104,252                ; movss         -0x4(%rax),%xmm13
18327  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18328  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18329  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18330  DB  69,15,84,220                        ; andps         %xmm12,%xmm11
18331  DB  69,15,86,222                        ; orps          %xmm14,%xmm11
18332  DB  243,68,15,16,40                     ; movss         (%rax),%xmm13
18333  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18334  DB  69,15,84,252                        ; andps         %xmm12,%xmm15
18335  DB  69,15,85,229                        ; andnps        %xmm13,%xmm12
18336  DB  69,15,86,231                        ; orps          %xmm15,%xmm12
18337  DB  72,131,192,36                       ; add           $0x24,%rax
18338  DB  72,255,201                          ; dec           %rcx
18339  DB  15,133,8,255,255,255                ; jne           3e1c <_sk_linear_gradient_sse2+0x4f>
18340  DB  235,13                              ; jmp           3f23 <_sk_linear_gradient_sse2+0x156>
18341  DB  15,87,201                           ; xorps         %xmm1,%xmm1
18342  DB  15,87,210                           ; xorps         %xmm2,%xmm2
18343  DB  15,87,219                           ; xorps         %xmm3,%xmm3
18344  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
18345  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
18346  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
18347  DB  15,89,200                           ; mulps         %xmm0,%xmm1
18348  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
18349  DB  15,89,208                           ; mulps         %xmm0,%xmm2
18350  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
18351  DB  15,89,216                           ; mulps         %xmm0,%xmm3
18352  DB  65,15,88,220                        ; addps         %xmm12,%xmm3
18353  DB  72,173                              ; lods          %ds:(%rsi),%rax
18354  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
18355  DB  255,224                             ; jmpq          *%rax
18356
18357PUBLIC _sk_linear_gradient_2stops_sse2
18358_sk_linear_gradient_2stops_sse2 LABEL PROC
18359  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18360  DB  72,173                              ; lods          %ds:(%rsi),%rax
18361  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18362  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
18363  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18364  DB  243,15,16,80,16                     ; movss         0x10(%rax),%xmm2
18365  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
18366  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18367  DB  15,88,194                           ; addps         %xmm2,%xmm0
18368  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
18369  DB  243,15,16,80,20                     ; movss         0x14(%rax),%xmm2
18370  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
18371  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
18372  DB  15,88,202                           ; addps         %xmm2,%xmm1
18373  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
18374  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
18375  DB  243,15,16,88,24                     ; movss         0x18(%rax),%xmm3
18376  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
18377  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
18378  DB  15,88,211                           ; addps         %xmm3,%xmm2
18379  DB  243,15,16,88,12                     ; movss         0xc(%rax),%xmm3
18380  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
18381  DB  243,68,15,16,72,28                  ; movss         0x1c(%rax),%xmm9
18382  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18383  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
18384  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
18385  DB  72,173                              ; lods          %ds:(%rsi),%rax
18386  DB  255,224                             ; jmpq          *%rax
18387
18388PUBLIC _sk_save_xy_sse2
18389_sk_save_xy_sse2 LABEL PROC
18390  DB  72,173                              ; lods          %ds:(%rsi),%rax
18391  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18392  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18393  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18394  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
18395  DB  68,15,88,200                        ; addps         %xmm0,%xmm9
18396  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
18397  DB  69,15,91,210                        ; cvtdq2ps      %xmm10,%xmm10
18398  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
18399  DB  69,15,194,218,1                     ; cmpltps       %xmm10,%xmm11
18400  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18401  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
18402  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18403  DB  69,15,84,220                        ; andps         %xmm12,%xmm11
18404  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
18405  DB  69,15,92,202                        ; subps         %xmm10,%xmm9
18406  DB  68,15,88,193                        ; addps         %xmm1,%xmm8
18407  DB  243,69,15,91,208                    ; cvttps2dq     %xmm8,%xmm10
18408  DB  69,15,91,210                        ; cvtdq2ps      %xmm10,%xmm10
18409  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
18410  DB  69,15,194,218,1                     ; cmpltps       %xmm10,%xmm11
18411  DB  69,15,84,220                        ; andps         %xmm12,%xmm11
18412  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
18413  DB  69,15,92,194                        ; subps         %xmm10,%xmm8
18414  DB  15,17,0                             ; movups        %xmm0,(%rax)
18415  DB  15,17,72,32                         ; movups        %xmm1,0x20(%rax)
18416  DB  68,15,17,72,64                      ; movups        %xmm9,0x40(%rax)
18417  DB  68,15,17,64,96                      ; movups        %xmm8,0x60(%rax)
18418  DB  72,173                              ; lods          %ds:(%rsi),%rax
18419  DB  255,224                             ; jmpq          *%rax
18420
18421PUBLIC _sk_accumulate_sse2
18422_sk_accumulate_sse2 LABEL PROC
18423  DB  72,173                              ; lods          %ds:(%rsi),%rax
18424  DB  68,15,16,128,128,0,0,0              ; movups        0x80(%rax),%xmm8
18425  DB  68,15,16,136,160,0,0,0              ; movups        0xa0(%rax),%xmm9
18426  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18427  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
18428  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
18429  DB  65,15,88,224                        ; addps         %xmm8,%xmm4
18430  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
18431  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
18432  DB  65,15,88,232                        ; addps         %xmm8,%xmm5
18433  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
18434  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
18435  DB  65,15,88,240                        ; addps         %xmm8,%xmm6
18436  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
18437  DB  65,15,88,249                        ; addps         %xmm9,%xmm7
18438  DB  72,173                              ; lods          %ds:(%rsi),%rax
18439  DB  255,224                             ; jmpq          *%rax
18440
18441PUBLIC _sk_bilinear_nx_sse2
18442_sk_bilinear_nx_sse2 LABEL PROC
18443  DB  72,173                              ; lods          %ds:(%rsi),%rax
18444  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
18445  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18446  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18447  DB  15,16,0                             ; movups        (%rax),%xmm0
18448  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18449  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18450  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18451  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18452  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18453  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18454  DB  68,15,17,128,128,0,0,0              ; movups        %xmm8,0x80(%rax)
18455  DB  72,173                              ; lods          %ds:(%rsi),%rax
18456  DB  255,224                             ; jmpq          *%rax
18457
18458PUBLIC _sk_bilinear_px_sse2
18459_sk_bilinear_px_sse2 LABEL PROC
18460  DB  72,173                              ; lods          %ds:(%rsi),%rax
18461  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18462  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18463  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18464  DB  15,16,0                             ; movups        (%rax),%xmm0
18465  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18466  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18467  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
18468  DB  72,173                              ; lods          %ds:(%rsi),%rax
18469  DB  255,224                             ; jmpq          *%rax
18470
18471PUBLIC _sk_bilinear_ny_sse2
18472_sk_bilinear_ny_sse2 LABEL PROC
18473  DB  72,173                              ; lods          %ds:(%rsi),%rax
18474  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
18475  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18476  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18477  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18478  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18479  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18480  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18481  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18482  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18483  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18484  DB  68,15,17,128,160,0,0,0              ; movups        %xmm8,0xa0(%rax)
18485  DB  72,173                              ; lods          %ds:(%rsi),%rax
18486  DB  255,224                             ; jmpq          *%rax
18487
18488PUBLIC _sk_bilinear_py_sse2
18489_sk_bilinear_py_sse2 LABEL PROC
18490  DB  72,173                              ; lods          %ds:(%rsi),%rax
18491  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18492  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18493  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18494  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18495  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18496  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18497  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
18498  DB  72,173                              ; lods          %ds:(%rsi),%rax
18499  DB  255,224                             ; jmpq          *%rax
18500
18501PUBLIC _sk_bicubic_n3x_sse2
18502_sk_bicubic_n3x_sse2 LABEL PROC
18503  DB  72,173                              ; lods          %ds:(%rsi),%rax
18504  DB  185,0,0,192,191                     ; mov           $0xbfc00000,%ecx
18505  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18506  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18507  DB  15,16,0                             ; movups        (%rax),%xmm0
18508  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18509  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18510  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18511  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18512  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18513  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18514  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
18515  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
18516  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18517  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
18518  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18519  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18520  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18521  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
18522  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18523  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18524  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
18525  DB  72,173                              ; lods          %ds:(%rsi),%rax
18526  DB  255,224                             ; jmpq          *%rax
18527
18528PUBLIC _sk_bicubic_n1x_sse2
18529_sk_bicubic_n1x_sse2 LABEL PROC
18530  DB  72,173                              ; lods          %ds:(%rsi),%rax
18531  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
18532  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18533  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18534  DB  15,16,0                             ; movups        (%rax),%xmm0
18535  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18536  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18537  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18538  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18539  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18540  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18541  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
18542  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
18543  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18544  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18545  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18546  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18547  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18548  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18549  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18550  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18551  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18552  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18553  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18554  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
18555  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18556  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18557  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18558  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18559  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
18560  DB  72,173                              ; lods          %ds:(%rsi),%rax
18561  DB  255,224                             ; jmpq          *%rax
18562
18563PUBLIC _sk_bicubic_p1x_sse2
18564_sk_bicubic_p1x_sse2 LABEL PROC
18565  DB  72,173                              ; lods          %ds:(%rsi),%rax
18566  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18567  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18568  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18569  DB  15,16,0                             ; movups        (%rax),%xmm0
18570  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18571  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18572  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
18573  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18574  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18575  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18576  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
18577  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18578  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18579  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18580  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18581  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
18582  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
18583  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18584  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18585  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18586  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
18587  DB  68,15,17,144,128,0,0,0              ; movups        %xmm10,0x80(%rax)
18588  DB  72,173                              ; lods          %ds:(%rsi),%rax
18589  DB  255,224                             ; jmpq          *%rax
18590
18591PUBLIC _sk_bicubic_p3x_sse2
18592_sk_bicubic_p3x_sse2 LABEL PROC
18593  DB  72,173                              ; lods          %ds:(%rsi),%rax
18594  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18595  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18596  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18597  DB  15,16,0                             ; movups        (%rax),%xmm0
18598  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18599  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18600  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
18601  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18602  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18603  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
18604  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
18605  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
18606  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18607  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18608  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
18609  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
18610  DB  68,15,17,128,128,0,0,0              ; movups        %xmm8,0x80(%rax)
18611  DB  72,173                              ; lods          %ds:(%rsi),%rax
18612  DB  255,224                             ; jmpq          *%rax
18613
18614PUBLIC _sk_bicubic_n3y_sse2
18615_sk_bicubic_n3y_sse2 LABEL PROC
18616  DB  72,173                              ; lods          %ds:(%rsi),%rax
18617  DB  185,0,0,192,191                     ; mov           $0xbfc00000,%ecx
18618  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18619  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18620  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18621  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18622  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18623  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18624  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18625  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18626  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18627  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
18628  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
18629  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18630  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
18631  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18632  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18633  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18634  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
18635  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18636  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18637  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
18638  DB  72,173                              ; lods          %ds:(%rsi),%rax
18639  DB  255,224                             ; jmpq          *%rax
18640
18641PUBLIC _sk_bicubic_n1y_sse2
18642_sk_bicubic_n1y_sse2 LABEL PROC
18643  DB  72,173                              ; lods          %ds:(%rsi),%rax
18644  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
18645  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18646  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18647  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18648  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18649  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18650  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18651  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18652  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18653  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18654  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
18655  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
18656  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18657  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18658  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18659  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18660  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18661  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18662  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18663  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18664  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18665  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18666  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18667  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
18668  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18669  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18670  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18671  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18672  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
18673  DB  72,173                              ; lods          %ds:(%rsi),%rax
18674  DB  255,224                             ; jmpq          *%rax
18675
18676PUBLIC _sk_bicubic_p1y_sse2
18677_sk_bicubic_p1y_sse2 LABEL PROC
18678  DB  72,173                              ; lods          %ds:(%rsi),%rax
18679  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18680  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18681  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18682  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18683  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18684  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18685  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
18686  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18687  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18688  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18689  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
18690  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18691  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18692  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18693  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18694  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
18695  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
18696  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18697  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18698  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18699  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
18700  DB  68,15,17,144,160,0,0,0              ; movups        %xmm10,0xa0(%rax)
18701  DB  72,173                              ; lods          %ds:(%rsi),%rax
18702  DB  255,224                             ; jmpq          *%rax
18703
18704PUBLIC _sk_bicubic_p3y_sse2
18705_sk_bicubic_p3y_sse2 LABEL PROC
18706  DB  72,173                              ; lods          %ds:(%rsi),%rax
18707  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18708  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18709  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18710  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18711  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18712  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18713  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
18714  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18715  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18716  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
18717  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
18718  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
18719  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18720  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18721  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
18722  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
18723  DB  68,15,17,128,160,0,0,0              ; movups        %xmm8,0xa0(%rax)
18724  DB  72,173                              ; lods          %ds:(%rsi),%rax
18725  DB  255,224                             ; jmpq          *%rax
18726
18727PUBLIC _sk_callback_sse2
18728_sk_callback_sse2 LABEL PROC
18729  DB  83                                  ; push          %rbx
18730  DB  72,131,236,32                       ; sub           $0x20,%rsp
18731  DB  68,15,40,197                        ; movaps        %xmm5,%xmm8
18732  DB  68,15,40,204                        ; movaps        %xmm4,%xmm9
18733  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
18734  DB  68,15,40,218                        ; movaps        %xmm2,%xmm11
18735  DB  68,15,40,225                        ; movaps        %xmm1,%xmm12
18736  DB  68,15,40,232                        ; movaps        %xmm0,%xmm13
18737  DB  72,137,211                          ; mov           %rdx,%rbx
18738  DB  72,173                              ; lods          %ds:(%rsi),%rax
18739  DB  72,139,72,8                         ; mov           0x8(%rax),%rcx
18740  DB  186,4,0,0,0                         ; mov           $0x4,%edx
18741  DB  255,16                              ; callq         *(%rax)
18742  DB  72,173                              ; lods          %ds:(%rsi),%rax
18743  DB  72,137,218                          ; mov           %rbx,%rdx
18744  DB  65,15,40,197                        ; movaps        %xmm13,%xmm0
18745  DB  65,15,40,204                        ; movaps        %xmm12,%xmm1
18746  DB  65,15,40,211                        ; movaps        %xmm11,%xmm2
18747  DB  65,15,40,218                        ; movaps        %xmm10,%xmm3
18748  DB  65,15,40,225                        ; movaps        %xmm9,%xmm4
18749  DB  65,15,40,232                        ; movaps        %xmm8,%xmm5
18750  DB  72,131,196,32                       ; add           $0x20,%rsp
18751  DB  91                                  ; pop           %rbx
18752  DB  255,224                             ; jmpq          *%rax
18753ENDIF
18754END
18755