SkJumper_generated_win.S revision b4bbc64adee74f99ddfc30ad4e5043f98380bdbb
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_text32 SEGMENT ALIGN(32) 'CODE'
11ALIGN 32
12
13PUBLIC _sk_start_pipeline_hsw
14_sk_start_pipeline_hsw LABEL PROC
15  DB  65,87                               ; push          %r15
16  DB  65,86                               ; push          %r14
17  DB  65,85                               ; push          %r13
18  DB  65,84                               ; push          %r12
19  DB  86                                  ; push          %rsi
20  DB  87                                  ; push          %rdi
21  DB  83                                  ; push          %rbx
22  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
23  DB  197,120,41,188,36,144,0,0,0         ; vmovaps       %xmm15,0x90(%rsp)
24  DB  197,120,41,180,36,128,0,0,0         ; vmovaps       %xmm14,0x80(%rsp)
25  DB  197,120,41,108,36,112               ; vmovaps       %xmm13,0x70(%rsp)
26  DB  197,120,41,100,36,96                ; vmovaps       %xmm12,0x60(%rsp)
27  DB  197,120,41,92,36,80                 ; vmovaps       %xmm11,0x50(%rsp)
28  DB  197,120,41,84,36,64                 ; vmovaps       %xmm10,0x40(%rsp)
29  DB  197,120,41,76,36,48                 ; vmovaps       %xmm9,0x30(%rsp)
30  DB  197,120,41,68,36,32                 ; vmovaps       %xmm8,0x20(%rsp)
31  DB  197,248,41,124,36,16                ; vmovaps       %xmm7,0x10(%rsp)
32  DB  197,248,41,52,36                    ; vmovaps       %xmm6,(%rsp)
33  DB  77,137,205                          ; mov           %r9,%r13
34  DB  77,137,198                          ; mov           %r8,%r14
35  DB  72,137,203                          ; mov           %rcx,%rbx
36  DB  72,137,214                          ; mov           %rdx,%rsi
37  DB  72,173                              ; lods          %ds:(%rsi),%rax
38  DB  73,137,199                          ; mov           %rax,%r15
39  DB  73,137,244                          ; mov           %rsi,%r12
40  DB  72,141,67,8                         ; lea           0x8(%rbx),%rax
41  DB  76,57,232                           ; cmp           %r13,%rax
42  DB  118,5                               ; jbe           75 <_sk_start_pipeline_hsw+0x75>
43  DB  72,137,223                          ; mov           %rbx,%rdi
44  DB  235,65                              ; jmp           b6 <_sk_start_pipeline_hsw+0xb6>
45  DB  185,0,0,0,0                         ; mov           $0x0,%ecx
46  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
47  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
48  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
49  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
50  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
51  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
52  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
53  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
54  DB  72,137,223                          ; mov           %rbx,%rdi
55  DB  76,137,230                          ; mov           %r12,%rsi
56  DB  76,137,242                          ; mov           %r14,%rdx
57  DB  65,255,215                          ; callq         *%r15
58  DB  72,141,123,8                        ; lea           0x8(%rbx),%rdi
59  DB  72,131,195,16                       ; add           $0x10,%rbx
60  DB  76,57,235                           ; cmp           %r13,%rbx
61  DB  72,137,251                          ; mov           %rdi,%rbx
62  DB  118,191                             ; jbe           75 <_sk_start_pipeline_hsw+0x75>
63  DB  76,137,233                          ; mov           %r13,%rcx
64  DB  72,41,249                           ; sub           %rdi,%rcx
65  DB  116,41                              ; je            e7 <_sk_start_pipeline_hsw+0xe7>
66  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
67  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
68  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
69  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
70  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
71  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
72  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
73  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
74  DB  76,137,230                          ; mov           %r12,%rsi
75  DB  76,137,242                          ; mov           %r14,%rdx
76  DB  65,255,215                          ; callq         *%r15
77  DB  76,137,232                          ; mov           %r13,%rax
78  DB  197,248,40,52,36                    ; vmovaps       (%rsp),%xmm6
79  DB  197,248,40,124,36,16                ; vmovaps       0x10(%rsp),%xmm7
80  DB  197,120,40,68,36,32                 ; vmovaps       0x20(%rsp),%xmm8
81  DB  197,120,40,76,36,48                 ; vmovaps       0x30(%rsp),%xmm9
82  DB  197,120,40,84,36,64                 ; vmovaps       0x40(%rsp),%xmm10
83  DB  197,120,40,92,36,80                 ; vmovaps       0x50(%rsp),%xmm11
84  DB  197,120,40,100,36,96                ; vmovaps       0x60(%rsp),%xmm12
85  DB  197,120,40,108,36,112               ; vmovaps       0x70(%rsp),%xmm13
86  DB  197,120,40,180,36,128,0,0,0         ; vmovaps       0x80(%rsp),%xmm14
87  DB  197,120,40,188,36,144,0,0,0         ; vmovaps       0x90(%rsp),%xmm15
88  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
89  DB  91                                  ; pop           %rbx
90  DB  95                                  ; pop           %rdi
91  DB  94                                  ; pop           %rsi
92  DB  65,92                               ; pop           %r12
93  DB  65,93                               ; pop           %r13
94  DB  65,94                               ; pop           %r14
95  DB  65,95                               ; pop           %r15
96  DB  197,248,119                         ; vzeroupper
97  DB  195                                 ; retq
98
99PUBLIC _sk_just_return_hsw
100_sk_just_return_hsw LABEL PROC
101  DB  195                                 ; retq
102
103PUBLIC _sk_seed_shader_hsw
104_sk_seed_shader_hsw LABEL PROC
105  DB  72,173                              ; lods          %ds:(%rsi),%rax
106  DB  197,249,110,199                     ; vmovd         %edi,%xmm0
107  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
108  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
109  DB  196,226,125,24,13,74,64,0,0         ; vbroadcastss  0x404a(%rip),%ymm1        # 41a4 <_sk_callback_hsw+0x11a>
110  DB  197,252,88,193                      ; vaddps        %ymm1,%ymm0,%ymm0
111  DB  197,252,88,2                        ; vaddps        (%rdx),%ymm0,%ymm0
112  DB  196,226,125,24,16                   ; vbroadcastss  (%rax),%ymm2
113  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
114  DB  197,236,88,201                      ; vaddps        %ymm1,%ymm2,%ymm1
115  DB  72,173                              ; lods          %ds:(%rsi),%rax
116  DB  196,226,125,24,21,46,64,0,0         ; vbroadcastss  0x402e(%rip),%ymm2        # 41a8 <_sk_callback_hsw+0x11e>
117  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
118  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
119  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
120  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
121  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
122  DB  255,224                             ; jmpq          *%rax
123
124PUBLIC _sk_constant_color_hsw
125_sk_constant_color_hsw LABEL PROC
126  DB  72,173                              ; lods          %ds:(%rsi),%rax
127  DB  196,226,125,24,0                    ; vbroadcastss  (%rax),%ymm0
128  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
129  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
130  DB  196,226,125,24,88,12                ; vbroadcastss  0xc(%rax),%ymm3
131  DB  72,173                              ; lods          %ds:(%rsi),%rax
132  DB  255,224                             ; jmpq          *%rax
133
134PUBLIC _sk_clear_hsw
135_sk_clear_hsw LABEL PROC
136  DB  72,173                              ; lods          %ds:(%rsi),%rax
137  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
138  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
139  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
140  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
141  DB  255,224                             ; jmpq          *%rax
142
143PUBLIC _sk_srcatop_hsw
144_sk_srcatop_hsw LABEL PROC
145  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
146  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
147  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
148  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
149  DB  197,60,89,204                       ; vmulps        %ymm4,%ymm8,%ymm9
150  DB  196,194,69,168,193                  ; vfmadd213ps   %ymm9,%ymm7,%ymm0
151  DB  197,60,89,205                       ; vmulps        %ymm5,%ymm8,%ymm9
152  DB  196,194,69,168,201                  ; vfmadd213ps   %ymm9,%ymm7,%ymm1
153  DB  197,60,89,206                       ; vmulps        %ymm6,%ymm8,%ymm9
154  DB  196,194,69,168,209                  ; vfmadd213ps   %ymm9,%ymm7,%ymm2
155  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
156  DB  196,194,69,168,216                  ; vfmadd213ps   %ymm8,%ymm7,%ymm3
157  DB  72,173                              ; lods          %ds:(%rsi),%rax
158  DB  255,224                             ; jmpq          *%rax
159
160PUBLIC _sk_dstatop_hsw
161_sk_dstatop_hsw LABEL PROC
162  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
163  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
164  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
165  DB  197,60,92,199                       ; vsubps        %ymm7,%ymm8,%ymm8
166  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
167  DB  196,226,101,184,196                 ; vfmadd231ps   %ymm4,%ymm3,%ymm0
168  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
169  DB  196,226,101,184,205                 ; vfmadd231ps   %ymm5,%ymm3,%ymm1
170  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
171  DB  196,226,101,184,214                 ; vfmadd231ps   %ymm6,%ymm3,%ymm2
172  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
173  DB  196,194,69,168,216                  ; vfmadd213ps   %ymm8,%ymm7,%ymm3
174  DB  72,173                              ; lods          %ds:(%rsi),%rax
175  DB  255,224                             ; jmpq          *%rax
176
177PUBLIC _sk_srcin_hsw
178_sk_srcin_hsw LABEL PROC
179  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
180  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
181  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
182  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
183  DB  72,173                              ; lods          %ds:(%rsi),%rax
184  DB  255,224                             ; jmpq          *%rax
185
186PUBLIC _sk_dstin_hsw
187_sk_dstin_hsw LABEL PROC
188  DB  197,228,89,196                      ; vmulps        %ymm4,%ymm3,%ymm0
189  DB  197,228,89,205                      ; vmulps        %ymm5,%ymm3,%ymm1
190  DB  197,228,89,214                      ; vmulps        %ymm6,%ymm3,%ymm2
191  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
192  DB  72,173                              ; lods          %ds:(%rsi),%rax
193  DB  255,224                             ; jmpq          *%rax
194
195PUBLIC _sk_srcout_hsw
196_sk_srcout_hsw LABEL PROC
197  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
198  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
199  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
200  DB  197,60,92,199                       ; vsubps        %ymm7,%ymm8,%ymm8
201  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
202  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
203  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
204  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
205  DB  72,173                              ; lods          %ds:(%rsi),%rax
206  DB  255,224                             ; jmpq          *%rax
207
208PUBLIC _sk_dstout_hsw
209_sk_dstout_hsw LABEL PROC
210  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
211  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
212  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
213  DB  197,252,92,219                      ; vsubps        %ymm3,%ymm0,%ymm3
214  DB  197,228,89,196                      ; vmulps        %ymm4,%ymm3,%ymm0
215  DB  197,228,89,205                      ; vmulps        %ymm5,%ymm3,%ymm1
216  DB  197,228,89,214                      ; vmulps        %ymm6,%ymm3,%ymm2
217  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
218  DB  72,173                              ; lods          %ds:(%rsi),%rax
219  DB  255,224                             ; jmpq          *%rax
220
221PUBLIC _sk_srcover_hsw
222_sk_srcover_hsw LABEL PROC
223  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
224  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
225  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
226  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
227  DB  196,194,93,184,192                  ; vfmadd231ps   %ymm8,%ymm4,%ymm0
228  DB  196,194,85,184,200                  ; vfmadd231ps   %ymm8,%ymm5,%ymm1
229  DB  196,194,77,184,208                  ; vfmadd231ps   %ymm8,%ymm6,%ymm2
230  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
231  DB  72,173                              ; lods          %ds:(%rsi),%rax
232  DB  255,224                             ; jmpq          *%rax
233
234PUBLIC _sk_dstover_hsw
235_sk_dstover_hsw LABEL PROC
236  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
237  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
238  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
239  DB  197,60,92,199                       ; vsubps        %ymm7,%ymm8,%ymm8
240  DB  196,226,61,168,196                  ; vfmadd213ps   %ymm4,%ymm8,%ymm0
241  DB  196,226,61,168,205                  ; vfmadd213ps   %ymm5,%ymm8,%ymm1
242  DB  196,226,61,168,214                  ; vfmadd213ps   %ymm6,%ymm8,%ymm2
243  DB  196,226,61,168,223                  ; vfmadd213ps   %ymm7,%ymm8,%ymm3
244  DB  72,173                              ; lods          %ds:(%rsi),%rax
245  DB  255,224                             ; jmpq          *%rax
246
247PUBLIC _sk_modulate_hsw
248_sk_modulate_hsw LABEL PROC
249  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
250  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
251  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
252  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
253  DB  72,173                              ; lods          %ds:(%rsi),%rax
254  DB  255,224                             ; jmpq          *%rax
255
256PUBLIC _sk_multiply_hsw
257_sk_multiply_hsw LABEL PROC
258  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
259  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
260  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
261  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
262  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
263  DB  197,60,89,212                       ; vmulps        %ymm4,%ymm8,%ymm10
264  DB  196,98,53,184,208                   ; vfmadd231ps   %ymm0,%ymm9,%ymm10
265  DB  196,194,93,168,194                  ; vfmadd213ps   %ymm10,%ymm4,%ymm0
266  DB  197,52,89,209                       ; vmulps        %ymm1,%ymm9,%ymm10
267  DB  196,98,61,184,213                   ; vfmadd231ps   %ymm5,%ymm8,%ymm10
268  DB  196,194,85,168,202                  ; vfmadd213ps   %ymm10,%ymm5,%ymm1
269  DB  197,52,89,210                       ; vmulps        %ymm2,%ymm9,%ymm10
270  DB  196,98,61,184,214                   ; vfmadd231ps   %ymm6,%ymm8,%ymm10
271  DB  196,194,77,168,210                  ; vfmadd213ps   %ymm10,%ymm6,%ymm2
272  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
273  DB  196,66,69,168,193                   ; vfmadd213ps   %ymm9,%ymm7,%ymm8
274  DB  196,194,69,168,216                  ; vfmadd213ps   %ymm8,%ymm7,%ymm3
275  DB  72,173                              ; lods          %ds:(%rsi),%rax
276  DB  255,224                             ; jmpq          *%rax
277
278PUBLIC _sk_plus__hsw
279_sk_plus__hsw LABEL PROC
280  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
281  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
282  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
283  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
284  DB  72,173                              ; lods          %ds:(%rsi),%rax
285  DB  255,224                             ; jmpq          *%rax
286
287PUBLIC _sk_screen_hsw
288_sk_screen_hsw LABEL PROC
289  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
290  DB  196,194,93,172,192                  ; vfnmadd213ps  %ymm8,%ymm4,%ymm0
291  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
292  DB  196,194,85,172,200                  ; vfnmadd213ps  %ymm8,%ymm5,%ymm1
293  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
294  DB  196,194,77,172,208                  ; vfnmadd213ps  %ymm8,%ymm6,%ymm2
295  DB  197,100,88,199                      ; vaddps        %ymm7,%ymm3,%ymm8
296  DB  196,194,69,172,216                  ; vfnmadd213ps  %ymm8,%ymm7,%ymm3
297  DB  72,173                              ; lods          %ds:(%rsi),%rax
298  DB  255,224                             ; jmpq          *%rax
299
300PUBLIC _sk_xor__hsw
301_sk_xor__hsw LABEL PROC
302  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
303  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
304  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
305  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
306  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
307  DB  197,60,89,212                       ; vmulps        %ymm4,%ymm8,%ymm10
308  DB  196,194,53,168,194                  ; vfmadd213ps   %ymm10,%ymm9,%ymm0
309  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
310  DB  196,226,61,184,205                  ; vfmadd231ps   %ymm5,%ymm8,%ymm1
311  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
312  DB  196,226,61,184,214                  ; vfmadd231ps   %ymm6,%ymm8,%ymm2
313  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
314  DB  196,98,69,168,195                   ; vfmadd213ps   %ymm3,%ymm7,%ymm8
315  DB  72,173                              ; lods          %ds:(%rsi),%rax
316  DB  197,124,41,195                      ; vmovaps       %ymm8,%ymm3
317  DB  255,224                             ; jmpq          *%rax
318
319PUBLIC _sk_darken_hsw
320_sk_darken_hsw LABEL PROC
321  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
322  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
323  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
324  DB  196,193,124,95,193                  ; vmaxps        %ymm9,%ymm0,%ymm0
325  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
326  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
327  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
328  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
329  DB  196,193,116,95,201                  ; vmaxps        %ymm9,%ymm1,%ymm1
330  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
331  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
332  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
333  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
334  DB  196,193,108,95,209                  ; vmaxps        %ymm9,%ymm2,%ymm2
335  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
336  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
337  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
338  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
339  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
340  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
341  DB  72,173                              ; lods          %ds:(%rsi),%rax
342  DB  255,224                             ; jmpq          *%rax
343
344PUBLIC _sk_lighten_hsw
345_sk_lighten_hsw LABEL PROC
346  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
347  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
348  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
349  DB  196,193,124,93,193                  ; vminps        %ymm9,%ymm0,%ymm0
350  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
351  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
352  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
353  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
354  DB  196,193,116,93,201                  ; vminps        %ymm9,%ymm1,%ymm1
355  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
356  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
357  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
358  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
359  DB  196,193,108,93,209                  ; vminps        %ymm9,%ymm2,%ymm2
360  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
361  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
362  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
363  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
364  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
365  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
366  DB  72,173                              ; lods          %ds:(%rsi),%rax
367  DB  255,224                             ; jmpq          *%rax
368
369PUBLIC _sk_difference_hsw
370_sk_difference_hsw LABEL PROC
371  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
372  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
373  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
374  DB  196,193,124,93,193                  ; vminps        %ymm9,%ymm0,%ymm0
375  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
376  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
377  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
378  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
379  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
380  DB  196,193,116,93,201                  ; vminps        %ymm9,%ymm1,%ymm1
381  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
382  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
383  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
384  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
385  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
386  DB  196,193,108,93,209                  ; vminps        %ymm9,%ymm2,%ymm2
387  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
388  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
389  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
390  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
391  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
392  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
393  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
394  DB  72,173                              ; lods          %ds:(%rsi),%rax
395  DB  255,224                             ; jmpq          *%rax
396
397PUBLIC _sk_exclusion_hsw
398_sk_exclusion_hsw LABEL PROC
399  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
400  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
401  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
402  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
403  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
404  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
405  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
406  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
407  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
408  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
409  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
410  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
411  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
412  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
413  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
414  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
415  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
416  DB  72,173                              ; lods          %ds:(%rsi),%rax
417  DB  255,224                             ; jmpq          *%rax
418
419PUBLIC _sk_colorburn_hsw
420_sk_colorburn_hsw LABEL PROC
421  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
422  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
423  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
424  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
425  DB  197,52,89,216                       ; vmulps        %ymm0,%ymm9,%ymm11
426  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
427  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
428  DB  197,60,89,228                       ; vmulps        %ymm4,%ymm8,%ymm12
429  DB  197,68,92,236                       ; vsubps        %ymm4,%ymm7,%ymm13
430  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
431  DB  197,20,94,232                       ; vdivps        %ymm0,%ymm13,%ymm13
432  DB  196,65,68,93,237                    ; vminps        %ymm13,%ymm7,%ymm13
433  DB  196,65,68,92,237                    ; vsubps        %ymm13,%ymm7,%ymm13
434  DB  196,66,101,168,235                  ; vfmadd213ps   %ymm11,%ymm3,%ymm13
435  DB  196,65,28,88,237                    ; vaddps        %ymm13,%ymm12,%ymm13
436  DB  197,28,88,224                       ; vaddps        %ymm0,%ymm12,%ymm12
437  DB  196,193,124,194,194,0               ; vcmpeqps      %ymm10,%ymm0,%ymm0
438  DB  196,195,21,74,196,0                 ; vblendvps     %ymm0,%ymm12,%ymm13,%ymm0
439  DB  197,92,194,231,0                    ; vcmpeqps      %ymm7,%ymm4,%ymm12
440  DB  197,36,88,220                       ; vaddps        %ymm4,%ymm11,%ymm11
441  DB  196,195,125,74,195,192              ; vblendvps     %ymm12,%ymm11,%ymm0,%ymm0
442  DB  197,52,89,217                       ; vmulps        %ymm1,%ymm9,%ymm11
443  DB  197,60,89,229                       ; vmulps        %ymm5,%ymm8,%ymm12
444  DB  197,68,92,237                       ; vsubps        %ymm5,%ymm7,%ymm13
445  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
446  DB  197,20,94,233                       ; vdivps        %ymm1,%ymm13,%ymm13
447  DB  196,65,68,93,237                    ; vminps        %ymm13,%ymm7,%ymm13
448  DB  196,65,68,92,237                    ; vsubps        %ymm13,%ymm7,%ymm13
449  DB  196,66,101,168,235                  ; vfmadd213ps   %ymm11,%ymm3,%ymm13
450  DB  196,65,28,88,237                    ; vaddps        %ymm13,%ymm12,%ymm13
451  DB  197,28,88,225                       ; vaddps        %ymm1,%ymm12,%ymm12
452  DB  196,193,116,194,202,0               ; vcmpeqps      %ymm10,%ymm1,%ymm1
453  DB  196,195,21,74,204,16                ; vblendvps     %ymm1,%ymm12,%ymm13,%ymm1
454  DB  197,84,194,231,0                    ; vcmpeqps      %ymm7,%ymm5,%ymm12
455  DB  197,36,88,221                       ; vaddps        %ymm5,%ymm11,%ymm11
456  DB  196,195,117,74,203,192              ; vblendvps     %ymm12,%ymm11,%ymm1,%ymm1
457  DB  197,52,89,202                       ; vmulps        %ymm2,%ymm9,%ymm9
458  DB  196,65,108,194,210,0                ; vcmpeqps      %ymm10,%ymm2,%ymm10
459  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
460  DB  197,68,92,230                       ; vsubps        %ymm6,%ymm7,%ymm12
461  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
462  DB  197,28,94,226                       ; vdivps        %ymm2,%ymm12,%ymm12
463  DB  197,164,88,210                      ; vaddps        %ymm2,%ymm11,%ymm2
464  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
465  DB  196,65,68,92,228                    ; vsubps        %ymm12,%ymm7,%ymm12
466  DB  196,66,101,168,225                  ; vfmadd213ps   %ymm9,%ymm3,%ymm12
467  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
468  DB  196,227,37,74,210,160               ; vblendvps     %ymm10,%ymm2,%ymm11,%ymm2
469  DB  197,76,194,215,0                    ; vcmpeqps      %ymm7,%ymm6,%ymm10
470  DB  197,52,88,206                       ; vaddps        %ymm6,%ymm9,%ymm9
471  DB  196,195,109,74,209,160              ; vblendvps     %ymm10,%ymm9,%ymm2,%ymm2
472  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
473  DB  72,173                              ; lods          %ds:(%rsi),%rax
474  DB  255,224                             ; jmpq          *%rax
475
476PUBLIC _sk_colordodge_hsw
477_sk_colordodge_hsw LABEL PROC
478  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
479  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
480  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
481  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
482  DB  197,52,92,215                       ; vsubps        %ymm7,%ymm9,%ymm10
483  DB  197,44,89,216                       ; vmulps        %ymm0,%ymm10,%ymm11
484  DB  197,52,92,203                       ; vsubps        %ymm3,%ymm9,%ymm9
485  DB  197,100,89,228                      ; vmulps        %ymm4,%ymm3,%ymm12
486  DB  197,100,92,232                      ; vsubps        %ymm0,%ymm3,%ymm13
487  DB  196,65,28,94,229                    ; vdivps        %ymm13,%ymm12,%ymm12
488  DB  197,52,89,236                       ; vmulps        %ymm4,%ymm9,%ymm13
489  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
490  DB  196,66,101,168,227                  ; vfmadd213ps   %ymm11,%ymm3,%ymm12
491  DB  196,65,20,88,228                    ; vaddps        %ymm12,%ymm13,%ymm12
492  DB  197,20,88,232                       ; vaddps        %ymm0,%ymm13,%ymm13
493  DB  197,252,194,195,0                   ; vcmpeqps      %ymm3,%ymm0,%ymm0
494  DB  196,195,29,74,197,0                 ; vblendvps     %ymm0,%ymm13,%ymm12,%ymm0
495  DB  196,65,92,194,224,0                 ; vcmpeqps      %ymm8,%ymm4,%ymm12
496  DB  197,36,88,220                       ; vaddps        %ymm4,%ymm11,%ymm11
497  DB  196,195,125,74,195,192              ; vblendvps     %ymm12,%ymm11,%ymm0,%ymm0
498  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
499  DB  197,100,89,229                      ; vmulps        %ymm5,%ymm3,%ymm12
500  DB  197,100,92,233                      ; vsubps        %ymm1,%ymm3,%ymm13
501  DB  196,65,28,94,229                    ; vdivps        %ymm13,%ymm12,%ymm12
502  DB  197,52,89,237                       ; vmulps        %ymm5,%ymm9,%ymm13
503  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
504  DB  196,66,101,168,227                  ; vfmadd213ps   %ymm11,%ymm3,%ymm12
505  DB  196,65,20,88,228                    ; vaddps        %ymm12,%ymm13,%ymm12
506  DB  197,20,88,233                       ; vaddps        %ymm1,%ymm13,%ymm13
507  DB  197,244,194,203,0                   ; vcmpeqps      %ymm3,%ymm1,%ymm1
508  DB  196,195,29,74,205,16                ; vblendvps     %ymm1,%ymm13,%ymm12,%ymm1
509  DB  196,65,84,194,224,0                 ; vcmpeqps      %ymm8,%ymm5,%ymm12
510  DB  197,36,88,221                       ; vaddps        %ymm5,%ymm11,%ymm11
511  DB  196,195,117,74,203,192              ; vblendvps     %ymm12,%ymm11,%ymm1,%ymm1
512  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
513  DB  197,100,89,222                      ; vmulps        %ymm6,%ymm3,%ymm11
514  DB  197,100,92,226                      ; vsubps        %ymm2,%ymm3,%ymm12
515  DB  196,65,36,94,220                    ; vdivps        %ymm12,%ymm11,%ymm11
516  DB  197,52,89,230                       ; vmulps        %ymm6,%ymm9,%ymm12
517  DB  196,65,68,93,219                    ; vminps        %ymm11,%ymm7,%ymm11
518  DB  196,66,101,168,218                  ; vfmadd213ps   %ymm10,%ymm3,%ymm11
519  DB  196,65,28,88,219                    ; vaddps        %ymm11,%ymm12,%ymm11
520  DB  197,28,88,226                       ; vaddps        %ymm2,%ymm12,%ymm12
521  DB  197,236,194,211,0                   ; vcmpeqps      %ymm3,%ymm2,%ymm2
522  DB  196,195,37,74,212,32                ; vblendvps     %ymm2,%ymm12,%ymm11,%ymm2
523  DB  196,65,76,194,192,0                 ; vcmpeqps      %ymm8,%ymm6,%ymm8
524  DB  197,44,88,214                       ; vaddps        %ymm6,%ymm10,%ymm10
525  DB  196,195,109,74,210,128              ; vblendvps     %ymm8,%ymm10,%ymm2,%ymm2
526  DB  196,194,69,184,217                  ; vfmadd231ps   %ymm9,%ymm7,%ymm3
527  DB  72,173                              ; lods          %ds:(%rsi),%rax
528  DB  255,224                             ; jmpq          *%rax
529
530PUBLIC _sk_hardlight_hsw
531_sk_hardlight_hsw LABEL PROC
532  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
533  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
534  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
535  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
536  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
537  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
538  DB  196,98,45,184,216                   ; vfmadd231ps   %ymm0,%ymm10,%ymm11
539  DB  197,124,88,200                      ; vaddps        %ymm0,%ymm0,%ymm9
540  DB  197,52,194,227,2                    ; vcmpleps      %ymm3,%ymm9,%ymm12
541  DB  197,124,89,204                      ; vmulps        %ymm4,%ymm0,%ymm9
542  DB  196,65,52,88,233                    ; vaddps        %ymm9,%ymm9,%ymm13
543  DB  197,100,89,207                      ; vmulps        %ymm7,%ymm3,%ymm9
544  DB  197,68,92,244                       ; vsubps        %ymm4,%ymm7,%ymm14
545  DB  197,228,92,192                      ; vsubps        %ymm0,%ymm3,%ymm0
546  DB  196,193,124,89,198                  ; vmulps        %ymm14,%ymm0,%ymm0
547  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
548  DB  197,180,92,192                      ; vsubps        %ymm0,%ymm9,%ymm0
549  DB  196,195,125,74,197,192              ; vblendvps     %ymm12,%ymm13,%ymm0,%ymm0
550  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
551  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
552  DB  196,98,61,184,221                   ; vfmadd231ps   %ymm5,%ymm8,%ymm11
553  DB  197,116,88,225                      ; vaddps        %ymm1,%ymm1,%ymm12
554  DB  197,28,194,227,2                    ; vcmpleps      %ymm3,%ymm12,%ymm12
555  DB  197,116,89,237                      ; vmulps        %ymm5,%ymm1,%ymm13
556  DB  196,65,20,88,237                    ; vaddps        %ymm13,%ymm13,%ymm13
557  DB  197,68,92,245                       ; vsubps        %ymm5,%ymm7,%ymm14
558  DB  197,228,92,201                      ; vsubps        %ymm1,%ymm3,%ymm1
559  DB  196,193,116,89,206                  ; vmulps        %ymm14,%ymm1,%ymm1
560  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
561  DB  197,180,92,201                      ; vsubps        %ymm1,%ymm9,%ymm1
562  DB  196,195,117,74,205,192              ; vblendvps     %ymm12,%ymm13,%ymm1,%ymm1
563  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
564  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
565  DB  196,98,61,184,214                   ; vfmadd231ps   %ymm6,%ymm8,%ymm10
566  DB  197,108,88,218                      ; vaddps        %ymm2,%ymm2,%ymm11
567  DB  197,36,194,219,2                    ; vcmpleps      %ymm3,%ymm11,%ymm11
568  DB  197,108,89,230                      ; vmulps        %ymm6,%ymm2,%ymm12
569  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
570  DB  197,68,92,238                       ; vsubps        %ymm6,%ymm7,%ymm13
571  DB  197,228,92,210                      ; vsubps        %ymm2,%ymm3,%ymm2
572  DB  196,193,108,89,213                  ; vmulps        %ymm13,%ymm2,%ymm2
573  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
574  DB  197,180,92,210                      ; vsubps        %ymm2,%ymm9,%ymm2
575  DB  196,195,109,74,212,176              ; vblendvps     %ymm11,%ymm12,%ymm2,%ymm2
576  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
577  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
578  DB  72,173                              ; lods          %ds:(%rsi),%rax
579  DB  255,224                             ; jmpq          *%rax
580
581PUBLIC _sk_overlay_hsw
582_sk_overlay_hsw LABEL PROC
583  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
584  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
585  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
586  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
587  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
588  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
589  DB  196,98,45,184,216                   ; vfmadd231ps   %ymm0,%ymm10,%ymm11
590  DB  197,92,88,204                       ; vaddps        %ymm4,%ymm4,%ymm9
591  DB  197,52,194,231,2                    ; vcmpleps      %ymm7,%ymm9,%ymm12
592  DB  197,124,89,204                      ; vmulps        %ymm4,%ymm0,%ymm9
593  DB  196,65,52,88,233                    ; vaddps        %ymm9,%ymm9,%ymm13
594  DB  197,100,89,207                      ; vmulps        %ymm7,%ymm3,%ymm9
595  DB  197,68,92,244                       ; vsubps        %ymm4,%ymm7,%ymm14
596  DB  197,228,92,192                      ; vsubps        %ymm0,%ymm3,%ymm0
597  DB  196,193,124,89,198                  ; vmulps        %ymm14,%ymm0,%ymm0
598  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
599  DB  197,180,92,192                      ; vsubps        %ymm0,%ymm9,%ymm0
600  DB  196,195,125,74,197,192              ; vblendvps     %ymm12,%ymm13,%ymm0,%ymm0
601  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
602  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
603  DB  196,98,61,184,221                   ; vfmadd231ps   %ymm5,%ymm8,%ymm11
604  DB  197,84,88,229                       ; vaddps        %ymm5,%ymm5,%ymm12
605  DB  197,28,194,231,2                    ; vcmpleps      %ymm7,%ymm12,%ymm12
606  DB  197,116,89,237                      ; vmulps        %ymm5,%ymm1,%ymm13
607  DB  196,65,20,88,237                    ; vaddps        %ymm13,%ymm13,%ymm13
608  DB  197,68,92,245                       ; vsubps        %ymm5,%ymm7,%ymm14
609  DB  197,228,92,201                      ; vsubps        %ymm1,%ymm3,%ymm1
610  DB  196,193,116,89,206                  ; vmulps        %ymm14,%ymm1,%ymm1
611  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
612  DB  197,180,92,201                      ; vsubps        %ymm1,%ymm9,%ymm1
613  DB  196,195,117,74,205,192              ; vblendvps     %ymm12,%ymm13,%ymm1,%ymm1
614  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
615  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
616  DB  196,98,61,184,214                   ; vfmadd231ps   %ymm6,%ymm8,%ymm10
617  DB  197,76,88,222                       ; vaddps        %ymm6,%ymm6,%ymm11
618  DB  197,36,194,223,2                    ; vcmpleps      %ymm7,%ymm11,%ymm11
619  DB  197,108,89,230                      ; vmulps        %ymm6,%ymm2,%ymm12
620  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
621  DB  197,68,92,238                       ; vsubps        %ymm6,%ymm7,%ymm13
622  DB  197,228,92,210                      ; vsubps        %ymm2,%ymm3,%ymm2
623  DB  196,193,108,89,213                  ; vmulps        %ymm13,%ymm2,%ymm2
624  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
625  DB  197,180,92,210                      ; vsubps        %ymm2,%ymm9,%ymm2
626  DB  196,195,109,74,212,176              ; vblendvps     %ymm11,%ymm12,%ymm2,%ymm2
627  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
628  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
629  DB  72,173                              ; lods          %ds:(%rsi),%rax
630  DB  255,224                             ; jmpq          *%rax
631
632PUBLIC _sk_softlight_hsw
633_sk_softlight_hsw LABEL PROC
634  DB  72,131,236,56                       ; sub           $0x38,%rsp
635  DB  197,252,17,20,36                    ; vmovups       %ymm2,(%rsp)
636  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
637  DB  197,44,194,223,1                    ; vcmpltps      %ymm7,%ymm10,%ymm11
638  DB  197,92,94,199                       ; vdivps        %ymm7,%ymm4,%ymm8
639  DB  196,67,45,74,224,176                ; vblendvps     %ymm11,%ymm8,%ymm10,%ymm12
640  DB  196,65,28,88,196                    ; vaddps        %ymm12,%ymm12,%ymm8
641  DB  196,65,60,88,232                    ; vaddps        %ymm8,%ymm8,%ymm13
642  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
643  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
644  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
645  DB  196,66,21,168,237                   ; vfmadd213ps   %ymm13,%ymm13,%ymm13
646  DB  196,65,28,92,240                    ; vsubps        %ymm8,%ymm12,%ymm14
647  DB  184,0,0,224,64                      ; mov           $0x40e00000,%eax
648  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
649  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
650  DB  196,65,28,89,249                    ; vmulps        %ymm9,%ymm12,%ymm15
651  DB  196,66,21,184,254                   ; vfmadd231ps   %ymm14,%ymm13,%ymm15
652  DB  196,65,124,82,236                   ; vrsqrtps      %ymm12,%ymm13
653  DB  196,65,124,83,237                   ; vrcpps        %ymm13,%ymm13
654  DB  196,65,20,92,236                    ; vsubps        %ymm12,%ymm13,%ymm13
655  DB  197,92,88,244                       ; vaddps        %ymm4,%ymm4,%ymm14
656  DB  196,65,12,88,246                    ; vaddps        %ymm14,%ymm14,%ymm14
657  DB  197,12,194,247,2                    ; vcmpleps      %ymm7,%ymm14,%ymm14
658  DB  196,67,21,74,239,224                ; vblendvps     %ymm14,%ymm15,%ymm13,%ymm13
659  DB  197,124,88,240                      ; vaddps        %ymm0,%ymm0,%ymm14
660  DB  197,12,92,251                       ; vsubps        %ymm3,%ymm14,%ymm15
661  DB  196,65,60,92,228                    ; vsubps        %ymm12,%ymm8,%ymm12
662  DB  196,98,5,168,227                    ; vfmadd213ps   %ymm3,%ymm15,%ymm12
663  DB  197,28,89,228                       ; vmulps        %ymm4,%ymm12,%ymm12
664  DB  197,4,89,255                        ; vmulps        %ymm7,%ymm15,%ymm15
665  DB  196,65,4,89,237                     ; vmulps        %ymm13,%ymm15,%ymm13
666  DB  196,98,101,184,236                  ; vfmadd231ps   %ymm4,%ymm3,%ymm13
667  DB  197,12,194,243,2                    ; vcmpleps      %ymm3,%ymm14,%ymm14
668  DB  196,195,21,74,212,224               ; vblendvps     %ymm14,%ymm12,%ymm13,%ymm2
669  DB  197,84,94,239                       ; vdivps        %ymm7,%ymm5,%ymm13
670  DB  196,67,45,74,237,176                ; vblendvps     %ymm11,%ymm13,%ymm10,%ymm13
671  DB  196,65,20,88,245                    ; vaddps        %ymm13,%ymm13,%ymm14
672  DB  196,65,12,88,246                    ; vaddps        %ymm14,%ymm14,%ymm14
673  DB  196,66,13,168,246                   ; vfmadd213ps   %ymm14,%ymm14,%ymm14
674  DB  196,65,20,92,248                    ; vsubps        %ymm8,%ymm13,%ymm15
675  DB  196,65,4,89,246                     ; vmulps        %ymm14,%ymm15,%ymm14
676  DB  196,66,53,184,245                   ; vfmadd231ps   %ymm13,%ymm9,%ymm14
677  DB  196,65,124,82,253                   ; vrsqrtps      %ymm13,%ymm15
678  DB  196,65,124,83,255                   ; vrcpps        %ymm15,%ymm15
679  DB  196,65,4,92,253                     ; vsubps        %ymm13,%ymm15,%ymm15
680  DB  197,84,88,229                       ; vaddps        %ymm5,%ymm5,%ymm12
681  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
682  DB  197,28,194,231,2                    ; vcmpleps      %ymm7,%ymm12,%ymm12
683  DB  196,67,5,74,230,192                 ; vblendvps     %ymm12,%ymm14,%ymm15,%ymm12
684  DB  197,116,88,241                      ; vaddps        %ymm1,%ymm1,%ymm14
685  DB  196,65,60,92,237                    ; vsubps        %ymm13,%ymm8,%ymm13
686  DB  197,12,92,251                       ; vsubps        %ymm3,%ymm14,%ymm15
687  DB  196,98,5,168,235                    ; vfmadd213ps   %ymm3,%ymm15,%ymm13
688  DB  197,4,89,255                        ; vmulps        %ymm7,%ymm15,%ymm15
689  DB  196,65,4,89,228                     ; vmulps        %ymm12,%ymm15,%ymm12
690  DB  197,20,89,237                       ; vmulps        %ymm5,%ymm13,%ymm13
691  DB  196,98,101,184,229                  ; vfmadd231ps   %ymm5,%ymm3,%ymm12
692  DB  197,12,194,243,2                    ; vcmpleps      %ymm3,%ymm14,%ymm14
693  DB  196,67,29,74,237,224                ; vblendvps     %ymm14,%ymm13,%ymm12,%ymm13
694  DB  197,76,94,231                       ; vdivps        %ymm7,%ymm6,%ymm12
695  DB  196,67,45,74,212,176                ; vblendvps     %ymm11,%ymm12,%ymm10,%ymm10
696  DB  196,65,44,88,218                    ; vaddps        %ymm10,%ymm10,%ymm11
697  DB  196,65,36,88,219                    ; vaddps        %ymm11,%ymm11,%ymm11
698  DB  196,66,37,168,219                   ; vfmadd213ps   %ymm11,%ymm11,%ymm11
699  DB  196,65,44,92,224                    ; vsubps        %ymm8,%ymm10,%ymm12
700  DB  196,65,28,89,219                    ; vmulps        %ymm11,%ymm12,%ymm11
701  DB  196,66,45,168,203                   ; vfmadd213ps   %ymm11,%ymm10,%ymm9
702  DB  196,65,124,82,218                   ; vrsqrtps      %ymm10,%ymm11
703  DB  196,65,124,83,219                   ; vrcpps        %ymm11,%ymm11
704  DB  196,65,36,92,218                    ; vsubps        %ymm10,%ymm11,%ymm11
705  DB  197,76,88,230                       ; vaddps        %ymm6,%ymm6,%ymm12
706  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
707  DB  197,28,194,231,2                    ; vcmpleps      %ymm7,%ymm12,%ymm12
708  DB  196,67,37,74,201,192                ; vblendvps     %ymm12,%ymm9,%ymm11,%ymm9
709  DB  197,124,16,52,36                    ; vmovups       (%rsp),%ymm14
710  DB  196,65,12,88,222                    ; vaddps        %ymm14,%ymm14,%ymm11
711  DB  197,36,92,227                       ; vsubps        %ymm3,%ymm11,%ymm12
712  DB  196,65,60,92,210                    ; vsubps        %ymm10,%ymm8,%ymm10
713  DB  196,98,29,168,211                   ; vfmadd213ps   %ymm3,%ymm12,%ymm10
714  DB  197,28,89,231                       ; vmulps        %ymm7,%ymm12,%ymm12
715  DB  196,65,28,89,201                    ; vmulps        %ymm9,%ymm12,%ymm9
716  DB  197,44,89,214                       ; vmulps        %ymm6,%ymm10,%ymm10
717  DB  196,98,101,184,206                  ; vfmadd231ps   %ymm6,%ymm3,%ymm9
718  DB  197,36,194,219,2                    ; vcmpleps      %ymm3,%ymm11,%ymm11
719  DB  196,67,53,74,202,176                ; vblendvps     %ymm11,%ymm10,%ymm9,%ymm9
720  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
721  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
722  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
723  DB  196,98,45,184,216                   ; vfmadd231ps   %ymm0,%ymm10,%ymm11
724  DB  196,193,108,88,195                  ; vaddps        %ymm11,%ymm2,%ymm0
725  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
726  DB  196,226,61,184,205                  ; vfmadd231ps   %ymm5,%ymm8,%ymm1
727  DB  196,193,116,88,205                  ; vaddps        %ymm13,%ymm1,%ymm1
728  DB  196,193,44,89,214                   ; vmulps        %ymm14,%ymm10,%ymm2
729  DB  196,226,61,184,214                  ; vfmadd231ps   %ymm6,%ymm8,%ymm2
730  DB  196,193,108,88,209                  ; vaddps        %ymm9,%ymm2,%ymm2
731  DB  196,194,69,184,216                  ; vfmadd231ps   %ymm8,%ymm7,%ymm3
732  DB  72,173                              ; lods          %ds:(%rsi),%rax
733  DB  72,131,196,56                       ; add           $0x38,%rsp
734  DB  255,224                             ; jmpq          *%rax
735
736PUBLIC _sk_clamp_0_hsw
737_sk_clamp_0_hsw LABEL PROC
738  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
739  DB  196,193,124,95,192                  ; vmaxps        %ymm8,%ymm0,%ymm0
740  DB  196,193,116,95,200                  ; vmaxps        %ymm8,%ymm1,%ymm1
741  DB  196,193,108,95,208                  ; vmaxps        %ymm8,%ymm2,%ymm2
742  DB  196,193,100,95,216                  ; vmaxps        %ymm8,%ymm3,%ymm3
743  DB  72,173                              ; lods          %ds:(%rsi),%rax
744  DB  255,224                             ; jmpq          *%rax
745
746PUBLIC _sk_clamp_1_hsw
747_sk_clamp_1_hsw LABEL PROC
748  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
749  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
750  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
751  DB  196,193,124,93,192                  ; vminps        %ymm8,%ymm0,%ymm0
752  DB  196,193,116,93,200                  ; vminps        %ymm8,%ymm1,%ymm1
753  DB  196,193,108,93,208                  ; vminps        %ymm8,%ymm2,%ymm2
754  DB  196,193,100,93,216                  ; vminps        %ymm8,%ymm3,%ymm3
755  DB  72,173                              ; lods          %ds:(%rsi),%rax
756  DB  255,224                             ; jmpq          *%rax
757
758PUBLIC _sk_clamp_a_hsw
759_sk_clamp_a_hsw LABEL PROC
760  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
761  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
762  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
763  DB  196,193,100,93,216                  ; vminps        %ymm8,%ymm3,%ymm3
764  DB  197,252,93,195                      ; vminps        %ymm3,%ymm0,%ymm0
765  DB  197,244,93,203                      ; vminps        %ymm3,%ymm1,%ymm1
766  DB  197,236,93,211                      ; vminps        %ymm3,%ymm2,%ymm2
767  DB  72,173                              ; lods          %ds:(%rsi),%rax
768  DB  255,224                             ; jmpq          *%rax
769
770PUBLIC _sk_set_rgb_hsw
771_sk_set_rgb_hsw LABEL PROC
772  DB  72,173                              ; lods          %ds:(%rsi),%rax
773  DB  196,226,125,24,0                    ; vbroadcastss  (%rax),%ymm0
774  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
775  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
776  DB  72,173                              ; lods          %ds:(%rsi),%rax
777  DB  255,224                             ; jmpq          *%rax
778
779PUBLIC _sk_swap_rb_hsw
780_sk_swap_rb_hsw LABEL PROC
781  DB  197,124,40,192                      ; vmovaps       %ymm0,%ymm8
782  DB  72,173                              ; lods          %ds:(%rsi),%rax
783  DB  197,252,40,194                      ; vmovaps       %ymm2,%ymm0
784  DB  197,124,41,194                      ; vmovaps       %ymm8,%ymm2
785  DB  255,224                             ; jmpq          *%rax
786
787PUBLIC _sk_swap_hsw
788_sk_swap_hsw LABEL PROC
789  DB  197,124,40,195                      ; vmovaps       %ymm3,%ymm8
790  DB  197,124,40,202                      ; vmovaps       %ymm2,%ymm9
791  DB  197,124,40,209                      ; vmovaps       %ymm1,%ymm10
792  DB  197,124,40,216                      ; vmovaps       %ymm0,%ymm11
793  DB  72,173                              ; lods          %ds:(%rsi),%rax
794  DB  197,252,40,196                      ; vmovaps       %ymm4,%ymm0
795  DB  197,252,40,205                      ; vmovaps       %ymm5,%ymm1
796  DB  197,252,40,214                      ; vmovaps       %ymm6,%ymm2
797  DB  197,252,40,223                      ; vmovaps       %ymm7,%ymm3
798  DB  197,124,41,220                      ; vmovaps       %ymm11,%ymm4
799  DB  197,124,41,213                      ; vmovaps       %ymm10,%ymm5
800  DB  197,124,41,206                      ; vmovaps       %ymm9,%ymm6
801  DB  197,124,41,199                      ; vmovaps       %ymm8,%ymm7
802  DB  255,224                             ; jmpq          *%rax
803
804PUBLIC _sk_move_src_dst_hsw
805_sk_move_src_dst_hsw LABEL PROC
806  DB  72,173                              ; lods          %ds:(%rsi),%rax
807  DB  197,252,40,224                      ; vmovaps       %ymm0,%ymm4
808  DB  197,252,40,233                      ; vmovaps       %ymm1,%ymm5
809  DB  197,252,40,242                      ; vmovaps       %ymm2,%ymm6
810  DB  197,252,40,251                      ; vmovaps       %ymm3,%ymm7
811  DB  255,224                             ; jmpq          *%rax
812
813PUBLIC _sk_move_dst_src_hsw
814_sk_move_dst_src_hsw LABEL PROC
815  DB  72,173                              ; lods          %ds:(%rsi),%rax
816  DB  197,252,40,196                      ; vmovaps       %ymm4,%ymm0
817  DB  197,252,40,205                      ; vmovaps       %ymm5,%ymm1
818  DB  197,252,40,214                      ; vmovaps       %ymm6,%ymm2
819  DB  197,252,40,223                      ; vmovaps       %ymm7,%ymm3
820  DB  255,224                             ; jmpq          *%rax
821
822PUBLIC _sk_premul_hsw
823_sk_premul_hsw LABEL PROC
824  DB  197,252,89,195                      ; vmulps        %ymm3,%ymm0,%ymm0
825  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
826  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
827  DB  72,173                              ; lods          %ds:(%rsi),%rax
828  DB  255,224                             ; jmpq          *%rax
829
830PUBLIC _sk_unpremul_hsw
831_sk_unpremul_hsw LABEL PROC
832  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
833  DB  196,65,100,194,200,0                ; vcmpeqps      %ymm8,%ymm3,%ymm9
834  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
835  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
836  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
837  DB  197,44,94,211                       ; vdivps        %ymm3,%ymm10,%ymm10
838  DB  196,67,45,74,192,144                ; vblendvps     %ymm9,%ymm8,%ymm10,%ymm8
839  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
840  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
841  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
842  DB  72,173                              ; lods          %ds:(%rsi),%rax
843  DB  255,224                             ; jmpq          *%rax
844
845PUBLIC _sk_from_srgb_hsw
846_sk_from_srgb_hsw LABEL PROC
847  DB  184,145,131,158,61                  ; mov           $0x3d9e8391,%eax
848  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
849  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
850  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
851  DB  197,124,89,208                      ; vmulps        %ymm0,%ymm0,%ymm10
852  DB  184,154,153,153,62                  ; mov           $0x3e99999a,%eax
853  DB  197,121,110,216                     ; vmovd         %eax,%xmm11
854  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
855  DB  184,92,143,50,63                    ; mov           $0x3f328f5c,%eax
856  DB  197,121,110,224                     ; vmovd         %eax,%xmm12
857  DB  196,66,125,88,228                   ; vpbroadcastd  %xmm12,%ymm12
858  DB  196,65,125,111,235                  ; vmovdqa       %ymm11,%ymm13
859  DB  196,66,125,168,236                  ; vfmadd213ps   %ymm12,%ymm0,%ymm13
860  DB  184,10,215,35,59                    ; mov           $0x3b23d70a,%eax
861  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
862  DB  196,66,125,88,246                   ; vpbroadcastd  %xmm14,%ymm14
863  DB  196,66,45,168,238                   ; vfmadd213ps   %ymm14,%ymm10,%ymm13
864  DB  184,174,71,97,61                    ; mov           $0x3d6147ae,%eax
865  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
866  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
867  DB  196,193,124,194,194,1               ; vcmpltps      %ymm10,%ymm0,%ymm0
868  DB  196,195,21,74,193,0                 ; vblendvps     %ymm0,%ymm9,%ymm13,%ymm0
869  DB  197,60,89,201                       ; vmulps        %ymm1,%ymm8,%ymm9
870  DB  197,116,89,233                      ; vmulps        %ymm1,%ymm1,%ymm13
871  DB  196,65,125,111,251                  ; vmovdqa       %ymm11,%ymm15
872  DB  196,66,117,168,252                  ; vfmadd213ps   %ymm12,%ymm1,%ymm15
873  DB  196,66,21,168,254                   ; vfmadd213ps   %ymm14,%ymm13,%ymm15
874  DB  196,193,116,194,202,1               ; vcmpltps      %ymm10,%ymm1,%ymm1
875  DB  196,195,5,74,201,16                 ; vblendvps     %ymm1,%ymm9,%ymm15,%ymm1
876  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
877  DB  197,108,89,202                      ; vmulps        %ymm2,%ymm2,%ymm9
878  DB  196,66,109,168,220                  ; vfmadd213ps   %ymm12,%ymm2,%ymm11
879  DB  196,66,53,168,222                   ; vfmadd213ps   %ymm14,%ymm9,%ymm11
880  DB  196,193,108,194,210,1               ; vcmpltps      %ymm10,%ymm2,%ymm2
881  DB  196,195,37,74,208,32                ; vblendvps     %ymm2,%ymm8,%ymm11,%ymm2
882  DB  72,173                              ; lods          %ds:(%rsi),%rax
883  DB  255,224                             ; jmpq          *%rax
884
885PUBLIC _sk_to_srgb_hsw
886_sk_to_srgb_hsw LABEL PROC
887  DB  197,124,82,192                      ; vrsqrtps      %ymm0,%ymm8
888  DB  196,65,124,83,216                   ; vrcpps        %ymm8,%ymm11
889  DB  196,65,124,82,224                   ; vrsqrtps      %ymm8,%ymm12
890  DB  184,41,92,71,65                     ; mov           $0x41475c29,%eax
891  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
892  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
893  DB  197,60,89,232                       ; vmulps        %ymm0,%ymm8,%ymm13
894  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
895  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
896  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
897  DB  184,194,135,210,62                  ; mov           $0x3ed287c2,%eax
898  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
899  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
900  DB  184,206,111,48,63                   ; mov           $0x3f306fce,%eax
901  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
902  DB  196,66,125,88,246                   ; vpbroadcastd  %xmm14,%ymm14
903  DB  184,168,87,202,61                   ; mov           $0x3dca57a8,%eax
904  DB  53,0,0,0,128                        ; xor           $0x80000000,%eax
905  DB  197,121,110,248                     ; vmovd         %eax,%xmm15
906  DB  196,66,125,88,255                   ; vpbroadcastd  %xmm15,%ymm15
907  DB  196,66,13,168,223                   ; vfmadd213ps   %ymm15,%ymm14,%ymm11
908  DB  196,66,45,184,220                   ; vfmadd231ps   %ymm12,%ymm10,%ymm11
909  DB  196,65,52,93,219                    ; vminps        %ymm11,%ymm9,%ymm11
910  DB  184,4,231,140,59                    ; mov           $0x3b8ce704,%eax
911  DB  197,121,110,224                     ; vmovd         %eax,%xmm12
912  DB  196,66,125,88,228                   ; vpbroadcastd  %xmm12,%ymm12
913  DB  196,193,124,194,196,1               ; vcmpltps      %ymm12,%ymm0,%ymm0
914  DB  196,195,37,74,197,0                 ; vblendvps     %ymm0,%ymm13,%ymm11,%ymm0
915  DB  197,124,82,217                      ; vrsqrtps      %ymm1,%ymm11
916  DB  196,65,124,83,235                   ; vrcpps        %ymm11,%ymm13
917  DB  196,65,124,82,219                   ; vrsqrtps      %ymm11,%ymm11
918  DB  196,66,13,168,239                   ; vfmadd213ps   %ymm15,%ymm14,%ymm13
919  DB  196,66,45,184,235                   ; vfmadd231ps   %ymm11,%ymm10,%ymm13
920  DB  197,60,89,217                       ; vmulps        %ymm1,%ymm8,%ymm11
921  DB  196,65,52,93,237                    ; vminps        %ymm13,%ymm9,%ymm13
922  DB  196,193,116,194,204,1               ; vcmpltps      %ymm12,%ymm1,%ymm1
923  DB  196,195,21,74,203,16                ; vblendvps     %ymm1,%ymm11,%ymm13,%ymm1
924  DB  197,124,82,218                      ; vrsqrtps      %ymm2,%ymm11
925  DB  196,65,124,83,235                   ; vrcpps        %ymm11,%ymm13
926  DB  196,66,13,168,239                   ; vfmadd213ps   %ymm15,%ymm14,%ymm13
927  DB  196,65,124,82,219                   ; vrsqrtps      %ymm11,%ymm11
928  DB  196,66,45,184,235                   ; vfmadd231ps   %ymm11,%ymm10,%ymm13
929  DB  196,65,52,93,205                    ; vminps        %ymm13,%ymm9,%ymm9
930  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
931  DB  196,193,108,194,212,1               ; vcmpltps      %ymm12,%ymm2,%ymm2
932  DB  196,195,53,74,208,32                ; vblendvps     %ymm2,%ymm8,%ymm9,%ymm2
933  DB  72,173                              ; lods          %ds:(%rsi),%rax
934  DB  255,224                             ; jmpq          *%rax
935
936PUBLIC _sk_rgb_to_hsl_hsw
937_sk_rgb_to_hsl_hsw LABEL PROC
938  DB  72,131,236,56                       ; sub           $0x38,%rsp
939  DB  197,252,17,60,36                    ; vmovups       %ymm7,(%rsp)
940  DB  197,252,40,254                      ; vmovaps       %ymm6,%ymm7
941  DB  197,252,40,245                      ; vmovaps       %ymm5,%ymm6
942  DB  197,252,40,236                      ; vmovaps       %ymm4,%ymm5
943  DB  197,252,40,227                      ; vmovaps       %ymm3,%ymm4
944  DB  197,252,40,216                      ; vmovaps       %ymm0,%ymm3
945  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
946  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
947  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
948  DB  184,0,0,192,64                      ; mov           $0x40c00000,%eax
949  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
950  DB  65,185,0,0,0,64                     ; mov           $0x40000000,%r9d
951  DB  184,0,0,128,64                      ; mov           $0x40800000,%eax
952  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
953  DB  197,100,95,217                      ; vmaxps        %ymm1,%ymm3,%ymm11
954  DB  197,36,95,218                       ; vmaxps        %ymm2,%ymm11,%ymm11
955  DB  197,100,93,225                      ; vminps        %ymm1,%ymm3,%ymm12
956  DB  197,28,93,226                       ; vminps        %ymm2,%ymm12,%ymm12
957  DB  196,65,36,92,236                    ; vsubps        %ymm12,%ymm11,%ymm13
958  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
959  DB  196,65,60,94,197                    ; vdivps        %ymm13,%ymm8,%ymm8
960  DB  197,116,194,242,1                   ; vcmpltps      %ymm2,%ymm1,%ymm14
961  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
962  DB  196,65,4,87,255                     ; vxorps        %ymm15,%ymm15,%ymm15
963  DB  196,67,5,74,201,224                 ; vblendvps     %ymm14,%ymm9,%ymm15,%ymm9
964  DB  197,116,92,242                      ; vsubps        %ymm2,%ymm1,%ymm14
965  DB  196,66,61,168,241                   ; vfmadd213ps   %ymm9,%ymm8,%ymm14
966  DB  197,236,92,195                      ; vsubps        %ymm3,%ymm2,%ymm0
967  DB  197,100,92,201                      ; vsubps        %ymm1,%ymm3,%ymm9
968  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
969  DB  196,66,61,168,202                   ; vfmadd213ps   %ymm10,%ymm8,%ymm9
970  DB  196,193,121,110,209                 ; vmovd         %r9d,%xmm2
971  DB  196,98,125,88,210                   ; vpbroadcastd  %xmm2,%ymm10
972  DB  196,194,61,168,194                  ; vfmadd213ps   %ymm10,%ymm8,%ymm0
973  DB  197,164,194,201,0                   ; vcmpeqps      %ymm1,%ymm11,%ymm1
974  DB  196,227,53,74,192,16                ; vblendvps     %ymm1,%ymm0,%ymm9,%ymm0
975  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
976  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
977  DB  197,164,194,211,0                   ; vcmpeqps      %ymm3,%ymm11,%ymm2
978  DB  196,195,125,74,198,32               ; vblendvps     %ymm2,%ymm14,%ymm0,%ymm0
979  DB  196,193,36,88,220                   ; vaddps        %ymm12,%ymm11,%ymm3
980  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
981  DB  197,228,89,209                      ; vmulps        %ymm1,%ymm3,%ymm2
982  DB  197,244,194,202,1                   ; vcmpltps      %ymm2,%ymm1,%ymm1
983  DB  196,65,44,92,195                    ; vsubps        %ymm11,%ymm10,%ymm8
984  DB  196,65,60,92,196                    ; vsubps        %ymm12,%ymm8,%ymm8
985  DB  196,195,101,74,200,16               ; vblendvps     %ymm1,%ymm8,%ymm3,%ymm1
986  DB  196,193,36,194,220,0                ; vcmpeqps      %ymm12,%ymm11,%ymm3
987  DB  197,148,94,201                      ; vdivps        %ymm1,%ymm13,%ymm1
988  DB  196,195,125,74,199,48               ; vblendvps     %ymm3,%ymm15,%ymm0,%ymm0
989  DB  196,195,117,74,207,48               ; vblendvps     %ymm3,%ymm15,%ymm1,%ymm1
990  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
991  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
992  DB  197,228,89,192                      ; vmulps        %ymm0,%ymm3,%ymm0
993  DB  72,173                              ; lods          %ds:(%rsi),%rax
994  DB  197,252,40,220                      ; vmovaps       %ymm4,%ymm3
995  DB  197,252,40,229                      ; vmovaps       %ymm5,%ymm4
996  DB  197,252,40,238                      ; vmovaps       %ymm6,%ymm5
997  DB  197,252,40,247                      ; vmovaps       %ymm7,%ymm6
998  DB  197,252,16,60,36                    ; vmovups       (%rsp),%ymm7
999  DB  72,131,196,56                       ; add           $0x38,%rsp
1000  DB  255,224                             ; jmpq          *%rax
1001
1002PUBLIC _sk_hsl_to_rgb_hsw
1003_sk_hsl_to_rgb_hsw LABEL PROC
1004  DB  72,129,236,184,0,0,0                ; sub           $0xb8,%rsp
1005  DB  197,252,17,188,36,128,0,0,0         ; vmovups       %ymm7,0x80(%rsp)
1006  DB  197,252,17,116,36,96                ; vmovups       %ymm6,0x60(%rsp)
1007  DB  197,252,17,108,36,64                ; vmovups       %ymm5,0x40(%rsp)
1008  DB  197,252,17,100,36,32                ; vmovups       %ymm4,0x20(%rsp)
1009  DB  197,252,17,28,36                    ; vmovups       %ymm3,(%rsp)
1010  DB  197,252,40,233                      ; vmovaps       %ymm1,%ymm5
1011  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
1012  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
1013  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
1014  DB  196,193,108,194,200,1               ; vcmpltps      %ymm8,%ymm2,%ymm1
1015  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
1016  DB  197,249,110,224                     ; vmovd         %eax,%xmm4
1017  DB  196,98,125,88,212                   ; vpbroadcastd  %xmm4,%ymm10
1018  DB  197,172,88,229                      ; vaddps        %ymm5,%ymm10,%ymm4
1019  DB  197,220,89,226                      ; vmulps        %ymm2,%ymm4,%ymm4
1020  DB  197,84,88,202                       ; vaddps        %ymm2,%ymm5,%ymm9
1021  DB  196,98,85,188,202                   ; vfnmadd231ps  %ymm2,%ymm5,%ymm9
1022  DB  196,99,53,74,204,16                 ; vblendvps     %ymm1,%ymm4,%ymm9,%ymm9
1023  DB  65,184,0,0,0,64                     ; mov           $0x40000000,%r8d
1024  DB  184,171,170,170,62                  ; mov           $0x3eaaaaab,%eax
1025  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
1026  DB  196,98,125,88,233                   ; vpbroadcastd  %xmm1,%ymm13
1027  DB  197,148,88,224                      ; vaddps        %ymm0,%ymm13,%ymm4
1028  DB  184,0,0,0,0                         ; mov           $0x0,%eax
1029  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
1030  DB  196,98,125,88,225                   ; vpbroadcastd  %xmm1,%ymm12
1031  DB  197,172,194,204,1                   ; vcmpltps      %ymm4,%ymm10,%ymm1
1032  DB  196,65,92,92,218                    ; vsubps        %ymm10,%ymm4,%ymm11
1033  DB  196,195,93,74,203,16                ; vblendvps     %ymm1,%ymm11,%ymm4,%ymm1
1034  DB  196,65,92,194,220,1                 ; vcmpltps      %ymm12,%ymm4,%ymm11
1035  DB  197,44,88,244                       ; vaddps        %ymm4,%ymm10,%ymm14
1036  DB  196,195,117,74,206,176              ; vblendvps     %ymm11,%ymm14,%ymm1,%ymm1
1037  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
1038  DB  196,98,125,88,219                   ; vpbroadcastd  %xmm3,%ymm11
1039  DB  196,66,109,170,217                  ; vfmsub213ps   %ymm9,%ymm2,%ymm11
1040  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
1041  DB  184,0,0,192,64                      ; mov           $0x40c00000,%eax
1042  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1043  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1044  DB  196,65,52,92,243                    ; vsubps        %ymm11,%ymm9,%ymm14
1045  DB  197,12,89,243                       ; vmulps        %ymm3,%ymm14,%ymm14
1046  DB  184,171,170,42,63                   ; mov           $0x3f2aaaab,%eax
1047  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1048  DB  196,98,125,88,251                   ; vpbroadcastd  %xmm3,%ymm15
1049  DB  197,132,92,217                      ; vsubps        %ymm1,%ymm15,%ymm3
1050  DB  196,194,13,168,219                  ; vfmadd213ps   %ymm11,%ymm14,%ymm3
1051  DB  196,193,116,194,255,1               ; vcmpltps      %ymm15,%ymm1,%ymm7
1052  DB  196,227,37,74,219,112               ; vblendvps     %ymm7,%ymm3,%ymm11,%ymm3
1053  DB  196,193,116,194,248,1               ; vcmpltps      %ymm8,%ymm1,%ymm7
1054  DB  196,195,101,74,249,112              ; vblendvps     %ymm7,%ymm9,%ymm3,%ymm7
1055  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
1056  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1057  DB  197,244,194,203,1                   ; vcmpltps      %ymm3,%ymm1,%ymm1
1058  DB  196,194,13,168,227                  ; vfmadd213ps   %ymm11,%ymm14,%ymm4
1059  DB  196,227,69,74,228,16                ; vblendvps     %ymm1,%ymm4,%ymm7,%ymm4
1060  DB  197,172,194,200,1                   ; vcmpltps      %ymm0,%ymm10,%ymm1
1061  DB  196,193,124,92,250                  ; vsubps        %ymm10,%ymm0,%ymm7
1062  DB  196,227,125,74,207,16               ; vblendvps     %ymm1,%ymm7,%ymm0,%ymm1
1063  DB  196,193,124,194,252,1               ; vcmpltps      %ymm12,%ymm0,%ymm7
1064  DB  197,172,88,240                      ; vaddps        %ymm0,%ymm10,%ymm6
1065  DB  196,227,117,74,206,112              ; vblendvps     %ymm7,%ymm6,%ymm1,%ymm1
1066  DB  197,132,92,241                      ; vsubps        %ymm1,%ymm15,%ymm6
1067  DB  196,194,13,168,243                  ; vfmadd213ps   %ymm11,%ymm14,%ymm6
1068  DB  196,193,116,194,255,1               ; vcmpltps      %ymm15,%ymm1,%ymm7
1069  DB  196,227,37,74,246,112               ; vblendvps     %ymm7,%ymm6,%ymm11,%ymm6
1070  DB  196,193,116,194,248,1               ; vcmpltps      %ymm8,%ymm1,%ymm7
1071  DB  196,195,77,74,241,112               ; vblendvps     %ymm7,%ymm9,%ymm6,%ymm6
1072  DB  197,244,194,203,1                   ; vcmpltps      %ymm3,%ymm1,%ymm1
1073  DB  196,193,124,92,253                  ; vsubps        %ymm13,%ymm0,%ymm7
1074  DB  196,194,13,168,195                  ; vfmadd213ps   %ymm11,%ymm14,%ymm0
1075  DB  196,227,77,74,200,16                ; vblendvps     %ymm1,%ymm0,%ymm6,%ymm1
1076  DB  197,172,194,199,1                   ; vcmpltps      %ymm7,%ymm10,%ymm0
1077  DB  196,193,68,92,242                   ; vsubps        %ymm10,%ymm7,%ymm6
1078  DB  196,227,69,74,198,0                 ; vblendvps     %ymm0,%ymm6,%ymm7,%ymm0
1079  DB  196,193,68,194,244,1                ; vcmpltps      %ymm12,%ymm7,%ymm6
1080  DB  197,44,88,215                       ; vaddps        %ymm7,%ymm10,%ymm10
1081  DB  196,195,125,74,194,96               ; vblendvps     %ymm6,%ymm10,%ymm0,%ymm0
1082  DB  196,194,13,168,251                  ; vfmadd213ps   %ymm11,%ymm14,%ymm7
1083  DB  197,132,92,240                      ; vsubps        %ymm0,%ymm15,%ymm6
1084  DB  196,194,13,168,243                  ; vfmadd213ps   %ymm11,%ymm14,%ymm6
1085  DB  196,65,124,194,215,1                ; vcmpltps      %ymm15,%ymm0,%ymm10
1086  DB  196,227,37,74,246,160               ; vblendvps     %ymm10,%ymm6,%ymm11,%ymm6
1087  DB  196,65,124,194,192,1                ; vcmpltps      %ymm8,%ymm0,%ymm8
1088  DB  196,195,77,74,241,128               ; vblendvps     %ymm8,%ymm9,%ymm6,%ymm6
1089  DB  197,252,194,195,1                   ; vcmpltps      %ymm3,%ymm0,%ymm0
1090  DB  196,227,77,74,223,0                 ; vblendvps     %ymm0,%ymm7,%ymm6,%ymm3
1091  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
1092  DB  197,212,194,232,0                   ; vcmpeqps      %ymm0,%ymm5,%ymm5
1093  DB  196,227,93,74,194,80                ; vblendvps     %ymm5,%ymm2,%ymm4,%ymm0
1094  DB  196,227,117,74,202,80               ; vblendvps     %ymm5,%ymm2,%ymm1,%ymm1
1095  DB  196,227,101,74,210,80               ; vblendvps     %ymm5,%ymm2,%ymm3,%ymm2
1096  DB  72,173                              ; lods          %ds:(%rsi),%rax
1097  DB  197,252,16,28,36                    ; vmovups       (%rsp),%ymm3
1098  DB  197,252,16,100,36,32                ; vmovups       0x20(%rsp),%ymm4
1099  DB  197,252,16,108,36,64                ; vmovups       0x40(%rsp),%ymm5
1100  DB  197,252,16,116,36,96                ; vmovups       0x60(%rsp),%ymm6
1101  DB  197,252,16,188,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm7
1102  DB  72,129,196,184,0,0,0                ; add           $0xb8,%rsp
1103  DB  255,224                             ; jmpq          *%rax
1104
1105PUBLIC _sk_scale_1_float_hsw
1106_sk_scale_1_float_hsw LABEL PROC
1107  DB  72,173                              ; lods          %ds:(%rsi),%rax
1108  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
1109  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
1110  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
1111  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
1112  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
1113  DB  72,173                              ; lods          %ds:(%rsi),%rax
1114  DB  255,224                             ; jmpq          *%rax
1115
1116PUBLIC _sk_scale_u8_hsw
1117_sk_scale_u8_hsw LABEL PROC
1118  DB  73,137,200                          ; mov           %rcx,%r8
1119  DB  72,173                              ; lods          %ds:(%rsi),%rax
1120  DB  72,139,0                            ; mov           (%rax),%rax
1121  DB  72,1,248                            ; add           %rdi,%rax
1122  DB  77,133,192                          ; test          %r8,%r8
1123  DB  117,56                              ; jne           1109 <_sk_scale_u8_hsw+0x48>
1124  DB  197,122,126,0                       ; vmovq         (%rax),%xmm8
1125  DB  196,66,125,49,192                   ; vpmovzxbd     %xmm8,%ymm8
1126  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1127  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
1128  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
1129  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
1130  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
1131  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
1132  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
1133  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
1134  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
1135  DB  72,173                              ; lods          %ds:(%rsi),%rax
1136  DB  76,137,193                          ; mov           %r8,%rcx
1137  DB  255,224                             ; jmpq          *%rax
1138  DB  49,201                              ; xor           %ecx,%ecx
1139  DB  77,137,194                          ; mov           %r8,%r10
1140  DB  69,49,201                           ; xor           %r9d,%r9d
1141  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
1142  DB  72,255,192                          ; inc           %rax
1143  DB  73,211,227                          ; shl           %cl,%r11
1144  DB  77,9,217                            ; or            %r11,%r9
1145  DB  72,131,193,8                        ; add           $0x8,%rcx
1146  DB  73,255,202                          ; dec           %r10
1147  DB  117,234                             ; jne           1111 <_sk_scale_u8_hsw+0x50>
1148  DB  196,65,249,110,193                  ; vmovq         %r9,%xmm8
1149  DB  235,167                             ; jmp           10d5 <_sk_scale_u8_hsw+0x14>
1150
1151PUBLIC _sk_lerp_1_float_hsw
1152_sk_lerp_1_float_hsw LABEL PROC
1153  DB  72,173                              ; lods          %ds:(%rsi),%rax
1154  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
1155  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
1156  DB  196,226,61,168,196                  ; vfmadd213ps   %ymm4,%ymm8,%ymm0
1157  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
1158  DB  196,226,61,168,205                  ; vfmadd213ps   %ymm5,%ymm8,%ymm1
1159  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
1160  DB  196,226,61,168,214                  ; vfmadd213ps   %ymm6,%ymm8,%ymm2
1161  DB  197,228,92,223                      ; vsubps        %ymm7,%ymm3,%ymm3
1162  DB  196,226,61,168,223                  ; vfmadd213ps   %ymm7,%ymm8,%ymm3
1163  DB  72,173                              ; lods          %ds:(%rsi),%rax
1164  DB  255,224                             ; jmpq          *%rax
1165
1166PUBLIC _sk_lerp_u8_hsw
1167_sk_lerp_u8_hsw LABEL PROC
1168  DB  73,137,200                          ; mov           %rcx,%r8
1169  DB  72,173                              ; lods          %ds:(%rsi),%rax
1170  DB  72,139,0                            ; mov           (%rax),%rax
1171  DB  72,1,248                            ; add           %rdi,%rax
1172  DB  77,133,192                          ; test          %r8,%r8
1173  DB  117,76                              ; jne           11b9 <_sk_lerp_u8_hsw+0x5c>
1174  DB  197,122,126,0                       ; vmovq         (%rax),%xmm8
1175  DB  196,66,125,49,192                   ; vpmovzxbd     %xmm8,%ymm8
1176  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1177  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
1178  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
1179  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
1180  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
1181  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
1182  DB  196,226,61,168,196                  ; vfmadd213ps   %ymm4,%ymm8,%ymm0
1183  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
1184  DB  196,226,61,168,205                  ; vfmadd213ps   %ymm5,%ymm8,%ymm1
1185  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
1186  DB  196,226,61,168,214                  ; vfmadd213ps   %ymm6,%ymm8,%ymm2
1187  DB  197,228,92,223                      ; vsubps        %ymm7,%ymm3,%ymm3
1188  DB  196,226,61,168,223                  ; vfmadd213ps   %ymm7,%ymm8,%ymm3
1189  DB  72,173                              ; lods          %ds:(%rsi),%rax
1190  DB  76,137,193                          ; mov           %r8,%rcx
1191  DB  255,224                             ; jmpq          *%rax
1192  DB  49,201                              ; xor           %ecx,%ecx
1193  DB  77,137,194                          ; mov           %r8,%r10
1194  DB  69,49,201                           ; xor           %r9d,%r9d
1195  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
1196  DB  72,255,192                          ; inc           %rax
1197  DB  73,211,227                          ; shl           %cl,%r11
1198  DB  77,9,217                            ; or            %r11,%r9
1199  DB  72,131,193,8                        ; add           $0x8,%rcx
1200  DB  73,255,202                          ; dec           %r10
1201  DB  117,234                             ; jne           11c1 <_sk_lerp_u8_hsw+0x64>
1202  DB  196,65,249,110,193                  ; vmovq         %r9,%xmm8
1203  DB  235,147                             ; jmp           1171 <_sk_lerp_u8_hsw+0x14>
1204
1205PUBLIC _sk_lerp_565_hsw
1206_sk_lerp_565_hsw LABEL PROC
1207  DB  72,173                              ; lods          %ds:(%rsi),%rax
1208  DB  76,139,16                           ; mov           (%rax),%r10
1209  DB  72,133,201                          ; test          %rcx,%rcx
1210  DB  15,133,179,0,0,0                    ; jne           129f <_sk_lerp_565_hsw+0xc1>
1211  DB  196,193,122,111,28,122              ; vmovdqu       (%r10,%rdi,2),%xmm3
1212  DB  196,98,125,51,195                   ; vpmovzxwd     %xmm3,%ymm8
1213  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
1214  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1215  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1216  DB  196,193,101,219,216                 ; vpand         %ymm8,%ymm3,%ymm3
1217  DB  197,124,91,203                      ; vcvtdq2ps     %ymm3,%ymm9
1218  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
1219  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1220  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1221  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
1222  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
1223  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1224  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1225  DB  196,193,101,219,216                 ; vpand         %ymm8,%ymm3,%ymm3
1226  DB  197,124,91,211                      ; vcvtdq2ps     %ymm3,%ymm10
1227  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
1228  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1229  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1230  DB  197,44,89,211                       ; vmulps        %ymm3,%ymm10,%ymm10
1231  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
1232  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1233  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1234  DB  196,193,101,219,216                 ; vpand         %ymm8,%ymm3,%ymm3
1235  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
1236  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
1237  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1238  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1239  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
1240  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
1241  DB  196,226,53,168,196                  ; vfmadd213ps   %ymm4,%ymm9,%ymm0
1242  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
1243  DB  196,226,45,168,205                  ; vfmadd213ps   %ymm5,%ymm10,%ymm1
1244  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
1245  DB  196,226,101,168,214                 ; vfmadd213ps   %ymm6,%ymm3,%ymm2
1246  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
1247  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1248  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1249  DB  72,173                              ; lods          %ds:(%rsi),%rax
1250  DB  255,224                             ; jmpq          *%rax
1251  DB  65,137,200                          ; mov           %ecx,%r8d
1252  DB  65,128,224,7                        ; and           $0x7,%r8b
1253  DB  197,225,239,219                     ; vpxor         %xmm3,%xmm3,%xmm3
1254  DB  65,254,200                          ; dec           %r8b
1255  DB  65,128,248,6                        ; cmp           $0x6,%r8b
1256  DB  15,135,59,255,255,255               ; ja            11f2 <_sk_lerp_565_hsw+0x14>
1257  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
1258  DB  76,141,13,74,0,0,0                  ; lea           0x4a(%rip),%r9        # 130c <_sk_lerp_565_hsw+0x12e>
1259  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
1260  DB  76,1,200                            ; add           %r9,%rax
1261  DB  255,224                             ; jmpq          *%rax
1262  DB  197,225,239,219                     ; vpxor         %xmm3,%xmm3,%xmm3
1263  DB  196,193,97,196,92,122,12,6          ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm3,%xmm3
1264  DB  196,193,97,196,92,122,10,5          ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm3,%xmm3
1265  DB  196,193,97,196,92,122,8,4           ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm3,%xmm3
1266  DB  196,193,97,196,92,122,6,3           ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm3,%xmm3
1267  DB  196,193,97,196,92,122,4,2           ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm3,%xmm3
1268  DB  196,193,97,196,92,122,2,1           ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm3,%xmm3
1269  DB  196,193,97,196,28,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm3,%xmm3
1270  DB  233,231,254,255,255                 ; jmpq          11f2 <_sk_lerp_565_hsw+0x14>
1271  DB  144                                 ; nop
1272  DB  243,255                             ; repz          (bad)
1273  DB  255                                 ; (bad)
1274  DB  255                                 ; (bad)
1275  DB  235,255                             ; jmp           1311 <_sk_lerp_565_hsw+0x133>
1276  DB  255                                 ; (bad)
1277  DB  255,227                             ; jmpq          *%rbx
1278  DB  255                                 ; (bad)
1279  DB  255                                 ; (bad)
1280  DB  255                                 ; (bad)
1281  DB  219,255                             ; (bad)
1282  DB  255                                 ; (bad)
1283  DB  255,211                             ; callq         *%rbx
1284  DB  255                                 ; (bad)
1285  DB  255                                 ; (bad)
1286  DB  255,203                             ; dec           %ebx
1287  DB  255                                 ; (bad)
1288  DB  255                                 ; (bad)
1289  DB  255                                 ; (bad)
1290  DB  191                                 ; .byte         0xbf
1291  DB  255                                 ; (bad)
1292  DB  255                                 ; (bad)
1293  DB  255                                 ; .byte         0xff
1294
1295PUBLIC _sk_load_tables_hsw
1296_sk_load_tables_hsw LABEL PROC
1297  DB  73,137,200                          ; mov           %rcx,%r8
1298  DB  72,173                              ; lods          %ds:(%rsi),%rax
1299  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
1300  DB  76,3,8                              ; add           (%rax),%r9
1301  DB  77,133,192                          ; test          %r8,%r8
1302  DB  117,121                             ; jne           13b6 <_sk_load_tables_hsw+0x8e>
1303  DB  196,193,126,111,25                  ; vmovdqu       (%r9),%ymm3
1304  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
1305  DB  197,249,110,193                     ; vmovd         %ecx,%xmm0
1306  DB  196,226,125,88,208                  ; vpbroadcastd  %xmm0,%ymm2
1307  DB  197,237,219,203                     ; vpand         %ymm3,%ymm2,%ymm1
1308  DB  196,65,61,118,192                   ; vpcmpeqd      %ymm8,%ymm8,%ymm8
1309  DB  72,139,72,8                         ; mov           0x8(%rax),%rcx
1310  DB  76,139,72,16                        ; mov           0x10(%rax),%r9
1311  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
1312  DB  196,226,53,146,4,137                ; vgatherdps    %ymm9,(%rcx,%ymm1,4),%ymm0
1313  DB  197,245,114,211,8                   ; vpsrld        $0x8,%ymm3,%ymm1
1314  DB  197,109,219,201                     ; vpand         %ymm1,%ymm2,%ymm9
1315  DB  196,65,45,118,210                   ; vpcmpeqd      %ymm10,%ymm10,%ymm10
1316  DB  196,130,45,146,12,137               ; vgatherdps    %ymm10,(%r9,%ymm9,4),%ymm1
1317  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
1318  DB  197,181,114,211,16                  ; vpsrld        $0x10,%ymm3,%ymm9
1319  DB  196,65,109,219,201                  ; vpand         %ymm9,%ymm2,%ymm9
1320  DB  196,162,61,146,20,136               ; vgatherdps    %ymm8,(%rax,%ymm9,4),%ymm2
1321  DB  197,229,114,211,24                  ; vpsrld        $0x18,%ymm3,%ymm3
1322  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
1323  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
1324  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1325  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1326  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
1327  DB  72,173                              ; lods          %ds:(%rsi),%rax
1328  DB  76,137,193                          ; mov           %r8,%rcx
1329  DB  255,224                             ; jmpq          *%rax
1330  DB  185,8,0,0,0                         ; mov           $0x8,%ecx
1331  DB  68,41,193                           ; sub           %r8d,%ecx
1332  DB  192,225,3                           ; shl           $0x3,%cl
1333  DB  73,199,194,255,255,255,255          ; mov           $0xffffffffffffffff,%r10
1334  DB  73,211,234                          ; shr           %cl,%r10
1335  DB  196,193,249,110,194                 ; vmovq         %r10,%xmm0
1336  DB  196,226,125,33,192                  ; vpmovsxbd     %xmm0,%ymm0
1337  DB  196,194,125,140,25                  ; vpmaskmovd    (%r9),%ymm0,%ymm3
1338  DB  233,99,255,255,255                  ; jmpq          1342 <_sk_load_tables_hsw+0x1a>
1339
1340PUBLIC _sk_load_tables_u16_be_hsw
1341_sk_load_tables_u16_be_hsw LABEL PROC
1342  DB  72,173                              ; lods          %ds:(%rsi),%rax
1343  DB  76,139,0                            ; mov           (%rax),%r8
1344  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
1345  DB  72,133,201                          ; test          %rcx,%rcx
1346  DB  15,133,216,0,0,0                    ; jne           14cd <_sk_load_tables_u16_be_hsw+0xee>
1347  DB  196,1,121,16,4,72                   ; vmovupd       (%r8,%r9,2),%xmm8
1348  DB  196,129,121,16,84,72,16             ; vmovupd       0x10(%r8,%r9,2),%xmm2
1349  DB  196,129,121,16,92,72,32             ; vmovupd       0x20(%r8,%r9,2),%xmm3
1350  DB  196,1,122,111,76,72,48              ; vmovdqu       0x30(%r8,%r9,2),%xmm9
1351  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
1352  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
1353  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
1354  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
1355  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
1356  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
1357  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
1358  DB  197,113,105,235                     ; vpunpckhwd    %xmm3,%xmm1,%xmm13
1359  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
1360  DB  196,226,125,51,192                  ; vpmovzxwd     %xmm0,%ymm0
1361  DB  65,184,255,0,0,0                    ; mov           $0xff,%r8d
1362  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1363  DB  196,98,125,88,209                   ; vpbroadcastd  %xmm1,%ymm10
1364  DB  196,193,125,219,202                 ; vpand         %ymm10,%ymm0,%ymm1
1365  DB  196,65,37,118,219                   ; vpcmpeqd      %ymm11,%ymm11,%ymm11
1366  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
1367  DB  76,139,72,16                        ; mov           0x10(%rax),%r9
1368  DB  196,65,29,118,228                   ; vpcmpeqd      %ymm12,%ymm12,%ymm12
1369  DB  196,194,29,146,4,136                ; vgatherdps    %ymm12,(%r8,%ymm1,4),%ymm0
1370  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
1371  DB  196,226,125,51,201                  ; vpmovzxwd     %xmm1,%ymm1
1372  DB  196,193,117,219,210                 ; vpand         %ymm10,%ymm1,%ymm2
1373  DB  196,65,61,118,192                   ; vpcmpeqd      %ymm8,%ymm8,%ymm8
1374  DB  196,194,61,146,12,145               ; vgatherdps    %ymm8,(%r9,%ymm2,4),%ymm1
1375  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
1376  DB  196,193,49,108,213                  ; vpunpcklqdq   %xmm13,%xmm9,%xmm2
1377  DB  196,226,125,51,210                  ; vpmovzxwd     %xmm2,%ymm2
1378  DB  196,65,109,219,194                  ; vpand         %ymm10,%ymm2,%ymm8
1379  DB  196,162,37,146,20,128               ; vgatherdps    %ymm11,(%rax,%ymm8,4),%ymm2
1380  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
1381  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1382  DB  196,98,125,88,195                   ; vpbroadcastd  %xmm3,%ymm8
1383  DB  196,193,49,109,221                  ; vpunpckhqdq   %xmm13,%xmm9,%xmm3
1384  DB  197,177,113,243,8                   ; vpsllw        $0x8,%xmm3,%xmm9
1385  DB  197,225,113,211,8                   ; vpsrlw        $0x8,%xmm3,%xmm3
1386  DB  197,177,235,219                     ; vpor          %xmm3,%xmm9,%xmm3
1387  DB  196,226,125,51,219                  ; vpmovzxwd     %xmm3,%ymm3
1388  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
1389  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
1390  DB  72,173                              ; lods          %ds:(%rsi),%rax
1391  DB  255,224                             ; jmpq          *%rax
1392  DB  196,1,123,16,4,72                   ; vmovsd        (%r8,%r9,2),%xmm8
1393  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
1394  DB  72,131,249,1                        ; cmp           $0x1,%rcx
1395  DB  116,85                              ; je            1533 <_sk_load_tables_u16_be_hsw+0x154>
1396  DB  196,1,57,22,68,72,8                 ; vmovhpd       0x8(%r8,%r9,2),%xmm8,%xmm8
1397  DB  72,131,249,3                        ; cmp           $0x3,%rcx
1398  DB  114,72                              ; jb            1533 <_sk_load_tables_u16_be_hsw+0x154>
1399  DB  196,129,123,16,84,72,16             ; vmovsd        0x10(%r8,%r9,2),%xmm2
1400  DB  72,131,249,3                        ; cmp           $0x3,%rcx
1401  DB  116,72                              ; je            1540 <_sk_load_tables_u16_be_hsw+0x161>
1402  DB  196,129,105,22,84,72,24             ; vmovhpd       0x18(%r8,%r9,2),%xmm2,%xmm2
1403  DB  72,131,249,5                        ; cmp           $0x5,%rcx
1404  DB  114,59                              ; jb            1540 <_sk_load_tables_u16_be_hsw+0x161>
1405  DB  196,129,123,16,92,72,32             ; vmovsd        0x20(%r8,%r9,2),%xmm3
1406  DB  72,131,249,5                        ; cmp           $0x5,%rcx
1407  DB  15,132,250,254,255,255              ; je            1410 <_sk_load_tables_u16_be_hsw+0x31>
1408  DB  196,129,97,22,92,72,40              ; vmovhpd       0x28(%r8,%r9,2),%xmm3,%xmm3
1409  DB  72,131,249,7                        ; cmp           $0x7,%rcx
1410  DB  15,130,233,254,255,255              ; jb            1410 <_sk_load_tables_u16_be_hsw+0x31>
1411  DB  196,1,122,126,76,72,48              ; vmovq         0x30(%r8,%r9,2),%xmm9
1412  DB  233,221,254,255,255                 ; jmpq          1410 <_sk_load_tables_u16_be_hsw+0x31>
1413  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
1414  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
1415  DB  233,208,254,255,255                 ; jmpq          1410 <_sk_load_tables_u16_be_hsw+0x31>
1416  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
1417  DB  233,199,254,255,255                 ; jmpq          1410 <_sk_load_tables_u16_be_hsw+0x31>
1418
1419PUBLIC _sk_load_tables_rgb_u16_be_hsw
1420_sk_load_tables_rgb_u16_be_hsw LABEL PROC
1421  DB  72,173                              ; lods          %ds:(%rsi),%rax
1422  DB  76,139,0                            ; mov           (%rax),%r8
1423  DB  76,141,12,127                       ; lea           (%rdi,%rdi,2),%r9
1424  DB  72,133,201                          ; test          %rcx,%rcx
1425  DB  15,133,207,0,0,0                    ; jne           162a <_sk_load_tables_rgb_u16_be_hsw+0xe1>
1426  DB  196,129,122,111,4,72                ; vmovdqu       (%r8,%r9,2),%xmm0
1427  DB  196,129,122,111,84,72,12            ; vmovdqu       0xc(%r8,%r9,2),%xmm2
1428  DB  196,129,122,111,76,72,24            ; vmovdqu       0x18(%r8,%r9,2),%xmm1
1429  DB  196,129,122,111,92,72,32            ; vmovdqu       0x20(%r8,%r9,2),%xmm3
1430  DB  197,225,115,219,4                   ; vpsrldq       $0x4,%xmm3,%xmm3
1431  DB  197,185,115,216,6                   ; vpsrldq       $0x6,%xmm0,%xmm8
1432  DB  197,177,115,218,6                   ; vpsrldq       $0x6,%xmm2,%xmm9
1433  DB  197,161,115,217,6                   ; vpsrldq       $0x6,%xmm1,%xmm11
1434  DB  197,169,115,219,6                   ; vpsrldq       $0x6,%xmm3,%xmm10
1435  DB  197,249,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm0
1436  DB  196,193,57,97,209                   ; vpunpcklwd    %xmm9,%xmm8,%xmm2
1437  DB  197,241,97,203                      ; vpunpcklwd    %xmm3,%xmm1,%xmm1
1438  DB  196,193,33,97,218                   ; vpunpcklwd    %xmm10,%xmm11,%xmm3
1439  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
1440  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
1441  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
1442  DB  197,241,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm3
1443  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
1444  DB  196,226,125,51,192                  ; vpmovzxwd     %xmm0,%ymm0
1445  DB  65,184,255,0,0,0                    ; mov           $0xff,%r8d
1446  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1447  DB  196,98,125,88,209                   ; vpbroadcastd  %xmm1,%ymm10
1448  DB  196,193,125,219,202                 ; vpand         %ymm10,%ymm0,%ymm1
1449  DB  196,65,37,118,219                   ; vpcmpeqd      %ymm11,%ymm11,%ymm11
1450  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
1451  DB  76,139,72,16                        ; mov           0x10(%rax),%r9
1452  DB  196,65,29,118,228                   ; vpcmpeqd      %ymm12,%ymm12,%ymm12
1453  DB  196,194,29,146,4,136                ; vgatherdps    %ymm12,(%r8,%ymm1,4),%ymm0
1454  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
1455  DB  196,226,125,51,201                  ; vpmovzxwd     %xmm1,%ymm1
1456  DB  196,193,117,219,210                 ; vpand         %ymm10,%ymm1,%ymm2
1457  DB  196,65,61,118,192                   ; vpcmpeqd      %ymm8,%ymm8,%ymm8
1458  DB  196,194,61,146,12,145               ; vgatherdps    %ymm8,(%r9,%ymm2,4),%ymm1
1459  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
1460  DB  197,177,108,211                     ; vpunpcklqdq   %xmm3,%xmm9,%xmm2
1461  DB  196,226,125,51,210                  ; vpmovzxwd     %xmm2,%ymm2
1462  DB  196,193,109,219,218                 ; vpand         %ymm10,%ymm2,%ymm3
1463  DB  196,226,37,146,20,152               ; vgatherdps    %ymm11,(%rax,%ymm3,4),%ymm2
1464  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
1465  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
1466  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
1467  DB  72,173                              ; lods          %ds:(%rsi),%rax
1468  DB  255,224                             ; jmpq          *%rax
1469  DB  196,129,121,110,4,72                ; vmovd         (%r8,%r9,2),%xmm0
1470  DB  196,129,121,196,68,72,4,2           ; vpinsrw       $0x2,0x4(%r8,%r9,2),%xmm0,%xmm0
1471  DB  72,131,249,1                        ; cmp           $0x1,%rcx
1472  DB  117,5                               ; jne           1643 <_sk_load_tables_rgb_u16_be_hsw+0xfa>
1473  DB  233,76,255,255,255                  ; jmpq          158f <_sk_load_tables_rgb_u16_be_hsw+0x46>
1474  DB  196,129,121,110,76,72,6             ; vmovd         0x6(%r8,%r9,2),%xmm1
1475  DB  196,1,113,196,68,72,10,2            ; vpinsrw       $0x2,0xa(%r8,%r9,2),%xmm1,%xmm8
1476  DB  72,131,249,3                        ; cmp           $0x3,%rcx
1477  DB  114,26                              ; jb            1672 <_sk_load_tables_rgb_u16_be_hsw+0x129>
1478  DB  196,129,121,110,76,72,12            ; vmovd         0xc(%r8,%r9,2),%xmm1
1479  DB  196,129,113,196,84,72,16,2          ; vpinsrw       $0x2,0x10(%r8,%r9,2),%xmm1,%xmm2
1480  DB  72,131,249,3                        ; cmp           $0x3,%rcx
1481  DB  117,10                              ; jne           1677 <_sk_load_tables_rgb_u16_be_hsw+0x12e>
1482  DB  233,29,255,255,255                  ; jmpq          158f <_sk_load_tables_rgb_u16_be_hsw+0x46>
1483  DB  233,24,255,255,255                  ; jmpq          158f <_sk_load_tables_rgb_u16_be_hsw+0x46>
1484  DB  196,129,121,110,76,72,18            ; vmovd         0x12(%r8,%r9,2),%xmm1
1485  DB  196,1,113,196,76,72,22,2            ; vpinsrw       $0x2,0x16(%r8,%r9,2),%xmm1,%xmm9
1486  DB  72,131,249,5                        ; cmp           $0x5,%rcx
1487  DB  114,26                              ; jb            16a6 <_sk_load_tables_rgb_u16_be_hsw+0x15d>
1488  DB  196,129,121,110,76,72,24            ; vmovd         0x18(%r8,%r9,2),%xmm1
1489  DB  196,129,113,196,76,72,28,2          ; vpinsrw       $0x2,0x1c(%r8,%r9,2),%xmm1,%xmm1
1490  DB  72,131,249,5                        ; cmp           $0x5,%rcx
1491  DB  117,10                              ; jne           16ab <_sk_load_tables_rgb_u16_be_hsw+0x162>
1492  DB  233,233,254,255,255                 ; jmpq          158f <_sk_load_tables_rgb_u16_be_hsw+0x46>
1493  DB  233,228,254,255,255                 ; jmpq          158f <_sk_load_tables_rgb_u16_be_hsw+0x46>
1494  DB  196,129,121,110,92,72,30            ; vmovd         0x1e(%r8,%r9,2),%xmm3
1495  DB  196,1,97,196,92,72,34,2             ; vpinsrw       $0x2,0x22(%r8,%r9,2),%xmm3,%xmm11
1496  DB  72,131,249,7                        ; cmp           $0x7,%rcx
1497  DB  114,20                              ; jb            16d4 <_sk_load_tables_rgb_u16_be_hsw+0x18b>
1498  DB  196,129,121,110,92,72,36            ; vmovd         0x24(%r8,%r9,2),%xmm3
1499  DB  196,129,97,196,92,72,40,2           ; vpinsrw       $0x2,0x28(%r8,%r9,2),%xmm3,%xmm3
1500  DB  233,187,254,255,255                 ; jmpq          158f <_sk_load_tables_rgb_u16_be_hsw+0x46>
1501  DB  233,182,254,255,255                 ; jmpq          158f <_sk_load_tables_rgb_u16_be_hsw+0x46>
1502
1503PUBLIC _sk_byte_tables_hsw
1504_sk_byte_tables_hsw LABEL PROC
1505  DB  85                                  ; push          %rbp
1506  DB  65,87                               ; push          %r15
1507  DB  65,86                               ; push          %r14
1508  DB  65,85                               ; push          %r13
1509  DB  65,84                               ; push          %r12
1510  DB  83                                  ; push          %rbx
1511  DB  72,173                              ; lods          %ds:(%rsi),%rax
1512  DB  65,184,0,0,127,67                   ; mov           $0x437f0000,%r8d
1513  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
1514  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1515  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
1516  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
1517  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
1518  DB  68,137,197                          ; mov           %r8d,%ebp
1519  DB  77,137,194                          ; mov           %r8,%r10
1520  DB  73,193,234,32                       ; shr           $0x20,%r10
1521  DB  196,193,249,126,192                 ; vmovq         %xmm0,%r8
1522  DB  69,137,195                          ; mov           %r8d,%r11d
1523  DB  77,137,199                          ; mov           %r8,%r15
1524  DB  73,193,239,32                       ; shr           $0x20,%r15
1525  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
1526  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
1527  DB  69,137,198                          ; mov           %r8d,%r14d
1528  DB  77,137,196                          ; mov           %r8,%r12
1529  DB  73,193,236,32                       ; shr           $0x20,%r12
1530  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
1531  DB  65,137,221                          ; mov           %ebx,%r13d
1532  DB  72,193,235,32                       ; shr           $0x20,%rbx
1533  DB  76,139,8                            ; mov           (%rax),%r9
1534  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
1535  DB  196,131,121,32,4,25,0               ; vpinsrb       $0x0,(%r9,%r11,1),%xmm0,%xmm0
1536  DB  196,131,121,32,4,57,1               ; vpinsrb       $0x1,(%r9,%r15,1),%xmm0,%xmm0
1537  DB  65,15,182,44,41                     ; movzbl        (%r9,%rbp,1),%ebp
1538  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
1539  DB  67,15,182,44,17                     ; movzbl        (%r9,%r10,1),%ebp
1540  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
1541  DB  67,15,182,44,41                     ; movzbl        (%r9,%r13,1),%ebp
1542  DB  196,227,121,32,197,4                ; vpinsrb       $0x4,%ebp,%xmm0,%xmm0
1543  DB  65,15,182,44,25                     ; movzbl        (%r9,%rbx,1),%ebp
1544  DB  196,227,121,32,197,5                ; vpinsrb       $0x5,%ebp,%xmm0,%xmm0
1545  DB  67,15,182,44,49                     ; movzbl        (%r9,%r14,1),%ebp
1546  DB  196,227,121,32,197,6                ; vpinsrb       $0x6,%ebp,%xmm0,%xmm0
1547  DB  67,15,182,44,33                     ; movzbl        (%r9,%r12,1),%ebp
1548  DB  196,227,121,32,197,7                ; vpinsrb       $0x7,%ebp,%xmm0,%xmm0
1549  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
1550  DB  197,124,91,208                      ; vcvtdq2ps     %ymm0,%ymm10
1551  DB  189,129,128,128,59                  ; mov           $0x3b808081,%ebp
1552  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
1553  DB  196,98,125,88,200                   ; vpbroadcastd  %xmm0,%ymm9
1554  DB  196,193,44,89,193                   ; vmulps        %ymm9,%ymm10,%ymm0
1555  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
1556  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
1557  DB  196,227,249,22,205,1                ; vpextrq       $0x1,%xmm1,%rbp
1558  DB  65,137,233                          ; mov           %ebp,%r9d
1559  DB  72,193,237,32                       ; shr           $0x20,%rbp
1560  DB  196,225,249,126,203                 ; vmovq         %xmm1,%rbx
1561  DB  65,137,218                          ; mov           %ebx,%r10d
1562  DB  72,193,235,32                       ; shr           $0x20,%rbx
1563  DB  196,227,125,57,201,1                ; vextracti128  $0x1,%ymm1,%xmm1
1564  DB  196,195,249,22,203,1                ; vpextrq       $0x1,%xmm1,%r11
1565  DB  69,137,222                          ; mov           %r11d,%r14d
1566  DB  73,193,235,32                       ; shr           $0x20,%r11
1567  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
1568  DB  69,137,252                          ; mov           %r15d,%r12d
1569  DB  73,193,239,32                       ; shr           $0x20,%r15
1570  DB  196,131,121,32,12,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm1
1571  DB  196,195,113,32,12,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm1,%xmm1
1572  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
1573  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
1574  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
1575  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
1576  DB  67,15,182,44,32                     ; movzbl        (%r8,%r12,1),%ebp
1577  DB  196,227,113,32,205,4                ; vpinsrb       $0x4,%ebp,%xmm1,%xmm1
1578  DB  67,15,182,44,56                     ; movzbl        (%r8,%r15,1),%ebp
1579  DB  196,227,113,32,205,5                ; vpinsrb       $0x5,%ebp,%xmm1,%xmm1
1580  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
1581  DB  196,227,113,32,205,6                ; vpinsrb       $0x6,%ebp,%xmm1,%xmm1
1582  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
1583  DB  196,227,113,32,205,7                ; vpinsrb       $0x7,%ebp,%xmm1,%xmm1
1584  DB  196,226,125,49,201                  ; vpmovzxbd     %xmm1,%ymm1
1585  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
1586  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
1587  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
1588  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
1589  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
1590  DB  196,227,249,22,213,1                ; vpextrq       $0x1,%xmm2,%rbp
1591  DB  65,137,233                          ; mov           %ebp,%r9d
1592  DB  72,193,237,32                       ; shr           $0x20,%rbp
1593  DB  196,225,249,126,211                 ; vmovq         %xmm2,%rbx
1594  DB  65,137,218                          ; mov           %ebx,%r10d
1595  DB  72,193,235,32                       ; shr           $0x20,%rbx
1596  DB  196,227,125,57,210,1                ; vextracti128  $0x1,%ymm2,%xmm2
1597  DB  196,195,249,22,211,1                ; vpextrq       $0x1,%xmm2,%r11
1598  DB  69,137,222                          ; mov           %r11d,%r14d
1599  DB  73,193,235,32                       ; shr           $0x20,%r11
1600  DB  196,193,249,126,215                 ; vmovq         %xmm2,%r15
1601  DB  69,137,252                          ; mov           %r15d,%r12d
1602  DB  73,193,239,32                       ; shr           $0x20,%r15
1603  DB  196,131,121,32,20,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm2
1604  DB  196,195,105,32,20,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm2,%xmm2
1605  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
1606  DB  196,227,105,32,211,2                ; vpinsrb       $0x2,%ebx,%xmm2,%xmm2
1607  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
1608  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
1609  DB  67,15,182,44,32                     ; movzbl        (%r8,%r12,1),%ebp
1610  DB  196,227,105,32,213,4                ; vpinsrb       $0x4,%ebp,%xmm2,%xmm2
1611  DB  67,15,182,44,56                     ; movzbl        (%r8,%r15,1),%ebp
1612  DB  196,227,105,32,213,5                ; vpinsrb       $0x5,%ebp,%xmm2,%xmm2
1613  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
1614  DB  196,227,105,32,213,6                ; vpinsrb       $0x6,%ebp,%xmm2,%xmm2
1615  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
1616  DB  196,227,105,32,213,7                ; vpinsrb       $0x7,%ebp,%xmm2,%xmm2
1617  DB  196,226,125,49,210                  ; vpmovzxbd     %xmm2,%ymm2
1618  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
1619  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
1620  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
1621  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
1622  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
1623  DB  196,227,249,22,221,1                ; vpextrq       $0x1,%xmm3,%rbp
1624  DB  65,137,232                          ; mov           %ebp,%r8d
1625  DB  72,193,237,32                       ; shr           $0x20,%rbp
1626  DB  196,225,249,126,219                 ; vmovq         %xmm3,%rbx
1627  DB  65,137,217                          ; mov           %ebx,%r9d
1628  DB  72,193,235,32                       ; shr           $0x20,%rbx
1629  DB  196,227,125,57,219,1                ; vextracti128  $0x1,%ymm3,%xmm3
1630  DB  196,195,249,22,218,1                ; vpextrq       $0x1,%xmm3,%r10
1631  DB  69,137,211                          ; mov           %r10d,%r11d
1632  DB  73,193,234,32                       ; shr           $0x20,%r10
1633  DB  196,193,249,126,222                 ; vmovq         %xmm3,%r14
1634  DB  69,137,247                          ; mov           %r14d,%r15d
1635  DB  73,193,238,32                       ; shr           $0x20,%r14
1636  DB  196,163,121,32,28,8,0               ; vpinsrb       $0x0,(%rax,%r9,1),%xmm0,%xmm3
1637  DB  196,227,97,32,28,24,1               ; vpinsrb       $0x1,(%rax,%rbx,1),%xmm3,%xmm3
1638  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
1639  DB  196,227,97,32,219,2                 ; vpinsrb       $0x2,%ebx,%xmm3,%xmm3
1640  DB  15,182,44,40                        ; movzbl        (%rax,%rbp,1),%ebp
1641  DB  196,227,97,32,221,3                 ; vpinsrb       $0x3,%ebp,%xmm3,%xmm3
1642  DB  66,15,182,44,56                     ; movzbl        (%rax,%r15,1),%ebp
1643  DB  196,227,97,32,221,4                 ; vpinsrb       $0x4,%ebp,%xmm3,%xmm3
1644  DB  66,15,182,44,48                     ; movzbl        (%rax,%r14,1),%ebp
1645  DB  196,227,97,32,221,5                 ; vpinsrb       $0x5,%ebp,%xmm3,%xmm3
1646  DB  66,15,182,44,24                     ; movzbl        (%rax,%r11,1),%ebp
1647  DB  196,227,97,32,221,6                 ; vpinsrb       $0x6,%ebp,%xmm3,%xmm3
1648  DB  66,15,182,4,16                      ; movzbl        (%rax,%r10,1),%eax
1649  DB  196,227,97,32,216,7                 ; vpinsrb       $0x7,%eax,%xmm3,%xmm3
1650  DB  196,226,125,49,219                  ; vpmovzxbd     %xmm3,%ymm3
1651  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
1652  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
1653  DB  72,173                              ; lods          %ds:(%rsi),%rax
1654  DB  91                                  ; pop           %rbx
1655  DB  65,92                               ; pop           %r12
1656  DB  65,93                               ; pop           %r13
1657  DB  65,94                               ; pop           %r14
1658  DB  65,95                               ; pop           %r15
1659  DB  93                                  ; pop           %rbp
1660  DB  255,224                             ; jmpq          *%rax
1661
1662PUBLIC _sk_byte_tables_rgb_hsw
1663_sk_byte_tables_rgb_hsw LABEL PROC
1664  DB  85                                  ; push          %rbp
1665  DB  65,87                               ; push          %r15
1666  DB  65,86                               ; push          %r14
1667  DB  65,85                               ; push          %r13
1668  DB  65,84                               ; push          %r12
1669  DB  83                                  ; push          %rbx
1670  DB  72,173                              ; lods          %ds:(%rsi),%rax
1671  DB  68,139,64,24                        ; mov           0x18(%rax),%r8d
1672  DB  65,255,200                          ; dec           %r8d
1673  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
1674  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1675  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1676  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
1677  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
1678  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
1679  DB  68,137,197                          ; mov           %r8d,%ebp
1680  DB  77,137,194                          ; mov           %r8,%r10
1681  DB  73,193,234,32                       ; shr           $0x20,%r10
1682  DB  196,193,249,126,192                 ; vmovq         %xmm0,%r8
1683  DB  69,137,195                          ; mov           %r8d,%r11d
1684  DB  77,137,199                          ; mov           %r8,%r15
1685  DB  73,193,239,32                       ; shr           $0x20,%r15
1686  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
1687  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
1688  DB  69,137,198                          ; mov           %r8d,%r14d
1689  DB  77,137,196                          ; mov           %r8,%r12
1690  DB  73,193,236,32                       ; shr           $0x20,%r12
1691  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
1692  DB  65,137,221                          ; mov           %ebx,%r13d
1693  DB  72,193,235,32                       ; shr           $0x20,%rbx
1694  DB  76,139,8                            ; mov           (%rax),%r9
1695  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
1696  DB  196,131,121,32,4,25,0               ; vpinsrb       $0x0,(%r9,%r11,1),%xmm0,%xmm0
1697  DB  196,131,121,32,4,57,1               ; vpinsrb       $0x1,(%r9,%r15,1),%xmm0,%xmm0
1698  DB  65,15,182,44,41                     ; movzbl        (%r9,%rbp,1),%ebp
1699  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
1700  DB  67,15,182,44,17                     ; movzbl        (%r9,%r10,1),%ebp
1701  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
1702  DB  67,15,182,44,41                     ; movzbl        (%r9,%r13,1),%ebp
1703  DB  196,227,121,32,197,4                ; vpinsrb       $0x4,%ebp,%xmm0,%xmm0
1704  DB  65,15,182,44,25                     ; movzbl        (%r9,%rbx,1),%ebp
1705  DB  196,227,121,32,197,5                ; vpinsrb       $0x5,%ebp,%xmm0,%xmm0
1706  DB  67,15,182,44,49                     ; movzbl        (%r9,%r14,1),%ebp
1707  DB  196,227,121,32,197,6                ; vpinsrb       $0x6,%ebp,%xmm0,%xmm0
1708  DB  67,15,182,44,33                     ; movzbl        (%r9,%r12,1),%ebp
1709  DB  196,227,121,32,197,7                ; vpinsrb       $0x7,%ebp,%xmm0,%xmm0
1710  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
1711  DB  197,124,91,208                      ; vcvtdq2ps     %ymm0,%ymm10
1712  DB  189,129,128,128,59                  ; mov           $0x3b808081,%ebp
1713  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
1714  DB  196,98,125,88,200                   ; vpbroadcastd  %xmm0,%ymm9
1715  DB  196,193,44,89,193                   ; vmulps        %ymm9,%ymm10,%ymm0
1716  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
1717  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
1718  DB  196,227,249,22,205,1                ; vpextrq       $0x1,%xmm1,%rbp
1719  DB  65,137,233                          ; mov           %ebp,%r9d
1720  DB  72,193,237,32                       ; shr           $0x20,%rbp
1721  DB  196,225,249,126,203                 ; vmovq         %xmm1,%rbx
1722  DB  65,137,218                          ; mov           %ebx,%r10d
1723  DB  72,193,235,32                       ; shr           $0x20,%rbx
1724  DB  196,227,125,57,201,1                ; vextracti128  $0x1,%ymm1,%xmm1
1725  DB  196,195,249,22,203,1                ; vpextrq       $0x1,%xmm1,%r11
1726  DB  69,137,222                          ; mov           %r11d,%r14d
1727  DB  73,193,235,32                       ; shr           $0x20,%r11
1728  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
1729  DB  69,137,252                          ; mov           %r15d,%r12d
1730  DB  73,193,239,32                       ; shr           $0x20,%r15
1731  DB  196,131,121,32,12,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm1
1732  DB  196,195,113,32,12,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm1,%xmm1
1733  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
1734  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
1735  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
1736  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
1737  DB  67,15,182,44,32                     ; movzbl        (%r8,%r12,1),%ebp
1738  DB  196,227,113,32,205,4                ; vpinsrb       $0x4,%ebp,%xmm1,%xmm1
1739  DB  67,15,182,44,56                     ; movzbl        (%r8,%r15,1),%ebp
1740  DB  196,227,113,32,205,5                ; vpinsrb       $0x5,%ebp,%xmm1,%xmm1
1741  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
1742  DB  196,227,113,32,205,6                ; vpinsrb       $0x6,%ebp,%xmm1,%xmm1
1743  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
1744  DB  196,227,113,32,205,7                ; vpinsrb       $0x7,%ebp,%xmm1,%xmm1
1745  DB  196,226,125,49,201                  ; vpmovzxbd     %xmm1,%ymm1
1746  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
1747  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
1748  DB  72,139,64,16                        ; mov           0x10(%rax),%rax
1749  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
1750  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
1751  DB  196,227,249,22,213,1                ; vpextrq       $0x1,%xmm2,%rbp
1752  DB  65,137,232                          ; mov           %ebp,%r8d
1753  DB  72,193,237,32                       ; shr           $0x20,%rbp
1754  DB  196,225,249,126,211                 ; vmovq         %xmm2,%rbx
1755  DB  65,137,217                          ; mov           %ebx,%r9d
1756  DB  72,193,235,32                       ; shr           $0x20,%rbx
1757  DB  196,227,125,57,210,1                ; vextracti128  $0x1,%ymm2,%xmm2
1758  DB  196,195,249,22,210,1                ; vpextrq       $0x1,%xmm2,%r10
1759  DB  69,137,211                          ; mov           %r10d,%r11d
1760  DB  73,193,234,32                       ; shr           $0x20,%r10
1761  DB  196,193,249,126,214                 ; vmovq         %xmm2,%r14
1762  DB  69,137,247                          ; mov           %r14d,%r15d
1763  DB  73,193,238,32                       ; shr           $0x20,%r14
1764  DB  196,163,121,32,20,8,0               ; vpinsrb       $0x0,(%rax,%r9,1),%xmm0,%xmm2
1765  DB  196,227,105,32,20,24,1              ; vpinsrb       $0x1,(%rax,%rbx,1),%xmm2,%xmm2
1766  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
1767  DB  196,227,105,32,211,2                ; vpinsrb       $0x2,%ebx,%xmm2,%xmm2
1768  DB  15,182,44,40                        ; movzbl        (%rax,%rbp,1),%ebp
1769  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
1770  DB  66,15,182,44,56                     ; movzbl        (%rax,%r15,1),%ebp
1771  DB  196,227,105,32,213,4                ; vpinsrb       $0x4,%ebp,%xmm2,%xmm2
1772  DB  66,15,182,44,48                     ; movzbl        (%rax,%r14,1),%ebp
1773  DB  196,227,105,32,213,5                ; vpinsrb       $0x5,%ebp,%xmm2,%xmm2
1774  DB  66,15,182,44,24                     ; movzbl        (%rax,%r11,1),%ebp
1775  DB  196,227,105,32,213,6                ; vpinsrb       $0x6,%ebp,%xmm2,%xmm2
1776  DB  66,15,182,4,16                      ; movzbl        (%rax,%r10,1),%eax
1777  DB  196,227,105,32,208,7                ; vpinsrb       $0x7,%eax,%xmm2,%xmm2
1778  DB  196,226,125,49,210                  ; vpmovzxbd     %xmm2,%ymm2
1779  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
1780  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
1781  DB  72,173                              ; lods          %ds:(%rsi),%rax
1782  DB  91                                  ; pop           %rbx
1783  DB  65,92                               ; pop           %r12
1784  DB  65,93                               ; pop           %r13
1785  DB  65,94                               ; pop           %r14
1786  DB  65,95                               ; pop           %r15
1787  DB  93                                  ; pop           %rbp
1788  DB  255,224                             ; jmpq          *%rax
1789
1790PUBLIC _sk_table_r_hsw
1791_sk_table_r_hsw LABEL PROC
1792  DB  72,173                              ; lods          %ds:(%rsi),%rax
1793  DB  76,139,0                            ; mov           (%rax),%r8
1794  DB  139,64,8                            ; mov           0x8(%rax),%eax
1795  DB  255,200                             ; dec           %eax
1796  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
1797  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1798  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1799  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
1800  DB  197,125,91,192                      ; vcvtps2dq     %ymm0,%ymm8
1801  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
1802  DB  196,130,53,146,4,128                ; vgatherdps    %ymm9,(%r8,%ymm8,4),%ymm0
1803  DB  72,173                              ; lods          %ds:(%rsi),%rax
1804  DB  255,224                             ; jmpq          *%rax
1805
1806PUBLIC _sk_table_g_hsw
1807_sk_table_g_hsw LABEL PROC
1808  DB  72,173                              ; lods          %ds:(%rsi),%rax
1809  DB  76,139,0                            ; mov           (%rax),%r8
1810  DB  139,64,8                            ; mov           0x8(%rax),%eax
1811  DB  255,200                             ; dec           %eax
1812  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
1813  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1814  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1815  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
1816  DB  197,125,91,193                      ; vcvtps2dq     %ymm1,%ymm8
1817  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
1818  DB  196,130,53,146,12,128               ; vgatherdps    %ymm9,(%r8,%ymm8,4),%ymm1
1819  DB  72,173                              ; lods          %ds:(%rsi),%rax
1820  DB  255,224                             ; jmpq          *%rax
1821
1822PUBLIC _sk_table_b_hsw
1823_sk_table_b_hsw LABEL PROC
1824  DB  72,173                              ; lods          %ds:(%rsi),%rax
1825  DB  76,139,0                            ; mov           (%rax),%r8
1826  DB  139,64,8                            ; mov           0x8(%rax),%eax
1827  DB  255,200                             ; dec           %eax
1828  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
1829  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1830  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1831  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
1832  DB  197,125,91,194                      ; vcvtps2dq     %ymm2,%ymm8
1833  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
1834  DB  196,130,53,146,20,128               ; vgatherdps    %ymm9,(%r8,%ymm8,4),%ymm2
1835  DB  72,173                              ; lods          %ds:(%rsi),%rax
1836  DB  255,224                             ; jmpq          *%rax
1837
1838PUBLIC _sk_table_a_hsw
1839_sk_table_a_hsw LABEL PROC
1840  DB  72,173                              ; lods          %ds:(%rsi),%rax
1841  DB  76,139,0                            ; mov           (%rax),%r8
1842  DB  139,64,8                            ; mov           0x8(%rax),%eax
1843  DB  255,200                             ; dec           %eax
1844  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
1845  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
1846  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
1847  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
1848  DB  197,125,91,195                      ; vcvtps2dq     %ymm3,%ymm8
1849  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
1850  DB  196,130,53,146,28,128               ; vgatherdps    %ymm9,(%r8,%ymm8,4),%ymm3
1851  DB  72,173                              ; lods          %ds:(%rsi),%rax
1852  DB  255,224                             ; jmpq          *%rax
1853
1854PUBLIC _sk_parametric_r_hsw
1855_sk_parametric_r_hsw LABEL PROC
1856  DB  72,173                              ; lods          %ds:(%rsi),%rax
1857  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
1858  DB  196,65,124,194,192,2                ; vcmpleps      %ymm8,%ymm0,%ymm8
1859  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
1860  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
1861  DB  196,66,125,168,202                  ; vfmadd213ps   %ymm10,%ymm0,%ymm9
1862  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
1863  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
1864  DB  196,66,125,168,211                  ; vfmadd213ps   %ymm11,%ymm0,%ymm10
1865  DB  196,226,125,24,0                    ; vbroadcastss  (%rax),%ymm0
1866  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
1867  DB  196,98,125,24,37,231,36,0,0         ; vbroadcastss  0x24e7(%rip),%ymm12        # 41ac <_sk_callback_hsw+0x122>
1868  DB  196,98,125,24,45,226,36,0,0         ; vbroadcastss  0x24e2(%rip),%ymm13        # 41b0 <_sk_callback_hsw+0x126>
1869  DB  196,65,44,84,213                    ; vandps        %ymm13,%ymm10,%ymm10
1870  DB  196,98,125,24,45,216,36,0,0         ; vbroadcastss  0x24d8(%rip),%ymm13        # 41b4 <_sk_callback_hsw+0x12a>
1871  DB  196,65,44,86,213                    ; vorps         %ymm13,%ymm10,%ymm10
1872  DB  196,98,125,24,45,206,36,0,0         ; vbroadcastss  0x24ce(%rip),%ymm13        # 41b8 <_sk_callback_hsw+0x12e>
1873  DB  196,66,37,184,236                   ; vfmadd231ps   %ymm12,%ymm11,%ymm13
1874  DB  196,98,125,24,29,196,36,0,0         ; vbroadcastss  0x24c4(%rip),%ymm11        # 41bc <_sk_callback_hsw+0x132>
1875  DB  196,66,45,172,221                   ; vfnmadd213ps  %ymm13,%ymm10,%ymm11
1876  DB  196,98,125,24,37,186,36,0,0         ; vbroadcastss  0x24ba(%rip),%ymm12        # 41c0 <_sk_callback_hsw+0x136>
1877  DB  196,65,44,88,212                    ; vaddps        %ymm12,%ymm10,%ymm10
1878  DB  196,98,125,24,37,176,36,0,0         ; vbroadcastss  0x24b0(%rip),%ymm12        # 41c4 <_sk_callback_hsw+0x13a>
1879  DB  196,65,28,94,210                    ; vdivps        %ymm10,%ymm12,%ymm10
1880  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
1881  DB  196,193,124,89,194                  ; vmulps        %ymm10,%ymm0,%ymm0
1882  DB  196,99,125,8,208,1                  ; vroundps      $0x1,%ymm0,%ymm10
1883  DB  196,65,124,92,210                   ; vsubps        %ymm10,%ymm0,%ymm10
1884  DB  196,98,125,24,29,145,36,0,0         ; vbroadcastss  0x2491(%rip),%ymm11        # 41c8 <_sk_callback_hsw+0x13e>
1885  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
1886  DB  196,98,125,24,29,135,36,0,0         ; vbroadcastss  0x2487(%rip),%ymm11        # 41cc <_sk_callback_hsw+0x142>
1887  DB  196,98,45,172,216                   ; vfnmadd213ps  %ymm0,%ymm10,%ymm11
1888  DB  196,226,125,24,5,125,36,0,0         ; vbroadcastss  0x247d(%rip),%ymm0        # 41d0 <_sk_callback_hsw+0x146>
1889  DB  196,193,124,92,194                  ; vsubps        %ymm10,%ymm0,%ymm0
1890  DB  196,98,125,24,21,115,36,0,0         ; vbroadcastss  0x2473(%rip),%ymm10        # 41d4 <_sk_callback_hsw+0x14a>
1891  DB  197,172,94,192                      ; vdivps        %ymm0,%ymm10,%ymm0
1892  DB  197,164,88,192                      ; vaddps        %ymm0,%ymm11,%ymm0
1893  DB  196,98,125,24,21,102,36,0,0         ; vbroadcastss  0x2466(%rip),%ymm10        # 41d8 <_sk_callback_hsw+0x14e>
1894  DB  196,193,124,89,194                  ; vmulps        %ymm10,%ymm0,%ymm0
1895  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
1896  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
1897  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
1898  DB  196,195,125,74,193,128              ; vblendvps     %ymm8,%ymm9,%ymm0,%ymm0
1899  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
1900  DB  196,65,124,95,192                   ; vmaxps        %ymm8,%ymm0,%ymm8
1901  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
1902  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
1903  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
1904  DB  197,188,93,192                      ; vminps        %ymm0,%ymm8,%ymm0
1905  DB  72,173                              ; lods          %ds:(%rsi),%rax
1906  DB  255,224                             ; jmpq          *%rax
1907
1908PUBLIC _sk_parametric_g_hsw
1909_sk_parametric_g_hsw LABEL PROC
1910  DB  72,173                              ; lods          %ds:(%rsi),%rax
1911  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
1912  DB  196,65,116,194,192,2                ; vcmpleps      %ymm8,%ymm1,%ymm8
1913  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
1914  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
1915  DB  196,66,117,168,202                  ; vfmadd213ps   %ymm10,%ymm1,%ymm9
1916  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
1917  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
1918  DB  196,66,117,168,211                  ; vfmadd213ps   %ymm11,%ymm1,%ymm10
1919  DB  196,226,125,24,8                    ; vbroadcastss  (%rax),%ymm1
1920  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
1921  DB  196,98,125,24,37,237,35,0,0         ; vbroadcastss  0x23ed(%rip),%ymm12        # 41dc <_sk_callback_hsw+0x152>
1922  DB  196,98,125,24,45,232,35,0,0         ; vbroadcastss  0x23e8(%rip),%ymm13        # 41e0 <_sk_callback_hsw+0x156>
1923  DB  196,65,44,84,213                    ; vandps        %ymm13,%ymm10,%ymm10
1924  DB  196,98,125,24,45,222,35,0,0         ; vbroadcastss  0x23de(%rip),%ymm13        # 41e4 <_sk_callback_hsw+0x15a>
1925  DB  196,65,44,86,213                    ; vorps         %ymm13,%ymm10,%ymm10
1926  DB  196,98,125,24,45,212,35,0,0         ; vbroadcastss  0x23d4(%rip),%ymm13        # 41e8 <_sk_callback_hsw+0x15e>
1927  DB  196,66,37,184,236                   ; vfmadd231ps   %ymm12,%ymm11,%ymm13
1928  DB  196,98,125,24,29,202,35,0,0         ; vbroadcastss  0x23ca(%rip),%ymm11        # 41ec <_sk_callback_hsw+0x162>
1929  DB  196,66,45,172,221                   ; vfnmadd213ps  %ymm13,%ymm10,%ymm11
1930  DB  196,98,125,24,37,192,35,0,0         ; vbroadcastss  0x23c0(%rip),%ymm12        # 41f0 <_sk_callback_hsw+0x166>
1931  DB  196,65,44,88,212                    ; vaddps        %ymm12,%ymm10,%ymm10
1932  DB  196,98,125,24,37,182,35,0,0         ; vbroadcastss  0x23b6(%rip),%ymm12        # 41f4 <_sk_callback_hsw+0x16a>
1933  DB  196,65,28,94,210                    ; vdivps        %ymm10,%ymm12,%ymm10
1934  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
1935  DB  196,193,116,89,202                  ; vmulps        %ymm10,%ymm1,%ymm1
1936  DB  196,99,125,8,209,1                  ; vroundps      $0x1,%ymm1,%ymm10
1937  DB  196,65,116,92,210                   ; vsubps        %ymm10,%ymm1,%ymm10
1938  DB  196,98,125,24,29,151,35,0,0         ; vbroadcastss  0x2397(%rip),%ymm11        # 41f8 <_sk_callback_hsw+0x16e>
1939  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
1940  DB  196,98,125,24,29,141,35,0,0         ; vbroadcastss  0x238d(%rip),%ymm11        # 41fc <_sk_callback_hsw+0x172>
1941  DB  196,98,45,172,217                   ; vfnmadd213ps  %ymm1,%ymm10,%ymm11
1942  DB  196,226,125,24,13,131,35,0,0        ; vbroadcastss  0x2383(%rip),%ymm1        # 4200 <_sk_callback_hsw+0x176>
1943  DB  196,193,116,92,202                  ; vsubps        %ymm10,%ymm1,%ymm1
1944  DB  196,98,125,24,21,121,35,0,0         ; vbroadcastss  0x2379(%rip),%ymm10        # 4204 <_sk_callback_hsw+0x17a>
1945  DB  197,172,94,201                      ; vdivps        %ymm1,%ymm10,%ymm1
1946  DB  197,164,88,201                      ; vaddps        %ymm1,%ymm11,%ymm1
1947  DB  196,98,125,24,21,108,35,0,0         ; vbroadcastss  0x236c(%rip),%ymm10        # 4208 <_sk_callback_hsw+0x17e>
1948  DB  196,193,116,89,202                  ; vmulps        %ymm10,%ymm1,%ymm1
1949  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
1950  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
1951  DB  196,193,116,88,202                  ; vaddps        %ymm10,%ymm1,%ymm1
1952  DB  196,195,117,74,201,128              ; vblendvps     %ymm8,%ymm9,%ymm1,%ymm1
1953  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
1954  DB  196,65,116,95,192                   ; vmaxps        %ymm8,%ymm1,%ymm8
1955  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
1956  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
1957  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
1958  DB  197,188,93,201                      ; vminps        %ymm1,%ymm8,%ymm1
1959  DB  72,173                              ; lods          %ds:(%rsi),%rax
1960  DB  255,224                             ; jmpq          *%rax
1961
1962PUBLIC _sk_parametric_b_hsw
1963_sk_parametric_b_hsw LABEL PROC
1964  DB  72,173                              ; lods          %ds:(%rsi),%rax
1965  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
1966  DB  196,65,108,194,192,2                ; vcmpleps      %ymm8,%ymm2,%ymm8
1967  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
1968  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
1969  DB  196,66,109,168,202                  ; vfmadd213ps   %ymm10,%ymm2,%ymm9
1970  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
1971  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
1972  DB  196,66,109,168,211                  ; vfmadd213ps   %ymm11,%ymm2,%ymm10
1973  DB  196,226,125,24,16                   ; vbroadcastss  (%rax),%ymm2
1974  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
1975  DB  196,98,125,24,37,243,34,0,0         ; vbroadcastss  0x22f3(%rip),%ymm12        # 420c <_sk_callback_hsw+0x182>
1976  DB  196,98,125,24,45,238,34,0,0         ; vbroadcastss  0x22ee(%rip),%ymm13        # 4210 <_sk_callback_hsw+0x186>
1977  DB  196,65,44,84,213                    ; vandps        %ymm13,%ymm10,%ymm10
1978  DB  196,98,125,24,45,228,34,0,0         ; vbroadcastss  0x22e4(%rip),%ymm13        # 4214 <_sk_callback_hsw+0x18a>
1979  DB  196,65,44,86,213                    ; vorps         %ymm13,%ymm10,%ymm10
1980  DB  196,98,125,24,45,218,34,0,0         ; vbroadcastss  0x22da(%rip),%ymm13        # 4218 <_sk_callback_hsw+0x18e>
1981  DB  196,66,37,184,236                   ; vfmadd231ps   %ymm12,%ymm11,%ymm13
1982  DB  196,98,125,24,29,208,34,0,0         ; vbroadcastss  0x22d0(%rip),%ymm11        # 421c <_sk_callback_hsw+0x192>
1983  DB  196,66,45,172,221                   ; vfnmadd213ps  %ymm13,%ymm10,%ymm11
1984  DB  196,98,125,24,37,198,34,0,0         ; vbroadcastss  0x22c6(%rip),%ymm12        # 4220 <_sk_callback_hsw+0x196>
1985  DB  196,65,44,88,212                    ; vaddps        %ymm12,%ymm10,%ymm10
1986  DB  196,98,125,24,37,188,34,0,0         ; vbroadcastss  0x22bc(%rip),%ymm12        # 4224 <_sk_callback_hsw+0x19a>
1987  DB  196,65,28,94,210                    ; vdivps        %ymm10,%ymm12,%ymm10
1988  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
1989  DB  196,193,108,89,210                  ; vmulps        %ymm10,%ymm2,%ymm2
1990  DB  196,99,125,8,210,1                  ; vroundps      $0x1,%ymm2,%ymm10
1991  DB  196,65,108,92,210                   ; vsubps        %ymm10,%ymm2,%ymm10
1992  DB  196,98,125,24,29,157,34,0,0         ; vbroadcastss  0x229d(%rip),%ymm11        # 4228 <_sk_callback_hsw+0x19e>
1993  DB  196,193,108,88,211                  ; vaddps        %ymm11,%ymm2,%ymm2
1994  DB  196,98,125,24,29,147,34,0,0         ; vbroadcastss  0x2293(%rip),%ymm11        # 422c <_sk_callback_hsw+0x1a2>
1995  DB  196,98,45,172,218                   ; vfnmadd213ps  %ymm2,%ymm10,%ymm11
1996  DB  196,226,125,24,21,137,34,0,0        ; vbroadcastss  0x2289(%rip),%ymm2        # 4230 <_sk_callback_hsw+0x1a6>
1997  DB  196,193,108,92,210                  ; vsubps        %ymm10,%ymm2,%ymm2
1998  DB  196,98,125,24,21,127,34,0,0         ; vbroadcastss  0x227f(%rip),%ymm10        # 4234 <_sk_callback_hsw+0x1aa>
1999  DB  197,172,94,210                      ; vdivps        %ymm2,%ymm10,%ymm2
2000  DB  197,164,88,210                      ; vaddps        %ymm2,%ymm11,%ymm2
2001  DB  196,98,125,24,21,114,34,0,0         ; vbroadcastss  0x2272(%rip),%ymm10        # 4238 <_sk_callback_hsw+0x1ae>
2002  DB  196,193,108,89,210                  ; vmulps        %ymm10,%ymm2,%ymm2
2003  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
2004  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
2005  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
2006  DB  196,195,109,74,209,128              ; vblendvps     %ymm8,%ymm9,%ymm2,%ymm2
2007  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
2008  DB  196,65,108,95,192                   ; vmaxps        %ymm8,%ymm2,%ymm8
2009  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2010  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2011  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2012  DB  197,188,93,210                      ; vminps        %ymm2,%ymm8,%ymm2
2013  DB  72,173                              ; lods          %ds:(%rsi),%rax
2014  DB  255,224                             ; jmpq          *%rax
2015
2016PUBLIC _sk_parametric_a_hsw
2017_sk_parametric_a_hsw LABEL PROC
2018  DB  72,173                              ; lods          %ds:(%rsi),%rax
2019  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
2020  DB  196,65,100,194,192,2                ; vcmpleps      %ymm8,%ymm3,%ymm8
2021  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
2022  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
2023  DB  196,66,101,168,202                  ; vfmadd213ps   %ymm10,%ymm3,%ymm9
2024  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
2025  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
2026  DB  196,66,101,168,211                  ; vfmadd213ps   %ymm11,%ymm3,%ymm10
2027  DB  196,226,125,24,24                   ; vbroadcastss  (%rax),%ymm3
2028  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
2029  DB  196,98,125,24,37,249,33,0,0         ; vbroadcastss  0x21f9(%rip),%ymm12        # 423c <_sk_callback_hsw+0x1b2>
2030  DB  196,98,125,24,45,244,33,0,0         ; vbroadcastss  0x21f4(%rip),%ymm13        # 4240 <_sk_callback_hsw+0x1b6>
2031  DB  196,65,44,84,213                    ; vandps        %ymm13,%ymm10,%ymm10
2032  DB  196,98,125,24,45,234,33,0,0         ; vbroadcastss  0x21ea(%rip),%ymm13        # 4244 <_sk_callback_hsw+0x1ba>
2033  DB  196,65,44,86,213                    ; vorps         %ymm13,%ymm10,%ymm10
2034  DB  196,98,125,24,45,224,33,0,0         ; vbroadcastss  0x21e0(%rip),%ymm13        # 4248 <_sk_callback_hsw+0x1be>
2035  DB  196,66,37,184,236                   ; vfmadd231ps   %ymm12,%ymm11,%ymm13
2036  DB  196,98,125,24,29,214,33,0,0         ; vbroadcastss  0x21d6(%rip),%ymm11        # 424c <_sk_callback_hsw+0x1c2>
2037  DB  196,66,45,172,221                   ; vfnmadd213ps  %ymm13,%ymm10,%ymm11
2038  DB  196,98,125,24,37,204,33,0,0         ; vbroadcastss  0x21cc(%rip),%ymm12        # 4250 <_sk_callback_hsw+0x1c6>
2039  DB  196,65,44,88,212                    ; vaddps        %ymm12,%ymm10,%ymm10
2040  DB  196,98,125,24,37,194,33,0,0         ; vbroadcastss  0x21c2(%rip),%ymm12        # 4254 <_sk_callback_hsw+0x1ca>
2041  DB  196,65,28,94,210                    ; vdivps        %ymm10,%ymm12,%ymm10
2042  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
2043  DB  196,193,100,89,218                  ; vmulps        %ymm10,%ymm3,%ymm3
2044  DB  196,99,125,8,211,1                  ; vroundps      $0x1,%ymm3,%ymm10
2045  DB  196,65,100,92,210                   ; vsubps        %ymm10,%ymm3,%ymm10
2046  DB  196,98,125,24,29,163,33,0,0         ; vbroadcastss  0x21a3(%rip),%ymm11        # 4258 <_sk_callback_hsw+0x1ce>
2047  DB  196,193,100,88,219                  ; vaddps        %ymm11,%ymm3,%ymm3
2048  DB  196,98,125,24,29,153,33,0,0         ; vbroadcastss  0x2199(%rip),%ymm11        # 425c <_sk_callback_hsw+0x1d2>
2049  DB  196,98,45,172,219                   ; vfnmadd213ps  %ymm3,%ymm10,%ymm11
2050  DB  196,226,125,24,29,143,33,0,0        ; vbroadcastss  0x218f(%rip),%ymm3        # 4260 <_sk_callback_hsw+0x1d6>
2051  DB  196,193,100,92,218                  ; vsubps        %ymm10,%ymm3,%ymm3
2052  DB  196,98,125,24,21,133,33,0,0         ; vbroadcastss  0x2185(%rip),%ymm10        # 4264 <_sk_callback_hsw+0x1da>
2053  DB  197,172,94,219                      ; vdivps        %ymm3,%ymm10,%ymm3
2054  DB  197,164,88,219                      ; vaddps        %ymm3,%ymm11,%ymm3
2055  DB  196,98,125,24,21,120,33,0,0         ; vbroadcastss  0x2178(%rip),%ymm10        # 4268 <_sk_callback_hsw+0x1de>
2056  DB  196,193,100,89,218                  ; vmulps        %ymm10,%ymm3,%ymm3
2057  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
2058  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
2059  DB  196,193,100,88,218                  ; vaddps        %ymm10,%ymm3,%ymm3
2060  DB  196,195,101,74,217,128              ; vblendvps     %ymm8,%ymm9,%ymm3,%ymm3
2061  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
2062  DB  196,65,100,95,192                   ; vmaxps        %ymm8,%ymm3,%ymm8
2063  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2064  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2065  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2066  DB  197,188,93,219                      ; vminps        %ymm3,%ymm8,%ymm3
2067  DB  72,173                              ; lods          %ds:(%rsi),%rax
2068  DB  255,224                             ; jmpq          *%rax
2069
2070PUBLIC _sk_lab_to_xyz_hsw
2071_sk_lab_to_xyz_hsw LABEL PROC
2072  DB  184,0,0,200,66                      ; mov           $0x42c80000,%eax
2073  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
2074  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
2075  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
2076  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
2077  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
2078  DB  184,0,0,0,67                        ; mov           $0x43000000,%eax
2079  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
2080  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
2081  DB  196,194,53,170,202                  ; vfmsub213ps   %ymm10,%ymm9,%ymm1
2082  DB  196,194,53,170,210                  ; vfmsub213ps   %ymm10,%ymm9,%ymm2
2083  DB  184,0,0,128,65                      ; mov           $0x41800000,%eax
2084  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
2085  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
2086  DB  196,66,125,168,193                  ; vfmadd213ps   %ymm9,%ymm0,%ymm8
2087  DB  184,203,61,13,60                    ; mov           $0x3c0d3dcb,%eax
2088  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2089  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2090  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
2091  DB  184,111,18,3,59                     ; mov           $0x3b03126f,%eax
2092  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2093  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2094  DB  196,194,117,168,192                 ; vfmadd213ps   %ymm8,%ymm1,%ymm0
2095  DB  184,10,215,163,59                   ; mov           $0x3ba3d70a,%eax
2096  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2097  DB  196,98,125,88,201                   ; vpbroadcastd  %xmm1,%ymm9
2098  DB  196,66,109,172,200                  ; vfnmadd213ps  %ymm8,%ymm2,%ymm9
2099  DB  197,252,89,200                      ; vmulps        %ymm0,%ymm0,%ymm1
2100  DB  197,124,89,217                      ; vmulps        %ymm1,%ymm0,%ymm11
2101  DB  184,194,24,17,60                    ; mov           $0x3c1118c2,%eax
2102  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2103  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2104  DB  196,65,108,194,211,1                ; vcmpltps      %ymm11,%ymm2,%ymm10
2105  DB  184,203,61,13,62                    ; mov           $0x3e0d3dcb,%eax
2106  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2107  DB  196,98,125,88,225                   ; vpbroadcastd  %xmm1,%ymm12
2108  DB  196,193,124,92,196                  ; vsubps        %ymm12,%ymm0,%ymm0
2109  DB  184,80,128,3,62                     ; mov           $0x3e038050,%eax
2110  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2111  DB  196,98,125,88,233                   ; vpbroadcastd  %xmm1,%ymm13
2112  DB  196,193,124,89,197                  ; vmulps        %ymm13,%ymm0,%ymm0
2113  DB  196,67,125,74,219,160               ; vblendvps     %ymm10,%ymm11,%ymm0,%ymm11
2114  DB  196,193,60,89,200                   ; vmulps        %ymm8,%ymm8,%ymm1
2115  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
2116  DB  197,108,194,209,1                   ; vcmpltps      %ymm1,%ymm2,%ymm10
2117  DB  196,65,60,92,196                    ; vsubps        %ymm12,%ymm8,%ymm8
2118  DB  196,65,60,89,197                    ; vmulps        %ymm13,%ymm8,%ymm8
2119  DB  196,227,61,74,201,160               ; vblendvps     %ymm10,%ymm1,%ymm8,%ymm1
2120  DB  196,65,52,89,193                    ; vmulps        %ymm9,%ymm9,%ymm8
2121  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
2122  DB  196,193,108,194,208,1               ; vcmpltps      %ymm8,%ymm2,%ymm2
2123  DB  196,65,52,92,204                    ; vsubps        %ymm12,%ymm9,%ymm9
2124  DB  196,65,52,89,205                    ; vmulps        %ymm13,%ymm9,%ymm9
2125  DB  196,67,53,74,192,32                 ; vblendvps     %ymm2,%ymm8,%ymm9,%ymm8
2126  DB  184,31,215,118,63                   ; mov           $0x3f76d71f,%eax
2127  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2128  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2129  DB  197,164,89,192                      ; vmulps        %ymm0,%ymm11,%ymm0
2130  DB  184,246,64,83,63                    ; mov           $0x3f5340f6,%eax
2131  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2132  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2133  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
2134  DB  72,173                              ; lods          %ds:(%rsi),%rax
2135  DB  255,224                             ; jmpq          *%rax
2136
2137PUBLIC _sk_load_a8_hsw
2138_sk_load_a8_hsw LABEL PROC
2139  DB  73,137,200                          ; mov           %rcx,%r8
2140  DB  72,173                              ; lods          %ds:(%rsi),%rax
2141  DB  72,139,0                            ; mov           (%rax),%rax
2142  DB  72,1,248                            ; add           %rdi,%rax
2143  DB  77,133,192                          ; test          %r8,%r8
2144  DB  117,50                              ; jne           2299 <_sk_load_a8_hsw+0x42>
2145  DB  197,250,126,0                       ; vmovq         (%rax),%xmm0
2146  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2147  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2148  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2149  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2150  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2151  DB  197,252,89,217                      ; vmulps        %ymm1,%ymm0,%ymm3
2152  DB  72,173                              ; lods          %ds:(%rsi),%rax
2153  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
2154  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
2155  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
2156  DB  76,137,193                          ; mov           %r8,%rcx
2157  DB  255,224                             ; jmpq          *%rax
2158  DB  49,201                              ; xor           %ecx,%ecx
2159  DB  77,137,194                          ; mov           %r8,%r10
2160  DB  69,49,201                           ; xor           %r9d,%r9d
2161  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
2162  DB  72,255,192                          ; inc           %rax
2163  DB  73,211,227                          ; shl           %cl,%r11
2164  DB  77,9,217                            ; or            %r11,%r9
2165  DB  72,131,193,8                        ; add           $0x8,%rcx
2166  DB  73,255,202                          ; dec           %r10
2167  DB  117,234                             ; jne           22a1 <_sk_load_a8_hsw+0x4a>
2168  DB  196,193,249,110,193                 ; vmovq         %r9,%xmm0
2169  DB  235,173                             ; jmp           226b <_sk_load_a8_hsw+0x14>
2170
2171PUBLIC _sk_gather_a8_hsw
2172_sk_gather_a8_hsw LABEL PROC
2173  DB  65,87                               ; push          %r15
2174  DB  65,86                               ; push          %r14
2175  DB  65,84                               ; push          %r12
2176  DB  83                                  ; push          %rbx
2177  DB  72,173                              ; lods          %ds:(%rsi),%rax
2178  DB  76,139,0                            ; mov           (%rax),%r8
2179  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2180  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2181  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2182  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2183  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2184  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2185  DB  65,137,193                          ; mov           %eax,%r9d
2186  DB  72,193,232,32                       ; shr           $0x20,%rax
2187  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
2188  DB  69,137,211                          ; mov           %r10d,%r11d
2189  DB  73,193,234,32                       ; shr           $0x20,%r10
2190  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2191  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2192  DB  65,137,222                          ; mov           %ebx,%r14d
2193  DB  72,193,235,32                       ; shr           $0x20,%rbx
2194  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
2195  DB  69,137,252                          ; mov           %r15d,%r12d
2196  DB  73,193,239,32                       ; shr           $0x20,%r15
2197  DB  196,131,121,32,4,24,0               ; vpinsrb       $0x0,(%r8,%r11,1),%xmm0,%xmm0
2198  DB  196,131,121,32,4,16,1               ; vpinsrb       $0x1,(%r8,%r10,1),%xmm0,%xmm0
2199  DB  71,15,182,12,8                      ; movzbl        (%r8,%r9,1),%r9d
2200  DB  196,195,121,32,193,2                ; vpinsrb       $0x2,%r9d,%xmm0,%xmm0
2201  DB  65,15,182,4,0                       ; movzbl        (%r8,%rax,1),%eax
2202  DB  196,227,121,32,192,3                ; vpinsrb       $0x3,%eax,%xmm0,%xmm0
2203  DB  67,15,182,4,32                      ; movzbl        (%r8,%r12,1),%eax
2204  DB  196,227,121,32,192,4                ; vpinsrb       $0x4,%eax,%xmm0,%xmm0
2205  DB  67,15,182,4,56                      ; movzbl        (%r8,%r15,1),%eax
2206  DB  196,227,121,32,192,5                ; vpinsrb       $0x5,%eax,%xmm0,%xmm0
2207  DB  67,15,182,4,48                      ; movzbl        (%r8,%r14,1),%eax
2208  DB  196,227,121,32,192,6                ; vpinsrb       $0x6,%eax,%xmm0,%xmm0
2209  DB  65,15,182,4,24                      ; movzbl        (%r8,%rbx,1),%eax
2210  DB  196,227,121,32,192,7                ; vpinsrb       $0x7,%eax,%xmm0,%xmm0
2211  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2212  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2213  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2214  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2215  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2216  DB  197,252,89,217                      ; vmulps        %ymm1,%ymm0,%ymm3
2217  DB  72,173                              ; lods          %ds:(%rsi),%rax
2218  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
2219  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
2220  DB  197,237,239,210                     ; vpxor         %ymm2,%ymm2,%ymm2
2221  DB  91                                  ; pop           %rbx
2222  DB  65,92                               ; pop           %r12
2223  DB  65,94                               ; pop           %r14
2224  DB  65,95                               ; pop           %r15
2225  DB  255,224                             ; jmpq          *%rax
2226
2227PUBLIC _sk_store_a8_hsw
2228_sk_store_a8_hsw LABEL PROC
2229  DB  72,173                              ; lods          %ds:(%rsi),%rax
2230  DB  76,139,8                            ; mov           (%rax),%r9
2231  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
2232  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
2233  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
2234  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
2235  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
2236  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
2237  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
2238  DB  196,65,57,103,192                   ; vpackuswb     %xmm8,%xmm8,%xmm8
2239  DB  72,133,201                          ; test          %rcx,%rcx
2240  DB  117,10                              ; jne           23d6 <_sk_store_a8_hsw+0x3b>
2241  DB  196,65,123,17,4,57                  ; vmovsd        %xmm8,(%r9,%rdi,1)
2242  DB  72,173                              ; lods          %ds:(%rsi),%rax
2243  DB  255,224                             ; jmpq          *%rax
2244  DB  65,137,200                          ; mov           %ecx,%r8d
2245  DB  65,128,224,7                        ; and           $0x7,%r8b
2246  DB  65,254,200                          ; dec           %r8b
2247  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2248  DB  119,236                             ; ja            23d2 <_sk_store_a8_hsw+0x37>
2249  DB  196,66,121,48,192                   ; vpmovzxbw     %xmm8,%xmm8
2250  DB  65,15,182,192                       ; movzbl        %r8b,%eax
2251  DB  76,141,5,66,0,0,0                   ; lea           0x42(%rip),%r8        # 2438 <_sk_store_a8_hsw+0x9d>
2252  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
2253  DB  76,1,192                            ; add           %r8,%rax
2254  DB  255,224                             ; jmpq          *%rax
2255  DB  196,67,121,20,68,57,6,12            ; vpextrb       $0xc,%xmm8,0x6(%r9,%rdi,1)
2256  DB  196,67,121,20,68,57,5,10            ; vpextrb       $0xa,%xmm8,0x5(%r9,%rdi,1)
2257  DB  196,67,121,20,68,57,4,8             ; vpextrb       $0x8,%xmm8,0x4(%r9,%rdi,1)
2258  DB  196,67,121,20,68,57,3,6             ; vpextrb       $0x6,%xmm8,0x3(%r9,%rdi,1)
2259  DB  196,67,121,20,68,57,2,4             ; vpextrb       $0x4,%xmm8,0x2(%r9,%rdi,1)
2260  DB  196,67,121,20,68,57,1,2             ; vpextrb       $0x2,%xmm8,0x1(%r9,%rdi,1)
2261  DB  196,67,121,20,4,57,0                ; vpextrb       $0x0,%xmm8,(%r9,%rdi,1)
2262  DB  235,154                             ; jmp           23d2 <_sk_store_a8_hsw+0x37>
2263  DB  247,255                             ; idiv          %edi
2264  DB  255                                 ; (bad)
2265  DB  255                                 ; (bad)
2266  DB  239                                 ; out           %eax,(%dx)
2267  DB  255                                 ; (bad)
2268  DB  255                                 ; (bad)
2269  DB  255,231                             ; jmpq          *%rdi
2270  DB  255                                 ; (bad)
2271  DB  255                                 ; (bad)
2272  DB  255                                 ; (bad)
2273  DB  223,255                             ; (bad)
2274  DB  255                                 ; (bad)
2275  DB  255,215                             ; callq         *%rdi
2276  DB  255                                 ; (bad)
2277  DB  255                                 ; (bad)
2278  DB  255,207                             ; dec           %edi
2279  DB  255                                 ; (bad)
2280  DB  255                                 ; (bad)
2281  DB  255,199                             ; inc           %edi
2282  DB  255                                 ; (bad)
2283  DB  255                                 ; (bad)
2284  DB  255                                 ; .byte         0xff
2285
2286PUBLIC _sk_load_g8_hsw
2287_sk_load_g8_hsw LABEL PROC
2288  DB  73,137,200                          ; mov           %rcx,%r8
2289  DB  72,173                              ; lods          %ds:(%rsi),%rax
2290  DB  72,139,0                            ; mov           (%rax),%rax
2291  DB  72,1,248                            ; add           %rdi,%rax
2292  DB  77,133,192                          ; test          %r8,%r8
2293  DB  117,60                              ; jne           24a0 <_sk_load_g8_hsw+0x4c>
2294  DB  197,250,126,0                       ; vmovq         (%rax),%xmm0
2295  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2296  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2297  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2298  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2299  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2300  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2301  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2302  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2303  DB  196,226,125,88,217                  ; vpbroadcastd  %xmm1,%ymm3
2304  DB  72,173                              ; lods          %ds:(%rsi),%rax
2305  DB  76,137,193                          ; mov           %r8,%rcx
2306  DB  197,252,40,200                      ; vmovaps       %ymm0,%ymm1
2307  DB  197,252,40,208                      ; vmovaps       %ymm0,%ymm2
2308  DB  255,224                             ; jmpq          *%rax
2309  DB  49,201                              ; xor           %ecx,%ecx
2310  DB  77,137,194                          ; mov           %r8,%r10
2311  DB  69,49,201                           ; xor           %r9d,%r9d
2312  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
2313  DB  72,255,192                          ; inc           %rax
2314  DB  73,211,227                          ; shl           %cl,%r11
2315  DB  77,9,217                            ; or            %r11,%r9
2316  DB  72,131,193,8                        ; add           $0x8,%rcx
2317  DB  73,255,202                          ; dec           %r10
2318  DB  117,234                             ; jne           24a8 <_sk_load_g8_hsw+0x54>
2319  DB  196,193,249,110,193                 ; vmovq         %r9,%xmm0
2320  DB  235,163                             ; jmp           2468 <_sk_load_g8_hsw+0x14>
2321
2322PUBLIC _sk_gather_g8_hsw
2323_sk_gather_g8_hsw LABEL PROC
2324  DB  65,87                               ; push          %r15
2325  DB  65,86                               ; push          %r14
2326  DB  65,84                               ; push          %r12
2327  DB  83                                  ; push          %rbx
2328  DB  72,173                              ; lods          %ds:(%rsi),%rax
2329  DB  76,139,0                            ; mov           (%rax),%r8
2330  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2331  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2332  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2333  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2334  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2335  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2336  DB  65,137,193                          ; mov           %eax,%r9d
2337  DB  72,193,232,32                       ; shr           $0x20,%rax
2338  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
2339  DB  69,137,211                          ; mov           %r10d,%r11d
2340  DB  73,193,234,32                       ; shr           $0x20,%r10
2341  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2342  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2343  DB  65,137,222                          ; mov           %ebx,%r14d
2344  DB  72,193,235,32                       ; shr           $0x20,%rbx
2345  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
2346  DB  69,137,252                          ; mov           %r15d,%r12d
2347  DB  73,193,239,32                       ; shr           $0x20,%r15
2348  DB  196,131,121,32,4,24,0               ; vpinsrb       $0x0,(%r8,%r11,1),%xmm0,%xmm0
2349  DB  196,131,121,32,4,16,1               ; vpinsrb       $0x1,(%r8,%r10,1),%xmm0,%xmm0
2350  DB  71,15,182,12,8                      ; movzbl        (%r8,%r9,1),%r9d
2351  DB  196,195,121,32,193,2                ; vpinsrb       $0x2,%r9d,%xmm0,%xmm0
2352  DB  65,15,182,4,0                       ; movzbl        (%r8,%rax,1),%eax
2353  DB  196,227,121,32,192,3                ; vpinsrb       $0x3,%eax,%xmm0,%xmm0
2354  DB  67,15,182,4,32                      ; movzbl        (%r8,%r12,1),%eax
2355  DB  196,227,121,32,192,4                ; vpinsrb       $0x4,%eax,%xmm0,%xmm0
2356  DB  67,15,182,4,56                      ; movzbl        (%r8,%r15,1),%eax
2357  DB  196,227,121,32,192,5                ; vpinsrb       $0x5,%eax,%xmm0,%xmm0
2358  DB  67,15,182,4,48                      ; movzbl        (%r8,%r14,1),%eax
2359  DB  196,227,121,32,192,6                ; vpinsrb       $0x6,%eax,%xmm0,%xmm0
2360  DB  65,15,182,4,24                      ; movzbl        (%r8,%rbx,1),%eax
2361  DB  196,227,121,32,192,7                ; vpinsrb       $0x7,%eax,%xmm0,%xmm0
2362  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2363  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2364  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2365  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2366  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2367  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2368  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2369  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2370  DB  196,226,125,88,217                  ; vpbroadcastd  %xmm1,%ymm3
2371  DB  72,173                              ; lods          %ds:(%rsi),%rax
2372  DB  197,252,40,200                      ; vmovaps       %ymm0,%ymm1
2373  DB  197,252,40,208                      ; vmovaps       %ymm0,%ymm2
2374  DB  91                                  ; pop           %rbx
2375  DB  65,92                               ; pop           %r12
2376  DB  65,94                               ; pop           %r14
2377  DB  65,95                               ; pop           %r15
2378  DB  255,224                             ; jmpq          *%rax
2379
2380PUBLIC _sk_gather_i8_hsw
2381_sk_gather_i8_hsw LABEL PROC
2382  DB  72,173                              ; lods          %ds:(%rsi),%rax
2383  DB  73,137,192                          ; mov           %rax,%r8
2384  DB  77,133,192                          ; test          %r8,%r8
2385  DB  116,5                               ; je            25bb <_sk_gather_i8_hsw+0xf>
2386  DB  76,137,192                          ; mov           %r8,%rax
2387  DB  235,2                               ; jmp           25bd <_sk_gather_i8_hsw+0x11>
2388  DB  72,173                              ; lods          %ds:(%rsi),%rax
2389  DB  65,87                               ; push          %r15
2390  DB  65,86                               ; push          %r14
2391  DB  65,85                               ; push          %r13
2392  DB  65,84                               ; push          %r12
2393  DB  83                                  ; push          %rbx
2394  DB  76,139,8                            ; mov           (%rax),%r9
2395  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2396  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2397  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2398  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2399  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2400  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2401  DB  65,137,194                          ; mov           %eax,%r10d
2402  DB  72,193,232,32                       ; shr           $0x20,%rax
2403  DB  196,193,249,126,195                 ; vmovq         %xmm0,%r11
2404  DB  69,137,222                          ; mov           %r11d,%r14d
2405  DB  73,193,235,32                       ; shr           $0x20,%r11
2406  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2407  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2408  DB  65,137,223                          ; mov           %ebx,%r15d
2409  DB  72,193,235,32                       ; shr           $0x20,%rbx
2410  DB  196,193,249,126,196                 ; vmovq         %xmm0,%r12
2411  DB  69,137,229                          ; mov           %r12d,%r13d
2412  DB  73,193,236,32                       ; shr           $0x20,%r12
2413  DB  196,131,121,32,4,49,0               ; vpinsrb       $0x0,(%r9,%r14,1),%xmm0,%xmm0
2414  DB  196,131,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%r11,1),%xmm0,%xmm0
2415  DB  196,131,121,32,4,17,2               ; vpinsrb       $0x2,(%r9,%r10,1),%xmm0,%xmm0
2416  DB  196,195,121,32,4,1,3                ; vpinsrb       $0x3,(%r9,%rax,1),%xmm0,%xmm0
2417  DB  196,131,121,32,4,41,4               ; vpinsrb       $0x4,(%r9,%r13,1),%xmm0,%xmm0
2418  DB  196,131,121,32,4,33,5               ; vpinsrb       $0x5,(%r9,%r12,1),%xmm0,%xmm0
2419  DB  196,131,121,32,4,57,6               ; vpinsrb       $0x6,(%r9,%r15,1),%xmm0,%xmm0
2420  DB  196,195,121,32,4,25,7               ; vpinsrb       $0x7,(%r9,%rbx,1),%xmm0,%xmm0
2421  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2422  DB  73,139,64,8                         ; mov           0x8(%r8),%rax
2423  DB  197,245,118,201                     ; vpcmpeqd      %ymm1,%ymm1,%ymm1
2424  DB  196,226,117,144,28,128              ; vpgatherdd    %ymm1,(%rax,%ymm0,4),%ymm3
2425  DB  184,255,0,0,0                       ; mov           $0xff,%eax
2426  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2427  DB  196,226,125,88,208                  ; vpbroadcastd  %xmm0,%ymm2
2428  DB  197,237,219,195                     ; vpand         %ymm3,%ymm2,%ymm0
2429  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2430  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2431  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2432  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
2433  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
2434  DB  197,245,114,211,8                   ; vpsrld        $0x8,%ymm3,%ymm1
2435  DB  197,237,219,201                     ; vpand         %ymm1,%ymm2,%ymm1
2436  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2437  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
2438  DB  197,181,114,211,16                  ; vpsrld        $0x10,%ymm3,%ymm9
2439  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
2440  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
2441  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
2442  DB  197,229,114,211,24                  ; vpsrld        $0x18,%ymm3,%ymm3
2443  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
2444  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
2445  DB  72,173                              ; lods          %ds:(%rsi),%rax
2446  DB  91                                  ; pop           %rbx
2447  DB  65,92                               ; pop           %r12
2448  DB  65,93                               ; pop           %r13
2449  DB  65,94                               ; pop           %r14
2450  DB  65,95                               ; pop           %r15
2451  DB  255,224                             ; jmpq          *%rax
2452
2453PUBLIC _sk_load_565_hsw
2454_sk_load_565_hsw LABEL PROC
2455  DB  72,173                              ; lods          %ds:(%rsi),%rax
2456  DB  76,139,16                           ; mov           (%rax),%r10
2457  DB  72,133,201                          ; test          %rcx,%rcx
2458  DB  15,133,149,0,0,0                    ; jne           276f <_sk_load_565_hsw+0xa3>
2459  DB  196,193,122,111,4,122               ; vmovdqu       (%r10,%rdi,2),%xmm0
2460  DB  196,226,125,51,208                  ; vpmovzxwd     %xmm0,%ymm2
2461  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
2462  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2463  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2464  DB  197,253,219,194                     ; vpand         %ymm2,%ymm0,%ymm0
2465  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2466  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
2467  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2468  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2469  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2470  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
2471  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2472  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2473  DB  197,245,219,202                     ; vpand         %ymm2,%ymm1,%ymm1
2474  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2475  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
2476  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2477  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2478  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
2479  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
2480  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2481  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2482  DB  197,229,219,210                     ; vpand         %ymm2,%ymm3,%ymm2
2483  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
2484  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
2485  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2486  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2487  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
2488  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2489  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2490  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2491  DB  72,173                              ; lods          %ds:(%rsi),%rax
2492  DB  255,224                             ; jmpq          *%rax
2493  DB  65,137,200                          ; mov           %ecx,%r8d
2494  DB  65,128,224,7                        ; and           $0x7,%r8b
2495  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
2496  DB  65,254,200                          ; dec           %r8b
2497  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2498  DB  15,135,89,255,255,255               ; ja            26e0 <_sk_load_565_hsw+0x14>
2499  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
2500  DB  76,141,13,74,0,0,0                  ; lea           0x4a(%rip),%r9        # 27dc <_sk_load_565_hsw+0x110>
2501  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
2502  DB  76,1,200                            ; add           %r9,%rax
2503  DB  255,224                             ; jmpq          *%rax
2504  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
2505  DB  196,193,121,196,68,122,12,6         ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm0,%xmm0
2506  DB  196,193,121,196,68,122,10,5         ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm0,%xmm0
2507  DB  196,193,121,196,68,122,8,4          ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm0,%xmm0
2508  DB  196,193,121,196,68,122,6,3          ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm0,%xmm0
2509  DB  196,193,121,196,68,122,4,2          ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0
2510  DB  196,193,121,196,68,122,2,1          ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0
2511  DB  196,193,121,196,4,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm0,%xmm0
2512  DB  233,5,255,255,255                   ; jmpq          26e0 <_sk_load_565_hsw+0x14>
2513  DB  144                                 ; nop
2514  DB  243,255                             ; repz          (bad)
2515  DB  255                                 ; (bad)
2516  DB  255                                 ; (bad)
2517  DB  235,255                             ; jmp           27e1 <_sk_load_565_hsw+0x115>
2518  DB  255                                 ; (bad)
2519  DB  255,227                             ; jmpq          *%rbx
2520  DB  255                                 ; (bad)
2521  DB  255                                 ; (bad)
2522  DB  255                                 ; (bad)
2523  DB  219,255                             ; (bad)
2524  DB  255                                 ; (bad)
2525  DB  255,211                             ; callq         *%rbx
2526  DB  255                                 ; (bad)
2527  DB  255                                 ; (bad)
2528  DB  255,203                             ; dec           %ebx
2529  DB  255                                 ; (bad)
2530  DB  255                                 ; (bad)
2531  DB  255                                 ; (bad)
2532  DB  191                                 ; .byte         0xbf
2533  DB  255                                 ; (bad)
2534  DB  255                                 ; (bad)
2535  DB  255                                 ; .byte         0xff
2536
2537PUBLIC _sk_gather_565_hsw
2538_sk_gather_565_hsw LABEL PROC
2539  DB  65,87                               ; push          %r15
2540  DB  65,86                               ; push          %r14
2541  DB  65,84                               ; push          %r12
2542  DB  83                                  ; push          %rbx
2543  DB  72,173                              ; lods          %ds:(%rsi),%rax
2544  DB  76,139,0                            ; mov           (%rax),%r8
2545  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2546  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2547  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2548  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2549  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2550  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2551  DB  65,137,193                          ; mov           %eax,%r9d
2552  DB  72,193,232,32                       ; shr           $0x20,%rax
2553  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
2554  DB  69,137,211                          ; mov           %r10d,%r11d
2555  DB  73,193,234,32                       ; shr           $0x20,%r10
2556  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2557  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2558  DB  65,137,222                          ; mov           %ebx,%r14d
2559  DB  72,193,235,32                       ; shr           $0x20,%rbx
2560  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
2561  DB  69,137,252                          ; mov           %r15d,%r12d
2562  DB  73,193,239,32                       ; shr           $0x20,%r15
2563  DB  71,15,183,20,80                     ; movzwl        (%r8,%r10,2),%r10d
2564  DB  71,15,183,28,88                     ; movzwl        (%r8,%r11,2),%r11d
2565  DB  196,193,121,110,195                 ; vmovd         %r11d,%xmm0
2566  DB  196,193,121,196,194,1               ; vpinsrw       $0x1,%r10d,%xmm0,%xmm0
2567  DB  71,15,183,12,72                     ; movzwl        (%r8,%r9,2),%r9d
2568  DB  196,193,121,196,193,2               ; vpinsrw       $0x2,%r9d,%xmm0,%xmm0
2569  DB  65,15,183,4,64                      ; movzwl        (%r8,%rax,2),%eax
2570  DB  197,249,196,192,3                   ; vpinsrw       $0x3,%eax,%xmm0,%xmm0
2571  DB  67,15,183,4,96                      ; movzwl        (%r8,%r12,2),%eax
2572  DB  197,249,196,192,4                   ; vpinsrw       $0x4,%eax,%xmm0,%xmm0
2573  DB  67,15,183,4,120                     ; movzwl        (%r8,%r15,2),%eax
2574  DB  197,249,196,192,5                   ; vpinsrw       $0x5,%eax,%xmm0,%xmm0
2575  DB  67,15,183,4,112                     ; movzwl        (%r8,%r14,2),%eax
2576  DB  197,249,196,192,6                   ; vpinsrw       $0x6,%eax,%xmm0,%xmm0
2577  DB  65,15,183,4,88                      ; movzwl        (%r8,%rbx,2),%eax
2578  DB  197,249,196,192,7                   ; vpinsrw       $0x7,%eax,%xmm0,%xmm0
2579  DB  196,226,125,51,208                  ; vpmovzxwd     %xmm0,%ymm2
2580  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
2581  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2582  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2583  DB  197,253,219,194                     ; vpand         %ymm2,%ymm0,%ymm0
2584  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2585  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
2586  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2587  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2588  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2589  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
2590  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2591  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2592  DB  197,245,219,202                     ; vpand         %ymm2,%ymm1,%ymm1
2593  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2594  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
2595  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2596  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2597  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
2598  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
2599  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2600  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2601  DB  197,229,219,210                     ; vpand         %ymm2,%ymm3,%ymm2
2602  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
2603  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
2604  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2605  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2606  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
2607  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2608  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2609  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2610  DB  72,173                              ; lods          %ds:(%rsi),%rax
2611  DB  91                                  ; pop           %rbx
2612  DB  65,92                               ; pop           %r12
2613  DB  65,94                               ; pop           %r14
2614  DB  65,95                               ; pop           %r15
2615  DB  255,224                             ; jmpq          *%rax
2616
2617PUBLIC _sk_store_565_hsw
2618_sk_store_565_hsw LABEL PROC
2619  DB  72,173                              ; lods          %ds:(%rsi),%rax
2620  DB  76,139,8                            ; mov           (%rax),%r9
2621  DB  184,0,0,248,65                      ; mov           $0x41f80000,%eax
2622  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
2623  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
2624  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
2625  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
2626  DB  196,193,53,114,241,11               ; vpslld        $0xb,%ymm9,%ymm9
2627  DB  184,0,0,124,66                      ; mov           $0x427c0000,%eax
2628  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
2629  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
2630  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
2631  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
2632  DB  196,193,45,114,242,5                ; vpslld        $0x5,%ymm10,%ymm10
2633  DB  196,65,45,235,201                   ; vpor          %ymm9,%ymm10,%ymm9
2634  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
2635  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
2636  DB  196,65,53,235,192                   ; vpor          %ymm8,%ymm9,%ymm8
2637  DB  196,67,125,57,193,1                 ; vextracti128  $0x1,%ymm8,%xmm9
2638  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
2639  DB  72,133,201                          ; test          %rcx,%rcx
2640  DB  117,10                              ; jne           29a7 <_sk_store_565_hsw+0x6c>
2641  DB  196,65,122,127,4,121                ; vmovdqu       %xmm8,(%r9,%rdi,2)
2642  DB  72,173                              ; lods          %ds:(%rsi),%rax
2643  DB  255,224                             ; jmpq          *%rax
2644  DB  65,137,200                          ; mov           %ecx,%r8d
2645  DB  65,128,224,7                        ; and           $0x7,%r8b
2646  DB  65,254,200                          ; dec           %r8b
2647  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2648  DB  119,236                             ; ja            29a3 <_sk_store_565_hsw+0x68>
2649  DB  65,15,182,192                       ; movzbl        %r8b,%eax
2650  DB  76,141,5,66,0,0,0                   ; lea           0x42(%rip),%r8        # 2a04 <_sk_store_565_hsw+0xc9>
2651  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
2652  DB  76,1,192                            ; add           %r8,%rax
2653  DB  255,224                             ; jmpq          *%rax
2654  DB  196,67,121,21,68,121,12,6           ; vpextrw       $0x6,%xmm8,0xc(%r9,%rdi,2)
2655  DB  196,67,121,21,68,121,10,5           ; vpextrw       $0x5,%xmm8,0xa(%r9,%rdi,2)
2656  DB  196,67,121,21,68,121,8,4            ; vpextrw       $0x4,%xmm8,0x8(%r9,%rdi,2)
2657  DB  196,67,121,21,68,121,6,3            ; vpextrw       $0x3,%xmm8,0x6(%r9,%rdi,2)
2658  DB  196,67,121,21,68,121,4,2            ; vpextrw       $0x2,%xmm8,0x4(%r9,%rdi,2)
2659  DB  196,67,121,21,68,121,2,1            ; vpextrw       $0x1,%xmm8,0x2(%r9,%rdi,2)
2660  DB  196,67,121,21,4,121,0               ; vpextrw       $0x0,%xmm8,(%r9,%rdi,2)
2661  DB  235,159                             ; jmp           29a3 <_sk_store_565_hsw+0x68>
2662  DB  247,255                             ; idiv          %edi
2663  DB  255                                 ; (bad)
2664  DB  255                                 ; (bad)
2665  DB  239                                 ; out           %eax,(%dx)
2666  DB  255                                 ; (bad)
2667  DB  255                                 ; (bad)
2668  DB  255,231                             ; jmpq          *%rdi
2669  DB  255                                 ; (bad)
2670  DB  255                                 ; (bad)
2671  DB  255                                 ; (bad)
2672  DB  223,255                             ; (bad)
2673  DB  255                                 ; (bad)
2674  DB  255,215                             ; callq         *%rdi
2675  DB  255                                 ; (bad)
2676  DB  255                                 ; (bad)
2677  DB  255,207                             ; dec           %edi
2678  DB  255                                 ; (bad)
2679  DB  255                                 ; (bad)
2680  DB  255,199                             ; inc           %edi
2681  DB  255                                 ; (bad)
2682  DB  255                                 ; (bad)
2683  DB  255                                 ; .byte         0xff
2684
2685PUBLIC _sk_load_4444_hsw
2686_sk_load_4444_hsw LABEL PROC
2687  DB  72,173                              ; lods          %ds:(%rsi),%rax
2688  DB  76,139,16                           ; mov           (%rax),%r10
2689  DB  72,133,201                          ; test          %rcx,%rcx
2690  DB  15,133,179,0,0,0                    ; jne           2ae1 <_sk_load_4444_hsw+0xc1>
2691  DB  196,193,122,111,4,122               ; vmovdqu       (%r10,%rdi,2),%xmm0
2692  DB  196,98,125,51,200                   ; vpmovzxwd     %xmm0,%ymm9
2693  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
2694  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2695  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2696  DB  196,193,125,219,193                 ; vpand         %ymm9,%ymm0,%ymm0
2697  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2698  DB  184,137,136,136,55                  ; mov           $0x37888889,%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,0,15,0,0                        ; mov           $0xf00,%eax
2703  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2704  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2705  DB  196,193,117,219,201                 ; vpand         %ymm9,%ymm1,%ymm1
2706  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2707  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
2708  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2709  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2710  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
2711  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
2712  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2713  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2714  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
2715  DB  197,124,91,194                      ; vcvtdq2ps     %ymm2,%ymm8
2716  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
2717  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2718  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2719  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
2720  DB  184,15,0,0,0                        ; mov           $0xf,%eax
2721  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2722  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2723  DB  196,193,101,219,217                 ; vpand         %ymm9,%ymm3,%ymm3
2724  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
2725  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
2726  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2727  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2728  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
2729  DB  72,173                              ; lods          %ds:(%rsi),%rax
2730  DB  255,224                             ; jmpq          *%rax
2731  DB  65,137,200                          ; mov           %ecx,%r8d
2732  DB  65,128,224,7                        ; and           $0x7,%r8b
2733  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
2734  DB  65,254,200                          ; dec           %r8b
2735  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2736  DB  15,135,59,255,255,255               ; ja            2a34 <_sk_load_4444_hsw+0x14>
2737  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
2738  DB  76,141,13,76,0,0,0                  ; lea           0x4c(%rip),%r9        # 2b50 <_sk_load_4444_hsw+0x130>
2739  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
2740  DB  76,1,200                            ; add           %r9,%rax
2741  DB  255,224                             ; jmpq          *%rax
2742  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
2743  DB  196,193,121,196,68,122,12,6         ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm0,%xmm0
2744  DB  196,193,121,196,68,122,10,5         ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm0,%xmm0
2745  DB  196,193,121,196,68,122,8,4          ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm0,%xmm0
2746  DB  196,193,121,196,68,122,6,3          ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm0,%xmm0
2747  DB  196,193,121,196,68,122,4,2          ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0
2748  DB  196,193,121,196,68,122,2,1          ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0
2749  DB  196,193,121,196,4,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm0,%xmm0
2750  DB  233,231,254,255,255                 ; jmpq          2a34 <_sk_load_4444_hsw+0x14>
2751  DB  15,31,0                             ; nopl          (%rax)
2752  DB  241                                 ; icebp
2753  DB  255                                 ; (bad)
2754  DB  255                                 ; (bad)
2755  DB  255                                 ; (bad)
2756  DB  233,255,255,255,225                 ; jmpq          ffffffffe2002b58 <_sk_callback_hsw+0xffffffffe1ffeace>
2757  DB  255                                 ; (bad)
2758  DB  255                                 ; (bad)
2759  DB  255                                 ; (bad)
2760  DB  217,255                             ; fcos
2761  DB  255                                 ; (bad)
2762  DB  255,209                             ; callq         *%rcx
2763  DB  255                                 ; (bad)
2764  DB  255                                 ; (bad)
2765  DB  255,201                             ; dec           %ecx
2766  DB  255                                 ; (bad)
2767  DB  255                                 ; (bad)
2768  DB  255                                 ; (bad)
2769  DB  189                                 ; .byte         0xbd
2770  DB  255                                 ; (bad)
2771  DB  255                                 ; (bad)
2772  DB  255                                 ; .byte         0xff
2773
2774PUBLIC _sk_gather_4444_hsw
2775_sk_gather_4444_hsw LABEL PROC
2776  DB  65,87                               ; push          %r15
2777  DB  65,86                               ; push          %r14
2778  DB  65,84                               ; push          %r12
2779  DB  83                                  ; push          %rbx
2780  DB  72,173                              ; lods          %ds:(%rsi),%rax
2781  DB  76,139,0                            ; mov           (%rax),%r8
2782  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2783  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2784  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2785  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2786  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2787  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2788  DB  65,137,193                          ; mov           %eax,%r9d
2789  DB  72,193,232,32                       ; shr           $0x20,%rax
2790  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
2791  DB  69,137,211                          ; mov           %r10d,%r11d
2792  DB  73,193,234,32                       ; shr           $0x20,%r10
2793  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2794  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2795  DB  65,137,222                          ; mov           %ebx,%r14d
2796  DB  72,193,235,32                       ; shr           $0x20,%rbx
2797  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
2798  DB  69,137,252                          ; mov           %r15d,%r12d
2799  DB  73,193,239,32                       ; shr           $0x20,%r15
2800  DB  71,15,183,20,80                     ; movzwl        (%r8,%r10,2),%r10d
2801  DB  71,15,183,28,88                     ; movzwl        (%r8,%r11,2),%r11d
2802  DB  196,193,121,110,195                 ; vmovd         %r11d,%xmm0
2803  DB  196,193,121,196,194,1               ; vpinsrw       $0x1,%r10d,%xmm0,%xmm0
2804  DB  71,15,183,12,72                     ; movzwl        (%r8,%r9,2),%r9d
2805  DB  196,193,121,196,193,2               ; vpinsrw       $0x2,%r9d,%xmm0,%xmm0
2806  DB  65,15,183,4,64                      ; movzwl        (%r8,%rax,2),%eax
2807  DB  197,249,196,192,3                   ; vpinsrw       $0x3,%eax,%xmm0,%xmm0
2808  DB  67,15,183,4,96                      ; movzwl        (%r8,%r12,2),%eax
2809  DB  197,249,196,192,4                   ; vpinsrw       $0x4,%eax,%xmm0,%xmm0
2810  DB  67,15,183,4,120                     ; movzwl        (%r8,%r15,2),%eax
2811  DB  197,249,196,192,5                   ; vpinsrw       $0x5,%eax,%xmm0,%xmm0
2812  DB  67,15,183,4,112                     ; movzwl        (%r8,%r14,2),%eax
2813  DB  197,249,196,192,6                   ; vpinsrw       $0x6,%eax,%xmm0,%xmm0
2814  DB  65,15,183,4,88                      ; movzwl        (%r8,%rbx,2),%eax
2815  DB  197,249,196,192,7                   ; vpinsrw       $0x7,%eax,%xmm0,%xmm0
2816  DB  196,98,125,51,200                   ; vpmovzxwd     %xmm0,%ymm9
2817  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
2818  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2819  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2820  DB  196,193,125,219,193                 ; vpand         %ymm9,%ymm0,%ymm0
2821  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2822  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
2823  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2824  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2825  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2826  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
2827  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2828  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2829  DB  196,193,117,219,201                 ; vpand         %ymm9,%ymm1,%ymm1
2830  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2831  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
2832  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2833  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2834  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
2835  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
2836  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2837  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2838  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
2839  DB  197,124,91,194                      ; vcvtdq2ps     %ymm2,%ymm8
2840  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
2841  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2842  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2843  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
2844  DB  184,15,0,0,0                        ; mov           $0xf,%eax
2845  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2846  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2847  DB  196,193,101,219,217                 ; vpand         %ymm9,%ymm3,%ymm3
2848  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
2849  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
2850  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2851  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2852  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
2853  DB  72,173                              ; lods          %ds:(%rsi),%rax
2854  DB  91                                  ; pop           %rbx
2855  DB  65,92                               ; pop           %r12
2856  DB  65,94                               ; pop           %r14
2857  DB  65,95                               ; pop           %r15
2858  DB  255,224                             ; jmpq          *%rax
2859
2860PUBLIC _sk_store_4444_hsw
2861_sk_store_4444_hsw LABEL PROC
2862  DB  72,173                              ; lods          %ds:(%rsi),%rax
2863  DB  76,139,8                            ; mov           (%rax),%r9
2864  DB  184,0,0,112,65                      ; mov           $0x41700000,%eax
2865  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
2866  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
2867  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
2868  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
2869  DB  196,193,53,114,241,12               ; vpslld        $0xc,%ymm9,%ymm9
2870  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
2871  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
2872  DB  196,193,45,114,242,8                ; vpslld        $0x8,%ymm10,%ymm10
2873  DB  196,65,45,235,201                   ; vpor          %ymm9,%ymm10,%ymm9
2874  DB  197,60,89,210                       ; vmulps        %ymm2,%ymm8,%ymm10
2875  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
2876  DB  196,193,45,114,242,4                ; vpslld        $0x4,%ymm10,%ymm10
2877  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
2878  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
2879  DB  196,65,45,235,192                   ; vpor          %ymm8,%ymm10,%ymm8
2880  DB  196,65,53,235,192                   ; vpor          %ymm8,%ymm9,%ymm8
2881  DB  196,67,125,57,193,1                 ; vextracti128  $0x1,%ymm8,%xmm9
2882  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
2883  DB  72,133,201                          ; test          %rcx,%rcx
2884  DB  117,10                              ; jne           2d3f <_sk_store_4444_hsw+0x72>
2885  DB  196,65,122,127,4,121                ; vmovdqu       %xmm8,(%r9,%rdi,2)
2886  DB  72,173                              ; lods          %ds:(%rsi),%rax
2887  DB  255,224                             ; jmpq          *%rax
2888  DB  65,137,200                          ; mov           %ecx,%r8d
2889  DB  65,128,224,7                        ; and           $0x7,%r8b
2890  DB  65,254,200                          ; dec           %r8b
2891  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2892  DB  119,236                             ; ja            2d3b <_sk_store_4444_hsw+0x6e>
2893  DB  65,15,182,192                       ; movzbl        %r8b,%eax
2894  DB  76,141,5,66,0,0,0                   ; lea           0x42(%rip),%r8        # 2d9c <_sk_store_4444_hsw+0xcf>
2895  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
2896  DB  76,1,192                            ; add           %r8,%rax
2897  DB  255,224                             ; jmpq          *%rax
2898  DB  196,67,121,21,68,121,12,6           ; vpextrw       $0x6,%xmm8,0xc(%r9,%rdi,2)
2899  DB  196,67,121,21,68,121,10,5           ; vpextrw       $0x5,%xmm8,0xa(%r9,%rdi,2)
2900  DB  196,67,121,21,68,121,8,4            ; vpextrw       $0x4,%xmm8,0x8(%r9,%rdi,2)
2901  DB  196,67,121,21,68,121,6,3            ; vpextrw       $0x3,%xmm8,0x6(%r9,%rdi,2)
2902  DB  196,67,121,21,68,121,4,2            ; vpextrw       $0x2,%xmm8,0x4(%r9,%rdi,2)
2903  DB  196,67,121,21,68,121,2,1            ; vpextrw       $0x1,%xmm8,0x2(%r9,%rdi,2)
2904  DB  196,67,121,21,4,121,0               ; vpextrw       $0x0,%xmm8,(%r9,%rdi,2)
2905  DB  235,159                             ; jmp           2d3b <_sk_store_4444_hsw+0x6e>
2906  DB  247,255                             ; idiv          %edi
2907  DB  255                                 ; (bad)
2908  DB  255                                 ; (bad)
2909  DB  239                                 ; out           %eax,(%dx)
2910  DB  255                                 ; (bad)
2911  DB  255                                 ; (bad)
2912  DB  255,231                             ; jmpq          *%rdi
2913  DB  255                                 ; (bad)
2914  DB  255                                 ; (bad)
2915  DB  255                                 ; (bad)
2916  DB  223,255                             ; (bad)
2917  DB  255                                 ; (bad)
2918  DB  255,215                             ; callq         *%rdi
2919  DB  255                                 ; (bad)
2920  DB  255                                 ; (bad)
2921  DB  255,207                             ; dec           %edi
2922  DB  255                                 ; (bad)
2923  DB  255                                 ; (bad)
2924  DB  255,199                             ; inc           %edi
2925  DB  255                                 ; (bad)
2926  DB  255                                 ; (bad)
2927  DB  255                                 ; .byte         0xff
2928
2929PUBLIC _sk_load_8888_hsw
2930_sk_load_8888_hsw LABEL PROC
2931  DB  73,137,200                          ; mov           %rcx,%r8
2932  DB  72,173                              ; lods          %ds:(%rsi),%rax
2933  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
2934  DB  76,3,8                              ; add           (%rax),%r9
2935  DB  77,133,192                          ; test          %r8,%r8
2936  DB  117,104                             ; jne           2e35 <_sk_load_8888_hsw+0x7d>
2937  DB  196,193,126,111,25                  ; vmovdqu       (%r9),%ymm3
2938  DB  184,255,0,0,0                       ; mov           $0xff,%eax
2939  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2940  DB  196,226,125,88,208                  ; vpbroadcastd  %xmm0,%ymm2
2941  DB  197,237,219,195                     ; vpand         %ymm3,%ymm2,%ymm0
2942  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2943  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2944  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2945  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
2946  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
2947  DB  197,245,114,211,8                   ; vpsrld        $0x8,%ymm3,%ymm1
2948  DB  197,237,219,201                     ; vpand         %ymm1,%ymm2,%ymm1
2949  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2950  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
2951  DB  197,181,114,211,16                  ; vpsrld        $0x10,%ymm3,%ymm9
2952  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
2953  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
2954  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
2955  DB  197,229,114,211,24                  ; vpsrld        $0x18,%ymm3,%ymm3
2956  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
2957  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
2958  DB  72,173                              ; lods          %ds:(%rsi),%rax
2959  DB  76,137,193                          ; mov           %r8,%rcx
2960  DB  255,224                             ; jmpq          *%rax
2961  DB  185,8,0,0,0                         ; mov           $0x8,%ecx
2962  DB  68,41,193                           ; sub           %r8d,%ecx
2963  DB  192,225,3                           ; shl           $0x3,%cl
2964  DB  72,199,192,255,255,255,255          ; mov           $0xffffffffffffffff,%rax
2965  DB  72,211,232                          ; shr           %cl,%rax
2966  DB  196,225,249,110,192                 ; vmovq         %rax,%xmm0
2967  DB  196,226,125,33,192                  ; vpmovsxbd     %xmm0,%ymm0
2968  DB  196,194,125,140,25                  ; vpmaskmovd    (%r9),%ymm0,%ymm3
2969  DB  233,116,255,255,255                 ; jmpq          2dd2 <_sk_load_8888_hsw+0x1a>
2970
2971PUBLIC _sk_gather_8888_hsw
2972_sk_gather_8888_hsw LABEL PROC
2973  DB  72,173                              ; lods          %ds:(%rsi),%rax
2974  DB  76,139,0                            ; mov           (%rax),%r8
2975  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2976  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2977  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2978  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2979  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2980  DB  197,245,118,201                     ; vpcmpeqd      %ymm1,%ymm1,%ymm1
2981  DB  196,194,117,144,28,128              ; vpgatherdd    %ymm1,(%r8,%ymm0,4),%ymm3
2982  DB  184,255,0,0,0                       ; mov           $0xff,%eax
2983  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2984  DB  196,226,125,88,208                  ; vpbroadcastd  %xmm0,%ymm2
2985  DB  197,237,219,195                     ; vpand         %ymm3,%ymm2,%ymm0
2986  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2987  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2988  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2989  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
2990  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
2991  DB  197,245,114,211,8                   ; vpsrld        $0x8,%ymm3,%ymm1
2992  DB  197,237,219,201                     ; vpand         %ymm1,%ymm2,%ymm1
2993  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2994  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
2995  DB  197,181,114,211,16                  ; vpsrld        $0x10,%ymm3,%ymm9
2996  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
2997  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
2998  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
2999  DB  197,229,114,211,24                  ; vpsrld        $0x18,%ymm3,%ymm3
3000  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
3001  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
3002  DB  72,173                              ; lods          %ds:(%rsi),%rax
3003  DB  255,224                             ; jmpq          *%rax
3004
3005PUBLIC _sk_store_8888_hsw
3006_sk_store_8888_hsw LABEL PROC
3007  DB  73,137,200                          ; mov           %rcx,%r8
3008  DB  72,173                              ; lods          %ds:(%rsi),%rax
3009  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
3010  DB  76,3,8                              ; add           (%rax),%r9
3011  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
3012  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
3013  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3014  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
3015  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
3016  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
3017  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
3018  DB  196,193,45,114,242,8                ; vpslld        $0x8,%ymm10,%ymm10
3019  DB  196,65,45,235,201                   ; vpor          %ymm9,%ymm10,%ymm9
3020  DB  197,60,89,210                       ; vmulps        %ymm2,%ymm8,%ymm10
3021  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
3022  DB  196,193,45,114,242,16               ; vpslld        $0x10,%ymm10,%ymm10
3023  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
3024  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
3025  DB  196,193,61,114,240,24               ; vpslld        $0x18,%ymm8,%ymm8
3026  DB  196,65,45,235,192                   ; vpor          %ymm8,%ymm10,%ymm8
3027  DB  196,65,53,235,192                   ; vpor          %ymm8,%ymm9,%ymm8
3028  DB  77,133,192                          ; test          %r8,%r8
3029  DB  117,12                              ; jne           2f58 <_sk_store_8888_hsw+0x74>
3030  DB  196,65,126,127,1                    ; vmovdqu       %ymm8,(%r9)
3031  DB  72,173                              ; lods          %ds:(%rsi),%rax
3032  DB  76,137,193                          ; mov           %r8,%rcx
3033  DB  255,224                             ; jmpq          *%rax
3034  DB  185,8,0,0,0                         ; mov           $0x8,%ecx
3035  DB  68,41,193                           ; sub           %r8d,%ecx
3036  DB  192,225,3                           ; shl           $0x3,%cl
3037  DB  72,199,192,255,255,255,255          ; mov           $0xffffffffffffffff,%rax
3038  DB  72,211,232                          ; shr           %cl,%rax
3039  DB  196,97,249,110,200                  ; vmovq         %rax,%xmm9
3040  DB  196,66,125,33,201                   ; vpmovsxbd     %xmm9,%ymm9
3041  DB  196,66,53,142,1                     ; vpmaskmovd    %ymm8,%ymm9,(%r9)
3042  DB  235,211                             ; jmp           2f51 <_sk_store_8888_hsw+0x6d>
3043
3044PUBLIC _sk_load_f16_hsw
3045_sk_load_f16_hsw LABEL PROC
3046  DB  72,173                              ; lods          %ds:(%rsi),%rax
3047  DB  72,139,0                            ; mov           (%rax),%rax
3048  DB  72,133,201                          ; test          %rcx,%rcx
3049  DB  117,97                              ; jne           2fe9 <_sk_load_f16_hsw+0x6b>
3050  DB  197,121,16,4,248                    ; vmovupd       (%rax,%rdi,8),%xmm8
3051  DB  197,249,16,84,248,16                ; vmovupd       0x10(%rax,%rdi,8),%xmm2
3052  DB  197,249,16,92,248,32                ; vmovupd       0x20(%rax,%rdi,8),%xmm3
3053  DB  197,122,111,76,248,48               ; vmovdqu       0x30(%rax,%rdi,8),%xmm9
3054  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
3055  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
3056  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
3057  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
3058  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
3059  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
3060  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
3061  DB  197,241,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm3
3062  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
3063  DB  196,226,125,19,192                  ; vcvtph2ps     %xmm0,%ymm0
3064  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
3065  DB  196,226,125,19,201                  ; vcvtph2ps     %xmm1,%ymm1
3066  DB  197,177,108,211                     ; vpunpcklqdq   %xmm3,%xmm9,%xmm2
3067  DB  196,226,125,19,210                  ; vcvtph2ps     %xmm2,%ymm2
3068  DB  197,177,109,219                     ; vpunpckhqdq   %xmm3,%xmm9,%xmm3
3069  DB  196,226,125,19,219                  ; vcvtph2ps     %xmm3,%ymm3
3070  DB  72,173                              ; lods          %ds:(%rsi),%rax
3071  DB  255,224                             ; jmpq          *%rax
3072  DB  197,123,16,4,248                    ; vmovsd        (%rax,%rdi,8),%xmm8
3073  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
3074  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3075  DB  116,79                              ; je            3048 <_sk_load_f16_hsw+0xca>
3076  DB  197,57,22,68,248,8                  ; vmovhpd       0x8(%rax,%rdi,8),%xmm8,%xmm8
3077  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3078  DB  114,67                              ; jb            3048 <_sk_load_f16_hsw+0xca>
3079  DB  197,251,16,84,248,16                ; vmovsd        0x10(%rax,%rdi,8),%xmm2
3080  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3081  DB  116,68                              ; je            3055 <_sk_load_f16_hsw+0xd7>
3082  DB  197,233,22,84,248,24                ; vmovhpd       0x18(%rax,%rdi,8),%xmm2,%xmm2
3083  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3084  DB  114,56                              ; jb            3055 <_sk_load_f16_hsw+0xd7>
3085  DB  197,251,16,92,248,32                ; vmovsd        0x20(%rax,%rdi,8),%xmm3
3086  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3087  DB  15,132,114,255,255,255              ; je            2f9f <_sk_load_f16_hsw+0x21>
3088  DB  197,225,22,92,248,40                ; vmovhpd       0x28(%rax,%rdi,8),%xmm3,%xmm3
3089  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3090  DB  15,130,98,255,255,255               ; jb            2f9f <_sk_load_f16_hsw+0x21>
3091  DB  197,122,126,76,248,48               ; vmovq         0x30(%rax,%rdi,8),%xmm9
3092  DB  233,87,255,255,255                  ; jmpq          2f9f <_sk_load_f16_hsw+0x21>
3093  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
3094  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
3095  DB  233,74,255,255,255                  ; jmpq          2f9f <_sk_load_f16_hsw+0x21>
3096  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
3097  DB  233,65,255,255,255                  ; jmpq          2f9f <_sk_load_f16_hsw+0x21>
3098
3099PUBLIC _sk_gather_f16_hsw
3100_sk_gather_f16_hsw LABEL PROC
3101  DB  72,173                              ; lods          %ds:(%rsi),%rax
3102  DB  76,139,0                            ; mov           (%rax),%r8
3103  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
3104  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
3105  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
3106  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
3107  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
3108  DB  197,245,118,201                     ; vpcmpeqd      %ymm1,%ymm1,%ymm1
3109  DB  197,237,118,210                     ; vpcmpeqd      %ymm2,%ymm2,%ymm2
3110  DB  196,194,237,144,28,192              ; vpgatherdq    %ymm2,(%r8,%xmm0,8),%ymm3
3111  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
3112  DB  196,194,245,144,20,192              ; vpgatherdq    %ymm1,(%r8,%xmm0,8),%ymm2
3113  DB  196,227,125,57,216,1                ; vextracti128  $0x1,%ymm3,%xmm0
3114  DB  196,227,125,57,209,1                ; vextracti128  $0x1,%ymm2,%xmm1
3115  DB  197,97,97,192                       ; vpunpcklwd    %xmm0,%xmm3,%xmm8
3116  DB  197,225,105,192                     ; vpunpckhwd    %xmm0,%xmm3,%xmm0
3117  DB  197,233,97,217                      ; vpunpcklwd    %xmm1,%xmm2,%xmm3
3118  DB  197,233,105,201                     ; vpunpckhwd    %xmm1,%xmm2,%xmm1
3119  DB  197,57,97,200                       ; vpunpcklwd    %xmm0,%xmm8,%xmm9
3120  DB  197,57,105,192                      ; vpunpckhwd    %xmm0,%xmm8,%xmm8
3121  DB  197,225,97,209                      ; vpunpcklwd    %xmm1,%xmm3,%xmm2
3122  DB  197,225,105,217                     ; vpunpckhwd    %xmm1,%xmm3,%xmm3
3123  DB  197,177,108,194                     ; vpunpcklqdq   %xmm2,%xmm9,%xmm0
3124  DB  196,226,125,19,192                  ; vcvtph2ps     %xmm0,%ymm0
3125  DB  197,177,109,202                     ; vpunpckhqdq   %xmm2,%xmm9,%xmm1
3126  DB  196,226,125,19,201                  ; vcvtph2ps     %xmm1,%ymm1
3127  DB  197,185,108,211                     ; vpunpcklqdq   %xmm3,%xmm8,%xmm2
3128  DB  196,226,125,19,210                  ; vcvtph2ps     %xmm2,%ymm2
3129  DB  197,185,109,219                     ; vpunpckhqdq   %xmm3,%xmm8,%xmm3
3130  DB  196,226,125,19,219                  ; vcvtph2ps     %xmm3,%ymm3
3131  DB  72,173                              ; lods          %ds:(%rsi),%rax
3132  DB  255,224                             ; jmpq          *%rax
3133
3134PUBLIC _sk_store_f16_hsw
3135_sk_store_f16_hsw LABEL PROC
3136  DB  72,173                              ; lods          %ds:(%rsi),%rax
3137  DB  72,139,0                            ; mov           (%rax),%rax
3138  DB  196,195,125,29,192,4                ; vcvtps2ph     $0x4,%ymm0,%xmm8
3139  DB  196,195,125,29,201,4                ; vcvtps2ph     $0x4,%ymm1,%xmm9
3140  DB  196,195,125,29,210,4                ; vcvtps2ph     $0x4,%ymm2,%xmm10
3141  DB  196,195,125,29,219,4                ; vcvtps2ph     $0x4,%ymm3,%xmm11
3142  DB  196,65,57,97,225                    ; vpunpcklwd    %xmm9,%xmm8,%xmm12
3143  DB  196,65,57,105,193                   ; vpunpckhwd    %xmm9,%xmm8,%xmm8
3144  DB  196,65,41,97,203                    ; vpunpcklwd    %xmm11,%xmm10,%xmm9
3145  DB  196,65,41,105,235                   ; vpunpckhwd    %xmm11,%xmm10,%xmm13
3146  DB  196,65,25,98,217                    ; vpunpckldq    %xmm9,%xmm12,%xmm11
3147  DB  196,65,25,106,209                   ; vpunpckhdq    %xmm9,%xmm12,%xmm10
3148  DB  196,65,57,98,205                    ; vpunpckldq    %xmm13,%xmm8,%xmm9
3149  DB  196,65,57,106,197                   ; vpunpckhdq    %xmm13,%xmm8,%xmm8
3150  DB  72,133,201                          ; test          %rcx,%rcx
3151  DB  117,27                              ; jne           314d <_sk_store_f16_hsw+0x65>
3152  DB  197,120,17,28,248                   ; vmovups       %xmm11,(%rax,%rdi,8)
3153  DB  197,120,17,84,248,16                ; vmovups       %xmm10,0x10(%rax,%rdi,8)
3154  DB  197,120,17,76,248,32                ; vmovups       %xmm9,0x20(%rax,%rdi,8)
3155  DB  197,122,127,68,248,48               ; vmovdqu       %xmm8,0x30(%rax,%rdi,8)
3156  DB  72,173                              ; lods          %ds:(%rsi),%rax
3157  DB  255,224                             ; jmpq          *%rax
3158  DB  197,121,214,28,248                  ; vmovq         %xmm11,(%rax,%rdi,8)
3159  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3160  DB  116,241                             ; je            3149 <_sk_store_f16_hsw+0x61>
3161  DB  197,121,23,92,248,8                 ; vmovhpd       %xmm11,0x8(%rax,%rdi,8)
3162  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3163  DB  114,229                             ; jb            3149 <_sk_store_f16_hsw+0x61>
3164  DB  197,121,214,84,248,16               ; vmovq         %xmm10,0x10(%rax,%rdi,8)
3165  DB  116,221                             ; je            3149 <_sk_store_f16_hsw+0x61>
3166  DB  197,121,23,84,248,24                ; vmovhpd       %xmm10,0x18(%rax,%rdi,8)
3167  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3168  DB  114,209                             ; jb            3149 <_sk_store_f16_hsw+0x61>
3169  DB  197,121,214,76,248,32               ; vmovq         %xmm9,0x20(%rax,%rdi,8)
3170  DB  116,201                             ; je            3149 <_sk_store_f16_hsw+0x61>
3171  DB  197,121,23,76,248,40                ; vmovhpd       %xmm9,0x28(%rax,%rdi,8)
3172  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3173  DB  114,189                             ; jb            3149 <_sk_store_f16_hsw+0x61>
3174  DB  197,121,214,68,248,48               ; vmovq         %xmm8,0x30(%rax,%rdi,8)
3175  DB  235,181                             ; jmp           3149 <_sk_store_f16_hsw+0x61>
3176
3177PUBLIC _sk_load_u16_be_hsw
3178_sk_load_u16_be_hsw LABEL PROC
3179  DB  72,173                              ; lods          %ds:(%rsi),%rax
3180  DB  76,139,0                            ; mov           (%rax),%r8
3181  DB  72,141,4,189,0,0,0,0                ; lea           0x0(,%rdi,4),%rax
3182  DB  72,133,201                          ; test          %rcx,%rcx
3183  DB  15,133,205,0,0,0                    ; jne           3277 <_sk_load_u16_be_hsw+0xe3>
3184  DB  196,65,121,16,4,64                  ; vmovupd       (%r8,%rax,2),%xmm8
3185  DB  196,193,121,16,84,64,16             ; vmovupd       0x10(%r8,%rax,2),%xmm2
3186  DB  196,193,121,16,92,64,32             ; vmovupd       0x20(%r8,%rax,2),%xmm3
3187  DB  196,65,122,111,76,64,48             ; vmovdqu       0x30(%r8,%rax,2),%xmm9
3188  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
3189  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
3190  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
3191  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
3192  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
3193  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
3194  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
3195  DB  197,113,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm11
3196  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
3197  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3198  DB  196,98,125,88,208                   ; vpbroadcastd  %xmm0,%ymm10
3199  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
3200  DB  197,241,113,240,8                   ; vpsllw        $0x8,%xmm0,%xmm1
3201  DB  197,249,113,208,8                   ; vpsrlw        $0x8,%xmm0,%xmm0
3202  DB  197,241,235,192                     ; vpor          %xmm0,%xmm1,%xmm0
3203  DB  196,226,125,51,192                  ; vpmovzxwd     %xmm0,%ymm0
3204  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
3205  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
3206  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
3207  DB  197,233,113,241,8                   ; vpsllw        $0x8,%xmm1,%xmm2
3208  DB  197,241,113,209,8                   ; vpsrlw        $0x8,%xmm1,%xmm1
3209  DB  197,233,235,201                     ; vpor          %xmm1,%xmm2,%xmm1
3210  DB  196,226,125,51,201                  ; vpmovzxwd     %xmm1,%ymm1
3211  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
3212  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
3213  DB  196,193,49,108,211                  ; vpunpcklqdq   %xmm11,%xmm9,%xmm2
3214  DB  197,225,113,242,8                   ; vpsllw        $0x8,%xmm2,%xmm3
3215  DB  197,233,113,210,8                   ; vpsrlw        $0x8,%xmm2,%xmm2
3216  DB  197,225,235,210                     ; vpor          %xmm2,%xmm3,%xmm2
3217  DB  196,226,125,51,210                  ; vpmovzxwd     %xmm2,%ymm2
3218  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
3219  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
3220  DB  196,193,49,109,219                  ; vpunpckhqdq   %xmm11,%xmm9,%xmm3
3221  DB  197,185,113,243,8                   ; vpsllw        $0x8,%xmm3,%xmm8
3222  DB  197,225,113,211,8                   ; vpsrlw        $0x8,%xmm3,%xmm3
3223  DB  197,185,235,219                     ; vpor          %xmm3,%xmm8,%xmm3
3224  DB  196,226,125,51,219                  ; vpmovzxwd     %xmm3,%ymm3
3225  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
3226  DB  197,172,89,219                      ; vmulps        %ymm3,%ymm10,%ymm3
3227  DB  72,173                              ; lods          %ds:(%rsi),%rax
3228  DB  255,224                             ; jmpq          *%rax
3229  DB  196,65,123,16,4,64                  ; vmovsd        (%r8,%rax,2),%xmm8
3230  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
3231  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3232  DB  116,85                              ; je            32dd <_sk_load_u16_be_hsw+0x149>
3233  DB  196,65,57,22,68,64,8                ; vmovhpd       0x8(%r8,%rax,2),%xmm8,%xmm8
3234  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3235  DB  114,72                              ; jb            32dd <_sk_load_u16_be_hsw+0x149>
3236  DB  196,193,123,16,84,64,16             ; vmovsd        0x10(%r8,%rax,2),%xmm2
3237  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3238  DB  116,72                              ; je            32ea <_sk_load_u16_be_hsw+0x156>
3239  DB  196,193,105,22,84,64,24             ; vmovhpd       0x18(%r8,%rax,2),%xmm2,%xmm2
3240  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3241  DB  114,59                              ; jb            32ea <_sk_load_u16_be_hsw+0x156>
3242  DB  196,193,123,16,92,64,32             ; vmovsd        0x20(%r8,%rax,2),%xmm3
3243  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3244  DB  15,132,5,255,255,255                ; je            31c5 <_sk_load_u16_be_hsw+0x31>
3245  DB  196,193,97,22,92,64,40              ; vmovhpd       0x28(%r8,%rax,2),%xmm3,%xmm3
3246  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3247  DB  15,130,244,254,255,255              ; jb            31c5 <_sk_load_u16_be_hsw+0x31>
3248  DB  196,65,122,126,76,64,48             ; vmovq         0x30(%r8,%rax,2),%xmm9
3249  DB  233,232,254,255,255                 ; jmpq          31c5 <_sk_load_u16_be_hsw+0x31>
3250  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
3251  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
3252  DB  233,219,254,255,255                 ; jmpq          31c5 <_sk_load_u16_be_hsw+0x31>
3253  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
3254  DB  233,210,254,255,255                 ; jmpq          31c5 <_sk_load_u16_be_hsw+0x31>
3255
3256PUBLIC _sk_load_rgb_u16_be_hsw
3257_sk_load_rgb_u16_be_hsw LABEL PROC
3258  DB  72,173                              ; lods          %ds:(%rsi),%rax
3259  DB  76,139,0                            ; mov           (%rax),%r8
3260  DB  72,141,4,127                        ; lea           (%rdi,%rdi,2),%rax
3261  DB  72,133,201                          ; test          %rcx,%rcx
3262  DB  15,133,211,0,0,0                    ; jne           33d8 <_sk_load_rgb_u16_be_hsw+0xe5>
3263  DB  196,193,122,111,4,64                ; vmovdqu       (%r8,%rax,2),%xmm0
3264  DB  196,193,122,111,84,64,12            ; vmovdqu       0xc(%r8,%rax,2),%xmm2
3265  DB  196,193,122,111,76,64,24            ; vmovdqu       0x18(%r8,%rax,2),%xmm1
3266  DB  196,193,122,111,92,64,32            ; vmovdqu       0x20(%r8,%rax,2),%xmm3
3267  DB  197,225,115,219,4                   ; vpsrldq       $0x4,%xmm3,%xmm3
3268  DB  197,185,115,216,6                   ; vpsrldq       $0x6,%xmm0,%xmm8
3269  DB  197,177,115,218,6                   ; vpsrldq       $0x6,%xmm2,%xmm9
3270  DB  197,161,115,217,6                   ; vpsrldq       $0x6,%xmm1,%xmm11
3271  DB  197,169,115,219,6                   ; vpsrldq       $0x6,%xmm3,%xmm10
3272  DB  197,249,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm0
3273  DB  196,193,57,97,209                   ; vpunpcklwd    %xmm9,%xmm8,%xmm2
3274  DB  197,241,97,203                      ; vpunpcklwd    %xmm3,%xmm1,%xmm1
3275  DB  196,193,33,97,218                   ; vpunpcklwd    %xmm10,%xmm11,%xmm3
3276  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
3277  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
3278  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
3279  DB  197,241,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm3
3280  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
3281  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3282  DB  196,98,125,88,208                   ; vpbroadcastd  %xmm0,%ymm10
3283  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
3284  DB  197,241,113,240,8                   ; vpsllw        $0x8,%xmm0,%xmm1
3285  DB  197,249,113,208,8                   ; vpsrlw        $0x8,%xmm0,%xmm0
3286  DB  197,241,235,192                     ; vpor          %xmm0,%xmm1,%xmm0
3287  DB  196,226,125,51,192                  ; vpmovzxwd     %xmm0,%ymm0
3288  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
3289  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
3290  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
3291  DB  197,233,113,241,8                   ; vpsllw        $0x8,%xmm1,%xmm2
3292  DB  197,241,113,209,8                   ; vpsrlw        $0x8,%xmm1,%xmm1
3293  DB  197,233,235,201                     ; vpor          %xmm1,%xmm2,%xmm1
3294  DB  196,226,125,51,201                  ; vpmovzxwd     %xmm1,%ymm1
3295  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
3296  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
3297  DB  197,177,108,211                     ; vpunpcklqdq   %xmm3,%xmm9,%xmm2
3298  DB  197,225,113,242,8                   ; vpsllw        $0x8,%xmm2,%xmm3
3299  DB  197,233,113,210,8                   ; vpsrlw        $0x8,%xmm2,%xmm2
3300  DB  197,225,235,210                     ; vpor          %xmm2,%xmm3,%xmm2
3301  DB  196,226,125,51,210                  ; vpmovzxwd     %xmm2,%ymm2
3302  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
3303  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
3304  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
3305  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
3306  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
3307  DB  72,173                              ; lods          %ds:(%rsi),%rax
3308  DB  255,224                             ; jmpq          *%rax
3309  DB  196,193,121,110,4,64                ; vmovd         (%r8,%rax,2),%xmm0
3310  DB  196,193,121,196,68,64,4,2           ; vpinsrw       $0x2,0x4(%r8,%rax,2),%xmm0,%xmm0
3311  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3312  DB  117,5                               ; jne           33f1 <_sk_load_rgb_u16_be_hsw+0xfe>
3313  DB  233,72,255,255,255                  ; jmpq          3339 <_sk_load_rgb_u16_be_hsw+0x46>
3314  DB  196,193,121,110,76,64,6             ; vmovd         0x6(%r8,%rax,2),%xmm1
3315  DB  196,65,113,196,68,64,10,2           ; vpinsrw       $0x2,0xa(%r8,%rax,2),%xmm1,%xmm8
3316  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3317  DB  114,26                              ; jb            3420 <_sk_load_rgb_u16_be_hsw+0x12d>
3318  DB  196,193,121,110,76,64,12            ; vmovd         0xc(%r8,%rax,2),%xmm1
3319  DB  196,193,113,196,84,64,16,2          ; vpinsrw       $0x2,0x10(%r8,%rax,2),%xmm1,%xmm2
3320  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3321  DB  117,10                              ; jne           3425 <_sk_load_rgb_u16_be_hsw+0x132>
3322  DB  233,25,255,255,255                  ; jmpq          3339 <_sk_load_rgb_u16_be_hsw+0x46>
3323  DB  233,20,255,255,255                  ; jmpq          3339 <_sk_load_rgb_u16_be_hsw+0x46>
3324  DB  196,193,121,110,76,64,18            ; vmovd         0x12(%r8,%rax,2),%xmm1
3325  DB  196,65,113,196,76,64,22,2           ; vpinsrw       $0x2,0x16(%r8,%rax,2),%xmm1,%xmm9
3326  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3327  DB  114,26                              ; jb            3454 <_sk_load_rgb_u16_be_hsw+0x161>
3328  DB  196,193,121,110,76,64,24            ; vmovd         0x18(%r8,%rax,2),%xmm1
3329  DB  196,193,113,196,76,64,28,2          ; vpinsrw       $0x2,0x1c(%r8,%rax,2),%xmm1,%xmm1
3330  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3331  DB  117,10                              ; jne           3459 <_sk_load_rgb_u16_be_hsw+0x166>
3332  DB  233,229,254,255,255                 ; jmpq          3339 <_sk_load_rgb_u16_be_hsw+0x46>
3333  DB  233,224,254,255,255                 ; jmpq          3339 <_sk_load_rgb_u16_be_hsw+0x46>
3334  DB  196,193,121,110,92,64,30            ; vmovd         0x1e(%r8,%rax,2),%xmm3
3335  DB  196,65,97,196,92,64,34,2            ; vpinsrw       $0x2,0x22(%r8,%rax,2),%xmm3,%xmm11
3336  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3337  DB  114,20                              ; jb            3482 <_sk_load_rgb_u16_be_hsw+0x18f>
3338  DB  196,193,121,110,92,64,36            ; vmovd         0x24(%r8,%rax,2),%xmm3
3339  DB  196,193,97,196,92,64,40,2           ; vpinsrw       $0x2,0x28(%r8,%rax,2),%xmm3,%xmm3
3340  DB  233,183,254,255,255                 ; jmpq          3339 <_sk_load_rgb_u16_be_hsw+0x46>
3341  DB  233,178,254,255,255                 ; jmpq          3339 <_sk_load_rgb_u16_be_hsw+0x46>
3342
3343PUBLIC _sk_store_u16_be_hsw
3344_sk_store_u16_be_hsw LABEL PROC
3345  DB  72,173                              ; lods          %ds:(%rsi),%rax
3346  DB  76,139,0                            ; mov           (%rax),%r8
3347  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
3348  DB  184,0,255,127,71                    ; mov           $0x477fff00,%eax
3349  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
3350  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3351  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
3352  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
3353  DB  196,67,125,25,202,1                 ; vextractf128  $0x1,%ymm9,%xmm10
3354  DB  196,66,49,43,202                    ; vpackusdw     %xmm10,%xmm9,%xmm9
3355  DB  196,193,41,113,241,8                ; vpsllw        $0x8,%xmm9,%xmm10
3356  DB  196,193,49,113,209,8                ; vpsrlw        $0x8,%xmm9,%xmm9
3357  DB  196,65,41,235,201                   ; vpor          %xmm9,%xmm10,%xmm9
3358  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
3359  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
3360  DB  196,67,125,25,211,1                 ; vextractf128  $0x1,%ymm10,%xmm11
3361  DB  196,66,41,43,211                    ; vpackusdw     %xmm11,%xmm10,%xmm10
3362  DB  196,193,33,113,242,8                ; vpsllw        $0x8,%xmm10,%xmm11
3363  DB  196,193,41,113,210,8                ; vpsrlw        $0x8,%xmm10,%xmm10
3364  DB  196,65,33,235,210                   ; vpor          %xmm10,%xmm11,%xmm10
3365  DB  197,60,89,218                       ; vmulps        %ymm2,%ymm8,%ymm11
3366  DB  196,65,125,91,219                   ; vcvtps2dq     %ymm11,%ymm11
3367  DB  196,67,125,25,220,1                 ; vextractf128  $0x1,%ymm11,%xmm12
3368  DB  196,66,33,43,220                    ; vpackusdw     %xmm12,%xmm11,%xmm11
3369  DB  196,193,25,113,243,8                ; vpsllw        $0x8,%xmm11,%xmm12
3370  DB  196,193,33,113,211,8                ; vpsrlw        $0x8,%xmm11,%xmm11
3371  DB  196,65,25,235,219                   ; vpor          %xmm11,%xmm12,%xmm11
3372  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
3373  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
3374  DB  196,67,125,25,196,1                 ; vextractf128  $0x1,%ymm8,%xmm12
3375  DB  196,66,57,43,196                    ; vpackusdw     %xmm12,%xmm8,%xmm8
3376  DB  196,193,25,113,240,8                ; vpsllw        $0x8,%xmm8,%xmm12
3377  DB  196,193,57,113,208,8                ; vpsrlw        $0x8,%xmm8,%xmm8
3378  DB  196,65,25,235,192                   ; vpor          %xmm8,%xmm12,%xmm8
3379  DB  196,65,49,97,226                    ; vpunpcklwd    %xmm10,%xmm9,%xmm12
3380  DB  196,65,49,105,234                   ; vpunpckhwd    %xmm10,%xmm9,%xmm13
3381  DB  196,65,33,97,200                    ; vpunpcklwd    %xmm8,%xmm11,%xmm9
3382  DB  196,65,33,105,192                   ; vpunpckhwd    %xmm8,%xmm11,%xmm8
3383  DB  196,65,25,98,217                    ; vpunpckldq    %xmm9,%xmm12,%xmm11
3384  DB  196,65,25,106,209                   ; vpunpckhdq    %xmm9,%xmm12,%xmm10
3385  DB  196,65,17,98,200                    ; vpunpckldq    %xmm8,%xmm13,%xmm9
3386  DB  196,65,17,106,192                   ; vpunpckhdq    %xmm8,%xmm13,%xmm8
3387  DB  72,133,201                          ; test          %rcx,%rcx
3388  DB  117,31                              ; jne           3582 <_sk_store_u16_be_hsw+0xfb>
3389  DB  196,1,120,17,28,72                  ; vmovups       %xmm11,(%r8,%r9,2)
3390  DB  196,1,120,17,84,72,16               ; vmovups       %xmm10,0x10(%r8,%r9,2)
3391  DB  196,1,120,17,76,72,32               ; vmovups       %xmm9,0x20(%r8,%r9,2)
3392  DB  196,1,122,127,68,72,48              ; vmovdqu       %xmm8,0x30(%r8,%r9,2)
3393  DB  72,173                              ; lods          %ds:(%rsi),%rax
3394  DB  255,224                             ; jmpq          *%rax
3395  DB  196,1,121,214,28,72                 ; vmovq         %xmm11,(%r8,%r9,2)
3396  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3397  DB  116,240                             ; je            357e <_sk_store_u16_be_hsw+0xf7>
3398  DB  196,1,121,23,92,72,8                ; vmovhpd       %xmm11,0x8(%r8,%r9,2)
3399  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3400  DB  114,227                             ; jb            357e <_sk_store_u16_be_hsw+0xf7>
3401  DB  196,1,121,214,84,72,16              ; vmovq         %xmm10,0x10(%r8,%r9,2)
3402  DB  116,218                             ; je            357e <_sk_store_u16_be_hsw+0xf7>
3403  DB  196,1,121,23,84,72,24               ; vmovhpd       %xmm10,0x18(%r8,%r9,2)
3404  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3405  DB  114,205                             ; jb            357e <_sk_store_u16_be_hsw+0xf7>
3406  DB  196,1,121,214,76,72,32              ; vmovq         %xmm9,0x20(%r8,%r9,2)
3407  DB  116,196                             ; je            357e <_sk_store_u16_be_hsw+0xf7>
3408  DB  196,1,121,23,76,72,40               ; vmovhpd       %xmm9,0x28(%r8,%r9,2)
3409  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3410  DB  114,183                             ; jb            357e <_sk_store_u16_be_hsw+0xf7>
3411  DB  196,1,121,214,68,72,48              ; vmovq         %xmm8,0x30(%r8,%r9,2)
3412  DB  235,174                             ; jmp           357e <_sk_store_u16_be_hsw+0xf7>
3413
3414PUBLIC _sk_load_f32_hsw
3415_sk_load_f32_hsw LABEL PROC
3416  DB  72,173                              ; lods          %ds:(%rsi),%rax
3417  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3418  DB  119,110                             ; ja            3646 <_sk_load_f32_hsw+0x76>
3419  DB  76,139,0                            ; mov           (%rax),%r8
3420  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
3421  DB  76,141,21,134,0,0,0                 ; lea           0x86(%rip),%r10        # 3670 <_sk_load_f32_hsw+0xa0>
3422  DB  73,99,4,138                         ; movslq        (%r10,%rcx,4),%rax
3423  DB  76,1,208                            ; add           %r10,%rax
3424  DB  255,224                             ; jmpq          *%rax
3425  DB  196,3,125,24,68,136,112,1           ; vinsertf128   $0x1,0x70(%r8,%r9,4),%ymm0,%ymm8
3426  DB  196,131,125,24,92,136,96,1          ; vinsertf128   $0x1,0x60(%r8,%r9,4),%ymm0,%ymm3
3427  DB  196,131,125,24,76,136,80,1          ; vinsertf128   $0x1,0x50(%r8,%r9,4),%ymm0,%ymm1
3428  DB  196,131,125,24,84,136,64,1          ; vinsertf128   $0x1,0x40(%r8,%r9,4),%ymm0,%ymm2
3429  DB  196,129,121,16,68,136,48            ; vmovupd       0x30(%r8,%r9,4),%xmm0
3430  DB  196,195,125,13,192,12               ; vblendpd      $0xc,%ymm8,%ymm0,%ymm0
3431  DB  196,1,121,16,68,136,32              ; vmovupd       0x20(%r8,%r9,4),%xmm8
3432  DB  196,99,61,13,203,12                 ; vblendpd      $0xc,%ymm3,%ymm8,%ymm9
3433  DB  196,129,121,16,92,136,16            ; vmovupd       0x10(%r8,%r9,4),%xmm3
3434  DB  196,99,101,13,209,12                ; vblendpd      $0xc,%ymm1,%ymm3,%ymm10
3435  DB  196,129,121,16,12,136               ; vmovupd       (%r8,%r9,4),%xmm1
3436  DB  196,227,117,13,202,12               ; vblendpd      $0xc,%ymm2,%ymm1,%ymm1
3437  DB  196,193,116,20,210                  ; vunpcklps     %ymm10,%ymm1,%ymm2
3438  DB  196,193,116,21,218                  ; vunpckhps     %ymm10,%ymm1,%ymm3
3439  DB  197,180,20,200                      ; vunpcklps     %ymm0,%ymm9,%ymm1
3440  DB  197,52,21,192                       ; vunpckhps     %ymm0,%ymm9,%ymm8
3441  DB  197,237,20,193                      ; vunpcklpd     %ymm1,%ymm2,%ymm0
3442  DB  197,237,21,201                      ; vunpckhpd     %ymm1,%ymm2,%ymm1
3443  DB  196,193,101,20,208                  ; vunpcklpd     %ymm8,%ymm3,%ymm2
3444  DB  196,193,101,21,216                  ; vunpckhpd     %ymm8,%ymm3,%ymm3
3445  DB  72,173                              ; lods          %ds:(%rsi),%rax
3446  DB  255,224                             ; jmpq          *%rax
3447  DB  102,144                             ; xchg          %ax,%ax
3448  DB  131,255,255                         ; cmp           $0xffffffff,%edi
3449  DB  255,202                             ; dec           %edx
3450  DB  255                                 ; (bad)
3451  DB  255                                 ; (bad)
3452  DB  255                                 ; (bad)
3453  DB  189,255,255,255,176                 ; mov           $0xb0ffffff,%ebp
3454  DB  255                                 ; (bad)
3455  DB  255                                 ; (bad)
3456  DB  255,163,255,255,255,155             ; jmpq          *-0x64000001(%rbx)
3457  DB  255                                 ; (bad)
3458  DB  255                                 ; (bad)
3459  DB  255,147,255,255,255,139             ; callq         *-0x74000001(%rbx)
3460  DB  255                                 ; (bad)
3461  DB  255                                 ; (bad)
3462  DB  255                                 ; .byte         0xff
3463
3464PUBLIC _sk_store_f32_hsw
3465_sk_store_f32_hsw LABEL PROC
3466  DB  72,173                              ; lods          %ds:(%rsi),%rax
3467  DB  76,139,0                            ; mov           (%rax),%r8
3468  DB  72,141,4,189,0,0,0,0                ; lea           0x0(,%rdi,4),%rax
3469  DB  197,124,20,193                      ; vunpcklps     %ymm1,%ymm0,%ymm8
3470  DB  197,124,21,217                      ; vunpckhps     %ymm1,%ymm0,%ymm11
3471  DB  197,108,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm9
3472  DB  197,108,21,227                      ; vunpckhps     %ymm3,%ymm2,%ymm12
3473  DB  196,65,61,20,209                    ; vunpcklpd     %ymm9,%ymm8,%ymm10
3474  DB  196,65,61,21,201                    ; vunpckhpd     %ymm9,%ymm8,%ymm9
3475  DB  196,65,37,20,196                    ; vunpcklpd     %ymm12,%ymm11,%ymm8
3476  DB  196,65,37,21,220                    ; vunpckhpd     %ymm12,%ymm11,%ymm11
3477  DB  72,133,201                          ; test          %rcx,%rcx
3478  DB  117,55                              ; jne           36fd <_sk_store_f32_hsw+0x6d>
3479  DB  196,67,45,24,225,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm12
3480  DB  196,67,61,24,235,1                  ; vinsertf128   $0x1,%xmm11,%ymm8,%ymm13
3481  DB  196,67,45,6,201,49                  ; vperm2f128    $0x31,%ymm9,%ymm10,%ymm9
3482  DB  196,67,61,6,195,49                  ; vperm2f128    $0x31,%ymm11,%ymm8,%ymm8
3483  DB  196,65,125,17,36,128                ; vmovupd       %ymm12,(%r8,%rax,4)
3484  DB  196,65,125,17,108,128,32            ; vmovupd       %ymm13,0x20(%r8,%rax,4)
3485  DB  196,65,125,17,76,128,64             ; vmovupd       %ymm9,0x40(%r8,%rax,4)
3486  DB  196,65,125,17,68,128,96             ; vmovupd       %ymm8,0x60(%r8,%rax,4)
3487  DB  72,173                              ; lods          %ds:(%rsi),%rax
3488  DB  255,224                             ; jmpq          *%rax
3489  DB  196,65,121,17,20,128                ; vmovupd       %xmm10,(%r8,%rax,4)
3490  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3491  DB  116,240                             ; je            36f9 <_sk_store_f32_hsw+0x69>
3492  DB  196,65,121,17,76,128,16             ; vmovupd       %xmm9,0x10(%r8,%rax,4)
3493  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3494  DB  114,227                             ; jb            36f9 <_sk_store_f32_hsw+0x69>
3495  DB  196,65,121,17,68,128,32             ; vmovupd       %xmm8,0x20(%r8,%rax,4)
3496  DB  116,218                             ; je            36f9 <_sk_store_f32_hsw+0x69>
3497  DB  196,65,121,17,92,128,48             ; vmovupd       %xmm11,0x30(%r8,%rax,4)
3498  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3499  DB  114,205                             ; jb            36f9 <_sk_store_f32_hsw+0x69>
3500  DB  196,67,125,25,84,128,64,1           ; vextractf128  $0x1,%ymm10,0x40(%r8,%rax,4)
3501  DB  116,195                             ; je            36f9 <_sk_store_f32_hsw+0x69>
3502  DB  196,67,125,25,76,128,80,1           ; vextractf128  $0x1,%ymm9,0x50(%r8,%rax,4)
3503  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3504  DB  114,181                             ; jb            36f9 <_sk_store_f32_hsw+0x69>
3505  DB  196,67,125,25,68,128,96,1           ; vextractf128  $0x1,%ymm8,0x60(%r8,%rax,4)
3506  DB  235,171                             ; jmp           36f9 <_sk_store_f32_hsw+0x69>
3507
3508PUBLIC _sk_clamp_x_hsw
3509_sk_clamp_x_hsw LABEL PROC
3510  DB  72,173                              ; lods          %ds:(%rsi),%rax
3511  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
3512  DB  197,188,95,192                      ; vmaxps        %ymm0,%ymm8,%ymm0
3513  DB  196,98,125,88,0                     ; vpbroadcastd  (%rax),%ymm8
3514  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
3515  DB  196,65,61,254,193                   ; vpaddd        %ymm9,%ymm8,%ymm8
3516  DB  196,193,124,93,192                  ; vminps        %ymm8,%ymm0,%ymm0
3517  DB  72,173                              ; lods          %ds:(%rsi),%rax
3518  DB  255,224                             ; jmpq          *%rax
3519
3520PUBLIC _sk_clamp_y_hsw
3521_sk_clamp_y_hsw LABEL PROC
3522  DB  72,173                              ; lods          %ds:(%rsi),%rax
3523  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
3524  DB  197,188,95,201                      ; vmaxps        %ymm1,%ymm8,%ymm1
3525  DB  196,98,125,88,0                     ; vpbroadcastd  (%rax),%ymm8
3526  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
3527  DB  196,65,61,254,193                   ; vpaddd        %ymm9,%ymm8,%ymm8
3528  DB  196,193,116,93,200                  ; vminps        %ymm8,%ymm1,%ymm1
3529  DB  72,173                              ; lods          %ds:(%rsi),%rax
3530  DB  255,224                             ; jmpq          *%rax
3531
3532PUBLIC _sk_repeat_x_hsw
3533_sk_repeat_x_hsw LABEL PROC
3534  DB  72,173                              ; lods          %ds:(%rsi),%rax
3535  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
3536  DB  196,65,124,94,200                   ; vdivps        %ymm8,%ymm0,%ymm9
3537  DB  196,67,125,8,201,1                  ; vroundps      $0x1,%ymm9,%ymm9
3538  DB  196,98,61,172,200                   ; vfnmadd213ps  %ymm0,%ymm8,%ymm9
3539  DB  197,253,118,192                     ; vpcmpeqd      %ymm0,%ymm0,%ymm0
3540  DB  197,189,254,192                     ; vpaddd        %ymm0,%ymm8,%ymm0
3541  DB  197,180,93,192                      ; vminps        %ymm0,%ymm9,%ymm0
3542  DB  72,173                              ; lods          %ds:(%rsi),%rax
3543  DB  255,224                             ; jmpq          *%rax
3544
3545PUBLIC _sk_repeat_y_hsw
3546_sk_repeat_y_hsw LABEL PROC
3547  DB  72,173                              ; lods          %ds:(%rsi),%rax
3548  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
3549  DB  196,65,116,94,200                   ; vdivps        %ymm8,%ymm1,%ymm9
3550  DB  196,67,125,8,201,1                  ; vroundps      $0x1,%ymm9,%ymm9
3551  DB  196,98,61,172,201                   ; vfnmadd213ps  %ymm1,%ymm8,%ymm9
3552  DB  197,245,118,201                     ; vpcmpeqd      %ymm1,%ymm1,%ymm1
3553  DB  197,189,254,201                     ; vpaddd        %ymm1,%ymm8,%ymm1
3554  DB  197,180,93,201                      ; vminps        %ymm1,%ymm9,%ymm1
3555  DB  72,173                              ; lods          %ds:(%rsi),%rax
3556  DB  255,224                             ; jmpq          *%rax
3557
3558PUBLIC _sk_mirror_x_hsw
3559_sk_mirror_x_hsw LABEL PROC
3560  DB  72,173                              ; lods          %ds:(%rsi),%rax
3561  DB  197,122,16,0                        ; vmovss        (%rax),%xmm8
3562  DB  196,66,125,24,200                   ; vbroadcastss  %xmm8,%ymm9
3563  DB  196,65,124,92,209                   ; vsubps        %ymm9,%ymm0,%ymm10
3564  DB  196,193,58,88,192                   ; vaddss        %xmm8,%xmm8,%xmm0
3565  DB  196,226,125,24,192                  ; vbroadcastss  %xmm0,%ymm0
3566  DB  197,44,94,192                       ; vdivps        %ymm0,%ymm10,%ymm8
3567  DB  196,67,125,8,192,1                  ; vroundps      $0x1,%ymm8,%ymm8
3568  DB  196,66,125,172,194                  ; vfnmadd213ps  %ymm10,%ymm0,%ymm8
3569  DB  196,193,60,92,193                   ; vsubps        %ymm9,%ymm8,%ymm0
3570  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
3571  DB  197,60,92,192                       ; vsubps        %ymm0,%ymm8,%ymm8
3572  DB  197,188,84,192                      ; vandps        %ymm0,%ymm8,%ymm0
3573  DB  196,65,61,118,192                   ; vpcmpeqd      %ymm8,%ymm8,%ymm8
3574  DB  196,65,53,254,192                   ; vpaddd        %ymm8,%ymm9,%ymm8
3575  DB  196,193,124,93,192                  ; vminps        %ymm8,%ymm0,%ymm0
3576  DB  72,173                              ; lods          %ds:(%rsi),%rax
3577  DB  255,224                             ; jmpq          *%rax
3578
3579PUBLIC _sk_mirror_y_hsw
3580_sk_mirror_y_hsw LABEL PROC
3581  DB  72,173                              ; lods          %ds:(%rsi),%rax
3582  DB  197,122,16,0                        ; vmovss        (%rax),%xmm8
3583  DB  196,66,125,24,200                   ; vbroadcastss  %xmm8,%ymm9
3584  DB  196,65,116,92,209                   ; vsubps        %ymm9,%ymm1,%ymm10
3585  DB  196,193,58,88,200                   ; vaddss        %xmm8,%xmm8,%xmm1
3586  DB  196,226,125,24,201                  ; vbroadcastss  %xmm1,%ymm1
3587  DB  197,44,94,193                       ; vdivps        %ymm1,%ymm10,%ymm8
3588  DB  196,67,125,8,192,1                  ; vroundps      $0x1,%ymm8,%ymm8
3589  DB  196,66,117,172,194                  ; vfnmadd213ps  %ymm10,%ymm1,%ymm8
3590  DB  196,193,60,92,201                   ; vsubps        %ymm9,%ymm8,%ymm1
3591  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
3592  DB  197,60,92,193                       ; vsubps        %ymm1,%ymm8,%ymm8
3593  DB  197,188,84,201                      ; vandps        %ymm1,%ymm8,%ymm1
3594  DB  196,65,61,118,192                   ; vpcmpeqd      %ymm8,%ymm8,%ymm8
3595  DB  196,65,53,254,192                   ; vpaddd        %ymm8,%ymm9,%ymm8
3596  DB  196,193,116,93,200                  ; vminps        %ymm8,%ymm1,%ymm1
3597  DB  72,173                              ; lods          %ds:(%rsi),%rax
3598  DB  255,224                             ; jmpq          *%rax
3599
3600PUBLIC _sk_luminance_to_alpha_hsw
3601_sk_luminance_to_alpha_hsw LABEL PROC
3602  DB  184,208,179,89,62                   ; mov           $0x3e59b3d0,%eax
3603  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
3604  DB  196,98,125,88,195                   ; vpbroadcastd  %xmm3,%ymm8
3605  DB  184,89,23,55,63                     ; mov           $0x3f371759,%eax
3606  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
3607  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
3608  DB  197,228,89,201                      ; vmulps        %ymm1,%ymm3,%ymm1
3609  DB  196,98,125,168,193                  ; vfmadd213ps   %ymm1,%ymm0,%ymm8
3610  DB  184,152,221,147,61                  ; mov           $0x3d93dd98,%eax
3611  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3612  DB  196,226,125,88,216                  ; vpbroadcastd  %xmm0,%ymm3
3613  DB  196,194,109,168,216                 ; vfmadd213ps   %ymm8,%ymm2,%ymm3
3614  DB  72,173                              ; lods          %ds:(%rsi),%rax
3615  DB  197,253,239,192                     ; vpxor         %ymm0,%ymm0,%ymm0
3616  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
3617  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
3618  DB  255,224                             ; jmpq          *%rax
3619
3620PUBLIC _sk_matrix_2x3_hsw
3621_sk_matrix_2x3_hsw LABEL PROC
3622  DB  72,173                              ; lods          %ds:(%rsi),%rax
3623  DB  196,98,125,24,8                     ; vbroadcastss  (%rax),%ymm9
3624  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
3625  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
3626  DB  196,66,117,184,194                  ; vfmadd231ps   %ymm10,%ymm1,%ymm8
3627  DB  196,66,125,184,193                  ; vfmadd231ps   %ymm9,%ymm0,%ymm8
3628  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
3629  DB  196,98,125,24,88,12                 ; vbroadcastss  0xc(%rax),%ymm11
3630  DB  196,98,125,24,72,20                 ; vbroadcastss  0x14(%rax),%ymm9
3631  DB  196,66,117,184,203                  ; vfmadd231ps   %ymm11,%ymm1,%ymm9
3632  DB  196,66,125,184,202                  ; vfmadd231ps   %ymm10,%ymm0,%ymm9
3633  DB  72,173                              ; lods          %ds:(%rsi),%rax
3634  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3635  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
3636  DB  255,224                             ; jmpq          *%rax
3637
3638PUBLIC _sk_matrix_3x4_hsw
3639_sk_matrix_3x4_hsw LABEL PROC
3640  DB  72,173                              ; lods          %ds:(%rsi),%rax
3641  DB  196,98,125,24,8                     ; vbroadcastss  (%rax),%ymm9
3642  DB  196,98,125,24,80,12                 ; vbroadcastss  0xc(%rax),%ymm10
3643  DB  196,98,125,24,88,24                 ; vbroadcastss  0x18(%rax),%ymm11
3644  DB  196,98,125,24,64,36                 ; vbroadcastss  0x24(%rax),%ymm8
3645  DB  196,66,109,184,195                  ; vfmadd231ps   %ymm11,%ymm2,%ymm8
3646  DB  196,66,117,184,194                  ; vfmadd231ps   %ymm10,%ymm1,%ymm8
3647  DB  196,66,125,184,193                  ; vfmadd231ps   %ymm9,%ymm0,%ymm8
3648  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
3649  DB  196,98,125,24,88,16                 ; vbroadcastss  0x10(%rax),%ymm11
3650  DB  196,98,125,24,96,28                 ; vbroadcastss  0x1c(%rax),%ymm12
3651  DB  196,98,125,24,72,40                 ; vbroadcastss  0x28(%rax),%ymm9
3652  DB  196,66,109,184,204                  ; vfmadd231ps   %ymm12,%ymm2,%ymm9
3653  DB  196,66,117,184,203                  ; vfmadd231ps   %ymm11,%ymm1,%ymm9
3654  DB  196,66,125,184,202                  ; vfmadd231ps   %ymm10,%ymm0,%ymm9
3655  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
3656  DB  196,98,125,24,96,20                 ; vbroadcastss  0x14(%rax),%ymm12
3657  DB  196,98,125,24,104,32                ; vbroadcastss  0x20(%rax),%ymm13
3658  DB  196,98,125,24,80,44                 ; vbroadcastss  0x2c(%rax),%ymm10
3659  DB  196,66,109,184,213                  ; vfmadd231ps   %ymm13,%ymm2,%ymm10
3660  DB  196,66,117,184,212                  ; vfmadd231ps   %ymm12,%ymm1,%ymm10
3661  DB  196,66,125,184,211                  ; vfmadd231ps   %ymm11,%ymm0,%ymm10
3662  DB  72,173                              ; lods          %ds:(%rsi),%rax
3663  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3664  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
3665  DB  197,124,41,210                      ; vmovaps       %ymm10,%ymm2
3666  DB  255,224                             ; jmpq          *%rax
3667
3668PUBLIC _sk_matrix_4x5_hsw
3669_sk_matrix_4x5_hsw LABEL PROC
3670  DB  72,173                              ; lods          %ds:(%rsi),%rax
3671  DB  196,98,125,24,8                     ; vbroadcastss  (%rax),%ymm9
3672  DB  196,98,125,24,80,16                 ; vbroadcastss  0x10(%rax),%ymm10
3673  DB  196,98,125,24,88,32                 ; vbroadcastss  0x20(%rax),%ymm11
3674  DB  196,98,125,24,96,48                 ; vbroadcastss  0x30(%rax),%ymm12
3675  DB  196,98,125,24,64,64                 ; vbroadcastss  0x40(%rax),%ymm8
3676  DB  196,66,101,184,196                  ; vfmadd231ps   %ymm12,%ymm3,%ymm8
3677  DB  196,66,109,184,195                  ; vfmadd231ps   %ymm11,%ymm2,%ymm8
3678  DB  196,66,117,184,194                  ; vfmadd231ps   %ymm10,%ymm1,%ymm8
3679  DB  196,66,125,184,193                  ; vfmadd231ps   %ymm9,%ymm0,%ymm8
3680  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
3681  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
3682  DB  196,98,125,24,96,36                 ; vbroadcastss  0x24(%rax),%ymm12
3683  DB  196,98,125,24,104,52                ; vbroadcastss  0x34(%rax),%ymm13
3684  DB  196,98,125,24,72,68                 ; vbroadcastss  0x44(%rax),%ymm9
3685  DB  196,66,101,184,205                  ; vfmadd231ps   %ymm13,%ymm3,%ymm9
3686  DB  196,66,109,184,204                  ; vfmadd231ps   %ymm12,%ymm2,%ymm9
3687  DB  196,66,117,184,203                  ; vfmadd231ps   %ymm11,%ymm1,%ymm9
3688  DB  196,66,125,184,202                  ; vfmadd231ps   %ymm10,%ymm0,%ymm9
3689  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
3690  DB  196,98,125,24,96,24                 ; vbroadcastss  0x18(%rax),%ymm12
3691  DB  196,98,125,24,104,40                ; vbroadcastss  0x28(%rax),%ymm13
3692  DB  196,98,125,24,112,56                ; vbroadcastss  0x38(%rax),%ymm14
3693  DB  196,98,125,24,80,72                 ; vbroadcastss  0x48(%rax),%ymm10
3694  DB  196,66,101,184,214                  ; vfmadd231ps   %ymm14,%ymm3,%ymm10
3695  DB  196,66,109,184,213                  ; vfmadd231ps   %ymm13,%ymm2,%ymm10
3696  DB  196,66,117,184,212                  ; vfmadd231ps   %ymm12,%ymm1,%ymm10
3697  DB  196,66,125,184,211                  ; vfmadd231ps   %ymm11,%ymm0,%ymm10
3698  DB  196,98,125,24,96,12                 ; vbroadcastss  0xc(%rax),%ymm12
3699  DB  196,98,125,24,104,28                ; vbroadcastss  0x1c(%rax),%ymm13
3700  DB  196,98,125,24,112,44                ; vbroadcastss  0x2c(%rax),%ymm14
3701  DB  196,98,125,24,120,60                ; vbroadcastss  0x3c(%rax),%ymm15
3702  DB  196,98,125,24,88,76                 ; vbroadcastss  0x4c(%rax),%ymm11
3703  DB  196,66,101,184,223                  ; vfmadd231ps   %ymm15,%ymm3,%ymm11
3704  DB  196,66,109,184,222                  ; vfmadd231ps   %ymm14,%ymm2,%ymm11
3705  DB  196,66,117,184,221                  ; vfmadd231ps   %ymm13,%ymm1,%ymm11
3706  DB  196,66,125,184,220                  ; vfmadd231ps   %ymm12,%ymm0,%ymm11
3707  DB  72,173                              ; lods          %ds:(%rsi),%rax
3708  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3709  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
3710  DB  197,124,41,210                      ; vmovaps       %ymm10,%ymm2
3711  DB  197,124,41,219                      ; vmovaps       %ymm11,%ymm3
3712  DB  255,224                             ; jmpq          *%rax
3713
3714PUBLIC _sk_matrix_perspective_hsw
3715_sk_matrix_perspective_hsw LABEL PROC
3716  DB  72,173                              ; lods          %ds:(%rsi),%rax
3717  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
3718  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
3719  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
3720  DB  196,66,117,184,209                  ; vfmadd231ps   %ymm9,%ymm1,%ymm10
3721  DB  196,66,125,184,208                  ; vfmadd231ps   %ymm8,%ymm0,%ymm10
3722  DB  196,98,125,24,64,12                 ; vbroadcastss  0xc(%rax),%ymm8
3723  DB  196,98,125,24,72,16                 ; vbroadcastss  0x10(%rax),%ymm9
3724  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
3725  DB  196,66,117,184,217                  ; vfmadd231ps   %ymm9,%ymm1,%ymm11
3726  DB  196,66,125,184,216                  ; vfmadd231ps   %ymm8,%ymm0,%ymm11
3727  DB  196,98,125,24,64,24                 ; vbroadcastss  0x18(%rax),%ymm8
3728  DB  196,98,125,24,72,28                 ; vbroadcastss  0x1c(%rax),%ymm9
3729  DB  196,98,125,24,96,32                 ; vbroadcastss  0x20(%rax),%ymm12
3730  DB  196,66,117,184,225                  ; vfmadd231ps   %ymm9,%ymm1,%ymm12
3731  DB  196,66,125,184,224                  ; vfmadd231ps   %ymm8,%ymm0,%ymm12
3732  DB  196,193,124,83,204                  ; vrcpps        %ymm12,%ymm1
3733  DB  197,172,89,193                      ; vmulps        %ymm1,%ymm10,%ymm0
3734  DB  197,164,89,201                      ; vmulps        %ymm1,%ymm11,%ymm1
3735  DB  72,173                              ; lods          %ds:(%rsi),%rax
3736  DB  255,224                             ; jmpq          *%rax
3737
3738PUBLIC _sk_linear_gradient_hsw
3739_sk_linear_gradient_hsw LABEL PROC
3740  DB  72,173                              ; lods          %ds:(%rsi),%rax
3741  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
3742  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
3743  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
3744  DB  196,98,125,24,72,28                 ; vbroadcastss  0x1c(%rax),%ymm9
3745  DB  76,139,0                            ; mov           (%rax),%r8
3746  DB  77,133,192                          ; test          %r8,%r8
3747  DB  15,132,143,0,0,0                    ; je            3b89 <_sk_linear_gradient_hsw+0xb5>
3748  DB  72,139,64,8                         ; mov           0x8(%rax),%rax
3749  DB  72,131,192,32                       ; add           $0x20,%rax
3750  DB  196,65,28,87,228                    ; vxorps        %ymm12,%ymm12,%ymm12
3751  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
3752  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
3753  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
3754  DB  196,98,125,24,104,224               ; vbroadcastss  -0x20(%rax),%ymm13
3755  DB  196,65,124,194,237,1                ; vcmpltps      %ymm13,%ymm0,%ymm13
3756  DB  196,98,125,24,112,228               ; vbroadcastss  -0x1c(%rax),%ymm14
3757  DB  196,67,13,74,228,208                ; vblendvps     %ymm13,%ymm12,%ymm14,%ymm12
3758  DB  196,98,125,24,112,232               ; vbroadcastss  -0x18(%rax),%ymm14
3759  DB  196,227,13,74,201,208               ; vblendvps     %ymm13,%ymm1,%ymm14,%ymm1
3760  DB  196,98,125,24,112,236               ; vbroadcastss  -0x14(%rax),%ymm14
3761  DB  196,227,13,74,210,208               ; vblendvps     %ymm13,%ymm2,%ymm14,%ymm2
3762  DB  196,98,125,24,112,240               ; vbroadcastss  -0x10(%rax),%ymm14
3763  DB  196,227,13,74,219,208               ; vblendvps     %ymm13,%ymm3,%ymm14,%ymm3
3764  DB  196,98,125,24,112,244               ; vbroadcastss  -0xc(%rax),%ymm14
3765  DB  196,67,13,74,192,208                ; vblendvps     %ymm13,%ymm8,%ymm14,%ymm8
3766  DB  196,98,125,24,112,248               ; vbroadcastss  -0x8(%rax),%ymm14
3767  DB  196,67,13,74,219,208                ; vblendvps     %ymm13,%ymm11,%ymm14,%ymm11
3768  DB  196,98,125,24,112,252               ; vbroadcastss  -0x4(%rax),%ymm14
3769  DB  196,67,13,74,210,208                ; vblendvps     %ymm13,%ymm10,%ymm14,%ymm10
3770  DB  196,98,125,24,48                    ; vbroadcastss  (%rax),%ymm14
3771  DB  196,67,13,74,201,208                ; vblendvps     %ymm13,%ymm9,%ymm14,%ymm9
3772  DB  72,131,192,36                       ; add           $0x24,%rax
3773  DB  73,255,200                          ; dec           %r8
3774  DB  117,140                             ; jne           3b13 <_sk_linear_gradient_hsw+0x3f>
3775  DB  235,17                              ; jmp           3b9a <_sk_linear_gradient_hsw+0xc6>
3776  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
3777  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
3778  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
3779  DB  196,65,28,87,228                    ; vxorps        %ymm12,%ymm12,%ymm12
3780  DB  196,66,125,184,196                  ; vfmadd231ps   %ymm12,%ymm0,%ymm8
3781  DB  196,194,125,168,203                 ; vfmadd213ps   %ymm11,%ymm0,%ymm1
3782  DB  196,194,125,168,210                 ; vfmadd213ps   %ymm10,%ymm0,%ymm2
3783  DB  196,194,125,168,217                 ; vfmadd213ps   %ymm9,%ymm0,%ymm3
3784  DB  72,173                              ; lods          %ds:(%rsi),%rax
3785  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3786  DB  255,224                             ; jmpq          *%rax
3787
3788PUBLIC _sk_linear_gradient_2stops_hsw
3789_sk_linear_gradient_2stops_hsw LABEL PROC
3790  DB  72,173                              ; lods          %ds:(%rsi),%rax
3791  DB  196,226,125,24,8                    ; vbroadcastss  (%rax),%ymm1
3792  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
3793  DB  196,98,125,184,193                  ; vfmadd231ps   %ymm1,%ymm0,%ymm8
3794  DB  196,226,125,24,80,4                 ; vbroadcastss  0x4(%rax),%ymm2
3795  DB  196,226,125,24,72,20                ; vbroadcastss  0x14(%rax),%ymm1
3796  DB  196,226,125,184,202                 ; vfmadd231ps   %ymm2,%ymm0,%ymm1
3797  DB  196,226,125,24,88,8                 ; vbroadcastss  0x8(%rax),%ymm3
3798  DB  196,226,125,24,80,24                ; vbroadcastss  0x18(%rax),%ymm2
3799  DB  196,226,125,184,211                 ; vfmadd231ps   %ymm3,%ymm0,%ymm2
3800  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
3801  DB  196,226,125,24,88,28                ; vbroadcastss  0x1c(%rax),%ymm3
3802  DB  196,194,125,184,217                 ; vfmadd231ps   %ymm9,%ymm0,%ymm3
3803  DB  72,173                              ; lods          %ds:(%rsi),%rax
3804  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3805  DB  255,224                             ; jmpq          *%rax
3806
3807PUBLIC _sk_save_xy_hsw
3808_sk_save_xy_hsw LABEL PROC
3809  DB  72,173                              ; lods          %ds:(%rsi),%rax
3810  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
3811  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3812  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3813  DB  197,60,88,200                       ; vaddps        %ymm0,%ymm8,%ymm9
3814  DB  196,67,125,8,209,1                  ; vroundps      $0x1,%ymm9,%ymm10
3815  DB  196,65,52,92,202                    ; vsubps        %ymm10,%ymm9,%ymm9
3816  DB  197,60,88,193                       ; vaddps        %ymm1,%ymm8,%ymm8
3817  DB  196,67,125,8,208,1                  ; vroundps      $0x1,%ymm8,%ymm10
3818  DB  196,65,60,92,194                    ; vsubps        %ymm10,%ymm8,%ymm8
3819  DB  197,252,17,0                        ; vmovups       %ymm0,(%rax)
3820  DB  197,252,17,72,32                    ; vmovups       %ymm1,0x20(%rax)
3821  DB  197,124,17,72,64                    ; vmovups       %ymm9,0x40(%rax)
3822  DB  197,124,17,64,96                    ; vmovups       %ymm8,0x60(%rax)
3823  DB  72,173                              ; lods          %ds:(%rsi),%rax
3824  DB  255,224                             ; jmpq          *%rax
3825
3826PUBLIC _sk_accumulate_hsw
3827_sk_accumulate_hsw LABEL PROC
3828  DB  72,173                              ; lods          %ds:(%rsi),%rax
3829  DB  197,124,16,128,128,0,0,0            ; vmovups       0x80(%rax),%ymm8
3830  DB  197,60,89,128,160,0,0,0             ; vmulps        0xa0(%rax),%ymm8,%ymm8
3831  DB  196,226,61,184,224                  ; vfmadd231ps   %ymm0,%ymm8,%ymm4
3832  DB  196,226,61,184,233                  ; vfmadd231ps   %ymm1,%ymm8,%ymm5
3833  DB  196,226,61,184,242                  ; vfmadd231ps   %ymm2,%ymm8,%ymm6
3834  DB  196,98,101,168,199                  ; vfmadd213ps   %ymm7,%ymm3,%ymm8
3835  DB  72,173                              ; lods          %ds:(%rsi),%rax
3836  DB  197,124,41,199                      ; vmovaps       %ymm8,%ymm7
3837  DB  255,224                             ; jmpq          *%rax
3838
3839PUBLIC _sk_bilinear_nx_hsw
3840_sk_bilinear_nx_hsw LABEL PROC
3841  DB  72,173                              ; lods          %ds:(%rsi),%rax
3842  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
3843  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
3844  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
3845  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
3846  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
3847  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3848  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3849  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
3850  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
3851  DB  72,173                              ; lods          %ds:(%rsi),%rax
3852  DB  255,224                             ; jmpq          *%rax
3853
3854PUBLIC _sk_bilinear_px_hsw
3855_sk_bilinear_px_hsw LABEL PROC
3856  DB  72,173                              ; lods          %ds:(%rsi),%rax
3857  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
3858  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
3859  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
3860  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
3861  DB  197,124,16,64,64                    ; vmovups       0x40(%rax),%ymm8
3862  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
3863  DB  72,173                              ; lods          %ds:(%rsi),%rax
3864  DB  255,224                             ; jmpq          *%rax
3865
3866PUBLIC _sk_bilinear_ny_hsw
3867_sk_bilinear_ny_hsw LABEL PROC
3868  DB  72,173                              ; lods          %ds:(%rsi),%rax
3869  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
3870  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
3871  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
3872  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
3873  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
3874  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3875  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3876  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
3877  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
3878  DB  72,173                              ; lods          %ds:(%rsi),%rax
3879  DB  255,224                             ; jmpq          *%rax
3880
3881PUBLIC _sk_bilinear_py_hsw
3882_sk_bilinear_py_hsw LABEL PROC
3883  DB  72,173                              ; lods          %ds:(%rsi),%rax
3884  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
3885  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
3886  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
3887  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
3888  DB  197,124,16,64,96                    ; vmovups       0x60(%rax),%ymm8
3889  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
3890  DB  72,173                              ; lods          %ds:(%rsi),%rax
3891  DB  255,224                             ; jmpq          *%rax
3892
3893PUBLIC _sk_bicubic_n3x_hsw
3894_sk_bicubic_n3x_hsw LABEL PROC
3895  DB  72,173                              ; lods          %ds:(%rsi),%rax
3896  DB  65,184,0,0,192,191                  ; mov           $0xbfc00000,%r8d
3897  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
3898  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
3899  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
3900  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
3901  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3902  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3903  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
3904  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
3905  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
3906  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
3907  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
3908  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
3909  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
3910  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
3911  DB  196,66,61,168,211                   ; vfmadd213ps   %ymm11,%ymm8,%ymm10
3912  DB  196,65,44,89,193                    ; vmulps        %ymm9,%ymm10,%ymm8
3913  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
3914  DB  72,173                              ; lods          %ds:(%rsi),%rax
3915  DB  255,224                             ; jmpq          *%rax
3916
3917PUBLIC _sk_bicubic_n1x_hsw
3918_sk_bicubic_n1x_hsw LABEL PROC
3919  DB  72,173                              ; lods          %ds:(%rsi),%rax
3920  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
3921  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
3922  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
3923  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
3924  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
3925  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3926  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3927  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
3928  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
3929  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
3930  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
3931  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
3932  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
3933  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
3934  DB  196,66,61,168,202                   ; vfmadd213ps   %ymm10,%ymm8,%ymm9
3935  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
3936  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
3937  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
3938  DB  196,66,61,184,209                   ; vfmadd231ps   %ymm9,%ymm8,%ymm10
3939  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
3940  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
3941  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
3942  DB  196,66,61,184,202                   ; vfmadd231ps   %ymm10,%ymm8,%ymm9
3943  DB  197,124,17,136,128,0,0,0            ; vmovups       %ymm9,0x80(%rax)
3944  DB  72,173                              ; lods          %ds:(%rsi),%rax
3945  DB  255,224                             ; jmpq          *%rax
3946
3947PUBLIC _sk_bicubic_p1x_hsw
3948_sk_bicubic_p1x_hsw LABEL PROC
3949  DB  72,173                              ; lods          %ds:(%rsi),%rax
3950  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
3951  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
3952  DB  196,98,125,88,192                   ; vpbroadcastd  %xmm0,%ymm8
3953  DB  197,188,88,0                        ; vaddps        (%rax),%ymm8,%ymm0
3954  DB  197,124,16,72,64                    ; vmovups       0x40(%rax),%ymm9
3955  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
3956  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
3957  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
3958  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
3959  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
3960  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
3961  DB  196,66,53,168,211                   ; vfmadd213ps   %ymm11,%ymm9,%ymm10
3962  DB  196,66,53,168,208                   ; vfmadd213ps   %ymm8,%ymm9,%ymm10
3963  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
3964  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3965  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3966  DB  196,66,53,184,194                   ; vfmadd231ps   %ymm10,%ymm9,%ymm8
3967  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
3968  DB  72,173                              ; lods          %ds:(%rsi),%rax
3969  DB  255,224                             ; jmpq          *%rax
3970
3971PUBLIC _sk_bicubic_p3x_hsw
3972_sk_bicubic_p3x_hsw LABEL PROC
3973  DB  72,173                              ; lods          %ds:(%rsi),%rax
3974  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
3975  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
3976  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
3977  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
3978  DB  197,124,16,64,64                    ; vmovups       0x40(%rax),%ymm8
3979  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
3980  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
3981  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
3982  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
3983  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
3984  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
3985  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
3986  DB  196,66,61,168,211                   ; vfmadd213ps   %ymm11,%ymm8,%ymm10
3987  DB  196,65,52,89,194                    ; vmulps        %ymm10,%ymm9,%ymm8
3988  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
3989  DB  72,173                              ; lods          %ds:(%rsi),%rax
3990  DB  255,224                             ; jmpq          *%rax
3991
3992PUBLIC _sk_bicubic_n3y_hsw
3993_sk_bicubic_n3y_hsw LABEL PROC
3994  DB  72,173                              ; lods          %ds:(%rsi),%rax
3995  DB  65,184,0,0,192,191                  ; mov           $0xbfc00000,%r8d
3996  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
3997  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
3998  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
3999  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
4000  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4001  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4002  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
4003  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
4004  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
4005  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4006  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4007  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
4008  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4009  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4010  DB  196,66,61,168,211                   ; vfmadd213ps   %ymm11,%ymm8,%ymm10
4011  DB  196,65,44,89,193                    ; vmulps        %ymm9,%ymm10,%ymm8
4012  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
4013  DB  72,173                              ; lods          %ds:(%rsi),%rax
4014  DB  255,224                             ; jmpq          *%rax
4015
4016PUBLIC _sk_bicubic_n1y_hsw
4017_sk_bicubic_n1y_hsw LABEL PROC
4018  DB  72,173                              ; lods          %ds:(%rsi),%rax
4019  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
4020  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
4021  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
4022  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
4023  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
4024  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4025  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4026  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
4027  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
4028  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
4029  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
4030  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4031  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4032  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4033  DB  196,66,61,168,202                   ; vfmadd213ps   %ymm10,%ymm8,%ymm9
4034  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
4035  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4036  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4037  DB  196,66,61,184,209                   ; vfmadd231ps   %ymm9,%ymm8,%ymm10
4038  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
4039  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
4040  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
4041  DB  196,66,61,184,202                   ; vfmadd231ps   %ymm10,%ymm8,%ymm9
4042  DB  197,124,17,136,160,0,0,0            ; vmovups       %ymm9,0xa0(%rax)
4043  DB  72,173                              ; lods          %ds:(%rsi),%rax
4044  DB  255,224                             ; jmpq          *%rax
4045
4046PUBLIC _sk_bicubic_p1y_hsw
4047_sk_bicubic_p1y_hsw LABEL PROC
4048  DB  72,173                              ; lods          %ds:(%rsi),%rax
4049  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
4050  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
4051  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
4052  DB  197,188,88,72,32                    ; vaddps        0x20(%rax),%ymm8,%ymm1
4053  DB  197,124,16,72,96                    ; vmovups       0x60(%rax),%ymm9
4054  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
4055  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4056  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4057  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4058  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4059  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4060  DB  196,66,53,168,211                   ; vfmadd213ps   %ymm11,%ymm9,%ymm10
4061  DB  196,66,53,168,208                   ; vfmadd213ps   %ymm8,%ymm9,%ymm10
4062  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
4063  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4064  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4065  DB  196,66,53,184,194                   ; vfmadd231ps   %ymm10,%ymm9,%ymm8
4066  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
4067  DB  72,173                              ; lods          %ds:(%rsi),%rax
4068  DB  255,224                             ; jmpq          *%rax
4069
4070PUBLIC _sk_bicubic_p3y_hsw
4071_sk_bicubic_p3y_hsw LABEL PROC
4072  DB  72,173                              ; lods          %ds:(%rsi),%rax
4073  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4074  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
4075  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
4076  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
4077  DB  197,124,16,64,96                    ; vmovups       0x60(%rax),%ymm8
4078  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
4079  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
4080  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4081  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4082  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
4083  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4084  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4085  DB  196,66,61,168,211                   ; vfmadd213ps   %ymm11,%ymm8,%ymm10
4086  DB  196,65,52,89,194                    ; vmulps        %ymm10,%ymm9,%ymm8
4087  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
4088  DB  72,173                              ; lods          %ds:(%rsi),%rax
4089  DB  255,224                             ; jmpq          *%rax
4090
4091PUBLIC _sk_callback_hsw
4092_sk_callback_hsw LABEL PROC
4093  DB  65,87                               ; push          %r15
4094  DB  65,86                               ; push          %r14
4095  DB  83                                  ; push          %rbx
4096  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
4097  DB  197,252,17,188,36,128,0,0,0         ; vmovups       %ymm7,0x80(%rsp)
4098  DB  197,252,17,116,36,96                ; vmovups       %ymm6,0x60(%rsp)
4099  DB  197,252,17,108,36,64                ; vmovups       %ymm5,0x40(%rsp)
4100  DB  197,252,17,100,36,32                ; vmovups       %ymm4,0x20(%rsp)
4101  DB  73,137,207                          ; mov           %rcx,%r15
4102  DB  73,137,214                          ; mov           %rdx,%r14
4103  DB  72,173                              ; lods          %ds:(%rsi),%rax
4104  DB  72,137,195                          ; mov           %rax,%rbx
4105  DB  197,252,20,225                      ; vunpcklps     %ymm1,%ymm0,%ymm4
4106  DB  197,252,21,193                      ; vunpckhps     %ymm1,%ymm0,%ymm0
4107  DB  197,236,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm1
4108  DB  197,236,21,211                      ; vunpckhps     %ymm3,%ymm2,%ymm2
4109  DB  197,221,20,217                      ; vunpcklpd     %ymm1,%ymm4,%ymm3
4110  DB  197,221,21,201                      ; vunpckhpd     %ymm1,%ymm4,%ymm1
4111  DB  197,253,20,226                      ; vunpcklpd     %ymm2,%ymm0,%ymm4
4112  DB  197,253,21,194                      ; vunpckhpd     %ymm2,%ymm0,%ymm0
4113  DB  196,227,101,24,209,1                ; vinsertf128   $0x1,%xmm1,%ymm3,%ymm2
4114  DB  196,227,93,24,232,1                 ; vinsertf128   $0x1,%xmm0,%ymm4,%ymm5
4115  DB  196,227,101,6,201,49                ; vperm2f128    $0x31,%ymm1,%ymm3,%ymm1
4116  DB  196,227,93,6,192,49                 ; vperm2f128    $0x31,%ymm0,%ymm4,%ymm0
4117  DB  197,253,17,83,8                     ; vmovupd       %ymm2,0x8(%rbx)
4118  DB  197,253,17,107,40                   ; vmovupd       %ymm5,0x28(%rbx)
4119  DB  197,253,17,75,72                    ; vmovupd       %ymm1,0x48(%rbx)
4120  DB  197,253,17,67,104                   ; vmovupd       %ymm0,0x68(%rbx)
4121  DB  77,133,255                          ; test          %r15,%r15
4122  DB  186,8,0,0,0                         ; mov           $0x8,%edx
4123  DB  65,15,69,215                        ; cmovne        %r15d,%edx
4124  DB  72,137,217                          ; mov           %rbx,%rcx
4125  DB  197,248,119                         ; vzeroupper
4126  DB  255,19                              ; callq         *(%rbx)
4127  DB  72,139,131,136,0,0,0                ; mov           0x88(%rbx),%rax
4128  DB  197,248,16,0                        ; vmovups       (%rax),%xmm0
4129  DB  197,248,16,72,16                    ; vmovups       0x10(%rax),%xmm1
4130  DB  197,248,16,80,32                    ; vmovups       0x20(%rax),%xmm2
4131  DB  197,248,16,88,48                    ; vmovups       0x30(%rax),%xmm3
4132  DB  196,227,101,24,88,112,1             ; vinsertf128   $0x1,0x70(%rax),%ymm3,%ymm3
4133  DB  196,227,109,24,80,96,1              ; vinsertf128   $0x1,0x60(%rax),%ymm2,%ymm2
4134  DB  196,227,117,24,72,80,1              ; vinsertf128   $0x1,0x50(%rax),%ymm1,%ymm1
4135  DB  196,227,125,24,64,64,1              ; vinsertf128   $0x1,0x40(%rax),%ymm0,%ymm0
4136  DB  197,252,20,225                      ; vunpcklps     %ymm1,%ymm0,%ymm4
4137  DB  197,252,21,233                      ; vunpckhps     %ymm1,%ymm0,%ymm5
4138  DB  197,236,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm1
4139  DB  197,236,21,219                      ; vunpckhps     %ymm3,%ymm2,%ymm3
4140  DB  197,221,20,193                      ; vunpcklpd     %ymm1,%ymm4,%ymm0
4141  DB  197,221,21,201                      ; vunpckhpd     %ymm1,%ymm4,%ymm1
4142  DB  197,213,20,211                      ; vunpcklpd     %ymm3,%ymm5,%ymm2
4143  DB  197,213,21,219                      ; vunpckhpd     %ymm3,%ymm5,%ymm3
4144  DB  72,173                              ; lods          %ds:(%rsi),%rax
4145  DB  76,137,242                          ; mov           %r14,%rdx
4146  DB  76,137,249                          ; mov           %r15,%rcx
4147  DB  197,252,16,100,36,32                ; vmovups       0x20(%rsp),%ymm4
4148  DB  197,252,16,108,36,64                ; vmovups       0x40(%rsp),%ymm5
4149  DB  197,252,16,116,36,96                ; vmovups       0x60(%rsp),%ymm6
4150  DB  197,252,16,188,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm7
4151  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
4152  DB  91                                  ; pop           %rbx
4153  DB  65,94                               ; pop           %r14
4154  DB  65,95                               ; pop           %r15
4155  DB  255,224                             ; jmpq          *%rax
4156
4157ALIGN 4
4158  DB  0,0                                 ; add           %al,(%rax)
4159  DB  0,63                                ; add           %bh,(%rdi)
4160  DB  0,0                                 ; add           %al,(%rax)
4161  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
4162  DB  0,0                                 ; add           %al,(%rax)
4163  DB  52,255                              ; xor           $0xff,%al
4164  DB  255                                 ; (bad)
4165  DB  127,0                               ; jg            41b4 <.literal4+0x10>
4166  DB  0,0                                 ; add           %al,(%rax)
4167  DB  0,63                                ; add           %bh,(%rdi)
4168  DB  119,115                             ; ja            422d <.literal4+0x89>
4169  DB  248                                 ; clc
4170  DB  194,117,191                         ; retq          $0xbf75
4171  DB  191,63,249,68,180                   ; mov           $0xb444f93f,%edi
4172  DB  62,163,233,220,63,81,140,242,66,141 ; movabs        %eax,%ds:0x8d42f28c513fdce9
4173  DB  188,190,63,248,245                  ; mov           $0xf5f83fbe,%esp
4174  DB  154                                 ; (bad)
4175  DB  64,254                              ; rex           (bad)
4176  DB  210,221                             ; rcr           %cl,%ch
4177  DB  65,0,0                              ; add           %al,(%r8)
4178  DB  0,75,0                              ; add           %cl,0x0(%rbx)
4179  DB  0,0                                 ; add           %al,(%rax)
4180  DB  52,255                              ; xor           $0xff,%al
4181  DB  255                                 ; (bad)
4182  DB  127,0                               ; jg            41e4 <.literal4+0x40>
4183  DB  0,0                                 ; add           %al,(%rax)
4184  DB  0,63                                ; add           %bh,(%rdi)
4185  DB  119,115                             ; ja            425d <.literal4+0xb9>
4186  DB  248                                 ; clc
4187  DB  194,117,191                         ; retq          $0xbf75
4188  DB  191,63,249,68,180                   ; mov           $0xb444f93f,%edi
4189  DB  62,163,233,220,63,81,140,242,66,141 ; movabs        %eax,%ds:0x8d42f28c513fdce9
4190  DB  188,190,63,248,245                  ; mov           $0xf5f83fbe,%esp
4191  DB  154                                 ; (bad)
4192  DB  64,254                              ; rex           (bad)
4193  DB  210,221                             ; rcr           %cl,%ch
4194  DB  65,0,0                              ; add           %al,(%r8)
4195  DB  0,75,0                              ; add           %cl,0x0(%rbx)
4196  DB  0,0                                 ; add           %al,(%rax)
4197  DB  52,255                              ; xor           $0xff,%al
4198  DB  255                                 ; (bad)
4199  DB  127,0                               ; jg            4214 <.literal4+0x70>
4200  DB  0,0                                 ; add           %al,(%rax)
4201  DB  0,63                                ; add           %bh,(%rdi)
4202  DB  119,115                             ; ja            428d <_sk_callback_hsw+0x203>
4203  DB  248                                 ; clc
4204  DB  194,117,191                         ; retq          $0xbf75
4205  DB  191,63,249,68,180                   ; mov           $0xb444f93f,%edi
4206  DB  62,163,233,220,63,81,140,242,66,141 ; movabs        %eax,%ds:0x8d42f28c513fdce9
4207  DB  188,190,63,248,245                  ; mov           $0xf5f83fbe,%esp
4208  DB  154                                 ; (bad)
4209  DB  64,254                              ; rex           (bad)
4210  DB  210,221                             ; rcr           %cl,%ch
4211  DB  65,0,0                              ; add           %al,(%r8)
4212  DB  0,75,0                              ; add           %cl,0x0(%rbx)
4213  DB  0,0                                 ; add           %al,(%rax)
4214  DB  52,255                              ; xor           $0xff,%al
4215  DB  255                                 ; (bad)
4216  DB  127,0                               ; jg            4244 <.literal4+0xa0>
4217  DB  0,0                                 ; add           %al,(%rax)
4218  DB  0,63                                ; add           %bh,(%rdi)
4219  DB  119,115                             ; ja            42bd <_sk_callback_hsw+0x233>
4220  DB  248                                 ; clc
4221  DB  194,117,191                         ; retq          $0xbf75
4222  DB  191,63,249,68,180                   ; mov           $0xb444f93f,%edi
4223  DB  62,163,233,220,63,81,140,242,66,141 ; movabs        %eax,%ds:0x8d42f28c513fdce9
4224  DB  188,190,63,248,245                  ; mov           $0xf5f83fbe,%esp
4225  DB  154                                 ; (bad)
4226  DB  64,254                              ; rex           (bad)
4227  DB  210,221                             ; rcr           %cl,%ch
4228  DB  65,0,0                              ; add           %al,(%r8)
4229  DB  0                                   ; .byte         0x0
4230  DB  75                                  ; rex.WXB
4231ALIGN 32
4232
4233PUBLIC _sk_start_pipeline_avx
4234_sk_start_pipeline_avx LABEL PROC
4235  DB  65,87                               ; push          %r15
4236  DB  65,86                               ; push          %r14
4237  DB  65,85                               ; push          %r13
4238  DB  65,84                               ; push          %r12
4239  DB  86                                  ; push          %rsi
4240  DB  87                                  ; push          %rdi
4241  DB  83                                  ; push          %rbx
4242  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
4243  DB  197,120,41,188,36,144,0,0,0         ; vmovaps       %xmm15,0x90(%rsp)
4244  DB  197,120,41,180,36,128,0,0,0         ; vmovaps       %xmm14,0x80(%rsp)
4245  DB  197,120,41,108,36,112               ; vmovaps       %xmm13,0x70(%rsp)
4246  DB  197,120,41,100,36,96                ; vmovaps       %xmm12,0x60(%rsp)
4247  DB  197,120,41,92,36,80                 ; vmovaps       %xmm11,0x50(%rsp)
4248  DB  197,120,41,84,36,64                 ; vmovaps       %xmm10,0x40(%rsp)
4249  DB  197,120,41,76,36,48                 ; vmovaps       %xmm9,0x30(%rsp)
4250  DB  197,120,41,68,36,32                 ; vmovaps       %xmm8,0x20(%rsp)
4251  DB  197,248,41,124,36,16                ; vmovaps       %xmm7,0x10(%rsp)
4252  DB  197,248,41,52,36                    ; vmovaps       %xmm6,(%rsp)
4253  DB  77,137,205                          ; mov           %r9,%r13
4254  DB  77,137,198                          ; mov           %r8,%r14
4255  DB  72,137,203                          ; mov           %rcx,%rbx
4256  DB  72,137,214                          ; mov           %rdx,%rsi
4257  DB  72,173                              ; lods          %ds:(%rsi),%rax
4258  DB  73,137,199                          ; mov           %rax,%r15
4259  DB  73,137,244                          ; mov           %rsi,%r12
4260  DB  72,141,67,8                         ; lea           0x8(%rbx),%rax
4261  DB  76,57,232                           ; cmp           %r13,%rax
4262  DB  118,5                               ; jbe           75 <_sk_start_pipeline_avx+0x75>
4263  DB  72,137,223                          ; mov           %rbx,%rdi
4264  DB  235,65                              ; jmp           b6 <_sk_start_pipeline_avx+0xb6>
4265  DB  185,0,0,0,0                         ; mov           $0x0,%ecx
4266  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
4267  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
4268  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
4269  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
4270  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
4271  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
4272  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
4273  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
4274  DB  72,137,223                          ; mov           %rbx,%rdi
4275  DB  76,137,230                          ; mov           %r12,%rsi
4276  DB  76,137,242                          ; mov           %r14,%rdx
4277  DB  65,255,215                          ; callq         *%r15
4278  DB  72,141,123,8                        ; lea           0x8(%rbx),%rdi
4279  DB  72,131,195,16                       ; add           $0x10,%rbx
4280  DB  76,57,235                           ; cmp           %r13,%rbx
4281  DB  72,137,251                          ; mov           %rdi,%rbx
4282  DB  118,191                             ; jbe           75 <_sk_start_pipeline_avx+0x75>
4283  DB  76,137,233                          ; mov           %r13,%rcx
4284  DB  72,41,249                           ; sub           %rdi,%rcx
4285  DB  116,41                              ; je            e7 <_sk_start_pipeline_avx+0xe7>
4286  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
4287  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
4288  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
4289  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
4290  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
4291  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
4292  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
4293  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
4294  DB  76,137,230                          ; mov           %r12,%rsi
4295  DB  76,137,242                          ; mov           %r14,%rdx
4296  DB  65,255,215                          ; callq         *%r15
4297  DB  76,137,232                          ; mov           %r13,%rax
4298  DB  197,248,40,52,36                    ; vmovaps       (%rsp),%xmm6
4299  DB  197,248,40,124,36,16                ; vmovaps       0x10(%rsp),%xmm7
4300  DB  197,120,40,68,36,32                 ; vmovaps       0x20(%rsp),%xmm8
4301  DB  197,120,40,76,36,48                 ; vmovaps       0x30(%rsp),%xmm9
4302  DB  197,120,40,84,36,64                 ; vmovaps       0x40(%rsp),%xmm10
4303  DB  197,120,40,92,36,80                 ; vmovaps       0x50(%rsp),%xmm11
4304  DB  197,120,40,100,36,96                ; vmovaps       0x60(%rsp),%xmm12
4305  DB  197,120,40,108,36,112               ; vmovaps       0x70(%rsp),%xmm13
4306  DB  197,120,40,180,36,128,0,0,0         ; vmovaps       0x80(%rsp),%xmm14
4307  DB  197,120,40,188,36,144,0,0,0         ; vmovaps       0x90(%rsp),%xmm15
4308  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
4309  DB  91                                  ; pop           %rbx
4310  DB  95                                  ; pop           %rdi
4311  DB  94                                  ; pop           %rsi
4312  DB  65,92                               ; pop           %r12
4313  DB  65,93                               ; pop           %r13
4314  DB  65,94                               ; pop           %r14
4315  DB  65,95                               ; pop           %r15
4316  DB  197,248,119                         ; vzeroupper
4317  DB  195                                 ; retq
4318
4319PUBLIC _sk_just_return_avx
4320_sk_just_return_avx LABEL PROC
4321  DB  195                                 ; retq
4322
4323PUBLIC _sk_seed_shader_avx
4324_sk_seed_shader_avx LABEL PROC
4325  DB  72,173                              ; lods          %ds:(%rsi),%rax
4326  DB  197,249,110,199                     ; vmovd         %edi,%xmm0
4327  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
4328  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
4329  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
4330  DB  196,226,125,24,13,164,91,0,0        ; vbroadcastss  0x5ba4(%rip),%ymm1        # 5d04 <_sk_callback_avx+0x11a>
4331  DB  197,252,88,193                      ; vaddps        %ymm1,%ymm0,%ymm0
4332  DB  197,252,88,2                        ; vaddps        (%rdx),%ymm0,%ymm0
4333  DB  196,226,125,24,16                   ; vbroadcastss  (%rax),%ymm2
4334  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
4335  DB  197,236,88,201                      ; vaddps        %ymm1,%ymm2,%ymm1
4336  DB  72,173                              ; lods          %ds:(%rsi),%rax
4337  DB  196,226,125,24,21,136,91,0,0        ; vbroadcastss  0x5b88(%rip),%ymm2        # 5d08 <_sk_callback_avx+0x11e>
4338  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
4339  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
4340  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
4341  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
4342  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
4343  DB  255,224                             ; jmpq          *%rax
4344
4345PUBLIC _sk_constant_color_avx
4346_sk_constant_color_avx LABEL PROC
4347  DB  72,173                              ; lods          %ds:(%rsi),%rax
4348  DB  196,226,125,24,0                    ; vbroadcastss  (%rax),%ymm0
4349  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
4350  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
4351  DB  196,226,125,24,88,12                ; vbroadcastss  0xc(%rax),%ymm3
4352  DB  72,173                              ; lods          %ds:(%rsi),%rax
4353  DB  255,224                             ; jmpq          *%rax
4354
4355PUBLIC _sk_clear_avx
4356_sk_clear_avx LABEL PROC
4357  DB  72,173                              ; lods          %ds:(%rsi),%rax
4358  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
4359  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
4360  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
4361  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
4362  DB  255,224                             ; jmpq          *%rax
4363
4364PUBLIC _sk_srcatop_avx
4365_sk_srcatop_avx LABEL PROC
4366  DB  197,124,89,199                      ; vmulps        %ymm7,%ymm0,%ymm8
4367  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4368  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
4369  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
4370  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
4371  DB  197,124,92,203                      ; vsubps        %ymm3,%ymm0,%ymm9
4372  DB  197,180,89,196                      ; vmulps        %ymm4,%ymm9,%ymm0
4373  DB  197,188,88,192                      ; vaddps        %ymm0,%ymm8,%ymm0
4374  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4375  DB  197,52,89,197                       ; vmulps        %ymm5,%ymm9,%ymm8
4376  DB  196,193,116,88,200                  ; vaddps        %ymm8,%ymm1,%ymm1
4377  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4378  DB  197,52,89,198                       ; vmulps        %ymm6,%ymm9,%ymm8
4379  DB  196,193,108,88,208                  ; vaddps        %ymm8,%ymm2,%ymm2
4380  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4381  DB  197,52,89,199                       ; vmulps        %ymm7,%ymm9,%ymm8
4382  DB  196,193,100,88,216                  ; vaddps        %ymm8,%ymm3,%ymm3
4383  DB  72,173                              ; lods          %ds:(%rsi),%rax
4384  DB  255,224                             ; jmpq          *%rax
4385
4386PUBLIC _sk_dstatop_avx
4387_sk_dstatop_avx LABEL PROC
4388  DB  197,100,89,196                      ; vmulps        %ymm4,%ymm3,%ymm8
4389  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4390  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
4391  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
4392  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
4393  DB  197,52,92,207                       ; vsubps        %ymm7,%ymm9,%ymm9
4394  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
4395  DB  197,188,88,192                      ; vaddps        %ymm0,%ymm8,%ymm0
4396  DB  197,100,89,197                      ; vmulps        %ymm5,%ymm3,%ymm8
4397  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
4398  DB  197,188,88,201                      ; vaddps        %ymm1,%ymm8,%ymm1
4399  DB  197,100,89,198                      ; vmulps        %ymm6,%ymm3,%ymm8
4400  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
4401  DB  197,188,88,210                      ; vaddps        %ymm2,%ymm8,%ymm2
4402  DB  197,100,89,199                      ; vmulps        %ymm7,%ymm3,%ymm8
4403  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
4404  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4405  DB  72,173                              ; lods          %ds:(%rsi),%rax
4406  DB  255,224                             ; jmpq          *%rax
4407
4408PUBLIC _sk_srcin_avx
4409_sk_srcin_avx LABEL PROC
4410  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
4411  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4412  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4413  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4414  DB  72,173                              ; lods          %ds:(%rsi),%rax
4415  DB  255,224                             ; jmpq          *%rax
4416
4417PUBLIC _sk_dstin_avx
4418_sk_dstin_avx LABEL PROC
4419  DB  197,228,89,196                      ; vmulps        %ymm4,%ymm3,%ymm0
4420  DB  197,228,89,205                      ; vmulps        %ymm5,%ymm3,%ymm1
4421  DB  197,228,89,214                      ; vmulps        %ymm6,%ymm3,%ymm2
4422  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4423  DB  72,173                              ; lods          %ds:(%rsi),%rax
4424  DB  255,224                             ; jmpq          *%rax
4425
4426PUBLIC _sk_srcout_avx
4427_sk_srcout_avx LABEL PROC
4428  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4429  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4430  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4431  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4432  DB  197,60,92,199                       ; vsubps        %ymm7,%ymm8,%ymm8
4433  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
4434  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
4435  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
4436  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
4437  DB  72,173                              ; lods          %ds:(%rsi),%rax
4438  DB  255,224                             ; jmpq          *%rax
4439
4440PUBLIC _sk_dstout_avx
4441_sk_dstout_avx LABEL PROC
4442  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4443  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
4444  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
4445  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
4446  DB  197,252,92,219                      ; vsubps        %ymm3,%ymm0,%ymm3
4447  DB  197,228,89,196                      ; vmulps        %ymm4,%ymm3,%ymm0
4448  DB  197,228,89,205                      ; vmulps        %ymm5,%ymm3,%ymm1
4449  DB  197,228,89,214                      ; vmulps        %ymm6,%ymm3,%ymm2
4450  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4451  DB  72,173                              ; lods          %ds:(%rsi),%rax
4452  DB  255,224                             ; jmpq          *%rax
4453
4454PUBLIC _sk_srcover_avx
4455_sk_srcover_avx LABEL PROC
4456  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4457  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4458  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4459  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4460  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4461  DB  197,60,89,204                       ; vmulps        %ymm4,%ymm8,%ymm9
4462  DB  197,180,88,192                      ; vaddps        %ymm0,%ymm9,%ymm0
4463  DB  197,60,89,205                       ; vmulps        %ymm5,%ymm8,%ymm9
4464  DB  197,180,88,201                      ; vaddps        %ymm1,%ymm9,%ymm1
4465  DB  197,60,89,206                       ; vmulps        %ymm6,%ymm8,%ymm9
4466  DB  197,180,88,210                      ; vaddps        %ymm2,%ymm9,%ymm2
4467  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4468  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4469  DB  72,173                              ; lods          %ds:(%rsi),%rax
4470  DB  255,224                             ; jmpq          *%rax
4471
4472PUBLIC _sk_dstover_avx
4473_sk_dstover_avx LABEL PROC
4474  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4475  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4476  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4477  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4478  DB  197,60,92,199                       ; vsubps        %ymm7,%ymm8,%ymm8
4479  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
4480  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
4481  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
4482  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
4483  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
4484  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
4485  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
4486  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
4487  DB  72,173                              ; lods          %ds:(%rsi),%rax
4488  DB  255,224                             ; jmpq          *%rax
4489
4490PUBLIC _sk_modulate_avx
4491_sk_modulate_avx LABEL PROC
4492  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
4493  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
4494  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
4495  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4496  DB  72,173                              ; lods          %ds:(%rsi),%rax
4497  DB  255,224                             ; jmpq          *%rax
4498
4499PUBLIC _sk_multiply_avx
4500_sk_multiply_avx LABEL PROC
4501  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4502  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4503  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4504  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4505  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
4506  DB  197,52,89,208                       ; vmulps        %ymm0,%ymm9,%ymm10
4507  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4508  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
4509  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
4510  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
4511  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
4512  DB  197,52,89,209                       ; vmulps        %ymm1,%ymm9,%ymm10
4513  DB  197,60,89,221                       ; vmulps        %ymm5,%ymm8,%ymm11
4514  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
4515  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
4516  DB  196,193,116,88,202                  ; vaddps        %ymm10,%ymm1,%ymm1
4517  DB  197,52,89,210                       ; vmulps        %ymm2,%ymm9,%ymm10
4518  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
4519  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
4520  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
4521  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
4522  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
4523  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4524  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
4525  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4526  DB  196,193,100,88,216                  ; vaddps        %ymm8,%ymm3,%ymm3
4527  DB  72,173                              ; lods          %ds:(%rsi),%rax
4528  DB  255,224                             ; jmpq          *%rax
4529
4530PUBLIC _sk_plus__avx
4531_sk_plus__avx LABEL PROC
4532  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
4533  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
4534  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
4535  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
4536  DB  72,173                              ; lods          %ds:(%rsi),%rax
4537  DB  255,224                             ; jmpq          *%rax
4538
4539PUBLIC _sk_screen_avx
4540_sk_screen_avx LABEL PROC
4541  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4542  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
4543  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4544  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4545  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
4546  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4547  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4548  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
4549  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4550  DB  197,100,88,199                      ; vaddps        %ymm7,%ymm3,%ymm8
4551  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4552  DB  197,188,92,219                      ; vsubps        %ymm3,%ymm8,%ymm3
4553  DB  72,173                              ; lods          %ds:(%rsi),%rax
4554  DB  255,224                             ; jmpq          *%rax
4555
4556PUBLIC _sk_xor__avx
4557_sk_xor__avx LABEL PROC
4558  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4559  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4560  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4561  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4562  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
4563  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
4564  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4565  DB  197,60,89,212                       ; vmulps        %ymm4,%ymm8,%ymm10
4566  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
4567  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
4568  DB  197,60,89,213                       ; vmulps        %ymm5,%ymm8,%ymm10
4569  DB  197,172,88,201                      ; vaddps        %ymm1,%ymm10,%ymm1
4570  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
4571  DB  197,60,89,214                       ; vmulps        %ymm6,%ymm8,%ymm10
4572  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
4573  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
4574  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4575  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4576  DB  72,173                              ; lods          %ds:(%rsi),%rax
4577  DB  255,224                             ; jmpq          *%rax
4578
4579PUBLIC _sk_darken_avx
4580_sk_darken_avx LABEL PROC
4581  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4582  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
4583  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
4584  DB  196,193,124,95,193                  ; vmaxps        %ymm9,%ymm0,%ymm0
4585  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4586  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4587  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4588  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
4589  DB  196,193,116,95,201                  ; vmaxps        %ymm9,%ymm1,%ymm1
4590  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4591  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4592  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4593  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
4594  DB  196,193,108,95,209                  ; vmaxps        %ymm9,%ymm2,%ymm2
4595  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4596  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4597  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4598  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4599  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4600  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4601  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4602  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4603  DB  72,173                              ; lods          %ds:(%rsi),%rax
4604  DB  255,224                             ; jmpq          *%rax
4605
4606PUBLIC _sk_lighten_avx
4607_sk_lighten_avx LABEL PROC
4608  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4609  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
4610  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
4611  DB  196,193,124,93,193                  ; vminps        %ymm9,%ymm0,%ymm0
4612  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4613  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4614  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4615  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
4616  DB  196,193,116,93,201                  ; vminps        %ymm9,%ymm1,%ymm1
4617  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4618  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4619  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4620  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
4621  DB  196,193,108,93,209                  ; vminps        %ymm9,%ymm2,%ymm2
4622  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4623  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4624  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4625  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4626  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4627  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4628  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4629  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4630  DB  72,173                              ; lods          %ds:(%rsi),%rax
4631  DB  255,224                             ; jmpq          *%rax
4632
4633PUBLIC _sk_difference_avx
4634_sk_difference_avx LABEL PROC
4635  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4636  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
4637  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
4638  DB  196,193,124,93,193                  ; vminps        %ymm9,%ymm0,%ymm0
4639  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
4640  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4641  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4642  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4643  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
4644  DB  196,193,116,93,201                  ; vminps        %ymm9,%ymm1,%ymm1
4645  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
4646  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4647  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4648  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4649  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
4650  DB  196,193,108,93,209                  ; vminps        %ymm9,%ymm2,%ymm2
4651  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
4652  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4653  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4654  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4655  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4656  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4657  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4658  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4659  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4660  DB  72,173                              ; lods          %ds:(%rsi),%rax
4661  DB  255,224                             ; jmpq          *%rax
4662
4663PUBLIC _sk_exclusion_avx
4664_sk_exclusion_avx LABEL PROC
4665  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4666  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
4667  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
4668  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4669  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4670  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
4671  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
4672  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4673  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4674  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
4675  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
4676  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4677  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4678  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4679  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4680  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4681  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4682  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4683  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4684  DB  72,173                              ; lods          %ds:(%rsi),%rax
4685  DB  255,224                             ; jmpq          *%rax
4686
4687PUBLIC _sk_colorburn_avx
4688_sk_colorburn_avx LABEL PROC
4689  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4690  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4691  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4692  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4693  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
4694  DB  197,52,89,216                       ; vmulps        %ymm0,%ymm9,%ymm11
4695  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
4696  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4697  DB  197,60,89,228                       ; vmulps        %ymm4,%ymm8,%ymm12
4698  DB  197,68,92,236                       ; vsubps        %ymm4,%ymm7,%ymm13
4699  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
4700  DB  197,20,94,232                       ; vdivps        %ymm0,%ymm13,%ymm13
4701  DB  196,65,68,93,237                    ; vminps        %ymm13,%ymm7,%ymm13
4702  DB  196,65,68,92,237                    ; vsubps        %ymm13,%ymm7,%ymm13
4703  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
4704  DB  196,65,20,88,235                    ; vaddps        %ymm11,%ymm13,%ymm13
4705  DB  196,65,28,88,237                    ; vaddps        %ymm13,%ymm12,%ymm13
4706  DB  197,28,88,224                       ; vaddps        %ymm0,%ymm12,%ymm12
4707  DB  196,193,124,194,194,0               ; vcmpeqps      %ymm10,%ymm0,%ymm0
4708  DB  196,195,21,74,196,0                 ; vblendvps     %ymm0,%ymm12,%ymm13,%ymm0
4709  DB  197,92,194,231,0                    ; vcmpeqps      %ymm7,%ymm4,%ymm12
4710  DB  197,36,88,220                       ; vaddps        %ymm4,%ymm11,%ymm11
4711  DB  196,195,125,74,195,192              ; vblendvps     %ymm12,%ymm11,%ymm0,%ymm0
4712  DB  197,52,89,217                       ; vmulps        %ymm1,%ymm9,%ymm11
4713  DB  197,60,89,229                       ; vmulps        %ymm5,%ymm8,%ymm12
4714  DB  197,68,92,237                       ; vsubps        %ymm5,%ymm7,%ymm13
4715  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
4716  DB  197,20,94,233                       ; vdivps        %ymm1,%ymm13,%ymm13
4717  DB  196,65,68,93,237                    ; vminps        %ymm13,%ymm7,%ymm13
4718  DB  196,65,68,92,237                    ; vsubps        %ymm13,%ymm7,%ymm13
4719  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
4720  DB  196,65,36,88,237                    ; vaddps        %ymm13,%ymm11,%ymm13
4721  DB  196,65,28,88,237                    ; vaddps        %ymm13,%ymm12,%ymm13
4722  DB  197,28,88,225                       ; vaddps        %ymm1,%ymm12,%ymm12
4723  DB  196,193,116,194,202,0               ; vcmpeqps      %ymm10,%ymm1,%ymm1
4724  DB  196,195,21,74,204,16                ; vblendvps     %ymm1,%ymm12,%ymm13,%ymm1
4725  DB  197,84,194,231,0                    ; vcmpeqps      %ymm7,%ymm5,%ymm12
4726  DB  197,36,88,221                       ; vaddps        %ymm5,%ymm11,%ymm11
4727  DB  196,195,117,74,203,192              ; vblendvps     %ymm12,%ymm11,%ymm1,%ymm1
4728  DB  197,52,89,202                       ; vmulps        %ymm2,%ymm9,%ymm9
4729  DB  196,65,108,194,210,0                ; vcmpeqps      %ymm10,%ymm2,%ymm10
4730  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
4731  DB  197,68,92,230                       ; vsubps        %ymm6,%ymm7,%ymm12
4732  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
4733  DB  197,28,94,226                       ; vdivps        %ymm2,%ymm12,%ymm12
4734  DB  197,164,88,210                      ; vaddps        %ymm2,%ymm11,%ymm2
4735  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
4736  DB  196,65,68,92,228                    ; vsubps        %ymm12,%ymm7,%ymm12
4737  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
4738  DB  196,65,52,88,228                    ; vaddps        %ymm12,%ymm9,%ymm12
4739  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
4740  DB  196,227,37,74,210,160               ; vblendvps     %ymm10,%ymm2,%ymm11,%ymm2
4741  DB  197,76,194,215,0                    ; vcmpeqps      %ymm7,%ymm6,%ymm10
4742  DB  197,52,88,206                       ; vaddps        %ymm6,%ymm9,%ymm9
4743  DB  196,195,109,74,209,160              ; vblendvps     %ymm10,%ymm9,%ymm2,%ymm2
4744  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4745  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4746  DB  72,173                              ; lods          %ds:(%rsi),%rax
4747  DB  255,224                             ; jmpq          *%rax
4748
4749PUBLIC _sk_colordodge_avx
4750_sk_colordodge_avx LABEL PROC
4751  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
4752  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4753  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
4754  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
4755  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
4756  DB  197,52,92,215                       ; vsubps        %ymm7,%ymm9,%ymm10
4757  DB  197,44,89,216                       ; vmulps        %ymm0,%ymm10,%ymm11
4758  DB  197,52,92,203                       ; vsubps        %ymm3,%ymm9,%ymm9
4759  DB  197,100,89,228                      ; vmulps        %ymm4,%ymm3,%ymm12
4760  DB  197,100,92,232                      ; vsubps        %ymm0,%ymm3,%ymm13
4761  DB  196,65,28,94,229                    ; vdivps        %ymm13,%ymm12,%ymm12
4762  DB  197,52,89,236                       ; vmulps        %ymm4,%ymm9,%ymm13
4763  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
4764  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
4765  DB  196,65,28,88,227                    ; vaddps        %ymm11,%ymm12,%ymm12
4766  DB  196,65,20,88,228                    ; vaddps        %ymm12,%ymm13,%ymm12
4767  DB  197,20,88,232                       ; vaddps        %ymm0,%ymm13,%ymm13
4768  DB  197,252,194,195,0                   ; vcmpeqps      %ymm3,%ymm0,%ymm0
4769  DB  196,195,29,74,197,0                 ; vblendvps     %ymm0,%ymm13,%ymm12,%ymm0
4770  DB  196,65,92,194,224,0                 ; vcmpeqps      %ymm8,%ymm4,%ymm12
4771  DB  197,36,88,220                       ; vaddps        %ymm4,%ymm11,%ymm11
4772  DB  196,195,125,74,195,192              ; vblendvps     %ymm12,%ymm11,%ymm0,%ymm0
4773  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
4774  DB  197,100,89,229                      ; vmulps        %ymm5,%ymm3,%ymm12
4775  DB  197,100,92,233                      ; vsubps        %ymm1,%ymm3,%ymm13
4776  DB  196,65,28,94,229                    ; vdivps        %ymm13,%ymm12,%ymm12
4777  DB  197,52,89,237                       ; vmulps        %ymm5,%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,233                       ; vaddps        %ymm1,%ymm13,%ymm13
4783  DB  197,244,194,203,0                   ; vcmpeqps      %ymm3,%ymm1,%ymm1
4784  DB  196,195,29,74,205,16                ; vblendvps     %ymm1,%ymm13,%ymm12,%ymm1
4785  DB  196,65,84,194,224,0                 ; vcmpeqps      %ymm8,%ymm5,%ymm12
4786  DB  197,36,88,221                       ; vaddps        %ymm5,%ymm11,%ymm11
4787  DB  196,195,117,74,203,192              ; vblendvps     %ymm12,%ymm11,%ymm1,%ymm1
4788  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
4789  DB  197,100,89,222                      ; vmulps        %ymm6,%ymm3,%ymm11
4790  DB  197,100,92,226                      ; vsubps        %ymm2,%ymm3,%ymm12
4791  DB  196,65,36,94,220                    ; vdivps        %ymm12,%ymm11,%ymm11
4792  DB  197,52,89,230                       ; vmulps        %ymm6,%ymm9,%ymm12
4793  DB  196,65,68,93,219                    ; vminps        %ymm11,%ymm7,%ymm11
4794  DB  197,36,89,219                       ; vmulps        %ymm3,%ymm11,%ymm11
4795  DB  196,65,44,88,219                    ; vaddps        %ymm11,%ymm10,%ymm11
4796  DB  196,65,28,88,219                    ; vaddps        %ymm11,%ymm12,%ymm11
4797  DB  197,28,88,226                       ; vaddps        %ymm2,%ymm12,%ymm12
4798  DB  197,236,194,211,0                   ; vcmpeqps      %ymm3,%ymm2,%ymm2
4799  DB  196,195,37,74,212,32                ; vblendvps     %ymm2,%ymm12,%ymm11,%ymm2
4800  DB  196,65,76,194,192,0                 ; vcmpeqps      %ymm8,%ymm6,%ymm8
4801  DB  197,44,88,214                       ; vaddps        %ymm6,%ymm10,%ymm10
4802  DB  196,195,109,74,210,128              ; vblendvps     %ymm8,%ymm10,%ymm2,%ymm2
4803  DB  197,52,89,199                       ; vmulps        %ymm7,%ymm9,%ymm8
4804  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4805  DB  72,173                              ; lods          %ds:(%rsi),%rax
4806  DB  255,224                             ; jmpq          *%rax
4807
4808PUBLIC _sk_hardlight_avx
4809_sk_hardlight_avx LABEL PROC
4810  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4811  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4812  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4813  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4814  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
4815  DB  197,44,89,200                       ; vmulps        %ymm0,%ymm10,%ymm9
4816  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4817  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
4818  DB  196,65,52,88,219                    ; vaddps        %ymm11,%ymm9,%ymm11
4819  DB  197,124,88,200                      ; vaddps        %ymm0,%ymm0,%ymm9
4820  DB  197,52,194,227,2                    ; vcmpleps      %ymm3,%ymm9,%ymm12
4821  DB  197,124,89,204                      ; vmulps        %ymm4,%ymm0,%ymm9
4822  DB  196,65,52,88,233                    ; vaddps        %ymm9,%ymm9,%ymm13
4823  DB  197,100,89,207                      ; vmulps        %ymm7,%ymm3,%ymm9
4824  DB  197,68,92,244                       ; vsubps        %ymm4,%ymm7,%ymm14
4825  DB  197,228,92,192                      ; vsubps        %ymm0,%ymm3,%ymm0
4826  DB  196,193,124,89,198                  ; vmulps        %ymm14,%ymm0,%ymm0
4827  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
4828  DB  197,180,92,192                      ; vsubps        %ymm0,%ymm9,%ymm0
4829  DB  196,195,125,74,197,192              ; vblendvps     %ymm12,%ymm13,%ymm0,%ymm0
4830  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
4831  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
4832  DB  197,60,89,229                       ; vmulps        %ymm5,%ymm8,%ymm12
4833  DB  196,65,28,88,219                    ; vaddps        %ymm11,%ymm12,%ymm11
4834  DB  197,116,88,225                      ; vaddps        %ymm1,%ymm1,%ymm12
4835  DB  197,28,194,227,2                    ; vcmpleps      %ymm3,%ymm12,%ymm12
4836  DB  197,116,89,237                      ; vmulps        %ymm5,%ymm1,%ymm13
4837  DB  196,65,20,88,237                    ; vaddps        %ymm13,%ymm13,%ymm13
4838  DB  197,68,92,245                       ; vsubps        %ymm5,%ymm7,%ymm14
4839  DB  197,228,92,201                      ; vsubps        %ymm1,%ymm3,%ymm1
4840  DB  196,193,116,89,206                  ; vmulps        %ymm14,%ymm1,%ymm1
4841  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
4842  DB  197,180,92,201                      ; vsubps        %ymm1,%ymm9,%ymm1
4843  DB  196,195,117,74,205,192              ; vblendvps     %ymm12,%ymm13,%ymm1,%ymm1
4844  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
4845  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
4846  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
4847  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
4848  DB  197,108,88,218                      ; vaddps        %ymm2,%ymm2,%ymm11
4849  DB  197,36,194,219,2                    ; vcmpleps      %ymm3,%ymm11,%ymm11
4850  DB  197,108,89,230                      ; vmulps        %ymm6,%ymm2,%ymm12
4851  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
4852  DB  197,68,92,238                       ; vsubps        %ymm6,%ymm7,%ymm13
4853  DB  197,228,92,210                      ; vsubps        %ymm2,%ymm3,%ymm2
4854  DB  196,193,108,89,213                  ; vmulps        %ymm13,%ymm2,%ymm2
4855  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
4856  DB  197,180,92,210                      ; vsubps        %ymm2,%ymm9,%ymm2
4857  DB  196,195,109,74,212,176              ; vblendvps     %ymm11,%ymm12,%ymm2,%ymm2
4858  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
4859  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4860  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4861  DB  72,173                              ; lods          %ds:(%rsi),%rax
4862  DB  255,224                             ; jmpq          *%rax
4863
4864PUBLIC _sk_overlay_avx
4865_sk_overlay_avx LABEL PROC
4866  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4867  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4868  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4869  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4870  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
4871  DB  197,44,89,200                       ; vmulps        %ymm0,%ymm10,%ymm9
4872  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4873  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
4874  DB  196,65,52,88,219                    ; vaddps        %ymm11,%ymm9,%ymm11
4875  DB  197,92,88,204                       ; vaddps        %ymm4,%ymm4,%ymm9
4876  DB  197,52,194,231,2                    ; vcmpleps      %ymm7,%ymm9,%ymm12
4877  DB  197,124,89,204                      ; vmulps        %ymm4,%ymm0,%ymm9
4878  DB  196,65,52,88,233                    ; vaddps        %ymm9,%ymm9,%ymm13
4879  DB  197,100,89,207                      ; vmulps        %ymm7,%ymm3,%ymm9
4880  DB  197,68,92,244                       ; vsubps        %ymm4,%ymm7,%ymm14
4881  DB  197,228,92,192                      ; vsubps        %ymm0,%ymm3,%ymm0
4882  DB  196,193,124,89,198                  ; vmulps        %ymm14,%ymm0,%ymm0
4883  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
4884  DB  197,180,92,192                      ; vsubps        %ymm0,%ymm9,%ymm0
4885  DB  196,195,125,74,197,192              ; vblendvps     %ymm12,%ymm13,%ymm0,%ymm0
4886  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
4887  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
4888  DB  197,60,89,229                       ; vmulps        %ymm5,%ymm8,%ymm12
4889  DB  196,65,28,88,219                    ; vaddps        %ymm11,%ymm12,%ymm11
4890  DB  197,84,88,229                       ; vaddps        %ymm5,%ymm5,%ymm12
4891  DB  197,28,194,231,2                    ; vcmpleps      %ymm7,%ymm12,%ymm12
4892  DB  197,116,89,237                      ; vmulps        %ymm5,%ymm1,%ymm13
4893  DB  196,65,20,88,237                    ; vaddps        %ymm13,%ymm13,%ymm13
4894  DB  197,68,92,245                       ; vsubps        %ymm5,%ymm7,%ymm14
4895  DB  197,228,92,201                      ; vsubps        %ymm1,%ymm3,%ymm1
4896  DB  196,193,116,89,206                  ; vmulps        %ymm14,%ymm1,%ymm1
4897  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
4898  DB  197,180,92,201                      ; vsubps        %ymm1,%ymm9,%ymm1
4899  DB  196,195,117,74,205,192              ; vblendvps     %ymm12,%ymm13,%ymm1,%ymm1
4900  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
4901  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
4902  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
4903  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
4904  DB  197,76,88,222                       ; vaddps        %ymm6,%ymm6,%ymm11
4905  DB  197,36,194,223,2                    ; vcmpleps      %ymm7,%ymm11,%ymm11
4906  DB  197,108,89,230                      ; vmulps        %ymm6,%ymm2,%ymm12
4907  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
4908  DB  197,68,92,238                       ; vsubps        %ymm6,%ymm7,%ymm13
4909  DB  197,228,92,210                      ; vsubps        %ymm2,%ymm3,%ymm2
4910  DB  196,193,108,89,213                  ; vmulps        %ymm13,%ymm2,%ymm2
4911  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
4912  DB  197,180,92,210                      ; vsubps        %ymm2,%ymm9,%ymm2
4913  DB  196,195,109,74,212,176              ; vblendvps     %ymm11,%ymm12,%ymm2,%ymm2
4914  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
4915  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4916  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4917  DB  72,173                              ; lods          %ds:(%rsi),%rax
4918  DB  255,224                             ; jmpq          *%rax
4919
4920PUBLIC _sk_softlight_avx
4921_sk_softlight_avx LABEL PROC
4922  DB  72,131,236,56                       ; sub           $0x38,%rsp
4923  DB  197,252,17,20,36                    ; vmovups       %ymm2,(%rsp)
4924  DB  197,252,40,209                      ; vmovaps       %ymm1,%ymm2
4925  DB  196,65,52,87,201                    ; vxorps        %ymm9,%ymm9,%ymm9
4926  DB  197,52,194,215,1                    ; vcmpltps      %ymm7,%ymm9,%ymm10
4927  DB  197,92,94,199                       ; vdivps        %ymm7,%ymm4,%ymm8
4928  DB  196,67,53,74,216,160                ; vblendvps     %ymm10,%ymm8,%ymm9,%ymm11
4929  DB  196,65,36,88,195                    ; vaddps        %ymm11,%ymm11,%ymm8
4930  DB  196,65,60,88,224                    ; vaddps        %ymm8,%ymm8,%ymm12
4931  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4932  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4933  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4934  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4935  DB  196,65,28,89,236                    ; vmulps        %ymm12,%ymm12,%ymm13
4936  DB  196,65,28,88,229                    ; vaddps        %ymm13,%ymm12,%ymm12
4937  DB  196,65,36,92,232                    ; vsubps        %ymm8,%ymm11,%ymm13
4938  DB  196,65,28,89,237                    ; vmulps        %ymm13,%ymm12,%ymm13
4939  DB  184,0,0,224,64                      ; mov           $0x40e00000,%eax
4940  DB  197,121,110,224                     ; vmovd         %eax,%xmm12
4941  DB  196,67,121,4,228,0                  ; vpermilps     $0x0,%xmm12,%xmm12
4942  DB  196,67,29,24,228,1                  ; vinsertf128   $0x1,%xmm12,%ymm12,%ymm12
4943  DB  196,65,36,89,244                    ; vmulps        %ymm12,%ymm11,%ymm14
4944  DB  196,65,20,88,238                    ; vaddps        %ymm14,%ymm13,%ymm13
4945  DB  196,65,124,82,243                   ; vrsqrtps      %ymm11,%ymm14
4946  DB  196,65,124,83,246                   ; vrcpps        %ymm14,%ymm14
4947  DB  196,65,12,92,243                    ; vsubps        %ymm11,%ymm14,%ymm14
4948  DB  197,92,88,252                       ; vaddps        %ymm4,%ymm4,%ymm15
4949  DB  196,65,4,88,255                     ; vaddps        %ymm15,%ymm15,%ymm15
4950  DB  197,4,194,255,2                     ; vcmpleps      %ymm7,%ymm15,%ymm15
4951  DB  196,67,13,74,237,240                ; vblendvps     %ymm15,%ymm13,%ymm14,%ymm13
4952  DB  197,124,88,240                      ; vaddps        %ymm0,%ymm0,%ymm14
4953  DB  197,12,92,251                       ; vsubps        %ymm3,%ymm14,%ymm15
4954  DB  196,65,60,92,219                    ; vsubps        %ymm11,%ymm8,%ymm11
4955  DB  196,65,4,89,219                     ; vmulps        %ymm11,%ymm15,%ymm11
4956  DB  197,36,88,219                       ; vaddps        %ymm3,%ymm11,%ymm11
4957  DB  197,36,89,220                       ; vmulps        %ymm4,%ymm11,%ymm11
4958  DB  197,4,89,255                        ; vmulps        %ymm7,%ymm15,%ymm15
4959  DB  196,65,4,89,237                     ; vmulps        %ymm13,%ymm15,%ymm13
4960  DB  197,100,89,252                      ; vmulps        %ymm4,%ymm3,%ymm15
4961  DB  196,65,4,88,237                     ; vaddps        %ymm13,%ymm15,%ymm13
4962  DB  197,12,194,243,2                    ; vcmpleps      %ymm3,%ymm14,%ymm14
4963  DB  196,195,21,74,203,224               ; vblendvps     %ymm14,%ymm11,%ymm13,%ymm1
4964  DB  197,84,94,239                       ; vdivps        %ymm7,%ymm5,%ymm13
4965  DB  196,67,53,74,237,160                ; vblendvps     %ymm10,%ymm13,%ymm9,%ymm13
4966  DB  196,65,20,88,245                    ; vaddps        %ymm13,%ymm13,%ymm14
4967  DB  196,65,12,88,246                    ; vaddps        %ymm14,%ymm14,%ymm14
4968  DB  196,65,12,89,254                    ; vmulps        %ymm14,%ymm14,%ymm15
4969  DB  196,65,12,88,247                    ; vaddps        %ymm15,%ymm14,%ymm14
4970  DB  196,65,20,92,248                    ; vsubps        %ymm8,%ymm13,%ymm15
4971  DB  196,65,4,89,246                     ; vmulps        %ymm14,%ymm15,%ymm14
4972  DB  196,65,28,89,253                    ; vmulps        %ymm13,%ymm12,%ymm15
4973  DB  196,65,4,88,246                     ; vaddps        %ymm14,%ymm15,%ymm14
4974  DB  196,65,124,82,253                   ; vrsqrtps      %ymm13,%ymm15
4975  DB  196,65,124,83,255                   ; vrcpps        %ymm15,%ymm15
4976  DB  196,65,4,92,253                     ; vsubps        %ymm13,%ymm15,%ymm15
4977  DB  197,84,88,221                       ; vaddps        %ymm5,%ymm5,%ymm11
4978  DB  196,65,36,88,219                    ; vaddps        %ymm11,%ymm11,%ymm11
4979  DB  197,36,194,223,2                    ; vcmpleps      %ymm7,%ymm11,%ymm11
4980  DB  196,67,5,74,222,176                 ; vblendvps     %ymm11,%ymm14,%ymm15,%ymm11
4981  DB  197,108,88,242                      ; vaddps        %ymm2,%ymm2,%ymm14
4982  DB  196,65,60,92,237                    ; vsubps        %ymm13,%ymm8,%ymm13
4983  DB  197,12,92,251                       ; vsubps        %ymm3,%ymm14,%ymm15
4984  DB  196,65,4,89,237                     ; vmulps        %ymm13,%ymm15,%ymm13
4985  DB  197,4,89,255                        ; vmulps        %ymm7,%ymm15,%ymm15
4986  DB  196,65,4,89,219                     ; vmulps        %ymm11,%ymm15,%ymm11
4987  DB  197,100,89,253                      ; vmulps        %ymm5,%ymm3,%ymm15
4988  DB  196,65,4,88,219                     ; vaddps        %ymm11,%ymm15,%ymm11
4989  DB  197,20,88,235                       ; vaddps        %ymm3,%ymm13,%ymm13
4990  DB  197,20,89,237                       ; vmulps        %ymm5,%ymm13,%ymm13
4991  DB  197,12,194,243,2                    ; vcmpleps      %ymm3,%ymm14,%ymm14
4992  DB  196,67,37,74,237,224                ; vblendvps     %ymm14,%ymm13,%ymm11,%ymm13
4993  DB  197,76,94,223                       ; vdivps        %ymm7,%ymm6,%ymm11
4994  DB  196,67,53,74,203,160                ; vblendvps     %ymm10,%ymm11,%ymm9,%ymm9
4995  DB  196,65,52,88,209                    ; vaddps        %ymm9,%ymm9,%ymm10
4996  DB  196,65,44,88,210                    ; vaddps        %ymm10,%ymm10,%ymm10
4997  DB  196,65,44,89,218                    ; vmulps        %ymm10,%ymm10,%ymm11
4998  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
4999  DB  196,65,52,92,216                    ; vsubps        %ymm8,%ymm9,%ymm11
5000  DB  196,65,36,89,210                    ; vmulps        %ymm10,%ymm11,%ymm10
5001  DB  196,65,28,89,217                    ; vmulps        %ymm9,%ymm12,%ymm11
5002  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
5003  DB  196,65,124,82,217                   ; vrsqrtps      %ymm9,%ymm11
5004  DB  196,65,124,83,219                   ; vrcpps        %ymm11,%ymm11
5005  DB  196,65,36,92,217                    ; vsubps        %ymm9,%ymm11,%ymm11
5006  DB  197,76,88,230                       ; vaddps        %ymm6,%ymm6,%ymm12
5007  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
5008  DB  197,28,194,231,2                    ; vcmpleps      %ymm7,%ymm12,%ymm12
5009  DB  196,67,37,74,210,192                ; vblendvps     %ymm12,%ymm10,%ymm11,%ymm10
5010  DB  197,124,16,52,36                    ; vmovups       (%rsp),%ymm14
5011  DB  196,65,12,88,222                    ; vaddps        %ymm14,%ymm14,%ymm11
5012  DB  197,36,92,227                       ; vsubps        %ymm3,%ymm11,%ymm12
5013  DB  196,65,60,92,201                    ; vsubps        %ymm9,%ymm8,%ymm9
5014  DB  196,65,28,89,201                    ; vmulps        %ymm9,%ymm12,%ymm9
5015  DB  197,28,89,231                       ; vmulps        %ymm7,%ymm12,%ymm12
5016  DB  196,65,28,89,210                    ; vmulps        %ymm10,%ymm12,%ymm10
5017  DB  197,100,89,230                      ; vmulps        %ymm6,%ymm3,%ymm12
5018  DB  196,65,28,88,210                    ; vaddps        %ymm10,%ymm12,%ymm10
5019  DB  197,52,88,203                       ; vaddps        %ymm3,%ymm9,%ymm9
5020  DB  197,52,89,206                       ; vmulps        %ymm6,%ymm9,%ymm9
5021  DB  197,36,194,219,2                    ; vcmpleps      %ymm3,%ymm11,%ymm11
5022  DB  196,67,45,74,201,176                ; vblendvps     %ymm11,%ymm9,%ymm10,%ymm9
5023  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
5024  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
5025  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
5026  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
5027  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
5028  DB  197,244,88,192                      ; vaddps        %ymm0,%ymm1,%ymm0
5029  DB  197,172,89,202                      ; vmulps        %ymm2,%ymm10,%ymm1
5030  DB  197,188,89,213                      ; vmulps        %ymm5,%ymm8,%ymm2
5031  DB  197,236,88,201                      ; vaddps        %ymm1,%ymm2,%ymm1
5032  DB  196,193,116,88,205                  ; vaddps        %ymm13,%ymm1,%ymm1
5033  DB  196,193,44,89,214                   ; vmulps        %ymm14,%ymm10,%ymm2
5034  DB  197,60,89,214                       ; vmulps        %ymm6,%ymm8,%ymm10
5035  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
5036  DB  196,193,108,88,209                  ; vaddps        %ymm9,%ymm2,%ymm2
5037  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
5038  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
5039  DB  72,173                              ; lods          %ds:(%rsi),%rax
5040  DB  72,131,196,56                       ; add           $0x38,%rsp
5041  DB  255,224                             ; jmpq          *%rax
5042
5043PUBLIC _sk_clamp_0_avx
5044_sk_clamp_0_avx LABEL PROC
5045  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
5046  DB  196,193,124,95,192                  ; vmaxps        %ymm8,%ymm0,%ymm0
5047  DB  196,193,116,95,200                  ; vmaxps        %ymm8,%ymm1,%ymm1
5048  DB  196,193,108,95,208                  ; vmaxps        %ymm8,%ymm2,%ymm2
5049  DB  196,193,100,95,216                  ; vmaxps        %ymm8,%ymm3,%ymm3
5050  DB  72,173                              ; lods          %ds:(%rsi),%rax
5051  DB  255,224                             ; jmpq          *%rax
5052
5053PUBLIC _sk_clamp_1_avx
5054_sk_clamp_1_avx LABEL PROC
5055  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5056  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
5057  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
5058  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
5059  DB  196,193,124,93,192                  ; vminps        %ymm8,%ymm0,%ymm0
5060  DB  196,193,116,93,200                  ; vminps        %ymm8,%ymm1,%ymm1
5061  DB  196,193,108,93,208                  ; vminps        %ymm8,%ymm2,%ymm2
5062  DB  196,193,100,93,216                  ; vminps        %ymm8,%ymm3,%ymm3
5063  DB  72,173                              ; lods          %ds:(%rsi),%rax
5064  DB  255,224                             ; jmpq          *%rax
5065
5066PUBLIC _sk_clamp_a_avx
5067_sk_clamp_a_avx LABEL PROC
5068  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5069  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
5070  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
5071  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
5072  DB  196,193,100,93,216                  ; vminps        %ymm8,%ymm3,%ymm3
5073  DB  197,252,93,195                      ; vminps        %ymm3,%ymm0,%ymm0
5074  DB  197,244,93,203                      ; vminps        %ymm3,%ymm1,%ymm1
5075  DB  197,236,93,211                      ; vminps        %ymm3,%ymm2,%ymm2
5076  DB  72,173                              ; lods          %ds:(%rsi),%rax
5077  DB  255,224                             ; jmpq          *%rax
5078
5079PUBLIC _sk_set_rgb_avx
5080_sk_set_rgb_avx LABEL PROC
5081  DB  72,173                              ; lods          %ds:(%rsi),%rax
5082  DB  196,226,125,24,0                    ; vbroadcastss  (%rax),%ymm0
5083  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
5084  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
5085  DB  72,173                              ; lods          %ds:(%rsi),%rax
5086  DB  255,224                             ; jmpq          *%rax
5087
5088PUBLIC _sk_swap_rb_avx
5089_sk_swap_rb_avx LABEL PROC
5090  DB  197,124,40,192                      ; vmovaps       %ymm0,%ymm8
5091  DB  72,173                              ; lods          %ds:(%rsi),%rax
5092  DB  197,252,40,194                      ; vmovaps       %ymm2,%ymm0
5093  DB  197,124,41,194                      ; vmovaps       %ymm8,%ymm2
5094  DB  255,224                             ; jmpq          *%rax
5095
5096PUBLIC _sk_swap_avx
5097_sk_swap_avx LABEL PROC
5098  DB  197,124,40,195                      ; vmovaps       %ymm3,%ymm8
5099  DB  197,124,40,202                      ; vmovaps       %ymm2,%ymm9
5100  DB  197,124,40,209                      ; vmovaps       %ymm1,%ymm10
5101  DB  197,124,40,216                      ; vmovaps       %ymm0,%ymm11
5102  DB  72,173                              ; lods          %ds:(%rsi),%rax
5103  DB  197,252,40,196                      ; vmovaps       %ymm4,%ymm0
5104  DB  197,252,40,205                      ; vmovaps       %ymm5,%ymm1
5105  DB  197,252,40,214                      ; vmovaps       %ymm6,%ymm2
5106  DB  197,252,40,223                      ; vmovaps       %ymm7,%ymm3
5107  DB  197,124,41,220                      ; vmovaps       %ymm11,%ymm4
5108  DB  197,124,41,213                      ; vmovaps       %ymm10,%ymm5
5109  DB  197,124,41,206                      ; vmovaps       %ymm9,%ymm6
5110  DB  197,124,41,199                      ; vmovaps       %ymm8,%ymm7
5111  DB  255,224                             ; jmpq          *%rax
5112
5113PUBLIC _sk_move_src_dst_avx
5114_sk_move_src_dst_avx LABEL PROC
5115  DB  72,173                              ; lods          %ds:(%rsi),%rax
5116  DB  197,252,40,224                      ; vmovaps       %ymm0,%ymm4
5117  DB  197,252,40,233                      ; vmovaps       %ymm1,%ymm5
5118  DB  197,252,40,242                      ; vmovaps       %ymm2,%ymm6
5119  DB  197,252,40,251                      ; vmovaps       %ymm3,%ymm7
5120  DB  255,224                             ; jmpq          *%rax
5121
5122PUBLIC _sk_move_dst_src_avx
5123_sk_move_dst_src_avx LABEL PROC
5124  DB  72,173                              ; lods          %ds:(%rsi),%rax
5125  DB  197,252,40,196                      ; vmovaps       %ymm4,%ymm0
5126  DB  197,252,40,205                      ; vmovaps       %ymm5,%ymm1
5127  DB  197,252,40,214                      ; vmovaps       %ymm6,%ymm2
5128  DB  197,252,40,223                      ; vmovaps       %ymm7,%ymm3
5129  DB  255,224                             ; jmpq          *%rax
5130
5131PUBLIC _sk_premul_avx
5132_sk_premul_avx LABEL PROC
5133  DB  197,252,89,195                      ; vmulps        %ymm3,%ymm0,%ymm0
5134  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
5135  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
5136  DB  72,173                              ; lods          %ds:(%rsi),%rax
5137  DB  255,224                             ; jmpq          *%rax
5138
5139PUBLIC _sk_unpremul_avx
5140_sk_unpremul_avx LABEL PROC
5141  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
5142  DB  196,65,100,194,200,0                ; vcmpeqps      %ymm8,%ymm3,%ymm9
5143  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5144  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
5145  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
5146  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
5147  DB  197,44,94,211                       ; vdivps        %ymm3,%ymm10,%ymm10
5148  DB  196,67,45,74,192,144                ; vblendvps     %ymm9,%ymm8,%ymm10,%ymm8
5149  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
5150  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
5151  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
5152  DB  72,173                              ; lods          %ds:(%rsi),%rax
5153  DB  255,224                             ; jmpq          *%rax
5154
5155PUBLIC _sk_from_srgb_avx
5156_sk_from_srgb_avx LABEL PROC
5157  DB  184,145,131,158,61                  ; mov           $0x3d9e8391,%eax
5158  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
5159  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
5160  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
5161  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
5162  DB  197,124,89,208                      ; vmulps        %ymm0,%ymm0,%ymm10
5163  DB  184,154,153,153,62                  ; mov           $0x3e99999a,%eax
5164  DB  197,121,110,216                     ; vmovd         %eax,%xmm11
5165  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
5166  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
5167  DB  184,92,143,50,63                    ; mov           $0x3f328f5c,%eax
5168  DB  197,121,110,224                     ; vmovd         %eax,%xmm12
5169  DB  196,67,121,4,228,0                  ; vpermilps     $0x0,%xmm12,%xmm12
5170  DB  196,67,29,24,228,1                  ; vinsertf128   $0x1,%xmm12,%ymm12,%ymm12
5171  DB  197,36,89,232                       ; vmulps        %ymm0,%ymm11,%ymm13
5172  DB  196,65,20,88,236                    ; vaddps        %ymm12,%ymm13,%ymm13
5173  DB  184,10,215,35,59                    ; mov           $0x3b23d70a,%eax
5174  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
5175  DB  196,67,121,4,246,0                  ; vpermilps     $0x0,%xmm14,%xmm14
5176  DB  196,67,13,24,246,1                  ; vinsertf128   $0x1,%xmm14,%ymm14,%ymm14
5177  DB  196,65,44,89,213                    ; vmulps        %ymm13,%ymm10,%ymm10
5178  DB  196,65,12,88,210                    ; vaddps        %ymm10,%ymm14,%ymm10
5179  DB  184,174,71,97,61                    ; mov           $0x3d6147ae,%eax
5180  DB  197,121,110,232                     ; vmovd         %eax,%xmm13
5181  DB  196,67,121,4,237,0                  ; vpermilps     $0x0,%xmm13,%xmm13
5182  DB  196,67,21,24,237,1                  ; vinsertf128   $0x1,%xmm13,%ymm13,%ymm13
5183  DB  196,193,124,194,197,1               ; vcmpltps      %ymm13,%ymm0,%ymm0
5184  DB  196,195,45,74,193,0                 ; vblendvps     %ymm0,%ymm9,%ymm10,%ymm0
5185  DB  197,60,89,201                       ; vmulps        %ymm1,%ymm8,%ymm9
5186  DB  197,116,89,209                      ; vmulps        %ymm1,%ymm1,%ymm10
5187  DB  197,36,89,249                       ; vmulps        %ymm1,%ymm11,%ymm15
5188  DB  196,65,28,88,255                    ; vaddps        %ymm15,%ymm12,%ymm15
5189  DB  196,65,44,89,215                    ; vmulps        %ymm15,%ymm10,%ymm10
5190  DB  196,65,12,88,210                    ; vaddps        %ymm10,%ymm14,%ymm10
5191  DB  196,193,116,194,205,1               ; vcmpltps      %ymm13,%ymm1,%ymm1
5192  DB  196,195,45,74,201,16                ; vblendvps     %ymm1,%ymm9,%ymm10,%ymm1
5193  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
5194  DB  197,108,89,202                      ; vmulps        %ymm2,%ymm2,%ymm9
5195  DB  197,36,89,210                       ; vmulps        %ymm2,%ymm11,%ymm10
5196  DB  196,65,28,88,210                    ; vaddps        %ymm10,%ymm12,%ymm10
5197  DB  196,65,52,89,202                    ; vmulps        %ymm10,%ymm9,%ymm9
5198  DB  196,65,12,88,201                    ; vaddps        %ymm9,%ymm14,%ymm9
5199  DB  196,193,108,194,213,1               ; vcmpltps      %ymm13,%ymm2,%ymm2
5200  DB  196,195,53,74,208,32                ; vblendvps     %ymm2,%ymm8,%ymm9,%ymm2
5201  DB  72,173                              ; lods          %ds:(%rsi),%rax
5202  DB  255,224                             ; jmpq          *%rax
5203
5204PUBLIC _sk_to_srgb_avx
5205_sk_to_srgb_avx LABEL PROC
5206  DB  197,124,82,192                      ; vrsqrtps      %ymm0,%ymm8
5207  DB  196,65,124,83,232                   ; vrcpps        %ymm8,%ymm13
5208  DB  196,65,124,82,240                   ; vrsqrtps      %ymm8,%ymm14
5209  DB  184,41,92,71,65                     ; mov           $0x41475c29,%eax
5210  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
5211  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
5212  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
5213  DB  197,60,89,224                       ; vmulps        %ymm0,%ymm8,%ymm12
5214  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5215  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
5216  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
5217  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
5218  DB  184,194,135,210,62                  ; mov           $0x3ed287c2,%eax
5219  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
5220  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
5221  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
5222  DB  184,206,111,48,63                   ; mov           $0x3f306fce,%eax
5223  DB  197,121,110,216                     ; vmovd         %eax,%xmm11
5224  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
5225  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
5226  DB  184,168,87,202,61                   ; mov           $0x3dca57a8,%eax
5227  DB  53,0,0,0,128                        ; xor           $0x80000000,%eax
5228  DB  197,121,110,248                     ; vmovd         %eax,%xmm15
5229  DB  196,67,121,4,255,0                  ; vpermilps     $0x0,%xmm15,%xmm15
5230  DB  196,67,5,24,255,1                   ; vinsertf128   $0x1,%xmm15,%ymm15,%ymm15
5231  DB  196,65,20,89,235                    ; vmulps        %ymm11,%ymm13,%ymm13
5232  DB  196,65,20,88,239                    ; vaddps        %ymm15,%ymm13,%ymm13
5233  DB  196,65,12,89,242                    ; vmulps        %ymm10,%ymm14,%ymm14
5234  DB  196,65,12,88,237                    ; vaddps        %ymm13,%ymm14,%ymm13
5235  DB  196,65,52,93,237                    ; vminps        %ymm13,%ymm9,%ymm13
5236  DB  184,4,231,140,59                    ; mov           $0x3b8ce704,%eax
5237  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
5238  DB  196,67,121,4,246,0                  ; vpermilps     $0x0,%xmm14,%xmm14
5239  DB  196,67,13,24,246,1                  ; vinsertf128   $0x1,%xmm14,%ymm14,%ymm14
5240  DB  196,193,124,194,198,1               ; vcmpltps      %ymm14,%ymm0,%ymm0
5241  DB  196,195,21,74,196,0                 ; vblendvps     %ymm0,%ymm12,%ymm13,%ymm0
5242  DB  197,124,82,225                      ; vrsqrtps      %ymm1,%ymm12
5243  DB  196,65,124,83,236                   ; vrcpps        %ymm12,%ymm13
5244  DB  196,65,124,82,228                   ; vrsqrtps      %ymm12,%ymm12
5245  DB  196,65,36,89,237                    ; vmulps        %ymm13,%ymm11,%ymm13
5246  DB  196,65,4,88,237                     ; vaddps        %ymm13,%ymm15,%ymm13
5247  DB  196,65,44,89,228                    ; vmulps        %ymm12,%ymm10,%ymm12
5248  DB  196,65,28,88,229                    ; vaddps        %ymm13,%ymm12,%ymm12
5249  DB  197,60,89,233                       ; vmulps        %ymm1,%ymm8,%ymm13
5250  DB  196,65,52,93,228                    ; vminps        %ymm12,%ymm9,%ymm12
5251  DB  196,193,116,194,206,1               ; vcmpltps      %ymm14,%ymm1,%ymm1
5252  DB  196,195,29,74,205,16                ; vblendvps     %ymm1,%ymm13,%ymm12,%ymm1
5253  DB  197,124,82,226                      ; vrsqrtps      %ymm2,%ymm12
5254  DB  196,65,124,83,236                   ; vrcpps        %ymm12,%ymm13
5255  DB  196,65,36,89,221                    ; vmulps        %ymm13,%ymm11,%ymm11
5256  DB  196,65,4,88,219                     ; vaddps        %ymm11,%ymm15,%ymm11
5257  DB  196,65,124,82,228                   ; vrsqrtps      %ymm12,%ymm12
5258  DB  196,65,44,89,212                    ; vmulps        %ymm12,%ymm10,%ymm10
5259  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
5260  DB  196,65,52,93,202                    ; vminps        %ymm10,%ymm9,%ymm9
5261  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
5262  DB  196,193,108,194,214,1               ; vcmpltps      %ymm14,%ymm2,%ymm2
5263  DB  196,195,53,74,208,32                ; vblendvps     %ymm2,%ymm8,%ymm9,%ymm2
5264  DB  72,173                              ; lods          %ds:(%rsi),%rax
5265  DB  255,224                             ; jmpq          *%rax
5266
5267PUBLIC _sk_rgb_to_hsl_avx
5268_sk_rgb_to_hsl_avx LABEL PROC
5269  DB  197,124,95,193                      ; vmaxps        %ymm1,%ymm0,%ymm8
5270  DB  197,60,95,194                       ; vmaxps        %ymm2,%ymm8,%ymm8
5271  DB  197,124,93,201                      ; vminps        %ymm1,%ymm0,%ymm9
5272  DB  197,52,93,202                       ; vminps        %ymm2,%ymm9,%ymm9
5273  DB  196,65,60,92,209                    ; vsubps        %ymm9,%ymm8,%ymm10
5274  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5275  DB  197,121,110,216                     ; vmovd         %eax,%xmm11
5276  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
5277  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
5278  DB  196,65,36,94,218                    ; vdivps        %ymm10,%ymm11,%ymm11
5279  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
5280  DB  197,116,92,226                      ; vsubps        %ymm2,%ymm1,%ymm12
5281  DB  196,65,28,89,227                    ; vmulps        %ymm11,%ymm12,%ymm12
5282  DB  65,185,0,0,192,64                   ; mov           $0x40c00000,%r9d
5283  DB  197,108,92,232                      ; vsubps        %ymm0,%ymm2,%ymm13
5284  DB  196,65,20,89,235                    ; vmulps        %ymm11,%ymm13,%ymm13
5285  DB  65,186,0,0,0,64                     ; mov           $0x40000000,%r10d
5286  DB  197,124,92,241                      ; vsubps        %ymm1,%ymm0,%ymm14
5287  DB  196,65,12,89,219                    ; vmulps        %ymm11,%ymm14,%ymm11
5288  DB  184,0,0,128,64                      ; mov           $0x40800000,%eax
5289  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
5290  DB  196,67,121,4,246,0                  ; vpermilps     $0x0,%xmm14,%xmm14
5291  DB  196,67,13,24,246,1                  ; vinsertf128   $0x1,%xmm14,%ymm14,%ymm14
5292  DB  196,65,36,88,222                    ; vaddps        %ymm14,%ymm11,%ymm11
5293  DB  196,65,121,110,242                  ; vmovd         %r10d,%xmm14
5294  DB  197,244,194,210,1                   ; vcmpltps      %ymm2,%ymm1,%ymm2
5295  DB  197,188,194,201,0                   ; vcmpeqps      %ymm1,%ymm8,%ymm1
5296  DB  196,67,121,4,246,0                  ; vpermilps     $0x0,%xmm14,%xmm14
5297  DB  196,67,13,24,246,1                  ; vinsertf128   $0x1,%xmm14,%ymm14,%ymm14
5298  DB  196,65,20,88,238                    ; vaddps        %ymm14,%ymm13,%ymm13
5299  DB  196,67,37,74,221,16                 ; vblendvps     %ymm1,%ymm13,%ymm11,%ymm11
5300  DB  196,193,121,110,201                 ; vmovd         %r9d,%xmm1
5301  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
5302  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
5303  DB  196,65,20,87,237                    ; vxorps        %ymm13,%ymm13,%ymm13
5304  DB  196,227,21,74,201,32                ; vblendvps     %ymm2,%ymm1,%ymm13,%ymm1
5305  DB  196,193,116,88,204                  ; vaddps        %ymm12,%ymm1,%ymm1
5306  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
5307  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
5308  DB  197,188,194,192,0                   ; vcmpeqps      %ymm0,%ymm8,%ymm0
5309  DB  196,227,37,74,193,0                 ; vblendvps     %ymm0,%ymm1,%ymm11,%ymm0
5310  DB  196,193,60,88,201                   ; vaddps        %ymm9,%ymm8,%ymm1
5311  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
5312  DB  196,99,109,24,218,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm11
5313  DB  196,193,116,89,211                  ; vmulps        %ymm11,%ymm1,%ymm2
5314  DB  197,36,194,218,1                    ; vcmpltps      %ymm2,%ymm11,%ymm11
5315  DB  196,65,12,92,224                    ; vsubps        %ymm8,%ymm14,%ymm12
5316  DB  196,65,28,92,225                    ; vsubps        %ymm9,%ymm12,%ymm12
5317  DB  196,195,117,74,204,176              ; vblendvps     %ymm11,%ymm12,%ymm1,%ymm1
5318  DB  196,65,60,194,193,0                 ; vcmpeqps      %ymm9,%ymm8,%ymm8
5319  DB  197,172,94,201                      ; vdivps        %ymm1,%ymm10,%ymm1
5320  DB  196,67,125,74,205,128               ; vblendvps     %ymm8,%ymm13,%ymm0,%ymm9
5321  DB  196,195,117,74,205,128              ; vblendvps     %ymm8,%ymm13,%ymm1,%ymm1
5322  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
5323  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5324  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5325  DB  196,193,124,89,193                  ; vmulps        %ymm9,%ymm0,%ymm0
5326  DB  72,173                              ; lods          %ds:(%rsi),%rax
5327  DB  255,224                             ; jmpq          *%rax
5328
5329PUBLIC _sk_hsl_to_rgb_avx
5330_sk_hsl_to_rgb_avx LABEL PROC
5331  DB  72,129,236,184,0,0,0                ; sub           $0xb8,%rsp
5332  DB  197,252,17,188,36,128,0,0,0         ; vmovups       %ymm7,0x80(%rsp)
5333  DB  197,252,17,116,36,96                ; vmovups       %ymm6,0x60(%rsp)
5334  DB  197,252,17,108,36,64                ; vmovups       %ymm5,0x40(%rsp)
5335  DB  197,252,17,100,36,32                ; vmovups       %ymm4,0x20(%rsp)
5336  DB  197,252,17,28,36                    ; vmovups       %ymm3,(%rsp)
5337  DB  197,252,40,226                      ; vmovaps       %ymm2,%ymm4
5338  DB  197,252,40,233                      ; vmovaps       %ymm1,%ymm5
5339  DB  197,252,40,216                      ; vmovaps       %ymm0,%ymm3
5340  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
5341  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5342  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5343  DB  196,99,125,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm8
5344  DB  196,193,92,194,192,1                ; vcmpltps      %ymm8,%ymm4,%ymm0
5345  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5346  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
5347  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
5348  DB  196,99,109,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm10
5349  DB  197,172,88,213                      ; vaddps        %ymm5,%ymm10,%ymm2
5350  DB  197,236,89,212                      ; vmulps        %ymm4,%ymm2,%ymm2
5351  DB  197,84,88,204                       ; vaddps        %ymm4,%ymm5,%ymm9
5352  DB  197,84,89,220                       ; vmulps        %ymm4,%ymm5,%ymm11
5353  DB  196,65,52,92,203                    ; vsubps        %ymm11,%ymm9,%ymm9
5354  DB  196,99,53,74,202,0                  ; vblendvps     %ymm0,%ymm2,%ymm9,%ymm9
5355  DB  65,184,0,0,0,64                     ; mov           $0x40000000,%r8d
5356  DB  184,171,170,170,62                  ; mov           $0x3eaaaaab,%eax
5357  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5358  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5359  DB  196,99,125,24,224,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm12
5360  DB  197,28,88,251                       ; vaddps        %ymm3,%ymm12,%ymm15
5361  DB  184,0,0,0,0                         ; mov           $0x0,%eax
5362  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5363  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5364  DB  196,99,125,24,232,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm13
5365  DB  196,193,44,194,199,1                ; vcmpltps      %ymm15,%ymm10,%ymm0
5366  DB  196,193,4,92,210                    ; vsubps        %ymm10,%ymm15,%ymm2
5367  DB  196,227,5,74,194,0                  ; vblendvps     %ymm0,%ymm2,%ymm15,%ymm0
5368  DB  196,193,4,194,213,1                 ; vcmpltps      %ymm13,%ymm15,%ymm2
5369  DB  196,65,44,88,223                    ; vaddps        %ymm15,%ymm10,%ymm11
5370  DB  196,195,125,74,203,32               ; vblendvps     %ymm2,%ymm11,%ymm0,%ymm1
5371  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
5372  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5373  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5374  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
5375  DB  196,65,124,92,217                   ; vsubps        %ymm9,%ymm0,%ymm11
5376  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
5377  DB  184,0,0,192,64                      ; mov           $0x40c00000,%eax
5378  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5379  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5380  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5381  DB  196,193,52,92,211                   ; vsubps        %ymm11,%ymm9,%ymm2
5382  DB  197,108,89,240                      ; vmulps        %ymm0,%ymm2,%ymm14
5383  DB  184,171,170,42,63                   ; mov           $0x3f2aaaab,%eax
5384  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5385  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5386  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5387  DB  197,252,92,209                      ; vsubps        %ymm1,%ymm0,%ymm2
5388  DB  197,140,89,210                      ; vmulps        %ymm2,%ymm14,%ymm2
5389  DB  197,164,88,210                      ; vaddps        %ymm2,%ymm11,%ymm2
5390  DB  197,244,194,248,1                   ; vcmpltps      %ymm0,%ymm1,%ymm7
5391  DB  196,227,37,74,210,112               ; vblendvps     %ymm7,%ymm2,%ymm11,%ymm2
5392  DB  196,193,116,194,248,1               ; vcmpltps      %ymm8,%ymm1,%ymm7
5393  DB  196,195,109,74,249,112              ; vblendvps     %ymm7,%ymm9,%ymm2,%ymm7
5394  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
5395  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
5396  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
5397  DB  197,244,194,202,1                   ; vcmpltps      %ymm2,%ymm1,%ymm1
5398  DB  196,65,4,89,254                     ; vmulps        %ymm14,%ymm15,%ymm15
5399  DB  196,65,36,88,255                    ; vaddps        %ymm15,%ymm11,%ymm15
5400  DB  196,67,69,74,255,16                 ; vblendvps     %ymm1,%ymm15,%ymm7,%ymm15
5401  DB  197,172,194,203,1                   ; vcmpltps      %ymm3,%ymm10,%ymm1
5402  DB  196,193,100,92,250                  ; vsubps        %ymm10,%ymm3,%ymm7
5403  DB  196,227,101,74,207,16               ; vblendvps     %ymm1,%ymm7,%ymm3,%ymm1
5404  DB  196,193,100,194,253,1               ; vcmpltps      %ymm13,%ymm3,%ymm7
5405  DB  197,172,88,243                      ; vaddps        %ymm3,%ymm10,%ymm6
5406  DB  196,227,117,74,206,112              ; vblendvps     %ymm7,%ymm6,%ymm1,%ymm1
5407  DB  197,252,92,241                      ; vsubps        %ymm1,%ymm0,%ymm6
5408  DB  197,140,89,246                      ; vmulps        %ymm6,%ymm14,%ymm6
5409  DB  197,164,88,246                      ; vaddps        %ymm6,%ymm11,%ymm6
5410  DB  197,244,194,248,1                   ; vcmpltps      %ymm0,%ymm1,%ymm7
5411  DB  196,227,37,74,246,112               ; vblendvps     %ymm7,%ymm6,%ymm11,%ymm6
5412  DB  196,193,116,194,248,1               ; vcmpltps      %ymm8,%ymm1,%ymm7
5413  DB  196,195,77,74,241,112               ; vblendvps     %ymm7,%ymm9,%ymm6,%ymm6
5414  DB  197,244,194,202,1                   ; vcmpltps      %ymm2,%ymm1,%ymm1
5415  DB  197,140,89,251                      ; vmulps        %ymm3,%ymm14,%ymm7
5416  DB  197,164,88,255                      ; vaddps        %ymm7,%ymm11,%ymm7
5417  DB  196,227,77,74,207,16                ; vblendvps     %ymm1,%ymm7,%ymm6,%ymm1
5418  DB  196,193,100,92,220                  ; vsubps        %ymm12,%ymm3,%ymm3
5419  DB  197,172,194,243,1                   ; vcmpltps      %ymm3,%ymm10,%ymm6
5420  DB  196,193,100,92,250                  ; vsubps        %ymm10,%ymm3,%ymm7
5421  DB  196,227,101,74,247,96               ; vblendvps     %ymm6,%ymm7,%ymm3,%ymm6
5422  DB  196,193,100,194,253,1               ; vcmpltps      %ymm13,%ymm3,%ymm7
5423  DB  197,44,88,211                       ; vaddps        %ymm3,%ymm10,%ymm10
5424  DB  196,195,77,74,242,112               ; vblendvps     %ymm7,%ymm10,%ymm6,%ymm6
5425  DB  197,204,194,248,1                   ; vcmpltps      %ymm0,%ymm6,%ymm7
5426  DB  197,252,92,198                      ; vsubps        %ymm6,%ymm0,%ymm0
5427  DB  197,140,89,192                      ; vmulps        %ymm0,%ymm14,%ymm0
5428  DB  197,164,88,192                      ; vaddps        %ymm0,%ymm11,%ymm0
5429  DB  196,227,37,74,192,112               ; vblendvps     %ymm7,%ymm0,%ymm11,%ymm0
5430  DB  196,193,76,194,248,1                ; vcmpltps      %ymm8,%ymm6,%ymm7
5431  DB  196,195,125,74,193,112              ; vblendvps     %ymm7,%ymm9,%ymm0,%ymm0
5432  DB  197,204,194,210,1                   ; vcmpltps      %ymm2,%ymm6,%ymm2
5433  DB  196,193,100,89,222                  ; vmulps        %ymm14,%ymm3,%ymm3
5434  DB  197,164,88,219                      ; vaddps        %ymm3,%ymm11,%ymm3
5435  DB  196,227,125,74,211,32               ; vblendvps     %ymm2,%ymm3,%ymm0,%ymm2
5436  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
5437  DB  197,212,194,216,0                   ; vcmpeqps      %ymm0,%ymm5,%ymm3
5438  DB  196,227,5,74,196,48                 ; vblendvps     %ymm3,%ymm4,%ymm15,%ymm0
5439  DB  196,227,117,74,204,48               ; vblendvps     %ymm3,%ymm4,%ymm1,%ymm1
5440  DB  196,227,109,74,212,48               ; vblendvps     %ymm3,%ymm4,%ymm2,%ymm2
5441  DB  72,173                              ; lods          %ds:(%rsi),%rax
5442  DB  197,252,16,28,36                    ; vmovups       (%rsp),%ymm3
5443  DB  197,252,16,100,36,32                ; vmovups       0x20(%rsp),%ymm4
5444  DB  197,252,16,108,36,64                ; vmovups       0x40(%rsp),%ymm5
5445  DB  197,252,16,116,36,96                ; vmovups       0x60(%rsp),%ymm6
5446  DB  197,252,16,188,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm7
5447  DB  72,129,196,184,0,0,0                ; add           $0xb8,%rsp
5448  DB  255,224                             ; jmpq          *%rax
5449
5450PUBLIC _sk_scale_1_float_avx
5451_sk_scale_1_float_avx LABEL PROC
5452  DB  72,173                              ; lods          %ds:(%rsi),%rax
5453  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
5454  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
5455  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
5456  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
5457  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
5458  DB  72,173                              ; lods          %ds:(%rsi),%rax
5459  DB  255,224                             ; jmpq          *%rax
5460
5461PUBLIC _sk_scale_u8_avx
5462_sk_scale_u8_avx LABEL PROC
5463  DB  73,137,200                          ; mov           %rcx,%r8
5464  DB  72,173                              ; lods          %ds:(%rsi),%rax
5465  DB  72,139,0                            ; mov           (%rax),%rax
5466  DB  72,1,248                            ; add           %rdi,%rax
5467  DB  77,133,192                          ; test          %r8,%r8
5468  DB  117,80                              ; jne           138f <_sk_scale_u8_avx+0x60>
5469  DB  197,122,126,0                       ; vmovq         (%rax),%xmm8
5470  DB  196,66,121,49,200                   ; vpmovzxbd     %xmm8,%xmm9
5471  DB  196,67,121,4,192,229                ; vpermilps     $0xe5,%xmm8,%xmm8
5472  DB  196,66,121,49,192                   ; vpmovzxbd     %xmm8,%xmm8
5473  DB  196,67,53,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm9,%ymm8
5474  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
5475  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
5476  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
5477  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
5478  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
5479  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
5480  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
5481  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
5482  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
5483  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
5484  DB  72,173                              ; lods          %ds:(%rsi),%rax
5485  DB  76,137,193                          ; mov           %r8,%rcx
5486  DB  255,224                             ; jmpq          *%rax
5487  DB  49,201                              ; xor           %ecx,%ecx
5488  DB  77,137,194                          ; mov           %r8,%r10
5489  DB  69,49,201                           ; xor           %r9d,%r9d
5490  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
5491  DB  72,255,192                          ; inc           %rax
5492  DB  73,211,227                          ; shl           %cl,%r11
5493  DB  77,9,217                            ; or            %r11,%r9
5494  DB  72,131,193,8                        ; add           $0x8,%rcx
5495  DB  73,255,202                          ; dec           %r10
5496  DB  117,234                             ; jne           1397 <_sk_scale_u8_avx+0x68>
5497  DB  196,65,249,110,193                  ; vmovq         %r9,%xmm8
5498  DB  235,143                             ; jmp           1343 <_sk_scale_u8_avx+0x14>
5499
5500PUBLIC _sk_lerp_1_float_avx
5501_sk_lerp_1_float_avx LABEL PROC
5502  DB  72,173                              ; lods          %ds:(%rsi),%rax
5503  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
5504  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
5505  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
5506  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
5507  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
5508  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
5509  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
5510  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
5511  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
5512  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
5513  DB  197,228,92,223                      ; vsubps        %ymm7,%ymm3,%ymm3
5514  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
5515  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
5516  DB  72,173                              ; lods          %ds:(%rsi),%rax
5517  DB  255,224                             ; jmpq          *%rax
5518
5519PUBLIC _sk_lerp_u8_avx
5520_sk_lerp_u8_avx LABEL PROC
5521  DB  73,137,200                          ; mov           %rcx,%r8
5522  DB  72,173                              ; lods          %ds:(%rsi),%rax
5523  DB  72,139,0                            ; mov           (%rax),%rax
5524  DB  72,1,248                            ; add           %rdi,%rax
5525  DB  77,133,192                          ; test          %r8,%r8
5526  DB  117,116                             ; jne           1477 <_sk_lerp_u8_avx+0x84>
5527  DB  197,122,126,0                       ; vmovq         (%rax),%xmm8
5528  DB  196,66,121,49,200                   ; vpmovzxbd     %xmm8,%xmm9
5529  DB  196,67,121,4,192,229                ; vpermilps     $0xe5,%xmm8,%xmm8
5530  DB  196,66,121,49,192                   ; vpmovzxbd     %xmm8,%xmm8
5531  DB  196,67,53,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm9,%ymm8
5532  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
5533  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
5534  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
5535  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
5536  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
5537  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
5538  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
5539  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
5540  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
5541  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
5542  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
5543  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
5544  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
5545  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
5546  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
5547  DB  197,228,92,223                      ; vsubps        %ymm7,%ymm3,%ymm3
5548  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
5549  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
5550  DB  72,173                              ; lods          %ds:(%rsi),%rax
5551  DB  76,137,193                          ; mov           %r8,%rcx
5552  DB  255,224                             ; jmpq          *%rax
5553  DB  49,201                              ; xor           %ecx,%ecx
5554  DB  77,137,194                          ; mov           %r8,%r10
5555  DB  69,49,201                           ; xor           %r9d,%r9d
5556  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
5557  DB  72,255,192                          ; inc           %rax
5558  DB  73,211,227                          ; shl           %cl,%r11
5559  DB  77,9,217                            ; or            %r11,%r9
5560  DB  72,131,193,8                        ; add           $0x8,%rcx
5561  DB  73,255,202                          ; dec           %r10
5562  DB  117,234                             ; jne           147f <_sk_lerp_u8_avx+0x8c>
5563  DB  196,65,249,110,193                  ; vmovq         %r9,%xmm8
5564  DB  233,104,255,255,255                 ; jmpq          1407 <_sk_lerp_u8_avx+0x14>
5565
5566PUBLIC _sk_lerp_565_avx
5567_sk_lerp_565_avx LABEL PROC
5568  DB  72,173                              ; lods          %ds:(%rsi),%rax
5569  DB  76,139,16                           ; mov           (%rax),%r10
5570  DB  72,133,201                          ; test          %rcx,%rcx
5571  DB  15,133,250,0,0,0                    ; jne           15a7 <_sk_lerp_565_avx+0x108>
5572  DB  196,65,122,111,4,122                ; vmovdqu       (%r10,%rdi,2),%xmm8
5573  DB  197,225,239,219                     ; vpxor         %xmm3,%xmm3,%xmm3
5574  DB  197,185,105,219                     ; vpunpckhwd    %xmm3,%xmm8,%xmm3
5575  DB  196,66,121,51,192                   ; vpmovzxwd     %xmm8,%xmm8
5576  DB  196,99,61,24,195,1                  ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm8
5577  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
5578  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5579  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
5580  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5581  DB  196,193,100,84,216                  ; vandps        %ymm8,%ymm3,%ymm3
5582  DB  197,124,91,203                      ; vcvtdq2ps     %ymm3,%ymm9
5583  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
5584  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5585  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5586  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5587  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
5588  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
5589  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5590  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
5591  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5592  DB  196,193,100,84,216                  ; vandps        %ymm8,%ymm3,%ymm3
5593  DB  197,124,91,211                      ; vcvtdq2ps     %ymm3,%ymm10
5594  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
5595  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5596  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5597  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5598  DB  197,44,89,211                       ; vmulps        %ymm3,%ymm10,%ymm10
5599  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
5600  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5601  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
5602  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5603  DB  196,193,100,84,216                  ; vandps        %ymm8,%ymm3,%ymm3
5604  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
5605  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
5606  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5607  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5608  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5609  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
5610  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
5611  DB  196,193,124,89,193                  ; vmulps        %ymm9,%ymm0,%ymm0
5612  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
5613  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
5614  DB  196,193,116,89,202                  ; vmulps        %ymm10,%ymm1,%ymm1
5615  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
5616  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
5617  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
5618  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
5619  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5620  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5621  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5622  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5623  DB  72,173                              ; lods          %ds:(%rsi),%rax
5624  DB  255,224                             ; jmpq          *%rax
5625  DB  65,137,200                          ; mov           %ecx,%r8d
5626  DB  65,128,224,7                        ; and           $0x7,%r8b
5627  DB  196,65,57,239,192                   ; vpxor         %xmm8,%xmm8,%xmm8
5628  DB  65,254,200                          ; dec           %r8b
5629  DB  65,128,248,6                        ; cmp           $0x6,%r8b
5630  DB  15,135,243,254,255,255              ; ja            14b3 <_sk_lerp_565_avx+0x14>
5631  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
5632  DB  76,141,13,73,0,0,0                  ; lea           0x49(%rip),%r9        # 1614 <_sk_lerp_565_avx+0x175>
5633  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
5634  DB  76,1,200                            ; add           %r9,%rax
5635  DB  255,224                             ; jmpq          *%rax
5636  DB  197,225,239,219                     ; vpxor         %xmm3,%xmm3,%xmm3
5637  DB  196,65,97,196,68,122,12,6           ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm3,%xmm8
5638  DB  196,65,57,196,68,122,10,5           ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm8,%xmm8
5639  DB  196,65,57,196,68,122,8,4            ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm8,%xmm8
5640  DB  196,65,57,196,68,122,6,3            ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm8,%xmm8
5641  DB  196,65,57,196,68,122,4,2            ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm8,%xmm8
5642  DB  196,65,57,196,68,122,2,1            ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm8,%xmm8
5643  DB  196,65,57,196,4,122,0               ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm8,%xmm8
5644  DB  233,159,254,255,255                 ; jmpq          14b3 <_sk_lerp_565_avx+0x14>
5645  DB  244                                 ; hlt
5646  DB  255                                 ; (bad)
5647  DB  255                                 ; (bad)
5648  DB  255                                 ; (bad)
5649  DB  236                                 ; in            (%dx),%al
5650  DB  255                                 ; (bad)
5651  DB  255                                 ; (bad)
5652  DB  255,228                             ; jmpq          *%rsp
5653  DB  255                                 ; (bad)
5654  DB  255                                 ; (bad)
5655  DB  255                                 ; (bad)
5656  DB  220,255                             ; fdivr         %st,%st(7)
5657  DB  255                                 ; (bad)
5658  DB  255,212                             ; callq         *%rsp
5659  DB  255                                 ; (bad)
5660  DB  255                                 ; (bad)
5661  DB  255,204                             ; dec           %esp
5662  DB  255                                 ; (bad)
5663  DB  255                                 ; (bad)
5664  DB  255,192                             ; inc           %eax
5665  DB  255                                 ; (bad)
5666  DB  255                                 ; (bad)
5667  DB  255                                 ; .byte         0xff
5668
5669PUBLIC _sk_load_tables_avx
5670_sk_load_tables_avx LABEL PROC
5671  DB  85                                  ; push          %rbp
5672  DB  65,87                               ; push          %r15
5673  DB  65,86                               ; push          %r14
5674  DB  65,85                               ; push          %r13
5675  DB  65,84                               ; push          %r12
5676  DB  83                                  ; push          %rbx
5677  DB  72,173                              ; lods          %ds:(%rsi),%rax
5678  DB  76,139,0                            ; mov           (%rax),%r8
5679  DB  72,133,201                          ; test          %rcx,%rcx
5680  DB  15,133,56,2,0,0                     ; jne           1880 <_sk_load_tables_avx+0x250>
5681  DB  196,65,124,16,4,184                 ; vmovups       (%r8,%rdi,4),%ymm8
5682  DB  187,255,0,0,0                       ; mov           $0xff,%ebx
5683  DB  197,249,110,195                     ; vmovd         %ebx,%xmm0
5684  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
5685  DB  196,99,125,24,200,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm9
5686  DB  196,193,52,84,192                   ; vandps        %ymm8,%ymm9,%ymm0
5687  DB  196,193,249,126,193                 ; vmovq         %xmm0,%r9
5688  DB  69,137,203                          ; mov           %r9d,%r11d
5689  DB  196,195,249,22,194,1                ; vpextrq       $0x1,%xmm0,%r10
5690  DB  69,137,214                          ; mov           %r10d,%r14d
5691  DB  73,193,234,32                       ; shr           $0x20,%r10
5692  DB  73,193,233,32                       ; shr           $0x20,%r9
5693  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
5694  DB  196,193,249,126,196                 ; vmovq         %xmm0,%r12
5695  DB  69,137,231                          ; mov           %r12d,%r15d
5696  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
5697  DB  65,137,221                          ; mov           %ebx,%r13d
5698  DB  72,193,235,32                       ; shr           $0x20,%rbx
5699  DB  73,193,236,32                       ; shr           $0x20,%r12
5700  DB  72,139,104,8                        ; mov           0x8(%rax),%rbp
5701  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
5702  DB  196,161,122,16,68,189,0             ; vmovss        0x0(%rbp,%r15,4),%xmm0
5703  DB  196,163,121,33,68,165,0,16          ; vinsertps     $0x10,0x0(%rbp,%r12,4),%xmm0,%xmm0
5704  DB  196,161,122,16,76,173,0             ; vmovss        0x0(%rbp,%r13,4),%xmm1
5705  DB  196,227,121,33,193,32               ; vinsertps     $0x20,%xmm1,%xmm0,%xmm0
5706  DB  197,250,16,76,157,0                 ; vmovss        0x0(%rbp,%rbx,4),%xmm1
5707  DB  196,227,121,33,193,48               ; vinsertps     $0x30,%xmm1,%xmm0,%xmm0
5708  DB  196,161,122,16,76,157,0             ; vmovss        0x0(%rbp,%r11,4),%xmm1
5709  DB  196,163,113,33,76,141,0,16          ; vinsertps     $0x10,0x0(%rbp,%r9,4),%xmm1,%xmm1
5710  DB  196,161,122,16,92,181,0             ; vmovss        0x0(%rbp,%r14,4),%xmm3
5711  DB  196,227,113,33,203,32               ; vinsertps     $0x20,%xmm3,%xmm1,%xmm1
5712  DB  196,161,122,16,92,149,0             ; vmovss        0x0(%rbp,%r10,4),%xmm3
5713  DB  196,227,113,33,203,48               ; vinsertps     $0x30,%xmm3,%xmm1,%xmm1
5714  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
5715  DB  196,193,113,114,208,8               ; vpsrld        $0x8,%xmm8,%xmm1
5716  DB  196,67,125,25,194,1                 ; vextractf128  $0x1,%ymm8,%xmm10
5717  DB  196,193,105,114,210,8               ; vpsrld        $0x8,%xmm10,%xmm2
5718  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
5719  DB  197,180,84,201                      ; vandps        %ymm1,%ymm9,%ymm1
5720  DB  196,193,249,126,201                 ; vmovq         %xmm1,%r9
5721  DB  69,137,203                          ; mov           %r9d,%r11d
5722  DB  196,195,249,22,202,1                ; vpextrq       $0x1,%xmm1,%r10
5723  DB  69,137,214                          ; mov           %r10d,%r14d
5724  DB  73,193,234,32                       ; shr           $0x20,%r10
5725  DB  73,193,233,32                       ; shr           $0x20,%r9
5726  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
5727  DB  196,225,249,126,205                 ; vmovq         %xmm1,%rbp
5728  DB  65,137,239                          ; mov           %ebp,%r15d
5729  DB  196,227,249,22,203,1                ; vpextrq       $0x1,%xmm1,%rbx
5730  DB  65,137,220                          ; mov           %ebx,%r12d
5731  DB  72,193,235,32                       ; shr           $0x20,%rbx
5732  DB  72,193,237,32                       ; shr           $0x20,%rbp
5733  DB  196,129,122,16,12,184               ; vmovss        (%r8,%r15,4),%xmm1
5734  DB  196,195,113,33,12,168,16            ; vinsertps     $0x10,(%r8,%rbp,4),%xmm1,%xmm1
5735  DB  196,129,122,16,20,160               ; vmovss        (%r8,%r12,4),%xmm2
5736  DB  196,227,113,33,202,32               ; vinsertps     $0x20,%xmm2,%xmm1,%xmm1
5737  DB  196,193,122,16,20,152               ; vmovss        (%r8,%rbx,4),%xmm2
5738  DB  196,227,113,33,202,48               ; vinsertps     $0x30,%xmm2,%xmm1,%xmm1
5739  DB  196,129,122,16,20,152               ; vmovss        (%r8,%r11,4),%xmm2
5740  DB  196,131,105,33,20,136,16            ; vinsertps     $0x10,(%r8,%r9,4),%xmm2,%xmm2
5741  DB  196,129,122,16,28,176               ; vmovss        (%r8,%r14,4),%xmm3
5742  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
5743  DB  196,129,122,16,28,144               ; vmovss        (%r8,%r10,4),%xmm3
5744  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
5745  DB  196,227,109,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm2,%ymm1
5746  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
5747  DB  196,193,105,114,208,16              ; vpsrld        $0x10,%xmm8,%xmm2
5748  DB  196,193,97,114,210,16               ; vpsrld        $0x10,%xmm10,%xmm3
5749  DB  196,227,109,24,211,1                ; vinsertf128   $0x1,%xmm3,%ymm2,%ymm2
5750  DB  197,180,84,210                      ; vandps        %ymm2,%ymm9,%ymm2
5751  DB  196,193,249,126,208                 ; vmovq         %xmm2,%r8
5752  DB  69,137,194                          ; mov           %r8d,%r10d
5753  DB  196,195,249,22,209,1                ; vpextrq       $0x1,%xmm2,%r9
5754  DB  69,137,203                          ; mov           %r9d,%r11d
5755  DB  73,193,233,32                       ; shr           $0x20,%r9
5756  DB  73,193,232,32                       ; shr           $0x20,%r8
5757  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
5758  DB  196,225,249,126,213                 ; vmovq         %xmm2,%rbp
5759  DB  65,137,238                          ; mov           %ebp,%r14d
5760  DB  196,227,249,22,211,1                ; vpextrq       $0x1,%xmm2,%rbx
5761  DB  65,137,223                          ; mov           %ebx,%r15d
5762  DB  72,193,235,32                       ; shr           $0x20,%rbx
5763  DB  72,193,237,32                       ; shr           $0x20,%rbp
5764  DB  196,161,122,16,20,176               ; vmovss        (%rax,%r14,4),%xmm2
5765  DB  196,227,105,33,20,168,16            ; vinsertps     $0x10,(%rax,%rbp,4),%xmm2,%xmm2
5766  DB  196,161,122,16,28,184               ; vmovss        (%rax,%r15,4),%xmm3
5767  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
5768  DB  197,250,16,28,152                   ; vmovss        (%rax,%rbx,4),%xmm3
5769  DB  196,99,105,33,203,48                ; vinsertps     $0x30,%xmm3,%xmm2,%xmm9
5770  DB  196,161,122,16,28,144               ; vmovss        (%rax,%r10,4),%xmm3
5771  DB  196,163,97,33,28,128,16             ; vinsertps     $0x10,(%rax,%r8,4),%xmm3,%xmm3
5772  DB  196,161,122,16,20,152               ; vmovss        (%rax,%r11,4),%xmm2
5773  DB  196,227,97,33,210,32                ; vinsertps     $0x20,%xmm2,%xmm3,%xmm2
5774  DB  196,161,122,16,28,136               ; vmovss        (%rax,%r9,4),%xmm3
5775  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
5776  DB  196,195,109,24,209,1                ; vinsertf128   $0x1,%xmm9,%ymm2,%ymm2
5777  DB  196,193,57,114,208,24               ; vpsrld        $0x18,%xmm8,%xmm8
5778  DB  196,193,97,114,210,24               ; vpsrld        $0x18,%xmm10,%xmm3
5779  DB  196,227,61,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm3
5780  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
5781  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
5782  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5783  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5784  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5785  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
5786  DB  72,173                              ; lods          %ds:(%rsi),%rax
5787  DB  91                                  ; pop           %rbx
5788  DB  65,92                               ; pop           %r12
5789  DB  65,93                               ; pop           %r13
5790  DB  65,94                               ; pop           %r14
5791  DB  65,95                               ; pop           %r15
5792  DB  93                                  ; pop           %rbp
5793  DB  255,224                             ; jmpq          *%rax
5794  DB  137,203                             ; mov           %ecx,%ebx
5795  DB  128,227,7                           ; and           $0x7,%bl
5796  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
5797  DB  254,203                             ; dec           %bl
5798  DB  128,251,6                           ; cmp           $0x6,%bl
5799  DB  15,135,185,253,255,255              ; ja            164e <_sk_load_tables_avx+0x1e>
5800  DB  15,182,219                          ; movzbl        %bl,%ebx
5801  DB  76,141,13,137,0,0,0                 ; lea           0x89(%rip),%r9        # 1928 <_sk_load_tables_avx+0x2f8>
5802  DB  73,99,28,153                        ; movslq        (%r9,%rbx,4),%rbx
5803  DB  76,1,203                            ; add           %r9,%rbx
5804  DB  255,227                             ; jmpq          *%rbx
5805  DB  196,193,121,110,68,184,24           ; vmovd         0x18(%r8,%rdi,4),%xmm0
5806  DB  197,249,112,192,68                  ; vpshufd       $0x44,%xmm0,%xmm0
5807  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5808  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
5809  DB  196,99,117,12,192,64                ; vblendps      $0x40,%ymm0,%ymm1,%ymm8
5810  DB  196,99,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm0
5811  DB  196,195,121,34,68,184,20,1          ; vpinsrd       $0x1,0x14(%r8,%rdi,4),%xmm0,%xmm0
5812  DB  196,99,61,24,192,1                  ; vinsertf128   $0x1,%xmm0,%ymm8,%ymm8
5813  DB  196,99,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm0
5814  DB  196,195,121,34,68,184,16,0          ; vpinsrd       $0x0,0x10(%r8,%rdi,4),%xmm0,%xmm0
5815  DB  196,99,61,24,192,1                  ; vinsertf128   $0x1,%xmm0,%ymm8,%ymm8
5816  DB  196,195,57,34,68,184,12,3           ; vpinsrd       $0x3,0xc(%r8,%rdi,4),%xmm8,%xmm0
5817  DB  196,99,61,12,192,15                 ; vblendps      $0xf,%ymm0,%ymm8,%ymm8
5818  DB  196,195,57,34,68,184,8,2            ; vpinsrd       $0x2,0x8(%r8,%rdi,4),%xmm8,%xmm0
5819  DB  196,99,61,12,192,15                 ; vblendps      $0xf,%ymm0,%ymm8,%ymm8
5820  DB  196,195,57,34,68,184,4,1            ; vpinsrd       $0x1,0x4(%r8,%rdi,4),%xmm8,%xmm0
5821  DB  196,99,61,12,192,15                 ; vblendps      $0xf,%ymm0,%ymm8,%ymm8
5822  DB  196,195,57,34,4,184,0               ; vpinsrd       $0x0,(%r8,%rdi,4),%xmm8,%xmm0
5823  DB  196,99,61,12,192,15                 ; vblendps      $0xf,%ymm0,%ymm8,%ymm8
5824  DB  233,38,253,255,255                  ; jmpq          164e <_sk_load_tables_avx+0x1e>
5825  DB  238                                 ; out           %al,(%dx)
5826  DB  255                                 ; (bad)
5827  DB  255                                 ; (bad)
5828  DB  255,224                             ; jmpq          *%rax
5829  DB  255                                 ; (bad)
5830  DB  255                                 ; (bad)
5831  DB  255,210                             ; callq         *%rdx
5832  DB  255                                 ; (bad)
5833  DB  255                                 ; (bad)
5834  DB  255,196                             ; inc           %esp
5835  DB  255                                 ; (bad)
5836  DB  255                                 ; (bad)
5837  DB  255,176,255,255,255,156             ; pushq         -0x63000001(%rax)
5838  DB  255                                 ; (bad)
5839  DB  255                                 ; (bad)
5840  DB  255                                 ; .byte         0xff
5841  DB  128,255,255                         ; cmp           $0xff,%bh
5842  DB  255                                 ; .byte         0xff
5843
5844PUBLIC _sk_load_tables_u16_be_avx
5845_sk_load_tables_u16_be_avx LABEL PROC
5846  DB  72,173                              ; lods          %ds:(%rsi),%rax
5847  DB  76,139,0                            ; mov           (%rax),%r8
5848  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
5849  DB  72,133,201                          ; test          %rcx,%rcx
5850  DB  15,133,165,2,0,0                    ; jne           1bff <_sk_load_tables_u16_be_avx+0x2bb>
5851  DB  196,1,121,16,4,72                   ; vmovupd       (%r8,%r9,2),%xmm8
5852  DB  196,129,121,16,84,72,16             ; vmovupd       0x10(%r8,%r9,2),%xmm2
5853  DB  196,129,121,16,92,72,32             ; vmovupd       0x20(%r8,%r9,2),%xmm3
5854  DB  196,1,122,111,76,72,48              ; vmovdqu       0x30(%r8,%r9,2),%xmm9
5855  DB  85                                  ; push          %rbp
5856  DB  65,87                               ; push          %r15
5857  DB  65,86                               ; push          %r14
5858  DB  65,85                               ; push          %r13
5859  DB  65,84                               ; push          %r12
5860  DB  83                                  ; push          %rbx
5861  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
5862  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
5863  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
5864  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
5865  DB  197,121,97,218                      ; vpunpcklwd    %xmm2,%xmm0,%xmm11
5866  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
5867  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
5868  DB  197,113,105,211                     ; vpunpckhwd    %xmm3,%xmm1,%xmm10
5869  DB  197,161,108,194                     ; vpunpcklqdq   %xmm2,%xmm11,%xmm0
5870  DB  196,65,57,239,192                   ; vpxor         %xmm8,%xmm8,%xmm8
5871  DB  196,193,121,105,200                 ; vpunpckhwd    %xmm8,%xmm0,%xmm1
5872  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
5873  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
5874  DB  187,255,0,0,0                       ; mov           $0xff,%ebx
5875  DB  197,249,110,203                     ; vmovd         %ebx,%xmm1
5876  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
5877  DB  196,99,117,24,225,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm12
5878  DB  196,193,124,84,196                  ; vandps        %ymm12,%ymm0,%ymm0
5879  DB  196,193,249,126,193                 ; vmovq         %xmm0,%r9
5880  DB  69,137,203                          ; mov           %r9d,%r11d
5881  DB  196,195,249,22,194,1                ; vpextrq       $0x1,%xmm0,%r10
5882  DB  69,137,214                          ; mov           %r10d,%r14d
5883  DB  73,193,234,32                       ; shr           $0x20,%r10
5884  DB  73,193,233,32                       ; shr           $0x20,%r9
5885  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
5886  DB  196,193,249,126,196                 ; vmovq         %xmm0,%r12
5887  DB  69,137,231                          ; mov           %r12d,%r15d
5888  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
5889  DB  65,137,221                          ; mov           %ebx,%r13d
5890  DB  72,193,235,32                       ; shr           $0x20,%rbx
5891  DB  73,193,236,32                       ; shr           $0x20,%r12
5892  DB  72,139,104,8                        ; mov           0x8(%rax),%rbp
5893  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
5894  DB  196,161,122,16,68,189,0             ; vmovss        0x0(%rbp,%r15,4),%xmm0
5895  DB  196,163,121,33,68,165,0,16          ; vinsertps     $0x10,0x0(%rbp,%r12,4),%xmm0,%xmm0
5896  DB  196,161,122,16,76,173,0             ; vmovss        0x0(%rbp,%r13,4),%xmm1
5897  DB  196,227,121,33,193,32               ; vinsertps     $0x20,%xmm1,%xmm0,%xmm0
5898  DB  197,250,16,76,157,0                 ; vmovss        0x0(%rbp,%rbx,4),%xmm1
5899  DB  196,227,121,33,193,48               ; vinsertps     $0x30,%xmm1,%xmm0,%xmm0
5900  DB  196,161,122,16,76,157,0             ; vmovss        0x0(%rbp,%r11,4),%xmm1
5901  DB  196,163,113,33,76,141,0,16          ; vinsertps     $0x10,0x0(%rbp,%r9,4),%xmm1,%xmm1
5902  DB  196,161,122,16,92,181,0             ; vmovss        0x0(%rbp,%r14,4),%xmm3
5903  DB  196,227,113,33,203,32               ; vinsertps     $0x20,%xmm3,%xmm1,%xmm1
5904  DB  196,161,122,16,92,149,0             ; vmovss        0x0(%rbp,%r10,4),%xmm3
5905  DB  196,227,113,33,203,48               ; vinsertps     $0x30,%xmm3,%xmm1,%xmm1
5906  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
5907  DB  197,161,109,202                     ; vpunpckhqdq   %xmm2,%xmm11,%xmm1
5908  DB  196,193,113,105,208                 ; vpunpckhwd    %xmm8,%xmm1,%xmm2
5909  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
5910  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
5911  DB  196,193,116,84,204                  ; vandps        %ymm12,%ymm1,%ymm1
5912  DB  196,193,249,126,201                 ; vmovq         %xmm1,%r9
5913  DB  69,137,203                          ; mov           %r9d,%r11d
5914  DB  196,195,249,22,202,1                ; vpextrq       $0x1,%xmm1,%r10
5915  DB  69,137,214                          ; mov           %r10d,%r14d
5916  DB  73,193,234,32                       ; shr           $0x20,%r10
5917  DB  73,193,233,32                       ; shr           $0x20,%r9
5918  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
5919  DB  196,225,249,126,205                 ; vmovq         %xmm1,%rbp
5920  DB  65,137,239                          ; mov           %ebp,%r15d
5921  DB  196,227,249,22,203,1                ; vpextrq       $0x1,%xmm1,%rbx
5922  DB  65,137,220                          ; mov           %ebx,%r12d
5923  DB  72,193,235,32                       ; shr           $0x20,%rbx
5924  DB  72,193,237,32                       ; shr           $0x20,%rbp
5925  DB  196,129,122,16,12,184               ; vmovss        (%r8,%r15,4),%xmm1
5926  DB  196,195,113,33,12,168,16            ; vinsertps     $0x10,(%r8,%rbp,4),%xmm1,%xmm1
5927  DB  196,129,122,16,20,160               ; vmovss        (%r8,%r12,4),%xmm2
5928  DB  196,227,113,33,202,32               ; vinsertps     $0x20,%xmm2,%xmm1,%xmm1
5929  DB  196,193,122,16,20,152               ; vmovss        (%r8,%rbx,4),%xmm2
5930  DB  196,227,113,33,202,48               ; vinsertps     $0x30,%xmm2,%xmm1,%xmm1
5931  DB  196,129,122,16,20,152               ; vmovss        (%r8,%r11,4),%xmm2
5932  DB  196,131,105,33,20,136,16            ; vinsertps     $0x10,(%r8,%r9,4),%xmm2,%xmm2
5933  DB  196,129,122,16,28,176               ; vmovss        (%r8,%r14,4),%xmm3
5934  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
5935  DB  196,129,122,16,28,144               ; vmovss        (%r8,%r10,4),%xmm3
5936  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
5937  DB  196,227,109,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm2,%ymm1
5938  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
5939  DB  196,193,49,108,210                  ; vpunpcklqdq   %xmm10,%xmm9,%xmm2
5940  DB  196,193,105,105,216                 ; vpunpckhwd    %xmm8,%xmm2,%xmm3
5941  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
5942  DB  196,227,109,24,211,1                ; vinsertf128   $0x1,%xmm3,%ymm2,%ymm2
5943  DB  196,193,108,84,212                  ; vandps        %ymm12,%ymm2,%ymm2
5944  DB  196,193,249,126,208                 ; vmovq         %xmm2,%r8
5945  DB  69,137,194                          ; mov           %r8d,%r10d
5946  DB  196,195,249,22,209,1                ; vpextrq       $0x1,%xmm2,%r9
5947  DB  69,137,203                          ; mov           %r9d,%r11d
5948  DB  73,193,233,32                       ; shr           $0x20,%r9
5949  DB  73,193,232,32                       ; shr           $0x20,%r8
5950  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
5951  DB  196,225,249,126,213                 ; vmovq         %xmm2,%rbp
5952  DB  65,137,238                          ; mov           %ebp,%r14d
5953  DB  196,227,249,22,211,1                ; vpextrq       $0x1,%xmm2,%rbx
5954  DB  65,137,223                          ; mov           %ebx,%r15d
5955  DB  72,193,235,32                       ; shr           $0x20,%rbx
5956  DB  72,193,237,32                       ; shr           $0x20,%rbp
5957  DB  196,161,122,16,20,176               ; vmovss        (%rax,%r14,4),%xmm2
5958  DB  196,227,105,33,20,168,16            ; vinsertps     $0x10,(%rax,%rbp,4),%xmm2,%xmm2
5959  DB  196,161,122,16,28,184               ; vmovss        (%rax,%r15,4),%xmm3
5960  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
5961  DB  197,250,16,28,152                   ; vmovss        (%rax,%rbx,4),%xmm3
5962  DB  196,99,105,33,219,48                ; vinsertps     $0x30,%xmm3,%xmm2,%xmm11
5963  DB  196,161,122,16,28,144               ; vmovss        (%rax,%r10,4),%xmm3
5964  DB  196,163,97,33,28,128,16             ; vinsertps     $0x10,(%rax,%r8,4),%xmm3,%xmm3
5965  DB  196,161,122,16,20,152               ; vmovss        (%rax,%r11,4),%xmm2
5966  DB  196,227,97,33,210,32                ; vinsertps     $0x20,%xmm2,%xmm3,%xmm2
5967  DB  196,161,122,16,28,136               ; vmovss        (%rax,%r9,4),%xmm3
5968  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
5969  DB  196,195,109,24,211,1                ; vinsertf128   $0x1,%xmm11,%ymm2,%ymm2
5970  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
5971  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5972  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5973  DB  196,99,101,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm11
5974  DB  196,193,49,109,218                  ; vpunpckhqdq   %xmm10,%xmm9,%xmm3
5975  DB  197,177,113,243,8                   ; vpsllw        $0x8,%xmm3,%xmm9
5976  DB  197,225,113,211,8                   ; vpsrlw        $0x8,%xmm3,%xmm3
5977  DB  197,177,235,219                     ; vpor          %xmm3,%xmm9,%xmm3
5978  DB  196,65,97,105,192                   ; vpunpckhwd    %xmm8,%xmm3,%xmm8
5979  DB  196,226,121,51,219                  ; vpmovzxwd     %xmm3,%xmm3
5980  DB  196,195,101,24,216,1                ; vinsertf128   $0x1,%xmm8,%ymm3,%ymm3
5981  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
5982  DB  196,193,100,89,219                  ; vmulps        %ymm11,%ymm3,%ymm3
5983  DB  72,173                              ; lods          %ds:(%rsi),%rax
5984  DB  91                                  ; pop           %rbx
5985  DB  65,92                               ; pop           %r12
5986  DB  65,93                               ; pop           %r13
5987  DB  65,94                               ; pop           %r14
5988  DB  65,95                               ; pop           %r15
5989  DB  93                                  ; pop           %rbp
5990  DB  255,224                             ; jmpq          *%rax
5991  DB  196,1,123,16,4,72                   ; vmovsd        (%r8,%r9,2),%xmm8
5992  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
5993  DB  72,131,249,1                        ; cmp           $0x1,%rcx
5994  DB  116,85                              ; je            1c65 <_sk_load_tables_u16_be_avx+0x321>
5995  DB  196,1,57,22,68,72,8                 ; vmovhpd       0x8(%r8,%r9,2),%xmm8,%xmm8
5996  DB  72,131,249,3                        ; cmp           $0x3,%rcx
5997  DB  114,72                              ; jb            1c65 <_sk_load_tables_u16_be_avx+0x321>
5998  DB  196,129,123,16,84,72,16             ; vmovsd        0x10(%r8,%r9,2),%xmm2
5999  DB  72,131,249,3                        ; cmp           $0x3,%rcx
6000  DB  116,72                              ; je            1c72 <_sk_load_tables_u16_be_avx+0x32e>
6001  DB  196,129,105,22,84,72,24             ; vmovhpd       0x18(%r8,%r9,2),%xmm2,%xmm2
6002  DB  72,131,249,5                        ; cmp           $0x5,%rcx
6003  DB  114,59                              ; jb            1c72 <_sk_load_tables_u16_be_avx+0x32e>
6004  DB  196,129,123,16,92,72,32             ; vmovsd        0x20(%r8,%r9,2),%xmm3
6005  DB  72,131,249,5                        ; cmp           $0x5,%rcx
6006  DB  15,132,45,253,255,255               ; je            1975 <_sk_load_tables_u16_be_avx+0x31>
6007  DB  196,129,97,22,92,72,40              ; vmovhpd       0x28(%r8,%r9,2),%xmm3,%xmm3
6008  DB  72,131,249,7                        ; cmp           $0x7,%rcx
6009  DB  15,130,28,253,255,255               ; jb            1975 <_sk_load_tables_u16_be_avx+0x31>
6010  DB  196,1,122,126,76,72,48              ; vmovq         0x30(%r8,%r9,2),%xmm9
6011  DB  233,16,253,255,255                  ; jmpq          1975 <_sk_load_tables_u16_be_avx+0x31>
6012  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
6013  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
6014  DB  233,3,253,255,255                   ; jmpq          1975 <_sk_load_tables_u16_be_avx+0x31>
6015  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
6016  DB  233,250,252,255,255                 ; jmpq          1975 <_sk_load_tables_u16_be_avx+0x31>
6017
6018PUBLIC _sk_load_tables_rgb_u16_be_avx
6019_sk_load_tables_rgb_u16_be_avx LABEL PROC
6020  DB  72,173                              ; lods          %ds:(%rsi),%rax
6021  DB  76,139,0                            ; mov           (%rax),%r8
6022  DB  76,141,12,127                       ; lea           (%rdi,%rdi,2),%r9
6023  DB  72,133,201                          ; test          %rcx,%rcx
6024  DB  15,133,146,2,0,0                    ; jne           1f1f <_sk_load_tables_rgb_u16_be_avx+0x2a4>
6025  DB  196,129,122,111,4,72                ; vmovdqu       (%r8,%r9,2),%xmm0
6026  DB  196,129,122,111,84,72,12            ; vmovdqu       0xc(%r8,%r9,2),%xmm2
6027  DB  196,129,122,111,76,72,24            ; vmovdqu       0x18(%r8,%r9,2),%xmm1
6028  DB  196,129,122,111,92,72,32            ; vmovdqu       0x20(%r8,%r9,2),%xmm3
6029  DB  197,225,115,219,4                   ; vpsrldq       $0x4,%xmm3,%xmm3
6030  DB  197,185,115,216,6                   ; vpsrldq       $0x6,%xmm0,%xmm8
6031  DB  197,177,115,218,6                   ; vpsrldq       $0x6,%xmm2,%xmm9
6032  DB  197,161,115,217,6                   ; vpsrldq       $0x6,%xmm1,%xmm11
6033  DB  197,169,115,219,6                   ; vpsrldq       $0x6,%xmm3,%xmm10
6034  DB  85                                  ; push          %rbp
6035  DB  65,87                               ; push          %r15
6036  DB  65,86                               ; push          %r14
6037  DB  65,85                               ; push          %r13
6038  DB  65,84                               ; push          %r12
6039  DB  83                                  ; push          %rbx
6040  DB  197,249,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm0
6041  DB  196,193,57,97,209                   ; vpunpcklwd    %xmm9,%xmm8,%xmm2
6042  DB  197,241,97,203                      ; vpunpcklwd    %xmm3,%xmm1,%xmm1
6043  DB  196,193,33,97,218                   ; vpunpcklwd    %xmm10,%xmm11,%xmm3
6044  DB  197,121,97,218                      ; vpunpcklwd    %xmm2,%xmm0,%xmm11
6045  DB  197,121,105,194                     ; vpunpckhwd    %xmm2,%xmm0,%xmm8
6046  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
6047  DB  197,113,105,211                     ; vpunpckhwd    %xmm3,%xmm1,%xmm10
6048  DB  197,161,108,194                     ; vpunpcklqdq   %xmm2,%xmm11,%xmm0
6049  DB  196,65,25,239,228                   ; vpxor         %xmm12,%xmm12,%xmm12
6050  DB  196,193,121,105,204                 ; vpunpckhwd    %xmm12,%xmm0,%xmm1
6051  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
6052  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
6053  DB  187,255,0,0,0                       ; mov           $0xff,%ebx
6054  DB  197,249,110,203                     ; vmovd         %ebx,%xmm1
6055  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
6056  DB  196,99,117,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm9
6057  DB  196,193,124,84,193                  ; vandps        %ymm9,%ymm0,%ymm0
6058  DB  196,193,249,126,193                 ; vmovq         %xmm0,%r9
6059  DB  69,137,203                          ; mov           %r9d,%r11d
6060  DB  196,195,249,22,194,1                ; vpextrq       $0x1,%xmm0,%r10
6061  DB  69,137,214                          ; mov           %r10d,%r14d
6062  DB  73,193,234,32                       ; shr           $0x20,%r10
6063  DB  73,193,233,32                       ; shr           $0x20,%r9
6064  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
6065  DB  196,193,249,126,196                 ; vmovq         %xmm0,%r12
6066  DB  69,137,231                          ; mov           %r12d,%r15d
6067  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
6068  DB  65,137,221                          ; mov           %ebx,%r13d
6069  DB  72,193,235,32                       ; shr           $0x20,%rbx
6070  DB  73,193,236,32                       ; shr           $0x20,%r12
6071  DB  72,139,104,8                        ; mov           0x8(%rax),%rbp
6072  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
6073  DB  196,161,122,16,68,189,0             ; vmovss        0x0(%rbp,%r15,4),%xmm0
6074  DB  196,163,121,33,68,165,0,16          ; vinsertps     $0x10,0x0(%rbp,%r12,4),%xmm0,%xmm0
6075  DB  196,161,122,16,76,173,0             ; vmovss        0x0(%rbp,%r13,4),%xmm1
6076  DB  196,227,121,33,193,32               ; vinsertps     $0x20,%xmm1,%xmm0,%xmm0
6077  DB  197,250,16,76,157,0                 ; vmovss        0x0(%rbp,%rbx,4),%xmm1
6078  DB  196,227,121,33,193,48               ; vinsertps     $0x30,%xmm1,%xmm0,%xmm0
6079  DB  196,161,122,16,76,157,0             ; vmovss        0x0(%rbp,%r11,4),%xmm1
6080  DB  196,163,113,33,76,141,0,16          ; vinsertps     $0x10,0x0(%rbp,%r9,4),%xmm1,%xmm1
6081  DB  196,161,122,16,92,181,0             ; vmovss        0x0(%rbp,%r14,4),%xmm3
6082  DB  196,227,113,33,203,32               ; vinsertps     $0x20,%xmm3,%xmm1,%xmm1
6083  DB  196,161,122,16,92,149,0             ; vmovss        0x0(%rbp,%r10,4),%xmm3
6084  DB  196,227,113,33,203,48               ; vinsertps     $0x30,%xmm3,%xmm1,%xmm1
6085  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
6086  DB  197,161,109,202                     ; vpunpckhqdq   %xmm2,%xmm11,%xmm1
6087  DB  196,193,113,105,212                 ; vpunpckhwd    %xmm12,%xmm1,%xmm2
6088  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
6089  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
6090  DB  196,193,116,84,201                  ; vandps        %ymm9,%ymm1,%ymm1
6091  DB  196,193,249,126,201                 ; vmovq         %xmm1,%r9
6092  DB  69,137,203                          ; mov           %r9d,%r11d
6093  DB  196,195,249,22,202,1                ; vpextrq       $0x1,%xmm1,%r10
6094  DB  69,137,214                          ; mov           %r10d,%r14d
6095  DB  73,193,234,32                       ; shr           $0x20,%r10
6096  DB  73,193,233,32                       ; shr           $0x20,%r9
6097  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6098  DB  196,225,249,126,205                 ; vmovq         %xmm1,%rbp
6099  DB  65,137,239                          ; mov           %ebp,%r15d
6100  DB  196,227,249,22,203,1                ; vpextrq       $0x1,%xmm1,%rbx
6101  DB  65,137,220                          ; mov           %ebx,%r12d
6102  DB  72,193,235,32                       ; shr           $0x20,%rbx
6103  DB  72,193,237,32                       ; shr           $0x20,%rbp
6104  DB  196,129,122,16,12,184               ; vmovss        (%r8,%r15,4),%xmm1
6105  DB  196,195,113,33,12,168,16            ; vinsertps     $0x10,(%r8,%rbp,4),%xmm1,%xmm1
6106  DB  196,129,122,16,20,160               ; vmovss        (%r8,%r12,4),%xmm2
6107  DB  196,227,113,33,202,32               ; vinsertps     $0x20,%xmm2,%xmm1,%xmm1
6108  DB  196,193,122,16,20,152               ; vmovss        (%r8,%rbx,4),%xmm2
6109  DB  196,227,113,33,202,48               ; vinsertps     $0x30,%xmm2,%xmm1,%xmm1
6110  DB  196,129,122,16,20,152               ; vmovss        (%r8,%r11,4),%xmm2
6111  DB  196,131,105,33,20,136,16            ; vinsertps     $0x10,(%r8,%r9,4),%xmm2,%xmm2
6112  DB  196,129,122,16,28,176               ; vmovss        (%r8,%r14,4),%xmm3
6113  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
6114  DB  196,129,122,16,28,144               ; vmovss        (%r8,%r10,4),%xmm3
6115  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
6116  DB  196,227,109,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm2,%ymm1
6117  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
6118  DB  196,193,57,108,210                  ; vpunpcklqdq   %xmm10,%xmm8,%xmm2
6119  DB  196,193,105,105,220                 ; vpunpckhwd    %xmm12,%xmm2,%xmm3
6120  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
6121  DB  196,227,109,24,211,1                ; vinsertf128   $0x1,%xmm3,%ymm2,%ymm2
6122  DB  196,193,108,84,209                  ; vandps        %ymm9,%ymm2,%ymm2
6123  DB  196,193,249,126,208                 ; vmovq         %xmm2,%r8
6124  DB  69,137,194                          ; mov           %r8d,%r10d
6125  DB  196,195,249,22,209,1                ; vpextrq       $0x1,%xmm2,%r9
6126  DB  69,137,203                          ; mov           %r9d,%r11d
6127  DB  73,193,233,32                       ; shr           $0x20,%r9
6128  DB  73,193,232,32                       ; shr           $0x20,%r8
6129  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6130  DB  196,225,249,126,213                 ; vmovq         %xmm2,%rbp
6131  DB  65,137,238                          ; mov           %ebp,%r14d
6132  DB  196,227,249,22,211,1                ; vpextrq       $0x1,%xmm2,%rbx
6133  DB  65,137,223                          ; mov           %ebx,%r15d
6134  DB  72,193,235,32                       ; shr           $0x20,%rbx
6135  DB  72,193,237,32                       ; shr           $0x20,%rbp
6136  DB  196,161,122,16,20,176               ; vmovss        (%rax,%r14,4),%xmm2
6137  DB  196,227,105,33,20,168,16            ; vinsertps     $0x10,(%rax,%rbp,4),%xmm2,%xmm2
6138  DB  196,161,122,16,28,184               ; vmovss        (%rax,%r15,4),%xmm3
6139  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
6140  DB  197,250,16,28,152                   ; vmovss        (%rax,%rbx,4),%xmm3
6141  DB  196,99,105,33,195,48                ; vinsertps     $0x30,%xmm3,%xmm2,%xmm8
6142  DB  196,161,122,16,28,144               ; vmovss        (%rax,%r10,4),%xmm3
6143  DB  196,163,97,33,28,128,16             ; vinsertps     $0x10,(%rax,%r8,4),%xmm3,%xmm3
6144  DB  196,161,122,16,20,152               ; vmovss        (%rax,%r11,4),%xmm2
6145  DB  196,227,97,33,210,32                ; vinsertps     $0x20,%xmm2,%xmm3,%xmm2
6146  DB  196,161,122,16,28,136               ; vmovss        (%rax,%r9,4),%xmm3
6147  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
6148  DB  196,195,109,24,208,1                ; vinsertf128   $0x1,%xmm8,%ymm2,%ymm2
6149  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
6150  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
6151  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
6152  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
6153  DB  72,173                              ; lods          %ds:(%rsi),%rax
6154  DB  91                                  ; pop           %rbx
6155  DB  65,92                               ; pop           %r12
6156  DB  65,93                               ; pop           %r13
6157  DB  65,94                               ; pop           %r14
6158  DB  65,95                               ; pop           %r15
6159  DB  93                                  ; pop           %rbp
6160  DB  255,224                             ; jmpq          *%rax
6161  DB  196,129,121,110,4,72                ; vmovd         (%r8,%r9,2),%xmm0
6162  DB  196,129,121,196,68,72,4,2           ; vpinsrw       $0x2,0x4(%r8,%r9,2),%xmm0,%xmm0
6163  DB  72,131,249,1                        ; cmp           $0x1,%rcx
6164  DB  117,5                               ; jne           1f38 <_sk_load_tables_rgb_u16_be_avx+0x2bd>
6165  DB  233,137,253,255,255                 ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6166  DB  196,129,121,110,76,72,6             ; vmovd         0x6(%r8,%r9,2),%xmm1
6167  DB  196,1,113,196,68,72,10,2            ; vpinsrw       $0x2,0xa(%r8,%r9,2),%xmm1,%xmm8
6168  DB  72,131,249,3                        ; cmp           $0x3,%rcx
6169  DB  114,26                              ; jb            1f67 <_sk_load_tables_rgb_u16_be_avx+0x2ec>
6170  DB  196,129,121,110,76,72,12            ; vmovd         0xc(%r8,%r9,2),%xmm1
6171  DB  196,129,113,196,84,72,16,2          ; vpinsrw       $0x2,0x10(%r8,%r9,2),%xmm1,%xmm2
6172  DB  72,131,249,3                        ; cmp           $0x3,%rcx
6173  DB  117,10                              ; jne           1f6c <_sk_load_tables_rgb_u16_be_avx+0x2f1>
6174  DB  233,90,253,255,255                  ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6175  DB  233,85,253,255,255                  ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6176  DB  196,129,121,110,76,72,18            ; vmovd         0x12(%r8,%r9,2),%xmm1
6177  DB  196,1,113,196,76,72,22,2            ; vpinsrw       $0x2,0x16(%r8,%r9,2),%xmm1,%xmm9
6178  DB  72,131,249,5                        ; cmp           $0x5,%rcx
6179  DB  114,26                              ; jb            1f9b <_sk_load_tables_rgb_u16_be_avx+0x320>
6180  DB  196,129,121,110,76,72,24            ; vmovd         0x18(%r8,%r9,2),%xmm1
6181  DB  196,129,113,196,76,72,28,2          ; vpinsrw       $0x2,0x1c(%r8,%r9,2),%xmm1,%xmm1
6182  DB  72,131,249,5                        ; cmp           $0x5,%rcx
6183  DB  117,10                              ; jne           1fa0 <_sk_load_tables_rgb_u16_be_avx+0x325>
6184  DB  233,38,253,255,255                  ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6185  DB  233,33,253,255,255                  ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6186  DB  196,129,121,110,92,72,30            ; vmovd         0x1e(%r8,%r9,2),%xmm3
6187  DB  196,1,97,196,92,72,34,2             ; vpinsrw       $0x2,0x22(%r8,%r9,2),%xmm3,%xmm11
6188  DB  72,131,249,7                        ; cmp           $0x7,%rcx
6189  DB  114,20                              ; jb            1fc9 <_sk_load_tables_rgb_u16_be_avx+0x34e>
6190  DB  196,129,121,110,92,72,36            ; vmovd         0x24(%r8,%r9,2),%xmm3
6191  DB  196,129,97,196,92,72,40,2           ; vpinsrw       $0x2,0x28(%r8,%r9,2),%xmm3,%xmm3
6192  DB  233,248,252,255,255                 ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6193  DB  233,243,252,255,255                 ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6194
6195PUBLIC _sk_byte_tables_avx
6196_sk_byte_tables_avx LABEL PROC
6197  DB  85                                  ; push          %rbp
6198  DB  65,87                               ; push          %r15
6199  DB  65,86                               ; push          %r14
6200  DB  65,85                               ; push          %r13
6201  DB  65,84                               ; push          %r12
6202  DB  83                                  ; push          %rbx
6203  DB  72,173                              ; lods          %ds:(%rsi),%rax
6204  DB  65,184,0,0,127,67                   ; mov           $0x437f0000,%r8d
6205  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
6206  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
6207  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6208  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
6209  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
6210  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
6211  DB  68,137,197                          ; mov           %r8d,%ebp
6212  DB  77,137,194                          ; mov           %r8,%r10
6213  DB  73,193,234,32                       ; shr           $0x20,%r10
6214  DB  196,193,249,126,192                 ; vmovq         %xmm0,%r8
6215  DB  69,137,195                          ; mov           %r8d,%r11d
6216  DB  77,137,199                          ; mov           %r8,%r15
6217  DB  73,193,239,32                       ; shr           $0x20,%r15
6218  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
6219  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
6220  DB  69,137,198                          ; mov           %r8d,%r14d
6221  DB  77,137,196                          ; mov           %r8,%r12
6222  DB  73,193,236,32                       ; shr           $0x20,%r12
6223  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
6224  DB  65,137,221                          ; mov           %ebx,%r13d
6225  DB  72,193,235,32                       ; shr           $0x20,%rbx
6226  DB  76,139,8                            ; mov           (%rax),%r9
6227  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
6228  DB  196,131,121,32,4,25,0               ; vpinsrb       $0x0,(%r9,%r11,1),%xmm0,%xmm0
6229  DB  196,131,121,32,4,57,1               ; vpinsrb       $0x1,(%r9,%r15,1),%xmm0,%xmm0
6230  DB  65,15,182,44,41                     ; movzbl        (%r9,%rbp,1),%ebp
6231  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
6232  DB  67,15,182,44,17                     ; movzbl        (%r9,%r10,1),%ebp
6233  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
6234  DB  196,98,121,49,200                   ; vpmovzxbd     %xmm0,%xmm9
6235  DB  196,131,121,32,4,41,0               ; vpinsrb       $0x0,(%r9,%r13,1),%xmm0,%xmm0
6236  DB  196,195,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%rbx,1),%xmm0,%xmm0
6237  DB  67,15,182,44,49                     ; movzbl        (%r9,%r14,1),%ebp
6238  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
6239  DB  67,15,182,44,33                     ; movzbl        (%r9,%r12,1),%ebp
6240  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
6241  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
6242  DB  196,227,53,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm0
6243  DB  197,124,91,208                      ; vcvtdq2ps     %ymm0,%ymm10
6244  DB  189,129,128,128,59                  ; mov           $0x3b808081,%ebp
6245  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
6246  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6247  DB  196,99,125,24,200,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm9
6248  DB  196,193,44,89,193                   ; vmulps        %ymm9,%ymm10,%ymm0
6249  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
6250  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
6251  DB  196,227,249,22,205,1                ; vpextrq       $0x1,%xmm1,%rbp
6252  DB  65,137,233                          ; mov           %ebp,%r9d
6253  DB  72,193,237,32                       ; shr           $0x20,%rbp
6254  DB  196,225,249,126,203                 ; vmovq         %xmm1,%rbx
6255  DB  65,137,218                          ; mov           %ebx,%r10d
6256  DB  72,193,235,32                       ; shr           $0x20,%rbx
6257  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6258  DB  196,195,249,22,203,1                ; vpextrq       $0x1,%xmm1,%r11
6259  DB  69,137,222                          ; mov           %r11d,%r14d
6260  DB  73,193,235,32                       ; shr           $0x20,%r11
6261  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
6262  DB  69,137,252                          ; mov           %r15d,%r12d
6263  DB  73,193,239,32                       ; shr           $0x20,%r15
6264  DB  196,131,121,32,12,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm1
6265  DB  196,195,113,32,12,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm1,%xmm1
6266  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
6267  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
6268  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
6269  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
6270  DB  196,98,121,49,209                   ; vpmovzxbd     %xmm1,%xmm10
6271  DB  196,131,121,32,12,32,0              ; vpinsrb       $0x0,(%r8,%r12,1),%xmm0,%xmm1
6272  DB  196,131,113,32,12,56,1              ; vpinsrb       $0x1,(%r8,%r15,1),%xmm1,%xmm1
6273  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
6274  DB  196,227,113,32,205,2                ; vpinsrb       $0x2,%ebp,%xmm1,%xmm1
6275  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
6276  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
6277  DB  196,226,121,49,201                  ; vpmovzxbd     %xmm1,%xmm1
6278  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
6279  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
6280  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
6281  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
6282  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
6283  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
6284  DB  196,227,249,22,213,1                ; vpextrq       $0x1,%xmm2,%rbp
6285  DB  65,137,233                          ; mov           %ebp,%r9d
6286  DB  72,193,237,32                       ; shr           $0x20,%rbp
6287  DB  196,225,249,126,211                 ; vmovq         %xmm2,%rbx
6288  DB  65,137,218                          ; mov           %ebx,%r10d
6289  DB  72,193,235,32                       ; shr           $0x20,%rbx
6290  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6291  DB  196,195,249,22,211,1                ; vpextrq       $0x1,%xmm2,%r11
6292  DB  69,137,222                          ; mov           %r11d,%r14d
6293  DB  73,193,235,32                       ; shr           $0x20,%r11
6294  DB  196,193,249,126,215                 ; vmovq         %xmm2,%r15
6295  DB  69,137,252                          ; mov           %r15d,%r12d
6296  DB  73,193,239,32                       ; shr           $0x20,%r15
6297  DB  196,131,121,32,20,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm2
6298  DB  196,195,105,32,20,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm2,%xmm2
6299  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
6300  DB  196,227,105,32,211,2                ; vpinsrb       $0x2,%ebx,%xmm2,%xmm2
6301  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
6302  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
6303  DB  196,98,121,49,210                   ; vpmovzxbd     %xmm2,%xmm10
6304  DB  196,131,121,32,20,32,0              ; vpinsrb       $0x0,(%r8,%r12,1),%xmm0,%xmm2
6305  DB  196,131,105,32,20,56,1              ; vpinsrb       $0x1,(%r8,%r15,1),%xmm2,%xmm2
6306  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
6307  DB  196,227,105,32,213,2                ; vpinsrb       $0x2,%ebp,%xmm2,%xmm2
6308  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
6309  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
6310  DB  196,226,121,49,210                  ; vpmovzxbd     %xmm2,%xmm2
6311  DB  196,227,45,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm10,%ymm2
6312  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
6313  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
6314  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
6315  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
6316  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
6317  DB  196,227,249,22,221,1                ; vpextrq       $0x1,%xmm3,%rbp
6318  DB  65,137,232                          ; mov           %ebp,%r8d
6319  DB  72,193,237,32                       ; shr           $0x20,%rbp
6320  DB  196,225,249,126,219                 ; vmovq         %xmm3,%rbx
6321  DB  65,137,217                          ; mov           %ebx,%r9d
6322  DB  72,193,235,32                       ; shr           $0x20,%rbx
6323  DB  196,227,125,25,219,1                ; vextractf128  $0x1,%ymm3,%xmm3
6324  DB  196,195,249,22,218,1                ; vpextrq       $0x1,%xmm3,%r10
6325  DB  69,137,211                          ; mov           %r10d,%r11d
6326  DB  73,193,234,32                       ; shr           $0x20,%r10
6327  DB  196,193,249,126,222                 ; vmovq         %xmm3,%r14
6328  DB  69,137,247                          ; mov           %r14d,%r15d
6329  DB  73,193,238,32                       ; shr           $0x20,%r14
6330  DB  196,163,121,32,28,8,0               ; vpinsrb       $0x0,(%rax,%r9,1),%xmm0,%xmm3
6331  DB  196,227,97,32,28,24,1               ; vpinsrb       $0x1,(%rax,%rbx,1),%xmm3,%xmm3
6332  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
6333  DB  196,227,97,32,219,2                 ; vpinsrb       $0x2,%ebx,%xmm3,%xmm3
6334  DB  15,182,44,40                        ; movzbl        (%rax,%rbp,1),%ebp
6335  DB  196,227,97,32,221,3                 ; vpinsrb       $0x3,%ebp,%xmm3,%xmm3
6336  DB  196,98,121,49,195                   ; vpmovzxbd     %xmm3,%xmm8
6337  DB  196,163,121,32,28,56,0              ; vpinsrb       $0x0,(%rax,%r15,1),%xmm0,%xmm3
6338  DB  196,163,97,32,28,48,1               ; vpinsrb       $0x1,(%rax,%r14,1),%xmm3,%xmm3
6339  DB  66,15,182,44,24                     ; movzbl        (%rax,%r11,1),%ebp
6340  DB  196,227,97,32,221,2                 ; vpinsrb       $0x2,%ebp,%xmm3,%xmm3
6341  DB  66,15,182,4,16                      ; movzbl        (%rax,%r10,1),%eax
6342  DB  196,227,97,32,216,3                 ; vpinsrb       $0x3,%eax,%xmm3,%xmm3
6343  DB  196,226,121,49,219                  ; vpmovzxbd     %xmm3,%xmm3
6344  DB  196,227,61,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm3
6345  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
6346  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
6347  DB  72,173                              ; lods          %ds:(%rsi),%rax
6348  DB  91                                  ; pop           %rbx
6349  DB  65,92                               ; pop           %r12
6350  DB  65,93                               ; pop           %r13
6351  DB  65,94                               ; pop           %r14
6352  DB  65,95                               ; pop           %r15
6353  DB  93                                  ; pop           %rbp
6354  DB  255,224                             ; jmpq          *%rax
6355
6356PUBLIC _sk_byte_tables_rgb_avx
6357_sk_byte_tables_rgb_avx LABEL PROC
6358  DB  85                                  ; push          %rbp
6359  DB  65,87                               ; push          %r15
6360  DB  65,86                               ; push          %r14
6361  DB  65,85                               ; push          %r13
6362  DB  65,84                               ; push          %r12
6363  DB  83                                  ; push          %rbx
6364  DB  72,173                              ; lods          %ds:(%rsi),%rax
6365  DB  68,139,64,24                        ; mov           0x18(%rax),%r8d
6366  DB  65,255,200                          ; dec           %r8d
6367  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
6368  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6369  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6370  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6371  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
6372  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
6373  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
6374  DB  68,137,197                          ; mov           %r8d,%ebp
6375  DB  77,137,194                          ; mov           %r8,%r10
6376  DB  73,193,234,32                       ; shr           $0x20,%r10
6377  DB  196,193,249,126,192                 ; vmovq         %xmm0,%r8
6378  DB  69,137,195                          ; mov           %r8d,%r11d
6379  DB  77,137,199                          ; mov           %r8,%r15
6380  DB  73,193,239,32                       ; shr           $0x20,%r15
6381  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
6382  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
6383  DB  69,137,198                          ; mov           %r8d,%r14d
6384  DB  77,137,196                          ; mov           %r8,%r12
6385  DB  73,193,236,32                       ; shr           $0x20,%r12
6386  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
6387  DB  65,137,221                          ; mov           %ebx,%r13d
6388  DB  72,193,235,32                       ; shr           $0x20,%rbx
6389  DB  76,139,8                            ; mov           (%rax),%r9
6390  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
6391  DB  196,131,121,32,4,25,0               ; vpinsrb       $0x0,(%r9,%r11,1),%xmm0,%xmm0
6392  DB  196,131,121,32,4,57,1               ; vpinsrb       $0x1,(%r9,%r15,1),%xmm0,%xmm0
6393  DB  65,15,182,44,41                     ; movzbl        (%r9,%rbp,1),%ebp
6394  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
6395  DB  67,15,182,44,17                     ; movzbl        (%r9,%r10,1),%ebp
6396  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
6397  DB  196,98,121,49,200                   ; vpmovzxbd     %xmm0,%xmm9
6398  DB  196,131,121,32,4,41,0               ; vpinsrb       $0x0,(%r9,%r13,1),%xmm0,%xmm0
6399  DB  196,195,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%rbx,1),%xmm0,%xmm0
6400  DB  67,15,182,44,49                     ; movzbl        (%r9,%r14,1),%ebp
6401  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
6402  DB  67,15,182,44,33                     ; movzbl        (%r9,%r12,1),%ebp
6403  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
6404  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
6405  DB  196,227,53,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm0
6406  DB  197,124,91,208                      ; vcvtdq2ps     %ymm0,%ymm10
6407  DB  189,129,128,128,59                  ; mov           $0x3b808081,%ebp
6408  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
6409  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6410  DB  196,99,125,24,200,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm9
6411  DB  196,193,44,89,193                   ; vmulps        %ymm9,%ymm10,%ymm0
6412  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
6413  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
6414  DB  196,227,249,22,205,1                ; vpextrq       $0x1,%xmm1,%rbp
6415  DB  65,137,233                          ; mov           %ebp,%r9d
6416  DB  72,193,237,32                       ; shr           $0x20,%rbp
6417  DB  196,225,249,126,203                 ; vmovq         %xmm1,%rbx
6418  DB  65,137,218                          ; mov           %ebx,%r10d
6419  DB  72,193,235,32                       ; shr           $0x20,%rbx
6420  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6421  DB  196,195,249,22,203,1                ; vpextrq       $0x1,%xmm1,%r11
6422  DB  69,137,222                          ; mov           %r11d,%r14d
6423  DB  73,193,235,32                       ; shr           $0x20,%r11
6424  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
6425  DB  69,137,252                          ; mov           %r15d,%r12d
6426  DB  73,193,239,32                       ; shr           $0x20,%r15
6427  DB  196,131,121,32,12,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm1
6428  DB  196,195,113,32,12,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm1,%xmm1
6429  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
6430  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
6431  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
6432  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
6433  DB  196,98,121,49,209                   ; vpmovzxbd     %xmm1,%xmm10
6434  DB  196,131,121,32,12,32,0              ; vpinsrb       $0x0,(%r8,%r12,1),%xmm0,%xmm1
6435  DB  196,131,113,32,12,56,1              ; vpinsrb       $0x1,(%r8,%r15,1),%xmm1,%xmm1
6436  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
6437  DB  196,227,113,32,205,2                ; vpinsrb       $0x2,%ebp,%xmm1,%xmm1
6438  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
6439  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
6440  DB  196,226,121,49,201                  ; vpmovzxbd     %xmm1,%xmm1
6441  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
6442  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
6443  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
6444  DB  72,139,64,16                        ; mov           0x10(%rax),%rax
6445  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
6446  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
6447  DB  196,227,249,22,213,1                ; vpextrq       $0x1,%xmm2,%rbp
6448  DB  65,137,232                          ; mov           %ebp,%r8d
6449  DB  72,193,237,32                       ; shr           $0x20,%rbp
6450  DB  196,225,249,126,211                 ; vmovq         %xmm2,%rbx
6451  DB  65,137,217                          ; mov           %ebx,%r9d
6452  DB  72,193,235,32                       ; shr           $0x20,%rbx
6453  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6454  DB  196,195,249,22,210,1                ; vpextrq       $0x1,%xmm2,%r10
6455  DB  69,137,211                          ; mov           %r10d,%r11d
6456  DB  73,193,234,32                       ; shr           $0x20,%r10
6457  DB  196,193,249,126,214                 ; vmovq         %xmm2,%r14
6458  DB  69,137,247                          ; mov           %r14d,%r15d
6459  DB  73,193,238,32                       ; shr           $0x20,%r14
6460  DB  196,163,121,32,20,8,0               ; vpinsrb       $0x0,(%rax,%r9,1),%xmm0,%xmm2
6461  DB  196,227,105,32,20,24,1              ; vpinsrb       $0x1,(%rax,%rbx,1),%xmm2,%xmm2
6462  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
6463  DB  196,227,105,32,211,2                ; vpinsrb       $0x2,%ebx,%xmm2,%xmm2
6464  DB  15,182,44,40                        ; movzbl        (%rax,%rbp,1),%ebp
6465  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
6466  DB  196,98,121,49,194                   ; vpmovzxbd     %xmm2,%xmm8
6467  DB  196,163,121,32,20,56,0              ; vpinsrb       $0x0,(%rax,%r15,1),%xmm0,%xmm2
6468  DB  196,163,105,32,20,48,1              ; vpinsrb       $0x1,(%rax,%r14,1),%xmm2,%xmm2
6469  DB  66,15,182,44,24                     ; movzbl        (%rax,%r11,1),%ebp
6470  DB  196,227,105,32,213,2                ; vpinsrb       $0x2,%ebp,%xmm2,%xmm2
6471  DB  66,15,182,4,16                      ; movzbl        (%rax,%r10,1),%eax
6472  DB  196,227,105,32,208,3                ; vpinsrb       $0x3,%eax,%xmm2,%xmm2
6473  DB  196,226,121,49,210                  ; vpmovzxbd     %xmm2,%xmm2
6474  DB  196,227,61,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm8,%ymm2
6475  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
6476  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
6477  DB  72,173                              ; lods          %ds:(%rsi),%rax
6478  DB  91                                  ; pop           %rbx
6479  DB  65,92                               ; pop           %r12
6480  DB  65,93                               ; pop           %r13
6481  DB  65,94                               ; pop           %r14
6482  DB  65,95                               ; pop           %r15
6483  DB  93                                  ; pop           %rbp
6484  DB  255,224                             ; jmpq          *%rax
6485
6486PUBLIC _sk_table_r_avx
6487_sk_table_r_avx LABEL PROC
6488  DB  65,87                               ; push          %r15
6489  DB  65,86                               ; push          %r14
6490  DB  65,84                               ; push          %r12
6491  DB  83                                  ; push          %rbx
6492  DB  72,173                              ; lods          %ds:(%rsi),%rax
6493  DB  76,139,0                            ; mov           (%rax),%r8
6494  DB  139,64,8                            ; mov           0x8(%rax),%eax
6495  DB  255,200                             ; dec           %eax
6496  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6497  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6498  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6499  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6500  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
6501  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
6502  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
6503  DB  65,137,193                          ; mov           %eax,%r9d
6504  DB  72,193,232,32                       ; shr           $0x20,%rax
6505  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
6506  DB  69,137,211                          ; mov           %r10d,%r11d
6507  DB  73,193,234,32                       ; shr           $0x20,%r10
6508  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
6509  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
6510  DB  65,137,222                          ; mov           %ebx,%r14d
6511  DB  72,193,235,32                       ; shr           $0x20,%rbx
6512  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
6513  DB  69,137,252                          ; mov           %r15d,%r12d
6514  DB  73,193,239,32                       ; shr           $0x20,%r15
6515  DB  196,129,122,16,4,160                ; vmovss        (%r8,%r12,4),%xmm0
6516  DB  196,3,121,33,4,184,16               ; vinsertps     $0x10,(%r8,%r15,4),%xmm0,%xmm8
6517  DB  196,129,122,16,4,176                ; vmovss        (%r8,%r14,4),%xmm0
6518  DB  196,99,57,33,192,32                 ; vinsertps     $0x20,%xmm0,%xmm8,%xmm8
6519  DB  196,193,122,16,4,152                ; vmovss        (%r8,%rbx,4),%xmm0
6520  DB  196,99,57,33,192,48                 ; vinsertps     $0x30,%xmm0,%xmm8,%xmm8
6521  DB  196,129,122,16,4,152                ; vmovss        (%r8,%r11,4),%xmm0
6522  DB  196,3,121,33,12,144,16              ; vinsertps     $0x10,(%r8,%r10,4),%xmm0,%xmm9
6523  DB  196,129,122,16,4,136                ; vmovss        (%r8,%r9,4),%xmm0
6524  DB  196,99,49,33,200,32                 ; vinsertps     $0x20,%xmm0,%xmm9,%xmm9
6525  DB  196,193,122,16,4,128                ; vmovss        (%r8,%rax,4),%xmm0
6526  DB  196,227,49,33,192,48                ; vinsertps     $0x30,%xmm0,%xmm9,%xmm0
6527  DB  196,195,125,24,192,1                ; vinsertf128   $0x1,%xmm8,%ymm0,%ymm0
6528  DB  72,173                              ; lods          %ds:(%rsi),%rax
6529  DB  91                                  ; pop           %rbx
6530  DB  65,92                               ; pop           %r12
6531  DB  65,94                               ; pop           %r14
6532  DB  65,95                               ; pop           %r15
6533  DB  255,224                             ; jmpq          *%rax
6534
6535PUBLIC _sk_table_g_avx
6536_sk_table_g_avx LABEL PROC
6537  DB  65,87                               ; push          %r15
6538  DB  65,86                               ; push          %r14
6539  DB  65,84                               ; push          %r12
6540  DB  83                                  ; push          %rbx
6541  DB  72,173                              ; lods          %ds:(%rsi),%rax
6542  DB  76,139,0                            ; mov           (%rax),%r8
6543  DB  139,64,8                            ; mov           0x8(%rax),%eax
6544  DB  255,200                             ; dec           %eax
6545  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6546  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6547  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6548  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6549  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
6550  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
6551  DB  196,227,249,22,200,1                ; vpextrq       $0x1,%xmm1,%rax
6552  DB  65,137,193                          ; mov           %eax,%r9d
6553  DB  72,193,232,32                       ; shr           $0x20,%rax
6554  DB  196,193,249,126,202                 ; vmovq         %xmm1,%r10
6555  DB  69,137,211                          ; mov           %r10d,%r11d
6556  DB  73,193,234,32                       ; shr           $0x20,%r10
6557  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6558  DB  196,227,249,22,203,1                ; vpextrq       $0x1,%xmm1,%rbx
6559  DB  65,137,222                          ; mov           %ebx,%r14d
6560  DB  72,193,235,32                       ; shr           $0x20,%rbx
6561  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
6562  DB  69,137,252                          ; mov           %r15d,%r12d
6563  DB  73,193,239,32                       ; shr           $0x20,%r15
6564  DB  196,129,122,16,12,160               ; vmovss        (%r8,%r12,4),%xmm1
6565  DB  196,3,113,33,4,184,16               ; vinsertps     $0x10,(%r8,%r15,4),%xmm1,%xmm8
6566  DB  196,129,122,16,12,176               ; vmovss        (%r8,%r14,4),%xmm1
6567  DB  196,99,57,33,193,32                 ; vinsertps     $0x20,%xmm1,%xmm8,%xmm8
6568  DB  196,193,122,16,12,152               ; vmovss        (%r8,%rbx,4),%xmm1
6569  DB  196,99,57,33,193,48                 ; vinsertps     $0x30,%xmm1,%xmm8,%xmm8
6570  DB  196,129,122,16,12,152               ; vmovss        (%r8,%r11,4),%xmm1
6571  DB  196,3,113,33,12,144,16              ; vinsertps     $0x10,(%r8,%r10,4),%xmm1,%xmm9
6572  DB  196,129,122,16,12,136               ; vmovss        (%r8,%r9,4),%xmm1
6573  DB  196,99,49,33,201,32                 ; vinsertps     $0x20,%xmm1,%xmm9,%xmm9
6574  DB  196,193,122,16,12,128               ; vmovss        (%r8,%rax,4),%xmm1
6575  DB  196,227,49,33,201,48                ; vinsertps     $0x30,%xmm1,%xmm9,%xmm1
6576  DB  196,195,117,24,200,1                ; vinsertf128   $0x1,%xmm8,%ymm1,%ymm1
6577  DB  72,173                              ; lods          %ds:(%rsi),%rax
6578  DB  91                                  ; pop           %rbx
6579  DB  65,92                               ; pop           %r12
6580  DB  65,94                               ; pop           %r14
6581  DB  65,95                               ; pop           %r15
6582  DB  255,224                             ; jmpq          *%rax
6583
6584PUBLIC _sk_table_b_avx
6585_sk_table_b_avx LABEL PROC
6586  DB  65,87                               ; push          %r15
6587  DB  65,86                               ; push          %r14
6588  DB  65,84                               ; push          %r12
6589  DB  83                                  ; push          %rbx
6590  DB  72,173                              ; lods          %ds:(%rsi),%rax
6591  DB  76,139,0                            ; mov           (%rax),%r8
6592  DB  139,64,8                            ; mov           0x8(%rax),%eax
6593  DB  255,200                             ; dec           %eax
6594  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6595  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6596  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6597  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6598  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
6599  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
6600  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
6601  DB  65,137,193                          ; mov           %eax,%r9d
6602  DB  72,193,232,32                       ; shr           $0x20,%rax
6603  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
6604  DB  69,137,211                          ; mov           %r10d,%r11d
6605  DB  73,193,234,32                       ; shr           $0x20,%r10
6606  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6607  DB  196,227,249,22,211,1                ; vpextrq       $0x1,%xmm2,%rbx
6608  DB  65,137,222                          ; mov           %ebx,%r14d
6609  DB  72,193,235,32                       ; shr           $0x20,%rbx
6610  DB  196,193,249,126,215                 ; vmovq         %xmm2,%r15
6611  DB  69,137,252                          ; mov           %r15d,%r12d
6612  DB  73,193,239,32                       ; shr           $0x20,%r15
6613  DB  196,129,122,16,20,160               ; vmovss        (%r8,%r12,4),%xmm2
6614  DB  196,3,105,33,4,184,16               ; vinsertps     $0x10,(%r8,%r15,4),%xmm2,%xmm8
6615  DB  196,129,122,16,20,176               ; vmovss        (%r8,%r14,4),%xmm2
6616  DB  196,99,57,33,194,32                 ; vinsertps     $0x20,%xmm2,%xmm8,%xmm8
6617  DB  196,193,122,16,20,152               ; vmovss        (%r8,%rbx,4),%xmm2
6618  DB  196,99,57,33,194,48                 ; vinsertps     $0x30,%xmm2,%xmm8,%xmm8
6619  DB  196,129,122,16,20,152               ; vmovss        (%r8,%r11,4),%xmm2
6620  DB  196,3,105,33,12,144,16              ; vinsertps     $0x10,(%r8,%r10,4),%xmm2,%xmm9
6621  DB  196,129,122,16,20,136               ; vmovss        (%r8,%r9,4),%xmm2
6622  DB  196,99,49,33,202,32                 ; vinsertps     $0x20,%xmm2,%xmm9,%xmm9
6623  DB  196,193,122,16,20,128               ; vmovss        (%r8,%rax,4),%xmm2
6624  DB  196,227,49,33,210,48                ; vinsertps     $0x30,%xmm2,%xmm9,%xmm2
6625  DB  196,195,109,24,208,1                ; vinsertf128   $0x1,%xmm8,%ymm2,%ymm2
6626  DB  72,173                              ; lods          %ds:(%rsi),%rax
6627  DB  91                                  ; pop           %rbx
6628  DB  65,92                               ; pop           %r12
6629  DB  65,94                               ; pop           %r14
6630  DB  65,95                               ; pop           %r15
6631  DB  255,224                             ; jmpq          *%rax
6632
6633PUBLIC _sk_table_a_avx
6634_sk_table_a_avx LABEL PROC
6635  DB  65,87                               ; push          %r15
6636  DB  65,86                               ; push          %r14
6637  DB  65,84                               ; push          %r12
6638  DB  83                                  ; push          %rbx
6639  DB  72,173                              ; lods          %ds:(%rsi),%rax
6640  DB  76,139,0                            ; mov           (%rax),%r8
6641  DB  139,64,8                            ; mov           0x8(%rax),%eax
6642  DB  255,200                             ; dec           %eax
6643  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6644  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6645  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6646  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6647  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
6648  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
6649  DB  196,227,249,22,216,1                ; vpextrq       $0x1,%xmm3,%rax
6650  DB  65,137,193                          ; mov           %eax,%r9d
6651  DB  72,193,232,32                       ; shr           $0x20,%rax
6652  DB  196,193,249,126,218                 ; vmovq         %xmm3,%r10
6653  DB  69,137,211                          ; mov           %r10d,%r11d
6654  DB  73,193,234,32                       ; shr           $0x20,%r10
6655  DB  196,227,125,25,219,1                ; vextractf128  $0x1,%ymm3,%xmm3
6656  DB  196,227,249,22,219,1                ; vpextrq       $0x1,%xmm3,%rbx
6657  DB  65,137,222                          ; mov           %ebx,%r14d
6658  DB  72,193,235,32                       ; shr           $0x20,%rbx
6659  DB  196,193,249,126,223                 ; vmovq         %xmm3,%r15
6660  DB  69,137,252                          ; mov           %r15d,%r12d
6661  DB  73,193,239,32                       ; shr           $0x20,%r15
6662  DB  196,129,122,16,28,160               ; vmovss        (%r8,%r12,4),%xmm3
6663  DB  196,3,97,33,4,184,16                ; vinsertps     $0x10,(%r8,%r15,4),%xmm3,%xmm8
6664  DB  196,129,122,16,28,176               ; vmovss        (%r8,%r14,4),%xmm3
6665  DB  196,99,57,33,195,32                 ; vinsertps     $0x20,%xmm3,%xmm8,%xmm8
6666  DB  196,193,122,16,28,152               ; vmovss        (%r8,%rbx,4),%xmm3
6667  DB  196,99,57,33,195,48                 ; vinsertps     $0x30,%xmm3,%xmm8,%xmm8
6668  DB  196,129,122,16,28,152               ; vmovss        (%r8,%r11,4),%xmm3
6669  DB  196,3,97,33,12,144,16               ; vinsertps     $0x10,(%r8,%r10,4),%xmm3,%xmm9
6670  DB  196,129,122,16,28,136               ; vmovss        (%r8,%r9,4),%xmm3
6671  DB  196,99,49,33,203,32                 ; vinsertps     $0x20,%xmm3,%xmm9,%xmm9
6672  DB  196,193,122,16,28,128               ; vmovss        (%r8,%rax,4),%xmm3
6673  DB  196,227,49,33,219,48                ; vinsertps     $0x30,%xmm3,%xmm9,%xmm3
6674  DB  196,195,101,24,216,1                ; vinsertf128   $0x1,%xmm8,%ymm3,%ymm3
6675  DB  72,173                              ; lods          %ds:(%rsi),%rax
6676  DB  91                                  ; pop           %rbx
6677  DB  65,92                               ; pop           %r12
6678  DB  65,94                               ; pop           %r14
6679  DB  65,95                               ; pop           %r15
6680  DB  255,224                             ; jmpq          *%rax
6681
6682PUBLIC _sk_parametric_r_avx
6683_sk_parametric_r_avx LABEL PROC
6684  DB  72,173                              ; lods          %ds:(%rsi),%rax
6685  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
6686  DB  196,65,124,194,192,2                ; vcmpleps      %ymm8,%ymm0,%ymm8
6687  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
6688  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
6689  DB  197,52,89,200                       ; vmulps        %ymm0,%ymm9,%ymm9
6690  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
6691  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
6692  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
6693  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
6694  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
6695  DB  196,98,125,24,16                    ; vbroadcastss  (%rax),%ymm10
6696  DB  197,124,91,216                      ; vcvtdq2ps     %ymm0,%ymm11
6697  DB  196,98,125,24,37,210,52,0,0         ; vbroadcastss  0x34d2(%rip),%ymm12        # 5d0c <_sk_callback_avx+0x122>
6698  DB  196,65,36,89,220                    ; vmulps        %ymm12,%ymm11,%ymm11
6699  DB  196,98,125,24,37,200,52,0,0         ; vbroadcastss  0x34c8(%rip),%ymm12        # 5d10 <_sk_callback_avx+0x126>
6700  DB  196,193,124,84,196                  ; vandps        %ymm12,%ymm0,%ymm0
6701  DB  196,98,125,24,37,190,52,0,0         ; vbroadcastss  0x34be(%rip),%ymm12        # 5d14 <_sk_callback_avx+0x12a>
6702  DB  196,193,124,86,196                  ; vorps         %ymm12,%ymm0,%ymm0
6703  DB  196,98,125,24,37,180,52,0,0         ; vbroadcastss  0x34b4(%rip),%ymm12        # 5d18 <_sk_callback_avx+0x12e>
6704  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
6705  DB  196,98,125,24,37,170,52,0,0         ; vbroadcastss  0x34aa(%rip),%ymm12        # 5d1c <_sk_callback_avx+0x132>
6706  DB  196,65,124,89,228                   ; vmulps        %ymm12,%ymm0,%ymm12
6707  DB  196,65,36,92,220                    ; vsubps        %ymm12,%ymm11,%ymm11
6708  DB  196,98,125,24,37,155,52,0,0         ; vbroadcastss  0x349b(%rip),%ymm12        # 5d20 <_sk_callback_avx+0x136>
6709  DB  196,193,124,88,196                  ; vaddps        %ymm12,%ymm0,%ymm0
6710  DB  196,98,125,24,37,145,52,0,0         ; vbroadcastss  0x3491(%rip),%ymm12        # 5d24 <_sk_callback_avx+0x13a>
6711  DB  197,156,94,192                      ; vdivps        %ymm0,%ymm12,%ymm0
6712  DB  197,164,92,192                      ; vsubps        %ymm0,%ymm11,%ymm0
6713  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
6714  DB  196,99,125,8,208,1                  ; vroundps      $0x1,%ymm0,%ymm10
6715  DB  196,65,124,92,210                   ; vsubps        %ymm10,%ymm0,%ymm10
6716  DB  196,98,125,24,29,117,52,0,0         ; vbroadcastss  0x3475(%rip),%ymm11        # 5d28 <_sk_callback_avx+0x13e>
6717  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
6718  DB  196,98,125,24,29,107,52,0,0         ; vbroadcastss  0x346b(%rip),%ymm11        # 5d2c <_sk_callback_avx+0x142>
6719  DB  196,65,44,89,219                    ; vmulps        %ymm11,%ymm10,%ymm11
6720  DB  196,193,124,92,195                  ; vsubps        %ymm11,%ymm0,%ymm0
6721  DB  196,98,125,24,29,92,52,0,0          ; vbroadcastss  0x345c(%rip),%ymm11        # 5d30 <_sk_callback_avx+0x146>
6722  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
6723  DB  196,98,125,24,29,82,52,0,0          ; vbroadcastss  0x3452(%rip),%ymm11        # 5d34 <_sk_callback_avx+0x14a>
6724  DB  196,65,36,94,210                    ; vdivps        %ymm10,%ymm11,%ymm10
6725  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
6726  DB  196,98,125,24,21,67,52,0,0          ; vbroadcastss  0x3443(%rip),%ymm10        # 5d38 <_sk_callback_avx+0x14e>
6727  DB  196,193,124,89,194                  ; vmulps        %ymm10,%ymm0,%ymm0
6728  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
6729  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
6730  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
6731  DB  196,195,125,74,193,128              ; vblendvps     %ymm8,%ymm9,%ymm0,%ymm0
6732  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
6733  DB  196,65,124,95,192                   ; vmaxps        %ymm8,%ymm0,%ymm8
6734  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
6735  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
6736  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6737  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6738  DB  197,188,93,192                      ; vminps        %ymm0,%ymm8,%ymm0
6739  DB  72,173                              ; lods          %ds:(%rsi),%rax
6740  DB  255,224                             ; jmpq          *%rax
6741
6742PUBLIC _sk_parametric_g_avx
6743_sk_parametric_g_avx LABEL PROC
6744  DB  72,173                              ; lods          %ds:(%rsi),%rax
6745  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
6746  DB  196,65,116,194,192,2                ; vcmpleps      %ymm8,%ymm1,%ymm8
6747  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
6748  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
6749  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
6750  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
6751  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
6752  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
6753  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
6754  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
6755  DB  196,98,125,24,16                    ; vbroadcastss  (%rax),%ymm10
6756  DB  197,124,91,217                      ; vcvtdq2ps     %ymm1,%ymm11
6757  DB  196,98,125,24,37,188,51,0,0         ; vbroadcastss  0x33bc(%rip),%ymm12        # 5d3c <_sk_callback_avx+0x152>
6758  DB  196,65,36,89,220                    ; vmulps        %ymm12,%ymm11,%ymm11
6759  DB  196,98,125,24,37,178,51,0,0         ; vbroadcastss  0x33b2(%rip),%ymm12        # 5d40 <_sk_callback_avx+0x156>
6760  DB  196,193,116,84,204                  ; vandps        %ymm12,%ymm1,%ymm1
6761  DB  196,98,125,24,37,168,51,0,0         ; vbroadcastss  0x33a8(%rip),%ymm12        # 5d44 <_sk_callback_avx+0x15a>
6762  DB  196,193,116,86,204                  ; vorps         %ymm12,%ymm1,%ymm1
6763  DB  196,98,125,24,37,158,51,0,0         ; vbroadcastss  0x339e(%rip),%ymm12        # 5d48 <_sk_callback_avx+0x15e>
6764  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
6765  DB  196,98,125,24,37,148,51,0,0         ; vbroadcastss  0x3394(%rip),%ymm12        # 5d4c <_sk_callback_avx+0x162>
6766  DB  196,65,116,89,228                   ; vmulps        %ymm12,%ymm1,%ymm12
6767  DB  196,65,36,92,220                    ; vsubps        %ymm12,%ymm11,%ymm11
6768  DB  196,98,125,24,37,133,51,0,0         ; vbroadcastss  0x3385(%rip),%ymm12        # 5d50 <_sk_callback_avx+0x166>
6769  DB  196,193,116,88,204                  ; vaddps        %ymm12,%ymm1,%ymm1
6770  DB  196,98,125,24,37,123,51,0,0         ; vbroadcastss  0x337b(%rip),%ymm12        # 5d54 <_sk_callback_avx+0x16a>
6771  DB  197,156,94,201                      ; vdivps        %ymm1,%ymm12,%ymm1
6772  DB  197,164,92,201                      ; vsubps        %ymm1,%ymm11,%ymm1
6773  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
6774  DB  196,99,125,8,209,1                  ; vroundps      $0x1,%ymm1,%ymm10
6775  DB  196,65,116,92,210                   ; vsubps        %ymm10,%ymm1,%ymm10
6776  DB  196,98,125,24,29,95,51,0,0          ; vbroadcastss  0x335f(%rip),%ymm11        # 5d58 <_sk_callback_avx+0x16e>
6777  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
6778  DB  196,98,125,24,29,85,51,0,0          ; vbroadcastss  0x3355(%rip),%ymm11        # 5d5c <_sk_callback_avx+0x172>
6779  DB  196,65,44,89,219                    ; vmulps        %ymm11,%ymm10,%ymm11
6780  DB  196,193,116,92,203                  ; vsubps        %ymm11,%ymm1,%ymm1
6781  DB  196,98,125,24,29,70,51,0,0          ; vbroadcastss  0x3346(%rip),%ymm11        # 5d60 <_sk_callback_avx+0x176>
6782  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
6783  DB  196,98,125,24,29,60,51,0,0          ; vbroadcastss  0x333c(%rip),%ymm11        # 5d64 <_sk_callback_avx+0x17a>
6784  DB  196,65,36,94,210                    ; vdivps        %ymm10,%ymm11,%ymm10
6785  DB  196,193,116,88,202                  ; vaddps        %ymm10,%ymm1,%ymm1
6786  DB  196,98,125,24,21,45,51,0,0          ; vbroadcastss  0x332d(%rip),%ymm10        # 5d68 <_sk_callback_avx+0x17e>
6787  DB  196,193,116,89,202                  ; vmulps        %ymm10,%ymm1,%ymm1
6788  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
6789  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
6790  DB  196,193,116,88,202                  ; vaddps        %ymm10,%ymm1,%ymm1
6791  DB  196,195,117,74,201,128              ; vblendvps     %ymm8,%ymm9,%ymm1,%ymm1
6792  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
6793  DB  196,65,116,95,192                   ; vmaxps        %ymm8,%ymm1,%ymm8
6794  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
6795  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
6796  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6797  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6798  DB  197,188,93,201                      ; vminps        %ymm1,%ymm8,%ymm1
6799  DB  72,173                              ; lods          %ds:(%rsi),%rax
6800  DB  255,224                             ; jmpq          *%rax
6801
6802PUBLIC _sk_parametric_b_avx
6803_sk_parametric_b_avx LABEL PROC
6804  DB  72,173                              ; lods          %ds:(%rsi),%rax
6805  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
6806  DB  196,65,108,194,192,2                ; vcmpleps      %ymm8,%ymm2,%ymm8
6807  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
6808  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
6809  DB  197,52,89,202                       ; vmulps        %ymm2,%ymm9,%ymm9
6810  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
6811  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
6812  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
6813  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
6814  DB  196,193,108,88,211                  ; vaddps        %ymm11,%ymm2,%ymm2
6815  DB  196,98,125,24,16                    ; vbroadcastss  (%rax),%ymm10
6816  DB  197,124,91,218                      ; vcvtdq2ps     %ymm2,%ymm11
6817  DB  196,98,125,24,37,166,50,0,0         ; vbroadcastss  0x32a6(%rip),%ymm12        # 5d6c <_sk_callback_avx+0x182>
6818  DB  196,65,36,89,220                    ; vmulps        %ymm12,%ymm11,%ymm11
6819  DB  196,98,125,24,37,156,50,0,0         ; vbroadcastss  0x329c(%rip),%ymm12        # 5d70 <_sk_callback_avx+0x186>
6820  DB  196,193,108,84,212                  ; vandps        %ymm12,%ymm2,%ymm2
6821  DB  196,98,125,24,37,146,50,0,0         ; vbroadcastss  0x3292(%rip),%ymm12        # 5d74 <_sk_callback_avx+0x18a>
6822  DB  196,193,108,86,212                  ; vorps         %ymm12,%ymm2,%ymm2
6823  DB  196,98,125,24,37,136,50,0,0         ; vbroadcastss  0x3288(%rip),%ymm12        # 5d78 <_sk_callback_avx+0x18e>
6824  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
6825  DB  196,98,125,24,37,126,50,0,0         ; vbroadcastss  0x327e(%rip),%ymm12        # 5d7c <_sk_callback_avx+0x192>
6826  DB  196,65,108,89,228                   ; vmulps        %ymm12,%ymm2,%ymm12
6827  DB  196,65,36,92,220                    ; vsubps        %ymm12,%ymm11,%ymm11
6828  DB  196,98,125,24,37,111,50,0,0         ; vbroadcastss  0x326f(%rip),%ymm12        # 5d80 <_sk_callback_avx+0x196>
6829  DB  196,193,108,88,212                  ; vaddps        %ymm12,%ymm2,%ymm2
6830  DB  196,98,125,24,37,101,50,0,0         ; vbroadcastss  0x3265(%rip),%ymm12        # 5d84 <_sk_callback_avx+0x19a>
6831  DB  197,156,94,210                      ; vdivps        %ymm2,%ymm12,%ymm2
6832  DB  197,164,92,210                      ; vsubps        %ymm2,%ymm11,%ymm2
6833  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
6834  DB  196,99,125,8,210,1                  ; vroundps      $0x1,%ymm2,%ymm10
6835  DB  196,65,108,92,210                   ; vsubps        %ymm10,%ymm2,%ymm10
6836  DB  196,98,125,24,29,73,50,0,0          ; vbroadcastss  0x3249(%rip),%ymm11        # 5d88 <_sk_callback_avx+0x19e>
6837  DB  196,193,108,88,211                  ; vaddps        %ymm11,%ymm2,%ymm2
6838  DB  196,98,125,24,29,63,50,0,0          ; vbroadcastss  0x323f(%rip),%ymm11        # 5d8c <_sk_callback_avx+0x1a2>
6839  DB  196,65,44,89,219                    ; vmulps        %ymm11,%ymm10,%ymm11
6840  DB  196,193,108,92,211                  ; vsubps        %ymm11,%ymm2,%ymm2
6841  DB  196,98,125,24,29,48,50,0,0          ; vbroadcastss  0x3230(%rip),%ymm11        # 5d90 <_sk_callback_avx+0x1a6>
6842  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
6843  DB  196,98,125,24,29,38,50,0,0          ; vbroadcastss  0x3226(%rip),%ymm11        # 5d94 <_sk_callback_avx+0x1aa>
6844  DB  196,65,36,94,210                    ; vdivps        %ymm10,%ymm11,%ymm10
6845  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
6846  DB  196,98,125,24,21,23,50,0,0          ; vbroadcastss  0x3217(%rip),%ymm10        # 5d98 <_sk_callback_avx+0x1ae>
6847  DB  196,193,108,89,210                  ; vmulps        %ymm10,%ymm2,%ymm2
6848  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
6849  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
6850  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
6851  DB  196,195,109,74,209,128              ; vblendvps     %ymm8,%ymm9,%ymm2,%ymm2
6852  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
6853  DB  196,65,108,95,192                   ; vmaxps        %ymm8,%ymm2,%ymm8
6854  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
6855  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
6856  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6857  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6858  DB  197,188,93,210                      ; vminps        %ymm2,%ymm8,%ymm2
6859  DB  72,173                              ; lods          %ds:(%rsi),%rax
6860  DB  255,224                             ; jmpq          *%rax
6861
6862PUBLIC _sk_parametric_a_avx
6863_sk_parametric_a_avx LABEL PROC
6864  DB  72,173                              ; lods          %ds:(%rsi),%rax
6865  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
6866  DB  196,65,100,194,192,2                ; vcmpleps      %ymm8,%ymm3,%ymm8
6867  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
6868  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
6869  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
6870  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
6871  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
6872  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
6873  DB  197,172,89,219                      ; vmulps        %ymm3,%ymm10,%ymm3
6874  DB  196,193,100,88,219                  ; vaddps        %ymm11,%ymm3,%ymm3
6875  DB  196,98,125,24,16                    ; vbroadcastss  (%rax),%ymm10
6876  DB  197,124,91,219                      ; vcvtdq2ps     %ymm3,%ymm11
6877  DB  196,98,125,24,37,144,49,0,0         ; vbroadcastss  0x3190(%rip),%ymm12        # 5d9c <_sk_callback_avx+0x1b2>
6878  DB  196,65,36,89,220                    ; vmulps        %ymm12,%ymm11,%ymm11
6879  DB  196,98,125,24,37,134,49,0,0         ; vbroadcastss  0x3186(%rip),%ymm12        # 5da0 <_sk_callback_avx+0x1b6>
6880  DB  196,193,100,84,220                  ; vandps        %ymm12,%ymm3,%ymm3
6881  DB  196,98,125,24,37,124,49,0,0         ; vbroadcastss  0x317c(%rip),%ymm12        # 5da4 <_sk_callback_avx+0x1ba>
6882  DB  196,193,100,86,220                  ; vorps         %ymm12,%ymm3,%ymm3
6883  DB  196,98,125,24,37,114,49,0,0         ; vbroadcastss  0x3172(%rip),%ymm12        # 5da8 <_sk_callback_avx+0x1be>
6884  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
6885  DB  196,98,125,24,37,104,49,0,0         ; vbroadcastss  0x3168(%rip),%ymm12        # 5dac <_sk_callback_avx+0x1c2>
6886  DB  196,65,100,89,228                   ; vmulps        %ymm12,%ymm3,%ymm12
6887  DB  196,65,36,92,220                    ; vsubps        %ymm12,%ymm11,%ymm11
6888  DB  196,98,125,24,37,89,49,0,0          ; vbroadcastss  0x3159(%rip),%ymm12        # 5db0 <_sk_callback_avx+0x1c6>
6889  DB  196,193,100,88,220                  ; vaddps        %ymm12,%ymm3,%ymm3
6890  DB  196,98,125,24,37,79,49,0,0          ; vbroadcastss  0x314f(%rip),%ymm12        # 5db4 <_sk_callback_avx+0x1ca>
6891  DB  197,156,94,219                      ; vdivps        %ymm3,%ymm12,%ymm3
6892  DB  197,164,92,219                      ; vsubps        %ymm3,%ymm11,%ymm3
6893  DB  197,172,89,219                      ; vmulps        %ymm3,%ymm10,%ymm3
6894  DB  196,99,125,8,211,1                  ; vroundps      $0x1,%ymm3,%ymm10
6895  DB  196,65,100,92,210                   ; vsubps        %ymm10,%ymm3,%ymm10
6896  DB  196,98,125,24,29,51,49,0,0          ; vbroadcastss  0x3133(%rip),%ymm11        # 5db8 <_sk_callback_avx+0x1ce>
6897  DB  196,193,100,88,219                  ; vaddps        %ymm11,%ymm3,%ymm3
6898  DB  196,98,125,24,29,41,49,0,0          ; vbroadcastss  0x3129(%rip),%ymm11        # 5dbc <_sk_callback_avx+0x1d2>
6899  DB  196,65,44,89,219                    ; vmulps        %ymm11,%ymm10,%ymm11
6900  DB  196,193,100,92,219                  ; vsubps        %ymm11,%ymm3,%ymm3
6901  DB  196,98,125,24,29,26,49,0,0          ; vbroadcastss  0x311a(%rip),%ymm11        # 5dc0 <_sk_callback_avx+0x1d6>
6902  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
6903  DB  196,98,125,24,29,16,49,0,0          ; vbroadcastss  0x3110(%rip),%ymm11        # 5dc4 <_sk_callback_avx+0x1da>
6904  DB  196,65,36,94,210                    ; vdivps        %ymm10,%ymm11,%ymm10
6905  DB  196,193,100,88,218                  ; vaddps        %ymm10,%ymm3,%ymm3
6906  DB  196,98,125,24,21,1,49,0,0           ; vbroadcastss  0x3101(%rip),%ymm10        # 5dc8 <_sk_callback_avx+0x1de>
6907  DB  196,193,100,89,218                  ; vmulps        %ymm10,%ymm3,%ymm3
6908  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
6909  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
6910  DB  196,193,100,88,218                  ; vaddps        %ymm10,%ymm3,%ymm3
6911  DB  196,195,101,74,217,128              ; vblendvps     %ymm8,%ymm9,%ymm3,%ymm3
6912  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
6913  DB  196,65,100,95,192                   ; vmaxps        %ymm8,%ymm3,%ymm8
6914  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
6915  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
6916  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
6917  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
6918  DB  197,188,93,219                      ; vminps        %ymm3,%ymm8,%ymm3
6919  DB  72,173                              ; lods          %ds:(%rsi),%rax
6920  DB  255,224                             ; jmpq          *%rax
6921
6922PUBLIC _sk_lab_to_xyz_avx
6923_sk_lab_to_xyz_avx LABEL PROC
6924  DB  184,0,0,200,66                      ; mov           $0x42c80000,%eax
6925  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6926  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
6927  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6928  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
6929  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
6930  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
6931  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6932  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6933  DB  197,124,89,201                      ; vmulps        %ymm1,%ymm0,%ymm9
6934  DB  184,0,0,0,67                        ; mov           $0x43000000,%eax
6935  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
6936  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6937  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6938  DB  197,52,92,201                       ; vsubps        %ymm1,%ymm9,%ymm9
6939  DB  197,252,89,194                      ; vmulps        %ymm2,%ymm0,%ymm0
6940  DB  197,124,92,209                      ; vsubps        %ymm1,%ymm0,%ymm10
6941  DB  184,0,0,128,65                      ; mov           $0x41800000,%eax
6942  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
6943  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6944  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6945  DB  197,188,88,192                      ; vaddps        %ymm0,%ymm8,%ymm0
6946  DB  184,203,61,13,60                    ; mov           $0x3c0d3dcb,%eax
6947  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
6948  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6949  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6950  DB  197,252,89,194                      ; vmulps        %ymm2,%ymm0,%ymm0
6951  DB  184,111,18,3,59                     ; mov           $0x3b03126f,%eax
6952  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
6953  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6954  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6955  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
6956  DB  197,252,88,210                      ; vaddps        %ymm2,%ymm0,%ymm2
6957  DB  184,10,215,163,59                   ; mov           $0x3ba3d70a,%eax
6958  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
6959  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6960  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6961  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
6962  DB  197,124,92,193                      ; vsubps        %ymm1,%ymm0,%ymm8
6963  DB  197,236,89,202                      ; vmulps        %ymm2,%ymm2,%ymm1
6964  DB  197,108,89,201                      ; vmulps        %ymm1,%ymm2,%ymm9
6965  DB  184,194,24,17,60                    ; mov           $0x3c1118c2,%eax
6966  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
6967  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6968  DB  196,99,117,24,209,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm10
6969  DB  196,65,44,194,217,1                 ; vcmpltps      %ymm9,%ymm10,%ymm11
6970  DB  184,203,61,13,62                    ; mov           $0x3e0d3dcb,%eax
6971  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
6972  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6973  DB  196,99,117,24,225,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm12
6974  DB  196,193,108,92,204                  ; vsubps        %ymm12,%ymm2,%ymm1
6975  DB  184,80,128,3,62                     ; mov           $0x3e038050,%eax
6976  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
6977  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6978  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6979  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
6980  DB  196,67,117,74,201,176               ; vblendvps     %ymm11,%ymm9,%ymm1,%ymm9
6981  DB  197,252,89,200                      ; vmulps        %ymm0,%ymm0,%ymm1
6982  DB  197,252,89,201                      ; vmulps        %ymm1,%ymm0,%ymm1
6983  DB  197,44,194,217,1                    ; vcmpltps      %ymm1,%ymm10,%ymm11
6984  DB  196,193,124,92,196                  ; vsubps        %ymm12,%ymm0,%ymm0
6985  DB  197,252,89,194                      ; vmulps        %ymm2,%ymm0,%ymm0
6986  DB  196,227,125,74,201,176              ; vblendvps     %ymm11,%ymm1,%ymm0,%ymm1
6987  DB  196,193,60,89,192                   ; vmulps        %ymm8,%ymm8,%ymm0
6988  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
6989  DB  197,44,194,208,1                    ; vcmpltps      %ymm0,%ymm10,%ymm10
6990  DB  196,65,60,92,196                    ; vsubps        %ymm12,%ymm8,%ymm8
6991  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
6992  DB  196,99,109,74,192,160               ; vblendvps     %ymm10,%ymm0,%ymm2,%ymm8
6993  DB  184,31,215,118,63                   ; mov           $0x3f76d71f,%eax
6994  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
6995  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6996  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6997  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
6998  DB  184,246,64,83,63                    ; mov           $0x3f5340f6,%eax
6999  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7000  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7001  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7002  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
7003  DB  72,173                              ; lods          %ds:(%rsi),%rax
7004  DB  255,224                             ; jmpq          *%rax
7005
7006PUBLIC _sk_load_a8_avx
7007_sk_load_a8_avx LABEL PROC
7008  DB  73,137,200                          ; mov           %rcx,%r8
7009  DB  72,173                              ; lods          %ds:(%rsi),%rax
7010  DB  72,139,0                            ; mov           (%rax),%rax
7011  DB  72,1,248                            ; add           %rdi,%rax
7012  DB  77,133,192                          ; test          %r8,%r8
7013  DB  117,74                              ; jne           2eec <_sk_load_a8_avx+0x5a>
7014  DB  197,250,126,0                       ; vmovq         (%rax),%xmm0
7015  DB  196,226,121,49,200                  ; vpmovzxbd     %xmm0,%xmm1
7016  DB  196,227,121,4,192,229               ; vpermilps     $0xe5,%xmm0,%xmm0
7017  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7018  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
7019  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7020  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7021  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7022  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7023  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7024  DB  197,252,89,217                      ; vmulps        %ymm1,%ymm0,%ymm3
7025  DB  72,173                              ; lods          %ds:(%rsi),%rax
7026  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
7027  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
7028  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
7029  DB  76,137,193                          ; mov           %r8,%rcx
7030  DB  255,224                             ; jmpq          *%rax
7031  DB  49,201                              ; xor           %ecx,%ecx
7032  DB  77,137,194                          ; mov           %r8,%r10
7033  DB  69,49,201                           ; xor           %r9d,%r9d
7034  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
7035  DB  72,255,192                          ; inc           %rax
7036  DB  73,211,227                          ; shl           %cl,%r11
7037  DB  77,9,217                            ; or            %r11,%r9
7038  DB  72,131,193,8                        ; add           $0x8,%rcx
7039  DB  73,255,202                          ; dec           %r10
7040  DB  117,234                             ; jne           2ef4 <_sk_load_a8_avx+0x62>
7041  DB  196,193,249,110,193                 ; vmovq         %r9,%xmm0
7042  DB  235,149                             ; jmp           2ea6 <_sk_load_a8_avx+0x14>
7043
7044PUBLIC _sk_gather_a8_avx
7045_sk_gather_a8_avx LABEL PROC
7046  DB  65,87                               ; push          %r15
7047  DB  65,86                               ; push          %r14
7048  DB  65,84                               ; push          %r12
7049  DB  83                                  ; push          %rbx
7050  DB  72,173                              ; lods          %ds:(%rsi),%rax
7051  DB  76,139,0                            ; mov           (%rax),%r8
7052  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7053  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7054  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7055  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7056  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7057  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7058  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7059  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7060  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7061  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7062  DB  65,137,193                          ; mov           %eax,%r9d
7063  DB  72,193,232,32                       ; shr           $0x20,%rax
7064  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
7065  DB  69,137,211                          ; mov           %r10d,%r11d
7066  DB  73,193,234,32                       ; shr           $0x20,%r10
7067  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7068  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7069  DB  65,137,222                          ; mov           %ebx,%r14d
7070  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
7071  DB  69,137,252                          ; mov           %r15d,%r12d
7072  DB  73,193,239,32                       ; shr           $0x20,%r15
7073  DB  72,193,235,32                       ; shr           $0x20,%rbx
7074  DB  196,131,121,32,4,48,0               ; vpinsrb       $0x0,(%r8,%r14,1),%xmm0,%xmm0
7075  DB  196,195,121,32,4,24,1               ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm0,%xmm0
7076  DB  67,15,182,28,32                     ; movzbl        (%r8,%r12,1),%ebx
7077  DB  196,227,121,32,195,2                ; vpinsrb       $0x2,%ebx,%xmm0,%xmm0
7078  DB  67,15,182,28,56                     ; movzbl        (%r8,%r15,1),%ebx
7079  DB  196,227,121,32,195,3                ; vpinsrb       $0x3,%ebx,%xmm0,%xmm0
7080  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7081  DB  196,131,121,32,12,24,0              ; vpinsrb       $0x0,(%r8,%r11,1),%xmm0,%xmm1
7082  DB  196,131,113,32,12,16,1              ; vpinsrb       $0x1,(%r8,%r10,1),%xmm1,%xmm1
7083  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
7084  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
7085  DB  65,15,182,4,0                       ; movzbl        (%r8,%rax,1),%eax
7086  DB  196,227,113,32,200,3                ; vpinsrb       $0x3,%eax,%xmm1,%xmm1
7087  DB  196,226,121,49,201                  ; vpmovzxbd     %xmm1,%xmm1
7088  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
7089  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7090  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7091  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7092  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7093  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7094  DB  197,252,89,217                      ; vmulps        %ymm1,%ymm0,%ymm3
7095  DB  72,173                              ; lods          %ds:(%rsi),%rax
7096  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
7097  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
7098  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
7099  DB  91                                  ; pop           %rbx
7100  DB  65,92                               ; pop           %r12
7101  DB  65,94                               ; pop           %r14
7102  DB  65,95                               ; pop           %r15
7103  DB  255,224                             ; jmpq          *%rax
7104
7105PUBLIC _sk_store_a8_avx
7106_sk_store_a8_avx LABEL PROC
7107  DB  72,173                              ; lods          %ds:(%rsi),%rax
7108  DB  76,139,8                            ; mov           (%rax),%r9
7109  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
7110  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
7111  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
7112  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
7113  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
7114  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
7115  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
7116  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
7117  DB  196,65,57,103,192                   ; vpackuswb     %xmm8,%xmm8,%xmm8
7118  DB  72,133,201                          ; test          %rcx,%rcx
7119  DB  117,10                              ; jne           304d <_sk_store_a8_avx+0x42>
7120  DB  196,65,123,17,4,57                  ; vmovsd        %xmm8,(%r9,%rdi,1)
7121  DB  72,173                              ; lods          %ds:(%rsi),%rax
7122  DB  255,224                             ; jmpq          *%rax
7123  DB  65,137,200                          ; mov           %ecx,%r8d
7124  DB  65,128,224,7                        ; and           $0x7,%r8b
7125  DB  65,254,200                          ; dec           %r8b
7126  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7127  DB  119,236                             ; ja            3049 <_sk_store_a8_avx+0x3e>
7128  DB  196,66,121,48,192                   ; vpmovzxbw     %xmm8,%xmm8
7129  DB  65,15,182,192                       ; movzbl        %r8b,%eax
7130  DB  76,141,5,67,0,0,0                   ; lea           0x43(%rip),%r8        # 30b0 <_sk_store_a8_avx+0xa5>
7131  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
7132  DB  76,1,192                            ; add           %r8,%rax
7133  DB  255,224                             ; jmpq          *%rax
7134  DB  196,67,121,20,68,57,6,12            ; vpextrb       $0xc,%xmm8,0x6(%r9,%rdi,1)
7135  DB  196,67,121,20,68,57,5,10            ; vpextrb       $0xa,%xmm8,0x5(%r9,%rdi,1)
7136  DB  196,67,121,20,68,57,4,8             ; vpextrb       $0x8,%xmm8,0x4(%r9,%rdi,1)
7137  DB  196,67,121,20,68,57,3,6             ; vpextrb       $0x6,%xmm8,0x3(%r9,%rdi,1)
7138  DB  196,67,121,20,68,57,2,4             ; vpextrb       $0x4,%xmm8,0x2(%r9,%rdi,1)
7139  DB  196,67,121,20,68,57,1,2             ; vpextrb       $0x2,%xmm8,0x1(%r9,%rdi,1)
7140  DB  196,67,121,20,4,57,0                ; vpextrb       $0x0,%xmm8,(%r9,%rdi,1)
7141  DB  235,154                             ; jmp           3049 <_sk_store_a8_avx+0x3e>
7142  DB  144                                 ; nop
7143  DB  246,255                             ; idiv          %bh
7144  DB  255                                 ; (bad)
7145  DB  255                                 ; (bad)
7146  DB  238                                 ; out           %al,(%dx)
7147  DB  255                                 ; (bad)
7148  DB  255                                 ; (bad)
7149  DB  255,230                             ; jmpq          *%rsi
7150  DB  255                                 ; (bad)
7151  DB  255                                 ; (bad)
7152  DB  255                                 ; (bad)
7153  DB  222,255                             ; fdivrp        %st,%st(7)
7154  DB  255                                 ; (bad)
7155  DB  255,214                             ; callq         *%rsi
7156  DB  255                                 ; (bad)
7157  DB  255                                 ; (bad)
7158  DB  255,206                             ; dec           %esi
7159  DB  255                                 ; (bad)
7160  DB  255                                 ; (bad)
7161  DB  255,198                             ; inc           %esi
7162  DB  255                                 ; (bad)
7163  DB  255                                 ; (bad)
7164  DB  255                                 ; .byte         0xff
7165
7166PUBLIC _sk_load_g8_avx
7167_sk_load_g8_avx LABEL PROC
7168  DB  73,137,200                          ; mov           %rcx,%r8
7169  DB  72,173                              ; lods          %ds:(%rsi),%rax
7170  DB  72,139,0                            ; mov           (%rax),%rax
7171  DB  72,1,248                            ; add           %rdi,%rax
7172  DB  77,133,192                          ; test          %r8,%r8
7173  DB  117,91                              ; jne           3137 <_sk_load_g8_avx+0x6b>
7174  DB  197,250,126,0                       ; vmovq         (%rax),%xmm0
7175  DB  196,226,121,49,200                  ; vpmovzxbd     %xmm0,%xmm1
7176  DB  196,227,121,4,192,229               ; vpermilps     $0xe5,%xmm0,%xmm0
7177  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7178  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
7179  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7180  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7181  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7182  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7183  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7184  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7185  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7186  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7187  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7188  DB  196,227,117,24,217,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm3
7189  DB  72,173                              ; lods          %ds:(%rsi),%rax
7190  DB  76,137,193                          ; mov           %r8,%rcx
7191  DB  197,252,40,200                      ; vmovaps       %ymm0,%ymm1
7192  DB  197,252,40,208                      ; vmovaps       %ymm0,%ymm2
7193  DB  255,224                             ; jmpq          *%rax
7194  DB  49,201                              ; xor           %ecx,%ecx
7195  DB  77,137,194                          ; mov           %r8,%r10
7196  DB  69,49,201                           ; xor           %r9d,%r9d
7197  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
7198  DB  72,255,192                          ; inc           %rax
7199  DB  73,211,227                          ; shl           %cl,%r11
7200  DB  77,9,217                            ; or            %r11,%r9
7201  DB  72,131,193,8                        ; add           $0x8,%rcx
7202  DB  73,255,202                          ; dec           %r10
7203  DB  117,234                             ; jne           313f <_sk_load_g8_avx+0x73>
7204  DB  196,193,249,110,193                 ; vmovq         %r9,%xmm0
7205  DB  235,132                             ; jmp           30e0 <_sk_load_g8_avx+0x14>
7206
7207PUBLIC _sk_gather_g8_avx
7208_sk_gather_g8_avx LABEL PROC
7209  DB  65,87                               ; push          %r15
7210  DB  65,86                               ; push          %r14
7211  DB  65,84                               ; push          %r12
7212  DB  83                                  ; push          %rbx
7213  DB  72,173                              ; lods          %ds:(%rsi),%rax
7214  DB  76,139,0                            ; mov           (%rax),%r8
7215  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7216  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7217  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7218  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7219  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7220  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7221  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7222  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7223  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7224  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7225  DB  65,137,193                          ; mov           %eax,%r9d
7226  DB  72,193,232,32                       ; shr           $0x20,%rax
7227  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
7228  DB  69,137,211                          ; mov           %r10d,%r11d
7229  DB  73,193,234,32                       ; shr           $0x20,%r10
7230  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7231  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7232  DB  65,137,222                          ; mov           %ebx,%r14d
7233  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
7234  DB  69,137,252                          ; mov           %r15d,%r12d
7235  DB  73,193,239,32                       ; shr           $0x20,%r15
7236  DB  72,193,235,32                       ; shr           $0x20,%rbx
7237  DB  196,131,121,32,4,48,0               ; vpinsrb       $0x0,(%r8,%r14,1),%xmm0,%xmm0
7238  DB  196,195,121,32,4,24,1               ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm0,%xmm0
7239  DB  67,15,182,28,32                     ; movzbl        (%r8,%r12,1),%ebx
7240  DB  196,227,121,32,195,2                ; vpinsrb       $0x2,%ebx,%xmm0,%xmm0
7241  DB  67,15,182,28,56                     ; movzbl        (%r8,%r15,1),%ebx
7242  DB  196,227,121,32,195,3                ; vpinsrb       $0x3,%ebx,%xmm0,%xmm0
7243  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7244  DB  196,131,121,32,12,24,0              ; vpinsrb       $0x0,(%r8,%r11,1),%xmm0,%xmm1
7245  DB  196,131,113,32,12,16,1              ; vpinsrb       $0x1,(%r8,%r10,1),%xmm1,%xmm1
7246  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
7247  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
7248  DB  65,15,182,4,0                       ; movzbl        (%r8,%rax,1),%eax
7249  DB  196,227,113,32,200,3                ; vpinsrb       $0x3,%eax,%xmm1,%xmm1
7250  DB  196,226,121,49,201                  ; vpmovzxbd     %xmm1,%xmm1
7251  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
7252  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7253  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7254  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7255  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7256  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7257  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7258  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7259  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7260  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7261  DB  196,227,117,24,217,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm3
7262  DB  72,173                              ; lods          %ds:(%rsi),%rax
7263  DB  197,252,40,200                      ; vmovaps       %ymm0,%ymm1
7264  DB  197,252,40,208                      ; vmovaps       %ymm0,%ymm2
7265  DB  91                                  ; pop           %rbx
7266  DB  65,92                               ; pop           %r12
7267  DB  65,94                               ; pop           %r14
7268  DB  65,95                               ; pop           %r15
7269  DB  255,224                             ; jmpq          *%rax
7270
7271PUBLIC _sk_gather_i8_avx
7272_sk_gather_i8_avx LABEL PROC
7273  DB  72,173                              ; lods          %ds:(%rsi),%rax
7274  DB  73,137,192                          ; mov           %rax,%r8
7275  DB  77,133,192                          ; test          %r8,%r8
7276  DB  116,5                               ; je            3276 <_sk_gather_i8_avx+0xf>
7277  DB  76,137,192                          ; mov           %r8,%rax
7278  DB  235,2                               ; jmp           3278 <_sk_gather_i8_avx+0x11>
7279  DB  72,173                              ; lods          %ds:(%rsi),%rax
7280  DB  65,87                               ; push          %r15
7281  DB  65,86                               ; push          %r14
7282  DB  65,85                               ; push          %r13
7283  DB  65,84                               ; push          %r12
7284  DB  83                                  ; push          %rbx
7285  DB  76,139,8                            ; mov           (%rax),%r9
7286  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7287  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7288  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7289  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7290  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7291  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7292  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7293  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7294  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7295  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7296  DB  65,137,194                          ; mov           %eax,%r10d
7297  DB  72,193,232,32                       ; shr           $0x20,%rax
7298  DB  196,193,249,126,211                 ; vmovq         %xmm2,%r11
7299  DB  69,137,222                          ; mov           %r11d,%r14d
7300  DB  73,193,235,32                       ; shr           $0x20,%r11
7301  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7302  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7303  DB  65,137,223                          ; mov           %ebx,%r15d
7304  DB  196,195,249,22,196,1                ; vpextrq       $0x1,%xmm0,%r12
7305  DB  69,137,229                          ; mov           %r12d,%r13d
7306  DB  73,193,236,32                       ; shr           $0x20,%r12
7307  DB  72,193,235,32                       ; shr           $0x20,%rbx
7308  DB  196,131,121,32,4,49,0               ; vpinsrb       $0x0,(%r9,%r14,1),%xmm0,%xmm0
7309  DB  196,131,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%r11,1),%xmm0,%xmm0
7310  DB  196,131,121,32,4,17,2               ; vpinsrb       $0x2,(%r9,%r10,1),%xmm0,%xmm0
7311  DB  196,195,121,32,4,1,3                ; vpinsrb       $0x3,(%r9,%rax,1),%xmm0,%xmm0
7312  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7313  DB  196,195,249,22,194,1                ; vpextrq       $0x1,%xmm0,%r10
7314  DB  196,193,249,126,195                 ; vmovq         %xmm0,%r11
7315  DB  196,131,121,32,4,57,0               ; vpinsrb       $0x0,(%r9,%r15,1),%xmm0,%xmm0
7316  DB  196,195,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%rbx,1),%xmm0,%xmm0
7317  DB  196,131,121,32,4,41,2               ; vpinsrb       $0x2,(%r9,%r13,1),%xmm0,%xmm0
7318  DB  196,131,121,32,4,33,3               ; vpinsrb       $0x3,(%r9,%r12,1),%xmm0,%xmm0
7319  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7320  DB  73,139,88,8                         ; mov           0x8(%r8),%rbx
7321  DB  196,193,249,126,193                 ; vmovq         %xmm0,%r9
7322  DB  69,137,200                          ; mov           %r9d,%r8d
7323  DB  73,193,233,30                       ; shr           $0x1e,%r9
7324  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
7325  DB  65,137,198                          ; mov           %eax,%r14d
7326  DB  72,193,232,30                       ; shr           $0x1e,%rax
7327  DB  69,137,223                          ; mov           %r11d,%r15d
7328  DB  73,193,235,30                       ; shr           $0x1e,%r11
7329  DB  69,137,212                          ; mov           %r10d,%r12d
7330  DB  73,193,234,30                       ; shr           $0x1e,%r10
7331  DB  196,161,121,110,4,131               ; vmovd         (%rbx,%r8,4),%xmm0
7332  DB  196,163,121,34,4,11,1               ; vpinsrd       $0x1,(%rbx,%r9,1),%xmm0,%xmm0
7333  DB  196,163,121,34,4,179,2              ; vpinsrd       $0x2,(%rbx,%r14,4),%xmm0,%xmm0
7334  DB  196,99,121,34,4,3,3                 ; vpinsrd       $0x3,(%rbx,%rax,1),%xmm0,%xmm8
7335  DB  196,161,121,110,4,187               ; vmovd         (%rbx,%r15,4),%xmm0
7336  DB  196,163,121,34,4,27,1               ; vpinsrd       $0x1,(%rbx,%r11,1),%xmm0,%xmm0
7337  DB  196,163,121,34,4,163,2              ; vpinsrd       $0x2,(%rbx,%r12,4),%xmm0,%xmm0
7338  DB  196,163,121,34,28,19,3              ; vpinsrd       $0x3,(%rbx,%r10,1),%xmm0,%xmm3
7339  DB  196,227,61,24,195,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm0
7340  DB  184,255,0,0,0                       ; mov           $0xff,%eax
7341  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7342  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7343  DB  196,99,117,24,217,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm11
7344  DB  197,164,84,192                      ; vandps        %ymm0,%ymm11,%ymm0
7345  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7346  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7347  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7348  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7349  DB  196,99,117,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm9
7350  DB  196,193,124,89,193                  ; vmulps        %ymm9,%ymm0,%ymm0
7351  DB  196,193,41,114,208,8                ; vpsrld        $0x8,%xmm8,%xmm10
7352  DB  197,241,114,211,8                   ; vpsrld        $0x8,%xmm3,%xmm1
7353  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
7354  DB  197,164,84,201                      ; vandps        %ymm1,%ymm11,%ymm1
7355  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7356  DB  196,193,116,89,201                  ; vmulps        %ymm9,%ymm1,%ymm1
7357  DB  196,193,41,114,208,16               ; vpsrld        $0x10,%xmm8,%xmm10
7358  DB  197,233,114,211,16                  ; vpsrld        $0x10,%xmm3,%xmm2
7359  DB  196,227,45,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm10,%ymm2
7360  DB  197,164,84,210                      ; vandps        %ymm2,%ymm11,%ymm2
7361  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
7362  DB  196,193,108,89,209                  ; vmulps        %ymm9,%ymm2,%ymm2
7363  DB  196,193,57,114,208,24               ; vpsrld        $0x18,%xmm8,%xmm8
7364  DB  197,225,114,211,24                  ; vpsrld        $0x18,%xmm3,%xmm3
7365  DB  196,227,61,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm3
7366  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
7367  DB  196,193,100,89,217                  ; vmulps        %ymm9,%ymm3,%ymm3
7368  DB  72,173                              ; lods          %ds:(%rsi),%rax
7369  DB  91                                  ; pop           %rbx
7370  DB  65,92                               ; pop           %r12
7371  DB  65,93                               ; pop           %r13
7372  DB  65,94                               ; pop           %r14
7373  DB  65,95                               ; pop           %r15
7374  DB  255,224                             ; jmpq          *%rax
7375
7376PUBLIC _sk_load_565_avx
7377_sk_load_565_avx LABEL PROC
7378  DB  72,173                              ; lods          %ds:(%rsi),%rax
7379  DB  76,139,16                           ; mov           (%rax),%r10
7380  DB  72,133,201                          ; test          %rcx,%rcx
7381  DB  15,133,209,0,0,0                    ; jne           3512 <_sk_load_565_avx+0xdf>
7382  DB  196,193,122,111,4,122               ; vmovdqu       (%r10,%rdi,2),%xmm0
7383  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
7384  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
7385  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
7386  DB  196,227,125,24,209,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm2
7387  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
7388  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7389  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7390  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7391  DB  197,252,84,194                      ; vandps        %ymm2,%ymm0,%ymm0
7392  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7393  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
7394  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7395  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7396  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7397  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7398  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
7399  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7400  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7401  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7402  DB  197,244,84,202                      ; vandps        %ymm2,%ymm1,%ymm1
7403  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7404  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
7405  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7406  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7407  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7408  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
7409  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
7410  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7411  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7412  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7413  DB  197,228,84,210                      ; vandps        %ymm2,%ymm3,%ymm2
7414  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
7415  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
7416  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7417  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7418  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7419  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
7420  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7421  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7422  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7423  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7424  DB  72,173                              ; lods          %ds:(%rsi),%rax
7425  DB  255,224                             ; jmpq          *%rax
7426  DB  65,137,200                          ; mov           %ecx,%r8d
7427  DB  65,128,224,7                        ; and           $0x7,%r8b
7428  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
7429  DB  65,254,200                          ; dec           %r8b
7430  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7431  DB  15,135,29,255,255,255               ; ja            3447 <_sk_load_565_avx+0x14>
7432  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
7433  DB  76,141,13,75,0,0,0                  ; lea           0x4b(%rip),%r9        # 3580 <_sk_load_565_avx+0x14d>
7434  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
7435  DB  76,1,200                            ; add           %r9,%rax
7436  DB  255,224                             ; jmpq          *%rax
7437  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
7438  DB  196,193,121,196,68,122,12,6         ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm0,%xmm0
7439  DB  196,193,121,196,68,122,10,5         ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm0,%xmm0
7440  DB  196,193,121,196,68,122,8,4          ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm0,%xmm0
7441  DB  196,193,121,196,68,122,6,3          ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm0,%xmm0
7442  DB  196,193,121,196,68,122,4,2          ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0
7443  DB  196,193,121,196,68,122,2,1          ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0
7444  DB  196,193,121,196,4,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm0,%xmm0
7445  DB  233,201,254,255,255                 ; jmpq          3447 <_sk_load_565_avx+0x14>
7446  DB  102,144                             ; xchg          %ax,%ax
7447  DB  242,255                             ; repnz         (bad)
7448  DB  255                                 ; (bad)
7449  DB  255                                 ; (bad)
7450  DB  234                                 ; (bad)
7451  DB  255                                 ; (bad)
7452  DB  255                                 ; (bad)
7453  DB  255,226                             ; jmpq          *%rdx
7454  DB  255                                 ; (bad)
7455  DB  255                                 ; (bad)
7456  DB  255                                 ; (bad)
7457  DB  218,255                             ; (bad)
7458  DB  255                                 ; (bad)
7459  DB  255,210                             ; callq         *%rdx
7460  DB  255                                 ; (bad)
7461  DB  255                                 ; (bad)
7462  DB  255,202                             ; dec           %edx
7463  DB  255                                 ; (bad)
7464  DB  255                                 ; (bad)
7465  DB  255                                 ; (bad)
7466  DB  190                                 ; .byte         0xbe
7467  DB  255                                 ; (bad)
7468  DB  255                                 ; (bad)
7469  DB  255                                 ; .byte         0xff
7470
7471PUBLIC _sk_gather_565_avx
7472_sk_gather_565_avx LABEL PROC
7473  DB  85                                  ; push          %rbp
7474  DB  65,87                               ; push          %r15
7475  DB  65,86                               ; push          %r14
7476  DB  65,84                               ; push          %r12
7477  DB  83                                  ; push          %rbx
7478  DB  72,173                              ; lods          %ds:(%rsi),%rax
7479  DB  76,139,0                            ; mov           (%rax),%r8
7480  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7481  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7482  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7483  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7484  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7485  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7486  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7487  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7488  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7489  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7490  DB  65,137,193                          ; mov           %eax,%r9d
7491  DB  72,193,232,32                       ; shr           $0x20,%rax
7492  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
7493  DB  69,137,211                          ; mov           %r10d,%r11d
7494  DB  73,193,234,32                       ; shr           $0x20,%r10
7495  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7496  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7497  DB  65,137,222                          ; mov           %ebx,%r14d
7498  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
7499  DB  69,137,252                          ; mov           %r15d,%r12d
7500  DB  73,193,239,32                       ; shr           $0x20,%r15
7501  DB  72,193,235,32                       ; shr           $0x20,%rbx
7502  DB  65,15,183,28,88                     ; movzwl        (%r8,%rbx,2),%ebx
7503  DB  67,15,183,44,112                    ; movzwl        (%r8,%r14,2),%ebp
7504  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
7505  DB  197,249,196,195,1                   ; vpinsrw       $0x1,%ebx,%xmm0,%xmm0
7506  DB  67,15,183,28,96                     ; movzwl        (%r8,%r12,2),%ebx
7507  DB  197,249,196,195,2                   ; vpinsrw       $0x2,%ebx,%xmm0,%xmm0
7508  DB  67,15,183,28,120                    ; movzwl        (%r8,%r15,2),%ebx
7509  DB  197,249,196,195,3                   ; vpinsrw       $0x3,%ebx,%xmm0,%xmm0
7510  DB  67,15,183,44,88                     ; movzwl        (%r8,%r11,2),%ebp
7511  DB  197,249,196,197,4                   ; vpinsrw       $0x4,%ebp,%xmm0,%xmm0
7512  DB  67,15,183,44,80                     ; movzwl        (%r8,%r10,2),%ebp
7513  DB  197,249,196,197,5                   ; vpinsrw       $0x5,%ebp,%xmm0,%xmm0
7514  DB  67,15,183,44,72                     ; movzwl        (%r8,%r9,2),%ebp
7515  DB  197,249,196,197,6                   ; vpinsrw       $0x6,%ebp,%xmm0,%xmm0
7516  DB  65,15,183,4,64                      ; movzwl        (%r8,%rax,2),%eax
7517  DB  197,249,196,192,7                   ; vpinsrw       $0x7,%eax,%xmm0,%xmm0
7518  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
7519  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
7520  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
7521  DB  196,227,125,24,209,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm2
7522  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
7523  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7524  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7525  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7526  DB  197,252,84,194                      ; vandps        %ymm2,%ymm0,%ymm0
7527  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7528  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
7529  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7530  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7531  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7532  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7533  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
7534  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7535  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7536  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7537  DB  197,244,84,202                      ; vandps        %ymm2,%ymm1,%ymm1
7538  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7539  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
7540  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7541  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7542  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7543  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
7544  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
7545  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7546  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7547  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7548  DB  197,228,84,210                      ; vandps        %ymm2,%ymm3,%ymm2
7549  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
7550  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
7551  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7552  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7553  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7554  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
7555  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7556  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7557  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7558  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7559  DB  72,173                              ; lods          %ds:(%rsi),%rax
7560  DB  91                                  ; pop           %rbx
7561  DB  65,92                               ; pop           %r12
7562  DB  65,94                               ; pop           %r14
7563  DB  65,95                               ; pop           %r15
7564  DB  93                                  ; pop           %rbp
7565  DB  255,224                             ; jmpq          *%rax
7566
7567PUBLIC _sk_store_565_avx
7568_sk_store_565_avx LABEL PROC
7569  DB  72,173                              ; lods          %ds:(%rsi),%rax
7570  DB  76,139,8                            ; mov           (%rax),%r9
7571  DB  184,0,0,248,65                      ; mov           $0x41f80000,%eax
7572  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
7573  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
7574  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
7575  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
7576  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
7577  DB  196,193,41,114,241,11               ; vpslld        $0xb,%xmm9,%xmm10
7578  DB  196,67,125,25,201,1                 ; vextractf128  $0x1,%ymm9,%xmm9
7579  DB  196,193,49,114,241,11               ; vpslld        $0xb,%xmm9,%xmm9
7580  DB  196,67,45,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm9
7581  DB  184,0,0,124,66                      ; mov           $0x427c0000,%eax
7582  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
7583  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
7584  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
7585  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
7586  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
7587  DB  196,193,33,114,242,5                ; vpslld        $0x5,%xmm10,%xmm11
7588  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
7589  DB  196,193,41,114,242,5                ; vpslld        $0x5,%xmm10,%xmm10
7590  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
7591  DB  196,65,45,86,201                    ; vorpd         %ymm9,%ymm10,%ymm9
7592  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
7593  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
7594  DB  196,65,53,86,192                    ; vorpd         %ymm8,%ymm9,%ymm8
7595  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
7596  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
7597  DB  72,133,201                          ; test          %rcx,%rcx
7598  DB  117,10                              ; jne           37cb <_sk_store_565_avx+0x9e>
7599  DB  196,65,122,127,4,121                ; vmovdqu       %xmm8,(%r9,%rdi,2)
7600  DB  72,173                              ; lods          %ds:(%rsi),%rax
7601  DB  255,224                             ; jmpq          *%rax
7602  DB  65,137,200                          ; mov           %ecx,%r8d
7603  DB  65,128,224,7                        ; and           $0x7,%r8b
7604  DB  65,254,200                          ; dec           %r8b
7605  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7606  DB  119,236                             ; ja            37c7 <_sk_store_565_avx+0x9a>
7607  DB  65,15,182,192                       ; movzbl        %r8b,%eax
7608  DB  76,141,5,66,0,0,0                   ; lea           0x42(%rip),%r8        # 3828 <_sk_store_565_avx+0xfb>
7609  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
7610  DB  76,1,192                            ; add           %r8,%rax
7611  DB  255,224                             ; jmpq          *%rax
7612  DB  196,67,121,21,68,121,12,6           ; vpextrw       $0x6,%xmm8,0xc(%r9,%rdi,2)
7613  DB  196,67,121,21,68,121,10,5           ; vpextrw       $0x5,%xmm8,0xa(%r9,%rdi,2)
7614  DB  196,67,121,21,68,121,8,4            ; vpextrw       $0x4,%xmm8,0x8(%r9,%rdi,2)
7615  DB  196,67,121,21,68,121,6,3            ; vpextrw       $0x3,%xmm8,0x6(%r9,%rdi,2)
7616  DB  196,67,121,21,68,121,4,2            ; vpextrw       $0x2,%xmm8,0x4(%r9,%rdi,2)
7617  DB  196,67,121,21,68,121,2,1            ; vpextrw       $0x1,%xmm8,0x2(%r9,%rdi,2)
7618  DB  196,67,121,21,4,121,0               ; vpextrw       $0x0,%xmm8,(%r9,%rdi,2)
7619  DB  235,159                             ; jmp           37c7 <_sk_store_565_avx+0x9a>
7620  DB  247,255                             ; idiv          %edi
7621  DB  255                                 ; (bad)
7622  DB  255                                 ; (bad)
7623  DB  239                                 ; out           %eax,(%dx)
7624  DB  255                                 ; (bad)
7625  DB  255                                 ; (bad)
7626  DB  255,231                             ; jmpq          *%rdi
7627  DB  255                                 ; (bad)
7628  DB  255                                 ; (bad)
7629  DB  255                                 ; (bad)
7630  DB  223,255                             ; (bad)
7631  DB  255                                 ; (bad)
7632  DB  255,215                             ; callq         *%rdi
7633  DB  255                                 ; (bad)
7634  DB  255                                 ; (bad)
7635  DB  255,207                             ; dec           %edi
7636  DB  255                                 ; (bad)
7637  DB  255                                 ; (bad)
7638  DB  255,199                             ; inc           %edi
7639  DB  255                                 ; (bad)
7640  DB  255                                 ; (bad)
7641  DB  255                                 ; .byte         0xff
7642
7643PUBLIC _sk_load_4444_avx
7644_sk_load_4444_avx LABEL PROC
7645  DB  72,173                              ; lods          %ds:(%rsi),%rax
7646  DB  76,139,16                           ; mov           (%rax),%r10
7647  DB  72,133,201                          ; test          %rcx,%rcx
7648  DB  15,133,245,0,0,0                    ; jne           3947 <_sk_load_4444_avx+0x103>
7649  DB  196,193,122,111,4,122               ; vmovdqu       (%r10,%rdi,2),%xmm0
7650  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
7651  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
7652  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
7653  DB  196,99,125,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm9
7654  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
7655  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7656  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7657  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7658  DB  196,193,124,84,193                  ; vandps        %ymm9,%ymm0,%ymm0
7659  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7660  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
7661  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7662  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7663  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7664  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7665  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
7666  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7667  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7668  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7669  DB  196,193,116,84,201                  ; vandps        %ymm9,%ymm1,%ymm1
7670  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7671  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
7672  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7673  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7674  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7675  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
7676  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
7677  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7678  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
7679  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7680  DB  196,193,108,84,209                  ; vandps        %ymm9,%ymm2,%ymm2
7681  DB  197,124,91,194                      ; vcvtdq2ps     %ymm2,%ymm8
7682  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
7683  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7684  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7685  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7686  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
7687  DB  184,15,0,0,0                        ; mov           $0xf,%eax
7688  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7689  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7690  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7691  DB  196,193,100,84,217                  ; vandps        %ymm9,%ymm3,%ymm3
7692  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
7693  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
7694  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7695  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7696  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7697  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
7698  DB  72,173                              ; lods          %ds:(%rsi),%rax
7699  DB  255,224                             ; jmpq          *%rax
7700  DB  65,137,200                          ; mov           %ecx,%r8d
7701  DB  65,128,224,7                        ; and           $0x7,%r8b
7702  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
7703  DB  65,254,200                          ; dec           %r8b
7704  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7705  DB  15,135,249,254,255,255              ; ja            3858 <_sk_load_4444_avx+0x14>
7706  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
7707  DB  76,141,13,74,0,0,0                  ; lea           0x4a(%rip),%r9        # 39b4 <_sk_load_4444_avx+0x170>
7708  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
7709  DB  76,1,200                            ; add           %r9,%rax
7710  DB  255,224                             ; jmpq          *%rax
7711  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
7712  DB  196,193,121,196,68,122,12,6         ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm0,%xmm0
7713  DB  196,193,121,196,68,122,10,5         ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm0,%xmm0
7714  DB  196,193,121,196,68,122,8,4          ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm0,%xmm0
7715  DB  196,193,121,196,68,122,6,3          ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm0,%xmm0
7716  DB  196,193,121,196,68,122,4,2          ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0
7717  DB  196,193,121,196,68,122,2,1          ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0
7718  DB  196,193,121,196,4,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm0,%xmm0
7719  DB  233,165,254,255,255                 ; jmpq          3858 <_sk_load_4444_avx+0x14>
7720  DB  144                                 ; nop
7721  DB  243,255                             ; repz          (bad)
7722  DB  255                                 ; (bad)
7723  DB  255                                 ; (bad)
7724  DB  235,255                             ; jmp           39b9 <_sk_load_4444_avx+0x175>
7725  DB  255                                 ; (bad)
7726  DB  255,227                             ; jmpq          *%rbx
7727  DB  255                                 ; (bad)
7728  DB  255                                 ; (bad)
7729  DB  255                                 ; (bad)
7730  DB  219,255                             ; (bad)
7731  DB  255                                 ; (bad)
7732  DB  255,211                             ; callq         *%rbx
7733  DB  255                                 ; (bad)
7734  DB  255                                 ; (bad)
7735  DB  255,203                             ; dec           %ebx
7736  DB  255                                 ; (bad)
7737  DB  255                                 ; (bad)
7738  DB  255                                 ; (bad)
7739  DB  191                                 ; .byte         0xbf
7740  DB  255                                 ; (bad)
7741  DB  255                                 ; (bad)
7742  DB  255                                 ; .byte         0xff
7743
7744PUBLIC _sk_gather_4444_avx
7745_sk_gather_4444_avx LABEL PROC
7746  DB  85                                  ; push          %rbp
7747  DB  65,87                               ; push          %r15
7748  DB  65,86                               ; push          %r14
7749  DB  65,84                               ; push          %r12
7750  DB  83                                  ; push          %rbx
7751  DB  72,173                              ; lods          %ds:(%rsi),%rax
7752  DB  76,139,0                            ; mov           (%rax),%r8
7753  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7754  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7755  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7756  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7757  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7758  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7759  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7760  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7761  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7762  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7763  DB  65,137,193                          ; mov           %eax,%r9d
7764  DB  72,193,232,32                       ; shr           $0x20,%rax
7765  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
7766  DB  69,137,211                          ; mov           %r10d,%r11d
7767  DB  73,193,234,32                       ; shr           $0x20,%r10
7768  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7769  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7770  DB  65,137,222                          ; mov           %ebx,%r14d
7771  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
7772  DB  69,137,252                          ; mov           %r15d,%r12d
7773  DB  73,193,239,32                       ; shr           $0x20,%r15
7774  DB  72,193,235,32                       ; shr           $0x20,%rbx
7775  DB  65,15,183,28,88                     ; movzwl        (%r8,%rbx,2),%ebx
7776  DB  67,15,183,44,112                    ; movzwl        (%r8,%r14,2),%ebp
7777  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
7778  DB  197,249,196,195,1                   ; vpinsrw       $0x1,%ebx,%xmm0,%xmm0
7779  DB  67,15,183,28,96                     ; movzwl        (%r8,%r12,2),%ebx
7780  DB  197,249,196,195,2                   ; vpinsrw       $0x2,%ebx,%xmm0,%xmm0
7781  DB  67,15,183,28,120                    ; movzwl        (%r8,%r15,2),%ebx
7782  DB  197,249,196,195,3                   ; vpinsrw       $0x3,%ebx,%xmm0,%xmm0
7783  DB  67,15,183,44,88                     ; movzwl        (%r8,%r11,2),%ebp
7784  DB  197,249,196,197,4                   ; vpinsrw       $0x4,%ebp,%xmm0,%xmm0
7785  DB  67,15,183,44,80                     ; movzwl        (%r8,%r10,2),%ebp
7786  DB  197,249,196,197,5                   ; vpinsrw       $0x5,%ebp,%xmm0,%xmm0
7787  DB  67,15,183,44,72                     ; movzwl        (%r8,%r9,2),%ebp
7788  DB  197,249,196,197,6                   ; vpinsrw       $0x6,%ebp,%xmm0,%xmm0
7789  DB  65,15,183,4,64                      ; movzwl        (%r8,%rax,2),%eax
7790  DB  197,249,196,192,7                   ; vpinsrw       $0x7,%eax,%xmm0,%xmm0
7791  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
7792  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
7793  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
7794  DB  196,99,125,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm9
7795  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
7796  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7797  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7798  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7799  DB  196,193,124,84,193                  ; vandps        %ymm9,%ymm0,%ymm0
7800  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7801  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
7802  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7803  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7804  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7805  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7806  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
7807  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7808  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7809  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7810  DB  196,193,116,84,201                  ; vandps        %ymm9,%ymm1,%ymm1
7811  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7812  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
7813  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7814  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7815  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7816  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
7817  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
7818  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7819  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
7820  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7821  DB  196,193,108,84,209                  ; vandps        %ymm9,%ymm2,%ymm2
7822  DB  197,124,91,194                      ; vcvtdq2ps     %ymm2,%ymm8
7823  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
7824  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7825  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7826  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7827  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
7828  DB  184,15,0,0,0                        ; mov           $0xf,%eax
7829  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7830  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7831  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7832  DB  196,193,100,84,217                  ; vandps        %ymm9,%ymm3,%ymm3
7833  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
7834  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
7835  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7836  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7837  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7838  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
7839  DB  72,173                              ; lods          %ds:(%rsi),%rax
7840  DB  91                                  ; pop           %rbx
7841  DB  65,92                               ; pop           %r12
7842  DB  65,94                               ; pop           %r14
7843  DB  65,95                               ; pop           %r15
7844  DB  93                                  ; pop           %rbp
7845  DB  255,224                             ; jmpq          *%rax
7846
7847PUBLIC _sk_store_4444_avx
7848_sk_store_4444_avx LABEL PROC
7849  DB  72,173                              ; lods          %ds:(%rsi),%rax
7850  DB  76,139,8                            ; mov           (%rax),%r9
7851  DB  184,0,0,112,65                      ; mov           $0x41700000,%eax
7852  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
7853  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
7854  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
7855  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
7856  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
7857  DB  196,193,41,114,241,12               ; vpslld        $0xc,%xmm9,%xmm10
7858  DB  196,67,125,25,201,1                 ; vextractf128  $0x1,%ymm9,%xmm9
7859  DB  196,193,49,114,241,12               ; vpslld        $0xc,%xmm9,%xmm9
7860  DB  196,67,45,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm9
7861  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
7862  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
7863  DB  196,193,33,114,242,8                ; vpslld        $0x8,%xmm10,%xmm11
7864  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
7865  DB  196,193,41,114,242,8                ; vpslld        $0x8,%xmm10,%xmm10
7866  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
7867  DB  196,65,45,86,201                    ; vorpd         %ymm9,%ymm10,%ymm9
7868  DB  197,60,89,210                       ; vmulps        %ymm2,%ymm8,%ymm10
7869  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
7870  DB  196,193,33,114,242,4                ; vpslld        $0x4,%xmm10,%xmm11
7871  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
7872  DB  196,193,41,114,242,4                ; vpslld        $0x4,%xmm10,%xmm10
7873  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
7874  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
7875  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
7876  DB  196,65,45,86,192                    ; vorpd         %ymm8,%ymm10,%ymm8
7877  DB  196,65,53,86,192                    ; vorpd         %ymm8,%ymm9,%ymm8
7878  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
7879  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
7880  DB  72,133,201                          ; test          %rcx,%rcx
7881  DB  117,10                              ; jne           3c34 <_sk_store_4444_avx+0xaf>
7882  DB  196,65,122,127,4,121                ; vmovdqu       %xmm8,(%r9,%rdi,2)
7883  DB  72,173                              ; lods          %ds:(%rsi),%rax
7884  DB  255,224                             ; jmpq          *%rax
7885  DB  65,137,200                          ; mov           %ecx,%r8d
7886  DB  65,128,224,7                        ; and           $0x7,%r8b
7887  DB  65,254,200                          ; dec           %r8b
7888  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7889  DB  119,236                             ; ja            3c30 <_sk_store_4444_avx+0xab>
7890  DB  65,15,182,192                       ; movzbl        %r8b,%eax
7891  DB  76,141,5,69,0,0,0                   ; lea           0x45(%rip),%r8        # 3c94 <_sk_store_4444_avx+0x10f>
7892  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
7893  DB  76,1,192                            ; add           %r8,%rax
7894  DB  255,224                             ; jmpq          *%rax
7895  DB  196,67,121,21,68,121,12,6           ; vpextrw       $0x6,%xmm8,0xc(%r9,%rdi,2)
7896  DB  196,67,121,21,68,121,10,5           ; vpextrw       $0x5,%xmm8,0xa(%r9,%rdi,2)
7897  DB  196,67,121,21,68,121,8,4            ; vpextrw       $0x4,%xmm8,0x8(%r9,%rdi,2)
7898  DB  196,67,121,21,68,121,6,3            ; vpextrw       $0x3,%xmm8,0x6(%r9,%rdi,2)
7899  DB  196,67,121,21,68,121,4,2            ; vpextrw       $0x2,%xmm8,0x4(%r9,%rdi,2)
7900  DB  196,67,121,21,68,121,2,1            ; vpextrw       $0x1,%xmm8,0x2(%r9,%rdi,2)
7901  DB  196,67,121,21,4,121,0               ; vpextrw       $0x0,%xmm8,(%r9,%rdi,2)
7902  DB  235,159                             ; jmp           3c30 <_sk_store_4444_avx+0xab>
7903  DB  15,31,0                             ; nopl          (%rax)
7904  DB  244                                 ; hlt
7905  DB  255                                 ; (bad)
7906  DB  255                                 ; (bad)
7907  DB  255                                 ; (bad)
7908  DB  236                                 ; in            (%dx),%al
7909  DB  255                                 ; (bad)
7910  DB  255                                 ; (bad)
7911  DB  255,228                             ; jmpq          *%rsp
7912  DB  255                                 ; (bad)
7913  DB  255                                 ; (bad)
7914  DB  255                                 ; (bad)
7915  DB  220,255                             ; fdivr         %st,%st(7)
7916  DB  255                                 ; (bad)
7917  DB  255,212                             ; callq         *%rsp
7918  DB  255                                 ; (bad)
7919  DB  255                                 ; (bad)
7920  DB  255,204                             ; dec           %esp
7921  DB  255                                 ; (bad)
7922  DB  255                                 ; (bad)
7923  DB  255,196                             ; inc           %esp
7924  DB  255                                 ; (bad)
7925  DB  255                                 ; (bad)
7926  DB  255                                 ; .byte         0xff
7927
7928PUBLIC _sk_load_8888_avx
7929_sk_load_8888_avx LABEL PROC
7930  DB  72,173                              ; lods          %ds:(%rsi),%rax
7931  DB  76,139,16                           ; mov           (%rax),%r10
7932  DB  72,133,201                          ; test          %rcx,%rcx
7933  DB  15,133,157,0,0,0                    ; jne           3d5b <_sk_load_8888_avx+0xab>
7934  DB  196,65,124,16,12,186                ; vmovups       (%r10,%rdi,4),%ymm9
7935  DB  184,255,0,0,0                       ; mov           $0xff,%eax
7936  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7937  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7938  DB  196,99,125,24,216,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm11
7939  DB  196,193,36,84,193                   ; vandps        %ymm9,%ymm11,%ymm0
7940  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7941  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7942  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7943  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7944  DB  196,99,117,24,193,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm8
7945  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
7946  DB  196,193,41,114,209,8                ; vpsrld        $0x8,%xmm9,%xmm10
7947  DB  196,99,125,25,203,1                 ; vextractf128  $0x1,%ymm9,%xmm3
7948  DB  197,241,114,211,8                   ; vpsrld        $0x8,%xmm3,%xmm1
7949  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
7950  DB  197,164,84,201                      ; vandps        %ymm1,%ymm11,%ymm1
7951  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7952  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
7953  DB  196,193,41,114,209,16               ; vpsrld        $0x10,%xmm9,%xmm10
7954  DB  197,233,114,211,16                  ; vpsrld        $0x10,%xmm3,%xmm2
7955  DB  196,227,45,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm10,%ymm2
7956  DB  197,164,84,210                      ; vandps        %ymm2,%ymm11,%ymm2
7957  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
7958  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
7959  DB  196,193,49,114,209,24               ; vpsrld        $0x18,%xmm9,%xmm9
7960  DB  197,225,114,211,24                  ; vpsrld        $0x18,%xmm3,%xmm3
7961  DB  196,227,53,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm9,%ymm3
7962  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
7963  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
7964  DB  72,173                              ; lods          %ds:(%rsi),%rax
7965  DB  255,224                             ; jmpq          *%rax
7966  DB  65,137,200                          ; mov           %ecx,%r8d
7967  DB  65,128,224,7                        ; and           $0x7,%r8b
7968  DB  196,65,52,87,201                    ; vxorps        %ymm9,%ymm9,%ymm9
7969  DB  65,254,200                          ; dec           %r8b
7970  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7971  DB  15,135,80,255,255,255               ; ja            3cc4 <_sk_load_8888_avx+0x14>
7972  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
7973  DB  76,141,13,137,0,0,0                 ; lea           0x89(%rip),%r9        # 3e08 <_sk_load_8888_avx+0x158>
7974  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
7975  DB  76,1,200                            ; add           %r9,%rax
7976  DB  255,224                             ; jmpq          *%rax
7977  DB  196,193,121,110,68,186,24           ; vmovd         0x18(%r10,%rdi,4),%xmm0
7978  DB  197,249,112,192,68                  ; vpshufd       $0x44,%xmm0,%xmm0
7979  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7980  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
7981  DB  196,99,117,12,200,64                ; vblendps      $0x40,%ymm0,%ymm1,%ymm9
7982  DB  196,99,125,25,200,1                 ; vextractf128  $0x1,%ymm9,%xmm0
7983  DB  196,195,121,34,68,186,20,1          ; vpinsrd       $0x1,0x14(%r10,%rdi,4),%xmm0,%xmm0
7984  DB  196,99,53,24,200,1                  ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm9
7985  DB  196,99,125,25,200,1                 ; vextractf128  $0x1,%ymm9,%xmm0
7986  DB  196,195,121,34,68,186,16,0          ; vpinsrd       $0x0,0x10(%r10,%rdi,4),%xmm0,%xmm0
7987  DB  196,99,53,24,200,1                  ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm9
7988  DB  196,195,49,34,68,186,12,3           ; vpinsrd       $0x3,0xc(%r10,%rdi,4),%xmm9,%xmm0
7989  DB  196,99,53,12,200,15                 ; vblendps      $0xf,%ymm0,%ymm9,%ymm9
7990  DB  196,195,49,34,68,186,8,2            ; vpinsrd       $0x2,0x8(%r10,%rdi,4),%xmm9,%xmm0
7991  DB  196,99,53,12,200,15                 ; vblendps      $0xf,%ymm0,%ymm9,%ymm9
7992  DB  196,195,49,34,68,186,4,1            ; vpinsrd       $0x1,0x4(%r10,%rdi,4),%xmm9,%xmm0
7993  DB  196,99,53,12,200,15                 ; vblendps      $0xf,%ymm0,%ymm9,%ymm9
7994  DB  196,195,49,34,4,186,0               ; vpinsrd       $0x0,(%r10,%rdi,4),%xmm9,%xmm0
7995  DB  196,99,53,12,200,15                 ; vblendps      $0xf,%ymm0,%ymm9,%ymm9
7996  DB  233,188,254,255,255                 ; jmpq          3cc4 <_sk_load_8888_avx+0x14>
7997  DB  238                                 ; out           %al,(%dx)
7998  DB  255                                 ; (bad)
7999  DB  255                                 ; (bad)
8000  DB  255,224                             ; jmpq          *%rax
8001  DB  255                                 ; (bad)
8002  DB  255                                 ; (bad)
8003  DB  255,210                             ; callq         *%rdx
8004  DB  255                                 ; (bad)
8005  DB  255                                 ; (bad)
8006  DB  255,196                             ; inc           %esp
8007  DB  255                                 ; (bad)
8008  DB  255                                 ; (bad)
8009  DB  255,176,255,255,255,156             ; pushq         -0x63000001(%rax)
8010  DB  255                                 ; (bad)
8011  DB  255                                 ; (bad)
8012  DB  255                                 ; .byte         0xff
8013  DB  128,255,255                         ; cmp           $0xff,%bh
8014  DB  255                                 ; .byte         0xff
8015
8016PUBLIC _sk_gather_8888_avx
8017_sk_gather_8888_avx LABEL PROC
8018  DB  65,87                               ; push          %r15
8019  DB  65,86                               ; push          %r14
8020  DB  65,84                               ; push          %r12
8021  DB  83                                  ; push          %rbx
8022  DB  72,173                              ; lods          %ds:(%rsi),%rax
8023  DB  76,139,0                            ; mov           (%rax),%r8
8024  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
8025  DB  197,249,110,80,16                   ; vmovd         0x10(%rax),%xmm2
8026  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
8027  DB  196,226,105,64,217                  ; vpmulld       %xmm1,%xmm2,%xmm3
8028  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
8029  DB  196,226,105,64,201                  ; vpmulld       %xmm1,%xmm2,%xmm1
8030  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
8031  DB  196,227,125,25,194,1                ; vextractf128  $0x1,%ymm0,%xmm2
8032  DB  197,241,254,202                     ; vpaddd        %xmm2,%xmm1,%xmm1
8033  DB  196,225,249,126,200                 ; vmovq         %xmm1,%rax
8034  DB  65,137,193                          ; mov           %eax,%r9d
8035  DB  72,193,232,32                       ; shr           $0x20,%rax
8036  DB  196,195,249,22,202,1                ; vpextrq       $0x1,%xmm1,%r10
8037  DB  69,137,211                          ; mov           %r10d,%r11d
8038  DB  73,193,234,32                       ; shr           $0x20,%r10
8039  DB  197,225,254,192                     ; vpaddd        %xmm0,%xmm3,%xmm0
8040  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
8041  DB  65,137,222                          ; mov           %ebx,%r14d
8042  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
8043  DB  69,137,252                          ; mov           %r15d,%r12d
8044  DB  72,193,235,32                       ; shr           $0x20,%rbx
8045  DB  73,193,239,32                       ; shr           $0x20,%r15
8046  DB  196,129,121,110,4,176               ; vmovd         (%r8,%r14,4),%xmm0
8047  DB  196,195,121,34,4,152,1              ; vpinsrd       $0x1,(%r8,%rbx,4),%xmm0,%xmm0
8048  DB  196,131,121,34,4,160,2              ; vpinsrd       $0x2,(%r8,%r12,4),%xmm0,%xmm0
8049  DB  196,3,121,34,4,184,3                ; vpinsrd       $0x3,(%r8,%r15,4),%xmm0,%xmm8
8050  DB  196,129,121,110,4,136               ; vmovd         (%r8,%r9,4),%xmm0
8051  DB  196,195,121,34,4,128,1              ; vpinsrd       $0x1,(%r8,%rax,4),%xmm0,%xmm0
8052  DB  196,131,121,34,4,152,2              ; vpinsrd       $0x2,(%r8,%r11,4),%xmm0,%xmm0
8053  DB  196,131,121,34,28,144,3             ; vpinsrd       $0x3,(%r8,%r10,4),%xmm0,%xmm3
8054  DB  196,227,61,24,195,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm0
8055  DB  184,255,0,0,0                       ; mov           $0xff,%eax
8056  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
8057  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
8058  DB  196,99,117,24,217,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm11
8059  DB  197,164,84,192                      ; vandps        %ymm0,%ymm11,%ymm0
8060  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
8061  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
8062  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
8063  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
8064  DB  196,99,117,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm9
8065  DB  196,193,124,89,193                  ; vmulps        %ymm9,%ymm0,%ymm0
8066  DB  196,193,41,114,208,8                ; vpsrld        $0x8,%xmm8,%xmm10
8067  DB  197,241,114,211,8                   ; vpsrld        $0x8,%xmm3,%xmm1
8068  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
8069  DB  197,164,84,201                      ; vandps        %ymm1,%ymm11,%ymm1
8070  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
8071  DB  196,193,116,89,201                  ; vmulps        %ymm9,%ymm1,%ymm1
8072  DB  196,193,41,114,208,16               ; vpsrld        $0x10,%xmm8,%xmm10
8073  DB  197,233,114,211,16                  ; vpsrld        $0x10,%xmm3,%xmm2
8074  DB  196,227,45,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm10,%ymm2
8075  DB  197,164,84,210                      ; vandps        %ymm2,%ymm11,%ymm2
8076  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
8077  DB  196,193,108,89,209                  ; vmulps        %ymm9,%ymm2,%ymm2
8078  DB  196,193,57,114,208,24               ; vpsrld        $0x18,%xmm8,%xmm8
8079  DB  197,225,114,211,24                  ; vpsrld        $0x18,%xmm3,%xmm3
8080  DB  196,227,61,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm3
8081  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
8082  DB  196,193,100,89,217                  ; vmulps        %ymm9,%ymm3,%ymm3
8083  DB  72,173                              ; lods          %ds:(%rsi),%rax
8084  DB  91                                  ; pop           %rbx
8085  DB  65,92                               ; pop           %r12
8086  DB  65,94                               ; pop           %r14
8087  DB  65,95                               ; pop           %r15
8088  DB  255,224                             ; jmpq          *%rax
8089
8090PUBLIC _sk_store_8888_avx
8091_sk_store_8888_avx LABEL PROC
8092  DB  72,173                              ; lods          %ds:(%rsi),%rax
8093  DB  76,139,8                            ; mov           (%rax),%r9
8094  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
8095  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
8096  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
8097  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
8098  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
8099  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
8100  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
8101  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
8102  DB  196,193,33,114,242,8                ; vpslld        $0x8,%xmm10,%xmm11
8103  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
8104  DB  196,193,41,114,242,8                ; vpslld        $0x8,%xmm10,%xmm10
8105  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
8106  DB  196,65,45,86,201                    ; vorpd         %ymm9,%ymm10,%ymm9
8107  DB  197,60,89,210                       ; vmulps        %ymm2,%ymm8,%ymm10
8108  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
8109  DB  196,193,33,114,242,16               ; vpslld        $0x10,%xmm10,%xmm11
8110  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
8111  DB  196,193,41,114,242,16               ; vpslld        $0x10,%xmm10,%xmm10
8112  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
8113  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
8114  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
8115  DB  196,193,33,114,240,24               ; vpslld        $0x18,%xmm8,%xmm11
8116  DB  196,67,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm8
8117  DB  196,193,57,114,240,24               ; vpslld        $0x18,%xmm8,%xmm8
8118  DB  196,67,37,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm11,%ymm8
8119  DB  196,65,45,86,192                    ; vorpd         %ymm8,%ymm10,%ymm8
8120  DB  196,65,53,86,192                    ; vorpd         %ymm8,%ymm9,%ymm8
8121  DB  72,133,201                          ; test          %rcx,%rcx
8122  DB  117,10                              ; jne           4009 <_sk_store_8888_avx+0xa4>
8123  DB  196,65,124,17,4,185                 ; vmovups       %ymm8,(%r9,%rdi,4)
8124  DB  72,173                              ; lods          %ds:(%rsi),%rax
8125  DB  255,224                             ; jmpq          *%rax
8126  DB  65,137,200                          ; mov           %ecx,%r8d
8127  DB  65,128,224,7                        ; and           $0x7,%r8b
8128  DB  65,254,200                          ; dec           %r8b
8129  DB  65,128,248,6                        ; cmp           $0x6,%r8b
8130  DB  119,236                             ; ja            4005 <_sk_store_8888_avx+0xa0>
8131  DB  65,15,182,192                       ; movzbl        %r8b,%eax
8132  DB  76,141,5,84,0,0,0                   ; lea           0x54(%rip),%r8        # 4078 <_sk_store_8888_avx+0x113>
8133  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
8134  DB  76,1,192                            ; add           %r8,%rax
8135  DB  255,224                             ; jmpq          *%rax
8136  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
8137  DB  196,67,121,22,76,185,24,2           ; vpextrd       $0x2,%xmm9,0x18(%r9,%rdi,4)
8138  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
8139  DB  196,67,121,22,76,185,20,1           ; vpextrd       $0x1,%xmm9,0x14(%r9,%rdi,4)
8140  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
8141  DB  196,65,122,17,76,185,16             ; vmovss        %xmm9,0x10(%r9,%rdi,4)
8142  DB  196,67,121,22,68,185,12,3           ; vpextrd       $0x3,%xmm8,0xc(%r9,%rdi,4)
8143  DB  196,67,121,22,68,185,8,2            ; vpextrd       $0x2,%xmm8,0x8(%r9,%rdi,4)
8144  DB  196,67,121,22,68,185,4,1            ; vpextrd       $0x1,%xmm8,0x4(%r9,%rdi,4)
8145  DB  196,65,121,126,4,185                ; vmovd         %xmm8,(%r9,%rdi,4)
8146  DB  235,143                             ; jmp           4005 <_sk_store_8888_avx+0xa0>
8147  DB  102,144                             ; xchg          %ax,%ax
8148  DB  246,255                             ; idiv          %bh
8149  DB  255                                 ; (bad)
8150  DB  255                                 ; (bad)
8151  DB  238                                 ; out           %al,(%dx)
8152  DB  255                                 ; (bad)
8153  DB  255                                 ; (bad)
8154  DB  255,230                             ; jmpq          *%rsi
8155  DB  255                                 ; (bad)
8156  DB  255                                 ; (bad)
8157  DB  255                                 ; (bad)
8158  DB  222,255                             ; fdivrp        %st,%st(7)
8159  DB  255                                 ; (bad)
8160  DB  255,209                             ; callq         *%rcx
8161  DB  255                                 ; (bad)
8162  DB  255                                 ; (bad)
8163  DB  255,195                             ; inc           %ebx
8164  DB  255                                 ; (bad)
8165  DB  255                                 ; (bad)
8166  DB  255                                 ; .byte         0xff
8167  DB  181,255                             ; mov           $0xff,%ch
8168  DB  255                                 ; (bad)
8169  DB  255                                 ; .byte         0xff
8170
8171PUBLIC _sk_load_f16_avx
8172_sk_load_f16_avx LABEL PROC
8173  DB  72,129,236,152,0,0,0                ; sub           $0x98,%rsp
8174  DB  72,173                              ; lods          %ds:(%rsi),%rax
8175  DB  72,139,0                            ; mov           (%rax),%rax
8176  DB  72,133,201                          ; test          %rcx,%rcx
8177  DB  197,252,17,124,36,96                ; vmovups       %ymm7,0x60(%rsp)
8178  DB  197,252,17,116,36,64                ; vmovups       %ymm6,0x40(%rsp)
8179  DB  197,252,17,108,36,32                ; vmovups       %ymm5,0x20(%rsp)
8180  DB  197,254,127,36,36                   ; vmovdqu       %ymm4,(%rsp)
8181  DB  15,133,143,2,0,0                    ; jne           434f <_sk_load_f16_avx+0x2bb>
8182  DB  197,121,16,4,248                    ; vmovupd       (%rax,%rdi,8),%xmm8
8183  DB  197,249,16,84,248,16                ; vmovupd       0x10(%rax,%rdi,8),%xmm2
8184  DB  197,249,16,76,248,32                ; vmovupd       0x20(%rax,%rdi,8),%xmm1
8185  DB  197,122,111,76,248,48               ; vmovdqu       0x30(%rax,%rdi,8),%xmm9
8186  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
8187  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
8188  DB  196,193,113,97,217                  ; vpunpcklwd    %xmm9,%xmm1,%xmm3
8189  DB  196,193,113,105,201                 ; vpunpckhwd    %xmm9,%xmm1,%xmm1
8190  DB  197,121,97,250                      ; vpunpcklwd    %xmm2,%xmm0,%xmm15
8191  DB  197,121,105,194                     ; vpunpckhwd    %xmm2,%xmm0,%xmm8
8192  DB  197,225,97,209                      ; vpunpcklwd    %xmm1,%xmm3,%xmm2
8193  DB  197,97,105,201                      ; vpunpckhwd    %xmm1,%xmm3,%xmm9
8194  DB  197,129,108,194                     ; vpunpcklqdq   %xmm2,%xmm15,%xmm0
8195  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
8196  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
8197  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
8198  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
8199  DB  196,98,125,24,37,179,28,0,0         ; vbroadcastss  0x1cb3(%rip),%ymm12        # 5dcc <_sk_callback_avx+0x1e2>
8200  DB  196,193,124,84,204                  ; vandps        %ymm12,%ymm0,%ymm1
8201  DB  197,252,87,193                      ; vxorps        %ymm1,%ymm0,%ymm0
8202  DB  196,195,125,25,198,1                ; vextractf128  $0x1,%ymm0,%xmm14
8203  DB  196,98,121,24,29,159,28,0,0         ; vbroadcastss  0x1c9f(%rip),%xmm11        # 5dd0 <_sk_callback_avx+0x1e6>
8204  DB  196,193,8,87,219                    ; vxorps        %xmm11,%xmm14,%xmm3
8205  DB  196,98,121,24,45,149,28,0,0         ; vbroadcastss  0x1c95(%rip),%xmm13        # 5dd4 <_sk_callback_avx+0x1ea>
8206  DB  197,145,102,219                     ; vpcmpgtd      %xmm3,%xmm13,%xmm3
8207  DB  196,65,120,87,211                   ; vxorps        %xmm11,%xmm0,%xmm10
8208  DB  196,65,17,102,210                   ; vpcmpgtd      %xmm10,%xmm13,%xmm10
8209  DB  196,99,45,24,211,1                  ; vinsertf128   $0x1,%xmm3,%ymm10,%ymm10
8210  DB  197,225,114,241,16                  ; vpslld        $0x10,%xmm1,%xmm3
8211  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
8212  DB  197,241,114,241,16                  ; vpslld        $0x10,%xmm1,%xmm1
8213  DB  196,227,101,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm3,%ymm1
8214  DB  197,249,114,240,13                  ; vpslld        $0xd,%xmm0,%xmm0
8215  DB  196,193,97,114,246,13               ; vpslld        $0xd,%xmm14,%xmm3
8216  DB  196,227,125,24,195,1                ; vinsertf128   $0x1,%xmm3,%ymm0,%ymm0
8217  DB  197,252,86,193                      ; vorps         %ymm1,%ymm0,%ymm0
8218  DB  196,227,125,25,193,1                ; vextractf128  $0x1,%ymm0,%xmm1
8219  DB  196,226,121,24,29,75,28,0,0         ; vbroadcastss  0x1c4b(%rip),%xmm3        # 5dd8 <_sk_callback_avx+0x1ee>
8220  DB  197,241,254,203                     ; vpaddd        %xmm3,%xmm1,%xmm1
8221  DB  197,249,254,195                     ; vpaddd        %xmm3,%xmm0,%xmm0
8222  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
8223  DB  196,65,12,87,246                    ; vxorps        %ymm14,%ymm14,%ymm14
8224  DB  196,195,125,74,198,160              ; vblendvps     %ymm10,%ymm14,%ymm0,%ymm0
8225  DB  197,129,109,202                     ; vpunpckhqdq   %xmm2,%xmm15,%xmm1
8226  DB  197,217,239,228                     ; vpxor         %xmm4,%xmm4,%xmm4
8227  DB  197,241,105,212                     ; vpunpckhwd    %xmm4,%xmm1,%xmm2
8228  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
8229  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8230  DB  196,193,116,84,212                  ; vandps        %ymm12,%ymm1,%ymm2
8231  DB  197,244,87,202                      ; vxorps        %ymm2,%ymm1,%ymm1
8232  DB  196,195,125,25,202,1                ; vextractf128  $0x1,%ymm1,%xmm10
8233  DB  196,193,40,87,251                   ; vxorps        %xmm11,%xmm10,%xmm7
8234  DB  197,145,102,255                     ; vpcmpgtd      %xmm7,%xmm13,%xmm7
8235  DB  196,193,112,87,243                  ; vxorps        %xmm11,%xmm1,%xmm6
8236  DB  197,145,102,246                     ; vpcmpgtd      %xmm6,%xmm13,%xmm6
8237  DB  196,227,77,24,247,1                 ; vinsertf128   $0x1,%xmm7,%ymm6,%ymm6
8238  DB  197,193,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm7
8239  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
8240  DB  197,233,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm2
8241  DB  196,227,69,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm7,%ymm2
8242  DB  197,241,114,241,13                  ; vpslld        $0xd,%xmm1,%xmm1
8243  DB  196,193,65,114,242,13               ; vpslld        $0xd,%xmm10,%xmm7
8244  DB  196,227,117,24,207,1                ; vinsertf128   $0x1,%xmm7,%ymm1,%ymm1
8245  DB  197,244,86,202                      ; vorps         %ymm2,%ymm1,%ymm1
8246  DB  196,227,125,25,202,1                ; vextractf128  $0x1,%ymm1,%xmm2
8247  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
8248  DB  197,241,254,203                     ; vpaddd        %xmm3,%xmm1,%xmm1
8249  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8250  DB  196,195,117,74,206,96               ; vblendvps     %ymm6,%ymm14,%ymm1,%ymm1
8251  DB  196,193,57,108,209                  ; vpunpcklqdq   %xmm9,%xmm8,%xmm2
8252  DB  197,233,105,244                     ; vpunpckhwd    %xmm4,%xmm2,%xmm6
8253  DB  196,65,41,239,210                   ; vpxor         %xmm10,%xmm10,%xmm10
8254  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
8255  DB  196,227,109,24,214,1                ; vinsertf128   $0x1,%xmm6,%ymm2,%ymm2
8256  DB  196,193,108,84,244                  ; vandps        %ymm12,%ymm2,%ymm6
8257  DB  197,236,87,214                      ; vxorps        %ymm6,%ymm2,%ymm2
8258  DB  196,227,125,25,215,1                ; vextractf128  $0x1,%ymm2,%xmm7
8259  DB  196,193,64,87,235                   ; vxorps        %xmm11,%xmm7,%xmm5
8260  DB  197,145,102,237                     ; vpcmpgtd      %xmm5,%xmm13,%xmm5
8261  DB  196,193,104,87,227                  ; vxorps        %xmm11,%xmm2,%xmm4
8262  DB  197,145,102,228                     ; vpcmpgtd      %xmm4,%xmm13,%xmm4
8263  DB  196,227,93,24,229,1                 ; vinsertf128   $0x1,%xmm5,%ymm4,%ymm4
8264  DB  197,209,114,246,16                  ; vpslld        $0x10,%xmm6,%xmm5
8265  DB  196,227,125,25,246,1                ; vextractf128  $0x1,%ymm6,%xmm6
8266  DB  197,201,114,246,16                  ; vpslld        $0x10,%xmm6,%xmm6
8267  DB  196,227,85,24,238,1                 ; vinsertf128   $0x1,%xmm6,%ymm5,%ymm5
8268  DB  197,233,114,242,13                  ; vpslld        $0xd,%xmm2,%xmm2
8269  DB  197,201,114,247,13                  ; vpslld        $0xd,%xmm7,%xmm6
8270  DB  196,227,109,24,214,1                ; vinsertf128   $0x1,%xmm6,%ymm2,%ymm2
8271  DB  197,236,86,213                      ; vorps         %ymm5,%ymm2,%ymm2
8272  DB  196,227,125,25,213,1                ; vextractf128  $0x1,%ymm2,%xmm5
8273  DB  197,209,254,235                     ; vpaddd        %xmm3,%xmm5,%xmm5
8274  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
8275  DB  196,227,109,24,213,1                ; vinsertf128   $0x1,%xmm5,%ymm2,%ymm2
8276  DB  196,195,109,74,214,64               ; vblendvps     %ymm4,%ymm14,%ymm2,%ymm2
8277  DB  196,193,57,109,225                  ; vpunpckhqdq   %xmm9,%xmm8,%xmm4
8278  DB  196,193,89,105,234                  ; vpunpckhwd    %xmm10,%xmm4,%xmm5
8279  DB  196,226,121,51,228                  ; vpmovzxwd     %xmm4,%xmm4
8280  DB  196,227,93,24,229,1                 ; vinsertf128   $0x1,%xmm5,%ymm4,%ymm4
8281  DB  196,193,92,84,236                   ; vandps        %ymm12,%ymm4,%ymm5
8282  DB  197,220,87,229                      ; vxorps        %ymm5,%ymm4,%ymm4
8283  DB  196,227,125,25,230,1                ; vextractf128  $0x1,%ymm4,%xmm6
8284  DB  196,193,72,87,251                   ; vxorps        %xmm11,%xmm6,%xmm7
8285  DB  197,17,102,199                      ; vpcmpgtd      %xmm7,%xmm13,%xmm8
8286  DB  196,193,88,87,251                   ; vxorps        %xmm11,%xmm4,%xmm7
8287  DB  197,145,102,255                     ; vpcmpgtd      %xmm7,%xmm13,%xmm7
8288  DB  196,195,69,24,248,1                 ; vinsertf128   $0x1,%xmm8,%ymm7,%ymm7
8289  DB  197,185,114,245,16                  ; vpslld        $0x10,%xmm5,%xmm8
8290  DB  196,227,125,25,237,1                ; vextractf128  $0x1,%ymm5,%xmm5
8291  DB  197,209,114,245,16                  ; vpslld        $0x10,%xmm5,%xmm5
8292  DB  196,227,61,24,237,1                 ; vinsertf128   $0x1,%xmm5,%ymm8,%ymm5
8293  DB  197,217,114,244,13                  ; vpslld        $0xd,%xmm4,%xmm4
8294  DB  197,201,114,246,13                  ; vpslld        $0xd,%xmm6,%xmm6
8295  DB  196,227,93,24,230,1                 ; vinsertf128   $0x1,%xmm6,%ymm4,%ymm4
8296  DB  197,220,86,229                      ; vorps         %ymm5,%ymm4,%ymm4
8297  DB  196,227,125,25,229,1                ; vextractf128  $0x1,%ymm4,%xmm5
8298  DB  197,209,254,235                     ; vpaddd        %xmm3,%xmm5,%xmm5
8299  DB  197,217,254,219                     ; vpaddd        %xmm3,%xmm4,%xmm3
8300  DB  196,227,101,24,221,1                ; vinsertf128   $0x1,%xmm5,%ymm3,%ymm3
8301  DB  196,195,101,74,222,112              ; vblendvps     %ymm7,%ymm14,%ymm3,%ymm3
8302  DB  72,173                              ; lods          %ds:(%rsi),%rax
8303  DB  197,252,16,36,36                    ; vmovups       (%rsp),%ymm4
8304  DB  197,252,16,108,36,32                ; vmovups       0x20(%rsp),%ymm5
8305  DB  197,252,16,116,36,64                ; vmovups       0x40(%rsp),%ymm6
8306  DB  197,252,16,124,36,96                ; vmovups       0x60(%rsp),%ymm7
8307  DB  72,129,196,152,0,0,0                ; add           $0x98,%rsp
8308  DB  255,224                             ; jmpq          *%rax
8309  DB  197,123,16,4,248                    ; vmovsd        (%rax,%rdi,8),%xmm8
8310  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
8311  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8312  DB  116,79                              ; je            43ae <_sk_load_f16_avx+0x31a>
8313  DB  197,57,22,68,248,8                  ; vmovhpd       0x8(%rax,%rdi,8),%xmm8,%xmm8
8314  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8315  DB  114,67                              ; jb            43ae <_sk_load_f16_avx+0x31a>
8316  DB  197,251,16,84,248,16                ; vmovsd        0x10(%rax,%rdi,8),%xmm2
8317  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8318  DB  116,68                              ; je            43bb <_sk_load_f16_avx+0x327>
8319  DB  197,233,22,84,248,24                ; vmovhpd       0x18(%rax,%rdi,8),%xmm2,%xmm2
8320  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8321  DB  114,56                              ; jb            43bb <_sk_load_f16_avx+0x327>
8322  DB  197,251,16,76,248,32                ; vmovsd        0x20(%rax,%rdi,8),%xmm1
8323  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8324  DB  15,132,68,253,255,255               ; je            40d7 <_sk_load_f16_avx+0x43>
8325  DB  197,241,22,76,248,40                ; vmovhpd       0x28(%rax,%rdi,8),%xmm1,%xmm1
8326  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8327  DB  15,130,52,253,255,255               ; jb            40d7 <_sk_load_f16_avx+0x43>
8328  DB  197,122,126,76,248,48               ; vmovq         0x30(%rax,%rdi,8),%xmm9
8329  DB  233,41,253,255,255                  ; jmpq          40d7 <_sk_load_f16_avx+0x43>
8330  DB  197,241,87,201                      ; vxorpd        %xmm1,%xmm1,%xmm1
8331  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
8332  DB  233,28,253,255,255                  ; jmpq          40d7 <_sk_load_f16_avx+0x43>
8333  DB  197,241,87,201                      ; vxorpd        %xmm1,%xmm1,%xmm1
8334  DB  233,19,253,255,255                  ; jmpq          40d7 <_sk_load_f16_avx+0x43>
8335
8336PUBLIC _sk_gather_f16_avx
8337_sk_gather_f16_avx LABEL PROC
8338  DB  65,87                               ; push          %r15
8339  DB  65,86                               ; push          %r14
8340  DB  65,84                               ; push          %r12
8341  DB  83                                  ; push          %rbx
8342  DB  72,129,236,152,0,0,0                ; sub           $0x98,%rsp
8343  DB  197,252,17,124,36,96                ; vmovups       %ymm7,0x60(%rsp)
8344  DB  197,252,17,116,36,64                ; vmovups       %ymm6,0x40(%rsp)
8345  DB  197,252,17,108,36,32                ; vmovups       %ymm5,0x20(%rsp)
8346  DB  197,254,127,36,36                   ; vmovdqu       %ymm4,(%rsp)
8347  DB  72,173                              ; lods          %ds:(%rsi),%rax
8348  DB  76,139,0                            ; mov           (%rax),%r8
8349  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
8350  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
8351  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
8352  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
8353  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
8354  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
8355  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
8356  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
8357  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
8358  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
8359  DB  65,137,193                          ; mov           %eax,%r9d
8360  DB  72,193,232,32                       ; shr           $0x20,%rax
8361  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
8362  DB  69,137,211                          ; mov           %r10d,%r11d
8363  DB  73,193,234,32                       ; shr           $0x20,%r10
8364  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
8365  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
8366  DB  65,137,222                          ; mov           %ebx,%r14d
8367  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
8368  DB  69,137,252                          ; mov           %r15d,%r12d
8369  DB  73,193,239,32                       ; shr           $0x20,%r15
8370  DB  72,193,235,32                       ; shr           $0x20,%rbx
8371  DB  196,193,122,126,4,216               ; vmovq         (%r8,%rbx,8),%xmm0
8372  DB  196,129,122,126,12,240              ; vmovq         (%r8,%r14,8),%xmm1
8373  DB  197,113,108,200                     ; vpunpcklqdq   %xmm0,%xmm1,%xmm9
8374  DB  196,129,122,126,12,248              ; vmovq         (%r8,%r15,8),%xmm1
8375  DB  196,129,122,126,20,224              ; vmovq         (%r8,%r12,8),%xmm2
8376  DB  197,233,108,201                     ; vpunpcklqdq   %xmm1,%xmm2,%xmm1
8377  DB  196,129,122,126,20,208              ; vmovq         (%r8,%r10,8),%xmm2
8378  DB  196,129,122,126,28,216              ; vmovq         (%r8,%r11,8),%xmm3
8379  DB  197,97,108,210                      ; vpunpcklqdq   %xmm2,%xmm3,%xmm10
8380  DB  196,65,122,126,4,192                ; vmovq         (%r8,%rax,8),%xmm8
8381  DB  196,129,122,126,28,200              ; vmovq         (%r8,%r9,8),%xmm3
8382  DB  196,193,97,108,216                  ; vpunpcklqdq   %xmm8,%xmm3,%xmm3
8383  DB  197,177,97,193                      ; vpunpcklwd    %xmm1,%xmm9,%xmm0
8384  DB  197,177,105,201                     ; vpunpckhwd    %xmm1,%xmm9,%xmm1
8385  DB  197,169,97,211                      ; vpunpcklwd    %xmm3,%xmm10,%xmm2
8386  DB  197,169,105,219                     ; vpunpckhwd    %xmm3,%xmm10,%xmm3
8387  DB  197,121,97,249                      ; vpunpcklwd    %xmm1,%xmm0,%xmm15
8388  DB  197,121,105,193                     ; vpunpckhwd    %xmm1,%xmm0,%xmm8
8389  DB  197,233,97,203                      ; vpunpcklwd    %xmm3,%xmm2,%xmm1
8390  DB  197,105,105,203                     ; vpunpckhwd    %xmm3,%xmm2,%xmm9
8391  DB  197,129,108,193                     ; vpunpcklqdq   %xmm1,%xmm15,%xmm0
8392  DB  197,233,239,210                     ; vpxor         %xmm2,%xmm2,%xmm2
8393  DB  197,249,105,210                     ; vpunpckhwd    %xmm2,%xmm0,%xmm2
8394  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
8395  DB  196,227,125,24,194,1                ; vinsertf128   $0x1,%xmm2,%ymm0,%ymm0
8396  DB  196,98,125,24,37,11,25,0,0          ; vbroadcastss  0x190b(%rip),%ymm12        # 5ddc <_sk_callback_avx+0x1f2>
8397  DB  196,193,124,84,212                  ; vandps        %ymm12,%ymm0,%ymm2
8398  DB  197,252,87,194                      ; vxorps        %ymm2,%ymm0,%ymm0
8399  DB  196,195,125,25,198,1                ; vextractf128  $0x1,%ymm0,%xmm14
8400  DB  196,98,121,24,29,247,24,0,0         ; vbroadcastss  0x18f7(%rip),%xmm11        # 5de0 <_sk_callback_avx+0x1f6>
8401  DB  196,193,8,87,219                    ; vxorps        %xmm11,%xmm14,%xmm3
8402  DB  196,98,121,24,45,237,24,0,0         ; vbroadcastss  0x18ed(%rip),%xmm13        # 5de4 <_sk_callback_avx+0x1fa>
8403  DB  197,145,102,219                     ; vpcmpgtd      %xmm3,%xmm13,%xmm3
8404  DB  196,65,120,87,211                   ; vxorps        %xmm11,%xmm0,%xmm10
8405  DB  196,65,17,102,210                   ; vpcmpgtd      %xmm10,%xmm13,%xmm10
8406  DB  196,99,45,24,211,1                  ; vinsertf128   $0x1,%xmm3,%ymm10,%ymm10
8407  DB  197,225,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm3
8408  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
8409  DB  197,233,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm2
8410  DB  196,227,101,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm3,%ymm2
8411  DB  197,249,114,240,13                  ; vpslld        $0xd,%xmm0,%xmm0
8412  DB  196,193,97,114,246,13               ; vpslld        $0xd,%xmm14,%xmm3
8413  DB  196,227,125,24,195,1                ; vinsertf128   $0x1,%xmm3,%ymm0,%ymm0
8414  DB  197,252,86,194                      ; vorps         %ymm2,%ymm0,%ymm0
8415  DB  196,227,125,25,194,1                ; vextractf128  $0x1,%ymm0,%xmm2
8416  DB  196,226,121,24,29,163,24,0,0        ; vbroadcastss  0x18a3(%rip),%xmm3        # 5de8 <_sk_callback_avx+0x1fe>
8417  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
8418  DB  197,249,254,195                     ; vpaddd        %xmm3,%xmm0,%xmm0
8419  DB  196,227,125,24,194,1                ; vinsertf128   $0x1,%xmm2,%ymm0,%ymm0
8420  DB  196,65,12,87,246                    ; vxorps        %ymm14,%ymm14,%ymm14
8421  DB  196,195,125,74,198,160              ; vblendvps     %ymm10,%ymm14,%ymm0,%ymm0
8422  DB  197,129,109,201                     ; vpunpckhqdq   %xmm1,%xmm15,%xmm1
8423  DB  197,217,239,228                     ; vpxor         %xmm4,%xmm4,%xmm4
8424  DB  197,241,105,212                     ; vpunpckhwd    %xmm4,%xmm1,%xmm2
8425  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
8426  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8427  DB  196,193,116,84,212                  ; vandps        %ymm12,%ymm1,%ymm2
8428  DB  197,244,87,202                      ; vxorps        %ymm2,%ymm1,%ymm1
8429  DB  196,195,125,25,202,1                ; vextractf128  $0x1,%ymm1,%xmm10
8430  DB  196,193,40,87,251                   ; vxorps        %xmm11,%xmm10,%xmm7
8431  DB  197,145,102,255                     ; vpcmpgtd      %xmm7,%xmm13,%xmm7
8432  DB  196,193,112,87,243                  ; vxorps        %xmm11,%xmm1,%xmm6
8433  DB  197,145,102,246                     ; vpcmpgtd      %xmm6,%xmm13,%xmm6
8434  DB  196,227,77,24,247,1                 ; vinsertf128   $0x1,%xmm7,%ymm6,%ymm6
8435  DB  197,193,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm7
8436  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
8437  DB  197,233,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm2
8438  DB  196,227,69,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm7,%ymm2
8439  DB  197,241,114,241,13                  ; vpslld        $0xd,%xmm1,%xmm1
8440  DB  196,193,65,114,242,13               ; vpslld        $0xd,%xmm10,%xmm7
8441  DB  196,227,117,24,207,1                ; vinsertf128   $0x1,%xmm7,%ymm1,%ymm1
8442  DB  197,244,86,202                      ; vorps         %ymm2,%ymm1,%ymm1
8443  DB  196,227,125,25,202,1                ; vextractf128  $0x1,%ymm1,%xmm2
8444  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
8445  DB  197,241,254,203                     ; vpaddd        %xmm3,%xmm1,%xmm1
8446  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8447  DB  196,195,117,74,206,96               ; vblendvps     %ymm6,%ymm14,%ymm1,%ymm1
8448  DB  196,193,57,108,209                  ; vpunpcklqdq   %xmm9,%xmm8,%xmm2
8449  DB  197,233,105,244                     ; vpunpckhwd    %xmm4,%xmm2,%xmm6
8450  DB  196,65,41,239,210                   ; vpxor         %xmm10,%xmm10,%xmm10
8451  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
8452  DB  196,227,109,24,214,1                ; vinsertf128   $0x1,%xmm6,%ymm2,%ymm2
8453  DB  196,193,108,84,244                  ; vandps        %ymm12,%ymm2,%ymm6
8454  DB  197,236,87,214                      ; vxorps        %ymm6,%ymm2,%ymm2
8455  DB  196,227,125,25,215,1                ; vextractf128  $0x1,%ymm2,%xmm7
8456  DB  196,193,64,87,235                   ; vxorps        %xmm11,%xmm7,%xmm5
8457  DB  197,145,102,237                     ; vpcmpgtd      %xmm5,%xmm13,%xmm5
8458  DB  196,193,104,87,227                  ; vxorps        %xmm11,%xmm2,%xmm4
8459  DB  197,145,102,228                     ; vpcmpgtd      %xmm4,%xmm13,%xmm4
8460  DB  196,227,93,24,229,1                 ; vinsertf128   $0x1,%xmm5,%ymm4,%ymm4
8461  DB  197,209,114,246,16                  ; vpslld        $0x10,%xmm6,%xmm5
8462  DB  196,227,125,25,246,1                ; vextractf128  $0x1,%ymm6,%xmm6
8463  DB  197,201,114,246,16                  ; vpslld        $0x10,%xmm6,%xmm6
8464  DB  196,227,85,24,238,1                 ; vinsertf128   $0x1,%xmm6,%ymm5,%ymm5
8465  DB  197,233,114,242,13                  ; vpslld        $0xd,%xmm2,%xmm2
8466  DB  197,201,114,247,13                  ; vpslld        $0xd,%xmm7,%xmm6
8467  DB  196,227,109,24,214,1                ; vinsertf128   $0x1,%xmm6,%ymm2,%ymm2
8468  DB  197,236,86,213                      ; vorps         %ymm5,%ymm2,%ymm2
8469  DB  196,227,125,25,213,1                ; vextractf128  $0x1,%ymm2,%xmm5
8470  DB  197,209,254,235                     ; vpaddd        %xmm3,%xmm5,%xmm5
8471  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
8472  DB  196,227,109,24,213,1                ; vinsertf128   $0x1,%xmm5,%ymm2,%ymm2
8473  DB  196,195,109,74,214,64               ; vblendvps     %ymm4,%ymm14,%ymm2,%ymm2
8474  DB  196,193,57,109,225                  ; vpunpckhqdq   %xmm9,%xmm8,%xmm4
8475  DB  196,193,89,105,234                  ; vpunpckhwd    %xmm10,%xmm4,%xmm5
8476  DB  196,226,121,51,228                  ; vpmovzxwd     %xmm4,%xmm4
8477  DB  196,227,93,24,229,1                 ; vinsertf128   $0x1,%xmm5,%ymm4,%ymm4
8478  DB  196,193,92,84,236                   ; vandps        %ymm12,%ymm4,%ymm5
8479  DB  197,220,87,229                      ; vxorps        %ymm5,%ymm4,%ymm4
8480  DB  196,227,125,25,230,1                ; vextractf128  $0x1,%ymm4,%xmm6
8481  DB  196,193,72,87,251                   ; vxorps        %xmm11,%xmm6,%xmm7
8482  DB  197,17,102,199                      ; vpcmpgtd      %xmm7,%xmm13,%xmm8
8483  DB  196,193,88,87,251                   ; vxorps        %xmm11,%xmm4,%xmm7
8484  DB  197,145,102,255                     ; vpcmpgtd      %xmm7,%xmm13,%xmm7
8485  DB  196,195,69,24,248,1                 ; vinsertf128   $0x1,%xmm8,%ymm7,%ymm7
8486  DB  197,185,114,245,16                  ; vpslld        $0x10,%xmm5,%xmm8
8487  DB  196,227,125,25,237,1                ; vextractf128  $0x1,%ymm5,%xmm5
8488  DB  197,209,114,245,16                  ; vpslld        $0x10,%xmm5,%xmm5
8489  DB  196,227,61,24,237,1                 ; vinsertf128   $0x1,%xmm5,%ymm8,%ymm5
8490  DB  197,217,114,244,13                  ; vpslld        $0xd,%xmm4,%xmm4
8491  DB  197,201,114,246,13                  ; vpslld        $0xd,%xmm6,%xmm6
8492  DB  196,227,93,24,230,1                 ; vinsertf128   $0x1,%xmm6,%ymm4,%ymm4
8493  DB  197,220,86,229                      ; vorps         %ymm5,%ymm4,%ymm4
8494  DB  196,227,125,25,229,1                ; vextractf128  $0x1,%ymm4,%xmm5
8495  DB  197,209,254,235                     ; vpaddd        %xmm3,%xmm5,%xmm5
8496  DB  197,217,254,219                     ; vpaddd        %xmm3,%xmm4,%xmm3
8497  DB  196,227,101,24,221,1                ; vinsertf128   $0x1,%xmm5,%ymm3,%ymm3
8498  DB  196,195,101,74,222,112              ; vblendvps     %ymm7,%ymm14,%ymm3,%ymm3
8499  DB  72,173                              ; lods          %ds:(%rsi),%rax
8500  DB  197,252,16,36,36                    ; vmovups       (%rsp),%ymm4
8501  DB  197,252,16,108,36,32                ; vmovups       0x20(%rsp),%ymm5
8502  DB  197,252,16,116,36,64                ; vmovups       0x40(%rsp),%ymm6
8503  DB  197,252,16,124,36,96                ; vmovups       0x60(%rsp),%ymm7
8504  DB  72,129,196,152,0,0,0                ; add           $0x98,%rsp
8505  DB  91                                  ; pop           %rbx
8506  DB  65,92                               ; pop           %r12
8507  DB  65,94                               ; pop           %r14
8508  DB  65,95                               ; pop           %r15
8509  DB  255,224                             ; jmpq          *%rax
8510
8511PUBLIC _sk_store_f16_avx
8512_sk_store_f16_avx LABEL PROC
8513  DB  72,129,236,216,0,0,0                ; sub           $0xd8,%rsp
8514  DB  197,252,17,188,36,160,0,0,0         ; vmovups       %ymm7,0xa0(%rsp)
8515  DB  197,252,17,180,36,128,0,0,0         ; vmovups       %ymm6,0x80(%rsp)
8516  DB  197,252,17,108,36,96                ; vmovups       %ymm5,0x60(%rsp)
8517  DB  197,252,17,100,36,64                ; vmovups       %ymm4,0x40(%rsp)
8518  DB  196,98,125,24,13,176,22,0,0         ; vbroadcastss  0x16b0(%rip),%ymm9        # 5dec <_sk_callback_avx+0x202>
8519  DB  196,65,124,84,209                   ; vandps        %ymm9,%ymm0,%ymm10
8520  DB  197,252,17,4,36                     ; vmovups       %ymm0,(%rsp)
8521  DB  196,65,124,87,218                   ; vxorps        %ymm10,%ymm0,%ymm11
8522  DB  196,67,125,25,220,1                 ; vextractf128  $0x1,%ymm11,%xmm12
8523  DB  196,98,121,24,5,150,22,0,0          ; vbroadcastss  0x1696(%rip),%xmm8        # 5df0 <_sk_callback_avx+0x206>
8524  DB  196,65,57,102,236                   ; vpcmpgtd      %xmm12,%xmm8,%xmm13
8525  DB  196,65,57,102,243                   ; vpcmpgtd      %xmm11,%xmm8,%xmm14
8526  DB  196,67,13,24,237,1                  ; vinsertf128   $0x1,%xmm13,%ymm14,%ymm13
8527  DB  196,193,9,114,210,16                ; vpsrld        $0x10,%xmm10,%xmm14
8528  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
8529  DB  196,193,41,114,210,16               ; vpsrld        $0x10,%xmm10,%xmm10
8530  DB  196,67,13,24,242,1                  ; vinsertf128   $0x1,%xmm10,%ymm14,%ymm14
8531  DB  196,193,33,114,211,13               ; vpsrld        $0xd,%xmm11,%xmm11
8532  DB  196,193,25,114,212,13               ; vpsrld        $0xd,%xmm12,%xmm12
8533  DB  196,98,125,24,21,93,22,0,0          ; vbroadcastss  0x165d(%rip),%ymm10        # 5df4 <_sk_callback_avx+0x20a>
8534  DB  196,65,12,86,242                    ; vorps         %ymm10,%ymm14,%ymm14
8535  DB  196,67,125,25,247,1                 ; vextractf128  $0x1,%ymm14,%xmm15
8536  DB  196,65,1,254,228                    ; vpaddd        %xmm12,%xmm15,%xmm12
8537  DB  196,65,9,254,219                    ; vpaddd        %xmm11,%xmm14,%xmm11
8538  DB  196,67,37,24,228,1                  ; vinsertf128   $0x1,%xmm12,%ymm11,%ymm12
8539  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
8540  DB  196,99,29,74,224,208                ; vblendvps     %ymm13,%ymm0,%ymm12,%ymm12
8541  DB  196,65,116,84,233                   ; vandps        %ymm9,%ymm1,%ymm13
8542  DB  197,252,17,76,36,32                 ; vmovups       %ymm1,0x20(%rsp)
8543  DB  196,65,116,87,245                   ; vxorps        %ymm13,%ymm1,%ymm14
8544  DB  196,67,125,25,247,1                 ; vextractf128  $0x1,%ymm14,%xmm15
8545  DB  196,193,57,102,255                  ; vpcmpgtd      %xmm15,%xmm8,%xmm7
8546  DB  196,65,57,102,222                   ; vpcmpgtd      %xmm14,%xmm8,%xmm11
8547  DB  196,227,37,24,255,1                 ; vinsertf128   $0x1,%xmm7,%ymm11,%ymm7
8548  DB  196,193,33,114,213,16               ; vpsrld        $0x10,%xmm13,%xmm11
8549  DB  196,99,125,25,238,1                 ; vextractf128  $0x1,%ymm13,%xmm6
8550  DB  197,201,114,214,16                  ; vpsrld        $0x10,%xmm6,%xmm6
8551  DB  196,227,37,24,246,1                 ; vinsertf128   $0x1,%xmm6,%ymm11,%ymm6
8552  DB  196,193,33,114,215,13               ; vpsrld        $0xd,%xmm15,%xmm11
8553  DB  196,193,76,86,242                   ; vorps         %ymm10,%ymm6,%ymm6
8554  DB  196,227,125,25,245,1                ; vextractf128  $0x1,%ymm6,%xmm5
8555  DB  196,193,81,254,235                  ; vpaddd        %xmm11,%xmm5,%xmm5
8556  DB  196,193,89,114,214,13               ; vpsrld        $0xd,%xmm14,%xmm4
8557  DB  197,201,254,228                     ; vpaddd        %xmm4,%xmm6,%xmm4
8558  DB  196,227,93,24,229,1                 ; vinsertf128   $0x1,%xmm5,%ymm4,%ymm4
8559  DB  196,99,93,74,232,112                ; vblendvps     %ymm7,%ymm0,%ymm4,%ymm13
8560  DB  196,193,108,84,225                  ; vandps        %ymm9,%ymm2,%ymm4
8561  DB  197,236,87,236                      ; vxorps        %ymm4,%ymm2,%ymm5
8562  DB  196,227,125,25,238,1                ; vextractf128  $0x1,%ymm5,%xmm6
8563  DB  197,185,102,254                     ; vpcmpgtd      %xmm6,%xmm8,%xmm7
8564  DB  197,57,102,221                      ; vpcmpgtd      %xmm5,%xmm8,%xmm11
8565  DB  196,227,37,24,255,1                 ; vinsertf128   $0x1,%xmm7,%ymm11,%ymm7
8566  DB  197,161,114,212,16                  ; vpsrld        $0x10,%xmm4,%xmm11
8567  DB  196,227,125,25,228,1                ; vextractf128  $0x1,%ymm4,%xmm4
8568  DB  197,217,114,212,16                  ; vpsrld        $0x10,%xmm4,%xmm4
8569  DB  196,227,37,24,228,1                 ; vinsertf128   $0x1,%xmm4,%ymm11,%ymm4
8570  DB  197,201,114,214,13                  ; vpsrld        $0xd,%xmm6,%xmm6
8571  DB  196,193,92,86,226                   ; vorps         %ymm10,%ymm4,%ymm4
8572  DB  196,227,125,25,225,1                ; vextractf128  $0x1,%ymm4,%xmm1
8573  DB  197,241,254,206                     ; vpaddd        %xmm6,%xmm1,%xmm1
8574  DB  197,209,114,213,13                  ; vpsrld        $0xd,%xmm5,%xmm5
8575  DB  197,217,254,229                     ; vpaddd        %xmm5,%xmm4,%xmm4
8576  DB  196,227,93,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm4,%ymm1
8577  DB  196,99,117,74,216,112               ; vblendvps     %ymm7,%ymm0,%ymm1,%ymm11
8578  DB  196,193,100,84,225                  ; vandps        %ymm9,%ymm3,%ymm4
8579  DB  197,228,87,236                      ; vxorps        %ymm4,%ymm3,%ymm5
8580  DB  196,227,125,25,238,1                ; vextractf128  $0x1,%ymm5,%xmm6
8581  DB  197,185,102,254                     ; vpcmpgtd      %xmm6,%xmm8,%xmm7
8582  DB  197,57,102,197                      ; vpcmpgtd      %xmm5,%xmm8,%xmm8
8583  DB  196,227,61,24,255,1                 ; vinsertf128   $0x1,%xmm7,%ymm8,%ymm7
8584  DB  197,185,114,212,16                  ; vpsrld        $0x10,%xmm4,%xmm8
8585  DB  196,227,125,25,228,1                ; vextractf128  $0x1,%ymm4,%xmm4
8586  DB  197,217,114,212,16                  ; vpsrld        $0x10,%xmm4,%xmm4
8587  DB  196,227,61,24,228,1                 ; vinsertf128   $0x1,%xmm4,%ymm8,%ymm4
8588  DB  196,193,92,86,226                   ; vorps         %ymm10,%ymm4,%ymm4
8589  DB  197,201,114,214,13                  ; vpsrld        $0xd,%xmm6,%xmm6
8590  DB  196,227,125,25,225,1                ; vextractf128  $0x1,%ymm4,%xmm1
8591  DB  197,241,254,206                     ; vpaddd        %xmm6,%xmm1,%xmm1
8592  DB  197,209,114,213,13                  ; vpsrld        $0xd,%xmm5,%xmm5
8593  DB  197,217,254,229                     ; vpaddd        %xmm5,%xmm4,%xmm4
8594  DB  196,227,93,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm4,%ymm1
8595  DB  196,227,117,74,200,112              ; vblendvps     %ymm7,%ymm0,%ymm1,%ymm1
8596  DB  196,99,125,25,224,1                 ; vextractf128  $0x1,%ymm12,%xmm0
8597  DB  196,226,25,43,192                   ; vpackusdw     %xmm0,%xmm12,%xmm0
8598  DB  196,99,125,25,236,1                 ; vextractf128  $0x1,%ymm13,%xmm4
8599  DB  196,226,17,43,228                   ; vpackusdw     %xmm4,%xmm13,%xmm4
8600  DB  196,99,125,25,221,1                 ; vextractf128  $0x1,%ymm11,%xmm5
8601  DB  196,226,33,43,245                   ; vpackusdw     %xmm5,%xmm11,%xmm6
8602  DB  196,227,125,25,205,1                ; vextractf128  $0x1,%ymm1,%xmm5
8603  DB  196,226,113,43,205                  ; vpackusdw     %xmm5,%xmm1,%xmm1
8604  DB  197,249,97,236                      ; vpunpcklwd    %xmm4,%xmm0,%xmm5
8605  DB  197,249,105,196                     ; vpunpckhwd    %xmm4,%xmm0,%xmm0
8606  DB  197,201,97,225                      ; vpunpcklwd    %xmm1,%xmm6,%xmm4
8607  DB  197,201,105,201                     ; vpunpckhwd    %xmm1,%xmm6,%xmm1
8608  DB  197,81,98,220                       ; vpunpckldq    %xmm4,%xmm5,%xmm11
8609  DB  197,81,106,212                      ; vpunpckhdq    %xmm4,%xmm5,%xmm10
8610  DB  197,121,98,201                      ; vpunpckldq    %xmm1,%xmm0,%xmm9
8611  DB  197,121,106,193                     ; vpunpckhdq    %xmm1,%xmm0,%xmm8
8612  DB  72,173                              ; lods          %ds:(%rsi),%rax
8613  DB  72,139,0                            ; mov           (%rax),%rax
8614  DB  72,133,201                          ; test          %rcx,%rcx
8615  DB  117,75                              ; jne           497e <_sk_store_f16_avx+0x270>
8616  DB  197,120,17,28,248                   ; vmovups       %xmm11,(%rax,%rdi,8)
8617  DB  197,120,17,84,248,16                ; vmovups       %xmm10,0x10(%rax,%rdi,8)
8618  DB  197,120,17,76,248,32                ; vmovups       %xmm9,0x20(%rax,%rdi,8)
8619  DB  197,122,127,68,248,48               ; vmovdqu       %xmm8,0x30(%rax,%rdi,8)
8620  DB  72,173                              ; lods          %ds:(%rsi),%rax
8621  DB  197,252,16,4,36                     ; vmovups       (%rsp),%ymm0
8622  DB  197,252,16,76,36,32                 ; vmovups       0x20(%rsp),%ymm1
8623  DB  197,252,16,100,36,64                ; vmovups       0x40(%rsp),%ymm4
8624  DB  197,252,16,108,36,96                ; vmovups       0x60(%rsp),%ymm5
8625  DB  197,252,16,180,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm6
8626  DB  197,252,16,188,36,160,0,0,0         ; vmovups       0xa0(%rsp),%ymm7
8627  DB  72,129,196,216,0,0,0                ; add           $0xd8,%rsp
8628  DB  255,224                             ; jmpq          *%rax
8629  DB  197,121,214,28,248                  ; vmovq         %xmm11,(%rax,%rdi,8)
8630  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8631  DB  116,193                             ; je            494a <_sk_store_f16_avx+0x23c>
8632  DB  197,121,23,92,248,8                 ; vmovhpd       %xmm11,0x8(%rax,%rdi,8)
8633  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8634  DB  114,181                             ; jb            494a <_sk_store_f16_avx+0x23c>
8635  DB  197,121,214,84,248,16               ; vmovq         %xmm10,0x10(%rax,%rdi,8)
8636  DB  116,173                             ; je            494a <_sk_store_f16_avx+0x23c>
8637  DB  197,121,23,84,248,24                ; vmovhpd       %xmm10,0x18(%rax,%rdi,8)
8638  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8639  DB  114,161                             ; jb            494a <_sk_store_f16_avx+0x23c>
8640  DB  197,121,214,76,248,32               ; vmovq         %xmm9,0x20(%rax,%rdi,8)
8641  DB  116,153                             ; je            494a <_sk_store_f16_avx+0x23c>
8642  DB  197,121,23,76,248,40                ; vmovhpd       %xmm9,0x28(%rax,%rdi,8)
8643  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8644  DB  114,141                             ; jb            494a <_sk_store_f16_avx+0x23c>
8645  DB  197,121,214,68,248,48               ; vmovq         %xmm8,0x30(%rax,%rdi,8)
8646  DB  235,133                             ; jmp           494a <_sk_store_f16_avx+0x23c>
8647
8648PUBLIC _sk_load_u16_be_avx
8649_sk_load_u16_be_avx LABEL PROC
8650  DB  72,173                              ; lods          %ds:(%rsi),%rax
8651  DB  76,139,0                            ; mov           (%rax),%r8
8652  DB  72,141,4,189,0,0,0,0                ; lea           0x0(,%rdi,4),%rax
8653  DB  72,133,201                          ; test          %rcx,%rcx
8654  DB  15,133,5,1,0,0                      ; jne           4ae0 <_sk_load_u16_be_avx+0x11b>
8655  DB  196,65,121,16,4,64                  ; vmovupd       (%r8,%rax,2),%xmm8
8656  DB  196,193,121,16,84,64,16             ; vmovupd       0x10(%r8,%rax,2),%xmm2
8657  DB  196,193,121,16,92,64,32             ; vmovupd       0x20(%r8,%rax,2),%xmm3
8658  DB  196,65,122,111,76,64,48             ; vmovdqu       0x30(%r8,%rax,2),%xmm9
8659  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
8660  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
8661  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
8662  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
8663  DB  197,121,97,210                      ; vpunpcklwd    %xmm2,%xmm0,%xmm10
8664  DB  197,121,105,194                     ; vpunpckhwd    %xmm2,%xmm0,%xmm8
8665  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
8666  DB  197,113,105,203                     ; vpunpckhwd    %xmm3,%xmm1,%xmm9
8667  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
8668  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
8669  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
8670  DB  196,99,125,24,224,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm12
8671  DB  197,169,108,194                     ; vpunpcklqdq   %xmm2,%xmm10,%xmm0
8672  DB  197,241,113,240,8                   ; vpsllw        $0x8,%xmm0,%xmm1
8673  DB  197,249,113,208,8                   ; vpsrlw        $0x8,%xmm0,%xmm0
8674  DB  197,241,235,192                     ; vpor          %xmm0,%xmm1,%xmm0
8675  DB  196,65,33,239,219                   ; vpxor         %xmm11,%xmm11,%xmm11
8676  DB  196,193,121,105,203                 ; vpunpckhwd    %xmm11,%xmm0,%xmm1
8677  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
8678  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
8679  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
8680  DB  197,156,89,192                      ; vmulps        %ymm0,%ymm12,%ymm0
8681  DB  197,169,109,202                     ; vpunpckhqdq   %xmm2,%xmm10,%xmm1
8682  DB  197,233,113,241,8                   ; vpsllw        $0x8,%xmm1,%xmm2
8683  DB  197,241,113,209,8                   ; vpsrlw        $0x8,%xmm1,%xmm1
8684  DB  197,233,235,201                     ; vpor          %xmm1,%xmm2,%xmm1
8685  DB  196,193,113,105,211                 ; vpunpckhwd    %xmm11,%xmm1,%xmm2
8686  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
8687  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8688  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
8689  DB  197,156,89,201                      ; vmulps        %ymm1,%ymm12,%ymm1
8690  DB  196,193,57,108,209                  ; vpunpcklqdq   %xmm9,%xmm8,%xmm2
8691  DB  197,169,113,242,8                   ; vpsllw        $0x8,%xmm2,%xmm10
8692  DB  197,233,113,210,8                   ; vpsrlw        $0x8,%xmm2,%xmm2
8693  DB  197,169,235,210                     ; vpor          %xmm2,%xmm10,%xmm2
8694  DB  196,65,105,105,211                  ; vpunpckhwd    %xmm11,%xmm2,%xmm10
8695  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
8696  DB  196,195,109,24,210,1                ; vinsertf128   $0x1,%xmm10,%ymm2,%ymm2
8697  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
8698  DB  197,156,89,210                      ; vmulps        %ymm2,%ymm12,%ymm2
8699  DB  196,193,57,109,217                  ; vpunpckhqdq   %xmm9,%xmm8,%xmm3
8700  DB  197,185,113,243,8                   ; vpsllw        $0x8,%xmm3,%xmm8
8701  DB  197,225,113,211,8                   ; vpsrlw        $0x8,%xmm3,%xmm3
8702  DB  197,185,235,219                     ; vpor          %xmm3,%xmm8,%xmm3
8703  DB  196,65,97,105,195                   ; vpunpckhwd    %xmm11,%xmm3,%xmm8
8704  DB  196,226,121,51,219                  ; vpmovzxwd     %xmm3,%xmm3
8705  DB  196,195,101,24,216,1                ; vinsertf128   $0x1,%xmm8,%ymm3,%ymm3
8706  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
8707  DB  197,156,89,219                      ; vmulps        %ymm3,%ymm12,%ymm3
8708  DB  72,173                              ; lods          %ds:(%rsi),%rax
8709  DB  255,224                             ; jmpq          *%rax
8710  DB  196,65,123,16,4,64                  ; vmovsd        (%r8,%rax,2),%xmm8
8711  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
8712  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8713  DB  116,85                              ; je            4b46 <_sk_load_u16_be_avx+0x181>
8714  DB  196,65,57,22,68,64,8                ; vmovhpd       0x8(%r8,%rax,2),%xmm8,%xmm8
8715  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8716  DB  114,72                              ; jb            4b46 <_sk_load_u16_be_avx+0x181>
8717  DB  196,193,123,16,84,64,16             ; vmovsd        0x10(%r8,%rax,2),%xmm2
8718  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8719  DB  116,72                              ; je            4b53 <_sk_load_u16_be_avx+0x18e>
8720  DB  196,193,105,22,84,64,24             ; vmovhpd       0x18(%r8,%rax,2),%xmm2,%xmm2
8721  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8722  DB  114,59                              ; jb            4b53 <_sk_load_u16_be_avx+0x18e>
8723  DB  196,193,123,16,92,64,32             ; vmovsd        0x20(%r8,%rax,2),%xmm3
8724  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8725  DB  15,132,205,254,255,255              ; je            49f6 <_sk_load_u16_be_avx+0x31>
8726  DB  196,193,97,22,92,64,40              ; vmovhpd       0x28(%r8,%rax,2),%xmm3,%xmm3
8727  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8728  DB  15,130,188,254,255,255              ; jb            49f6 <_sk_load_u16_be_avx+0x31>
8729  DB  196,65,122,126,76,64,48             ; vmovq         0x30(%r8,%rax,2),%xmm9
8730  DB  233,176,254,255,255                 ; jmpq          49f6 <_sk_load_u16_be_avx+0x31>
8731  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
8732  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
8733  DB  233,163,254,255,255                 ; jmpq          49f6 <_sk_load_u16_be_avx+0x31>
8734  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
8735  DB  233,154,254,255,255                 ; jmpq          49f6 <_sk_load_u16_be_avx+0x31>
8736
8737PUBLIC _sk_load_rgb_u16_be_avx
8738_sk_load_rgb_u16_be_avx LABEL PROC
8739  DB  72,173                              ; lods          %ds:(%rsi),%rax
8740  DB  76,139,0                            ; mov           (%rax),%r8
8741  DB  72,141,4,127                        ; lea           (%rdi,%rdi,2),%rax
8742  DB  72,133,201                          ; test          %rcx,%rcx
8743  DB  15,133,8,1,0,0                      ; jne           4c76 <_sk_load_rgb_u16_be_avx+0x11a>
8744  DB  196,193,122,111,4,64                ; vmovdqu       (%r8,%rax,2),%xmm0
8745  DB  196,193,122,111,84,64,12            ; vmovdqu       0xc(%r8,%rax,2),%xmm2
8746  DB  196,193,122,111,76,64,24            ; vmovdqu       0x18(%r8,%rax,2),%xmm1
8747  DB  196,193,122,111,92,64,32            ; vmovdqu       0x20(%r8,%rax,2),%xmm3
8748  DB  197,225,115,219,4                   ; vpsrldq       $0x4,%xmm3,%xmm3
8749  DB  197,185,115,216,6                   ; vpsrldq       $0x6,%xmm0,%xmm8
8750  DB  197,177,115,218,6                   ; vpsrldq       $0x6,%xmm2,%xmm9
8751  DB  197,161,115,217,6                   ; vpsrldq       $0x6,%xmm1,%xmm11
8752  DB  197,169,115,219,6                   ; vpsrldq       $0x6,%xmm3,%xmm10
8753  DB  197,249,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm0
8754  DB  196,193,57,97,209                   ; vpunpcklwd    %xmm9,%xmm8,%xmm2
8755  DB  197,241,97,203                      ; vpunpcklwd    %xmm3,%xmm1,%xmm1
8756  DB  196,193,33,97,218                   ; vpunpcklwd    %xmm10,%xmm11,%xmm3
8757  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
8758  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
8759  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
8760  DB  197,113,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm11
8761  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
8762  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
8763  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
8764  DB  196,99,125,24,208,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm10
8765  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
8766  DB  197,241,113,240,8                   ; vpsllw        $0x8,%xmm0,%xmm1
8767  DB  197,249,113,208,8                   ; vpsrlw        $0x8,%xmm0,%xmm0
8768  DB  197,241,235,192                     ; vpor          %xmm0,%xmm1,%xmm0
8769  DB  196,65,25,239,228                   ; vpxor         %xmm12,%xmm12,%xmm12
8770  DB  196,193,121,105,204                 ; vpunpckhwd    %xmm12,%xmm0,%xmm1
8771  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
8772  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
8773  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
8774  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
8775  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
8776  DB  197,233,113,241,8                   ; vpsllw        $0x8,%xmm1,%xmm2
8777  DB  197,241,113,209,8                   ; vpsrlw        $0x8,%xmm1,%xmm1
8778  DB  197,233,235,201                     ; vpor          %xmm1,%xmm2,%xmm1
8779  DB  196,193,113,105,212                 ; vpunpckhwd    %xmm12,%xmm1,%xmm2
8780  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
8781  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8782  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
8783  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
8784  DB  196,193,49,108,211                  ; vpunpcklqdq   %xmm11,%xmm9,%xmm2
8785  DB  197,225,113,242,8                   ; vpsllw        $0x8,%xmm2,%xmm3
8786  DB  197,233,113,210,8                   ; vpsrlw        $0x8,%xmm2,%xmm2
8787  DB  197,225,235,210                     ; vpor          %xmm2,%xmm3,%xmm2
8788  DB  196,193,105,105,220                 ; vpunpckhwd    %xmm12,%xmm2,%xmm3
8789  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
8790  DB  196,227,109,24,211,1                ; vinsertf128   $0x1,%xmm3,%ymm2,%ymm2
8791  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
8792  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
8793  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
8794  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
8795  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
8796  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
8797  DB  72,173                              ; lods          %ds:(%rsi),%rax
8798  DB  255,224                             ; jmpq          *%rax
8799  DB  196,193,121,110,4,64                ; vmovd         (%r8,%rax,2),%xmm0
8800  DB  196,193,121,196,68,64,4,2           ; vpinsrw       $0x2,0x4(%r8,%rax,2),%xmm0,%xmm0
8801  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8802  DB  117,5                               ; jne           4c8f <_sk_load_rgb_u16_be_avx+0x133>
8803  DB  233,19,255,255,255                  ; jmpq          4ba2 <_sk_load_rgb_u16_be_avx+0x46>
8804  DB  196,193,121,110,76,64,6             ; vmovd         0x6(%r8,%rax,2),%xmm1
8805  DB  196,65,113,196,68,64,10,2           ; vpinsrw       $0x2,0xa(%r8,%rax,2),%xmm1,%xmm8
8806  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8807  DB  114,26                              ; jb            4cbe <_sk_load_rgb_u16_be_avx+0x162>
8808  DB  196,193,121,110,76,64,12            ; vmovd         0xc(%r8,%rax,2),%xmm1
8809  DB  196,193,113,196,84,64,16,2          ; vpinsrw       $0x2,0x10(%r8,%rax,2),%xmm1,%xmm2
8810  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8811  DB  117,10                              ; jne           4cc3 <_sk_load_rgb_u16_be_avx+0x167>
8812  DB  233,228,254,255,255                 ; jmpq          4ba2 <_sk_load_rgb_u16_be_avx+0x46>
8813  DB  233,223,254,255,255                 ; jmpq          4ba2 <_sk_load_rgb_u16_be_avx+0x46>
8814  DB  196,193,121,110,76,64,18            ; vmovd         0x12(%r8,%rax,2),%xmm1
8815  DB  196,65,113,196,76,64,22,2           ; vpinsrw       $0x2,0x16(%r8,%rax,2),%xmm1,%xmm9
8816  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8817  DB  114,26                              ; jb            4cf2 <_sk_load_rgb_u16_be_avx+0x196>
8818  DB  196,193,121,110,76,64,24            ; vmovd         0x18(%r8,%rax,2),%xmm1
8819  DB  196,193,113,196,76,64,28,2          ; vpinsrw       $0x2,0x1c(%r8,%rax,2),%xmm1,%xmm1
8820  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8821  DB  117,10                              ; jne           4cf7 <_sk_load_rgb_u16_be_avx+0x19b>
8822  DB  233,176,254,255,255                 ; jmpq          4ba2 <_sk_load_rgb_u16_be_avx+0x46>
8823  DB  233,171,254,255,255                 ; jmpq          4ba2 <_sk_load_rgb_u16_be_avx+0x46>
8824  DB  196,193,121,110,92,64,30            ; vmovd         0x1e(%r8,%rax,2),%xmm3
8825  DB  196,65,97,196,92,64,34,2            ; vpinsrw       $0x2,0x22(%r8,%rax,2),%xmm3,%xmm11
8826  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8827  DB  114,20                              ; jb            4d20 <_sk_load_rgb_u16_be_avx+0x1c4>
8828  DB  196,193,121,110,92,64,36            ; vmovd         0x24(%r8,%rax,2),%xmm3
8829  DB  196,193,97,196,92,64,40,2           ; vpinsrw       $0x2,0x28(%r8,%rax,2),%xmm3,%xmm3
8830  DB  233,130,254,255,255                 ; jmpq          4ba2 <_sk_load_rgb_u16_be_avx+0x46>
8831  DB  233,125,254,255,255                 ; jmpq          4ba2 <_sk_load_rgb_u16_be_avx+0x46>
8832
8833PUBLIC _sk_store_u16_be_avx
8834_sk_store_u16_be_avx LABEL PROC
8835  DB  72,173                              ; lods          %ds:(%rsi),%rax
8836  DB  76,139,0                            ; mov           (%rax),%r8
8837  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
8838  DB  184,0,255,127,71                    ; mov           $0x477fff00,%eax
8839  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
8840  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
8841  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
8842  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
8843  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
8844  DB  196,67,125,25,202,1                 ; vextractf128  $0x1,%ymm9,%xmm10
8845  DB  196,66,49,43,202                    ; vpackusdw     %xmm10,%xmm9,%xmm9
8846  DB  196,193,41,113,241,8                ; vpsllw        $0x8,%xmm9,%xmm10
8847  DB  196,193,49,113,209,8                ; vpsrlw        $0x8,%xmm9,%xmm9
8848  DB  196,65,41,235,201                   ; vpor          %xmm9,%xmm10,%xmm9
8849  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
8850  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
8851  DB  196,67,125,25,211,1                 ; vextractf128  $0x1,%ymm10,%xmm11
8852  DB  196,66,41,43,211                    ; vpackusdw     %xmm11,%xmm10,%xmm10
8853  DB  196,193,33,113,242,8                ; vpsllw        $0x8,%xmm10,%xmm11
8854  DB  196,193,41,113,210,8                ; vpsrlw        $0x8,%xmm10,%xmm10
8855  DB  196,65,33,235,210                   ; vpor          %xmm10,%xmm11,%xmm10
8856  DB  197,60,89,218                       ; vmulps        %ymm2,%ymm8,%ymm11
8857  DB  196,65,125,91,219                   ; vcvtps2dq     %ymm11,%ymm11
8858  DB  196,67,125,25,220,1                 ; vextractf128  $0x1,%ymm11,%xmm12
8859  DB  196,66,33,43,220                    ; vpackusdw     %xmm12,%xmm11,%xmm11
8860  DB  196,193,25,113,243,8                ; vpsllw        $0x8,%xmm11,%xmm12
8861  DB  196,193,33,113,211,8                ; vpsrlw        $0x8,%xmm11,%xmm11
8862  DB  196,65,25,235,219                   ; vpor          %xmm11,%xmm12,%xmm11
8863  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
8864  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
8865  DB  196,67,125,25,196,1                 ; vextractf128  $0x1,%ymm8,%xmm12
8866  DB  196,66,57,43,196                    ; vpackusdw     %xmm12,%xmm8,%xmm8
8867  DB  196,193,25,113,240,8                ; vpsllw        $0x8,%xmm8,%xmm12
8868  DB  196,193,57,113,208,8                ; vpsrlw        $0x8,%xmm8,%xmm8
8869  DB  196,65,25,235,192                   ; vpor          %xmm8,%xmm12,%xmm8
8870  DB  196,65,49,97,226                    ; vpunpcklwd    %xmm10,%xmm9,%xmm12
8871  DB  196,65,49,105,234                   ; vpunpckhwd    %xmm10,%xmm9,%xmm13
8872  DB  196,65,33,97,200                    ; vpunpcklwd    %xmm8,%xmm11,%xmm9
8873  DB  196,65,33,105,192                   ; vpunpckhwd    %xmm8,%xmm11,%xmm8
8874  DB  196,65,25,98,217                    ; vpunpckldq    %xmm9,%xmm12,%xmm11
8875  DB  196,65,25,106,209                   ; vpunpckhdq    %xmm9,%xmm12,%xmm10
8876  DB  196,65,17,98,200                    ; vpunpckldq    %xmm8,%xmm13,%xmm9
8877  DB  196,65,17,106,192                   ; vpunpckhdq    %xmm8,%xmm13,%xmm8
8878  DB  72,133,201                          ; test          %rcx,%rcx
8879  DB  117,31                              ; jne           4e27 <_sk_store_u16_be_avx+0x102>
8880  DB  196,1,120,17,28,72                  ; vmovups       %xmm11,(%r8,%r9,2)
8881  DB  196,1,120,17,84,72,16               ; vmovups       %xmm10,0x10(%r8,%r9,2)
8882  DB  196,1,120,17,76,72,32               ; vmovups       %xmm9,0x20(%r8,%r9,2)
8883  DB  196,1,122,127,68,72,48              ; vmovdqu       %xmm8,0x30(%r8,%r9,2)
8884  DB  72,173                              ; lods          %ds:(%rsi),%rax
8885  DB  255,224                             ; jmpq          *%rax
8886  DB  196,1,121,214,28,72                 ; vmovq         %xmm11,(%r8,%r9,2)
8887  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8888  DB  116,240                             ; je            4e23 <_sk_store_u16_be_avx+0xfe>
8889  DB  196,1,121,23,92,72,8                ; vmovhpd       %xmm11,0x8(%r8,%r9,2)
8890  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8891  DB  114,227                             ; jb            4e23 <_sk_store_u16_be_avx+0xfe>
8892  DB  196,1,121,214,84,72,16              ; vmovq         %xmm10,0x10(%r8,%r9,2)
8893  DB  116,218                             ; je            4e23 <_sk_store_u16_be_avx+0xfe>
8894  DB  196,1,121,23,84,72,24               ; vmovhpd       %xmm10,0x18(%r8,%r9,2)
8895  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8896  DB  114,205                             ; jb            4e23 <_sk_store_u16_be_avx+0xfe>
8897  DB  196,1,121,214,76,72,32              ; vmovq         %xmm9,0x20(%r8,%r9,2)
8898  DB  116,196                             ; je            4e23 <_sk_store_u16_be_avx+0xfe>
8899  DB  196,1,121,23,76,72,40               ; vmovhpd       %xmm9,0x28(%r8,%r9,2)
8900  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8901  DB  114,183                             ; jb            4e23 <_sk_store_u16_be_avx+0xfe>
8902  DB  196,1,121,214,68,72,48              ; vmovq         %xmm8,0x30(%r8,%r9,2)
8903  DB  235,174                             ; jmp           4e23 <_sk_store_u16_be_avx+0xfe>
8904
8905PUBLIC _sk_load_f32_avx
8906_sk_load_f32_avx LABEL PROC
8907  DB  72,173                              ; lods          %ds:(%rsi),%rax
8908  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8909  DB  119,110                             ; ja            4eeb <_sk_load_f32_avx+0x76>
8910  DB  76,139,0                            ; mov           (%rax),%r8
8911  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
8912  DB  76,141,21,133,0,0,0                 ; lea           0x85(%rip),%r10        # 4f14 <_sk_load_f32_avx+0x9f>
8913  DB  73,99,4,138                         ; movslq        (%r10,%rcx,4),%rax
8914  DB  76,1,208                            ; add           %r10,%rax
8915  DB  255,224                             ; jmpq          *%rax
8916  DB  196,3,125,24,68,136,112,1           ; vinsertf128   $0x1,0x70(%r8,%r9,4),%ymm0,%ymm8
8917  DB  196,131,125,24,92,136,96,1          ; vinsertf128   $0x1,0x60(%r8,%r9,4),%ymm0,%ymm3
8918  DB  196,131,125,24,76,136,80,1          ; vinsertf128   $0x1,0x50(%r8,%r9,4),%ymm0,%ymm1
8919  DB  196,131,125,24,84,136,64,1          ; vinsertf128   $0x1,0x40(%r8,%r9,4),%ymm0,%ymm2
8920  DB  196,129,121,16,68,136,48            ; vmovupd       0x30(%r8,%r9,4),%xmm0
8921  DB  196,195,125,13,192,12               ; vblendpd      $0xc,%ymm8,%ymm0,%ymm0
8922  DB  196,1,121,16,68,136,32              ; vmovupd       0x20(%r8,%r9,4),%xmm8
8923  DB  196,99,61,13,203,12                 ; vblendpd      $0xc,%ymm3,%ymm8,%ymm9
8924  DB  196,129,121,16,92,136,16            ; vmovupd       0x10(%r8,%r9,4),%xmm3
8925  DB  196,99,101,13,209,12                ; vblendpd      $0xc,%ymm1,%ymm3,%ymm10
8926  DB  196,129,121,16,12,136               ; vmovupd       (%r8,%r9,4),%xmm1
8927  DB  196,227,117,13,202,12               ; vblendpd      $0xc,%ymm2,%ymm1,%ymm1
8928  DB  196,193,116,20,210                  ; vunpcklps     %ymm10,%ymm1,%ymm2
8929  DB  196,193,116,21,218                  ; vunpckhps     %ymm10,%ymm1,%ymm3
8930  DB  197,180,20,200                      ; vunpcklps     %ymm0,%ymm9,%ymm1
8931  DB  197,52,21,192                       ; vunpckhps     %ymm0,%ymm9,%ymm8
8932  DB  197,237,20,193                      ; vunpcklpd     %ymm1,%ymm2,%ymm0
8933  DB  197,237,21,201                      ; vunpckhpd     %ymm1,%ymm2,%ymm1
8934  DB  196,193,101,20,208                  ; vunpcklpd     %ymm8,%ymm3,%ymm2
8935  DB  196,193,101,21,216                  ; vunpckhpd     %ymm8,%ymm3,%ymm3
8936  DB  72,173                              ; lods          %ds:(%rsi),%rax
8937  DB  255,224                             ; jmpq          *%rax
8938  DB  144                                 ; nop
8939  DB  132,255                             ; test          %bh,%bh
8940  DB  255                                 ; (bad)
8941  DB  255,203                             ; dec           %ebx
8942  DB  255                                 ; (bad)
8943  DB  255                                 ; (bad)
8944  DB  255                                 ; (bad)
8945  DB  190,255,255,255,177                 ; mov           $0xb1ffffff,%esi
8946  DB  255                                 ; (bad)
8947  DB  255                                 ; (bad)
8948  DB  255,164,255,255,255,156,255         ; jmpq          *-0x630001(%rdi,%rdi,8)
8949  DB  255                                 ; (bad)
8950  DB  255,148,255,255,255,140,255         ; callq         *-0x730001(%rdi,%rdi,8)
8951  DB  255                                 ; (bad)
8952  DB  255                                 ; .byte         0xff
8953
8954PUBLIC _sk_store_f32_avx
8955_sk_store_f32_avx LABEL PROC
8956  DB  72,173                              ; lods          %ds:(%rsi),%rax
8957  DB  76,139,0                            ; mov           (%rax),%r8
8958  DB  72,141,4,189,0,0,0,0                ; lea           0x0(,%rdi,4),%rax
8959  DB  197,124,20,193                      ; vunpcklps     %ymm1,%ymm0,%ymm8
8960  DB  197,124,21,217                      ; vunpckhps     %ymm1,%ymm0,%ymm11
8961  DB  197,108,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm9
8962  DB  197,108,21,227                      ; vunpckhps     %ymm3,%ymm2,%ymm12
8963  DB  196,65,61,20,209                    ; vunpcklpd     %ymm9,%ymm8,%ymm10
8964  DB  196,65,61,21,201                    ; vunpckhpd     %ymm9,%ymm8,%ymm9
8965  DB  196,65,37,20,196                    ; vunpcklpd     %ymm12,%ymm11,%ymm8
8966  DB  196,65,37,21,220                    ; vunpckhpd     %ymm12,%ymm11,%ymm11
8967  DB  72,133,201                          ; test          %rcx,%rcx
8968  DB  117,55                              ; jne           4fa1 <_sk_store_f32_avx+0x6d>
8969  DB  196,67,45,24,225,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm12
8970  DB  196,67,61,24,235,1                  ; vinsertf128   $0x1,%xmm11,%ymm8,%ymm13
8971  DB  196,67,45,6,201,49                  ; vperm2f128    $0x31,%ymm9,%ymm10,%ymm9
8972  DB  196,67,61,6,195,49                  ; vperm2f128    $0x31,%ymm11,%ymm8,%ymm8
8973  DB  196,65,125,17,36,128                ; vmovupd       %ymm12,(%r8,%rax,4)
8974  DB  196,65,125,17,108,128,32            ; vmovupd       %ymm13,0x20(%r8,%rax,4)
8975  DB  196,65,125,17,76,128,64             ; vmovupd       %ymm9,0x40(%r8,%rax,4)
8976  DB  196,65,125,17,68,128,96             ; vmovupd       %ymm8,0x60(%r8,%rax,4)
8977  DB  72,173                              ; lods          %ds:(%rsi),%rax
8978  DB  255,224                             ; jmpq          *%rax
8979  DB  196,65,121,17,20,128                ; vmovupd       %xmm10,(%r8,%rax,4)
8980  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8981  DB  116,240                             ; je            4f9d <_sk_store_f32_avx+0x69>
8982  DB  196,65,121,17,76,128,16             ; vmovupd       %xmm9,0x10(%r8,%rax,4)
8983  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8984  DB  114,227                             ; jb            4f9d <_sk_store_f32_avx+0x69>
8985  DB  196,65,121,17,68,128,32             ; vmovupd       %xmm8,0x20(%r8,%rax,4)
8986  DB  116,218                             ; je            4f9d <_sk_store_f32_avx+0x69>
8987  DB  196,65,121,17,92,128,48             ; vmovupd       %xmm11,0x30(%r8,%rax,4)
8988  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8989  DB  114,205                             ; jb            4f9d <_sk_store_f32_avx+0x69>
8990  DB  196,67,125,25,84,128,64,1           ; vextractf128  $0x1,%ymm10,0x40(%r8,%rax,4)
8991  DB  116,195                             ; je            4f9d <_sk_store_f32_avx+0x69>
8992  DB  196,67,125,25,76,128,80,1           ; vextractf128  $0x1,%ymm9,0x50(%r8,%rax,4)
8993  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8994  DB  114,181                             ; jb            4f9d <_sk_store_f32_avx+0x69>
8995  DB  196,67,125,25,68,128,96,1           ; vextractf128  $0x1,%ymm8,0x60(%r8,%rax,4)
8996  DB  235,171                             ; jmp           4f9d <_sk_store_f32_avx+0x69>
8997
8998PUBLIC _sk_clamp_x_avx
8999_sk_clamp_x_avx LABEL PROC
9000  DB  72,173                              ; lods          %ds:(%rsi),%rax
9001  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
9002  DB  197,60,95,200                       ; vmaxps        %ymm0,%ymm8,%ymm9
9003  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9004  DB  196,99,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm0
9005  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9006  DB  196,193,121,254,194                 ; vpaddd        %xmm10,%xmm0,%xmm0
9007  DB  196,65,57,254,194                   ; vpaddd        %xmm10,%xmm8,%xmm8
9008  DB  196,227,61,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm8,%ymm0
9009  DB  197,180,93,192                      ; vminps        %ymm0,%ymm9,%ymm0
9010  DB  72,173                              ; lods          %ds:(%rsi),%rax
9011  DB  255,224                             ; jmpq          *%rax
9012
9013PUBLIC _sk_clamp_y_avx
9014_sk_clamp_y_avx LABEL PROC
9015  DB  72,173                              ; lods          %ds:(%rsi),%rax
9016  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
9017  DB  197,60,95,201                       ; vmaxps        %ymm1,%ymm8,%ymm9
9018  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9019  DB  196,99,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm1
9020  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9021  DB  196,193,113,254,202                 ; vpaddd        %xmm10,%xmm1,%xmm1
9022  DB  196,65,57,254,194                   ; vpaddd        %xmm10,%xmm8,%xmm8
9023  DB  196,227,61,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm8,%ymm1
9024  DB  197,180,93,201                      ; vminps        %ymm1,%ymm9,%ymm1
9025  DB  72,173                              ; lods          %ds:(%rsi),%rax
9026  DB  255,224                             ; jmpq          *%rax
9027
9028PUBLIC _sk_repeat_x_avx
9029_sk_repeat_x_avx LABEL PROC
9030  DB  72,173                              ; lods          %ds:(%rsi),%rax
9031  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9032  DB  196,65,124,94,200                   ; vdivps        %ymm8,%ymm0,%ymm9
9033  DB  196,67,125,8,201,1                  ; vroundps      $0x1,%ymm9,%ymm9
9034  DB  196,65,52,89,200                    ; vmulps        %ymm8,%ymm9,%ymm9
9035  DB  196,65,124,92,201                   ; vsubps        %ymm9,%ymm0,%ymm9
9036  DB  196,99,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm0
9037  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9038  DB  196,193,121,254,194                 ; vpaddd        %xmm10,%xmm0,%xmm0
9039  DB  196,65,57,254,194                   ; vpaddd        %xmm10,%xmm8,%xmm8
9040  DB  196,227,61,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm8,%ymm0
9041  DB  197,180,93,192                      ; vminps        %ymm0,%ymm9,%ymm0
9042  DB  72,173                              ; lods          %ds:(%rsi),%rax
9043  DB  255,224                             ; jmpq          *%rax
9044
9045PUBLIC _sk_repeat_y_avx
9046_sk_repeat_y_avx LABEL PROC
9047  DB  72,173                              ; lods          %ds:(%rsi),%rax
9048  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9049  DB  196,65,116,94,200                   ; vdivps        %ymm8,%ymm1,%ymm9
9050  DB  196,67,125,8,201,1                  ; vroundps      $0x1,%ymm9,%ymm9
9051  DB  196,65,52,89,200                    ; vmulps        %ymm8,%ymm9,%ymm9
9052  DB  196,65,116,92,201                   ; vsubps        %ymm9,%ymm1,%ymm9
9053  DB  196,99,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm1
9054  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9055  DB  196,193,113,254,202                 ; vpaddd        %xmm10,%xmm1,%xmm1
9056  DB  196,65,57,254,194                   ; vpaddd        %xmm10,%xmm8,%xmm8
9057  DB  196,227,61,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm8,%ymm1
9058  DB  197,180,93,201                      ; vminps        %ymm1,%ymm9,%ymm1
9059  DB  72,173                              ; lods          %ds:(%rsi),%rax
9060  DB  255,224                             ; jmpq          *%rax
9061
9062PUBLIC _sk_mirror_x_avx
9063_sk_mirror_x_avx LABEL PROC
9064  DB  72,173                              ; lods          %ds:(%rsi),%rax
9065  DB  197,121,110,0                       ; vmovd         (%rax),%xmm8
9066  DB  196,65,121,112,200,0                ; vpshufd       $0x0,%xmm8,%xmm9
9067  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
9068  DB  196,65,124,92,209                   ; vsubps        %ymm9,%ymm0,%ymm10
9069  DB  196,193,58,88,192                   ; vaddss        %xmm8,%xmm8,%xmm0
9070  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9071  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9072  DB  197,44,94,192                       ; vdivps        %ymm0,%ymm10,%ymm8
9073  DB  196,67,125,8,192,1                  ; vroundps      $0x1,%ymm8,%ymm8
9074  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
9075  DB  197,172,92,192                      ; vsubps        %ymm0,%ymm10,%ymm0
9076  DB  196,193,124,92,193                  ; vsubps        %ymm9,%ymm0,%ymm0
9077  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
9078  DB  197,60,92,192                       ; vsubps        %ymm0,%ymm8,%ymm8
9079  DB  197,60,84,192                       ; vandps        %ymm0,%ymm8,%ymm8
9080  DB  196,99,125,25,200,1                 ; vextractf128  $0x1,%ymm9,%xmm0
9081  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9082  DB  196,193,121,254,194                 ; vpaddd        %xmm10,%xmm0,%xmm0
9083  DB  196,65,49,254,202                   ; vpaddd        %xmm10,%xmm9,%xmm9
9084  DB  196,227,53,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm0
9085  DB  197,188,93,192                      ; vminps        %ymm0,%ymm8,%ymm0
9086  DB  72,173                              ; lods          %ds:(%rsi),%rax
9087  DB  255,224                             ; jmpq          *%rax
9088
9089PUBLIC _sk_mirror_y_avx
9090_sk_mirror_y_avx LABEL PROC
9091  DB  72,173                              ; lods          %ds:(%rsi),%rax
9092  DB  197,121,110,0                       ; vmovd         (%rax),%xmm8
9093  DB  196,65,121,112,200,0                ; vpshufd       $0x0,%xmm8,%xmm9
9094  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
9095  DB  196,65,116,92,209                   ; vsubps        %ymm9,%ymm1,%ymm10
9096  DB  196,193,58,88,200                   ; vaddss        %xmm8,%xmm8,%xmm1
9097  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9098  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9099  DB  197,44,94,193                       ; vdivps        %ymm1,%ymm10,%ymm8
9100  DB  196,67,125,8,192,1                  ; vroundps      $0x1,%ymm8,%ymm8
9101  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
9102  DB  197,172,92,201                      ; vsubps        %ymm1,%ymm10,%ymm1
9103  DB  196,193,116,92,201                  ; vsubps        %ymm9,%ymm1,%ymm1
9104  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
9105  DB  197,60,92,193                       ; vsubps        %ymm1,%ymm8,%ymm8
9106  DB  197,60,84,193                       ; vandps        %ymm1,%ymm8,%ymm8
9107  DB  196,99,125,25,201,1                 ; vextractf128  $0x1,%ymm9,%xmm1
9108  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9109  DB  196,193,113,254,202                 ; vpaddd        %xmm10,%xmm1,%xmm1
9110  DB  196,65,49,254,202                   ; vpaddd        %xmm10,%xmm9,%xmm9
9111  DB  196,227,53,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm9,%ymm1
9112  DB  197,188,93,201                      ; vminps        %ymm1,%ymm8,%ymm1
9113  DB  72,173                              ; lods          %ds:(%rsi),%rax
9114  DB  255,224                             ; jmpq          *%rax
9115
9116PUBLIC _sk_luminance_to_alpha_avx
9117_sk_luminance_to_alpha_avx LABEL PROC
9118  DB  184,208,179,89,62                   ; mov           $0x3e59b3d0,%eax
9119  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
9120  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
9121  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
9122  DB  197,228,89,192                      ; vmulps        %ymm0,%ymm3,%ymm0
9123  DB  184,89,23,55,63                     ; mov           $0x3f371759,%eax
9124  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
9125  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
9126  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
9127  DB  197,228,89,201                      ; vmulps        %ymm1,%ymm3,%ymm1
9128  DB  197,252,88,193                      ; vaddps        %ymm1,%ymm0,%ymm0
9129  DB  184,152,221,147,61                  ; mov           $0x3d93dd98,%eax
9130  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
9131  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9132  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9133  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
9134  DB  197,252,88,217                      ; vaddps        %ymm1,%ymm0,%ymm3
9135  DB  72,173                              ; lods          %ds:(%rsi),%rax
9136  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
9137  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
9138  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
9139  DB  255,224                             ; jmpq          *%rax
9140
9141PUBLIC _sk_matrix_2x3_avx
9142_sk_matrix_2x3_avx LABEL PROC
9143  DB  72,173                              ; lods          %ds:(%rsi),%rax
9144  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9145  DB  196,98,125,24,72,8                  ; vbroadcastss  0x8(%rax),%ymm9
9146  DB  196,98,125,24,80,16                 ; vbroadcastss  0x10(%rax),%ymm10
9147  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
9148  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9149  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
9150  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
9151  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
9152  DB  196,98,125,24,80,12                 ; vbroadcastss  0xc(%rax),%ymm10
9153  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
9154  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
9155  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
9156  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
9157  DB  197,252,88,201                      ; vaddps        %ymm1,%ymm0,%ymm1
9158  DB  72,173                              ; lods          %ds:(%rsi),%rax
9159  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9160  DB  255,224                             ; jmpq          *%rax
9161
9162PUBLIC _sk_matrix_3x4_avx
9163_sk_matrix_3x4_avx LABEL PROC
9164  DB  72,173                              ; lods          %ds:(%rsi),%rax
9165  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9166  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
9167  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
9168  DB  196,98,125,24,88,36                 ; vbroadcastss  0x24(%rax),%ymm11
9169  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
9170  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9171  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
9172  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9173  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
9174  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
9175  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
9176  DB  196,98,125,24,80,16                 ; vbroadcastss  0x10(%rax),%ymm10
9177  DB  196,98,125,24,88,28                 ; vbroadcastss  0x1c(%rax),%ymm11
9178  DB  196,98,125,24,96,40                 ; vbroadcastss  0x28(%rax),%ymm12
9179  DB  197,36,89,218                       ; vmulps        %ymm2,%ymm11,%ymm11
9180  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
9181  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
9182  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9183  DB  197,52,89,200                       ; vmulps        %ymm0,%ymm9,%ymm9
9184  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9185  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
9186  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
9187  DB  196,98,125,24,96,32                 ; vbroadcastss  0x20(%rax),%ymm12
9188  DB  196,98,125,24,104,44                ; vbroadcastss  0x2c(%rax),%ymm13
9189  DB  197,156,89,210                      ; vmulps        %ymm2,%ymm12,%ymm2
9190  DB  196,193,108,88,213                  ; vaddps        %ymm13,%ymm2,%ymm2
9191  DB  197,164,89,201                      ; vmulps        %ymm1,%ymm11,%ymm1
9192  DB  197,244,88,202                      ; vaddps        %ymm2,%ymm1,%ymm1
9193  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
9194  DB  197,252,88,209                      ; vaddps        %ymm1,%ymm0,%ymm2
9195  DB  72,173                              ; lods          %ds:(%rsi),%rax
9196  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9197  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
9198  DB  255,224                             ; jmpq          *%rax
9199
9200PUBLIC _sk_matrix_4x5_avx
9201_sk_matrix_4x5_avx LABEL PROC
9202  DB  72,173                              ; lods          %ds:(%rsi),%rax
9203  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9204  DB  196,98,125,24,72,16                 ; vbroadcastss  0x10(%rax),%ymm9
9205  DB  196,98,125,24,80,32                 ; vbroadcastss  0x20(%rax),%ymm10
9206  DB  196,98,125,24,88,48                 ; vbroadcastss  0x30(%rax),%ymm11
9207  DB  196,98,125,24,96,64                 ; vbroadcastss  0x40(%rax),%ymm12
9208  DB  197,36,89,219                       ; vmulps        %ymm3,%ymm11,%ymm11
9209  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
9210  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
9211  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9212  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
9213  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9214  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
9215  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
9216  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
9217  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
9218  DB  196,98,125,24,88,36                 ; vbroadcastss  0x24(%rax),%ymm11
9219  DB  196,98,125,24,96,52                 ; vbroadcastss  0x34(%rax),%ymm12
9220  DB  196,98,125,24,104,68                ; vbroadcastss  0x44(%rax),%ymm13
9221  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
9222  DB  196,65,28,88,229                    ; vaddps        %ymm13,%ymm12,%ymm12
9223  DB  197,36,89,218                       ; vmulps        %ymm2,%ymm11,%ymm11
9224  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
9225  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
9226  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9227  DB  197,52,89,200                       ; vmulps        %ymm0,%ymm9,%ymm9
9228  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9229  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
9230  DB  196,98,125,24,88,24                 ; vbroadcastss  0x18(%rax),%ymm11
9231  DB  196,98,125,24,96,40                 ; vbroadcastss  0x28(%rax),%ymm12
9232  DB  196,98,125,24,104,56                ; vbroadcastss  0x38(%rax),%ymm13
9233  DB  196,98,125,24,112,72                ; vbroadcastss  0x48(%rax),%ymm14
9234  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
9235  DB  196,65,20,88,238                    ; vaddps        %ymm14,%ymm13,%ymm13
9236  DB  197,28,89,226                       ; vmulps        %ymm2,%ymm12,%ymm12
9237  DB  196,65,28,88,229                    ; vaddps        %ymm13,%ymm12,%ymm12
9238  DB  197,36,89,217                       ; vmulps        %ymm1,%ymm11,%ymm11
9239  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
9240  DB  197,44,89,208                       ; vmulps        %ymm0,%ymm10,%ymm10
9241  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9242  DB  196,98,125,24,88,12                 ; vbroadcastss  0xc(%rax),%ymm11
9243  DB  196,98,125,24,96,28                 ; vbroadcastss  0x1c(%rax),%ymm12
9244  DB  196,98,125,24,104,44                ; vbroadcastss  0x2c(%rax),%ymm13
9245  DB  196,98,125,24,112,60                ; vbroadcastss  0x3c(%rax),%ymm14
9246  DB  196,98,125,24,120,76                ; vbroadcastss  0x4c(%rax),%ymm15
9247  DB  197,140,89,219                      ; vmulps        %ymm3,%ymm14,%ymm3
9248  DB  196,193,100,88,223                  ; vaddps        %ymm15,%ymm3,%ymm3
9249  DB  197,148,89,210                      ; vmulps        %ymm2,%ymm13,%ymm2
9250  DB  197,236,88,211                      ; vaddps        %ymm3,%ymm2,%ymm2
9251  DB  197,156,89,201                      ; vmulps        %ymm1,%ymm12,%ymm1
9252  DB  197,244,88,202                      ; vaddps        %ymm2,%ymm1,%ymm1
9253  DB  197,164,89,192                      ; vmulps        %ymm0,%ymm11,%ymm0
9254  DB  197,252,88,217                      ; vaddps        %ymm1,%ymm0,%ymm3
9255  DB  72,173                              ; lods          %ds:(%rsi),%rax
9256  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9257  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
9258  DB  197,124,41,210                      ; vmovaps       %ymm10,%ymm2
9259  DB  255,224                             ; jmpq          *%rax
9260
9261PUBLIC _sk_matrix_perspective_avx
9262_sk_matrix_perspective_avx LABEL PROC
9263  DB  72,173                              ; lods          %ds:(%rsi),%rax
9264  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9265  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
9266  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
9267  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
9268  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9269  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
9270  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
9271  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
9272  DB  196,98,125,24,80,16                 ; vbroadcastss  0x10(%rax),%ymm10
9273  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
9274  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
9275  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9276  DB  197,52,89,200                       ; vmulps        %ymm0,%ymm9,%ymm9
9277  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9278  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
9279  DB  196,98,125,24,88,28                 ; vbroadcastss  0x1c(%rax),%ymm11
9280  DB  196,98,125,24,96,32                 ; vbroadcastss  0x20(%rax),%ymm12
9281  DB  197,164,89,201                      ; vmulps        %ymm1,%ymm11,%ymm1
9282  DB  196,193,116,88,204                  ; vaddps        %ymm12,%ymm1,%ymm1
9283  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
9284  DB  197,252,88,193                      ; vaddps        %ymm1,%ymm0,%ymm0
9285  DB  197,252,83,200                      ; vrcpps        %ymm0,%ymm1
9286  DB  197,188,89,193                      ; vmulps        %ymm1,%ymm8,%ymm0
9287  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
9288  DB  72,173                              ; lods          %ds:(%rsi),%rax
9289  DB  255,224                             ; jmpq          *%rax
9290
9291PUBLIC _sk_linear_gradient_avx
9292_sk_linear_gradient_avx LABEL PROC
9293  DB  72,173                              ; lods          %ds:(%rsi),%rax
9294  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
9295  DB  196,226,125,24,72,20                ; vbroadcastss  0x14(%rax),%ymm1
9296  DB  196,226,125,24,80,24                ; vbroadcastss  0x18(%rax),%ymm2
9297  DB  196,226,125,24,88,28                ; vbroadcastss  0x1c(%rax),%ymm3
9298  DB  76,139,0                            ; mov           (%rax),%r8
9299  DB  77,133,192                          ; test          %r8,%r8
9300  DB  15,132,146,0,0,0                    ; je            5555 <_sk_linear_gradient_avx+0xb8>
9301  DB  72,139,64,8                         ; mov           0x8(%rax),%rax
9302  DB  72,131,192,32                       ; add           $0x20,%rax
9303  DB  196,65,28,87,228                    ; vxorps        %ymm12,%ymm12,%ymm12
9304  DB  196,65,52,87,201                    ; vxorps        %ymm9,%ymm9,%ymm9
9305  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
9306  DB  196,65,36,87,219                    ; vxorps        %ymm11,%ymm11,%ymm11
9307  DB  196,98,125,24,104,224               ; vbroadcastss  -0x20(%rax),%ymm13
9308  DB  196,65,124,194,237,1                ; vcmpltps      %ymm13,%ymm0,%ymm13
9309  DB  196,98,125,24,112,228               ; vbroadcastss  -0x1c(%rax),%ymm14
9310  DB  196,67,13,74,228,208                ; vblendvps     %ymm13,%ymm12,%ymm14,%ymm12
9311  DB  196,98,125,24,112,232               ; vbroadcastss  -0x18(%rax),%ymm14
9312  DB  196,67,13,74,219,208                ; vblendvps     %ymm13,%ymm11,%ymm14,%ymm11
9313  DB  196,98,125,24,112,236               ; vbroadcastss  -0x14(%rax),%ymm14
9314  DB  196,67,13,74,210,208                ; vblendvps     %ymm13,%ymm10,%ymm14,%ymm10
9315  DB  196,98,125,24,112,240               ; vbroadcastss  -0x10(%rax),%ymm14
9316  DB  196,67,13,74,201,208                ; vblendvps     %ymm13,%ymm9,%ymm14,%ymm9
9317  DB  196,98,125,24,112,244               ; vbroadcastss  -0xc(%rax),%ymm14
9318  DB  196,67,13,74,192,208                ; vblendvps     %ymm13,%ymm8,%ymm14,%ymm8
9319  DB  196,98,125,24,112,248               ; vbroadcastss  -0x8(%rax),%ymm14
9320  DB  196,227,13,74,201,208               ; vblendvps     %ymm13,%ymm1,%ymm14,%ymm1
9321  DB  196,98,125,24,112,252               ; vbroadcastss  -0x4(%rax),%ymm14
9322  DB  196,227,13,74,210,208               ; vblendvps     %ymm13,%ymm2,%ymm14,%ymm2
9323  DB  196,98,125,24,48                    ; vbroadcastss  (%rax),%ymm14
9324  DB  196,227,13,74,219,208               ; vblendvps     %ymm13,%ymm3,%ymm14,%ymm3
9325  DB  72,131,192,36                       ; add           $0x24,%rax
9326  DB  73,255,200                          ; dec           %r8
9327  DB  117,140                             ; jne           54df <_sk_linear_gradient_avx+0x42>
9328  DB  235,20                              ; jmp           5569 <_sk_linear_gradient_avx+0xcc>
9329  DB  196,65,36,87,219                    ; vxorps        %ymm11,%ymm11,%ymm11
9330  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
9331  DB  196,65,52,87,201                    ; vxorps        %ymm9,%ymm9,%ymm9
9332  DB  196,65,28,87,228                    ; vxorps        %ymm12,%ymm12,%ymm12
9333  DB  197,28,89,224                       ; vmulps        %ymm0,%ymm12,%ymm12
9334  DB  196,65,60,88,196                    ; vaddps        %ymm12,%ymm8,%ymm8
9335  DB  197,36,89,216                       ; vmulps        %ymm0,%ymm11,%ymm11
9336  DB  197,164,88,201                      ; vaddps        %ymm1,%ymm11,%ymm1
9337  DB  197,44,89,208                       ; vmulps        %ymm0,%ymm10,%ymm10
9338  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
9339  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
9340  DB  197,252,88,219                      ; vaddps        %ymm3,%ymm0,%ymm3
9341  DB  72,173                              ; lods          %ds:(%rsi),%rax
9342  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9343  DB  255,224                             ; jmpq          *%rax
9344
9345PUBLIC _sk_linear_gradient_2stops_avx
9346_sk_linear_gradient_2stops_avx LABEL PROC
9347  DB  72,173                              ; lods          %ds:(%rsi),%rax
9348  DB  196,226,125,24,8                    ; vbroadcastss  (%rax),%ymm1
9349  DB  196,226,125,24,80,16                ; vbroadcastss  0x10(%rax),%ymm2
9350  DB  197,244,89,200                      ; vmulps        %ymm0,%ymm1,%ymm1
9351  DB  197,116,88,194                      ; vaddps        %ymm2,%ymm1,%ymm8
9352  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
9353  DB  196,226,125,24,80,20                ; vbroadcastss  0x14(%rax),%ymm2
9354  DB  197,244,89,200                      ; vmulps        %ymm0,%ymm1,%ymm1
9355  DB  197,244,88,202                      ; vaddps        %ymm2,%ymm1,%ymm1
9356  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
9357  DB  196,226,125,24,88,24                ; vbroadcastss  0x18(%rax),%ymm3
9358  DB  197,236,89,208                      ; vmulps        %ymm0,%ymm2,%ymm2
9359  DB  197,236,88,211                      ; vaddps        %ymm3,%ymm2,%ymm2
9360  DB  196,226,125,24,88,12                ; vbroadcastss  0xc(%rax),%ymm3
9361  DB  196,98,125,24,72,28                 ; vbroadcastss  0x1c(%rax),%ymm9
9362  DB  197,228,89,192                      ; vmulps        %ymm0,%ymm3,%ymm0
9363  DB  196,193,124,88,217                  ; vaddps        %ymm9,%ymm0,%ymm3
9364  DB  72,173                              ; lods          %ds:(%rsi),%rax
9365  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9366  DB  255,224                             ; jmpq          *%rax
9367
9368PUBLIC _sk_save_xy_avx
9369_sk_save_xy_avx LABEL PROC
9370  DB  72,173                              ; lods          %ds:(%rsi),%rax
9371  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9372  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9373  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9374  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9375  DB  197,60,88,200                       ; vaddps        %ymm0,%ymm8,%ymm9
9376  DB  196,67,125,8,209,1                  ; vroundps      $0x1,%ymm9,%ymm10
9377  DB  196,65,52,92,202                    ; vsubps        %ymm10,%ymm9,%ymm9
9378  DB  197,60,88,193                       ; vaddps        %ymm1,%ymm8,%ymm8
9379  DB  196,67,125,8,208,1                  ; vroundps      $0x1,%ymm8,%ymm10
9380  DB  196,65,60,92,194                    ; vsubps        %ymm10,%ymm8,%ymm8
9381  DB  197,252,17,0                        ; vmovups       %ymm0,(%rax)
9382  DB  197,252,17,72,32                    ; vmovups       %ymm1,0x20(%rax)
9383  DB  197,124,17,72,64                    ; vmovups       %ymm9,0x40(%rax)
9384  DB  197,124,17,64,96                    ; vmovups       %ymm8,0x60(%rax)
9385  DB  72,173                              ; lods          %ds:(%rsi),%rax
9386  DB  255,224                             ; jmpq          *%rax
9387
9388PUBLIC _sk_accumulate_avx
9389_sk_accumulate_avx LABEL PROC
9390  DB  72,173                              ; lods          %ds:(%rsi),%rax
9391  DB  197,124,16,128,128,0,0,0            ; vmovups       0x80(%rax),%ymm8
9392  DB  197,60,89,128,160,0,0,0             ; vmulps        0xa0(%rax),%ymm8,%ymm8
9393  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
9394  DB  197,180,88,228                      ; vaddps        %ymm4,%ymm9,%ymm4
9395  DB  197,60,89,201                       ; vmulps        %ymm1,%ymm8,%ymm9
9396  DB  197,180,88,237                      ; vaddps        %ymm5,%ymm9,%ymm5
9397  DB  197,60,89,202                       ; vmulps        %ymm2,%ymm8,%ymm9
9398  DB  197,180,88,246                      ; vaddps        %ymm6,%ymm9,%ymm6
9399  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
9400  DB  197,188,88,255                      ; vaddps        %ymm7,%ymm8,%ymm7
9401  DB  72,173                              ; lods          %ds:(%rsi),%rax
9402  DB  255,224                             ; jmpq          *%rax
9403
9404PUBLIC _sk_bilinear_nx_avx
9405_sk_bilinear_nx_avx LABEL PROC
9406  DB  72,173                              ; lods          %ds:(%rsi),%rax
9407  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
9408  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9409  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9410  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9411  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9412  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9413  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9414  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9415  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9416  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
9417  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9418  DB  72,173                              ; lods          %ds:(%rsi),%rax
9419  DB  255,224                             ; jmpq          *%rax
9420
9421PUBLIC _sk_bilinear_px_avx
9422_sk_bilinear_px_avx LABEL PROC
9423  DB  72,173                              ; lods          %ds:(%rsi),%rax
9424  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9425  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9426  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9427  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9428  DB  197,124,16,64,64                    ; vmovups       0x40(%rax),%ymm8
9429  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9430  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9431  DB  72,173                              ; lods          %ds:(%rsi),%rax
9432  DB  255,224                             ; jmpq          *%rax
9433
9434PUBLIC _sk_bilinear_ny_avx
9435_sk_bilinear_ny_avx LABEL PROC
9436  DB  72,173                              ; lods          %ds:(%rsi),%rax
9437  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
9438  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9439  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9440  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9441  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9442  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9443  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9444  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9445  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9446  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
9447  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9448  DB  72,173                              ; lods          %ds:(%rsi),%rax
9449  DB  255,224                             ; jmpq          *%rax
9450
9451PUBLIC _sk_bilinear_py_avx
9452_sk_bilinear_py_avx LABEL PROC
9453  DB  72,173                              ; lods          %ds:(%rsi),%rax
9454  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9455  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9456  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9457  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9458  DB  197,124,16,64,96                    ; vmovups       0x60(%rax),%ymm8
9459  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9460  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9461  DB  72,173                              ; lods          %ds:(%rsi),%rax
9462  DB  255,224                             ; jmpq          *%rax
9463
9464PUBLIC _sk_bicubic_n3x_avx
9465_sk_bicubic_n3x_avx LABEL PROC
9466  DB  72,173                              ; lods          %ds:(%rsi),%rax
9467  DB  65,184,0,0,192,191                  ; mov           $0xbfc00000,%r8d
9468  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9469  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9470  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9471  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9472  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9473  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9474  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9475  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9476  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
9477  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
9478  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
9479  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9480  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9481  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9482  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
9483  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9484  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9485  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9486  DB  196,65,44,89,192                    ; vmulps        %ymm8,%ymm10,%ymm8
9487  DB  196,65,60,88,195                    ; vaddps        %ymm11,%ymm8,%ymm8
9488  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9489  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9490  DB  72,173                              ; lods          %ds:(%rsi),%rax
9491  DB  255,224                             ; jmpq          *%rax
9492
9493PUBLIC _sk_bicubic_n1x_avx
9494_sk_bicubic_n1x_avx LABEL PROC
9495  DB  72,173                              ; lods          %ds:(%rsi),%rax
9496  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
9497  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9498  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9499  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9500  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9501  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9502  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9503  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9504  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9505  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
9506  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
9507  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
9508  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
9509  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
9510  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9511  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9512  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9513  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9514  DB  196,65,52,89,200                    ; vmulps        %ymm8,%ymm9,%ymm9
9515  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9516  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9517  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9518  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9519  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9520  DB  196,65,60,89,201                    ; vmulps        %ymm9,%ymm8,%ymm9
9521  DB  196,65,44,88,201                    ; vaddps        %ymm9,%ymm10,%ymm9
9522  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
9523  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9524  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9525  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9526  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
9527  DB  196,65,44,88,192                    ; vaddps        %ymm8,%ymm10,%ymm8
9528  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9529  DB  72,173                              ; lods          %ds:(%rsi),%rax
9530  DB  255,224                             ; jmpq          *%rax
9531
9532PUBLIC _sk_bicubic_p1x_avx
9533_sk_bicubic_p1x_avx LABEL PROC
9534  DB  72,173                              ; lods          %ds:(%rsi),%rax
9535  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9536  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9537  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9538  DB  196,99,125,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm8
9539  DB  197,188,88,0                        ; vaddps        (%rax),%ymm8,%ymm0
9540  DB  197,124,16,72,64                    ; vmovups       0x40(%rax),%ymm9
9541  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
9542  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9543  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9544  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9545  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9546  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9547  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9548  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9549  DB  196,65,52,89,210                    ; vmulps        %ymm10,%ymm9,%ymm10
9550  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9551  DB  196,65,52,89,210                    ; vmulps        %ymm10,%ymm9,%ymm10
9552  DB  196,65,60,88,194                    ; vaddps        %ymm10,%ymm8,%ymm8
9553  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
9554  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9555  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9556  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9557  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9558  DB  196,65,44,88,192                    ; vaddps        %ymm8,%ymm10,%ymm8
9559  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9560  DB  72,173                              ; lods          %ds:(%rsi),%rax
9561  DB  255,224                             ; jmpq          *%rax
9562
9563PUBLIC _sk_bicubic_p3x_avx
9564_sk_bicubic_p3x_avx LABEL PROC
9565  DB  72,173                              ; lods          %ds:(%rsi),%rax
9566  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9567  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9568  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9569  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9570  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9571  DB  197,124,16,64,64                    ; vmovups       0x40(%rax),%ymm8
9572  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
9573  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
9574  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9575  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9576  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9577  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
9578  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9579  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9580  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9581  DB  196,65,60,89,194                    ; vmulps        %ymm10,%ymm8,%ymm8
9582  DB  196,65,60,88,195                    ; vaddps        %ymm11,%ymm8,%ymm8
9583  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9584  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9585  DB  72,173                              ; lods          %ds:(%rsi),%rax
9586  DB  255,224                             ; jmpq          *%rax
9587
9588PUBLIC _sk_bicubic_n3y_avx
9589_sk_bicubic_n3y_avx LABEL PROC
9590  DB  72,173                              ; lods          %ds:(%rsi),%rax
9591  DB  65,184,0,0,192,191                  ; mov           $0xbfc00000,%r8d
9592  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9593  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9594  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9595  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9596  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9597  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9598  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9599  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9600  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
9601  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
9602  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
9603  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9604  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9605  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9606  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
9607  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9608  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9609  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9610  DB  196,65,44,89,192                    ; vmulps        %ymm8,%ymm10,%ymm8
9611  DB  196,65,60,88,195                    ; vaddps        %ymm11,%ymm8,%ymm8
9612  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9613  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9614  DB  72,173                              ; lods          %ds:(%rsi),%rax
9615  DB  255,224                             ; jmpq          *%rax
9616
9617PUBLIC _sk_bicubic_n1y_avx
9618_sk_bicubic_n1y_avx LABEL PROC
9619  DB  72,173                              ; lods          %ds:(%rsi),%rax
9620  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
9621  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9622  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9623  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9624  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9625  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9626  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9627  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9628  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9629  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
9630  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
9631  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
9632  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
9633  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
9634  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9635  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9636  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9637  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9638  DB  196,65,52,89,200                    ; vmulps        %ymm8,%ymm9,%ymm9
9639  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9640  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9641  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9642  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9643  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9644  DB  196,65,60,89,201                    ; vmulps        %ymm9,%ymm8,%ymm9
9645  DB  196,65,44,88,201                    ; vaddps        %ymm9,%ymm10,%ymm9
9646  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
9647  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9648  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9649  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9650  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
9651  DB  196,65,44,88,192                    ; vaddps        %ymm8,%ymm10,%ymm8
9652  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9653  DB  72,173                              ; lods          %ds:(%rsi),%rax
9654  DB  255,224                             ; jmpq          *%rax
9655
9656PUBLIC _sk_bicubic_p1y_avx
9657_sk_bicubic_p1y_avx LABEL PROC
9658  DB  72,173                              ; lods          %ds:(%rsi),%rax
9659  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9660  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9661  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9662  DB  196,99,117,24,193,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm8
9663  DB  197,188,88,72,32                    ; vaddps        0x20(%rax),%ymm8,%ymm1
9664  DB  197,124,16,72,96                    ; vmovups       0x60(%rax),%ymm9
9665  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
9666  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9667  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9668  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9669  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9670  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9671  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9672  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9673  DB  196,65,52,89,210                    ; vmulps        %ymm10,%ymm9,%ymm10
9674  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9675  DB  196,65,52,89,210                    ; vmulps        %ymm10,%ymm9,%ymm10
9676  DB  196,65,60,88,194                    ; vaddps        %ymm10,%ymm8,%ymm8
9677  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
9678  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9679  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9680  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9681  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9682  DB  196,65,44,88,192                    ; vaddps        %ymm8,%ymm10,%ymm8
9683  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9684  DB  72,173                              ; lods          %ds:(%rsi),%rax
9685  DB  255,224                             ; jmpq          *%rax
9686
9687PUBLIC _sk_bicubic_p3y_avx
9688_sk_bicubic_p3y_avx LABEL PROC
9689  DB  72,173                              ; lods          %ds:(%rsi),%rax
9690  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9691  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9692  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9693  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9694  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9695  DB  197,124,16,64,96                    ; vmovups       0x60(%rax),%ymm8
9696  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
9697  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
9698  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9699  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9700  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9701  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
9702  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9703  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9704  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9705  DB  196,65,60,89,194                    ; vmulps        %ymm10,%ymm8,%ymm8
9706  DB  196,65,60,88,195                    ; vaddps        %ymm11,%ymm8,%ymm8
9707  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9708  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9709  DB  72,173                              ; lods          %ds:(%rsi),%rax
9710  DB  255,224                             ; jmpq          *%rax
9711
9712PUBLIC _sk_callback_avx
9713_sk_callback_avx LABEL PROC
9714  DB  65,87                               ; push          %r15
9715  DB  65,86                               ; push          %r14
9716  DB  83                                  ; push          %rbx
9717  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
9718  DB  197,252,17,188,36,128,0,0,0         ; vmovups       %ymm7,0x80(%rsp)
9719  DB  197,252,17,116,36,96                ; vmovups       %ymm6,0x60(%rsp)
9720  DB  197,252,17,108,36,64                ; vmovups       %ymm5,0x40(%rsp)
9721  DB  197,252,17,100,36,32                ; vmovups       %ymm4,0x20(%rsp)
9722  DB  73,137,207                          ; mov           %rcx,%r15
9723  DB  73,137,214                          ; mov           %rdx,%r14
9724  DB  72,173                              ; lods          %ds:(%rsi),%rax
9725  DB  72,137,195                          ; mov           %rax,%rbx
9726  DB  197,252,20,225                      ; vunpcklps     %ymm1,%ymm0,%ymm4
9727  DB  197,252,21,193                      ; vunpckhps     %ymm1,%ymm0,%ymm0
9728  DB  197,236,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm1
9729  DB  197,236,21,211                      ; vunpckhps     %ymm3,%ymm2,%ymm2
9730  DB  197,221,20,217                      ; vunpcklpd     %ymm1,%ymm4,%ymm3
9731  DB  197,221,21,201                      ; vunpckhpd     %ymm1,%ymm4,%ymm1
9732  DB  197,253,20,226                      ; vunpcklpd     %ymm2,%ymm0,%ymm4
9733  DB  197,253,21,194                      ; vunpckhpd     %ymm2,%ymm0,%ymm0
9734  DB  196,227,101,24,209,1                ; vinsertf128   $0x1,%xmm1,%ymm3,%ymm2
9735  DB  196,227,93,24,232,1                 ; vinsertf128   $0x1,%xmm0,%ymm4,%ymm5
9736  DB  196,227,101,6,201,49                ; vperm2f128    $0x31,%ymm1,%ymm3,%ymm1
9737  DB  196,227,93,6,192,49                 ; vperm2f128    $0x31,%ymm0,%ymm4,%ymm0
9738  DB  197,253,17,83,8                     ; vmovupd       %ymm2,0x8(%rbx)
9739  DB  197,253,17,107,40                   ; vmovupd       %ymm5,0x28(%rbx)
9740  DB  197,253,17,75,72                    ; vmovupd       %ymm1,0x48(%rbx)
9741  DB  197,253,17,67,104                   ; vmovupd       %ymm0,0x68(%rbx)
9742  DB  77,133,255                          ; test          %r15,%r15
9743  DB  186,8,0,0,0                         ; mov           $0x8,%edx
9744  DB  65,15,69,215                        ; cmovne        %r15d,%edx
9745  DB  72,137,217                          ; mov           %rbx,%rcx
9746  DB  197,248,119                         ; vzeroupper
9747  DB  255,19                              ; callq         *(%rbx)
9748  DB  72,139,131,136,0,0,0                ; mov           0x88(%rbx),%rax
9749  DB  197,248,16,0                        ; vmovups       (%rax),%xmm0
9750  DB  197,248,16,72,16                    ; vmovups       0x10(%rax),%xmm1
9751  DB  197,248,16,80,32                    ; vmovups       0x20(%rax),%xmm2
9752  DB  197,248,16,88,48                    ; vmovups       0x30(%rax),%xmm3
9753  DB  196,227,101,24,88,112,1             ; vinsertf128   $0x1,0x70(%rax),%ymm3,%ymm3
9754  DB  196,227,109,24,80,96,1              ; vinsertf128   $0x1,0x60(%rax),%ymm2,%ymm2
9755  DB  196,227,117,24,72,80,1              ; vinsertf128   $0x1,0x50(%rax),%ymm1,%ymm1
9756  DB  196,227,125,24,64,64,1              ; vinsertf128   $0x1,0x40(%rax),%ymm0,%ymm0
9757  DB  197,252,20,225                      ; vunpcklps     %ymm1,%ymm0,%ymm4
9758  DB  197,252,21,233                      ; vunpckhps     %ymm1,%ymm0,%ymm5
9759  DB  197,236,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm1
9760  DB  197,236,21,219                      ; vunpckhps     %ymm3,%ymm2,%ymm3
9761  DB  197,221,20,193                      ; vunpcklpd     %ymm1,%ymm4,%ymm0
9762  DB  197,221,21,201                      ; vunpckhpd     %ymm1,%ymm4,%ymm1
9763  DB  197,213,20,211                      ; vunpcklpd     %ymm3,%ymm5,%ymm2
9764  DB  197,213,21,219                      ; vunpckhpd     %ymm3,%ymm5,%ymm3
9765  DB  72,173                              ; lods          %ds:(%rsi),%rax
9766  DB  76,137,242                          ; mov           %r14,%rdx
9767  DB  76,137,249                          ; mov           %r15,%rcx
9768  DB  197,252,16,100,36,32                ; vmovups       0x20(%rsp),%ymm4
9769  DB  197,252,16,108,36,64                ; vmovups       0x40(%rsp),%ymm5
9770  DB  197,252,16,116,36,96                ; vmovups       0x60(%rsp),%ymm6
9771  DB  197,252,16,188,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm7
9772  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
9773  DB  91                                  ; pop           %rbx
9774  DB  65,94                               ; pop           %r14
9775  DB  65,95                               ; pop           %r15
9776  DB  255,224                             ; jmpq          *%rax
9777
9778ALIGN 4
9779  DB  0,0                                 ; add           %al,(%rax)
9780  DB  0,63                                ; add           %bh,(%rdi)
9781  DB  0,0                                 ; add           %al,(%rax)
9782  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
9783  DB  0,0                                 ; add           %al,(%rax)
9784  DB  52,255                              ; xor           $0xff,%al
9785  DB  255                                 ; (bad)
9786  DB  127,0                               ; jg            5d14 <.literal4+0x10>
9787  DB  0,0                                 ; add           %al,(%rax)
9788  DB  0,63                                ; add           %bh,(%rdi)
9789  DB  119,115                             ; ja            5d8d <.literal4+0x89>
9790  DB  248                                 ; clc
9791  DB  194,117,191                         ; retq          $0xbf75
9792  DB  191,63,249,68,180                   ; mov           $0xb444f93f,%edi
9793  DB  62,163,233,220,63,81,140,242,66,141 ; movabs        %eax,%ds:0x8d42f28c513fdce9
9794  DB  188,190,63,248,245                  ; mov           $0xf5f83fbe,%esp
9795  DB  154                                 ; (bad)
9796  DB  64,254                              ; rex           (bad)
9797  DB  210,221                             ; rcr           %cl,%ch
9798  DB  65,0,0                              ; add           %al,(%r8)
9799  DB  0,75,0                              ; add           %cl,0x0(%rbx)
9800  DB  0,0                                 ; add           %al,(%rax)
9801  DB  52,255                              ; xor           $0xff,%al
9802  DB  255                                 ; (bad)
9803  DB  127,0                               ; jg            5d44 <.literal4+0x40>
9804  DB  0,0                                 ; add           %al,(%rax)
9805  DB  0,63                                ; add           %bh,(%rdi)
9806  DB  119,115                             ; ja            5dbd <.literal4+0xb9>
9807  DB  248                                 ; clc
9808  DB  194,117,191                         ; retq          $0xbf75
9809  DB  191,63,249,68,180                   ; mov           $0xb444f93f,%edi
9810  DB  62,163,233,220,63,81,140,242,66,141 ; movabs        %eax,%ds:0x8d42f28c513fdce9
9811  DB  188,190,63,248,245                  ; mov           $0xf5f83fbe,%esp
9812  DB  154                                 ; (bad)
9813  DB  64,254                              ; rex           (bad)
9814  DB  210,221                             ; rcr           %cl,%ch
9815  DB  65,0,0                              ; add           %al,(%r8)
9816  DB  0,75,0                              ; add           %cl,0x0(%rbx)
9817  DB  0,0                                 ; add           %al,(%rax)
9818  DB  52,255                              ; xor           $0xff,%al
9819  DB  255                                 ; (bad)
9820  DB  127,0                               ; jg            5d74 <.literal4+0x70>
9821  DB  0,0                                 ; add           %al,(%rax)
9822  DB  0,63                                ; add           %bh,(%rdi)
9823  DB  119,115                             ; ja            5ded <.literal4+0xe9>
9824  DB  248                                 ; clc
9825  DB  194,117,191                         ; retq          $0xbf75
9826  DB  191,63,249,68,180                   ; mov           $0xb444f93f,%edi
9827  DB  62,163,233,220,63,81,140,242,66,141 ; movabs        %eax,%ds:0x8d42f28c513fdce9
9828  DB  188,190,63,248,245                  ; mov           $0xf5f83fbe,%esp
9829  DB  154                                 ; (bad)
9830  DB  64,254                              ; rex           (bad)
9831  DB  210,221                             ; rcr           %cl,%ch
9832  DB  65,0,0                              ; add           %al,(%r8)
9833  DB  0,75,0                              ; add           %cl,0x0(%rbx)
9834  DB  0,0                                 ; add           %al,(%rax)
9835  DB  52,255                              ; xor           $0xff,%al
9836  DB  255                                 ; (bad)
9837  DB  127,0                               ; jg            5da4 <.literal4+0xa0>
9838  DB  0,0                                 ; add           %al,(%rax)
9839  DB  0,63                                ; add           %bh,(%rdi)
9840  DB  119,115                             ; ja            5e1d <_sk_callback_avx+0x233>
9841  DB  248                                 ; clc
9842  DB  194,117,191                         ; retq          $0xbf75
9843  DB  191,63,249,68,180                   ; mov           $0xb444f93f,%edi
9844  DB  62,163,233,220,63,81,140,242,66,141 ; movabs        %eax,%ds:0x8d42f28c513fdce9
9845  DB  188,190,63,248,245                  ; mov           $0xf5f83fbe,%esp
9846  DB  154                                 ; (bad)
9847  DB  64,254                              ; rex           (bad)
9848  DB  210,221                             ; rcr           %cl,%ch
9849  DB  65,0,0                              ; add           %al,(%r8)
9850  DB  0,75,0                              ; add           %cl,0x0(%rbx)
9851  DB  128,0,0                             ; addb          $0x0,(%rax)
9852  DB  0,0                                 ; add           %al,(%rax)
9853  DB  0,128,0,4,0,128                     ; add           %al,-0x7ffffc00(%rax)
9854  DB  0,0                                 ; add           %al,(%rax)
9855  DB  0,56                                ; add           %bh,(%rax)
9856  DB  0,128,0,0,0,0                       ; add           %al,0x0(%rax)
9857  DB  0,128,0,4,0,128                     ; add           %al,-0x7ffffc00(%rax)
9858  DB  0,0                                 ; add           %al,(%rax)
9859  DB  0,56                                ; add           %bh,(%rax)
9860  DB  0,0                                 ; add           %al,(%rax)
9861  DB  0,128,0,0,128,56                    ; add           %al,0x38800000(%rax)
9862  DB  0,64,254                            ; add           %al,-0x2(%rax)
9863  DB  255                                 ; .byte         0xff
9864ALIGN 32
9865
9866PUBLIC _sk_start_pipeline_sse41
9867_sk_start_pipeline_sse41 LABEL PROC
9868  DB  65,87                               ; push          %r15
9869  DB  65,86                               ; push          %r14
9870  DB  65,85                               ; push          %r13
9871  DB  65,84                               ; push          %r12
9872  DB  86                                  ; push          %rsi
9873  DB  87                                  ; push          %rdi
9874  DB  83                                  ; push          %rbx
9875  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
9876  DB  68,15,41,188,36,144,0,0,0           ; movaps        %xmm15,0x90(%rsp)
9877  DB  68,15,41,180,36,128,0,0,0           ; movaps        %xmm14,0x80(%rsp)
9878  DB  68,15,41,108,36,112                 ; movaps        %xmm13,0x70(%rsp)
9879  DB  68,15,41,100,36,96                  ; movaps        %xmm12,0x60(%rsp)
9880  DB  68,15,41,92,36,80                   ; movaps        %xmm11,0x50(%rsp)
9881  DB  68,15,41,84,36,64                   ; movaps        %xmm10,0x40(%rsp)
9882  DB  68,15,41,76,36,48                   ; movaps        %xmm9,0x30(%rsp)
9883  DB  68,15,41,68,36,32                   ; movaps        %xmm8,0x20(%rsp)
9884  DB  15,41,124,36,16                     ; movaps        %xmm7,0x10(%rsp)
9885  DB  15,41,52,36                         ; movaps        %xmm6,(%rsp)
9886  DB  77,137,207                          ; mov           %r9,%r15
9887  DB  77,137,198                          ; mov           %r8,%r14
9888  DB  72,137,203                          ; mov           %rcx,%rbx
9889  DB  72,137,214                          ; mov           %rdx,%rsi
9890  DB  72,173                              ; lods          %ds:(%rsi),%rax
9891  DB  73,137,196                          ; mov           %rax,%r12
9892  DB  73,137,245                          ; mov           %rsi,%r13
9893  DB  72,141,67,4                         ; lea           0x4(%rbx),%rax
9894  DB  76,57,248                           ; cmp           %r15,%rax
9895  DB  118,5                               ; jbe           73 <_sk_start_pipeline_sse41+0x73>
9896  DB  72,137,216                          ; mov           %rbx,%rax
9897  DB  235,52                              ; jmp           a7 <_sk_start_pipeline_sse41+0xa7>
9898  DB  15,87,192                           ; xorps         %xmm0,%xmm0
9899  DB  15,87,201                           ; xorps         %xmm1,%xmm1
9900  DB  15,87,210                           ; xorps         %xmm2,%xmm2
9901  DB  15,87,219                           ; xorps         %xmm3,%xmm3
9902  DB  15,87,228                           ; xorps         %xmm4,%xmm4
9903  DB  15,87,237                           ; xorps         %xmm5,%xmm5
9904  DB  15,87,246                           ; xorps         %xmm6,%xmm6
9905  DB  15,87,255                           ; xorps         %xmm7,%xmm7
9906  DB  72,137,223                          ; mov           %rbx,%rdi
9907  DB  76,137,238                          ; mov           %r13,%rsi
9908  DB  76,137,242                          ; mov           %r14,%rdx
9909  DB  65,255,212                          ; callq         *%r12
9910  DB  72,141,67,4                         ; lea           0x4(%rbx),%rax
9911  DB  72,131,195,8                        ; add           $0x8,%rbx
9912  DB  76,57,251                           ; cmp           %r15,%rbx
9913  DB  72,137,195                          ; mov           %rax,%rbx
9914  DB  118,204                             ; jbe           73 <_sk_start_pipeline_sse41+0x73>
9915  DB  15,40,52,36                         ; movaps        (%rsp),%xmm6
9916  DB  15,40,124,36,16                     ; movaps        0x10(%rsp),%xmm7
9917  DB  68,15,40,68,36,32                   ; movaps        0x20(%rsp),%xmm8
9918  DB  68,15,40,76,36,48                   ; movaps        0x30(%rsp),%xmm9
9919  DB  68,15,40,84,36,64                   ; movaps        0x40(%rsp),%xmm10
9920  DB  68,15,40,92,36,80                   ; movaps        0x50(%rsp),%xmm11
9921  DB  68,15,40,100,36,96                  ; movaps        0x60(%rsp),%xmm12
9922  DB  68,15,40,108,36,112                 ; movaps        0x70(%rsp),%xmm13
9923  DB  68,15,40,180,36,128,0,0,0           ; movaps        0x80(%rsp),%xmm14
9924  DB  68,15,40,188,36,144,0,0,0           ; movaps        0x90(%rsp),%xmm15
9925  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
9926  DB  91                                  ; pop           %rbx
9927  DB  95                                  ; pop           %rdi
9928  DB  94                                  ; pop           %rsi
9929  DB  65,92                               ; pop           %r12
9930  DB  65,93                               ; pop           %r13
9931  DB  65,94                               ; pop           %r14
9932  DB  65,95                               ; pop           %r15
9933  DB  195                                 ; retq
9934
9935PUBLIC _sk_just_return_sse41
9936_sk_just_return_sse41 LABEL PROC
9937  DB  195                                 ; retq
9938
9939PUBLIC _sk_seed_shader_sse41
9940_sk_seed_shader_sse41 LABEL PROC
9941  DB  72,173                              ; lods          %ds:(%rsi),%rax
9942  DB  102,15,110,199                      ; movd          %edi,%xmm0
9943  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
9944  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
9945  DB  15,40,21,193,62,0,0                 ; movaps        0x3ec1(%rip),%xmm2        # 3fd0 <_sk_callback_sse41+0xb4>
9946  DB  15,88,202                           ; addps         %xmm2,%xmm1
9947  DB  15,16,2                             ; movups        (%rdx),%xmm0
9948  DB  15,88,193                           ; addps         %xmm1,%xmm0
9949  DB  102,15,110,8                        ; movd          (%rax),%xmm1
9950  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
9951  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
9952  DB  15,88,202                           ; addps         %xmm2,%xmm1
9953  DB  72,173                              ; lods          %ds:(%rsi),%rax
9954  DB  15,40,21,176,62,0,0                 ; movaps        0x3eb0(%rip),%xmm2        # 3fe0 <_sk_callback_sse41+0xc4>
9955  DB  15,87,219                           ; xorps         %xmm3,%xmm3
9956  DB  15,87,228                           ; xorps         %xmm4,%xmm4
9957  DB  15,87,237                           ; xorps         %xmm5,%xmm5
9958  DB  15,87,246                           ; xorps         %xmm6,%xmm6
9959  DB  15,87,255                           ; xorps         %xmm7,%xmm7
9960  DB  255,224                             ; jmpq          *%rax
9961
9962PUBLIC _sk_constant_color_sse41
9963_sk_constant_color_sse41 LABEL PROC
9964  DB  72,173                              ; lods          %ds:(%rsi),%rax
9965  DB  243,15,16,0                         ; movss         (%rax),%xmm0
9966  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
9967  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
9968  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
9969  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
9970  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
9971  DB  243,15,16,88,12                     ; movss         0xc(%rax),%xmm3
9972  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
9973  DB  72,173                              ; lods          %ds:(%rsi),%rax
9974  DB  255,224                             ; jmpq          *%rax
9975
9976PUBLIC _sk_clear_sse41
9977_sk_clear_sse41 LABEL PROC
9978  DB  72,173                              ; lods          %ds:(%rsi),%rax
9979  DB  15,87,192                           ; xorps         %xmm0,%xmm0
9980  DB  15,87,201                           ; xorps         %xmm1,%xmm1
9981  DB  15,87,210                           ; xorps         %xmm2,%xmm2
9982  DB  15,87,219                           ; xorps         %xmm3,%xmm3
9983  DB  255,224                             ; jmpq          *%rax
9984
9985PUBLIC _sk_srcatop_sse41
9986_sk_srcatop_sse41 LABEL PROC
9987  DB  15,89,199                           ; mulps         %xmm7,%xmm0
9988  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
9989  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
9990  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
9991  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
9992  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
9993  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
9994  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
9995  DB  15,89,207                           ; mulps         %xmm7,%xmm1
9996  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
9997  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
9998  DB  65,15,88,201                        ; addps         %xmm9,%xmm1
9999  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10000  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10001  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10002  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
10003  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10004  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10005  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
10006  DB  72,173                              ; lods          %ds:(%rsi),%rax
10007  DB  255,224                             ; jmpq          *%rax
10008
10009PUBLIC _sk_dstatop_sse41
10010_sk_dstatop_sse41 LABEL PROC
10011  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10012  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
10013  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10014  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
10015  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
10016  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
10017  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
10018  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
10019  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10020  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
10021  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
10022  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
10023  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10024  DB  68,15,89,198                        ; mulps         %xmm6,%xmm8
10025  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
10026  DB  65,15,88,208                        ; addps         %xmm8,%xmm2
10027  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
10028  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10029  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
10030  DB  72,173                              ; lods          %ds:(%rsi),%rax
10031  DB  255,224                             ; jmpq          *%rax
10032
10033PUBLIC _sk_srcin_sse41
10034_sk_srcin_sse41 LABEL PROC
10035  DB  15,89,199                           ; mulps         %xmm7,%xmm0
10036  DB  15,89,207                           ; mulps         %xmm7,%xmm1
10037  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10038  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10039  DB  72,173                              ; lods          %ds:(%rsi),%rax
10040  DB  255,224                             ; jmpq          *%rax
10041
10042PUBLIC _sk_dstin_sse41
10043_sk_dstin_sse41 LABEL PROC
10044  DB  15,40,195                           ; movaps        %xmm3,%xmm0
10045  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10046  DB  15,40,203                           ; movaps        %xmm3,%xmm1
10047  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10048  DB  15,40,211                           ; movaps        %xmm3,%xmm2
10049  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10050  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10051  DB  72,173                              ; lods          %ds:(%rsi),%rax
10052  DB  255,224                             ; jmpq          *%rax
10053
10054PUBLIC _sk_srcout_sse41
10055_sk_srcout_sse41 LABEL PROC
10056  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10057  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10058  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10059  DB  68,15,92,199                        ; subps         %xmm7,%xmm8
10060  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
10061  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
10062  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
10063  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
10064  DB  72,173                              ; lods          %ds:(%rsi),%rax
10065  DB  255,224                             ; jmpq          *%rax
10066
10067PUBLIC _sk_dstout_sse41
10068_sk_dstout_sse41 LABEL PROC
10069  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10070  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10071  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10072  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
10073  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10074  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10075  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10076  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10077  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10078  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10079  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10080  DB  72,173                              ; lods          %ds:(%rsi),%rax
10081  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
10082  DB  255,224                             ; jmpq          *%rax
10083
10084PUBLIC _sk_srcover_sse41
10085_sk_srcover_sse41 LABEL PROC
10086  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10087  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10088  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10089  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
10090  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10091  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
10092  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
10093  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10094  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10095  DB  65,15,88,201                        ; addps         %xmm9,%xmm1
10096  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10097  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10098  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
10099  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10100  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
10101  DB  72,173                              ; lods          %ds:(%rsi),%rax
10102  DB  255,224                             ; jmpq          *%rax
10103
10104PUBLIC _sk_dstover_sse41
10105_sk_dstover_sse41 LABEL PROC
10106  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10107  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10108  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10109  DB  68,15,92,199                        ; subps         %xmm7,%xmm8
10110  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
10111  DB  15,88,196                           ; addps         %xmm4,%xmm0
10112  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
10113  DB  15,88,205                           ; addps         %xmm5,%xmm1
10114  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
10115  DB  15,88,214                           ; addps         %xmm6,%xmm2
10116  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
10117  DB  15,88,223                           ; addps         %xmm7,%xmm3
10118  DB  72,173                              ; lods          %ds:(%rsi),%rax
10119  DB  255,224                             ; jmpq          *%rax
10120
10121PUBLIC _sk_modulate_sse41
10122_sk_modulate_sse41 LABEL PROC
10123  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10124  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10125  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10126  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10127  DB  72,173                              ; lods          %ds:(%rsi),%rax
10128  DB  255,224                             ; jmpq          *%rax
10129
10130PUBLIC _sk_multiply_sse41
10131_sk_multiply_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  69,15,40,200                        ; movaps        %xmm8,%xmm9
10136  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
10137  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
10138  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
10139  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
10140  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
10141  DB  68,15,89,220                        ; mulps         %xmm4,%xmm11
10142  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
10143  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10144  DB  65,15,88,195                        ; addps         %xmm11,%xmm0
10145  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
10146  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
10147  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
10148  DB  68,15,89,221                        ; mulps         %xmm5,%xmm11
10149  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
10150  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10151  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
10152  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
10153  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
10154  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
10155  DB  68,15,89,222                        ; mulps         %xmm6,%xmm11
10156  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
10157  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10158  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
10159  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
10160  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10161  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
10162  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10163  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
10164  DB  72,173                              ; lods          %ds:(%rsi),%rax
10165  DB  255,224                             ; jmpq          *%rax
10166
10167PUBLIC _sk_plus__sse41
10168_sk_plus__sse41 LABEL PROC
10169  DB  15,88,196                           ; addps         %xmm4,%xmm0
10170  DB  15,88,205                           ; addps         %xmm5,%xmm1
10171  DB  15,88,214                           ; addps         %xmm6,%xmm2
10172  DB  15,88,223                           ; addps         %xmm7,%xmm3
10173  DB  72,173                              ; lods          %ds:(%rsi),%rax
10174  DB  255,224                             ; jmpq          *%rax
10175
10176PUBLIC _sk_screen_sse41
10177_sk_screen_sse41 LABEL PROC
10178  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
10179  DB  68,15,88,196                        ; addps         %xmm4,%xmm8
10180  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10181  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
10182  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
10183  DB  68,15,88,205                        ; addps         %xmm5,%xmm9
10184  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10185  DB  68,15,92,201                        ; subps         %xmm1,%xmm9
10186  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
10187  DB  68,15,88,214                        ; addps         %xmm6,%xmm10
10188  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10189  DB  68,15,92,210                        ; subps         %xmm2,%xmm10
10190  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
10191  DB  68,15,88,223                        ; addps         %xmm7,%xmm11
10192  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10193  DB  68,15,92,219                        ; subps         %xmm3,%xmm11
10194  DB  72,173                              ; lods          %ds:(%rsi),%rax
10195  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10196  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
10197  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10198  DB  65,15,40,219                        ; movaps        %xmm11,%xmm3
10199  DB  255,224                             ; jmpq          *%rax
10200
10201PUBLIC _sk_xor__sse41
10202_sk_xor__sse41 LABEL PROC
10203  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10204  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10205  DB  102,15,110,216                      ; movd          %eax,%xmm3
10206  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
10207  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10208  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
10209  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
10210  DB  65,15,92,216                        ; subps         %xmm8,%xmm3
10211  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
10212  DB  68,15,89,212                        ; mulps         %xmm4,%xmm10
10213  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
10214  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
10215  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
10216  DB  68,15,89,213                        ; mulps         %xmm5,%xmm10
10217  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
10218  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
10219  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
10220  DB  68,15,89,214                        ; mulps         %xmm6,%xmm10
10221  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
10222  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
10223  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10224  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
10225  DB  72,173                              ; lods          %ds:(%rsi),%rax
10226  DB  255,224                             ; jmpq          *%rax
10227
10228PUBLIC _sk_darken_sse41
10229_sk_darken_sse41 LABEL PROC
10230  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
10231  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10232  DB  15,88,196                           ; addps         %xmm4,%xmm0
10233  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
10234  DB  15,40,203                           ; movaps        %xmm3,%xmm1
10235  DB  15,89,204                           ; mulps         %xmm4,%xmm1
10236  DB  68,15,95,201                        ; maxps         %xmm1,%xmm9
10237  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
10238  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10239  DB  15,88,205                           ; addps         %xmm5,%xmm1
10240  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10241  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10242  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10243  DB  69,15,95,193                        ; maxps         %xmm9,%xmm8
10244  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
10245  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
10246  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
10247  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10248  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10249  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10250  DB  65,15,95,209                        ; maxps         %xmm9,%xmm2
10251  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
10252  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10253  DB  102,15,110,208                      ; movd          %eax,%xmm2
10254  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10255  DB  15,92,211                           ; subps         %xmm3,%xmm2
10256  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10257  DB  15,88,218                           ; addps         %xmm2,%xmm3
10258  DB  72,173                              ; lods          %ds:(%rsi),%rax
10259  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10260  DB  255,224                             ; jmpq          *%rax
10261
10262PUBLIC _sk_lighten_sse41
10263_sk_lighten_sse41 LABEL PROC
10264  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
10265  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10266  DB  15,88,196                           ; addps         %xmm4,%xmm0
10267  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
10268  DB  15,40,203                           ; movaps        %xmm3,%xmm1
10269  DB  15,89,204                           ; mulps         %xmm4,%xmm1
10270  DB  68,15,93,201                        ; minps         %xmm1,%xmm9
10271  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
10272  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10273  DB  15,88,205                           ; addps         %xmm5,%xmm1
10274  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10275  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10276  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10277  DB  69,15,93,193                        ; minps         %xmm9,%xmm8
10278  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
10279  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
10280  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
10281  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10282  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10283  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10284  DB  65,15,93,209                        ; minps         %xmm9,%xmm2
10285  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
10286  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10287  DB  102,15,110,208                      ; movd          %eax,%xmm2
10288  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10289  DB  15,92,211                           ; subps         %xmm3,%xmm2
10290  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10291  DB  15,88,218                           ; addps         %xmm2,%xmm3
10292  DB  72,173                              ; lods          %ds:(%rsi),%rax
10293  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10294  DB  255,224                             ; jmpq          *%rax
10295
10296PUBLIC _sk_difference_sse41
10297_sk_difference_sse41 LABEL PROC
10298  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
10299  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10300  DB  15,88,196                           ; addps         %xmm4,%xmm0
10301  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
10302  DB  15,40,203                           ; movaps        %xmm3,%xmm1
10303  DB  15,89,204                           ; mulps         %xmm4,%xmm1
10304  DB  68,15,93,201                        ; minps         %xmm1,%xmm9
10305  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
10306  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
10307  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10308  DB  15,88,205                           ; addps         %xmm5,%xmm1
10309  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10310  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10311  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10312  DB  69,15,93,193                        ; minps         %xmm9,%xmm8
10313  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
10314  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
10315  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
10316  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
10317  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10318  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10319  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10320  DB  65,15,93,209                        ; minps         %xmm9,%xmm2
10321  DB  15,88,210                           ; addps         %xmm2,%xmm2
10322  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
10323  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10324  DB  102,15,110,208                      ; movd          %eax,%xmm2
10325  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10326  DB  15,92,211                           ; subps         %xmm3,%xmm2
10327  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10328  DB  15,88,218                           ; addps         %xmm2,%xmm3
10329  DB  72,173                              ; lods          %ds:(%rsi),%rax
10330  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10331  DB  255,224                             ; jmpq          *%rax
10332
10333PUBLIC _sk_exclusion_sse41
10334_sk_exclusion_sse41 LABEL PROC
10335  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
10336  DB  15,40,200                           ; movaps        %xmm0,%xmm1
10337  DB  15,88,196                           ; addps         %xmm4,%xmm0
10338  DB  15,89,204                           ; mulps         %xmm4,%xmm1
10339  DB  15,88,201                           ; addps         %xmm1,%xmm1
10340  DB  15,92,193                           ; subps         %xmm1,%xmm0
10341  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10342  DB  15,88,205                           ; addps         %xmm5,%xmm1
10343  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
10344  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
10345  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
10346  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
10347  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
10348  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10349  DB  15,88,210                           ; addps         %xmm2,%xmm2
10350  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
10351  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10352  DB  102,15,110,208                      ; movd          %eax,%xmm2
10353  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10354  DB  15,92,211                           ; subps         %xmm3,%xmm2
10355  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10356  DB  15,88,218                           ; addps         %xmm2,%xmm3
10357  DB  72,173                              ; lods          %ds:(%rsi),%rax
10358  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10359  DB  255,224                             ; jmpq          *%rax
10360
10361PUBLIC _sk_colorburn_sse41
10362_sk_colorburn_sse41 LABEL PROC
10363  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10364  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10365  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
10366  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
10367  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
10368  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
10369  DB  69,15,40,227                        ; movaps        %xmm11,%xmm12
10370  DB  69,15,89,225                        ; mulps         %xmm9,%xmm12
10371  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
10372  DB  15,40,199                           ; movaps        %xmm7,%xmm0
10373  DB  15,92,196                           ; subps         %xmm4,%xmm0
10374  DB  15,89,195                           ; mulps         %xmm3,%xmm0
10375  DB  65,15,94,193                        ; divps         %xmm9,%xmm0
10376  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10377  DB  68,15,93,232                        ; minps         %xmm0,%xmm13
10378  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10379  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
10380  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10381  DB  65,15,194,192,0                     ; cmpeqps       %xmm8,%xmm0
10382  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
10383  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
10384  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
10385  DB  102,69,15,56,20,241                 ; blendvps      %xmm0,%xmm9,%xmm14
10386  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
10387  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
10388  DB  68,15,88,228                        ; addps         %xmm4,%xmm12
10389  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10390  DB  15,194,199,0                        ; cmpeqps       %xmm7,%xmm0
10391  DB  69,15,88,206                        ; addps         %xmm14,%xmm9
10392  DB  102,69,15,56,20,204                 ; blendvps      %xmm0,%xmm12,%xmm9
10393  DB  69,15,40,227                        ; movaps        %xmm11,%xmm12
10394  DB  68,15,89,225                        ; mulps         %xmm1,%xmm12
10395  DB  15,40,199                           ; movaps        %xmm7,%xmm0
10396  DB  15,92,197                           ; subps         %xmm5,%xmm0
10397  DB  15,89,195                           ; mulps         %xmm3,%xmm0
10398  DB  15,94,193                           ; divps         %xmm1,%xmm0
10399  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10400  DB  68,15,93,232                        ; minps         %xmm0,%xmm13
10401  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10402  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
10403  DB  15,40,193                           ; movaps        %xmm1,%xmm0
10404  DB  65,15,194,192,0                     ; cmpeqps       %xmm8,%xmm0
10405  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
10406  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
10407  DB  102,68,15,56,20,241                 ; blendvps      %xmm0,%xmm1,%xmm14
10408  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
10409  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10410  DB  68,15,88,229                        ; addps         %xmm5,%xmm12
10411  DB  65,15,88,206                        ; addps         %xmm14,%xmm1
10412  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10413  DB  15,194,199,0                        ; cmpeqps       %xmm7,%xmm0
10414  DB  102,65,15,56,20,204                 ; blendvps      %xmm0,%xmm12,%xmm1
10415  DB  15,40,199                           ; movaps        %xmm7,%xmm0
10416  DB  15,92,198                           ; subps         %xmm6,%xmm0
10417  DB  15,89,195                           ; mulps         %xmm3,%xmm0
10418  DB  15,94,194                           ; divps         %xmm2,%xmm0
10419  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
10420  DB  68,15,93,224                        ; minps         %xmm0,%xmm12
10421  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10422  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
10423  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
10424  DB  68,15,194,194,0                     ; cmpeqps       %xmm2,%xmm8
10425  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
10426  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
10427  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10428  DB  102,68,15,56,20,234                 ; blendvps      %xmm0,%xmm2,%xmm13
10429  DB  68,15,88,222                        ; addps         %xmm6,%xmm11
10430  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10431  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10432  DB  65,15,88,213                        ; addps         %xmm13,%xmm2
10433  DB  15,40,198                           ; movaps        %xmm6,%xmm0
10434  DB  15,194,199,0                        ; cmpeqps       %xmm7,%xmm0
10435  DB  102,65,15,56,20,211                 ; blendvps      %xmm0,%xmm11,%xmm2
10436  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10437  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
10438  DB  72,173                              ; lods          %ds:(%rsi),%rax
10439  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10440  DB  255,224                             ; jmpq          *%rax
10441
10442PUBLIC _sk_colordodge_sse41
10443_sk_colordodge_sse41 LABEL PROC
10444  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
10445  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10446  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
10447  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
10448  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
10449  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
10450  DB  69,15,40,227                        ; movaps        %xmm11,%xmm12
10451  DB  69,15,89,224                        ; mulps         %xmm8,%xmm12
10452  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10453  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
10454  DB  15,40,195                           ; movaps        %xmm3,%xmm0
10455  DB  65,15,92,192                        ; subps         %xmm8,%xmm0
10456  DB  68,15,94,200                        ; divps         %xmm0,%xmm9
10457  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10458  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10459  DB  69,15,93,241                        ; minps         %xmm9,%xmm14
10460  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10461  DB  15,194,195,0                        ; cmpeqps       %xmm3,%xmm0
10462  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
10463  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
10464  DB  102,69,15,56,20,240                 ; blendvps      %xmm0,%xmm8,%xmm14
10465  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
10466  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
10467  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
10468  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
10469  DB  68,15,88,228                        ; addps         %xmm4,%xmm12
10470  DB  69,15,88,198                        ; addps         %xmm14,%xmm8
10471  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10472  DB  65,15,194,193,0                     ; cmpeqps       %xmm9,%xmm0
10473  DB  102,69,15,56,20,196                 ; blendvps      %xmm0,%xmm12,%xmm8
10474  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
10475  DB  68,15,89,229                        ; mulps         %xmm5,%xmm12
10476  DB  15,40,195                           ; movaps        %xmm3,%xmm0
10477  DB  15,92,193                           ; subps         %xmm1,%xmm0
10478  DB  68,15,94,224                        ; divps         %xmm0,%xmm12
10479  DB  69,15,40,243                        ; movaps        %xmm11,%xmm14
10480  DB  68,15,89,241                        ; mulps         %xmm1,%xmm14
10481  DB  69,15,93,236                        ; minps         %xmm12,%xmm13
10482  DB  15,40,193                           ; movaps        %xmm1,%xmm0
10483  DB  15,194,195,0                        ; cmpeqps       %xmm3,%xmm0
10484  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
10485  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
10486  DB  102,68,15,56,20,233                 ; blendvps      %xmm0,%xmm1,%xmm13
10487  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
10488  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10489  DB  68,15,88,245                        ; addps         %xmm5,%xmm14
10490  DB  65,15,88,205                        ; addps         %xmm13,%xmm1
10491  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10492  DB  65,15,194,193,0                     ; cmpeqps       %xmm9,%xmm0
10493  DB  102,65,15,56,20,206                 ; blendvps      %xmm0,%xmm14,%xmm1
10494  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
10495  DB  68,15,89,230                        ; mulps         %xmm6,%xmm12
10496  DB  15,40,195                           ; movaps        %xmm3,%xmm0
10497  DB  15,92,194                           ; subps         %xmm2,%xmm0
10498  DB  68,15,94,224                        ; divps         %xmm0,%xmm12
10499  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10500  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
10501  DB  69,15,93,236                        ; minps         %xmm12,%xmm13
10502  DB  15,40,194                           ; movaps        %xmm2,%xmm0
10503  DB  15,194,195,0                        ; cmpeqps       %xmm3,%xmm0
10504  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
10505  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
10506  DB  102,68,15,56,20,234                 ; blendvps      %xmm0,%xmm2,%xmm13
10507  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10508  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10509  DB  65,15,88,213                        ; addps         %xmm13,%xmm2
10510  DB  68,15,194,206,0                     ; cmpeqps       %xmm6,%xmm9
10511  DB  68,15,88,222                        ; addps         %xmm6,%xmm11
10512  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10513  DB  102,65,15,56,20,211                 ; blendvps      %xmm0,%xmm11,%xmm2
10514  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10515  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
10516  DB  72,173                              ; lods          %ds:(%rsi),%rax
10517  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10518  DB  255,224                             ; jmpq          *%rax
10519
10520PUBLIC _sk_hardlight_sse41
10521_sk_hardlight_sse41 LABEL PROC
10522  DB  72,131,236,24                       ; sub           $0x18,%rsp
10523  DB  15,41,52,36                         ; movaps        %xmm6,(%rsp)
10524  DB  68,15,40,229                        ; movaps        %xmm5,%xmm12
10525  DB  15,40,244                           ; movaps        %xmm4,%xmm6
10526  DB  15,40,227                           ; movaps        %xmm3,%xmm4
10527  DB  15,40,234                           ; movaps        %xmm2,%xmm5
10528  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10529  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10530  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
10531  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
10532  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10533  DB  15,92,215                           ; subps         %xmm7,%xmm2
10534  DB  15,40,194                           ; movaps        %xmm2,%xmm0
10535  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
10536  DB  68,15,92,212                        ; subps         %xmm4,%xmm10
10537  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
10538  DB  68,15,89,198                        ; mulps         %xmm6,%xmm8
10539  DB  68,15,88,192                        ; addps         %xmm0,%xmm8
10540  DB  68,15,40,252                        ; movaps        %xmm4,%xmm15
10541  DB  69,15,92,249                        ; subps         %xmm9,%xmm15
10542  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10543  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10544  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10545  DB  15,40,199                           ; movaps        %xmm7,%xmm0
10546  DB  15,92,198                           ; subps         %xmm6,%xmm0
10547  DB  65,15,89,199                        ; mulps         %xmm15,%xmm0
10548  DB  15,88,192                           ; addps         %xmm0,%xmm0
10549  DB  68,15,40,251                        ; movaps        %xmm3,%xmm15
10550  DB  68,15,92,248                        ; subps         %xmm0,%xmm15
10551  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10552  DB  15,88,192                           ; addps         %xmm0,%xmm0
10553  DB  15,194,196,2                        ; cmpleps       %xmm4,%xmm0
10554  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10555  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
10556  DB  102,69,15,56,20,249                 ; blendvps      %xmm0,%xmm9,%xmm15
10557  DB  68,15,40,218                        ; movaps        %xmm2,%xmm11
10558  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
10559  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10560  DB  15,92,193                           ; subps         %xmm1,%xmm0
10561  DB  69,15,40,204                        ; movaps        %xmm12,%xmm9
10562  DB  69,15,92,233                        ; subps         %xmm9,%xmm13
10563  DB  68,15,89,232                        ; mulps         %xmm0,%xmm13
10564  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
10565  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
10566  DB  69,15,92,229                        ; subps         %xmm13,%xmm12
10567  DB  15,40,193                           ; movaps        %xmm1,%xmm0
10568  DB  15,88,192                           ; addps         %xmm0,%xmm0
10569  DB  15,194,196,2                        ; cmpleps       %xmm4,%xmm0
10570  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
10571  DB  69,15,40,233                        ; movaps        %xmm9,%xmm13
10572  DB  15,88,201                           ; addps         %xmm1,%xmm1
10573  DB  102,68,15,56,20,225                 ; blendvps      %xmm0,%xmm1,%xmm12
10574  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
10575  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
10576  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10577  DB  69,15,88,199                        ; addps         %xmm15,%xmm8
10578  DB  65,15,89,205                        ; mulps         %xmm13,%xmm1
10579  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
10580  DB  65,15,88,204                        ; addps         %xmm12,%xmm1
10581  DB  15,89,213                           ; mulps         %xmm5,%xmm2
10582  DB  68,15,40,28,36                      ; movaps        (%rsp),%xmm11
10583  DB  69,15,89,203                        ; mulps         %xmm11,%xmm9
10584  DB  68,15,88,202                        ; addps         %xmm2,%xmm9
10585  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10586  DB  15,88,192                           ; addps         %xmm0,%xmm0
10587  DB  15,194,196,2                        ; cmpleps       %xmm4,%xmm0
10588  DB  15,40,212                           ; movaps        %xmm4,%xmm2
10589  DB  15,92,213                           ; subps         %xmm5,%xmm2
10590  DB  65,15,89,235                        ; mulps         %xmm11,%xmm5
10591  DB  15,88,237                           ; addps         %xmm5,%xmm5
10592  DB  69,15,92,243                        ; subps         %xmm11,%xmm14
10593  DB  68,15,89,242                        ; mulps         %xmm2,%xmm14
10594  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
10595  DB  65,15,92,222                        ; subps         %xmm14,%xmm3
10596  DB  102,15,56,20,221                    ; blendvps      %xmm0,%xmm5,%xmm3
10597  DB  68,15,88,203                        ; addps         %xmm3,%xmm9
10598  DB  65,15,88,226                        ; addps         %xmm10,%xmm4
10599  DB  72,173                              ; lods          %ds:(%rsi),%rax
10600  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10601  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
10602  DB  15,40,220                           ; movaps        %xmm4,%xmm3
10603  DB  15,40,230                           ; movaps        %xmm6,%xmm4
10604  DB  65,15,40,237                        ; movaps        %xmm13,%xmm5
10605  DB  65,15,40,243                        ; movaps        %xmm11,%xmm6
10606  DB  72,131,196,24                       ; add           $0x18,%rsp
10607  DB  255,224                             ; jmpq          *%rax
10608
10609PUBLIC _sk_overlay_sse41
10610_sk_overlay_sse41 LABEL PROC
10611  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
10612  DB  68,15,40,240                        ; movaps        %xmm0,%xmm14
10613  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10614  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
10615  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
10616  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
10617  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
10618  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
10619  DB  65,15,89,198                        ; mulps         %xmm14,%xmm0
10620  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
10621  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
10622  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
10623  DB  68,15,88,192                        ; addps         %xmm0,%xmm8
10624  DB  68,15,40,235                        ; movaps        %xmm3,%xmm13
10625  DB  69,15,92,238                        ; subps         %xmm14,%xmm13
10626  DB  68,15,89,244                        ; mulps         %xmm4,%xmm14
10627  DB  15,40,207                           ; movaps        %xmm7,%xmm1
10628  DB  15,92,204                           ; subps         %xmm4,%xmm1
10629  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10630  DB  15,88,192                           ; addps         %xmm0,%xmm0
10631  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10632  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
10633  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
10634  DB  68,15,89,231                        ; mulps         %xmm7,%xmm12
10635  DB  65,15,89,205                        ; mulps         %xmm13,%xmm1
10636  DB  15,88,201                           ; addps         %xmm1,%xmm1
10637  DB  69,15,40,236                        ; movaps        %xmm12,%xmm13
10638  DB  68,15,92,233                        ; subps         %xmm1,%xmm13
10639  DB  102,69,15,56,20,238                 ; blendvps      %xmm0,%xmm14,%xmm13
10640  DB  69,15,88,197                        ; addps         %xmm13,%xmm8
10641  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
10642  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
10643  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
10644  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10645  DB  15,88,200                           ; addps         %xmm0,%xmm1
10646  DB  68,15,40,235                        ; movaps        %xmm3,%xmm13
10647  DB  69,15,92,233                        ; subps         %xmm9,%xmm13
10648  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10649  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10650  DB  68,15,92,245                        ; subps         %xmm5,%xmm14
10651  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10652  DB  15,88,192                           ; addps         %xmm0,%xmm0
10653  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10654  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
10655  DB  69,15,89,245                        ; mulps         %xmm13,%xmm14
10656  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
10657  DB  69,15,40,236                        ; movaps        %xmm12,%xmm13
10658  DB  69,15,92,238                        ; subps         %xmm14,%xmm13
10659  DB  102,69,15,56,20,233                 ; blendvps      %xmm0,%xmm9,%xmm13
10660  DB  65,15,88,205                        ; addps         %xmm13,%xmm1
10661  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
10662  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
10663  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10664  DB  69,15,88,203                        ; addps         %xmm11,%xmm9
10665  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
10666  DB  68,15,92,218                        ; subps         %xmm2,%xmm11
10667  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10668  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10669  DB  68,15,92,238                        ; subps         %xmm6,%xmm13
10670  DB  15,40,198                           ; movaps        %xmm6,%xmm0
10671  DB  15,88,192                           ; addps         %xmm0,%xmm0
10672  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10673  DB  15,88,210                           ; addps         %xmm2,%xmm2
10674  DB  69,15,89,235                        ; mulps         %xmm11,%xmm13
10675  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
10676  DB  69,15,92,229                        ; subps         %xmm13,%xmm12
10677  DB  102,68,15,56,20,226                 ; blendvps      %xmm0,%xmm2,%xmm12
10678  DB  69,15,88,204                        ; addps         %xmm12,%xmm9
10679  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10680  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
10681  DB  72,173                              ; lods          %ds:(%rsi),%rax
10682  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10683  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
10684  DB  255,224                             ; jmpq          *%rax
10685
10686PUBLIC _sk_softlight_sse41
10687_sk_softlight_sse41 LABEL PROC
10688  DB  72,131,236,56                       ; sub           $0x38,%rsp
10689  DB  15,41,116,36,16                     ; movaps        %xmm6,0x10(%rsp)
10690  DB  15,40,244                           ; movaps        %xmm4,%xmm6
10691  DB  15,41,84,36,32                      ; movaps        %xmm2,0x20(%rsp)
10692  DB  68,15,40,225                        ; movaps        %xmm1,%xmm12
10693  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
10694  DB  15,87,228                           ; xorps         %xmm4,%xmm4
10695  DB  15,194,231,1                        ; cmpltps       %xmm7,%xmm4
10696  DB  15,40,198                           ; movaps        %xmm6,%xmm0
10697  DB  15,94,199                           ; divps         %xmm7,%xmm0
10698  DB  15,84,196                           ; andps         %xmm4,%xmm0
10699  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10700  DB  102,15,110,200                      ; movd          %eax,%xmm1
10701  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
10702  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
10703  DB  68,15,92,208                        ; subps         %xmm0,%xmm10
10704  DB  68,15,40,240                        ; movaps        %xmm0,%xmm14
10705  DB  68,15,40,248                        ; movaps        %xmm0,%xmm15
10706  DB  15,82,208                           ; rsqrtps       %xmm0,%xmm2
10707  DB  68,15,83,218                        ; rcpps         %xmm2,%xmm11
10708  DB  68,15,92,216                        ; subps         %xmm0,%xmm11
10709  DB  15,88,192                           ; addps         %xmm0,%xmm0
10710  DB  15,88,192                           ; addps         %xmm0,%xmm0
10711  DB  15,40,208                           ; movaps        %xmm0,%xmm2
10712  DB  15,89,210                           ; mulps         %xmm2,%xmm2
10713  DB  15,88,208                           ; addps         %xmm0,%xmm2
10714  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10715  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
10716  DB  68,15,92,241                        ; subps         %xmm1,%xmm14
10717  DB  68,15,89,242                        ; mulps         %xmm2,%xmm14
10718  DB  184,0,0,224,64                      ; mov           $0x40e00000,%eax
10719  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
10720  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
10721  DB  69,15,89,253                        ; mulps         %xmm13,%xmm15
10722  DB  69,15,88,254                        ; addps         %xmm14,%xmm15
10723  DB  15,40,198                           ; movaps        %xmm6,%xmm0
10724  DB  15,88,192                           ; addps         %xmm0,%xmm0
10725  DB  15,88,192                           ; addps         %xmm0,%xmm0
10726  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10727  DB  102,69,15,56,20,223                 ; blendvps      %xmm0,%xmm15,%xmm11
10728  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10729  DB  15,92,195                           ; subps         %xmm3,%xmm0
10730  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
10731  DB  68,15,88,211                        ; addps         %xmm3,%xmm10
10732  DB  68,15,89,214                        ; mulps         %xmm6,%xmm10
10733  DB  15,40,211                           ; movaps        %xmm3,%xmm2
10734  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10735  DB  15,89,199                           ; mulps         %xmm7,%xmm0
10736  DB  68,15,89,216                        ; mulps         %xmm0,%xmm11
10737  DB  68,15,88,218                        ; addps         %xmm2,%xmm11
10738  DB  68,15,194,203,2                     ; cmpleps       %xmm3,%xmm9
10739  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10740  DB  102,69,15,56,20,218                 ; blendvps      %xmm0,%xmm10,%xmm11
10741  DB  68,15,40,213                        ; movaps        %xmm5,%xmm10
10742  DB  68,15,94,215                        ; divps         %xmm7,%xmm10
10743  DB  68,15,84,212                        ; andps         %xmm4,%xmm10
10744  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
10745  DB  69,15,92,202                        ; subps         %xmm10,%xmm9
10746  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10747  DB  15,88,210                           ; addps         %xmm2,%xmm2
10748  DB  15,88,210                           ; addps         %xmm2,%xmm2
10749  DB  15,40,194                           ; movaps        %xmm2,%xmm0
10750  DB  15,89,192                           ; mulps         %xmm0,%xmm0
10751  DB  15,88,194                           ; addps         %xmm2,%xmm0
10752  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10753  DB  15,92,209                           ; subps         %xmm1,%xmm2
10754  DB  15,89,208                           ; mulps         %xmm0,%xmm2
10755  DB  65,15,82,194                        ; rsqrtps       %xmm10,%xmm0
10756  DB  68,15,83,240                        ; rcpps         %xmm0,%xmm14
10757  DB  69,15,92,242                        ; subps         %xmm10,%xmm14
10758  DB  69,15,89,213                        ; mulps         %xmm13,%xmm10
10759  DB  68,15,88,210                        ; addps         %xmm2,%xmm10
10760  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10761  DB  15,88,192                           ; addps         %xmm0,%xmm0
10762  DB  15,88,192                           ; addps         %xmm0,%xmm0
10763  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10764  DB  102,69,15,56,20,242                 ; blendvps      %xmm0,%xmm10,%xmm14
10765  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
10766  DB  15,88,192                           ; addps         %xmm0,%xmm0
10767  DB  15,40,208                           ; movaps        %xmm0,%xmm2
10768  DB  15,92,211                           ; subps         %xmm3,%xmm2
10769  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
10770  DB  68,15,88,203                        ; addps         %xmm3,%xmm9
10771  DB  15,41,44,36                         ; movaps        %xmm5,(%rsp)
10772  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10773  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10774  DB  68,15,89,242                        ; mulps         %xmm2,%xmm14
10775  DB  15,40,211                           ; movaps        %xmm3,%xmm2
10776  DB  15,89,213                           ; mulps         %xmm5,%xmm2
10777  DB  68,15,88,242                        ; addps         %xmm2,%xmm14
10778  DB  68,15,40,249                        ; movaps        %xmm1,%xmm15
10779  DB  15,194,195,2                        ; cmpleps       %xmm3,%xmm0
10780  DB  102,69,15,56,20,241                 ; blendvps      %xmm0,%xmm9,%xmm14
10781  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
10782  DB  15,40,108,36,16                     ; movaps        0x10(%rsp),%xmm5
10783  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10784  DB  15,94,199                           ; divps         %xmm7,%xmm0
10785  DB  15,84,196                           ; andps         %xmm4,%xmm0
10786  DB  15,40,208                           ; movaps        %xmm0,%xmm2
10787  DB  15,92,209                           ; subps         %xmm1,%xmm2
10788  DB  15,92,200                           ; subps         %xmm0,%xmm1
10789  DB  68,15,89,232                        ; mulps         %xmm0,%xmm13
10790  DB  15,82,224                           ; rsqrtps       %xmm0,%xmm4
10791  DB  68,15,83,204                        ; rcpps         %xmm4,%xmm9
10792  DB  68,15,92,200                        ; subps         %xmm0,%xmm9
10793  DB  15,88,192                           ; addps         %xmm0,%xmm0
10794  DB  15,88,192                           ; addps         %xmm0,%xmm0
10795  DB  15,40,224                           ; movaps        %xmm0,%xmm4
10796  DB  15,89,228                           ; mulps         %xmm4,%xmm4
10797  DB  15,88,224                           ; addps         %xmm0,%xmm4
10798  DB  15,89,226                           ; mulps         %xmm2,%xmm4
10799  DB  68,15,88,236                        ; addps         %xmm4,%xmm13
10800  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10801  DB  15,88,192                           ; addps         %xmm0,%xmm0
10802  DB  15,88,192                           ; addps         %xmm0,%xmm0
10803  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10804  DB  102,69,15,56,20,205                 ; blendvps      %xmm0,%xmm13,%xmm9
10805  DB  68,15,40,108,36,32                  ; movaps        0x20(%rsp),%xmm13
10806  DB  65,15,40,197                        ; movaps        %xmm13,%xmm0
10807  DB  15,88,192                           ; addps         %xmm0,%xmm0
10808  DB  15,40,208                           ; movaps        %xmm0,%xmm2
10809  DB  15,92,211                           ; subps         %xmm3,%xmm2
10810  DB  15,89,202                           ; mulps         %xmm2,%xmm1
10811  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10812  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
10813  DB  15,40,211                           ; movaps        %xmm3,%xmm2
10814  DB  15,89,213                           ; mulps         %xmm5,%xmm2
10815  DB  68,15,88,202                        ; addps         %xmm2,%xmm9
10816  DB  15,88,203                           ; addps         %xmm3,%xmm1
10817  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10818  DB  15,40,213                           ; movaps        %xmm5,%xmm2
10819  DB  15,194,195,2                        ; cmpleps       %xmm3,%xmm0
10820  DB  102,68,15,56,20,201                 ; blendvps      %xmm0,%xmm1,%xmm9
10821  DB  68,15,92,255                        ; subps         %xmm7,%xmm15
10822  DB  69,15,89,199                        ; mulps         %xmm15,%xmm8
10823  DB  69,15,89,231                        ; mulps         %xmm15,%xmm12
10824  DB  69,15,89,253                        ; mulps         %xmm13,%xmm15
10825  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
10826  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
10827  DB  15,89,198                           ; mulps         %xmm6,%xmm0
10828  DB  68,15,88,192                        ; addps         %xmm0,%xmm8
10829  DB  69,15,88,195                        ; addps         %xmm11,%xmm8
10830  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
10831  DB  15,40,44,36                         ; movaps        (%rsp),%xmm5
10832  DB  15,89,197                           ; mulps         %xmm5,%xmm0
10833  DB  68,15,88,224                        ; addps         %xmm0,%xmm12
10834  DB  69,15,88,230                        ; addps         %xmm14,%xmm12
10835  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
10836  DB  15,89,194                           ; mulps         %xmm2,%xmm0
10837  DB  65,15,88,199                        ; addps         %xmm15,%xmm0
10838  DB  68,15,88,200                        ; addps         %xmm0,%xmm9
10839  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10840  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
10841  DB  72,173                              ; lods          %ds:(%rsi),%rax
10842  DB  15,40,230                           ; movaps        %xmm6,%xmm4
10843  DB  15,40,242                           ; movaps        %xmm2,%xmm6
10844  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10845  DB  65,15,40,204                        ; movaps        %xmm12,%xmm1
10846  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
10847  DB  72,131,196,56                       ; add           $0x38,%rsp
10848  DB  255,224                             ; jmpq          *%rax
10849
10850PUBLIC _sk_clamp_0_sse41
10851_sk_clamp_0_sse41 LABEL PROC
10852  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
10853  DB  65,15,95,192                        ; maxps         %xmm8,%xmm0
10854  DB  65,15,95,200                        ; maxps         %xmm8,%xmm1
10855  DB  65,15,95,208                        ; maxps         %xmm8,%xmm2
10856  DB  65,15,95,216                        ; maxps         %xmm8,%xmm3
10857  DB  72,173                              ; lods          %ds:(%rsi),%rax
10858  DB  255,224                             ; jmpq          *%rax
10859
10860PUBLIC _sk_clamp_1_sse41
10861_sk_clamp_1_sse41 LABEL PROC
10862  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10863  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10864  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10865  DB  65,15,93,192                        ; minps         %xmm8,%xmm0
10866  DB  65,15,93,200                        ; minps         %xmm8,%xmm1
10867  DB  65,15,93,208                        ; minps         %xmm8,%xmm2
10868  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
10869  DB  72,173                              ; lods          %ds:(%rsi),%rax
10870  DB  255,224                             ; jmpq          *%rax
10871
10872PUBLIC _sk_clamp_a_sse41
10873_sk_clamp_a_sse41 LABEL PROC
10874  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10875  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10876  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10877  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
10878  DB  15,93,195                           ; minps         %xmm3,%xmm0
10879  DB  15,93,203                           ; minps         %xmm3,%xmm1
10880  DB  15,93,211                           ; minps         %xmm3,%xmm2
10881  DB  72,173                              ; lods          %ds:(%rsi),%rax
10882  DB  255,224                             ; jmpq          *%rax
10883
10884PUBLIC _sk_set_rgb_sse41
10885_sk_set_rgb_sse41 LABEL PROC
10886  DB  72,173                              ; lods          %ds:(%rsi),%rax
10887  DB  243,15,16,0                         ; movss         (%rax),%xmm0
10888  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
10889  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
10890  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
10891  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
10892  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10893  DB  72,173                              ; lods          %ds:(%rsi),%rax
10894  DB  255,224                             ; jmpq          *%rax
10895
10896PUBLIC _sk_swap_rb_sse41
10897_sk_swap_rb_sse41 LABEL PROC
10898  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
10899  DB  72,173                              ; lods          %ds:(%rsi),%rax
10900  DB  15,40,194                           ; movaps        %xmm2,%xmm0
10901  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10902  DB  255,224                             ; jmpq          *%rax
10903
10904PUBLIC _sk_swap_sse41
10905_sk_swap_sse41 LABEL PROC
10906  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10907  DB  68,15,40,202                        ; movaps        %xmm2,%xmm9
10908  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
10909  DB  68,15,40,216                        ; movaps        %xmm0,%xmm11
10910  DB  72,173                              ; lods          %ds:(%rsi),%rax
10911  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10912  DB  15,40,205                           ; movaps        %xmm5,%xmm1
10913  DB  15,40,214                           ; movaps        %xmm6,%xmm2
10914  DB  15,40,223                           ; movaps        %xmm7,%xmm3
10915  DB  65,15,40,227                        ; movaps        %xmm11,%xmm4
10916  DB  65,15,40,234                        ; movaps        %xmm10,%xmm5
10917  DB  65,15,40,241                        ; movaps        %xmm9,%xmm6
10918  DB  65,15,40,248                        ; movaps        %xmm8,%xmm7
10919  DB  255,224                             ; jmpq          *%rax
10920
10921PUBLIC _sk_move_src_dst_sse41
10922_sk_move_src_dst_sse41 LABEL PROC
10923  DB  72,173                              ; lods          %ds:(%rsi),%rax
10924  DB  15,40,224                           ; movaps        %xmm0,%xmm4
10925  DB  15,40,233                           ; movaps        %xmm1,%xmm5
10926  DB  15,40,242                           ; movaps        %xmm2,%xmm6
10927  DB  15,40,251                           ; movaps        %xmm3,%xmm7
10928  DB  255,224                             ; jmpq          *%rax
10929
10930PUBLIC _sk_move_dst_src_sse41
10931_sk_move_dst_src_sse41 LABEL PROC
10932  DB  72,173                              ; lods          %ds:(%rsi),%rax
10933  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10934  DB  15,40,205                           ; movaps        %xmm5,%xmm1
10935  DB  15,40,214                           ; movaps        %xmm6,%xmm2
10936  DB  15,40,223                           ; movaps        %xmm7,%xmm3
10937  DB  255,224                             ; jmpq          *%rax
10938
10939PUBLIC _sk_premul_sse41
10940_sk_premul_sse41 LABEL PROC
10941  DB  15,89,195                           ; mulps         %xmm3,%xmm0
10942  DB  15,89,203                           ; mulps         %xmm3,%xmm1
10943  DB  15,89,211                           ; mulps         %xmm3,%xmm2
10944  DB  72,173                              ; lods          %ds:(%rsi),%rax
10945  DB  255,224                             ; jmpq          *%rax
10946
10947PUBLIC _sk_unpremul_sse41
10948_sk_unpremul_sse41 LABEL PROC
10949  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
10950  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10951  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
10952  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
10953  DB  68,15,94,203                        ; divps         %xmm3,%xmm9
10954  DB  68,15,194,195,4                     ; cmpneqps      %xmm3,%xmm8
10955  DB  69,15,84,193                        ; andps         %xmm9,%xmm8
10956  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
10957  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
10958  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
10959  DB  72,173                              ; lods          %ds:(%rsi),%rax
10960  DB  255,224                             ; jmpq          *%rax
10961
10962PUBLIC _sk_from_srgb_sse41
10963_sk_from_srgb_sse41 LABEL PROC
10964  DB  184,145,131,158,61                  ; mov           $0x3d9e8391,%eax
10965  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
10966  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
10967  DB  69,15,40,211                        ; movaps        %xmm11,%xmm10
10968  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
10969  DB  68,15,40,240                        ; movaps        %xmm0,%xmm14
10970  DB  69,15,89,246                        ; mulps         %xmm14,%xmm14
10971  DB  184,154,153,153,62                  ; mov           $0x3e99999a,%eax
10972  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10973  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10974  DB  184,92,143,50,63                    ; mov           $0x3f328f5c,%eax
10975  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
10976  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
10977  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10978  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
10979  DB  69,15,88,204                        ; addps         %xmm12,%xmm9
10980  DB  184,10,215,35,59                    ; mov           $0x3b23d70a,%eax
10981  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
10982  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
10983  DB  69,15,89,206                        ; mulps         %xmm14,%xmm9
10984  DB  69,15,88,205                        ; addps         %xmm13,%xmm9
10985  DB  184,174,71,97,61                    ; mov           $0x3d6147ae,%eax
10986  DB  102,68,15,110,240                   ; movd          %eax,%xmm14
10987  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
10988  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
10989  DB  102,69,15,56,20,202                 ; blendvps      %xmm0,%xmm10,%xmm9
10990  DB  69,15,40,251                        ; movaps        %xmm11,%xmm15
10991  DB  68,15,89,249                        ; mulps         %xmm1,%xmm15
10992  DB  15,40,193                           ; movaps        %xmm1,%xmm0
10993  DB  15,89,192                           ; mulps         %xmm0,%xmm0
10994  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
10995  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
10996  DB  69,15,88,212                        ; addps         %xmm12,%xmm10
10997  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
10998  DB  69,15,88,213                        ; addps         %xmm13,%xmm10
10999  DB  65,15,194,206,1                     ; cmpltps       %xmm14,%xmm1
11000  DB  15,40,193                           ; movaps        %xmm1,%xmm0
11001  DB  102,69,15,56,20,215                 ; blendvps      %xmm0,%xmm15,%xmm10
11002  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
11003  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11004  DB  15,89,192                           ; mulps         %xmm0,%xmm0
11005  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
11006  DB  69,15,88,196                        ; addps         %xmm12,%xmm8
11007  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
11008  DB  69,15,88,197                        ; addps         %xmm13,%xmm8
11009  DB  65,15,194,214,1                     ; cmpltps       %xmm14,%xmm2
11010  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11011  DB  102,69,15,56,20,195                 ; blendvps      %xmm0,%xmm11,%xmm8
11012  DB  72,173                              ; lods          %ds:(%rsi),%rax
11013  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
11014  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
11015  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
11016  DB  255,224                             ; jmpq          *%rax
11017
11018PUBLIC _sk_to_srgb_sse41
11019_sk_to_srgb_sse41 LABEL PROC
11020  DB  72,131,236,24                       ; sub           $0x18,%rsp
11021  DB  15,41,60,36                         ; movaps        %xmm7,(%rsp)
11022  DB  15,40,254                           ; movaps        %xmm6,%xmm7
11023  DB  15,40,245                           ; movaps        %xmm5,%xmm6
11024  DB  15,40,236                           ; movaps        %xmm4,%xmm5
11025  DB  15,40,227                           ; movaps        %xmm3,%xmm4
11026  DB  15,40,218                           ; movaps        %xmm2,%xmm3
11027  DB  15,40,209                           ; movaps        %xmm1,%xmm2
11028  DB  68,15,82,192                        ; rsqrtps       %xmm0,%xmm8
11029  DB  69,15,83,200                        ; rcpps         %xmm8,%xmm9
11030  DB  69,15,82,248                        ; rsqrtps       %xmm8,%xmm15
11031  DB  184,41,92,71,65                     ; mov           $0x41475c29,%eax
11032  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
11033  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
11034  DB  69,15,40,211                        ; movaps        %xmm11,%xmm10
11035  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
11036  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11037  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11038  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11039  DB  184,194,135,210,62                  ; mov           $0x3ed287c2,%eax
11040  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
11041  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
11042  DB  184,206,111,48,63                   ; mov           $0x3f306fce,%eax
11043  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
11044  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
11045  DB  184,168,87,202,61                   ; mov           $0x3dca57a8,%eax
11046  DB  53,0,0,0,128                        ; xor           $0x80000000,%eax
11047  DB  102,68,15,110,240                   ; movd          %eax,%xmm14
11048  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
11049  DB  69,15,89,205                        ; mulps         %xmm13,%xmm9
11050  DB  69,15,88,206                        ; addps         %xmm14,%xmm9
11051  DB  69,15,89,252                        ; mulps         %xmm12,%xmm15
11052  DB  69,15,88,249                        ; addps         %xmm9,%xmm15
11053  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
11054  DB  69,15,93,207                        ; minps         %xmm15,%xmm9
11055  DB  184,4,231,140,59                    ; mov           $0x3b8ce704,%eax
11056  DB  102,68,15,110,248                   ; movd          %eax,%xmm15
11057  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
11058  DB  65,15,194,199,1                     ; cmpltps       %xmm15,%xmm0
11059  DB  102,69,15,56,20,202                 ; blendvps      %xmm0,%xmm10,%xmm9
11060  DB  68,15,82,210                        ; rsqrtps       %xmm2,%xmm10
11061  DB  65,15,83,194                        ; rcpps         %xmm10,%xmm0
11062  DB  69,15,82,210                        ; rsqrtps       %xmm10,%xmm10
11063  DB  65,15,89,197                        ; mulps         %xmm13,%xmm0
11064  DB  65,15,88,198                        ; addps         %xmm14,%xmm0
11065  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
11066  DB  68,15,88,208                        ; addps         %xmm0,%xmm10
11067  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
11068  DB  65,15,93,202                        ; minps         %xmm10,%xmm1
11069  DB  69,15,40,211                        ; movaps        %xmm11,%xmm10
11070  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
11071  DB  65,15,194,215,1                     ; cmpltps       %xmm15,%xmm2
11072  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11073  DB  102,65,15,56,20,202                 ; blendvps      %xmm0,%xmm10,%xmm1
11074  DB  15,82,195                           ; rsqrtps       %xmm3,%xmm0
11075  DB  15,83,208                           ; rcpps         %xmm0,%xmm2
11076  DB  65,15,89,213                        ; mulps         %xmm13,%xmm2
11077  DB  65,15,88,214                        ; addps         %xmm14,%xmm2
11078  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
11079  DB  65,15,89,196                        ; mulps         %xmm12,%xmm0
11080  DB  15,88,194                           ; addps         %xmm2,%xmm0
11081  DB  68,15,93,192                        ; minps         %xmm0,%xmm8
11082  DB  68,15,89,219                        ; mulps         %xmm3,%xmm11
11083  DB  65,15,194,223,1                     ; cmpltps       %xmm15,%xmm3
11084  DB  15,40,195                           ; movaps        %xmm3,%xmm0
11085  DB  102,69,15,56,20,195                 ; blendvps      %xmm0,%xmm11,%xmm8
11086  DB  72,173                              ; lods          %ds:(%rsi),%rax
11087  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
11088  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
11089  DB  15,40,220                           ; movaps        %xmm4,%xmm3
11090  DB  15,40,229                           ; movaps        %xmm5,%xmm4
11091  DB  15,40,238                           ; movaps        %xmm6,%xmm5
11092  DB  15,40,247                           ; movaps        %xmm7,%xmm6
11093  DB  15,40,60,36                         ; movaps        (%rsp),%xmm7
11094  DB  72,131,196,24                       ; add           $0x18,%rsp
11095  DB  255,224                             ; jmpq          *%rax
11096
11097PUBLIC _sk_rgb_to_hsl_sse41
11098_sk_rgb_to_hsl_sse41 LABEL PROC
11099  DB  72,131,236,24                       ; sub           $0x18,%rsp
11100  DB  15,41,60,36                         ; movaps        %xmm7,(%rsp)
11101  DB  15,40,254                           ; movaps        %xmm6,%xmm7
11102  DB  15,40,245                           ; movaps        %xmm5,%xmm6
11103  DB  15,40,236                           ; movaps        %xmm4,%xmm5
11104  DB  15,40,227                           ; movaps        %xmm3,%xmm4
11105  DB  15,40,218                           ; movaps        %xmm2,%xmm3
11106  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11107  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
11108  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
11109  DB  65,185,0,0,192,64                   ; mov           $0x40c00000,%r9d
11110  DB  184,0,0,0,64                        ; mov           $0x40000000,%eax
11111  DB  185,0,0,128,64                      ; mov           $0x40800000,%ecx
11112  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
11113  DB  68,15,40,224                        ; movaps        %xmm0,%xmm12
11114  DB  68,15,95,225                        ; maxps         %xmm1,%xmm12
11115  DB  68,15,95,227                        ; maxps         %xmm3,%xmm12
11116  DB  68,15,40,232                        ; movaps        %xmm0,%xmm13
11117  DB  68,15,93,233                        ; minps         %xmm1,%xmm13
11118  DB  68,15,93,235                        ; minps         %xmm3,%xmm13
11119  DB  69,15,40,204                        ; movaps        %xmm12,%xmm9
11120  DB  68,15,194,200,0                     ; cmpeqps       %xmm0,%xmm9
11121  DB  68,15,40,241                        ; movaps        %xmm1,%xmm14
11122  DB  68,15,92,243                        ; subps         %xmm3,%xmm14
11123  DB  68,15,40,249                        ; movaps        %xmm1,%xmm15
11124  DB  68,15,194,251,1                     ; cmpltps       %xmm3,%xmm15
11125  DB  69,15,40,212                        ; movaps        %xmm12,%xmm10
11126  DB  68,15,194,209,0                     ; cmpeqps       %xmm1,%xmm10
11127  DB  15,92,216                           ; subps         %xmm0,%xmm3
11128  DB  15,92,193                           ; subps         %xmm1,%xmm0
11129  DB  65,15,40,212                        ; movaps        %xmm12,%xmm2
11130  DB  65,15,92,213                        ; subps         %xmm13,%xmm2
11131  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
11132  DB  68,15,94,218                        ; divps         %xmm2,%xmm11
11133  DB  65,15,89,195                        ; mulps         %xmm11,%xmm0
11134  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11135  DB  68,15,88,192                        ; addps         %xmm0,%xmm8
11136  DB  102,15,110,200                      ; movd          %eax,%xmm1
11137  DB  65,15,89,219                        ; mulps         %xmm11,%xmm3
11138  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
11139  DB  15,88,217                           ; addps         %xmm1,%xmm3
11140  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
11141  DB  102,68,15,56,20,195                 ; blendvps      %xmm0,%xmm3,%xmm8
11142  DB  69,15,89,243                        ; mulps         %xmm11,%xmm14
11143  DB  102,65,15,110,217                   ; movd          %r9d,%xmm3
11144  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11145  DB  65,15,84,223                        ; andps         %xmm15,%xmm3
11146  DB  65,15,88,222                        ; addps         %xmm14,%xmm3
11147  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
11148  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
11149  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
11150  DB  102,68,15,56,20,195                 ; blendvps      %xmm0,%xmm3,%xmm8
11151  DB  65,15,40,220                        ; movaps        %xmm12,%xmm3
11152  DB  65,15,92,204                        ; subps         %xmm12,%xmm1
11153  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
11154  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
11155  DB  69,15,40,204                        ; movaps        %xmm12,%xmm9
11156  DB  69,15,89,202                        ; mulps         %xmm10,%xmm9
11157  DB  69,15,194,209,1                     ; cmpltps       %xmm9,%xmm10
11158  DB  65,15,92,205                        ; subps         %xmm13,%xmm1
11159  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
11160  DB  102,68,15,56,20,225                 ; blendvps      %xmm0,%xmm1,%xmm12
11161  DB  65,15,194,221,4                     ; cmpneqps      %xmm13,%xmm3
11162  DB  102,65,15,110,192                   ; movd          %r8d,%xmm0
11163  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
11164  DB  68,15,84,195                        ; andps         %xmm3,%xmm8
11165  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
11166  DB  65,15,94,212                        ; divps         %xmm12,%xmm2
11167  DB  15,84,211                           ; andps         %xmm3,%xmm2
11168  DB  72,173                              ; lods          %ds:(%rsi),%rax
11169  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11170  DB  15,40,202                           ; movaps        %xmm2,%xmm1
11171  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
11172  DB  15,40,220                           ; movaps        %xmm4,%xmm3
11173  DB  15,40,229                           ; movaps        %xmm5,%xmm4
11174  DB  15,40,238                           ; movaps        %xmm6,%xmm5
11175  DB  15,40,247                           ; movaps        %xmm7,%xmm6
11176  DB  15,40,60,36                         ; movaps        (%rsp),%xmm7
11177  DB  72,131,196,24                       ; add           $0x18,%rsp
11178  DB  255,224                             ; jmpq          *%rax
11179
11180PUBLIC _sk_hsl_to_rgb_sse41
11181_sk_hsl_to_rgb_sse41 LABEL PROC
11182  DB  72,129,236,152,0,0,0                ; sub           $0x98,%rsp
11183  DB  15,41,188,36,128,0,0,0              ; movaps        %xmm7,0x80(%rsp)
11184  DB  15,41,116,36,112                    ; movaps        %xmm6,0x70(%rsp)
11185  DB  15,41,108,36,96                     ; movaps        %xmm5,0x60(%rsp)
11186  DB  15,41,100,36,80                     ; movaps        %xmm4,0x50(%rsp)
11187  DB  15,41,92,36,64                      ; movaps        %xmm3,0x40(%rsp)
11188  DB  68,15,40,208                        ; movaps        %xmm0,%xmm10
11189  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
11190  DB  102,15,110,216                      ; movd          %eax,%xmm3
11191  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11192  DB  15,41,28,36                         ; movaps        %xmm3,(%rsp)
11193  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11194  DB  15,194,195,1                        ; cmpltps       %xmm3,%xmm0
11195  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11196  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11197  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11198  DB  65,15,40,224                        ; movaps        %xmm8,%xmm4
11199  DB  15,88,225                           ; addps         %xmm1,%xmm4
11200  DB  15,89,226                           ; mulps         %xmm2,%xmm4
11201  DB  15,40,217                           ; movaps        %xmm1,%xmm3
11202  DB  15,40,249                           ; movaps        %xmm1,%xmm7
11203  DB  15,88,250                           ; addps         %xmm2,%xmm7
11204  DB  15,89,218                           ; mulps         %xmm2,%xmm3
11205  DB  15,40,234                           ; movaps        %xmm2,%xmm5
11206  DB  15,92,251                           ; subps         %xmm3,%xmm7
11207  DB  102,15,56,20,252                    ; blendvps      %xmm0,%xmm4,%xmm7
11208  DB  184,0,0,0,64                        ; mov           $0x40000000,%eax
11209  DB  185,171,170,170,62                  ; mov           $0x3eaaaaab,%ecx
11210  DB  102,15,110,209                      ; movd          %ecx,%xmm2
11211  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
11212  DB  15,41,84,36,48                      ; movaps        %xmm2,0x30(%rsp)
11213  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
11214  DB  185,0,0,0,0                         ; mov           $0x0,%ecx
11215  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11216  DB  15,194,194,1                        ; cmpltps       %xmm2,%xmm0
11217  DB  15,40,218                           ; movaps        %xmm2,%xmm3
11218  DB  65,15,92,216                        ; subps         %xmm8,%xmm3
11219  DB  68,15,40,226                        ; movaps        %xmm2,%xmm12
11220  DB  102,68,15,56,20,227                 ; blendvps      %xmm0,%xmm3,%xmm12
11221  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
11222  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
11223  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11224  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
11225  DB  68,15,41,116,36,32                  ; movaps        %xmm14,0x20(%rsp)
11226  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
11227  DB  15,88,218                           ; addps         %xmm2,%xmm3
11228  DB  102,68,15,56,20,227                 ; blendvps      %xmm0,%xmm3,%xmm12
11229  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
11230  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11231  DB  15,40,229                           ; movaps        %xmm5,%xmm4
11232  DB  15,41,100,36,16                     ; movaps        %xmm4,0x10(%rsp)
11233  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
11234  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
11235  DB  184,171,170,42,62                   ; mov           $0x3e2aaaab,%eax
11236  DB  15,40,199                           ; movaps        %xmm7,%xmm0
11237  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
11238  DB  185,0,0,192,64                      ; mov           $0x40c00000,%ecx
11239  DB  102,15,110,241                      ; movd          %ecx,%xmm6
11240  DB  15,198,246,0                        ; shufps        $0x0,%xmm6,%xmm6
11241  DB  15,89,240                           ; mulps         %xmm0,%xmm6
11242  DB  185,171,170,42,63                   ; mov           $0x3f2aaaab,%ecx
11243  DB  102,15,110,217                      ; movd          %ecx,%xmm3
11244  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11245  DB  15,40,235                           ; movaps        %xmm3,%xmm5
11246  DB  65,15,92,236                        ; subps         %xmm12,%xmm5
11247  DB  69,15,40,236                        ; movaps        %xmm12,%xmm13
11248  DB  69,15,40,252                        ; movaps        %xmm12,%xmm15
11249  DB  68,15,194,227,1                     ; cmpltps       %xmm3,%xmm12
11250  DB  15,89,238                           ; mulps         %xmm6,%xmm5
11251  DB  65,15,88,233                        ; addps         %xmm9,%xmm5
11252  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
11253  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
11254  DB  102,68,15,56,20,221                 ; blendvps      %xmm0,%xmm5,%xmm11
11255  DB  68,15,194,60,36,1                   ; cmpltps       (%rsp),%xmm15
11256  DB  65,15,40,199                        ; movaps        %xmm15,%xmm0
11257  DB  102,68,15,56,20,223                 ; blendvps      %xmm0,%xmm7,%xmm11
11258  DB  102,15,110,232                      ; movd          %eax,%xmm5
11259  DB  15,198,237,0                        ; shufps        $0x0,%xmm5,%xmm5
11260  DB  68,15,194,237,1                     ; cmpltps       %xmm5,%xmm13
11261  DB  15,89,214                           ; mulps         %xmm6,%xmm2
11262  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
11263  DB  65,15,40,197                        ; movaps        %xmm13,%xmm0
11264  DB  102,68,15,56,20,218                 ; blendvps      %xmm0,%xmm2,%xmm11
11265  DB  69,15,87,228                        ; xorps         %xmm12,%xmm12
11266  DB  68,15,194,225,0                     ; cmpeqps       %xmm1,%xmm12
11267  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
11268  DB  102,68,15,56,20,220                 ; blendvps      %xmm0,%xmm4,%xmm11
11269  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11270  DB  65,15,194,194,1                     ; cmpltps       %xmm10,%xmm0
11271  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
11272  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
11273  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
11274  DB  102,68,15,56,20,233                 ; blendvps      %xmm0,%xmm1,%xmm13
11275  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
11276  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
11277  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
11278  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
11279  DB  102,68,15,56,20,233                 ; blendvps      %xmm0,%xmm1,%xmm13
11280  DB  68,15,40,243                        ; movaps        %xmm3,%xmm14
11281  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
11282  DB  65,15,40,229                        ; movaps        %xmm13,%xmm4
11283  DB  69,15,40,253                        ; movaps        %xmm13,%xmm15
11284  DB  68,15,194,235,1                     ; cmpltps       %xmm3,%xmm13
11285  DB  68,15,89,246                        ; mulps         %xmm6,%xmm14
11286  DB  69,15,88,241                        ; addps         %xmm9,%xmm14
11287  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
11288  DB  65,15,40,197                        ; movaps        %xmm13,%xmm0
11289  DB  102,65,15,56,20,206                 ; blendvps      %xmm0,%xmm14,%xmm1
11290  DB  68,15,40,52,36                      ; movaps        (%rsp),%xmm14
11291  DB  69,15,194,254,1                     ; cmpltps       %xmm14,%xmm15
11292  DB  65,15,40,199                        ; movaps        %xmm15,%xmm0
11293  DB  102,15,56,20,207                    ; blendvps      %xmm0,%xmm7,%xmm1
11294  DB  15,194,229,1                        ; cmpltps       %xmm5,%xmm4
11295  DB  15,40,214                           ; movaps        %xmm6,%xmm2
11296  DB  65,15,89,210                        ; mulps         %xmm10,%xmm2
11297  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
11298  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11299  DB  102,15,56,20,202                    ; blendvps      %xmm0,%xmm2,%xmm1
11300  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
11301  DB  68,15,40,124,36,16                  ; movaps        0x10(%rsp),%xmm15
11302  DB  102,65,15,56,20,207                 ; blendvps      %xmm0,%xmm15,%xmm1
11303  DB  68,15,92,84,36,48                   ; subps         0x30(%rsp),%xmm10
11304  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
11305  DB  65,15,92,208                        ; subps         %xmm8,%xmm2
11306  DB  69,15,40,232                        ; movaps        %xmm8,%xmm13
11307  DB  69,15,194,194,1                     ; cmpltps       %xmm10,%xmm8
11308  DB  65,15,40,226                        ; movaps        %xmm10,%xmm4
11309  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11310  DB  102,15,56,20,226                    ; blendvps      %xmm0,%xmm2,%xmm4
11311  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
11312  DB  15,194,68,36,32,1                   ; cmpltps       0x20(%rsp),%xmm0
11313  DB  69,15,88,234                        ; addps         %xmm10,%xmm13
11314  DB  102,65,15,56,20,229                 ; blendvps      %xmm0,%xmm13,%xmm4
11315  DB  68,15,89,214                        ; mulps         %xmm6,%xmm10
11316  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11317  DB  15,194,195,1                        ; cmpltps       %xmm3,%xmm0
11318  DB  15,92,220                           ; subps         %xmm4,%xmm3
11319  DB  15,89,222                           ; mulps         %xmm6,%xmm3
11320  DB  69,15,88,209                        ; addps         %xmm9,%xmm10
11321  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
11322  DB  102,68,15,56,20,203                 ; blendvps      %xmm0,%xmm3,%xmm9
11323  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11324  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
11325  DB  102,68,15,56,20,207                 ; blendvps      %xmm0,%xmm7,%xmm9
11326  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11327  DB  15,194,197,1                        ; cmpltps       %xmm5,%xmm0
11328  DB  102,69,15,56,20,202                 ; blendvps      %xmm0,%xmm10,%xmm9
11329  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
11330  DB  102,69,15,56,20,207                 ; blendvps      %xmm0,%xmm15,%xmm9
11331  DB  72,173                              ; lods          %ds:(%rsi),%rax
11332  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
11333  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
11334  DB  15,40,92,36,64                      ; movaps        0x40(%rsp),%xmm3
11335  DB  15,40,100,36,80                     ; movaps        0x50(%rsp),%xmm4
11336  DB  15,40,108,36,96                     ; movaps        0x60(%rsp),%xmm5
11337  DB  15,40,116,36,112                    ; movaps        0x70(%rsp),%xmm6
11338  DB  15,40,188,36,128,0,0,0              ; movaps        0x80(%rsp),%xmm7
11339  DB  72,129,196,152,0,0,0                ; add           $0x98,%rsp
11340  DB  255,224                             ; jmpq          *%rax
11341
11342PUBLIC _sk_scale_1_float_sse41
11343_sk_scale_1_float_sse41 LABEL PROC
11344  DB  72,173                              ; lods          %ds:(%rsi),%rax
11345  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
11346  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11347  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11348  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11349  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11350  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11351  DB  72,173                              ; lods          %ds:(%rsi),%rax
11352  DB  255,224                             ; jmpq          *%rax
11353
11354PUBLIC _sk_scale_u8_sse41
11355_sk_scale_u8_sse41 LABEL PROC
11356  DB  72,173                              ; lods          %ds:(%rsi),%rax
11357  DB  72,139,0                            ; mov           (%rax),%rax
11358  DB  102,68,15,56,49,4,56                ; pmovzxbd      (%rax,%rdi,1),%xmm8
11359  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11360  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
11361  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
11362  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11363  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
11364  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11365  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11366  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11367  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
11368  DB  72,173                              ; lods          %ds:(%rsi),%rax
11369  DB  255,224                             ; jmpq          *%rax
11370
11371PUBLIC _sk_lerp_1_float_sse41
11372_sk_lerp_1_float_sse41 LABEL PROC
11373  DB  72,173                              ; lods          %ds:(%rsi),%rax
11374  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
11375  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11376  DB  15,92,196                           ; subps         %xmm4,%xmm0
11377  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11378  DB  15,88,196                           ; addps         %xmm4,%xmm0
11379  DB  15,92,205                           ; subps         %xmm5,%xmm1
11380  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11381  DB  15,88,205                           ; addps         %xmm5,%xmm1
11382  DB  15,92,214                           ; subps         %xmm6,%xmm2
11383  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11384  DB  15,88,214                           ; addps         %xmm6,%xmm2
11385  DB  15,92,223                           ; subps         %xmm7,%xmm3
11386  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11387  DB  15,88,223                           ; addps         %xmm7,%xmm3
11388  DB  72,173                              ; lods          %ds:(%rsi),%rax
11389  DB  255,224                             ; jmpq          *%rax
11390
11391PUBLIC _sk_lerp_u8_sse41
11392_sk_lerp_u8_sse41 LABEL PROC
11393  DB  72,173                              ; lods          %ds:(%rsi),%rax
11394  DB  72,139,0                            ; mov           (%rax),%rax
11395  DB  102,68,15,56,49,4,56                ; pmovzxbd      (%rax,%rdi,1),%xmm8
11396  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11397  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
11398  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
11399  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11400  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
11401  DB  15,92,196                           ; subps         %xmm4,%xmm0
11402  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11403  DB  15,88,196                           ; addps         %xmm4,%xmm0
11404  DB  15,92,205                           ; subps         %xmm5,%xmm1
11405  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11406  DB  15,88,205                           ; addps         %xmm5,%xmm1
11407  DB  15,92,214                           ; subps         %xmm6,%xmm2
11408  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11409  DB  15,88,214                           ; addps         %xmm6,%xmm2
11410  DB  15,92,223                           ; subps         %xmm7,%xmm3
11411  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
11412  DB  15,88,223                           ; addps         %xmm7,%xmm3
11413  DB  72,173                              ; lods          %ds:(%rsi),%rax
11414  DB  255,224                             ; jmpq          *%rax
11415
11416PUBLIC _sk_lerp_565_sse41
11417_sk_lerp_565_sse41 LABEL PROC
11418  DB  72,173                              ; lods          %ds:(%rsi),%rax
11419  DB  72,139,0                            ; mov           (%rax),%rax
11420  DB  102,68,15,56,51,4,120               ; pmovzxwd      (%rax,%rdi,2),%xmm8
11421  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
11422  DB  102,15,110,216                      ; movd          %eax,%xmm3
11423  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
11424  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
11425  DB  68,15,91,203                        ; cvtdq2ps      %xmm3,%xmm9
11426  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
11427  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
11428  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
11429  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
11430  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
11431  DB  102,15,110,216                      ; movd          %eax,%xmm3
11432  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
11433  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
11434  DB  68,15,91,203                        ; cvtdq2ps      %xmm3,%xmm9
11435  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
11436  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
11437  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
11438  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
11439  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
11440  DB  102,15,110,216                      ; movd          %eax,%xmm3
11441  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
11442  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
11443  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
11444  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
11445  DB  102,15,110,216                      ; movd          %eax,%xmm3
11446  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11447  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11448  DB  15,92,196                           ; subps         %xmm4,%xmm0
11449  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
11450  DB  15,88,196                           ; addps         %xmm4,%xmm0
11451  DB  15,92,205                           ; subps         %xmm5,%xmm1
11452  DB  65,15,89,203                        ; mulps         %xmm11,%xmm1
11453  DB  15,88,205                           ; addps         %xmm5,%xmm1
11454  DB  15,92,214                           ; subps         %xmm6,%xmm2
11455  DB  15,89,211                           ; mulps         %xmm3,%xmm2
11456  DB  15,88,214                           ; addps         %xmm6,%xmm2
11457  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11458  DB  102,15,110,216                      ; movd          %eax,%xmm3
11459  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11460  DB  72,173                              ; lods          %ds:(%rsi),%rax
11461  DB  255,224                             ; jmpq          *%rax
11462
11463PUBLIC _sk_load_tables_sse41
11464_sk_load_tables_sse41 LABEL PROC
11465  DB  72,173                              ; lods          %ds:(%rsi),%rax
11466  DB  72,139,8                            ; mov           (%rax),%rcx
11467  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
11468  DB  243,68,15,111,4,185                 ; movdqu        (%rcx,%rdi,4),%xmm8
11469  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
11470  DB  102,15,110,193                      ; movd          %ecx,%xmm0
11471  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
11472  DB  102,65,15,111,200                   ; movdqa        %xmm8,%xmm1
11473  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
11474  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
11475  DB  102,65,15,111,208                   ; movdqa        %xmm8,%xmm2
11476  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
11477  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
11478  DB  102,65,15,219,192                   ; pand          %xmm8,%xmm0
11479  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
11480  DB  65,137,201                          ; mov           %ecx,%r9d
11481  DB  72,193,233,32                       ; shr           $0x20,%rcx
11482  DB  102,73,15,126,194                   ; movq          %xmm0,%r10
11483  DB  69,137,211                          ; mov           %r10d,%r11d
11484  DB  73,193,234,32                       ; shr           $0x20,%r10
11485  DB  243,67,15,16,4,152                  ; movss         (%r8,%r11,4),%xmm0
11486  DB  102,67,15,58,33,4,144,16            ; insertps      $0x10,(%r8,%r10,4),%xmm0
11487  DB  102,67,15,58,33,4,136,32            ; insertps      $0x20,(%r8,%r9,4),%xmm0
11488  DB  102,65,15,58,33,4,136,48            ; insertps      $0x30,(%r8,%rcx,4),%xmm0
11489  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
11490  DB  102,73,15,58,22,202,1               ; pextrq        $0x1,%xmm1,%r10
11491  DB  77,137,209                          ; mov           %r10,%r9
11492  DB  73,193,233,32                       ; shr           $0x20,%r9
11493  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
11494  DB  65,137,203                          ; mov           %ecx,%r11d
11495  DB  65,129,227,255,255,255,0            ; and           $0xffffff,%r11d
11496  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11497  DB  65,129,226,255,255,255,0            ; and           $0xffffff,%r10d
11498  DB  243,67,15,16,12,152                 ; movss         (%r8,%r11,4),%xmm1
11499  DB  102,65,15,58,33,12,8,16             ; insertps      $0x10,(%r8,%rcx,1),%xmm1
11500  DB  243,67,15,16,28,144                 ; movss         (%r8,%r10,4),%xmm3
11501  DB  102,15,58,33,203,32                 ; insertps      $0x20,%xmm3,%xmm1
11502  DB  243,67,15,16,28,136                 ; movss         (%r8,%r9,4),%xmm3
11503  DB  102,15,58,33,203,48                 ; insertps      $0x30,%xmm3,%xmm1
11504  DB  76,139,72,24                        ; mov           0x18(%rax),%r9
11505  DB  102,72,15,58,22,209,1               ; pextrq        $0x1,%xmm2,%rcx
11506  DB  68,15,183,193                       ; movzwl        %cx,%r8d
11507  DB  72,193,233,32                       ; shr           $0x20,%rcx
11508  DB  102,72,15,126,208                   ; movq          %xmm2,%rax
11509  DB  68,15,183,208                       ; movzwl        %ax,%r10d
11510  DB  72,193,232,30                       ; shr           $0x1e,%rax
11511  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
11512  DB  102,65,15,58,33,20,1,16             ; insertps      $0x10,(%r9,%rax,1),%xmm2
11513  DB  243,67,15,16,28,129                 ; movss         (%r9,%r8,4),%xmm3
11514  DB  102,15,58,33,211,32                 ; insertps      $0x20,%xmm3,%xmm2
11515  DB  243,65,15,16,28,137                 ; movss         (%r9,%rcx,4),%xmm3
11516  DB  102,15,58,33,211,48                 ; insertps      $0x30,%xmm3,%xmm2
11517  DB  102,65,15,114,208,24                ; psrld         $0x18,%xmm8
11518  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11519  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
11520  DB  102,15,110,216                      ; movd          %eax,%xmm3
11521  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11522  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11523  DB  72,173                              ; lods          %ds:(%rsi),%rax
11524  DB  255,224                             ; jmpq          *%rax
11525
11526PUBLIC _sk_load_tables_u16_be_sse41
11527_sk_load_tables_u16_be_sse41 LABEL PROC
11528  DB  72,173                              ; lods          %ds:(%rsi),%rax
11529  DB  72,139,8                            ; mov           (%rax),%rcx
11530  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
11531  DB  243,15,111,4,249                    ; movdqu        (%rcx,%rdi,8),%xmm0
11532  DB  243,15,111,76,249,16                ; movdqu        0x10(%rcx,%rdi,8),%xmm1
11533  DB  102,15,111,216                      ; movdqa        %xmm0,%xmm3
11534  DB  102,15,97,217                       ; punpcklwd     %xmm1,%xmm3
11535  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
11536  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
11537  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
11538  DB  102,15,105,216                      ; punpckhwd     %xmm0,%xmm3
11539  DB  102,15,56,51,193                    ; pmovzxwd      %xmm1,%xmm0
11540  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
11541  DB  102,15,110,209                      ; movd          %ecx,%xmm2
11542  DB  102,68,15,112,194,0                 ; pshufd        $0x0,%xmm2,%xmm8
11543  DB  102,65,15,219,192                   ; pand          %xmm8,%xmm0
11544  DB  102,73,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%r9
11545  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
11546  DB  65,137,202                          ; mov           %ecx,%r10d
11547  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11548  DB  69,137,203                          ; mov           %r9d,%r11d
11549  DB  73,193,233,30                       ; shr           $0x1e,%r9
11550  DB  243,67,15,16,4,144                  ; movss         (%r8,%r10,4),%xmm0
11551  DB  102,65,15,58,33,4,8,16              ; insertps      $0x10,(%r8,%rcx,1),%xmm0
11552  DB  102,67,15,58,33,4,152,32            ; insertps      $0x20,(%r8,%r11,4),%xmm0
11553  DB  102,67,15,58,33,4,8,48              ; insertps      $0x30,(%r8,%r9,1),%xmm0
11554  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
11555  DB  102,15,115,217,8                    ; psrldq        $0x8,%xmm1
11556  DB  102,15,56,51,201                    ; pmovzxwd      %xmm1,%xmm1
11557  DB  102,65,15,219,200                   ; pand          %xmm8,%xmm1
11558  DB  102,73,15,58,22,201,1               ; pextrq        $0x1,%xmm1,%r9
11559  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
11560  DB  65,137,202                          ; mov           %ecx,%r10d
11561  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11562  DB  69,137,203                          ; mov           %r9d,%r11d
11563  DB  73,193,233,30                       ; shr           $0x1e,%r9
11564  DB  243,67,15,16,12,144                 ; movss         (%r8,%r10,4),%xmm1
11565  DB  102,65,15,58,33,12,8,16             ; insertps      $0x10,(%r8,%rcx,1),%xmm1
11566  DB  243,67,15,16,20,152                 ; movss         (%r8,%r11,4),%xmm2
11567  DB  102,15,58,33,202,32                 ; insertps      $0x20,%xmm2,%xmm1
11568  DB  243,67,15,16,20,8                   ; movss         (%r8,%r9,1),%xmm2
11569  DB  102,15,58,33,202,48                 ; insertps      $0x30,%xmm2,%xmm1
11570  DB  76,139,64,24                        ; mov           0x18(%rax),%r8
11571  DB  102,15,56,51,211                    ; pmovzxwd      %xmm3,%xmm2
11572  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
11573  DB  102,72,15,58,22,209,1               ; pextrq        $0x1,%xmm2,%rcx
11574  DB  102,72,15,126,208                   ; movq          %xmm2,%rax
11575  DB  65,137,193                          ; mov           %eax,%r9d
11576  DB  72,193,232,30                       ; shr           $0x1e,%rax
11577  DB  65,137,202                          ; mov           %ecx,%r10d
11578  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11579  DB  243,67,15,16,20,136                 ; movss         (%r8,%r9,4),%xmm2
11580  DB  102,65,15,58,33,20,0,16             ; insertps      $0x10,(%r8,%rax,1),%xmm2
11581  DB  102,67,15,58,33,20,144,32           ; insertps      $0x20,(%r8,%r10,4),%xmm2
11582  DB  102,65,15,58,33,20,8,48             ; insertps      $0x30,(%r8,%rcx,1),%xmm2
11583  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
11584  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11585  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11586  DB  102,15,112,219,78                   ; pshufd        $0x4e,%xmm3,%xmm3
11587  DB  102,68,15,111,203                   ; movdqa        %xmm3,%xmm9
11588  DB  102,65,15,113,241,8                 ; psllw         $0x8,%xmm9
11589  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
11590  DB  102,65,15,235,217                   ; por           %xmm9,%xmm3
11591  DB  102,15,56,51,219                    ; pmovzxwd      %xmm3,%xmm3
11592  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
11593  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11594  DB  72,173                              ; lods          %ds:(%rsi),%rax
11595  DB  255,224                             ; jmpq          *%rax
11596
11597PUBLIC _sk_load_tables_rgb_u16_be_sse41
11598_sk_load_tables_rgb_u16_be_sse41 LABEL PROC
11599  DB  72,173                              ; lods          %ds:(%rsi),%rax
11600  DB  76,141,12,127                       ; lea           (%rdi,%rdi,2),%r9
11601  DB  72,139,8                            ; mov           (%rax),%rcx
11602  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
11603  DB  243,66,15,111,20,73                 ; movdqu        (%rcx,%r9,2),%xmm2
11604  DB  243,66,15,111,68,73,8               ; movdqu        0x8(%rcx,%r9,2),%xmm0
11605  DB  102,15,115,216,4                    ; psrldq        $0x4,%xmm0
11606  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
11607  DB  102,15,115,217,6                    ; psrldq        $0x6,%xmm1
11608  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
11609  DB  102,15,115,216,6                    ; psrldq        $0x6,%xmm0
11610  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
11611  DB  102,15,111,194                      ; movdqa        %xmm2,%xmm0
11612  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
11613  DB  102,68,15,112,192,78                ; pshufd        $0x4e,%xmm0,%xmm8
11614  DB  102,15,105,209                      ; punpckhwd     %xmm1,%xmm2
11615  DB  102,15,56,51,192                    ; pmovzxwd      %xmm0,%xmm0
11616  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
11617  DB  102,15,110,201                      ; movd          %ecx,%xmm1
11618  DB  102,68,15,112,201,0                 ; pshufd        $0x0,%xmm1,%xmm9
11619  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
11620  DB  102,73,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%r9
11621  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
11622  DB  65,137,202                          ; mov           %ecx,%r10d
11623  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11624  DB  69,137,203                          ; mov           %r9d,%r11d
11625  DB  73,193,233,30                       ; shr           $0x1e,%r9
11626  DB  243,67,15,16,4,144                  ; movss         (%r8,%r10,4),%xmm0
11627  DB  102,65,15,58,33,4,8,16              ; insertps      $0x10,(%r8,%rcx,1),%xmm0
11628  DB  102,67,15,58,33,4,152,32            ; insertps      $0x20,(%r8,%r11,4),%xmm0
11629  DB  102,67,15,58,33,4,8,48              ; insertps      $0x30,(%r8,%r9,1),%xmm0
11630  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
11631  DB  102,65,15,56,51,200                 ; pmovzxwd      %xmm8,%xmm1
11632  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
11633  DB  102,73,15,58,22,201,1               ; pextrq        $0x1,%xmm1,%r9
11634  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
11635  DB  65,137,202                          ; mov           %ecx,%r10d
11636  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11637  DB  69,137,203                          ; mov           %r9d,%r11d
11638  DB  73,193,233,30                       ; shr           $0x1e,%r9
11639  DB  243,67,15,16,12,144                 ; movss         (%r8,%r10,4),%xmm1
11640  DB  102,65,15,58,33,12,8,16             ; insertps      $0x10,(%r8,%rcx,1),%xmm1
11641  DB  243,67,15,16,28,152                 ; movss         (%r8,%r11,4),%xmm3
11642  DB  102,15,58,33,203,32                 ; insertps      $0x20,%xmm3,%xmm1
11643  DB  243,67,15,16,28,8                   ; movss         (%r8,%r9,1),%xmm3
11644  DB  102,15,58,33,203,48                 ; insertps      $0x30,%xmm3,%xmm1
11645  DB  76,139,64,24                        ; mov           0x18(%rax),%r8
11646  DB  102,15,56,51,210                    ; pmovzxwd      %xmm2,%xmm2
11647  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
11648  DB  102,72,15,58,22,209,1               ; pextrq        $0x1,%xmm2,%rcx
11649  DB  102,72,15,126,208                   ; movq          %xmm2,%rax
11650  DB  65,137,193                          ; mov           %eax,%r9d
11651  DB  72,193,232,30                       ; shr           $0x1e,%rax
11652  DB  65,137,202                          ; mov           %ecx,%r10d
11653  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11654  DB  243,67,15,16,20,136                 ; movss         (%r8,%r9,4),%xmm2
11655  DB  102,65,15,58,33,20,0,16             ; insertps      $0x10,(%r8,%rax,1),%xmm2
11656  DB  102,67,15,58,33,20,144,32           ; insertps      $0x20,(%r8,%r10,4),%xmm2
11657  DB  102,65,15,58,33,20,8,48             ; insertps      $0x30,(%r8,%rcx,1),%xmm2
11658  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11659  DB  102,15,110,216                      ; movd          %eax,%xmm3
11660  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11661  DB  72,173                              ; lods          %ds:(%rsi),%rax
11662  DB  255,224                             ; jmpq          *%rax
11663
11664PUBLIC _sk_byte_tables_sse41
11665_sk_byte_tables_sse41 LABEL PROC
11666  DB  65,86                               ; push          %r14
11667  DB  83                                  ; push          %rbx
11668  DB  72,173                              ; lods          %ds:(%rsi),%rax
11669  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
11670  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
11671  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11672  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11673  DB  102,15,91,192                       ; cvtps2dq      %xmm0,%xmm0
11674  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
11675  DB  65,137,200                          ; mov           %ecx,%r8d
11676  DB  72,193,233,32                       ; shr           $0x20,%rcx
11677  DB  102,73,15,126,193                   ; movq          %xmm0,%r9
11678  DB  69,137,202                          ; mov           %r9d,%r10d
11679  DB  77,137,203                          ; mov           %r9,%r11
11680  DB  73,193,235,32                       ; shr           $0x20,%r11
11681  DB  76,139,48                           ; mov           (%rax),%r14
11682  DB  76,139,72,8                         ; mov           0x8(%rax),%r9
11683  DB  102,67,15,58,32,4,22,0              ; pinsrb        $0x0,(%r14,%r10,1),%xmm0
11684  DB  102,67,15,58,32,4,30,1              ; pinsrb        $0x1,(%r14,%r11,1),%xmm0
11685  DB  67,15,182,28,6                      ; movzbl        (%r14,%r8,1),%ebx
11686  DB  102,15,58,32,195,2                  ; pinsrb        $0x2,%ebx,%xmm0
11687  DB  65,15,182,12,14                     ; movzbl        (%r14,%rcx,1),%ecx
11688  DB  102,15,58,32,193,3                  ; pinsrb        $0x3,%ecx,%xmm0
11689  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
11690  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
11691  DB  185,129,128,128,59                  ; mov           $0x3b808081,%ecx
11692  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
11693  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11694  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11695  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11696  DB  102,15,91,201                       ; cvtps2dq      %xmm1,%xmm1
11697  DB  102,72,15,58,22,201,1               ; pextrq        $0x1,%xmm1,%rcx
11698  DB  65,137,200                          ; mov           %ecx,%r8d
11699  DB  72,193,233,32                       ; shr           $0x20,%rcx
11700  DB  102,72,15,126,203                   ; movq          %xmm1,%rbx
11701  DB  65,137,218                          ; mov           %ebx,%r10d
11702  DB  72,193,235,32                       ; shr           $0x20,%rbx
11703  DB  102,67,15,58,32,12,17,0             ; pinsrb        $0x0,(%r9,%r10,1),%xmm1
11704  DB  102,65,15,58,32,12,25,1             ; pinsrb        $0x1,(%r9,%rbx,1),%xmm1
11705  DB  67,15,182,28,1                      ; movzbl        (%r9,%r8,1),%ebx
11706  DB  102,15,58,32,203,2                  ; pinsrb        $0x2,%ebx,%xmm1
11707  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
11708  DB  102,15,58,32,201,3                  ; pinsrb        $0x3,%ecx,%xmm1
11709  DB  102,15,56,49,201                    ; pmovzxbd      %xmm1,%xmm1
11710  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
11711  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11712  DB  76,139,72,16                        ; mov           0x10(%rax),%r9
11713  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11714  DB  102,15,91,210                       ; cvtps2dq      %xmm2,%xmm2
11715  DB  102,72,15,58,22,211,1               ; pextrq        $0x1,%xmm2,%rbx
11716  DB  65,137,216                          ; mov           %ebx,%r8d
11717  DB  72,193,235,32                       ; shr           $0x20,%rbx
11718  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
11719  DB  65,137,202                          ; mov           %ecx,%r10d
11720  DB  72,193,233,32                       ; shr           $0x20,%rcx
11721  DB  102,67,15,58,32,20,17,0             ; pinsrb        $0x0,(%r9,%r10,1),%xmm2
11722  DB  102,65,15,58,32,20,9,1              ; pinsrb        $0x1,(%r9,%rcx,1),%xmm2
11723  DB  67,15,182,12,1                      ; movzbl        (%r9,%r8,1),%ecx
11724  DB  102,15,58,32,209,2                  ; pinsrb        $0x2,%ecx,%xmm2
11725  DB  65,15,182,12,25                     ; movzbl        (%r9,%rbx,1),%ecx
11726  DB  102,15,58,32,209,3                  ; pinsrb        $0x3,%ecx,%xmm2
11727  DB  102,15,56,49,210                    ; pmovzxbd      %xmm2,%xmm2
11728  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
11729  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11730  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
11731  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
11732  DB  102,65,15,91,216                    ; cvtps2dq      %xmm8,%xmm3
11733  DB  102,72,15,58,22,217,1               ; pextrq        $0x1,%xmm3,%rcx
11734  DB  65,137,200                          ; mov           %ecx,%r8d
11735  DB  72,193,233,32                       ; shr           $0x20,%rcx
11736  DB  102,72,15,126,219                   ; movq          %xmm3,%rbx
11737  DB  65,137,217                          ; mov           %ebx,%r9d
11738  DB  72,193,235,32                       ; shr           $0x20,%rbx
11739  DB  102,66,15,58,32,28,8,0              ; pinsrb        $0x0,(%rax,%r9,1),%xmm3
11740  DB  102,15,58,32,28,24,1                ; pinsrb        $0x1,(%rax,%rbx,1),%xmm3
11741  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
11742  DB  102,15,58,32,219,2                  ; pinsrb        $0x2,%ebx,%xmm3
11743  DB  15,182,4,8                          ; movzbl        (%rax,%rcx,1),%eax
11744  DB  102,15,58,32,216,3                  ; pinsrb        $0x3,%eax,%xmm3
11745  DB  102,15,56,49,219                    ; pmovzxbd      %xmm3,%xmm3
11746  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
11747  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
11748  DB  72,173                              ; lods          %ds:(%rsi),%rax
11749  DB  91                                  ; pop           %rbx
11750  DB  65,94                               ; pop           %r14
11751  DB  255,224                             ; jmpq          *%rax
11752
11753PUBLIC _sk_byte_tables_rgb_sse41
11754_sk_byte_tables_rgb_sse41 LABEL PROC
11755  DB  65,86                               ; push          %r14
11756  DB  83                                  ; push          %rbx
11757  DB  72,173                              ; lods          %ds:(%rsi),%rax
11758  DB  139,72,24                           ; mov           0x18(%rax),%ecx
11759  DB  255,201                             ; dec           %ecx
11760  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
11761  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11762  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11763  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11764  DB  102,15,91,192                       ; cvtps2dq      %xmm0,%xmm0
11765  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
11766  DB  65,137,200                          ; mov           %ecx,%r8d
11767  DB  72,193,233,32                       ; shr           $0x20,%rcx
11768  DB  102,73,15,126,193                   ; movq          %xmm0,%r9
11769  DB  69,137,202                          ; mov           %r9d,%r10d
11770  DB  77,137,203                          ; mov           %r9,%r11
11771  DB  73,193,235,32                       ; shr           $0x20,%r11
11772  DB  76,139,48                           ; mov           (%rax),%r14
11773  DB  76,139,72,8                         ; mov           0x8(%rax),%r9
11774  DB  102,67,15,58,32,4,22,0              ; pinsrb        $0x0,(%r14,%r10,1),%xmm0
11775  DB  102,67,15,58,32,4,30,1              ; pinsrb        $0x1,(%r14,%r11,1),%xmm0
11776  DB  67,15,182,28,6                      ; movzbl        (%r14,%r8,1),%ebx
11777  DB  102,15,58,32,195,2                  ; pinsrb        $0x2,%ebx,%xmm0
11778  DB  65,15,182,12,14                     ; movzbl        (%r14,%rcx,1),%ecx
11779  DB  102,15,58,32,193,3                  ; pinsrb        $0x3,%ecx,%xmm0
11780  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
11781  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
11782  DB  185,129,128,128,59                  ; mov           $0x3b808081,%ecx
11783  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
11784  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11785  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11786  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11787  DB  102,15,91,201                       ; cvtps2dq      %xmm1,%xmm1
11788  DB  102,72,15,58,22,201,1               ; pextrq        $0x1,%xmm1,%rcx
11789  DB  65,137,200                          ; mov           %ecx,%r8d
11790  DB  72,193,233,32                       ; shr           $0x20,%rcx
11791  DB  102,72,15,126,203                   ; movq          %xmm1,%rbx
11792  DB  65,137,218                          ; mov           %ebx,%r10d
11793  DB  72,193,235,32                       ; shr           $0x20,%rbx
11794  DB  102,67,15,58,32,12,17,0             ; pinsrb        $0x0,(%r9,%r10,1),%xmm1
11795  DB  102,65,15,58,32,12,25,1             ; pinsrb        $0x1,(%r9,%rbx,1),%xmm1
11796  DB  67,15,182,28,1                      ; movzbl        (%r9,%r8,1),%ebx
11797  DB  102,15,58,32,203,2                  ; pinsrb        $0x2,%ebx,%xmm1
11798  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
11799  DB  102,15,58,32,201,3                  ; pinsrb        $0x3,%ecx,%xmm1
11800  DB  102,15,56,49,201                    ; pmovzxbd      %xmm1,%xmm1
11801  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
11802  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11803  DB  72,139,64,16                        ; mov           0x10(%rax),%rax
11804  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11805  DB  102,15,91,210                       ; cvtps2dq      %xmm2,%xmm2
11806  DB  102,72,15,58,22,209,1               ; pextrq        $0x1,%xmm2,%rcx
11807  DB  65,137,200                          ; mov           %ecx,%r8d
11808  DB  72,193,233,32                       ; shr           $0x20,%rcx
11809  DB  102,72,15,126,211                   ; movq          %xmm2,%rbx
11810  DB  65,137,217                          ; mov           %ebx,%r9d
11811  DB  72,193,235,32                       ; shr           $0x20,%rbx
11812  DB  102,66,15,58,32,20,8,0              ; pinsrb        $0x0,(%rax,%r9,1),%xmm2
11813  DB  102,15,58,32,20,24,1                ; pinsrb        $0x1,(%rax,%rbx,1),%xmm2
11814  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
11815  DB  102,15,58,32,211,2                  ; pinsrb        $0x2,%ebx,%xmm2
11816  DB  15,182,4,8                          ; movzbl        (%rax,%rcx,1),%eax
11817  DB  102,15,58,32,208,3                  ; pinsrb        $0x3,%eax,%xmm2
11818  DB  102,15,56,49,210                    ; pmovzxbd      %xmm2,%xmm2
11819  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
11820  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11821  DB  72,173                              ; lods          %ds:(%rsi),%rax
11822  DB  91                                  ; pop           %rbx
11823  DB  65,94                               ; pop           %r14
11824  DB  255,224                             ; jmpq          *%rax
11825
11826PUBLIC _sk_table_r_sse41
11827_sk_table_r_sse41 LABEL PROC
11828  DB  72,173                              ; lods          %ds:(%rsi),%rax
11829  DB  76,139,8                            ; mov           (%rax),%r9
11830  DB  139,64,8                            ; mov           0x8(%rax),%eax
11831  DB  255,200                             ; dec           %eax
11832  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11833  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11834  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11835  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
11836  DB  102,65,15,91,192                    ; cvtps2dq      %xmm8,%xmm0
11837  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
11838  DB  65,137,192                          ; mov           %eax,%r8d
11839  DB  72,193,232,32                       ; shr           $0x20,%rax
11840  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
11841  DB  65,137,202                          ; mov           %ecx,%r10d
11842  DB  72,193,233,32                       ; shr           $0x20,%rcx
11843  DB  243,67,15,16,4,145                  ; movss         (%r9,%r10,4),%xmm0
11844  DB  102,65,15,58,33,4,137,16            ; insertps      $0x10,(%r9,%rcx,4),%xmm0
11845  DB  243,71,15,16,4,129                  ; movss         (%r9,%r8,4),%xmm8
11846  DB  102,65,15,58,33,192,32              ; insertps      $0x20,%xmm8,%xmm0
11847  DB  243,69,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm8
11848  DB  102,65,15,58,33,192,48              ; insertps      $0x30,%xmm8,%xmm0
11849  DB  72,173                              ; lods          %ds:(%rsi),%rax
11850  DB  255,224                             ; jmpq          *%rax
11851
11852PUBLIC _sk_table_g_sse41
11853_sk_table_g_sse41 LABEL PROC
11854  DB  72,173                              ; lods          %ds:(%rsi),%rax
11855  DB  76,139,8                            ; mov           (%rax),%r9
11856  DB  139,64,8                            ; mov           0x8(%rax),%eax
11857  DB  255,200                             ; dec           %eax
11858  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11859  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11860  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11861  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
11862  DB  102,65,15,91,200                    ; cvtps2dq      %xmm8,%xmm1
11863  DB  102,72,15,58,22,200,1               ; pextrq        $0x1,%xmm1,%rax
11864  DB  65,137,192                          ; mov           %eax,%r8d
11865  DB  72,193,232,32                       ; shr           $0x20,%rax
11866  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
11867  DB  65,137,202                          ; mov           %ecx,%r10d
11868  DB  72,193,233,32                       ; shr           $0x20,%rcx
11869  DB  243,67,15,16,12,145                 ; movss         (%r9,%r10,4),%xmm1
11870  DB  102,65,15,58,33,12,137,16           ; insertps      $0x10,(%r9,%rcx,4),%xmm1
11871  DB  243,71,15,16,4,129                  ; movss         (%r9,%r8,4),%xmm8
11872  DB  102,65,15,58,33,200,32              ; insertps      $0x20,%xmm8,%xmm1
11873  DB  243,69,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm8
11874  DB  102,65,15,58,33,200,48              ; insertps      $0x30,%xmm8,%xmm1
11875  DB  72,173                              ; lods          %ds:(%rsi),%rax
11876  DB  255,224                             ; jmpq          *%rax
11877
11878PUBLIC _sk_table_b_sse41
11879_sk_table_b_sse41 LABEL PROC
11880  DB  72,173                              ; lods          %ds:(%rsi),%rax
11881  DB  76,139,8                            ; mov           (%rax),%r9
11882  DB  139,64,8                            ; mov           0x8(%rax),%eax
11883  DB  255,200                             ; dec           %eax
11884  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11885  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11886  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11887  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
11888  DB  102,65,15,91,208                    ; cvtps2dq      %xmm8,%xmm2
11889  DB  102,72,15,58,22,208,1               ; pextrq        $0x1,%xmm2,%rax
11890  DB  65,137,192                          ; mov           %eax,%r8d
11891  DB  72,193,232,32                       ; shr           $0x20,%rax
11892  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
11893  DB  65,137,202                          ; mov           %ecx,%r10d
11894  DB  72,193,233,32                       ; shr           $0x20,%rcx
11895  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
11896  DB  102,65,15,58,33,20,137,16           ; insertps      $0x10,(%r9,%rcx,4),%xmm2
11897  DB  243,71,15,16,4,129                  ; movss         (%r9,%r8,4),%xmm8
11898  DB  102,65,15,58,33,208,32              ; insertps      $0x20,%xmm8,%xmm2
11899  DB  243,69,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm8
11900  DB  102,65,15,58,33,208,48              ; insertps      $0x30,%xmm8,%xmm2
11901  DB  72,173                              ; lods          %ds:(%rsi),%rax
11902  DB  255,224                             ; jmpq          *%rax
11903
11904PUBLIC _sk_table_a_sse41
11905_sk_table_a_sse41 LABEL PROC
11906  DB  72,173                              ; lods          %ds:(%rsi),%rax
11907  DB  76,139,8                            ; mov           (%rax),%r9
11908  DB  139,64,8                            ; mov           0x8(%rax),%eax
11909  DB  255,200                             ; dec           %eax
11910  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11911  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11912  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11913  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
11914  DB  102,65,15,91,216                    ; cvtps2dq      %xmm8,%xmm3
11915  DB  102,72,15,58,22,216,1               ; pextrq        $0x1,%xmm3,%rax
11916  DB  65,137,192                          ; mov           %eax,%r8d
11917  DB  72,193,232,32                       ; shr           $0x20,%rax
11918  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
11919  DB  65,137,202                          ; mov           %ecx,%r10d
11920  DB  72,193,233,32                       ; shr           $0x20,%rcx
11921  DB  243,67,15,16,28,145                 ; movss         (%r9,%r10,4),%xmm3
11922  DB  102,65,15,58,33,28,137,16           ; insertps      $0x10,(%r9,%rcx,4),%xmm3
11923  DB  243,71,15,16,4,129                  ; movss         (%r9,%r8,4),%xmm8
11924  DB  102,65,15,58,33,216,32              ; insertps      $0x20,%xmm8,%xmm3
11925  DB  243,69,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm8
11926  DB  102,65,15,58,33,216,48              ; insertps      $0x30,%xmm8,%xmm3
11927  DB  72,173                              ; lods          %ds:(%rsi),%rax
11928  DB  255,224                             ; jmpq          *%rax
11929
11930PUBLIC _sk_parametric_r_sse41
11931_sk_parametric_r_sse41 LABEL PROC
11932  DB  72,173                              ; lods          %ds:(%rsi),%rax
11933  DB  243,68,15,16,64,16                  ; movss         0x10(%rax),%xmm8
11934  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11935  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
11936  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11937  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
11938  DB  243,68,15,16,80,4                   ; movss         0x4(%rax),%xmm10
11939  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
11940  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
11941  DB  65,15,194,192,2                     ; cmpleps       %xmm8,%xmm0
11942  DB  243,68,15,16,64,24                  ; movss         0x18(%rax),%xmm8
11943  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11944  DB  69,15,88,200                        ; addps         %xmm8,%xmm9
11945  DB  243,68,15,16,24                     ; movss         (%rax),%xmm11
11946  DB  243,68,15,16,64,8                   ; movss         0x8(%rax),%xmm8
11947  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11948  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
11949  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
11950  DB  69,15,91,194                        ; cvtdq2ps      %xmm10,%xmm8
11951  DB  68,15,89,5,111,33,0,0               ; mulps         0x216f(%rip),%xmm8        # 3ff0 <_sk_callback_sse41+0xd4>
11952  DB  68,15,84,21,119,33,0,0              ; andps         0x2177(%rip),%xmm10        # 4000 <_sk_callback_sse41+0xe4>
11953  DB  68,15,86,21,127,33,0,0              ; orps          0x217f(%rip),%xmm10        # 4010 <_sk_callback_sse41+0xf4>
11954  DB  68,15,88,5,135,33,0,0               ; addps         0x2187(%rip),%xmm8        # 4020 <_sk_callback_sse41+0x104>
11955  DB  68,15,40,37,143,33,0,0              ; movaps        0x218f(%rip),%xmm12        # 4030 <_sk_callback_sse41+0x114>
11956  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
11957  DB  69,15,92,196                        ; subps         %xmm12,%xmm8
11958  DB  68,15,88,21,143,33,0,0              ; addps         0x218f(%rip),%xmm10        # 4040 <_sk_callback_sse41+0x124>
11959  DB  68,15,40,37,151,33,0,0              ; movaps        0x2197(%rip),%xmm12        # 4050 <_sk_callback_sse41+0x134>
11960  DB  69,15,94,226                        ; divps         %xmm10,%xmm12
11961  DB  69,15,92,196                        ; subps         %xmm12,%xmm8
11962  DB  69,15,89,195                        ; mulps         %xmm11,%xmm8
11963  DB  102,69,15,58,8,208,1                ; roundps       $0x1,%xmm8,%xmm10
11964  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
11965  DB  69,15,92,218                        ; subps         %xmm10,%xmm11
11966  DB  68,15,88,5,132,33,0,0               ; addps         0x2184(%rip),%xmm8        # 4060 <_sk_callback_sse41+0x144>
11967  DB  68,15,40,21,140,33,0,0              ; movaps        0x218c(%rip),%xmm10        # 4070 <_sk_callback_sse41+0x154>
11968  DB  69,15,89,211                        ; mulps         %xmm11,%xmm10
11969  DB  69,15,92,194                        ; subps         %xmm10,%xmm8
11970  DB  68,15,40,21,140,33,0,0              ; movaps        0x218c(%rip),%xmm10        # 4080 <_sk_callback_sse41+0x164>
11971  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
11972  DB  68,15,40,29,144,33,0,0              ; movaps        0x2190(%rip),%xmm11        # 4090 <_sk_callback_sse41+0x174>
11973  DB  69,15,94,218                        ; divps         %xmm10,%xmm11
11974  DB  69,15,88,216                        ; addps         %xmm8,%xmm11
11975  DB  68,15,89,29,144,33,0,0              ; mulps         0x2190(%rip),%xmm11        # 40a0 <_sk_callback_sse41+0x184>
11976  DB  102,69,15,91,211                    ; cvtps2dq      %xmm11,%xmm10
11977  DB  243,68,15,16,64,20                  ; movss         0x14(%rax),%xmm8
11978  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11979  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
11980  DB  102,69,15,56,20,193                 ; blendvps      %xmm0,%xmm9,%xmm8
11981  DB  15,87,192                           ; xorps         %xmm0,%xmm0
11982  DB  68,15,95,192                        ; maxps         %xmm0,%xmm8
11983  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11984  DB  102,15,110,192                      ; movd          %eax,%xmm0
11985  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
11986  DB  68,15,93,192                        ; minps         %xmm0,%xmm8
11987  DB  72,173                              ; lods          %ds:(%rsi),%rax
11988  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11989  DB  255,224                             ; jmpq          *%rax
11990
11991PUBLIC _sk_parametric_g_sse41
11992_sk_parametric_g_sse41 LABEL PROC
11993  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
11994  DB  72,173                              ; lods          %ds:(%rsi),%rax
11995  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
11996  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
11997  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
11998  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11999  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
12000  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
12001  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12002  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
12003  DB  15,40,193                           ; movaps        %xmm1,%xmm0
12004  DB  65,15,194,194,2                     ; cmpleps       %xmm10,%xmm0
12005  DB  243,15,16,72,24                     ; movss         0x18(%rax),%xmm1
12006  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12007  DB  68,15,88,201                        ; addps         %xmm1,%xmm9
12008  DB  243,68,15,16,16                     ; movss         (%rax),%xmm10
12009  DB  243,15,16,72,8                      ; movss         0x8(%rax),%xmm1
12010  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12011  DB  68,15,88,217                        ; addps         %xmm1,%xmm11
12012  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12013  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
12014  DB  68,15,89,37,255,32,0,0              ; mulps         0x20ff(%rip),%xmm12        # 40b0 <_sk_callback_sse41+0x194>
12015  DB  68,15,84,29,7,33,0,0                ; andps         0x2107(%rip),%xmm11        # 40c0 <_sk_callback_sse41+0x1a4>
12016  DB  68,15,86,29,15,33,0,0               ; orps          0x210f(%rip),%xmm11        # 40d0 <_sk_callback_sse41+0x1b4>
12017  DB  68,15,88,37,23,33,0,0               ; addps         0x2117(%rip),%xmm12        # 40e0 <_sk_callback_sse41+0x1c4>
12018  DB  15,40,13,32,33,0,0                  ; movaps        0x2120(%rip),%xmm1        # 40f0 <_sk_callback_sse41+0x1d4>
12019  DB  65,15,89,203                        ; mulps         %xmm11,%xmm1
12020  DB  68,15,92,225                        ; subps         %xmm1,%xmm12
12021  DB  68,15,88,29,32,33,0,0               ; addps         0x2120(%rip),%xmm11        # 4100 <_sk_callback_sse41+0x1e4>
12022  DB  15,40,13,41,33,0,0                  ; movaps        0x2129(%rip),%xmm1        # 4110 <_sk_callback_sse41+0x1f4>
12023  DB  65,15,94,203                        ; divps         %xmm11,%xmm1
12024  DB  68,15,92,225                        ; subps         %xmm1,%xmm12
12025  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
12026  DB  102,69,15,58,8,212,1                ; roundps       $0x1,%xmm12,%xmm10
12027  DB  69,15,40,220                        ; movaps        %xmm12,%xmm11
12028  DB  69,15,92,218                        ; subps         %xmm10,%xmm11
12029  DB  68,15,88,37,22,33,0,0               ; addps         0x2116(%rip),%xmm12        # 4120 <_sk_callback_sse41+0x204>
12030  DB  15,40,13,31,33,0,0                  ; movaps        0x211f(%rip),%xmm1        # 4130 <_sk_callback_sse41+0x214>
12031  DB  65,15,89,203                        ; mulps         %xmm11,%xmm1
12032  DB  68,15,92,225                        ; subps         %xmm1,%xmm12
12033  DB  68,15,40,21,31,33,0,0               ; movaps        0x211f(%rip),%xmm10        # 4140 <_sk_callback_sse41+0x224>
12034  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
12035  DB  15,40,13,36,33,0,0                  ; movaps        0x2124(%rip),%xmm1        # 4150 <_sk_callback_sse41+0x234>
12036  DB  65,15,94,202                        ; divps         %xmm10,%xmm1
12037  DB  65,15,88,204                        ; addps         %xmm12,%xmm1
12038  DB  15,89,13,37,33,0,0                  ; mulps         0x2125(%rip),%xmm1        # 4160 <_sk_callback_sse41+0x244>
12039  DB  102,68,15,91,209                    ; cvtps2dq      %xmm1,%xmm10
12040  DB  243,15,16,72,20                     ; movss         0x14(%rax),%xmm1
12041  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12042  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
12043  DB  102,65,15,56,20,201                 ; blendvps      %xmm0,%xmm9,%xmm1
12044  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12045  DB  15,95,200                           ; maxps         %xmm0,%xmm1
12046  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12047  DB  102,15,110,192                      ; movd          %eax,%xmm0
12048  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12049  DB  15,93,200                           ; minps         %xmm0,%xmm1
12050  DB  72,173                              ; lods          %ds:(%rsi),%rax
12051  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12052  DB  255,224                             ; jmpq          *%rax
12053
12054PUBLIC _sk_parametric_b_sse41
12055_sk_parametric_b_sse41 LABEL PROC
12056  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
12057  DB  72,173                              ; lods          %ds:(%rsi),%rax
12058  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
12059  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12060  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
12061  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
12062  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
12063  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
12064  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12065  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
12066  DB  15,40,194                           ; movaps        %xmm2,%xmm0
12067  DB  65,15,194,194,2                     ; cmpleps       %xmm10,%xmm0
12068  DB  243,15,16,80,24                     ; movss         0x18(%rax),%xmm2
12069  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12070  DB  68,15,88,202                        ; addps         %xmm2,%xmm9
12071  DB  243,68,15,16,16                     ; movss         (%rax),%xmm10
12072  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
12073  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12074  DB  68,15,88,218                        ; addps         %xmm2,%xmm11
12075  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12076  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
12077  DB  68,15,89,37,152,32,0,0              ; mulps         0x2098(%rip),%xmm12        # 4170 <_sk_callback_sse41+0x254>
12078  DB  68,15,84,29,160,32,0,0              ; andps         0x20a0(%rip),%xmm11        # 4180 <_sk_callback_sse41+0x264>
12079  DB  68,15,86,29,168,32,0,0              ; orps          0x20a8(%rip),%xmm11        # 4190 <_sk_callback_sse41+0x274>
12080  DB  68,15,88,37,176,32,0,0              ; addps         0x20b0(%rip),%xmm12        # 41a0 <_sk_callback_sse41+0x284>
12081  DB  15,40,21,185,32,0,0                 ; movaps        0x20b9(%rip),%xmm2        # 41b0 <_sk_callback_sse41+0x294>
12082  DB  65,15,89,211                        ; mulps         %xmm11,%xmm2
12083  DB  68,15,92,226                        ; subps         %xmm2,%xmm12
12084  DB  68,15,88,29,185,32,0,0              ; addps         0x20b9(%rip),%xmm11        # 41c0 <_sk_callback_sse41+0x2a4>
12085  DB  15,40,21,194,32,0,0                 ; movaps        0x20c2(%rip),%xmm2        # 41d0 <_sk_callback_sse41+0x2b4>
12086  DB  65,15,94,211                        ; divps         %xmm11,%xmm2
12087  DB  68,15,92,226                        ; subps         %xmm2,%xmm12
12088  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
12089  DB  102,69,15,58,8,212,1                ; roundps       $0x1,%xmm12,%xmm10
12090  DB  69,15,40,220                        ; movaps        %xmm12,%xmm11
12091  DB  69,15,92,218                        ; subps         %xmm10,%xmm11
12092  DB  68,15,88,37,175,32,0,0              ; addps         0x20af(%rip),%xmm12        # 41e0 <_sk_callback_sse41+0x2c4>
12093  DB  15,40,21,184,32,0,0                 ; movaps        0x20b8(%rip),%xmm2        # 41f0 <_sk_callback_sse41+0x2d4>
12094  DB  65,15,89,211                        ; mulps         %xmm11,%xmm2
12095  DB  68,15,92,226                        ; subps         %xmm2,%xmm12
12096  DB  68,15,40,21,184,32,0,0              ; movaps        0x20b8(%rip),%xmm10        # 4200 <_sk_callback_sse41+0x2e4>
12097  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
12098  DB  15,40,21,189,32,0,0                 ; movaps        0x20bd(%rip),%xmm2        # 4210 <_sk_callback_sse41+0x2f4>
12099  DB  65,15,94,210                        ; divps         %xmm10,%xmm2
12100  DB  65,15,88,212                        ; addps         %xmm12,%xmm2
12101  DB  15,89,21,190,32,0,0                 ; mulps         0x20be(%rip),%xmm2        # 4220 <_sk_callback_sse41+0x304>
12102  DB  102,68,15,91,210                    ; cvtps2dq      %xmm2,%xmm10
12103  DB  243,15,16,80,20                     ; movss         0x14(%rax),%xmm2
12104  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12105  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
12106  DB  102,65,15,56,20,209                 ; blendvps      %xmm0,%xmm9,%xmm2
12107  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12108  DB  15,95,208                           ; maxps         %xmm0,%xmm2
12109  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12110  DB  102,15,110,192                      ; movd          %eax,%xmm0
12111  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12112  DB  15,93,208                           ; minps         %xmm0,%xmm2
12113  DB  72,173                              ; lods          %ds:(%rsi),%rax
12114  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12115  DB  255,224                             ; jmpq          *%rax
12116
12117PUBLIC _sk_parametric_a_sse41
12118_sk_parametric_a_sse41 LABEL PROC
12119  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
12120  DB  72,173                              ; lods          %ds:(%rsi),%rax
12121  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
12122  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12123  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
12124  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
12125  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
12126  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
12127  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12128  DB  68,15,89,219                        ; mulps         %xmm3,%xmm11
12129  DB  15,40,195                           ; movaps        %xmm3,%xmm0
12130  DB  65,15,194,194,2                     ; cmpleps       %xmm10,%xmm0
12131  DB  243,15,16,88,24                     ; movss         0x18(%rax),%xmm3
12132  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12133  DB  68,15,88,203                        ; addps         %xmm3,%xmm9
12134  DB  243,68,15,16,16                     ; movss         (%rax),%xmm10
12135  DB  243,15,16,88,8                      ; movss         0x8(%rax),%xmm3
12136  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12137  DB  68,15,88,219                        ; addps         %xmm3,%xmm11
12138  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12139  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
12140  DB  68,15,89,37,49,32,0,0               ; mulps         0x2031(%rip),%xmm12        # 4230 <_sk_callback_sse41+0x314>
12141  DB  68,15,84,29,57,32,0,0               ; andps         0x2039(%rip),%xmm11        # 4240 <_sk_callback_sse41+0x324>
12142  DB  68,15,86,29,65,32,0,0               ; orps          0x2041(%rip),%xmm11        # 4250 <_sk_callback_sse41+0x334>
12143  DB  68,15,88,37,73,32,0,0               ; addps         0x2049(%rip),%xmm12        # 4260 <_sk_callback_sse41+0x344>
12144  DB  15,40,29,82,32,0,0                  ; movaps        0x2052(%rip),%xmm3        # 4270 <_sk_callback_sse41+0x354>
12145  DB  65,15,89,219                        ; mulps         %xmm11,%xmm3
12146  DB  68,15,92,227                        ; subps         %xmm3,%xmm12
12147  DB  68,15,88,29,82,32,0,0               ; addps         0x2052(%rip),%xmm11        # 4280 <_sk_callback_sse41+0x364>
12148  DB  15,40,29,91,32,0,0                  ; movaps        0x205b(%rip),%xmm3        # 4290 <_sk_callback_sse41+0x374>
12149  DB  65,15,94,219                        ; divps         %xmm11,%xmm3
12150  DB  68,15,92,227                        ; subps         %xmm3,%xmm12
12151  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
12152  DB  102,69,15,58,8,212,1                ; roundps       $0x1,%xmm12,%xmm10
12153  DB  69,15,40,220                        ; movaps        %xmm12,%xmm11
12154  DB  69,15,92,218                        ; subps         %xmm10,%xmm11
12155  DB  68,15,88,37,72,32,0,0               ; addps         0x2048(%rip),%xmm12        # 42a0 <_sk_callback_sse41+0x384>
12156  DB  15,40,29,81,32,0,0                  ; movaps        0x2051(%rip),%xmm3        # 42b0 <_sk_callback_sse41+0x394>
12157  DB  65,15,89,219                        ; mulps         %xmm11,%xmm3
12158  DB  68,15,92,227                        ; subps         %xmm3,%xmm12
12159  DB  68,15,40,21,81,32,0,0               ; movaps        0x2051(%rip),%xmm10        # 42c0 <_sk_callback_sse41+0x3a4>
12160  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
12161  DB  15,40,29,86,32,0,0                  ; movaps        0x2056(%rip),%xmm3        # 42d0 <_sk_callback_sse41+0x3b4>
12162  DB  65,15,94,218                        ; divps         %xmm10,%xmm3
12163  DB  65,15,88,220                        ; addps         %xmm12,%xmm3
12164  DB  15,89,29,87,32,0,0                  ; mulps         0x2057(%rip),%xmm3        # 42e0 <_sk_callback_sse41+0x3c4>
12165  DB  102,68,15,91,211                    ; cvtps2dq      %xmm3,%xmm10
12166  DB  243,15,16,88,20                     ; movss         0x14(%rax),%xmm3
12167  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12168  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
12169  DB  102,65,15,56,20,217                 ; blendvps      %xmm0,%xmm9,%xmm3
12170  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12171  DB  15,95,216                           ; maxps         %xmm0,%xmm3
12172  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12173  DB  102,15,110,192                      ; movd          %eax,%xmm0
12174  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12175  DB  15,93,216                           ; minps         %xmm0,%xmm3
12176  DB  72,173                              ; lods          %ds:(%rsi),%rax
12177  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12178  DB  255,224                             ; jmpq          *%rax
12179
12180PUBLIC _sk_lab_to_xyz_sse41
12181_sk_lab_to_xyz_sse41 LABEL PROC
12182  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
12183  DB  184,0,0,200,66                      ; mov           $0x42c80000,%eax
12184  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
12185  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
12186  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12187  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
12188  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
12189  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12190  DB  69,15,89,194                        ; mulps         %xmm10,%xmm8
12191  DB  184,0,0,0,67                        ; mov           $0x43000000,%eax
12192  DB  102,15,110,200                      ; movd          %eax,%xmm1
12193  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12194  DB  68,15,92,193                        ; subps         %xmm1,%xmm8
12195  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
12196  DB  68,15,92,209                        ; subps         %xmm1,%xmm10
12197  DB  184,0,0,128,65                      ; mov           $0x41800000,%eax
12198  DB  102,15,110,208                      ; movd          %eax,%xmm2
12199  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12200  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
12201  DB  184,203,61,13,60                    ; mov           $0x3c0d3dcb,%eax
12202  DB  102,15,110,200                      ; movd          %eax,%xmm1
12203  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12204  DB  15,89,202                           ; mulps         %xmm2,%xmm1
12205  DB  184,111,18,3,59                     ; mov           $0x3b03126f,%eax
12206  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
12207  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
12208  DB  69,15,89,232                        ; mulps         %xmm8,%xmm13
12209  DB  68,15,88,233                        ; addps         %xmm1,%xmm13
12210  DB  184,10,215,163,59                   ; mov           $0x3ba3d70a,%eax
12211  DB  102,15,110,192                      ; movd          %eax,%xmm0
12212  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12213  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
12214  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
12215  DB  68,15,92,200                        ; subps         %xmm0,%xmm9
12216  DB  69,15,40,221                        ; movaps        %xmm13,%xmm11
12217  DB  69,15,89,219                        ; mulps         %xmm11,%xmm11
12218  DB  69,15,89,221                        ; mulps         %xmm13,%xmm11
12219  DB  184,194,24,17,60                    ; mov           $0x3c1118c2,%eax
12220  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
12221  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12222  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12223  DB  65,15,194,195,1                     ; cmpltps       %xmm11,%xmm0
12224  DB  184,203,61,13,62                    ; mov           $0x3e0d3dcb,%eax
12225  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
12226  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12227  DB  69,15,92,234                        ; subps         %xmm10,%xmm13
12228  DB  184,80,128,3,62                     ; mov           $0x3e038050,%eax
12229  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
12230  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12231  DB  69,15,89,236                        ; mulps         %xmm12,%xmm13
12232  DB  102,69,15,56,20,235                 ; blendvps      %xmm0,%xmm11,%xmm13
12233  DB  15,40,209                           ; movaps        %xmm1,%xmm2
12234  DB  15,89,210                           ; mulps         %xmm2,%xmm2
12235  DB  15,89,209                           ; mulps         %xmm1,%xmm2
12236  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12237  DB  15,194,194,1                        ; cmpltps       %xmm2,%xmm0
12238  DB  65,15,92,202                        ; subps         %xmm10,%xmm1
12239  DB  65,15,89,204                        ; mulps         %xmm12,%xmm1
12240  DB  102,15,56,20,202                    ; blendvps      %xmm0,%xmm2,%xmm1
12241  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
12242  DB  15,89,210                           ; mulps         %xmm2,%xmm2
12243  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
12244  DB  68,15,194,194,1                     ; cmpltps       %xmm2,%xmm8
12245  DB  69,15,92,202                        ; subps         %xmm10,%xmm9
12246  DB  69,15,89,204                        ; mulps         %xmm12,%xmm9
12247  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12248  DB  102,68,15,56,20,202                 ; blendvps      %xmm0,%xmm2,%xmm9
12249  DB  184,31,215,118,63                   ; mov           $0x3f76d71f,%eax
12250  DB  102,15,110,192                      ; movd          %eax,%xmm0
12251  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12252  DB  65,15,89,197                        ; mulps         %xmm13,%xmm0
12253  DB  184,246,64,83,63                    ; mov           $0x3f5340f6,%eax
12254  DB  102,15,110,208                      ; movd          %eax,%xmm2
12255  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12256  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
12257  DB  72,173                              ; lods          %ds:(%rsi),%rax
12258  DB  255,224                             ; jmpq          *%rax
12259
12260PUBLIC _sk_load_a8_sse41
12261_sk_load_a8_sse41 LABEL PROC
12262  DB  72,173                              ; lods          %ds:(%rsi),%rax
12263  DB  72,139,0                            ; mov           (%rax),%rax
12264  DB  102,15,56,49,4,56                   ; pmovzxbd      (%rax,%rdi,1),%xmm0
12265  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12266  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12267  DB  102,15,110,216                      ; movd          %eax,%xmm3
12268  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12269  DB  15,89,216                           ; mulps         %xmm0,%xmm3
12270  DB  72,173                              ; lods          %ds:(%rsi),%rax
12271  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12272  DB  15,87,201                           ; xorps         %xmm1,%xmm1
12273  DB  15,87,210                           ; xorps         %xmm2,%xmm2
12274  DB  255,224                             ; jmpq          *%rax
12275
12276PUBLIC _sk_gather_a8_sse41
12277_sk_gather_a8_sse41 LABEL PROC
12278  DB  72,173                              ; lods          %ds:(%rsi),%rax
12279  DB  76,139,8                            ; mov           (%rax),%r9
12280  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12281  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12282  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12283  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12284  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12285  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12286  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12287  DB  65,137,192                          ; mov           %eax,%r8d
12288  DB  72,193,232,32                       ; shr           $0x20,%rax
12289  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12290  DB  65,137,202                          ; mov           %ecx,%r10d
12291  DB  72,193,233,32                       ; shr           $0x20,%rcx
12292  DB  102,67,15,58,32,4,17,0              ; pinsrb        $0x0,(%r9,%r10,1),%xmm0
12293  DB  102,65,15,58,32,4,9,1               ; pinsrb        $0x1,(%r9,%rcx,1),%xmm0
12294  DB  67,15,182,12,1                      ; movzbl        (%r9,%r8,1),%ecx
12295  DB  102,15,58,32,193,2                  ; pinsrb        $0x2,%ecx,%xmm0
12296  DB  65,15,182,4,1                       ; movzbl        (%r9,%rax,1),%eax
12297  DB  102,15,58,32,192,3                  ; pinsrb        $0x3,%eax,%xmm0
12298  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
12299  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12300  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12301  DB  102,15,110,216                      ; movd          %eax,%xmm3
12302  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12303  DB  15,89,216                           ; mulps         %xmm0,%xmm3
12304  DB  72,173                              ; lods          %ds:(%rsi),%rax
12305  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12306  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
12307  DB  102,15,239,210                      ; pxor          %xmm2,%xmm2
12308  DB  255,224                             ; jmpq          *%rax
12309
12310PUBLIC _sk_store_a8_sse41
12311_sk_store_a8_sse41 LABEL PROC
12312  DB  72,173                              ; lods          %ds:(%rsi),%rax
12313  DB  72,139,0                            ; mov           (%rax),%rax
12314  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
12315  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12316  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12317  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
12318  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
12319  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
12320  DB  102,69,15,103,192                   ; packuswb      %xmm8,%xmm8
12321  DB  102,68,15,126,4,56                  ; movd          %xmm8,(%rax,%rdi,1)
12322  DB  72,173                              ; lods          %ds:(%rsi),%rax
12323  DB  255,224                             ; jmpq          *%rax
12324
12325PUBLIC _sk_load_g8_sse41
12326_sk_load_g8_sse41 LABEL PROC
12327  DB  72,173                              ; lods          %ds:(%rsi),%rax
12328  DB  72,139,0                            ; mov           (%rax),%rax
12329  DB  102,15,56,49,4,56                   ; pmovzxbd      (%rax,%rdi,1),%xmm0
12330  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12331  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12332  DB  102,15,110,192                      ; movd          %eax,%xmm0
12333  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12334  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12335  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12336  DB  102,15,110,216                      ; movd          %eax,%xmm3
12337  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12338  DB  72,173                              ; lods          %ds:(%rsi),%rax
12339  DB  15,40,200                           ; movaps        %xmm0,%xmm1
12340  DB  15,40,208                           ; movaps        %xmm0,%xmm2
12341  DB  255,224                             ; jmpq          *%rax
12342
12343PUBLIC _sk_gather_g8_sse41
12344_sk_gather_g8_sse41 LABEL PROC
12345  DB  72,173                              ; lods          %ds:(%rsi),%rax
12346  DB  76,139,8                            ; mov           (%rax),%r9
12347  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12348  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12349  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12350  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12351  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12352  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12353  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12354  DB  65,137,192                          ; mov           %eax,%r8d
12355  DB  72,193,232,32                       ; shr           $0x20,%rax
12356  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12357  DB  65,137,202                          ; mov           %ecx,%r10d
12358  DB  72,193,233,32                       ; shr           $0x20,%rcx
12359  DB  102,67,15,58,32,4,17,0              ; pinsrb        $0x0,(%r9,%r10,1),%xmm0
12360  DB  102,65,15,58,32,4,9,1               ; pinsrb        $0x1,(%r9,%rcx,1),%xmm0
12361  DB  67,15,182,12,1                      ; movzbl        (%r9,%r8,1),%ecx
12362  DB  102,15,58,32,193,2                  ; pinsrb        $0x2,%ecx,%xmm0
12363  DB  65,15,182,4,1                       ; movzbl        (%r9,%rax,1),%eax
12364  DB  102,15,58,32,192,3                  ; pinsrb        $0x3,%eax,%xmm0
12365  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
12366  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12367  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12368  DB  102,15,110,192                      ; movd          %eax,%xmm0
12369  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12370  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12371  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12372  DB  102,15,110,216                      ; movd          %eax,%xmm3
12373  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12374  DB  72,173                              ; lods          %ds:(%rsi),%rax
12375  DB  15,40,200                           ; movaps        %xmm0,%xmm1
12376  DB  15,40,208                           ; movaps        %xmm0,%xmm2
12377  DB  255,224                             ; jmpq          *%rax
12378
12379PUBLIC _sk_gather_i8_sse41
12380_sk_gather_i8_sse41 LABEL PROC
12381  DB  72,173                              ; lods          %ds:(%rsi),%rax
12382  DB  73,137,192                          ; mov           %rax,%r8
12383  DB  77,133,192                          ; test          %r8,%r8
12384  DB  116,5                               ; je            25c0 <_sk_gather_i8_sse41+0xf>
12385  DB  76,137,192                          ; mov           %r8,%rax
12386  DB  235,2                               ; jmp           25c2 <_sk_gather_i8_sse41+0x11>
12387  DB  72,173                              ; lods          %ds:(%rsi),%rax
12388  DB  76,139,16                           ; mov           (%rax),%r10
12389  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12390  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12391  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12392  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12393  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12394  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12395  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12396  DB  65,137,193                          ; mov           %eax,%r9d
12397  DB  72,193,232,32                       ; shr           $0x20,%rax
12398  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12399  DB  65,137,203                          ; mov           %ecx,%r11d
12400  DB  72,193,233,32                       ; shr           $0x20,%rcx
12401  DB  102,67,15,58,32,4,26,0              ; pinsrb        $0x0,(%r10,%r11,1),%xmm0
12402  DB  102,65,15,58,32,4,10,1              ; pinsrb        $0x1,(%r10,%rcx,1),%xmm0
12403  DB  102,67,15,58,32,4,10,2              ; pinsrb        $0x2,(%r10,%r9,1),%xmm0
12404  DB  102,65,15,58,32,4,2,3               ; pinsrb        $0x3,(%r10,%rax,1),%xmm0
12405  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
12406  DB  102,73,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%r9
12407  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12408  DB  73,139,64,8                         ; mov           0x8(%r8),%rax
12409  DB  65,137,200                          ; mov           %ecx,%r8d
12410  DB  72,193,233,30                       ; shr           $0x1e,%rcx
12411  DB  69,137,202                          ; mov           %r9d,%r10d
12412  DB  73,193,233,30                       ; shr           $0x1e,%r9
12413  DB  102,66,15,110,28,128                ; movd          (%rax,%r8,4),%xmm3
12414  DB  102,15,58,34,28,8,1                 ; pinsrd        $0x1,(%rax,%rcx,1),%xmm3
12415  DB  102,66,15,58,34,28,144,2            ; pinsrd        $0x2,(%rax,%r10,4),%xmm3
12416  DB  102,66,15,58,34,28,8,3              ; pinsrd        $0x3,(%rax,%r9,1),%xmm3
12417  DB  184,255,0,0,0                       ; mov           $0xff,%eax
12418  DB  102,15,110,192                      ; movd          %eax,%xmm0
12419  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12420  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
12421  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
12422  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
12423  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
12424  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
12425  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
12426  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
12427  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12428  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12429  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
12430  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12431  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
12432  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
12433  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
12434  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
12435  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12436  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
12437  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12438  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12439  DB  72,173                              ; lods          %ds:(%rsi),%rax
12440  DB  255,224                             ; jmpq          *%rax
12441
12442PUBLIC _sk_load_565_sse41
12443_sk_load_565_sse41 LABEL PROC
12444  DB  72,173                              ; lods          %ds:(%rsi),%rax
12445  DB  72,139,0                            ; mov           (%rax),%rax
12446  DB  102,15,56,51,20,120                 ; pmovzxwd      (%rax,%rdi,2),%xmm2
12447  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
12448  DB  102,15,110,192                      ; movd          %eax,%xmm0
12449  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12450  DB  102,15,219,194                      ; pand          %xmm2,%xmm0
12451  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12452  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
12453  DB  102,15,110,192                      ; movd          %eax,%xmm0
12454  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12455  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12456  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
12457  DB  102,15,110,200                      ; movd          %eax,%xmm1
12458  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
12459  DB  102,15,219,202                      ; pand          %xmm2,%xmm1
12460  DB  15,91,217                           ; cvtdq2ps      %xmm1,%xmm3
12461  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
12462  DB  102,15,110,200                      ; movd          %eax,%xmm1
12463  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12464  DB  15,89,203                           ; mulps         %xmm3,%xmm1
12465  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
12466  DB  102,15,110,216                      ; movd          %eax,%xmm3
12467  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
12468  DB  102,15,219,218                      ; pand          %xmm2,%xmm3
12469  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12470  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
12471  DB  102,15,110,208                      ; movd          %eax,%xmm2
12472  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12473  DB  15,89,211                           ; mulps         %xmm3,%xmm2
12474  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12475  DB  102,15,110,216                      ; movd          %eax,%xmm3
12476  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12477  DB  72,173                              ; lods          %ds:(%rsi),%rax
12478  DB  255,224                             ; jmpq          *%rax
12479
12480PUBLIC _sk_gather_565_sse41
12481_sk_gather_565_sse41 LABEL PROC
12482  DB  72,173                              ; lods          %ds:(%rsi),%rax
12483  DB  76,139,8                            ; mov           (%rax),%r9
12484  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12485  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12486  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12487  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12488  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12489  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12490  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12491  DB  65,137,192                          ; mov           %eax,%r8d
12492  DB  72,193,232,32                       ; shr           $0x20,%rax
12493  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12494  DB  65,137,202                          ; mov           %ecx,%r10d
12495  DB  72,193,233,32                       ; shr           $0x20,%rcx
12496  DB  102,67,15,196,4,81,0                ; pinsrw        $0x0,(%r9,%r10,2),%xmm0
12497  DB  102,65,15,196,4,73,1                ; pinsrw        $0x1,(%r9,%rcx,2),%xmm0
12498  DB  67,15,183,12,65                     ; movzwl        (%r9,%r8,2),%ecx
12499  DB  102,15,196,193,2                    ; pinsrw        $0x2,%ecx,%xmm0
12500  DB  65,15,183,4,65                      ; movzwl        (%r9,%rax,2),%eax
12501  DB  102,15,196,192,3                    ; pinsrw        $0x3,%eax,%xmm0
12502  DB  102,15,56,51,208                    ; pmovzxwd      %xmm0,%xmm2
12503  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
12504  DB  102,15,110,192                      ; movd          %eax,%xmm0
12505  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12506  DB  102,15,219,194                      ; pand          %xmm2,%xmm0
12507  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12508  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
12509  DB  102,15,110,192                      ; movd          %eax,%xmm0
12510  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12511  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12512  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
12513  DB  102,15,110,200                      ; movd          %eax,%xmm1
12514  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
12515  DB  102,15,219,202                      ; pand          %xmm2,%xmm1
12516  DB  15,91,217                           ; cvtdq2ps      %xmm1,%xmm3
12517  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
12518  DB  102,15,110,200                      ; movd          %eax,%xmm1
12519  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12520  DB  15,89,203                           ; mulps         %xmm3,%xmm1
12521  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
12522  DB  102,15,110,216                      ; movd          %eax,%xmm3
12523  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
12524  DB  102,15,219,218                      ; pand          %xmm2,%xmm3
12525  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12526  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
12527  DB  102,15,110,208                      ; movd          %eax,%xmm2
12528  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12529  DB  15,89,211                           ; mulps         %xmm3,%xmm2
12530  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12531  DB  102,15,110,216                      ; movd          %eax,%xmm3
12532  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12533  DB  72,173                              ; lods          %ds:(%rsi),%rax
12534  DB  255,224                             ; jmpq          *%rax
12535
12536PUBLIC _sk_store_565_sse41
12537_sk_store_565_sse41 LABEL PROC
12538  DB  72,173                              ; lods          %ds:(%rsi),%rax
12539  DB  72,139,0                            ; mov           (%rax),%rax
12540  DB  185,0,0,248,65                      ; mov           $0x41f80000,%ecx
12541  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12542  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12543  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12544  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12545  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12546  DB  102,65,15,114,241,11                ; pslld         $0xb,%xmm9
12547  DB  185,0,0,124,66                      ; mov           $0x427c0000,%ecx
12548  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
12549  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12550  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
12551  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
12552  DB  102,65,15,114,242,5                 ; pslld         $0x5,%xmm10
12553  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
12554  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
12555  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
12556  DB  102,69,15,86,194                    ; orpd          %xmm10,%xmm8
12557  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
12558  DB  102,68,15,214,4,120                 ; movq          %xmm8,(%rax,%rdi,2)
12559  DB  72,173                              ; lods          %ds:(%rsi),%rax
12560  DB  255,224                             ; jmpq          *%rax
12561
12562PUBLIC _sk_load_4444_sse41
12563_sk_load_4444_sse41 LABEL PROC
12564  DB  72,173                              ; lods          %ds:(%rsi),%rax
12565  DB  72,139,0                            ; mov           (%rax),%rax
12566  DB  102,68,15,56,51,12,120              ; pmovzxwd      (%rax,%rdi,2),%xmm9
12567  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
12568  DB  102,15,110,192                      ; movd          %eax,%xmm0
12569  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12570  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
12571  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12572  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
12573  DB  102,15,110,192                      ; movd          %eax,%xmm0
12574  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12575  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12576  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
12577  DB  102,15,110,200                      ; movd          %eax,%xmm1
12578  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
12579  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
12580  DB  15,91,209                           ; cvtdq2ps      %xmm1,%xmm2
12581  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
12582  DB  102,15,110,200                      ; movd          %eax,%xmm1
12583  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12584  DB  15,89,202                           ; mulps         %xmm2,%xmm1
12585  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
12586  DB  102,15,110,208                      ; movd          %eax,%xmm2
12587  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12588  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
12589  DB  68,15,91,194                        ; cvtdq2ps      %xmm2,%xmm8
12590  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
12591  DB  102,15,110,208                      ; movd          %eax,%xmm2
12592  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12593  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12594  DB  184,15,0,0,0                        ; mov           $0xf,%eax
12595  DB  102,15,110,216                      ; movd          %eax,%xmm3
12596  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
12597  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
12598  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
12599  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
12600  DB  102,15,110,216                      ; movd          %eax,%xmm3
12601  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12602  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12603  DB  72,173                              ; lods          %ds:(%rsi),%rax
12604  DB  255,224                             ; jmpq          *%rax
12605
12606PUBLIC _sk_gather_4444_sse41
12607_sk_gather_4444_sse41 LABEL PROC
12608  DB  72,173                              ; lods          %ds:(%rsi),%rax
12609  DB  76,139,8                            ; mov           (%rax),%r9
12610  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12611  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12612  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12613  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12614  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12615  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12616  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12617  DB  65,137,192                          ; mov           %eax,%r8d
12618  DB  72,193,232,32                       ; shr           $0x20,%rax
12619  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12620  DB  65,137,202                          ; mov           %ecx,%r10d
12621  DB  72,193,233,32                       ; shr           $0x20,%rcx
12622  DB  102,67,15,196,4,81,0                ; pinsrw        $0x0,(%r9,%r10,2),%xmm0
12623  DB  102,65,15,196,4,73,1                ; pinsrw        $0x1,(%r9,%rcx,2),%xmm0
12624  DB  67,15,183,12,65                     ; movzwl        (%r9,%r8,2),%ecx
12625  DB  102,15,196,193,2                    ; pinsrw        $0x2,%ecx,%xmm0
12626  DB  65,15,183,4,65                      ; movzwl        (%r9,%rax,2),%eax
12627  DB  102,15,196,192,3                    ; pinsrw        $0x3,%eax,%xmm0
12628  DB  102,68,15,56,51,200                 ; pmovzxwd      %xmm0,%xmm9
12629  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
12630  DB  102,15,110,192                      ; movd          %eax,%xmm0
12631  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12632  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
12633  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12634  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
12635  DB  102,15,110,192                      ; movd          %eax,%xmm0
12636  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12637  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12638  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
12639  DB  102,15,110,200                      ; movd          %eax,%xmm1
12640  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
12641  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
12642  DB  15,91,209                           ; cvtdq2ps      %xmm1,%xmm2
12643  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
12644  DB  102,15,110,200                      ; movd          %eax,%xmm1
12645  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12646  DB  15,89,202                           ; mulps         %xmm2,%xmm1
12647  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
12648  DB  102,15,110,208                      ; movd          %eax,%xmm2
12649  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12650  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
12651  DB  68,15,91,194                        ; cvtdq2ps      %xmm2,%xmm8
12652  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
12653  DB  102,15,110,208                      ; movd          %eax,%xmm2
12654  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12655  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12656  DB  184,15,0,0,0                        ; mov           $0xf,%eax
12657  DB  102,15,110,216                      ; movd          %eax,%xmm3
12658  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
12659  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
12660  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
12661  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
12662  DB  102,15,110,216                      ; movd          %eax,%xmm3
12663  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12664  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12665  DB  72,173                              ; lods          %ds:(%rsi),%rax
12666  DB  255,224                             ; jmpq          *%rax
12667
12668PUBLIC _sk_store_4444_sse41
12669_sk_store_4444_sse41 LABEL PROC
12670  DB  72,173                              ; lods          %ds:(%rsi),%rax
12671  DB  72,139,0                            ; mov           (%rax),%rax
12672  DB  185,0,0,112,65                      ; mov           $0x41700000,%ecx
12673  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12674  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12675  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12676  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12677  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12678  DB  102,65,15,114,241,12                ; pslld         $0xc,%xmm9
12679  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
12680  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
12681  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
12682  DB  102,65,15,114,242,8                 ; pslld         $0x8,%xmm10
12683  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
12684  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12685  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
12686  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12687  DB  102,65,15,114,241,4                 ; pslld         $0x4,%xmm9
12688  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
12689  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
12690  DB  102,69,15,86,193                    ; orpd          %xmm9,%xmm8
12691  DB  102,69,15,86,194                    ; orpd          %xmm10,%xmm8
12692  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
12693  DB  102,68,15,214,4,120                 ; movq          %xmm8,(%rax,%rdi,2)
12694  DB  72,173                              ; lods          %ds:(%rsi),%rax
12695  DB  255,224                             ; jmpq          *%rax
12696
12697PUBLIC _sk_load_8888_sse41
12698_sk_load_8888_sse41 LABEL PROC
12699  DB  72,173                              ; lods          %ds:(%rsi),%rax
12700  DB  72,139,0                            ; mov           (%rax),%rax
12701  DB  243,15,111,28,184                   ; movdqu        (%rax,%rdi,4),%xmm3
12702  DB  184,255,0,0,0                       ; mov           $0xff,%eax
12703  DB  102,15,110,192                      ; movd          %eax,%xmm0
12704  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12705  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
12706  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
12707  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
12708  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
12709  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
12710  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
12711  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
12712  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12713  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12714  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
12715  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12716  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
12717  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
12718  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
12719  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
12720  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12721  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
12722  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12723  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12724  DB  72,173                              ; lods          %ds:(%rsi),%rax
12725  DB  255,224                             ; jmpq          *%rax
12726
12727PUBLIC _sk_gather_8888_sse41
12728_sk_gather_8888_sse41 LABEL PROC
12729  DB  72,173                              ; lods          %ds:(%rsi),%rax
12730  DB  76,139,8                            ; mov           (%rax),%r9
12731  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12732  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12733  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12734  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12735  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12736  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12737  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
12738  DB  65,137,192                          ; mov           %eax,%r8d
12739  DB  72,193,232,32                       ; shr           $0x20,%rax
12740  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
12741  DB  65,137,202                          ; mov           %ecx,%r10d
12742  DB  72,193,233,32                       ; shr           $0x20,%rcx
12743  DB  102,67,15,110,28,129                ; movd          (%r9,%r8,4),%xmm3
12744  DB  102,65,15,58,34,28,129,1            ; pinsrd        $0x1,(%r9,%rax,4),%xmm3
12745  DB  102,67,15,58,34,28,145,2            ; pinsrd        $0x2,(%r9,%r10,4),%xmm3
12746  DB  102,65,15,58,34,28,137,3            ; pinsrd        $0x3,(%r9,%rcx,4),%xmm3
12747  DB  184,255,0,0,0                       ; mov           $0xff,%eax
12748  DB  102,15,110,192                      ; movd          %eax,%xmm0
12749  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12750  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
12751  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
12752  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
12753  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
12754  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
12755  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
12756  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
12757  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12758  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12759  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
12760  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12761  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
12762  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
12763  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
12764  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
12765  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12766  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
12767  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12768  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12769  DB  72,173                              ; lods          %ds:(%rsi),%rax
12770  DB  255,224                             ; jmpq          *%rax
12771
12772PUBLIC _sk_store_8888_sse41
12773_sk_store_8888_sse41 LABEL PROC
12774  DB  72,173                              ; lods          %ds:(%rsi),%rax
12775  DB  72,139,0                            ; mov           (%rax),%rax
12776  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
12777  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12778  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12779  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12780  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12781  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12782  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
12783  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
12784  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
12785  DB  102,65,15,114,242,8                 ; pslld         $0x8,%xmm10
12786  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
12787  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12788  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
12789  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12790  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
12791  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
12792  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
12793  DB  102,65,15,114,240,24                ; pslld         $0x18,%xmm8
12794  DB  102,69,15,235,193                   ; por           %xmm9,%xmm8
12795  DB  102,69,15,235,194                   ; por           %xmm10,%xmm8
12796  DB  243,68,15,127,4,184                 ; movdqu        %xmm8,(%rax,%rdi,4)
12797  DB  72,173                              ; lods          %ds:(%rsi),%rax
12798  DB  255,224                             ; jmpq          *%rax
12799
12800PUBLIC _sk_load_f16_sse41
12801_sk_load_f16_sse41 LABEL PROC
12802  DB  72,173                              ; lods          %ds:(%rsi),%rax
12803  DB  72,139,0                            ; mov           (%rax),%rax
12804  DB  243,15,111,4,248                    ; movdqu        (%rax,%rdi,8),%xmm0
12805  DB  243,15,111,76,248,16                ; movdqu        0x10(%rax,%rdi,8),%xmm1
12806  DB  102,68,15,111,200                   ; movdqa        %xmm0,%xmm9
12807  DB  102,68,15,97,201                    ; punpcklwd     %xmm1,%xmm9
12808  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
12809  DB  102,69,15,111,217                   ; movdqa        %xmm9,%xmm11
12810  DB  102,68,15,97,216                    ; punpcklwd     %xmm0,%xmm11
12811  DB  102,68,15,105,200                   ; punpckhwd     %xmm0,%xmm9
12812  DB  102,65,15,56,51,203                 ; pmovzxwd      %xmm11,%xmm1
12813  DB  102,68,15,111,5,114,22,0,0          ; movdqa        0x1672(%rip),%xmm8        # 42f0 <_sk_callback_sse41+0x3d4>
12814  DB  102,15,111,209                      ; movdqa        %xmm1,%xmm2
12815  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
12816  DB  102,15,239,202                      ; pxor          %xmm2,%xmm1
12817  DB  102,15,111,29,109,22,0,0            ; movdqa        0x166d(%rip),%xmm3        # 4300 <_sk_callback_sse41+0x3e4>
12818  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
12819  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
12820  DB  102,15,56,63,195                    ; pmaxud        %xmm3,%xmm0
12821  DB  102,15,118,193                      ; pcmpeqd       %xmm1,%xmm0
12822  DB  102,15,114,241,13                   ; pslld         $0xd,%xmm1
12823  DB  102,15,235,202                      ; por           %xmm2,%xmm1
12824  DB  102,68,15,111,21,89,22,0,0          ; movdqa        0x1659(%rip),%xmm10        # 4310 <_sk_callback_sse41+0x3f4>
12825  DB  102,65,15,254,202                   ; paddd         %xmm10,%xmm1
12826  DB  102,15,219,193                      ; pand          %xmm1,%xmm0
12827  DB  102,65,15,115,219,8                 ; psrldq        $0x8,%xmm11
12828  DB  102,69,15,56,51,219                 ; pmovzxwd      %xmm11,%xmm11
12829  DB  102,65,15,111,211                   ; movdqa        %xmm11,%xmm2
12830  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
12831  DB  102,68,15,239,218                   ; pxor          %xmm2,%xmm11
12832  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
12833  DB  102,65,15,111,203                   ; movdqa        %xmm11,%xmm1
12834  DB  102,15,56,63,203                    ; pmaxud        %xmm3,%xmm1
12835  DB  102,65,15,118,203                   ; pcmpeqd       %xmm11,%xmm1
12836  DB  102,65,15,114,243,13                ; pslld         $0xd,%xmm11
12837  DB  102,68,15,235,218                   ; por           %xmm2,%xmm11
12838  DB  102,69,15,254,218                   ; paddd         %xmm10,%xmm11
12839  DB  102,65,15,219,203                   ; pand          %xmm11,%xmm1
12840  DB  102,69,15,56,51,217                 ; pmovzxwd      %xmm9,%xmm11
12841  DB  102,69,15,111,227                   ; movdqa        %xmm11,%xmm12
12842  DB  102,69,15,219,224                   ; pand          %xmm8,%xmm12
12843  DB  102,69,15,239,220                   ; pxor          %xmm12,%xmm11
12844  DB  102,65,15,114,244,16                ; pslld         $0x10,%xmm12
12845  DB  102,65,15,111,211                   ; movdqa        %xmm11,%xmm2
12846  DB  102,15,56,63,211                    ; pmaxud        %xmm3,%xmm2
12847  DB  102,65,15,118,211                   ; pcmpeqd       %xmm11,%xmm2
12848  DB  102,65,15,114,243,13                ; pslld         $0xd,%xmm11
12849  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
12850  DB  102,69,15,254,218                   ; paddd         %xmm10,%xmm11
12851  DB  102,65,15,219,211                   ; pand          %xmm11,%xmm2
12852  DB  102,65,15,115,217,8                 ; psrldq        $0x8,%xmm9
12853  DB  102,69,15,56,51,201                 ; pmovzxwd      %xmm9,%xmm9
12854  DB  102,69,15,219,193                   ; pand          %xmm9,%xmm8
12855  DB  102,69,15,239,200                   ; pxor          %xmm8,%xmm9
12856  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
12857  DB  102,65,15,56,63,217                 ; pmaxud        %xmm9,%xmm3
12858  DB  102,65,15,118,217                   ; pcmpeqd       %xmm9,%xmm3
12859  DB  102,65,15,114,241,13                ; pslld         $0xd,%xmm9
12860  DB  102,69,15,235,200                   ; por           %xmm8,%xmm9
12861  DB  102,69,15,254,202                   ; paddd         %xmm10,%xmm9
12862  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
12863  DB  72,173                              ; lods          %ds:(%rsi),%rax
12864  DB  255,224                             ; jmpq          *%rax
12865
12866PUBLIC _sk_gather_f16_sse41
12867_sk_gather_f16_sse41 LABEL PROC
12868  DB  72,173                              ; lods          %ds:(%rsi),%rax
12869  DB  76,139,8                            ; mov           (%rax),%r9
12870  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12871  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12872  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12873  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12874  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12875  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12876  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
12877  DB  65,137,192                          ; mov           %eax,%r8d
12878  DB  72,193,232,32                       ; shr           $0x20,%rax
12879  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
12880  DB  65,137,202                          ; mov           %ecx,%r10d
12881  DB  72,193,233,32                       ; shr           $0x20,%rcx
12882  DB  243,65,15,126,4,201                 ; movq          (%r9,%rcx,8),%xmm0
12883  DB  243,67,15,126,12,209                ; movq          (%r9,%r10,8),%xmm1
12884  DB  102,15,108,200                      ; punpcklqdq    %xmm0,%xmm1
12885  DB  243,65,15,126,4,193                 ; movq          (%r9,%rax,8),%xmm0
12886  DB  243,67,15,126,20,193                ; movq          (%r9,%r8,8),%xmm2
12887  DB  102,15,108,208                      ; punpcklqdq    %xmm0,%xmm2
12888  DB  102,68,15,111,202                   ; movdqa        %xmm2,%xmm9
12889  DB  102,68,15,97,201                    ; punpcklwd     %xmm1,%xmm9
12890  DB  102,15,105,209                      ; punpckhwd     %xmm1,%xmm2
12891  DB  102,69,15,111,217                   ; movdqa        %xmm9,%xmm11
12892  DB  102,68,15,97,218                    ; punpcklwd     %xmm2,%xmm11
12893  DB  102,68,15,105,202                   ; punpckhwd     %xmm2,%xmm9
12894  DB  102,65,15,56,51,203                 ; pmovzxwd      %xmm11,%xmm1
12895  DB  102,68,15,111,5,23,21,0,0           ; movdqa        0x1517(%rip),%xmm8        # 4320 <_sk_callback_sse41+0x404>
12896  DB  102,15,111,209                      ; movdqa        %xmm1,%xmm2
12897  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
12898  DB  102,15,239,202                      ; pxor          %xmm2,%xmm1
12899  DB  102,15,111,29,18,21,0,0             ; movdqa        0x1512(%rip),%xmm3        # 4330 <_sk_callback_sse41+0x414>
12900  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
12901  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
12902  DB  102,15,56,63,195                    ; pmaxud        %xmm3,%xmm0
12903  DB  102,15,118,193                      ; pcmpeqd       %xmm1,%xmm0
12904  DB  102,15,114,241,13                   ; pslld         $0xd,%xmm1
12905  DB  102,15,235,202                      ; por           %xmm2,%xmm1
12906  DB  102,68,15,111,21,254,20,0,0         ; movdqa        0x14fe(%rip),%xmm10        # 4340 <_sk_callback_sse41+0x424>
12907  DB  102,65,15,254,202                   ; paddd         %xmm10,%xmm1
12908  DB  102,15,219,193                      ; pand          %xmm1,%xmm0
12909  DB  102,65,15,115,219,8                 ; psrldq        $0x8,%xmm11
12910  DB  102,69,15,56,51,219                 ; pmovzxwd      %xmm11,%xmm11
12911  DB  102,65,15,111,211                   ; movdqa        %xmm11,%xmm2
12912  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
12913  DB  102,68,15,239,218                   ; pxor          %xmm2,%xmm11
12914  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
12915  DB  102,65,15,111,203                   ; movdqa        %xmm11,%xmm1
12916  DB  102,15,56,63,203                    ; pmaxud        %xmm3,%xmm1
12917  DB  102,65,15,118,203                   ; pcmpeqd       %xmm11,%xmm1
12918  DB  102,65,15,114,243,13                ; pslld         $0xd,%xmm11
12919  DB  102,68,15,235,218                   ; por           %xmm2,%xmm11
12920  DB  102,69,15,254,218                   ; paddd         %xmm10,%xmm11
12921  DB  102,65,15,219,203                   ; pand          %xmm11,%xmm1
12922  DB  102,69,15,56,51,217                 ; pmovzxwd      %xmm9,%xmm11
12923  DB  102,69,15,111,227                   ; movdqa        %xmm11,%xmm12
12924  DB  102,69,15,219,224                   ; pand          %xmm8,%xmm12
12925  DB  102,69,15,239,220                   ; pxor          %xmm12,%xmm11
12926  DB  102,65,15,114,244,16                ; pslld         $0x10,%xmm12
12927  DB  102,65,15,111,211                   ; movdqa        %xmm11,%xmm2
12928  DB  102,15,56,63,211                    ; pmaxud        %xmm3,%xmm2
12929  DB  102,65,15,118,211                   ; pcmpeqd       %xmm11,%xmm2
12930  DB  102,65,15,114,243,13                ; pslld         $0xd,%xmm11
12931  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
12932  DB  102,69,15,254,218                   ; paddd         %xmm10,%xmm11
12933  DB  102,65,15,219,211                   ; pand          %xmm11,%xmm2
12934  DB  102,65,15,115,217,8                 ; psrldq        $0x8,%xmm9
12935  DB  102,69,15,56,51,201                 ; pmovzxwd      %xmm9,%xmm9
12936  DB  102,69,15,219,193                   ; pand          %xmm9,%xmm8
12937  DB  102,69,15,239,200                   ; pxor          %xmm8,%xmm9
12938  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
12939  DB  102,65,15,56,63,217                 ; pmaxud        %xmm9,%xmm3
12940  DB  102,65,15,118,217                   ; pcmpeqd       %xmm9,%xmm3
12941  DB  102,65,15,114,241,13                ; pslld         $0xd,%xmm9
12942  DB  102,69,15,235,200                   ; por           %xmm8,%xmm9
12943  DB  102,69,15,254,202                   ; paddd         %xmm10,%xmm9
12944  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
12945  DB  72,173                              ; lods          %ds:(%rsi),%rax
12946  DB  255,224                             ; jmpq          *%rax
12947
12948PUBLIC _sk_store_f16_sse41
12949_sk_store_f16_sse41 LABEL PROC
12950  DB  72,173                              ; lods          %ds:(%rsi),%rax
12951  DB  72,139,0                            ; mov           (%rax),%rax
12952  DB  102,68,15,111,21,52,20,0,0          ; movdqa        0x1434(%rip),%xmm10        # 4350 <_sk_callback_sse41+0x434>
12953  DB  102,68,15,111,224                   ; movdqa        %xmm0,%xmm12
12954  DB  102,68,15,111,232                   ; movdqa        %xmm0,%xmm13
12955  DB  102,69,15,219,234                   ; pand          %xmm10,%xmm13
12956  DB  102,69,15,239,229                   ; pxor          %xmm13,%xmm12
12957  DB  102,68,15,111,13,39,20,0,0          ; movdqa        0x1427(%rip),%xmm9        # 4360 <_sk_callback_sse41+0x444>
12958  DB  102,65,15,114,213,16                ; psrld         $0x10,%xmm13
12959  DB  102,69,15,111,193                   ; movdqa        %xmm9,%xmm8
12960  DB  102,69,15,102,196                   ; pcmpgtd       %xmm12,%xmm8
12961  DB  102,65,15,114,212,13                ; psrld         $0xd,%xmm12
12962  DB  102,68,15,111,29,24,20,0,0          ; movdqa        0x1418(%rip),%xmm11        # 4370 <_sk_callback_sse41+0x454>
12963  DB  102,69,15,235,235                   ; por           %xmm11,%xmm13
12964  DB  102,69,15,254,236                   ; paddd         %xmm12,%xmm13
12965  DB  102,69,15,223,197                   ; pandn         %xmm13,%xmm8
12966  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
12967  DB  102,68,15,111,233                   ; movdqa        %xmm1,%xmm13
12968  DB  102,68,15,111,241                   ; movdqa        %xmm1,%xmm14
12969  DB  102,69,15,219,242                   ; pand          %xmm10,%xmm14
12970  DB  102,69,15,239,238                   ; pxor          %xmm14,%xmm13
12971  DB  102,65,15,114,214,16                ; psrld         $0x10,%xmm14
12972  DB  102,69,15,111,225                   ; movdqa        %xmm9,%xmm12
12973  DB  102,69,15,102,229                   ; pcmpgtd       %xmm13,%xmm12
12974  DB  102,65,15,114,213,13                ; psrld         $0xd,%xmm13
12975  DB  102,69,15,235,243                   ; por           %xmm11,%xmm14
12976  DB  102,69,15,254,245                   ; paddd         %xmm13,%xmm14
12977  DB  102,69,15,223,230                   ; pandn         %xmm14,%xmm12
12978  DB  102,69,15,56,43,228                 ; packusdw      %xmm12,%xmm12
12979  DB  102,68,15,111,242                   ; movdqa        %xmm2,%xmm14
12980  DB  102,68,15,111,250                   ; movdqa        %xmm2,%xmm15
12981  DB  102,69,15,219,250                   ; pand          %xmm10,%xmm15
12982  DB  102,69,15,239,247                   ; pxor          %xmm15,%xmm14
12983  DB  102,65,15,114,215,16                ; psrld         $0x10,%xmm15
12984  DB  102,69,15,111,233                   ; movdqa        %xmm9,%xmm13
12985  DB  102,69,15,102,238                   ; pcmpgtd       %xmm14,%xmm13
12986  DB  102,65,15,114,214,13                ; psrld         $0xd,%xmm14
12987  DB  102,69,15,235,251                   ; por           %xmm11,%xmm15
12988  DB  102,69,15,254,254                   ; paddd         %xmm14,%xmm15
12989  DB  102,69,15,223,239                   ; pandn         %xmm15,%xmm13
12990  DB  102,69,15,56,43,237                 ; packusdw      %xmm13,%xmm13
12991  DB  102,68,15,219,211                   ; pand          %xmm3,%xmm10
12992  DB  102,68,15,111,243                   ; movdqa        %xmm3,%xmm14
12993  DB  102,69,15,239,242                   ; pxor          %xmm10,%xmm14
12994  DB  102,65,15,114,210,16                ; psrld         $0x10,%xmm10
12995  DB  102,69,15,102,206                   ; pcmpgtd       %xmm14,%xmm9
12996  DB  102,65,15,114,214,13                ; psrld         $0xd,%xmm14
12997  DB  102,69,15,235,211                   ; por           %xmm11,%xmm10
12998  DB  102,69,15,254,214                   ; paddd         %xmm14,%xmm10
12999  DB  102,69,15,223,202                   ; pandn         %xmm10,%xmm9
13000  DB  102,69,15,56,43,201                 ; packusdw      %xmm9,%xmm9
13001  DB  102,69,15,97,196                    ; punpcklwd     %xmm12,%xmm8
13002  DB  102,69,15,97,233                    ; punpcklwd     %xmm9,%xmm13
13003  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
13004  DB  102,69,15,98,205                    ; punpckldq     %xmm13,%xmm9
13005  DB  243,68,15,127,12,248                ; movdqu        %xmm9,(%rax,%rdi,8)
13006  DB  102,69,15,106,197                   ; punpckhdq     %xmm13,%xmm8
13007  DB  243,68,15,127,68,248,16             ; movdqu        %xmm8,0x10(%rax,%rdi,8)
13008  DB  72,173                              ; lods          %ds:(%rsi),%rax
13009  DB  255,224                             ; jmpq          *%rax
13010
13011PUBLIC _sk_load_u16_be_sse41
13012_sk_load_u16_be_sse41 LABEL PROC
13013  DB  72,173                              ; lods          %ds:(%rsi),%rax
13014  DB  72,139,0                            ; mov           (%rax),%rax
13015  DB  243,15,111,4,248                    ; movdqu        (%rax,%rdi,8),%xmm0
13016  DB  243,15,111,76,248,16                ; movdqu        0x10(%rax,%rdi,8),%xmm1
13017  DB  102,15,111,208                      ; movdqa        %xmm0,%xmm2
13018  DB  102,15,97,209                       ; punpcklwd     %xmm1,%xmm2
13019  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
13020  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
13021  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
13022  DB  102,15,105,208                      ; punpckhwd     %xmm0,%xmm2
13023  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
13024  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
13025  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13026  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
13027  DB  102,15,113,240,8                    ; psllw         $0x8,%xmm0
13028  DB  102,15,112,217,78                   ; pshufd        $0x4e,%xmm1,%xmm3
13029  DB  102,15,113,209,8                    ; psrlw         $0x8,%xmm1
13030  DB  102,15,235,200                      ; por           %xmm0,%xmm1
13031  DB  102,15,56,51,193                    ; pmovzxwd      %xmm1,%xmm0
13032  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
13033  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13034  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
13035  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
13036  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
13037  DB  102,15,235,217                      ; por           %xmm1,%xmm3
13038  DB  102,15,56,51,203                    ; pmovzxwd      %xmm3,%xmm1
13039  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
13040  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13041  DB  102,68,15,111,202                   ; movdqa        %xmm2,%xmm9
13042  DB  102,65,15,113,241,8                 ; psllw         $0x8,%xmm9
13043  DB  102,15,112,218,78                   ; pshufd        $0x4e,%xmm2,%xmm3
13044  DB  102,15,113,210,8                    ; psrlw         $0x8,%xmm2
13045  DB  102,65,15,235,209                   ; por           %xmm9,%xmm2
13046  DB  102,15,56,51,210                    ; pmovzxwd      %xmm2,%xmm2
13047  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
13048  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
13049  DB  102,68,15,111,203                   ; movdqa        %xmm3,%xmm9
13050  DB  102,65,15,113,241,8                 ; psllw         $0x8,%xmm9
13051  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
13052  DB  102,65,15,235,217                   ; por           %xmm9,%xmm3
13053  DB  102,15,56,51,219                    ; pmovzxwd      %xmm3,%xmm3
13054  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
13055  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
13056  DB  72,173                              ; lods          %ds:(%rsi),%rax
13057  DB  255,224                             ; jmpq          *%rax
13058
13059PUBLIC _sk_load_rgb_u16_be_sse41
13060_sk_load_rgb_u16_be_sse41 LABEL PROC
13061  DB  72,173                              ; lods          %ds:(%rsi),%rax
13062  DB  72,139,0                            ; mov           (%rax),%rax
13063  DB  72,141,12,127                       ; lea           (%rdi,%rdi,2),%rcx
13064  DB  243,15,111,20,72                    ; movdqu        (%rax,%rcx,2),%xmm2
13065  DB  243,15,111,68,72,8                  ; movdqu        0x8(%rax,%rcx,2),%xmm0
13066  DB  102,15,115,216,4                    ; psrldq        $0x4,%xmm0
13067  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
13068  DB  102,15,115,217,6                    ; psrldq        $0x6,%xmm1
13069  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
13070  DB  102,15,115,216,6                    ; psrldq        $0x6,%xmm0
13071  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
13072  DB  102,15,111,194                      ; movdqa        %xmm2,%xmm0
13073  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
13074  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
13075  DB  102,15,105,209                      ; punpckhwd     %xmm1,%xmm2
13076  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
13077  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
13078  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13079  DB  102,15,111,200                      ; movdqa        %xmm0,%xmm1
13080  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
13081  DB  102,15,113,208,8                    ; psrlw         $0x8,%xmm0
13082  DB  102,15,235,193                      ; por           %xmm1,%xmm0
13083  DB  102,15,56,51,192                    ; pmovzxwd      %xmm0,%xmm0
13084  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
13085  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13086  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
13087  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
13088  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
13089  DB  102,15,235,217                      ; por           %xmm1,%xmm3
13090  DB  102,15,56,51,203                    ; pmovzxwd      %xmm3,%xmm1
13091  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
13092  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13093  DB  102,15,111,218                      ; movdqa        %xmm2,%xmm3
13094  DB  102,15,113,243,8                    ; psllw         $0x8,%xmm3
13095  DB  102,15,113,210,8                    ; psrlw         $0x8,%xmm2
13096  DB  102,15,235,211                      ; por           %xmm3,%xmm2
13097  DB  102,15,56,51,210                    ; pmovzxwd      %xmm2,%xmm2
13098  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
13099  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
13100  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
13101  DB  102,15,110,216                      ; movd          %eax,%xmm3
13102  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13103  DB  72,173                              ; lods          %ds:(%rsi),%rax
13104  DB  255,224                             ; jmpq          *%rax
13105
13106PUBLIC _sk_store_u16_be_sse41
13107_sk_store_u16_be_sse41 LABEL PROC
13108  DB  72,173                              ; lods          %ds:(%rsi),%rax
13109  DB  72,139,0                            ; mov           (%rax),%rax
13110  DB  185,0,255,127,71                    ; mov           $0x477fff00,%ecx
13111  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
13112  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13113  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
13114  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
13115  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
13116  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
13117  DB  102,69,15,111,208                   ; movdqa        %xmm8,%xmm10
13118  DB  102,65,15,113,242,8                 ; psllw         $0x8,%xmm10
13119  DB  102,65,15,113,208,8                 ; psrlw         $0x8,%xmm8
13120  DB  102,69,15,235,194                   ; por           %xmm10,%xmm8
13121  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
13122  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
13123  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
13124  DB  102,69,15,56,43,210                 ; packusdw      %xmm10,%xmm10
13125  DB  102,69,15,111,218                   ; movdqa        %xmm10,%xmm11
13126  DB  102,65,15,113,243,8                 ; psllw         $0x8,%xmm11
13127  DB  102,65,15,113,210,8                 ; psrlw         $0x8,%xmm10
13128  DB  102,69,15,235,211                   ; por           %xmm11,%xmm10
13129  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
13130  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13131  DB  102,69,15,91,219                    ; cvtps2dq      %xmm11,%xmm11
13132  DB  102,69,15,56,43,219                 ; packusdw      %xmm11,%xmm11
13133  DB  102,69,15,111,227                   ; movdqa        %xmm11,%xmm12
13134  DB  102,65,15,113,244,8                 ; psllw         $0x8,%xmm12
13135  DB  102,65,15,113,211,8                 ; psrlw         $0x8,%xmm11
13136  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
13137  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
13138  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
13139  DB  102,69,15,56,43,201                 ; packusdw      %xmm9,%xmm9
13140  DB  102,69,15,111,225                   ; movdqa        %xmm9,%xmm12
13141  DB  102,65,15,113,244,8                 ; psllw         $0x8,%xmm12
13142  DB  102,65,15,113,209,8                 ; psrlw         $0x8,%xmm9
13143  DB  102,69,15,235,204                   ; por           %xmm12,%xmm9
13144  DB  102,69,15,97,194                    ; punpcklwd     %xmm10,%xmm8
13145  DB  102,69,15,97,217                    ; punpcklwd     %xmm9,%xmm11
13146  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
13147  DB  102,69,15,98,203                    ; punpckldq     %xmm11,%xmm9
13148  DB  243,68,15,127,12,248                ; movdqu        %xmm9,(%rax,%rdi,8)
13149  DB  102,69,15,106,195                   ; punpckhdq     %xmm11,%xmm8
13150  DB  243,68,15,127,68,248,16             ; movdqu        %xmm8,0x10(%rax,%rdi,8)
13151  DB  72,173                              ; lods          %ds:(%rsi),%rax
13152  DB  255,224                             ; jmpq          *%rax
13153
13154PUBLIC _sk_load_f32_sse41
13155_sk_load_f32_sse41 LABEL PROC
13156  DB  72,173                              ; lods          %ds:(%rsi),%rax
13157  DB  72,139,0                            ; mov           (%rax),%rax
13158  DB  72,137,249                          ; mov           %rdi,%rcx
13159  DB  72,193,225,4                        ; shl           $0x4,%rcx
13160  DB  68,15,16,4,8                        ; movups        (%rax,%rcx,1),%xmm8
13161  DB  15,16,68,8,16                       ; movups        0x10(%rax,%rcx,1),%xmm0
13162  DB  15,16,92,8,32                       ; movups        0x20(%rax,%rcx,1),%xmm3
13163  DB  68,15,16,76,8,48                    ; movups        0x30(%rax,%rcx,1),%xmm9
13164  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
13165  DB  15,20,208                           ; unpcklps      %xmm0,%xmm2
13166  DB  15,40,203                           ; movaps        %xmm3,%xmm1
13167  DB  65,15,20,201                        ; unpcklps      %xmm9,%xmm1
13168  DB  68,15,21,192                        ; unpckhps      %xmm0,%xmm8
13169  DB  65,15,21,217                        ; unpckhps      %xmm9,%xmm3
13170  DB  15,40,194                           ; movaps        %xmm2,%xmm0
13171  DB  102,15,20,193                       ; unpcklpd      %xmm1,%xmm0
13172  DB  15,18,202                           ; movhlps       %xmm2,%xmm1
13173  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
13174  DB  102,15,20,211                       ; unpcklpd      %xmm3,%xmm2
13175  DB  65,15,18,216                        ; movhlps       %xmm8,%xmm3
13176  DB  72,173                              ; lods          %ds:(%rsi),%rax
13177  DB  255,224                             ; jmpq          *%rax
13178
13179PUBLIC _sk_store_f32_sse41
13180_sk_store_f32_sse41 LABEL PROC
13181  DB  72,173                              ; lods          %ds:(%rsi),%rax
13182  DB  72,139,0                            ; mov           (%rax),%rax
13183  DB  72,137,249                          ; mov           %rdi,%rcx
13184  DB  72,193,225,4                        ; shl           $0x4,%rcx
13185  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13186  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
13187  DB  68,15,20,201                        ; unpcklps      %xmm1,%xmm9
13188  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
13189  DB  68,15,40,218                        ; movaps        %xmm2,%xmm11
13190  DB  68,15,20,219                        ; unpcklps      %xmm3,%xmm11
13191  DB  68,15,21,193                        ; unpckhps      %xmm1,%xmm8
13192  DB  68,15,21,211                        ; unpckhps      %xmm3,%xmm10
13193  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
13194  DB  102,69,15,20,227                    ; unpcklpd      %xmm11,%xmm12
13195  DB  69,15,18,217                        ; movhlps       %xmm9,%xmm11
13196  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
13197  DB  102,69,15,20,202                    ; unpcklpd      %xmm10,%xmm9
13198  DB  69,15,18,208                        ; movhlps       %xmm8,%xmm10
13199  DB  102,68,15,17,36,8                   ; movupd        %xmm12,(%rax,%rcx,1)
13200  DB  68,15,17,92,8,16                    ; movups        %xmm11,0x10(%rax,%rcx,1)
13201  DB  102,68,15,17,76,8,32                ; movupd        %xmm9,0x20(%rax,%rcx,1)
13202  DB  68,15,17,84,8,48                    ; movups        %xmm10,0x30(%rax,%rcx,1)
13203  DB  72,173                              ; lods          %ds:(%rsi),%rax
13204  DB  255,224                             ; jmpq          *%rax
13205
13206PUBLIC _sk_clamp_x_sse41
13207_sk_clamp_x_sse41 LABEL PROC
13208  DB  72,173                              ; lods          %ds:(%rsi),%rax
13209  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
13210  DB  68,15,95,192                        ; maxps         %xmm0,%xmm8
13211  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
13212  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13213  DB  102,15,118,192                      ; pcmpeqd       %xmm0,%xmm0
13214  DB  102,65,15,254,193                   ; paddd         %xmm9,%xmm0
13215  DB  68,15,93,192                        ; minps         %xmm0,%xmm8
13216  DB  72,173                              ; lods          %ds:(%rsi),%rax
13217  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
13218  DB  255,224                             ; jmpq          *%rax
13219
13220PUBLIC _sk_clamp_y_sse41
13221_sk_clamp_y_sse41 LABEL PROC
13222  DB  72,173                              ; lods          %ds:(%rsi),%rax
13223  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
13224  DB  68,15,95,193                        ; maxps         %xmm1,%xmm8
13225  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
13226  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13227  DB  102,15,118,201                      ; pcmpeqd       %xmm1,%xmm1
13228  DB  102,65,15,254,201                   ; paddd         %xmm9,%xmm1
13229  DB  68,15,93,193                        ; minps         %xmm1,%xmm8
13230  DB  72,173                              ; lods          %ds:(%rsi),%rax
13231  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
13232  DB  255,224                             ; jmpq          *%rax
13233
13234PUBLIC _sk_repeat_x_sse41
13235_sk_repeat_x_sse41 LABEL PROC
13236  DB  72,173                              ; lods          %ds:(%rsi),%rax
13237  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
13238  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13239  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
13240  DB  69,15,94,200                        ; divps         %xmm8,%xmm9
13241  DB  102,69,15,58,8,201,1                ; roundps       $0x1,%xmm9,%xmm9
13242  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13243  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
13244  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
13245  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
13246  DB  65,15,93,193                        ; minps         %xmm9,%xmm0
13247  DB  72,173                              ; lods          %ds:(%rsi),%rax
13248  DB  255,224                             ; jmpq          *%rax
13249
13250PUBLIC _sk_repeat_y_sse41
13251_sk_repeat_y_sse41 LABEL PROC
13252  DB  72,173                              ; lods          %ds:(%rsi),%rax
13253  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
13254  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13255  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
13256  DB  69,15,94,200                        ; divps         %xmm8,%xmm9
13257  DB  102,69,15,58,8,201,1                ; roundps       $0x1,%xmm9,%xmm9
13258  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13259  DB  65,15,92,201                        ; subps         %xmm9,%xmm1
13260  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
13261  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
13262  DB  65,15,93,201                        ; minps         %xmm9,%xmm1
13263  DB  72,173                              ; lods          %ds:(%rsi),%rax
13264  DB  255,224                             ; jmpq          *%rax
13265
13266PUBLIC _sk_mirror_x_sse41
13267_sk_mirror_x_sse41 LABEL PROC
13268  DB  72,173                              ; lods          %ds:(%rsi),%rax
13269  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
13270  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
13271  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13272  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
13273  DB  243,69,15,88,192                    ; addss         %xmm8,%xmm8
13274  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13275  DB  68,15,40,208                        ; movaps        %xmm0,%xmm10
13276  DB  69,15,94,208                        ; divps         %xmm8,%xmm10
13277  DB  102,69,15,58,8,210,1                ; roundps       $0x1,%xmm10,%xmm10
13278  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13279  DB  65,15,92,194                        ; subps         %xmm10,%xmm0
13280  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
13281  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
13282  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
13283  DB  65,15,84,192                        ; andps         %xmm8,%xmm0
13284  DB  102,69,15,118,192                   ; pcmpeqd       %xmm8,%xmm8
13285  DB  102,69,15,254,193                   ; paddd         %xmm9,%xmm8
13286  DB  65,15,93,192                        ; minps         %xmm8,%xmm0
13287  DB  72,173                              ; lods          %ds:(%rsi),%rax
13288  DB  255,224                             ; jmpq          *%rax
13289
13290PUBLIC _sk_mirror_y_sse41
13291_sk_mirror_y_sse41 LABEL PROC
13292  DB  72,173                              ; lods          %ds:(%rsi),%rax
13293  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
13294  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
13295  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13296  DB  65,15,92,201                        ; subps         %xmm9,%xmm1
13297  DB  243,69,15,88,192                    ; addss         %xmm8,%xmm8
13298  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13299  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
13300  DB  69,15,94,208                        ; divps         %xmm8,%xmm10
13301  DB  102,69,15,58,8,210,1                ; roundps       $0x1,%xmm10,%xmm10
13302  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13303  DB  65,15,92,202                        ; subps         %xmm10,%xmm1
13304  DB  65,15,92,201                        ; subps         %xmm9,%xmm1
13305  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
13306  DB  68,15,92,193                        ; subps         %xmm1,%xmm8
13307  DB  65,15,84,200                        ; andps         %xmm8,%xmm1
13308  DB  102,69,15,118,192                   ; pcmpeqd       %xmm8,%xmm8
13309  DB  102,69,15,254,193                   ; paddd         %xmm9,%xmm8
13310  DB  65,15,93,200                        ; minps         %xmm8,%xmm1
13311  DB  72,173                              ; lods          %ds:(%rsi),%rax
13312  DB  255,224                             ; jmpq          *%rax
13313
13314PUBLIC _sk_luminance_to_alpha_sse41
13315_sk_luminance_to_alpha_sse41 LABEL PROC
13316  DB  184,208,179,89,62                   ; mov           $0x3e59b3d0,%eax
13317  DB  102,15,110,216                      ; movd          %eax,%xmm3
13318  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13319  DB  15,89,216                           ; mulps         %xmm0,%xmm3
13320  DB  184,89,23,55,63                     ; mov           $0x3f371759,%eax
13321  DB  102,15,110,192                      ; movd          %eax,%xmm0
13322  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13323  DB  15,89,193                           ; mulps         %xmm1,%xmm0
13324  DB  15,88,195                           ; addps         %xmm3,%xmm0
13325  DB  184,152,221,147,61                  ; mov           $0x3d93dd98,%eax
13326  DB  102,15,110,216                      ; movd          %eax,%xmm3
13327  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13328  DB  15,89,218                           ; mulps         %xmm2,%xmm3
13329  DB  15,88,216                           ; addps         %xmm0,%xmm3
13330  DB  72,173                              ; lods          %ds:(%rsi),%rax
13331  DB  15,87,192                           ; xorps         %xmm0,%xmm0
13332  DB  15,87,201                           ; xorps         %xmm1,%xmm1
13333  DB  15,87,210                           ; xorps         %xmm2,%xmm2
13334  DB  255,224                             ; jmpq          *%rax
13335
13336PUBLIC _sk_matrix_2x3_sse41
13337_sk_matrix_2x3_sse41 LABEL PROC
13338  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
13339  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13340  DB  72,173                              ; lods          %ds:(%rsi),%rax
13341  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13342  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
13343  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13344  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
13345  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13346  DB  243,68,15,16,88,16                  ; movss         0x10(%rax),%xmm11
13347  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13348  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13349  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13350  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13351  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
13352  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13353  DB  243,68,15,16,80,12                  ; movss         0xc(%rax),%xmm10
13354  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13355  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
13356  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13357  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13358  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13359  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13360  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
13361  DB  72,173                              ; lods          %ds:(%rsi),%rax
13362  DB  255,224                             ; jmpq          *%rax
13363
13364PUBLIC _sk_matrix_3x4_sse41
13365_sk_matrix_3x4_sse41 LABEL PROC
13366  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
13367  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13368  DB  72,173                              ; lods          %ds:(%rsi),%rax
13369  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13370  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
13371  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13372  DB  243,68,15,16,80,12                  ; movss         0xc(%rax),%xmm10
13373  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13374  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
13375  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13376  DB  243,68,15,16,96,36                  ; movss         0x24(%rax),%xmm12
13377  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13378  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13379  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13380  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13381  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13382  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13383  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
13384  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13385  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
13386  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13387  DB  243,68,15,16,88,28                  ; movss         0x1c(%rax),%xmm11
13388  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13389  DB  243,68,15,16,96,40                  ; movss         0x28(%rax),%xmm12
13390  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13391  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13392  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13393  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13394  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13395  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13396  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
13397  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
13398  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13399  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
13400  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13401  DB  243,68,15,16,96,32                  ; movss         0x20(%rax),%xmm12
13402  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13403  DB  243,68,15,16,104,44                 ; movss         0x2c(%rax),%xmm13
13404  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13405  DB  68,15,89,226                        ; mulps         %xmm2,%xmm12
13406  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13407  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
13408  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13409  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13410  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13411  DB  72,173                              ; lods          %ds:(%rsi),%rax
13412  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
13413  DB  255,224                             ; jmpq          *%rax
13414
13415PUBLIC _sk_matrix_4x5_sse41
13416_sk_matrix_4x5_sse41 LABEL PROC
13417  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
13418  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13419  DB  72,173                              ; lods          %ds:(%rsi),%rax
13420  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13421  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
13422  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13423  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
13424  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13425  DB  243,68,15,16,88,32                  ; movss         0x20(%rax),%xmm11
13426  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13427  DB  243,68,15,16,96,48                  ; movss         0x30(%rax),%xmm12
13428  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13429  DB  243,68,15,16,104,64                 ; movss         0x40(%rax),%xmm13
13430  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13431  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
13432  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13433  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13434  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13435  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13436  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13437  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13438  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
13439  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13440  DB  243,68,15,16,80,20                  ; movss         0x14(%rax),%xmm10
13441  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13442  DB  243,68,15,16,88,36                  ; movss         0x24(%rax),%xmm11
13443  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13444  DB  243,68,15,16,96,52                  ; movss         0x34(%rax),%xmm12
13445  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13446  DB  243,68,15,16,104,68                 ; movss         0x44(%rax),%xmm13
13447  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13448  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
13449  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13450  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13451  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13452  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13453  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13454  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13455  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
13456  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
13457  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13458  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
13459  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13460  DB  243,68,15,16,96,40                  ; movss         0x28(%rax),%xmm12
13461  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13462  DB  243,68,15,16,104,56                 ; movss         0x38(%rax),%xmm13
13463  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13464  DB  243,68,15,16,112,72                 ; movss         0x48(%rax),%xmm14
13465  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
13466  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
13467  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
13468  DB  68,15,89,226                        ; mulps         %xmm2,%xmm12
13469  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13470  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
13471  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13472  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13473  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13474  DB  243,68,15,16,88,12                  ; movss         0xc(%rax),%xmm11
13475  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13476  DB  243,68,15,16,96,28                  ; movss         0x1c(%rax),%xmm12
13477  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13478  DB  243,68,15,16,104,44                 ; movss         0x2c(%rax),%xmm13
13479  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13480  DB  243,68,15,16,112,60                 ; movss         0x3c(%rax),%xmm14
13481  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
13482  DB  243,68,15,16,120,76                 ; movss         0x4c(%rax),%xmm15
13483  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
13484  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
13485  DB  69,15,88,247                        ; addps         %xmm15,%xmm14
13486  DB  68,15,89,234                        ; mulps         %xmm2,%xmm13
13487  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
13488  DB  69,15,89,225                        ; mulps         %xmm9,%xmm12
13489  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13490  DB  69,15,89,216                        ; mulps         %xmm8,%xmm11
13491  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13492  DB  72,173                              ; lods          %ds:(%rsi),%rax
13493  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
13494  DB  65,15,40,219                        ; movaps        %xmm11,%xmm3
13495  DB  255,224                             ; jmpq          *%rax
13496
13497PUBLIC _sk_matrix_perspective_sse41
13498_sk_matrix_perspective_sse41 LABEL PROC
13499  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13500  DB  72,173                              ; lods          %ds:(%rsi),%rax
13501  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13502  DB  243,68,15,16,72,4                   ; movss         0x4(%rax),%xmm9
13503  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13504  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13505  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
13506  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13507  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
13508  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13509  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13510  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
13511  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
13512  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13513  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
13514  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13515  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
13516  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13517  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
13518  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13519  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13520  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13521  DB  243,68,15,16,80,24                  ; movss         0x18(%rax),%xmm10
13522  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13523  DB  243,68,15,16,88,28                  ; movss         0x1c(%rax),%xmm11
13524  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13525  DB  243,68,15,16,96,32                  ; movss         0x20(%rax),%xmm12
13526  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13527  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
13528  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13529  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13530  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13531  DB  65,15,83,202                        ; rcpps         %xmm10,%xmm1
13532  DB  15,89,193                           ; mulps         %xmm1,%xmm0
13533  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
13534  DB  72,173                              ; lods          %ds:(%rsi),%rax
13535  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
13536  DB  255,224                             ; jmpq          *%rax
13537
13538PUBLIC _sk_linear_gradient_sse41
13539_sk_linear_gradient_sse41 LABEL PROC
13540  DB  72,173                              ; lods          %ds:(%rsi),%rax
13541  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
13542  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13543  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
13544  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13545  DB  243,68,15,16,96,24                  ; movss         0x18(%rax),%xmm12
13546  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13547  DB  243,68,15,16,104,28                 ; movss         0x1c(%rax),%xmm13
13548  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13549  DB  72,139,8                            ; mov           (%rax),%rcx
13550  DB  72,133,201                          ; test          %rcx,%rcx
13551  DB  15,132,4,1,0,0                      ; je            399e <_sk_linear_gradient_sse41+0x13e>
13552  DB  72,131,236,88                       ; sub           $0x58,%rsp
13553  DB  15,41,36,36                         ; movaps        %xmm4,(%rsp)
13554  DB  15,41,108,36,16                     ; movaps        %xmm5,0x10(%rsp)
13555  DB  15,41,116,36,32                     ; movaps        %xmm6,0x20(%rsp)
13556  DB  15,41,124,36,48                     ; movaps        %xmm7,0x30(%rsp)
13557  DB  72,139,64,8                         ; mov           0x8(%rax),%rax
13558  DB  72,131,192,32                       ; add           $0x20,%rax
13559  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
13560  DB  15,87,219                           ; xorps         %xmm3,%xmm3
13561  DB  15,87,210                           ; xorps         %xmm2,%xmm2
13562  DB  15,87,201                           ; xorps         %xmm1,%xmm1
13563  DB  15,40,233                           ; movaps        %xmm1,%xmm5
13564  DB  15,40,242                           ; movaps        %xmm2,%xmm6
13565  DB  15,40,251                           ; movaps        %xmm3,%xmm7
13566  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
13567  DB  69,15,40,243                        ; movaps        %xmm11,%xmm14
13568  DB  69,15,40,252                        ; movaps        %xmm12,%xmm15
13569  DB  68,15,41,108,36,64                  ; movaps        %xmm13,0x40(%rsp)
13570  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
13571  DB  243,15,16,80,224                    ; movss         -0x20(%rax),%xmm2
13572  DB  243,68,15,16,72,228                 ; movss         -0x1c(%rax),%xmm9
13573  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13574  DB  15,40,224                           ; movaps        %xmm0,%xmm4
13575  DB  15,194,194,1                        ; cmpltps       %xmm2,%xmm0
13576  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13577  DB  102,68,15,56,20,201                 ; blendvps      %xmm0,%xmm1,%xmm9
13578  DB  243,15,16,72,232                    ; movss         -0x18(%rax),%xmm1
13579  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13580  DB  102,15,56,20,205                    ; blendvps      %xmm0,%xmm5,%xmm1
13581  DB  243,15,16,80,236                    ; movss         -0x14(%rax),%xmm2
13582  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13583  DB  102,15,56,20,214                    ; blendvps      %xmm0,%xmm6,%xmm2
13584  DB  243,15,16,88,240                    ; movss         -0x10(%rax),%xmm3
13585  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13586  DB  102,15,56,20,223                    ; blendvps      %xmm0,%xmm7,%xmm3
13587  DB  243,68,15,16,80,244                 ; movss         -0xc(%rax),%xmm10
13588  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13589  DB  102,69,15,56,20,208                 ; blendvps      %xmm0,%xmm8,%xmm10
13590  DB  243,68,15,16,88,248                 ; movss         -0x8(%rax),%xmm11
13591  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13592  DB  102,69,15,56,20,222                 ; blendvps      %xmm0,%xmm14,%xmm11
13593  DB  243,68,15,16,96,252                 ; movss         -0x4(%rax),%xmm12
13594  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13595  DB  102,69,15,56,20,231                 ; blendvps      %xmm0,%xmm15,%xmm12
13596  DB  243,68,15,16,40                     ; movss         (%rax),%xmm13
13597  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13598  DB  102,68,15,56,20,108,36,64           ; blendvps      %xmm0,0x40(%rsp),%xmm13
13599  DB  15,40,196                           ; movaps        %xmm4,%xmm0
13600  DB  72,131,192,36                       ; add           $0x24,%rax
13601  DB  72,255,201                          ; dec           %rcx
13602  DB  15,133,65,255,255,255               ; jne           38c6 <_sk_linear_gradient_sse41+0x66>
13603  DB  15,40,124,36,48                     ; movaps        0x30(%rsp),%xmm7
13604  DB  15,40,116,36,32                     ; movaps        0x20(%rsp),%xmm6
13605  DB  15,40,108,36,16                     ; movaps        0x10(%rsp),%xmm5
13606  DB  15,40,36,36                         ; movaps        (%rsp),%xmm4
13607  DB  72,131,196,88                       ; add           $0x58,%rsp
13608  DB  235,13                              ; jmp           39ab <_sk_linear_gradient_sse41+0x14b>
13609  DB  15,87,201                           ; xorps         %xmm1,%xmm1
13610  DB  15,87,210                           ; xorps         %xmm2,%xmm2
13611  DB  15,87,219                           ; xorps         %xmm3,%xmm3
13612  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
13613  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
13614  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13615  DB  15,89,200                           ; mulps         %xmm0,%xmm1
13616  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
13617  DB  15,89,208                           ; mulps         %xmm0,%xmm2
13618  DB  65,15,88,212                        ; addps         %xmm12,%xmm2
13619  DB  15,89,216                           ; mulps         %xmm0,%xmm3
13620  DB  65,15,88,221                        ; addps         %xmm13,%xmm3
13621  DB  72,173                              ; lods          %ds:(%rsi),%rax
13622  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
13623  DB  255,224                             ; jmpq          *%rax
13624
13625PUBLIC _sk_linear_gradient_2stops_sse41
13626_sk_linear_gradient_2stops_sse41 LABEL PROC
13627  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13628  DB  72,173                              ; lods          %ds:(%rsi),%rax
13629  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13630  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
13631  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13632  DB  243,15,16,80,16                     ; movss         0x10(%rax),%xmm2
13633  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13634  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13635  DB  15,88,194                           ; addps         %xmm2,%xmm0
13636  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13637  DB  243,15,16,80,20                     ; movss         0x14(%rax),%xmm2
13638  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13639  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13640  DB  15,88,202                           ; addps         %xmm2,%xmm1
13641  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
13642  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13643  DB  243,15,16,88,24                     ; movss         0x18(%rax),%xmm3
13644  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13645  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
13646  DB  15,88,211                           ; addps         %xmm3,%xmm2
13647  DB  243,15,16,88,12                     ; movss         0xc(%rax),%xmm3
13648  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13649  DB  243,68,15,16,72,28                  ; movss         0x1c(%rax),%xmm9
13650  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13651  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
13652  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
13653  DB  72,173                              ; lods          %ds:(%rsi),%rax
13654  DB  255,224                             ; jmpq          *%rax
13655
13656PUBLIC _sk_save_xy_sse41
13657_sk_save_xy_sse41 LABEL PROC
13658  DB  72,173                              ; lods          %ds:(%rsi),%rax
13659  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13660  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13661  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13662  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
13663  DB  68,15,88,200                        ; addps         %xmm0,%xmm9
13664  DB  102,69,15,58,8,209,1                ; roundps       $0x1,%xmm9,%xmm10
13665  DB  69,15,92,202                        ; subps         %xmm10,%xmm9
13666  DB  68,15,88,193                        ; addps         %xmm1,%xmm8
13667  DB  102,69,15,58,8,208,1                ; roundps       $0x1,%xmm8,%xmm10
13668  DB  69,15,92,194                        ; subps         %xmm10,%xmm8
13669  DB  15,17,0                             ; movups        %xmm0,(%rax)
13670  DB  15,17,72,32                         ; movups        %xmm1,0x20(%rax)
13671  DB  68,15,17,72,64                      ; movups        %xmm9,0x40(%rax)
13672  DB  68,15,17,64,96                      ; movups        %xmm8,0x60(%rax)
13673  DB  72,173                              ; lods          %ds:(%rsi),%rax
13674  DB  255,224                             ; jmpq          *%rax
13675
13676PUBLIC _sk_accumulate_sse41
13677_sk_accumulate_sse41 LABEL PROC
13678  DB  72,173                              ; lods          %ds:(%rsi),%rax
13679  DB  68,15,16,128,128,0,0,0              ; movups        0x80(%rax),%xmm8
13680  DB  68,15,16,136,160,0,0,0              ; movups        0xa0(%rax),%xmm9
13681  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13682  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
13683  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
13684  DB  65,15,88,224                        ; addps         %xmm8,%xmm4
13685  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
13686  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
13687  DB  65,15,88,232                        ; addps         %xmm8,%xmm5
13688  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
13689  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
13690  DB  65,15,88,240                        ; addps         %xmm8,%xmm6
13691  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
13692  DB  65,15,88,249                        ; addps         %xmm9,%xmm7
13693  DB  72,173                              ; lods          %ds:(%rsi),%rax
13694  DB  255,224                             ; jmpq          *%rax
13695
13696PUBLIC _sk_bilinear_nx_sse41
13697_sk_bilinear_nx_sse41 LABEL PROC
13698  DB  72,173                              ; lods          %ds:(%rsi),%rax
13699  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
13700  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13701  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13702  DB  15,16,0                             ; movups        (%rax),%xmm0
13703  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13704  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13705  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13706  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13707  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13708  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13709  DB  68,15,17,128,128,0,0,0              ; movups        %xmm8,0x80(%rax)
13710  DB  72,173                              ; lods          %ds:(%rsi),%rax
13711  DB  255,224                             ; jmpq          *%rax
13712
13713PUBLIC _sk_bilinear_px_sse41
13714_sk_bilinear_px_sse41 LABEL PROC
13715  DB  72,173                              ; lods          %ds:(%rsi),%rax
13716  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13717  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13718  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13719  DB  15,16,0                             ; movups        (%rax),%xmm0
13720  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13721  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13722  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
13723  DB  72,173                              ; lods          %ds:(%rsi),%rax
13724  DB  255,224                             ; jmpq          *%rax
13725
13726PUBLIC _sk_bilinear_ny_sse41
13727_sk_bilinear_ny_sse41 LABEL PROC
13728  DB  72,173                              ; lods          %ds:(%rsi),%rax
13729  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
13730  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13731  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13732  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
13733  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
13734  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
13735  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13736  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13737  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13738  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13739  DB  68,15,17,128,160,0,0,0              ; movups        %xmm8,0xa0(%rax)
13740  DB  72,173                              ; lods          %ds:(%rsi),%rax
13741  DB  255,224                             ; jmpq          *%rax
13742
13743PUBLIC _sk_bilinear_py_sse41
13744_sk_bilinear_py_sse41 LABEL PROC
13745  DB  72,173                              ; lods          %ds:(%rsi),%rax
13746  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13747  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13748  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13749  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
13750  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
13751  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
13752  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
13753  DB  72,173                              ; lods          %ds:(%rsi),%rax
13754  DB  255,224                             ; jmpq          *%rax
13755
13756PUBLIC _sk_bicubic_n3x_sse41
13757_sk_bicubic_n3x_sse41 LABEL PROC
13758  DB  72,173                              ; lods          %ds:(%rsi),%rax
13759  DB  185,0,0,192,191                     ; mov           $0xbfc00000,%ecx
13760  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13761  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13762  DB  15,16,0                             ; movups        (%rax),%xmm0
13763  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13764  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13765  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13766  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13767  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13768  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13769  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
13770  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
13771  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13772  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
13773  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13774  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13775  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13776  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
13777  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13778  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13779  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
13780  DB  72,173                              ; lods          %ds:(%rsi),%rax
13781  DB  255,224                             ; jmpq          *%rax
13782
13783PUBLIC _sk_bicubic_n1x_sse41
13784_sk_bicubic_n1x_sse41 LABEL PROC
13785  DB  72,173                              ; lods          %ds:(%rsi),%rax
13786  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
13787  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13788  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13789  DB  15,16,0                             ; movups        (%rax),%xmm0
13790  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13791  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13792  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13793  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13794  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13795  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13796  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
13797  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
13798  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13799  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
13800  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13801  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13802  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13803  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13804  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13805  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13806  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13807  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13808  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13809  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
13810  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13811  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13812  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13813  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13814  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
13815  DB  72,173                              ; lods          %ds:(%rsi),%rax
13816  DB  255,224                             ; jmpq          *%rax
13817
13818PUBLIC _sk_bicubic_p1x_sse41
13819_sk_bicubic_p1x_sse41 LABEL PROC
13820  DB  72,173                              ; lods          %ds:(%rsi),%rax
13821  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13822  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13823  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13824  DB  15,16,0                             ; movups        (%rax),%xmm0
13825  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13826  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13827  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
13828  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13829  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13830  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
13831  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
13832  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13833  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13834  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13835  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13836  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
13837  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
13838  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13839  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13840  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13841  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
13842  DB  68,15,17,144,128,0,0,0              ; movups        %xmm10,0x80(%rax)
13843  DB  72,173                              ; lods          %ds:(%rsi),%rax
13844  DB  255,224                             ; jmpq          *%rax
13845
13846PUBLIC _sk_bicubic_p3x_sse41
13847_sk_bicubic_p3x_sse41 LABEL PROC
13848  DB  72,173                              ; lods          %ds:(%rsi),%rax
13849  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
13850  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13851  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13852  DB  15,16,0                             ; movups        (%rax),%xmm0
13853  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13854  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13855  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
13856  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13857  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13858  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
13859  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
13860  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
13861  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13862  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13863  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
13864  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
13865  DB  68,15,17,128,128,0,0,0              ; movups        %xmm8,0x80(%rax)
13866  DB  72,173                              ; lods          %ds:(%rsi),%rax
13867  DB  255,224                             ; jmpq          *%rax
13868
13869PUBLIC _sk_bicubic_n3y_sse41
13870_sk_bicubic_n3y_sse41 LABEL PROC
13871  DB  72,173                              ; lods          %ds:(%rsi),%rax
13872  DB  185,0,0,192,191                     ; mov           $0xbfc00000,%ecx
13873  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13874  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13875  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
13876  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
13877  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
13878  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13879  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13880  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13881  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13882  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
13883  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
13884  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13885  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
13886  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13887  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13888  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13889  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
13890  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13891  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13892  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
13893  DB  72,173                              ; lods          %ds:(%rsi),%rax
13894  DB  255,224                             ; jmpq          *%rax
13895
13896PUBLIC _sk_bicubic_n1y_sse41
13897_sk_bicubic_n1y_sse41 LABEL PROC
13898  DB  72,173                              ; lods          %ds:(%rsi),%rax
13899  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
13900  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13901  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13902  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
13903  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
13904  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
13905  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13906  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13907  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13908  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13909  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
13910  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
13911  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13912  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
13913  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13914  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13915  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13916  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13917  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13918  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13919  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13920  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13921  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13922  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
13923  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13924  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13925  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13926  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13927  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
13928  DB  72,173                              ; lods          %ds:(%rsi),%rax
13929  DB  255,224                             ; jmpq          *%rax
13930
13931PUBLIC _sk_bicubic_p1y_sse41
13932_sk_bicubic_p1y_sse41 LABEL PROC
13933  DB  72,173                              ; lods          %ds:(%rsi),%rax
13934  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13935  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13936  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13937  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
13938  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
13939  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
13940  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
13941  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13942  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13943  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
13944  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
13945  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13946  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13947  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13948  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13949  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
13950  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
13951  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13952  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13953  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13954  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
13955  DB  68,15,17,144,160,0,0,0              ; movups        %xmm10,0xa0(%rax)
13956  DB  72,173                              ; lods          %ds:(%rsi),%rax
13957  DB  255,224                             ; jmpq          *%rax
13958
13959PUBLIC _sk_bicubic_p3y_sse41
13960_sk_bicubic_p3y_sse41 LABEL PROC
13961  DB  72,173                              ; lods          %ds:(%rsi),%rax
13962  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
13963  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13964  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13965  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
13966  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
13967  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
13968  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
13969  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13970  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13971  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
13972  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
13973  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
13974  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13975  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13976  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
13977  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
13978  DB  68,15,17,128,160,0,0,0              ; movups        %xmm8,0xa0(%rax)
13979  DB  72,173                              ; lods          %ds:(%rsi),%rax
13980  DB  255,224                             ; jmpq          *%rax
13981
13982PUBLIC _sk_callback_sse41
13983_sk_callback_sse41 LABEL PROC
13984  DB  65,86                               ; push          %r14
13985  DB  83                                  ; push          %rbx
13986  DB  72,131,236,40                       ; sub           $0x28,%rsp
13987  DB  68,15,40,197                        ; movaps        %xmm5,%xmm8
13988  DB  68,15,40,204                        ; movaps        %xmm4,%xmm9
13989  DB  73,137,214                          ; mov           %rdx,%r14
13990  DB  72,173                              ; lods          %ds:(%rsi),%rax
13991  DB  72,137,195                          ; mov           %rax,%rbx
13992  DB  15,40,224                           ; movaps        %xmm0,%xmm4
13993  DB  15,20,225                           ; unpcklps      %xmm1,%xmm4
13994  DB  15,40,234                           ; movaps        %xmm2,%xmm5
13995  DB  15,20,235                           ; unpcklps      %xmm3,%xmm5
13996  DB  15,21,193                           ; unpckhps      %xmm1,%xmm0
13997  DB  15,21,211                           ; unpckhps      %xmm3,%xmm2
13998  DB  15,40,204                           ; movaps        %xmm4,%xmm1
13999  DB  102,15,20,205                       ; unpcklpd      %xmm5,%xmm1
14000  DB  15,18,236                           ; movhlps       %xmm4,%xmm5
14001  DB  15,40,216                           ; movaps        %xmm0,%xmm3
14002  DB  102,15,20,218                       ; unpcklpd      %xmm2,%xmm3
14003  DB  15,18,208                           ; movhlps       %xmm0,%xmm2
14004  DB  102,15,17,75,8                      ; movupd        %xmm1,0x8(%rbx)
14005  DB  15,17,107,24                        ; movups        %xmm5,0x18(%rbx)
14006  DB  102,15,17,91,40                     ; movupd        %xmm3,0x28(%rbx)
14007  DB  15,17,83,56                         ; movups        %xmm2,0x38(%rbx)
14008  DB  186,4,0,0,0                         ; mov           $0x4,%edx
14009  DB  72,137,217                          ; mov           %rbx,%rcx
14010  DB  255,19                              ; callq         *(%rbx)
14011  DB  72,139,131,136,0,0,0                ; mov           0x88(%rbx),%rax
14012  DB  15,16,32                            ; movups        (%rax),%xmm4
14013  DB  15,16,64,16                         ; movups        0x10(%rax),%xmm0
14014  DB  15,16,88,32                         ; movups        0x20(%rax),%xmm3
14015  DB  15,16,80,48                         ; movups        0x30(%rax),%xmm2
14016  DB  15,40,236                           ; movaps        %xmm4,%xmm5
14017  DB  15,20,232                           ; unpcklps      %xmm0,%xmm5
14018  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14019  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
14020  DB  15,21,224                           ; unpckhps      %xmm0,%xmm4
14021  DB  15,21,218                           ; unpckhps      %xmm2,%xmm3
14022  DB  15,40,197                           ; movaps        %xmm5,%xmm0
14023  DB  102,15,20,193                       ; unpcklpd      %xmm1,%xmm0
14024  DB  15,18,205                           ; movhlps       %xmm5,%xmm1
14025  DB  15,40,212                           ; movaps        %xmm4,%xmm2
14026  DB  102,15,20,211                       ; unpcklpd      %xmm3,%xmm2
14027  DB  15,18,220                           ; movhlps       %xmm4,%xmm3
14028  DB  72,173                              ; lods          %ds:(%rsi),%rax
14029  DB  76,137,242                          ; mov           %r14,%rdx
14030  DB  65,15,40,225                        ; movaps        %xmm9,%xmm4
14031  DB  65,15,40,232                        ; movaps        %xmm8,%xmm5
14032  DB  72,131,196,40                       ; add           $0x28,%rsp
14033  DB  91                                  ; pop           %rbx
14034  DB  65,94                               ; pop           %r14
14035  DB  255,224                             ; jmpq          *%rax
14036
14037ALIGN 16
14038  DB  0,0                                 ; add           %al,(%rax)
14039  DB  0,63                                ; add           %bh,(%rdi)
14040  DB  0,0                                 ; add           %al,(%rax)
14041  DB  0,63                                ; add           %bh,(%rdi)
14042  DB  0,0                                 ; add           %al,(%rax)
14043  DB  0,63                                ; add           %bh,(%rdi)
14044  DB  0,0                                 ; add           %al,(%rax)
14045  DB  0,63                                ; add           %bh,(%rdi)
14046  DB  0,0                                 ; add           %al,(%rax)
14047  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
14048  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
14049  DB  63                                  ; (bad)
14050  DB  0,0                                 ; add           %al,(%rax)
14051  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
14052  DB  0,0                                 ; add           %al,(%rax)
14053  DB  52,0                                ; xor           $0x0,%al
14054  DB  0,0                                 ; add           %al,(%rax)
14055  DB  52,0                                ; xor           $0x0,%al
14056  DB  0,0                                 ; add           %al,(%rax)
14057  DB  52,0                                ; xor           $0x0,%al
14058  DB  0,0                                 ; add           %al,(%rax)
14059  DB  52,255                              ; xor           $0xff,%al
14060  DB  255                                 ; (bad)
14061  DB  127,0                               ; jg            4004 <.literal16+0x34>
14062  DB  255                                 ; (bad)
14063  DB  255                                 ; (bad)
14064  DB  127,0                               ; jg            4008 <.literal16+0x38>
14065  DB  255                                 ; (bad)
14066  DB  255                                 ; (bad)
14067  DB  127,0                               ; jg            400c <.literal16+0x3c>
14068  DB  255                                 ; (bad)
14069  DB  255                                 ; (bad)
14070  DB  127,0                               ; jg            4010 <.literal16+0x40>
14071  DB  0,0                                 ; add           %al,(%rax)
14072  DB  0,63                                ; add           %bh,(%rdi)
14073  DB  0,0                                 ; add           %al,(%rax)
14074  DB  0,63                                ; add           %bh,(%rdi)
14075  DB  0,0                                 ; add           %al,(%rax)
14076  DB  0,63                                ; add           %bh,(%rdi)
14077  DB  0,0                                 ; add           %al,(%rax)
14078  DB  0,63                                ; add           %bh,(%rdi)
14079  DB  119,115                             ; ja            4095 <.literal16+0xc5>
14080  DB  248                                 ; clc
14081  DB  194,119,115                         ; retq          $0x7377
14082  DB  248                                 ; clc
14083  DB  194,119,115                         ; retq          $0x7377
14084  DB  248                                 ; clc
14085  DB  194,119,115                         ; retq          $0x7377
14086  DB  248                                 ; clc
14087  DB  194,117,191                         ; retq          $0xbf75
14088  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
14089  DB  63                                  ; (bad)
14090  DB  117,191                             ; jne           3ff9 <.literal16+0x29>
14091  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
14092  DB  63                                  ; (bad)
14093  DB  249                                 ; stc
14094  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14095  DB  249                                 ; stc
14096  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14097  DB  249                                 ; stc
14098  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14099  DB  249                                 ; stc
14100  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14101  DB  163,233,220,63,163,233,220,63,163   ; movabs        %eax,0xa33fdce9a33fdce9
14102  DB  233,220,63,163,233                  ; jmpq          ffffffffe9a3803a <_sk_callback_sse41+0xffffffffe9a3411e>
14103  DB  220,63                              ; fdivrl        (%rdi)
14104  DB  81                                  ; push          %rcx
14105  DB  140,242                             ; mov           %?,%edx
14106  DB  66,81                               ; rex.X         push %rcx
14107  DB  140,242                             ; mov           %?,%edx
14108  DB  66,81                               ; rex.X         push %rcx
14109  DB  140,242                             ; mov           %?,%edx
14110  DB  66,81                               ; rex.X         push %rcx
14111  DB  140,242                             ; mov           %?,%edx
14112  DB  66,141,188,190,63,141,188,190       ; lea           -0x414372c1(%rsi,%r15,4),%edi
14113  DB  63                                  ; (bad)
14114  DB  141,188,190,63,141,188,190          ; lea           -0x414372c1(%rsi,%rdi,4),%edi
14115  DB  63                                  ; (bad)
14116  DB  248                                 ; clc
14117  DB  245                                 ; cmc
14118  DB  154                                 ; (bad)
14119  DB  64,248                              ; rex           clc
14120  DB  245                                 ; cmc
14121  DB  154                                 ; (bad)
14122  DB  64,248                              ; rex           clc
14123  DB  245                                 ; cmc
14124  DB  154                                 ; (bad)
14125  DB  64,248                              ; rex           clc
14126  DB  245                                 ; cmc
14127  DB  154                                 ; (bad)
14128  DB  64,254                              ; rex           (bad)
14129  DB  210,221                             ; rcr           %cl,%ch
14130  DB  65,254                              ; rex.B         (bad)
14131  DB  210,221                             ; rcr           %cl,%ch
14132  DB  65,254                              ; rex.B         (bad)
14133  DB  210,221                             ; rcr           %cl,%ch
14134  DB  65,254                              ; rex.B         (bad)
14135  DB  210,221                             ; rcr           %cl,%ch
14136  DB  65,0,0                              ; add           %al,(%r8)
14137  DB  0,75,0                              ; add           %cl,0x0(%rbx)
14138  DB  0,0                                 ; add           %al,(%rax)
14139  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
14140  DB  0,75,0                              ; add           %cl,0x0(%rbx)
14141  DB  0,0                                 ; add           %al,(%rax)
14142  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
14143  DB  0,52,0                              ; add           %dh,(%rax,%rax,1)
14144  DB  0,0                                 ; add           %al,(%rax)
14145  DB  52,0                                ; xor           $0x0,%al
14146  DB  0,0                                 ; add           %al,(%rax)
14147  DB  52,0                                ; xor           $0x0,%al
14148  DB  0,0                                 ; add           %al,(%rax)
14149  DB  52,255                              ; xor           $0xff,%al
14150  DB  255                                 ; (bad)
14151  DB  127,0                               ; jg            40c4 <.literal16+0xf4>
14152  DB  255                                 ; (bad)
14153  DB  255                                 ; (bad)
14154  DB  127,0                               ; jg            40c8 <.literal16+0xf8>
14155  DB  255                                 ; (bad)
14156  DB  255                                 ; (bad)
14157  DB  127,0                               ; jg            40cc <.literal16+0xfc>
14158  DB  255                                 ; (bad)
14159  DB  255                                 ; (bad)
14160  DB  127,0                               ; jg            40d0 <.literal16+0x100>
14161  DB  0,0                                 ; add           %al,(%rax)
14162  DB  0,63                                ; add           %bh,(%rdi)
14163  DB  0,0                                 ; add           %al,(%rax)
14164  DB  0,63                                ; add           %bh,(%rdi)
14165  DB  0,0                                 ; add           %al,(%rax)
14166  DB  0,63                                ; add           %bh,(%rdi)
14167  DB  0,0                                 ; add           %al,(%rax)
14168  DB  0,63                                ; add           %bh,(%rdi)
14169  DB  119,115                             ; ja            4155 <.literal16+0x185>
14170  DB  248                                 ; clc
14171  DB  194,119,115                         ; retq          $0x7377
14172  DB  248                                 ; clc
14173  DB  194,119,115                         ; retq          $0x7377
14174  DB  248                                 ; clc
14175  DB  194,119,115                         ; retq          $0x7377
14176  DB  248                                 ; clc
14177  DB  194,117,191                         ; retq          $0xbf75
14178  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
14179  DB  63                                  ; (bad)
14180  DB  117,191                             ; jne           40b9 <.literal16+0xe9>
14181  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
14182  DB  63                                  ; (bad)
14183  DB  249                                 ; stc
14184  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14185  DB  249                                 ; stc
14186  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14187  DB  249                                 ; stc
14188  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14189  DB  249                                 ; stc
14190  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14191  DB  163,233,220,63,163,233,220,63,163   ; movabs        %eax,0xa33fdce9a33fdce9
14192  DB  233,220,63,163,233                  ; jmpq          ffffffffe9a380fa <_sk_callback_sse41+0xffffffffe9a341de>
14193  DB  220,63                              ; fdivrl        (%rdi)
14194  DB  81                                  ; push          %rcx
14195  DB  140,242                             ; mov           %?,%edx
14196  DB  66,81                               ; rex.X         push %rcx
14197  DB  140,242                             ; mov           %?,%edx
14198  DB  66,81                               ; rex.X         push %rcx
14199  DB  140,242                             ; mov           %?,%edx
14200  DB  66,81                               ; rex.X         push %rcx
14201  DB  140,242                             ; mov           %?,%edx
14202  DB  66,141,188,190,63,141,188,190       ; lea           -0x414372c1(%rsi,%r15,4),%edi
14203  DB  63                                  ; (bad)
14204  DB  141,188,190,63,141,188,190          ; lea           -0x414372c1(%rsi,%rdi,4),%edi
14205  DB  63                                  ; (bad)
14206  DB  248                                 ; clc
14207  DB  245                                 ; cmc
14208  DB  154                                 ; (bad)
14209  DB  64,248                              ; rex           clc
14210  DB  245                                 ; cmc
14211  DB  154                                 ; (bad)
14212  DB  64,248                              ; rex           clc
14213  DB  245                                 ; cmc
14214  DB  154                                 ; (bad)
14215  DB  64,248                              ; rex           clc
14216  DB  245                                 ; cmc
14217  DB  154                                 ; (bad)
14218  DB  64,254                              ; rex           (bad)
14219  DB  210,221                             ; rcr           %cl,%ch
14220  DB  65,254                              ; rex.B         (bad)
14221  DB  210,221                             ; rcr           %cl,%ch
14222  DB  65,254                              ; rex.B         (bad)
14223  DB  210,221                             ; rcr           %cl,%ch
14224  DB  65,254                              ; rex.B         (bad)
14225  DB  210,221                             ; rcr           %cl,%ch
14226  DB  65,0,0                              ; add           %al,(%r8)
14227  DB  0,75,0                              ; add           %cl,0x0(%rbx)
14228  DB  0,0                                 ; add           %al,(%rax)
14229  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
14230  DB  0,75,0                              ; add           %cl,0x0(%rbx)
14231  DB  0,0                                 ; add           %al,(%rax)
14232  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
14233  DB  0,52,0                              ; add           %dh,(%rax,%rax,1)
14234  DB  0,0                                 ; add           %al,(%rax)
14235  DB  52,0                                ; xor           $0x0,%al
14236  DB  0,0                                 ; add           %al,(%rax)
14237  DB  52,0                                ; xor           $0x0,%al
14238  DB  0,0                                 ; add           %al,(%rax)
14239  DB  52,255                              ; xor           $0xff,%al
14240  DB  255                                 ; (bad)
14241  DB  127,0                               ; jg            4184 <.literal16+0x1b4>
14242  DB  255                                 ; (bad)
14243  DB  255                                 ; (bad)
14244  DB  127,0                               ; jg            4188 <.literal16+0x1b8>
14245  DB  255                                 ; (bad)
14246  DB  255                                 ; (bad)
14247  DB  127,0                               ; jg            418c <.literal16+0x1bc>
14248  DB  255                                 ; (bad)
14249  DB  255                                 ; (bad)
14250  DB  127,0                               ; jg            4190 <.literal16+0x1c0>
14251  DB  0,0                                 ; add           %al,(%rax)
14252  DB  0,63                                ; add           %bh,(%rdi)
14253  DB  0,0                                 ; add           %al,(%rax)
14254  DB  0,63                                ; add           %bh,(%rdi)
14255  DB  0,0                                 ; add           %al,(%rax)
14256  DB  0,63                                ; add           %bh,(%rdi)
14257  DB  0,0                                 ; add           %al,(%rax)
14258  DB  0,63                                ; add           %bh,(%rdi)
14259  DB  119,115                             ; ja            4215 <.literal16+0x245>
14260  DB  248                                 ; clc
14261  DB  194,119,115                         ; retq          $0x7377
14262  DB  248                                 ; clc
14263  DB  194,119,115                         ; retq          $0x7377
14264  DB  248                                 ; clc
14265  DB  194,119,115                         ; retq          $0x7377
14266  DB  248                                 ; clc
14267  DB  194,117,191                         ; retq          $0xbf75
14268  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
14269  DB  63                                  ; (bad)
14270  DB  117,191                             ; jne           4179 <.literal16+0x1a9>
14271  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
14272  DB  63                                  ; (bad)
14273  DB  249                                 ; stc
14274  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14275  DB  249                                 ; stc
14276  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14277  DB  249                                 ; stc
14278  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14279  DB  249                                 ; stc
14280  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14281  DB  163,233,220,63,163,233,220,63,163   ; movabs        %eax,0xa33fdce9a33fdce9
14282  DB  233,220,63,163,233                  ; jmpq          ffffffffe9a381ba <_sk_callback_sse41+0xffffffffe9a3429e>
14283  DB  220,63                              ; fdivrl        (%rdi)
14284  DB  81                                  ; push          %rcx
14285  DB  140,242                             ; mov           %?,%edx
14286  DB  66,81                               ; rex.X         push %rcx
14287  DB  140,242                             ; mov           %?,%edx
14288  DB  66,81                               ; rex.X         push %rcx
14289  DB  140,242                             ; mov           %?,%edx
14290  DB  66,81                               ; rex.X         push %rcx
14291  DB  140,242                             ; mov           %?,%edx
14292  DB  66,141,188,190,63,141,188,190       ; lea           -0x414372c1(%rsi,%r15,4),%edi
14293  DB  63                                  ; (bad)
14294  DB  141,188,190,63,141,188,190          ; lea           -0x414372c1(%rsi,%rdi,4),%edi
14295  DB  63                                  ; (bad)
14296  DB  248                                 ; clc
14297  DB  245                                 ; cmc
14298  DB  154                                 ; (bad)
14299  DB  64,248                              ; rex           clc
14300  DB  245                                 ; cmc
14301  DB  154                                 ; (bad)
14302  DB  64,248                              ; rex           clc
14303  DB  245                                 ; cmc
14304  DB  154                                 ; (bad)
14305  DB  64,248                              ; rex           clc
14306  DB  245                                 ; cmc
14307  DB  154                                 ; (bad)
14308  DB  64,254                              ; rex           (bad)
14309  DB  210,221                             ; rcr           %cl,%ch
14310  DB  65,254                              ; rex.B         (bad)
14311  DB  210,221                             ; rcr           %cl,%ch
14312  DB  65,254                              ; rex.B         (bad)
14313  DB  210,221                             ; rcr           %cl,%ch
14314  DB  65,254                              ; rex.B         (bad)
14315  DB  210,221                             ; rcr           %cl,%ch
14316  DB  65,0,0                              ; add           %al,(%r8)
14317  DB  0,75,0                              ; add           %cl,0x0(%rbx)
14318  DB  0,0                                 ; add           %al,(%rax)
14319  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
14320  DB  0,75,0                              ; add           %cl,0x0(%rbx)
14321  DB  0,0                                 ; add           %al,(%rax)
14322  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
14323  DB  0,52,0                              ; add           %dh,(%rax,%rax,1)
14324  DB  0,0                                 ; add           %al,(%rax)
14325  DB  52,0                                ; xor           $0x0,%al
14326  DB  0,0                                 ; add           %al,(%rax)
14327  DB  52,0                                ; xor           $0x0,%al
14328  DB  0,0                                 ; add           %al,(%rax)
14329  DB  52,255                              ; xor           $0xff,%al
14330  DB  255                                 ; (bad)
14331  DB  127,0                               ; jg            4244 <.literal16+0x274>
14332  DB  255                                 ; (bad)
14333  DB  255                                 ; (bad)
14334  DB  127,0                               ; jg            4248 <.literal16+0x278>
14335  DB  255                                 ; (bad)
14336  DB  255                                 ; (bad)
14337  DB  127,0                               ; jg            424c <.literal16+0x27c>
14338  DB  255                                 ; (bad)
14339  DB  255                                 ; (bad)
14340  DB  127,0                               ; jg            4250 <.literal16+0x280>
14341  DB  0,0                                 ; add           %al,(%rax)
14342  DB  0,63                                ; add           %bh,(%rdi)
14343  DB  0,0                                 ; add           %al,(%rax)
14344  DB  0,63                                ; add           %bh,(%rdi)
14345  DB  0,0                                 ; add           %al,(%rax)
14346  DB  0,63                                ; add           %bh,(%rdi)
14347  DB  0,0                                 ; add           %al,(%rax)
14348  DB  0,63                                ; add           %bh,(%rdi)
14349  DB  119,115                             ; ja            42d5 <.literal16+0x305>
14350  DB  248                                 ; clc
14351  DB  194,119,115                         ; retq          $0x7377
14352  DB  248                                 ; clc
14353  DB  194,119,115                         ; retq          $0x7377
14354  DB  248                                 ; clc
14355  DB  194,119,115                         ; retq          $0x7377
14356  DB  248                                 ; clc
14357  DB  194,117,191                         ; retq          $0xbf75
14358  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
14359  DB  63                                  ; (bad)
14360  DB  117,191                             ; jne           4239 <.literal16+0x269>
14361  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
14362  DB  63                                  ; (bad)
14363  DB  249                                 ; stc
14364  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14365  DB  249                                 ; stc
14366  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14367  DB  249                                 ; stc
14368  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14369  DB  249                                 ; stc
14370  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
14371  DB  163,233,220,63,163,233,220,63,163   ; movabs        %eax,0xa33fdce9a33fdce9
14372  DB  233,220,63,163,233                  ; jmpq          ffffffffe9a3827a <_sk_callback_sse41+0xffffffffe9a3435e>
14373  DB  220,63                              ; fdivrl        (%rdi)
14374  DB  81                                  ; push          %rcx
14375  DB  140,242                             ; mov           %?,%edx
14376  DB  66,81                               ; rex.X         push %rcx
14377  DB  140,242                             ; mov           %?,%edx
14378  DB  66,81                               ; rex.X         push %rcx
14379  DB  140,242                             ; mov           %?,%edx
14380  DB  66,81                               ; rex.X         push %rcx
14381  DB  140,242                             ; mov           %?,%edx
14382  DB  66,141,188,190,63,141,188,190       ; lea           -0x414372c1(%rsi,%r15,4),%edi
14383  DB  63                                  ; (bad)
14384  DB  141,188,190,63,141,188,190          ; lea           -0x414372c1(%rsi,%rdi,4),%edi
14385  DB  63                                  ; (bad)
14386  DB  248                                 ; clc
14387  DB  245                                 ; cmc
14388  DB  154                                 ; (bad)
14389  DB  64,248                              ; rex           clc
14390  DB  245                                 ; cmc
14391  DB  154                                 ; (bad)
14392  DB  64,248                              ; rex           clc
14393  DB  245                                 ; cmc
14394  DB  154                                 ; (bad)
14395  DB  64,248                              ; rex           clc
14396  DB  245                                 ; cmc
14397  DB  154                                 ; (bad)
14398  DB  64,254                              ; rex           (bad)
14399  DB  210,221                             ; rcr           %cl,%ch
14400  DB  65,254                              ; rex.B         (bad)
14401  DB  210,221                             ; rcr           %cl,%ch
14402  DB  65,254                              ; rex.B         (bad)
14403  DB  210,221                             ; rcr           %cl,%ch
14404  DB  65,254                              ; rex.B         (bad)
14405  DB  210,221                             ; rcr           %cl,%ch
14406  DB  65,0,0                              ; add           %al,(%r8)
14407  DB  0,75,0                              ; add           %cl,0x0(%rbx)
14408  DB  0,0                                 ; add           %al,(%rax)
14409  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
14410  DB  0,75,0                              ; add           %cl,0x0(%rbx)
14411  DB  0,0                                 ; add           %al,(%rax)
14412  DB  75,0,128,0,0,0,128                  ; rex.WXB       add %al,-0x80000000(%r8)
14413  DB  0,0                                 ; add           %al,(%rax)
14414  DB  0,128,0,0,0,128                     ; add           %al,-0x80000000(%rax)
14415  DB  0,0                                 ; add           %al,(%rax)
14416  DB  0,4,0                               ; add           %al,(%rax,%rax,1)
14417  DB  0,0                                 ; add           %al,(%rax)
14418  DB  4,0                                 ; add           $0x0,%al
14419  DB  0,0                                 ; add           %al,(%rax)
14420  DB  4,0                                 ; add           $0x0,%al
14421  DB  0,0                                 ; add           %al,(%rax)
14422  DB  4,0                                 ; add           $0x0,%al
14423  DB  0,0                                 ; add           %al,(%rax)
14424  DB  0,0                                 ; add           %al,(%rax)
14425  DB  56,0                                ; cmp           %al,(%rax)
14426  DB  0,0                                 ; add           %al,(%rax)
14427  DB  56,0                                ; cmp           %al,(%rax)
14428  DB  0,0                                 ; add           %al,(%rax)
14429  DB  56,0                                ; cmp           %al,(%rax)
14430  DB  0,0                                 ; add           %al,(%rax)
14431  DB  56,0                                ; cmp           %al,(%rax)
14432  DB  128,0,0                             ; addb          $0x0,(%rax)
14433  DB  0,128,0,0,0,128                     ; add           %al,-0x80000000(%rax)
14434  DB  0,0                                 ; add           %al,(%rax)
14435  DB  0,128,0,0,0,4                       ; add           %al,0x4000000(%rax)
14436  DB  0,0                                 ; add           %al,(%rax)
14437  DB  0,4,0                               ; add           %al,(%rax,%rax,1)
14438  DB  0,0                                 ; add           %al,(%rax)
14439  DB  4,0                                 ; add           $0x0,%al
14440  DB  0,0                                 ; add           %al,(%rax)
14441  DB  4,0                                 ; add           $0x0,%al
14442  DB  0,0                                 ; add           %al,(%rax)
14443  DB  0,0                                 ; add           %al,(%rax)
14444  DB  56,0                                ; cmp           %al,(%rax)
14445  DB  0,0                                 ; add           %al,(%rax)
14446  DB  56,0                                ; cmp           %al,(%rax)
14447  DB  0,0                                 ; add           %al,(%rax)
14448  DB  56,0                                ; cmp           %al,(%rax)
14449  DB  0,0                                 ; add           %al,(%rax)
14450  DB  56,0                                ; cmp           %al,(%rax)
14451  DB  0,0                                 ; add           %al,(%rax)
14452  DB  128,0,0                             ; addb          $0x0,(%rax)
14453  DB  0,128,0,0,0,128                     ; add           %al,-0x80000000(%rax)
14454  DB  0,0                                 ; add           %al,(%rax)
14455  DB  0,128,0,0,128,56                    ; add           %al,0x38800000(%rax)
14456  DB  0,0                                 ; add           %al,(%rax)
14457  DB  128,56,0                            ; cmpb          $0x0,(%rax)
14458  DB  0,128,56,0,0,128                    ; add           %al,-0x7fffffc8(%rax)
14459  DB  56,0                                ; cmp           %al,(%rax)
14460  DB  64,254                              ; rex           (bad)
14461  DB  255,0                               ; incl          (%rax)
14462  DB  64,254                              ; rex           (bad)
14463  DB  255,0                               ; incl          (%rax)
14464  DB  64,254                              ; rex           (bad)
14465  DB  255,0                               ; incl          (%rax)
14466  DB  64,254                              ; rex           (bad)
14467  DB  255                                 ; .byte         0xff
14468ALIGN 32
14469
14470PUBLIC _sk_start_pipeline_sse2
14471_sk_start_pipeline_sse2 LABEL PROC
14472  DB  65,87                               ; push          %r15
14473  DB  65,86                               ; push          %r14
14474  DB  65,85                               ; push          %r13
14475  DB  65,84                               ; push          %r12
14476  DB  86                                  ; push          %rsi
14477  DB  87                                  ; push          %rdi
14478  DB  83                                  ; push          %rbx
14479  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
14480  DB  68,15,41,188,36,144,0,0,0           ; movaps        %xmm15,0x90(%rsp)
14481  DB  68,15,41,180,36,128,0,0,0           ; movaps        %xmm14,0x80(%rsp)
14482  DB  68,15,41,108,36,112                 ; movaps        %xmm13,0x70(%rsp)
14483  DB  68,15,41,100,36,96                  ; movaps        %xmm12,0x60(%rsp)
14484  DB  68,15,41,92,36,80                   ; movaps        %xmm11,0x50(%rsp)
14485  DB  68,15,41,84,36,64                   ; movaps        %xmm10,0x40(%rsp)
14486  DB  68,15,41,76,36,48                   ; movaps        %xmm9,0x30(%rsp)
14487  DB  68,15,41,68,36,32                   ; movaps        %xmm8,0x20(%rsp)
14488  DB  15,41,124,36,16                     ; movaps        %xmm7,0x10(%rsp)
14489  DB  15,41,52,36                         ; movaps        %xmm6,(%rsp)
14490  DB  77,137,207                          ; mov           %r9,%r15
14491  DB  77,137,198                          ; mov           %r8,%r14
14492  DB  72,137,203                          ; mov           %rcx,%rbx
14493  DB  72,137,214                          ; mov           %rdx,%rsi
14494  DB  72,173                              ; lods          %ds:(%rsi),%rax
14495  DB  73,137,196                          ; mov           %rax,%r12
14496  DB  73,137,245                          ; mov           %rsi,%r13
14497  DB  72,141,67,4                         ; lea           0x4(%rbx),%rax
14498  DB  76,57,248                           ; cmp           %r15,%rax
14499  DB  118,5                               ; jbe           73 <_sk_start_pipeline_sse2+0x73>
14500  DB  72,137,216                          ; mov           %rbx,%rax
14501  DB  235,52                              ; jmp           a7 <_sk_start_pipeline_sse2+0xa7>
14502  DB  15,87,192                           ; xorps         %xmm0,%xmm0
14503  DB  15,87,201                           ; xorps         %xmm1,%xmm1
14504  DB  15,87,210                           ; xorps         %xmm2,%xmm2
14505  DB  15,87,219                           ; xorps         %xmm3,%xmm3
14506  DB  15,87,228                           ; xorps         %xmm4,%xmm4
14507  DB  15,87,237                           ; xorps         %xmm5,%xmm5
14508  DB  15,87,246                           ; xorps         %xmm6,%xmm6
14509  DB  15,87,255                           ; xorps         %xmm7,%xmm7
14510  DB  72,137,223                          ; mov           %rbx,%rdi
14511  DB  76,137,238                          ; mov           %r13,%rsi
14512  DB  76,137,242                          ; mov           %r14,%rdx
14513  DB  65,255,212                          ; callq         *%r12
14514  DB  72,141,67,4                         ; lea           0x4(%rbx),%rax
14515  DB  72,131,195,8                        ; add           $0x8,%rbx
14516  DB  76,57,251                           ; cmp           %r15,%rbx
14517  DB  72,137,195                          ; mov           %rax,%rbx
14518  DB  118,204                             ; jbe           73 <_sk_start_pipeline_sse2+0x73>
14519  DB  15,40,52,36                         ; movaps        (%rsp),%xmm6
14520  DB  15,40,124,36,16                     ; movaps        0x10(%rsp),%xmm7
14521  DB  68,15,40,68,36,32                   ; movaps        0x20(%rsp),%xmm8
14522  DB  68,15,40,76,36,48                   ; movaps        0x30(%rsp),%xmm9
14523  DB  68,15,40,84,36,64                   ; movaps        0x40(%rsp),%xmm10
14524  DB  68,15,40,92,36,80                   ; movaps        0x50(%rsp),%xmm11
14525  DB  68,15,40,100,36,96                  ; movaps        0x60(%rsp),%xmm12
14526  DB  68,15,40,108,36,112                 ; movaps        0x70(%rsp),%xmm13
14527  DB  68,15,40,180,36,128,0,0,0           ; movaps        0x80(%rsp),%xmm14
14528  DB  68,15,40,188,36,144,0,0,0           ; movaps        0x90(%rsp),%xmm15
14529  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
14530  DB  91                                  ; pop           %rbx
14531  DB  95                                  ; pop           %rdi
14532  DB  94                                  ; pop           %rsi
14533  DB  65,92                               ; pop           %r12
14534  DB  65,93                               ; pop           %r13
14535  DB  65,94                               ; pop           %r14
14536  DB  65,95                               ; pop           %r15
14537  DB  195                                 ; retq
14538
14539PUBLIC _sk_just_return_sse2
14540_sk_just_return_sse2 LABEL PROC
14541  DB  195                                 ; retq
14542
14543PUBLIC _sk_seed_shader_sse2
14544_sk_seed_shader_sse2 LABEL PROC
14545  DB  72,173                              ; lods          %ds:(%rsi),%rax
14546  DB  102,15,110,199                      ; movd          %edi,%xmm0
14547  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
14548  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
14549  DB  15,40,21,177,66,0,0                 ; movaps        0x42b1(%rip),%xmm2        # 43c0 <_sk_callback_sse2+0xab>
14550  DB  15,88,202                           ; addps         %xmm2,%xmm1
14551  DB  15,16,2                             ; movups        (%rdx),%xmm0
14552  DB  15,88,193                           ; addps         %xmm1,%xmm0
14553  DB  102,15,110,8                        ; movd          (%rax),%xmm1
14554  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
14555  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
14556  DB  15,88,202                           ; addps         %xmm2,%xmm1
14557  DB  72,173                              ; lods          %ds:(%rsi),%rax
14558  DB  15,40,21,160,66,0,0                 ; movaps        0x42a0(%rip),%xmm2        # 43d0 <_sk_callback_sse2+0xbb>
14559  DB  15,87,219                           ; xorps         %xmm3,%xmm3
14560  DB  15,87,228                           ; xorps         %xmm4,%xmm4
14561  DB  15,87,237                           ; xorps         %xmm5,%xmm5
14562  DB  15,87,246                           ; xorps         %xmm6,%xmm6
14563  DB  15,87,255                           ; xorps         %xmm7,%xmm7
14564  DB  255,224                             ; jmpq          *%rax
14565
14566PUBLIC _sk_constant_color_sse2
14567_sk_constant_color_sse2 LABEL PROC
14568  DB  72,173                              ; lods          %ds:(%rsi),%rax
14569  DB  243,15,16,0                         ; movss         (%rax),%xmm0
14570  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
14571  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
14572  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
14573  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
14574  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14575  DB  243,15,16,88,12                     ; movss         0xc(%rax),%xmm3
14576  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
14577  DB  72,173                              ; lods          %ds:(%rsi),%rax
14578  DB  255,224                             ; jmpq          *%rax
14579
14580PUBLIC _sk_clear_sse2
14581_sk_clear_sse2 LABEL PROC
14582  DB  72,173                              ; lods          %ds:(%rsi),%rax
14583  DB  15,87,192                           ; xorps         %xmm0,%xmm0
14584  DB  15,87,201                           ; xorps         %xmm1,%xmm1
14585  DB  15,87,210                           ; xorps         %xmm2,%xmm2
14586  DB  15,87,219                           ; xorps         %xmm3,%xmm3
14587  DB  255,224                             ; jmpq          *%rax
14588
14589PUBLIC _sk_srcatop_sse2
14590_sk_srcatop_sse2 LABEL PROC
14591  DB  15,89,199                           ; mulps         %xmm7,%xmm0
14592  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14593  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14594  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14595  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14596  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14597  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
14598  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
14599  DB  15,89,207                           ; mulps         %xmm7,%xmm1
14600  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14601  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14602  DB  65,15,88,201                        ; addps         %xmm9,%xmm1
14603  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14604  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14605  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14606  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
14607  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14608  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14609  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
14610  DB  72,173                              ; lods          %ds:(%rsi),%rax
14611  DB  255,224                             ; jmpq          *%rax
14612
14613PUBLIC _sk_dstatop_sse2
14614_sk_dstatop_sse2 LABEL PROC
14615  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14616  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
14617  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14618  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
14619  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
14620  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
14621  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
14622  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
14623  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14624  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
14625  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
14626  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
14627  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14628  DB  68,15,89,198                        ; mulps         %xmm6,%xmm8
14629  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
14630  DB  65,15,88,208                        ; addps         %xmm8,%xmm2
14631  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
14632  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14633  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
14634  DB  72,173                              ; lods          %ds:(%rsi),%rax
14635  DB  255,224                             ; jmpq          *%rax
14636
14637PUBLIC _sk_srcin_sse2
14638_sk_srcin_sse2 LABEL PROC
14639  DB  15,89,199                           ; mulps         %xmm7,%xmm0
14640  DB  15,89,207                           ; mulps         %xmm7,%xmm1
14641  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14642  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14643  DB  72,173                              ; lods          %ds:(%rsi),%rax
14644  DB  255,224                             ; jmpq          *%rax
14645
14646PUBLIC _sk_dstin_sse2
14647_sk_dstin_sse2 LABEL PROC
14648  DB  15,40,195                           ; movaps        %xmm3,%xmm0
14649  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14650  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14651  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14652  DB  15,40,211                           ; movaps        %xmm3,%xmm2
14653  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14654  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14655  DB  72,173                              ; lods          %ds:(%rsi),%rax
14656  DB  255,224                             ; jmpq          *%rax
14657
14658PUBLIC _sk_srcout_sse2
14659_sk_srcout_sse2 LABEL PROC
14660  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14661  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14662  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14663  DB  68,15,92,199                        ; subps         %xmm7,%xmm8
14664  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
14665  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
14666  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
14667  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
14668  DB  72,173                              ; lods          %ds:(%rsi),%rax
14669  DB  255,224                             ; jmpq          *%rax
14670
14671PUBLIC _sk_dstout_sse2
14672_sk_dstout_sse2 LABEL PROC
14673  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14674  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14675  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14676  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14677  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
14678  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14679  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14680  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14681  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14682  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14683  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14684  DB  72,173                              ; lods          %ds:(%rsi),%rax
14685  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
14686  DB  255,224                             ; jmpq          *%rax
14687
14688PUBLIC _sk_srcover_sse2
14689_sk_srcover_sse2 LABEL PROC
14690  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14691  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14692  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14693  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14694  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14695  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
14696  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
14697  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14698  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14699  DB  65,15,88,201                        ; addps         %xmm9,%xmm1
14700  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14701  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14702  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
14703  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14704  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
14705  DB  72,173                              ; lods          %ds:(%rsi),%rax
14706  DB  255,224                             ; jmpq          *%rax
14707
14708PUBLIC _sk_dstover_sse2
14709_sk_dstover_sse2 LABEL PROC
14710  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14711  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14712  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14713  DB  68,15,92,199                        ; subps         %xmm7,%xmm8
14714  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
14715  DB  15,88,196                           ; addps         %xmm4,%xmm0
14716  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
14717  DB  15,88,205                           ; addps         %xmm5,%xmm1
14718  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
14719  DB  15,88,214                           ; addps         %xmm6,%xmm2
14720  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
14721  DB  15,88,223                           ; addps         %xmm7,%xmm3
14722  DB  72,173                              ; lods          %ds:(%rsi),%rax
14723  DB  255,224                             ; jmpq          *%rax
14724
14725PUBLIC _sk_modulate_sse2
14726_sk_modulate_sse2 LABEL PROC
14727  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14728  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14729  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14730  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14731  DB  72,173                              ; lods          %ds:(%rsi),%rax
14732  DB  255,224                             ; jmpq          *%rax
14733
14734PUBLIC _sk_multiply_sse2
14735_sk_multiply_sse2 LABEL PROC
14736  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14737  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14738  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14739  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14740  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
14741  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
14742  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
14743  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14744  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
14745  DB  68,15,89,220                        ; mulps         %xmm4,%xmm11
14746  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
14747  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14748  DB  65,15,88,195                        ; addps         %xmm11,%xmm0
14749  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
14750  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
14751  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
14752  DB  68,15,89,221                        ; mulps         %xmm5,%xmm11
14753  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
14754  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14755  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
14756  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
14757  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
14758  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
14759  DB  68,15,89,222                        ; mulps         %xmm6,%xmm11
14760  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
14761  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14762  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
14763  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
14764  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14765  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
14766  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14767  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
14768  DB  72,173                              ; lods          %ds:(%rsi),%rax
14769  DB  255,224                             ; jmpq          *%rax
14770
14771PUBLIC _sk_plus__sse2
14772_sk_plus__sse2 LABEL PROC
14773  DB  15,88,196                           ; addps         %xmm4,%xmm0
14774  DB  15,88,205                           ; addps         %xmm5,%xmm1
14775  DB  15,88,214                           ; addps         %xmm6,%xmm2
14776  DB  15,88,223                           ; addps         %xmm7,%xmm3
14777  DB  72,173                              ; lods          %ds:(%rsi),%rax
14778  DB  255,224                             ; jmpq          *%rax
14779
14780PUBLIC _sk_screen_sse2
14781_sk_screen_sse2 LABEL PROC
14782  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
14783  DB  68,15,88,196                        ; addps         %xmm4,%xmm8
14784  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14785  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
14786  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
14787  DB  68,15,88,205                        ; addps         %xmm5,%xmm9
14788  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14789  DB  68,15,92,201                        ; subps         %xmm1,%xmm9
14790  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
14791  DB  68,15,88,214                        ; addps         %xmm6,%xmm10
14792  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14793  DB  68,15,92,210                        ; subps         %xmm2,%xmm10
14794  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
14795  DB  68,15,88,223                        ; addps         %xmm7,%xmm11
14796  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14797  DB  68,15,92,219                        ; subps         %xmm3,%xmm11
14798  DB  72,173                              ; lods          %ds:(%rsi),%rax
14799  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
14800  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
14801  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
14802  DB  65,15,40,219                        ; movaps        %xmm11,%xmm3
14803  DB  255,224                             ; jmpq          *%rax
14804
14805PUBLIC _sk_xor__sse2
14806_sk_xor__sse2 LABEL PROC
14807  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14808  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14809  DB  102,15,110,216                      ; movd          %eax,%xmm3
14810  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
14811  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14812  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
14813  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
14814  DB  65,15,92,216                        ; subps         %xmm8,%xmm3
14815  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
14816  DB  68,15,89,212                        ; mulps         %xmm4,%xmm10
14817  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
14818  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
14819  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
14820  DB  68,15,89,213                        ; mulps         %xmm5,%xmm10
14821  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
14822  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
14823  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
14824  DB  68,15,89,214                        ; mulps         %xmm6,%xmm10
14825  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
14826  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14827  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14828  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
14829  DB  72,173                              ; lods          %ds:(%rsi),%rax
14830  DB  255,224                             ; jmpq          *%rax
14831
14832PUBLIC _sk_darken_sse2
14833_sk_darken_sse2 LABEL PROC
14834  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14835  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
14836  DB  15,88,196                           ; addps         %xmm4,%xmm0
14837  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
14838  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14839  DB  15,89,204                           ; mulps         %xmm4,%xmm1
14840  DB  68,15,95,201                        ; maxps         %xmm1,%xmm9
14841  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
14842  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14843  DB  15,88,205                           ; addps         %xmm5,%xmm1
14844  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14845  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14846  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14847  DB  69,15,95,193                        ; maxps         %xmm9,%xmm8
14848  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
14849  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
14850  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14851  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14852  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14853  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14854  DB  65,15,95,209                        ; maxps         %xmm9,%xmm2
14855  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
14856  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14857  DB  102,15,110,208                      ; movd          %eax,%xmm2
14858  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14859  DB  15,92,211                           ; subps         %xmm3,%xmm2
14860  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14861  DB  15,88,218                           ; addps         %xmm2,%xmm3
14862  DB  72,173                              ; lods          %ds:(%rsi),%rax
14863  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14864  DB  255,224                             ; jmpq          *%rax
14865
14866PUBLIC _sk_lighten_sse2
14867_sk_lighten_sse2 LABEL PROC
14868  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14869  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
14870  DB  15,88,196                           ; addps         %xmm4,%xmm0
14871  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
14872  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14873  DB  15,89,204                           ; mulps         %xmm4,%xmm1
14874  DB  68,15,93,201                        ; minps         %xmm1,%xmm9
14875  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
14876  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14877  DB  15,88,205                           ; addps         %xmm5,%xmm1
14878  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14879  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14880  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14881  DB  69,15,93,193                        ; minps         %xmm9,%xmm8
14882  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
14883  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
14884  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14885  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14886  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14887  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14888  DB  65,15,93,209                        ; minps         %xmm9,%xmm2
14889  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
14890  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14891  DB  102,15,110,208                      ; movd          %eax,%xmm2
14892  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14893  DB  15,92,211                           ; subps         %xmm3,%xmm2
14894  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14895  DB  15,88,218                           ; addps         %xmm2,%xmm3
14896  DB  72,173                              ; lods          %ds:(%rsi),%rax
14897  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14898  DB  255,224                             ; jmpq          *%rax
14899
14900PUBLIC _sk_difference_sse2
14901_sk_difference_sse2 LABEL PROC
14902  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14903  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
14904  DB  15,88,196                           ; addps         %xmm4,%xmm0
14905  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
14906  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14907  DB  15,89,204                           ; mulps         %xmm4,%xmm1
14908  DB  68,15,93,201                        ; minps         %xmm1,%xmm9
14909  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
14910  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
14911  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14912  DB  15,88,205                           ; addps         %xmm5,%xmm1
14913  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14914  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14915  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14916  DB  69,15,93,193                        ; minps         %xmm9,%xmm8
14917  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
14918  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
14919  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
14920  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14921  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14922  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14923  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14924  DB  65,15,93,209                        ; minps         %xmm9,%xmm2
14925  DB  15,88,210                           ; addps         %xmm2,%xmm2
14926  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
14927  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14928  DB  102,15,110,208                      ; movd          %eax,%xmm2
14929  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14930  DB  15,92,211                           ; subps         %xmm3,%xmm2
14931  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14932  DB  15,88,218                           ; addps         %xmm2,%xmm3
14933  DB  72,173                              ; lods          %ds:(%rsi),%rax
14934  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14935  DB  255,224                             ; jmpq          *%rax
14936
14937PUBLIC _sk_exclusion_sse2
14938_sk_exclusion_sse2 LABEL PROC
14939  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14940  DB  15,40,200                           ; movaps        %xmm0,%xmm1
14941  DB  15,88,196                           ; addps         %xmm4,%xmm0
14942  DB  15,89,204                           ; mulps         %xmm4,%xmm1
14943  DB  15,88,201                           ; addps         %xmm1,%xmm1
14944  DB  15,92,193                           ; subps         %xmm1,%xmm0
14945  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14946  DB  15,88,205                           ; addps         %xmm5,%xmm1
14947  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
14948  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
14949  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
14950  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
14951  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14952  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14953  DB  15,88,210                           ; addps         %xmm2,%xmm2
14954  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
14955  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14956  DB  102,15,110,208                      ; movd          %eax,%xmm2
14957  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14958  DB  15,92,211                           ; subps         %xmm3,%xmm2
14959  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14960  DB  15,88,218                           ; addps         %xmm2,%xmm3
14961  DB  72,173                              ; lods          %ds:(%rsi),%rax
14962  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14963  DB  255,224                             ; jmpq          *%rax
14964
14965PUBLIC _sk_colorburn_sse2
14966_sk_colorburn_sse2 LABEL PROC
14967  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14968  DB  68,15,40,224                        ; movaps        %xmm0,%xmm12
14969  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14970  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
14971  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
14972  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
14973  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
14974  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
14975  DB  65,15,89,196                        ; mulps         %xmm12,%xmm0
14976  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
14977  DB  15,40,207                           ; movaps        %xmm7,%xmm1
14978  DB  15,92,204                           ; subps         %xmm4,%xmm1
14979  DB  15,89,203                           ; mulps         %xmm3,%xmm1
14980  DB  65,15,94,204                        ; divps         %xmm12,%xmm1
14981  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14982  DB  68,15,93,233                        ; minps         %xmm1,%xmm13
14983  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
14984  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
14985  DB  65,15,40,204                        ; movaps        %xmm12,%xmm1
14986  DB  65,15,194,202,0                     ; cmpeqps       %xmm10,%xmm1
14987  DB  68,15,92,203                        ; subps         %xmm3,%xmm9
14988  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
14989  DB  68,15,88,240                        ; addps         %xmm0,%xmm14
14990  DB  68,15,84,225                        ; andps         %xmm1,%xmm12
14991  DB  65,15,85,206                        ; andnps        %xmm14,%xmm1
14992  DB  69,15,40,233                        ; movaps        %xmm9,%xmm13
14993  DB  68,15,89,236                        ; mulps         %xmm4,%xmm13
14994  DB  15,88,196                           ; addps         %xmm4,%xmm0
14995  DB  65,15,86,204                        ; orps          %xmm12,%xmm1
14996  DB  68,15,40,228                        ; movaps        %xmm4,%xmm12
14997  DB  68,15,194,231,0                     ; cmpeqps       %xmm7,%xmm12
14998  DB  65,15,88,205                        ; addps         %xmm13,%xmm1
14999  DB  65,15,84,196                        ; andps         %xmm12,%xmm0
15000  DB  68,15,85,225                        ; andnps        %xmm1,%xmm12
15001  DB  65,15,86,196                        ; orps          %xmm12,%xmm0
15002  DB  65,15,40,203                        ; movaps        %xmm11,%xmm1
15003  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
15004  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
15005  DB  68,15,92,229                        ; subps         %xmm5,%xmm12
15006  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
15007  DB  69,15,94,224                        ; divps         %xmm8,%xmm12
15008  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
15009  DB  69,15,93,236                        ; minps         %xmm12,%xmm13
15010  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
15011  DB  69,15,92,229                        ; subps         %xmm13,%xmm12
15012  DB  69,15,40,232                        ; movaps        %xmm8,%xmm13
15013  DB  69,15,194,234,0                     ; cmpeqps       %xmm10,%xmm13
15014  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
15015  DB  68,15,88,225                        ; addps         %xmm1,%xmm12
15016  DB  69,15,84,197                        ; andps         %xmm13,%xmm8
15017  DB  69,15,85,236                        ; andnps        %xmm12,%xmm13
15018  DB  69,15,86,232                        ; orps          %xmm8,%xmm13
15019  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
15020  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
15021  DB  15,88,205                           ; addps         %xmm5,%xmm1
15022  DB  69,15,88,232                        ; addps         %xmm8,%xmm13
15023  DB  68,15,40,197                        ; movaps        %xmm5,%xmm8
15024  DB  68,15,194,199,0                     ; cmpeqps       %xmm7,%xmm8
15025  DB  65,15,84,200                        ; andps         %xmm8,%xmm1
15026  DB  69,15,85,197                        ; andnps        %xmm13,%xmm8
15027  DB  65,15,86,200                        ; orps          %xmm8,%xmm1
15028  DB  68,15,40,199                        ; movaps        %xmm7,%xmm8
15029  DB  68,15,92,198                        ; subps         %xmm6,%xmm8
15030  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
15031  DB  68,15,94,194                        ; divps         %xmm2,%xmm8
15032  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
15033  DB  69,15,93,224                        ; minps         %xmm8,%xmm12
15034  DB  68,15,40,199                        ; movaps        %xmm7,%xmm8
15035  DB  69,15,92,196                        ; subps         %xmm12,%xmm8
15036  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
15037  DB  68,15,194,210,0                     ; cmpeqps       %xmm2,%xmm10
15038  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
15039  DB  69,15,88,195                        ; addps         %xmm11,%xmm8
15040  DB  65,15,84,210                        ; andps         %xmm10,%xmm2
15041  DB  69,15,85,208                        ; andnps        %xmm8,%xmm10
15042  DB  69,15,40,195                        ; movaps        %xmm11,%xmm8
15043  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
15044  DB  68,15,86,210                        ; orps          %xmm2,%xmm10
15045  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
15046  DB  15,89,214                           ; mulps         %xmm6,%xmm2
15047  DB  68,15,88,210                        ; addps         %xmm2,%xmm10
15048  DB  15,40,214                           ; movaps        %xmm6,%xmm2
15049  DB  15,194,215,0                        ; cmpeqps       %xmm7,%xmm2
15050  DB  68,15,84,194                        ; andps         %xmm2,%xmm8
15051  DB  65,15,85,210                        ; andnps        %xmm10,%xmm2
15052  DB  68,15,86,194                        ; orps          %xmm2,%xmm8
15053  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
15054  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
15055  DB  72,173                              ; lods          %ds:(%rsi),%rax
15056  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
15057  DB  255,224                             ; jmpq          *%rax
15058
15059PUBLIC _sk_colordodge_sse2
15060_sk_colordodge_sse2 LABEL PROC
15061  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
15062  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15063  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
15064  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
15065  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
15066  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
15067  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
15068  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
15069  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
15070  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
15071  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
15072  DB  69,15,92,225                        ; subps         %xmm9,%xmm12
15073  DB  69,15,94,196                        ; divps         %xmm12,%xmm8
15074  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
15075  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
15076  DB  69,15,93,232                        ; minps         %xmm8,%xmm13
15077  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15078  DB  68,15,194,243,0                     ; cmpeqps       %xmm3,%xmm14
15079  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
15080  DB  68,15,88,232                        ; addps         %xmm0,%xmm13
15081  DB  69,15,84,206                        ; andps         %xmm14,%xmm9
15082  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
15083  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
15084  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
15085  DB  69,15,86,241                        ; orps          %xmm9,%xmm14
15086  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
15087  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
15088  DB  15,88,196                           ; addps         %xmm4,%xmm0
15089  DB  69,15,88,241                        ; addps         %xmm9,%xmm14
15090  DB  68,15,40,204                        ; movaps        %xmm4,%xmm9
15091  DB  69,15,194,200,0                     ; cmpeqps       %xmm8,%xmm9
15092  DB  65,15,84,193                        ; andps         %xmm9,%xmm0
15093  DB  69,15,85,206                        ; andnps        %xmm14,%xmm9
15094  DB  65,15,86,193                        ; orps          %xmm9,%xmm0
15095  DB  68,15,40,235                        ; movaps        %xmm3,%xmm13
15096  DB  68,15,89,237                        ; mulps         %xmm5,%xmm13
15097  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
15098  DB  68,15,92,201                        ; subps         %xmm1,%xmm9
15099  DB  69,15,94,233                        ; divps         %xmm9,%xmm13
15100  DB  69,15,40,203                        ; movaps        %xmm11,%xmm9
15101  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
15102  DB  69,15,93,229                        ; minps         %xmm13,%xmm12
15103  DB  68,15,40,233                        ; movaps        %xmm1,%xmm13
15104  DB  68,15,194,235,0                     ; cmpeqps       %xmm3,%xmm13
15105  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
15106  DB  69,15,88,225                        ; addps         %xmm9,%xmm12
15107  DB  65,15,84,205                        ; andps         %xmm13,%xmm1
15108  DB  69,15,85,236                        ; andnps        %xmm12,%xmm13
15109  DB  68,15,86,233                        ; orps          %xmm1,%xmm13
15110  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
15111  DB  15,89,205                           ; mulps         %xmm5,%xmm1
15112  DB  68,15,88,205                        ; addps         %xmm5,%xmm9
15113  DB  68,15,88,233                        ; addps         %xmm1,%xmm13
15114  DB  15,40,205                           ; movaps        %xmm5,%xmm1
15115  DB  65,15,194,200,0                     ; cmpeqps       %xmm8,%xmm1
15116  DB  68,15,84,201                        ; andps         %xmm1,%xmm9
15117  DB  65,15,85,205                        ; andnps        %xmm13,%xmm1
15118  DB  68,15,86,201                        ; orps          %xmm1,%xmm9
15119  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
15120  DB  68,15,89,230                        ; mulps         %xmm6,%xmm12
15121  DB  15,40,203                           ; movaps        %xmm3,%xmm1
15122  DB  15,92,202                           ; subps         %xmm2,%xmm1
15123  DB  68,15,94,225                        ; divps         %xmm1,%xmm12
15124  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
15125  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
15126  DB  69,15,93,236                        ; minps         %xmm12,%xmm13
15127  DB  15,40,202                           ; movaps        %xmm2,%xmm1
15128  DB  15,194,203,0                        ; cmpeqps       %xmm3,%xmm1
15129  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
15130  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
15131  DB  15,84,209                           ; andps         %xmm1,%xmm2
15132  DB  65,15,85,205                        ; andnps        %xmm13,%xmm1
15133  DB  15,86,202                           ; orps          %xmm2,%xmm1
15134  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
15135  DB  15,89,214                           ; mulps         %xmm6,%xmm2
15136  DB  15,88,202                           ; addps         %xmm2,%xmm1
15137  DB  68,15,194,198,0                     ; cmpeqps       %xmm6,%xmm8
15138  DB  68,15,88,222                        ; addps         %xmm6,%xmm11
15139  DB  69,15,84,216                        ; andps         %xmm8,%xmm11
15140  DB  68,15,85,193                        ; andnps        %xmm1,%xmm8
15141  DB  69,15,86,195                        ; orps          %xmm11,%xmm8
15142  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
15143  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
15144  DB  72,173                              ; lods          %ds:(%rsi),%rax
15145  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
15146  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
15147  DB  255,224                             ; jmpq          *%rax
15148
15149PUBLIC _sk_hardlight_sse2
15150_sk_hardlight_sse2 LABEL PROC
15151  DB  72,131,236,24                       ; sub           $0x18,%rsp
15152  DB  15,41,52,36                         ; movaps        %xmm6,(%rsp)
15153  DB  15,40,245                           ; movaps        %xmm5,%xmm6
15154  DB  15,40,236                           ; movaps        %xmm4,%xmm5
15155  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15156  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
15157  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
15158  DB  69,15,40,211                        ; movaps        %xmm11,%xmm10
15159  DB  68,15,92,215                        ; subps         %xmm7,%xmm10
15160  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
15161  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
15162  DB  68,15,92,219                        ; subps         %xmm3,%xmm11
15163  DB  69,15,40,203                        ; movaps        %xmm11,%xmm9
15164  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
15165  DB  69,15,88,200                        ; addps         %xmm8,%xmm9
15166  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
15167  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
15168  DB  15,40,227                           ; movaps        %xmm3,%xmm4
15169  DB  15,89,231                           ; mulps         %xmm7,%xmm4
15170  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
15171  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
15172  DB  68,15,40,255                        ; movaps        %xmm7,%xmm15
15173  DB  68,15,92,253                        ; subps         %xmm5,%xmm15
15174  DB  69,15,89,248                        ; mulps         %xmm8,%xmm15
15175  DB  69,15,88,255                        ; addps         %xmm15,%xmm15
15176  DB  68,15,40,228                        ; movaps        %xmm4,%xmm12
15177  DB  69,15,92,231                        ; subps         %xmm15,%xmm12
15178  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
15179  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
15180  DB  68,15,194,195,2                     ; cmpleps       %xmm3,%xmm8
15181  DB  15,89,197                           ; mulps         %xmm5,%xmm0
15182  DB  15,88,192                           ; addps         %xmm0,%xmm0
15183  DB  65,15,84,192                        ; andps         %xmm8,%xmm0
15184  DB  69,15,85,196                        ; andnps        %xmm12,%xmm8
15185  DB  68,15,86,192                        ; orps          %xmm0,%xmm8
15186  DB  69,15,40,251                        ; movaps        %xmm11,%xmm15
15187  DB  69,15,40,227                        ; movaps        %xmm11,%xmm12
15188  DB  68,15,89,223                        ; mulps         %xmm7,%xmm11
15189  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
15190  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
15191  DB  15,89,193                           ; mulps         %xmm1,%xmm0
15192  DB  68,15,89,254                        ; mulps         %xmm6,%xmm15
15193  DB  68,15,88,248                        ; addps         %xmm0,%xmm15
15194  DB  15,40,195                           ; movaps        %xmm3,%xmm0
15195  DB  15,92,193                           ; subps         %xmm1,%xmm0
15196  DB  68,15,92,238                        ; subps         %xmm6,%xmm13
15197  DB  68,15,89,232                        ; mulps         %xmm0,%xmm13
15198  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
15199  DB  15,40,196                           ; movaps        %xmm4,%xmm0
15200  DB  65,15,92,197                        ; subps         %xmm13,%xmm0
15201  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
15202  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
15203  DB  68,15,194,203,2                     ; cmpleps       %xmm3,%xmm9
15204  DB  15,89,206                           ; mulps         %xmm6,%xmm1
15205  DB  15,88,201                           ; addps         %xmm1,%xmm1
15206  DB  65,15,84,201                        ; andps         %xmm9,%xmm1
15207  DB  68,15,85,200                        ; andnps        %xmm0,%xmm9
15208  DB  68,15,86,201                        ; orps          %xmm1,%xmm9
15209  DB  69,15,88,207                        ; addps         %xmm15,%xmm9
15210  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
15211  DB  68,15,40,44,36                      ; movaps        (%rsp),%xmm13
15212  DB  69,15,89,229                        ; mulps         %xmm13,%xmm12
15213  DB  69,15,88,226                        ; addps         %xmm10,%xmm12
15214  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
15215  DB  69,15,88,210                        ; addps         %xmm10,%xmm10
15216  DB  68,15,194,211,2                     ; cmpleps       %xmm3,%xmm10
15217  DB  15,40,195                           ; movaps        %xmm3,%xmm0
15218  DB  15,92,194                           ; subps         %xmm2,%xmm0
15219  DB  65,15,89,213                        ; mulps         %xmm13,%xmm2
15220  DB  15,88,210                           ; addps         %xmm2,%xmm2
15221  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
15222  DB  68,15,89,240                        ; mulps         %xmm0,%xmm14
15223  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
15224  DB  65,15,92,230                        ; subps         %xmm14,%xmm4
15225  DB  65,15,84,210                        ; andps         %xmm10,%xmm2
15226  DB  68,15,85,212                        ; andnps        %xmm4,%xmm10
15227  DB  68,15,86,210                        ; orps          %xmm2,%xmm10
15228  DB  69,15,88,212                        ; addps         %xmm12,%xmm10
15229  DB  65,15,88,219                        ; addps         %xmm11,%xmm3
15230  DB  72,173                              ; lods          %ds:(%rsi),%rax
15231  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
15232  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
15233  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
15234  DB  15,40,229                           ; movaps        %xmm5,%xmm4
15235  DB  15,40,238                           ; movaps        %xmm6,%xmm5
15236  DB  65,15,40,245                        ; movaps        %xmm13,%xmm6
15237  DB  72,131,196,24                       ; add           $0x18,%rsp
15238  DB  255,224                             ; jmpq          *%rax
15239
15240PUBLIC _sk_overlay_sse2
15241_sk_overlay_sse2 LABEL PROC
15242  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15243  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15244  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15245  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
15246  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
15247  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
15248  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
15249  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
15250  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
15251  DB  68,15,89,220                        ; mulps         %xmm4,%xmm11
15252  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
15253  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
15254  DB  68,15,92,224                        ; subps         %xmm0,%xmm12
15255  DB  15,89,196                           ; mulps         %xmm4,%xmm0
15256  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
15257  DB  68,15,92,236                        ; subps         %xmm4,%xmm13
15258  DB  68,15,40,244                        ; movaps        %xmm4,%xmm14
15259  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
15260  DB  68,15,194,247,2                     ; cmpleps       %xmm7,%xmm14
15261  DB  15,88,192                           ; addps         %xmm0,%xmm0
15262  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
15263  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
15264  DB  69,15,89,236                        ; mulps         %xmm12,%xmm13
15265  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
15266  DB  69,15,40,226                        ; movaps        %xmm10,%xmm12
15267  DB  69,15,92,229                        ; subps         %xmm13,%xmm12
15268  DB  65,15,84,198                        ; andps         %xmm14,%xmm0
15269  DB  69,15,85,244                        ; andnps        %xmm12,%xmm14
15270  DB  65,15,86,198                        ; orps          %xmm14,%xmm0
15271  DB  65,15,88,195                        ; addps         %xmm11,%xmm0
15272  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
15273  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
15274  DB  69,15,40,224                        ; movaps        %xmm8,%xmm12
15275  DB  68,15,89,229                        ; mulps         %xmm5,%xmm12
15276  DB  69,15,88,227                        ; addps         %xmm11,%xmm12
15277  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
15278  DB  68,15,92,217                        ; subps         %xmm1,%xmm11
15279  DB  15,89,205                           ; mulps         %xmm5,%xmm1
15280  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
15281  DB  68,15,92,237                        ; subps         %xmm5,%xmm13
15282  DB  68,15,40,245                        ; movaps        %xmm5,%xmm14
15283  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
15284  DB  68,15,194,247,2                     ; cmpleps       %xmm7,%xmm14
15285  DB  15,88,201                           ; addps         %xmm1,%xmm1
15286  DB  69,15,89,235                        ; mulps         %xmm11,%xmm13
15287  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
15288  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
15289  DB  69,15,92,221                        ; subps         %xmm13,%xmm11
15290  DB  65,15,84,206                        ; andps         %xmm14,%xmm1
15291  DB  69,15,85,243                        ; andnps        %xmm11,%xmm14
15292  DB  65,15,86,206                        ; orps          %xmm14,%xmm1
15293  DB  65,15,88,204                        ; addps         %xmm12,%xmm1
15294  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
15295  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
15296  DB  68,15,89,222                        ; mulps         %xmm6,%xmm11
15297  DB  69,15,88,217                        ; addps         %xmm9,%xmm11
15298  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
15299  DB  68,15,92,202                        ; subps         %xmm2,%xmm9
15300  DB  15,89,214                           ; mulps         %xmm6,%xmm2
15301  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
15302  DB  68,15,92,230                        ; subps         %xmm6,%xmm12
15303  DB  68,15,40,238                        ; movaps        %xmm6,%xmm13
15304  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
15305  DB  68,15,194,239,2                     ; cmpleps       %xmm7,%xmm13
15306  DB  15,88,210                           ; addps         %xmm2,%xmm2
15307  DB  69,15,89,225                        ; mulps         %xmm9,%xmm12
15308  DB  69,15,88,228                        ; addps         %xmm12,%xmm12
15309  DB  69,15,92,212                        ; subps         %xmm12,%xmm10
15310  DB  65,15,84,213                        ; andps         %xmm13,%xmm2
15311  DB  69,15,85,234                        ; andnps        %xmm10,%xmm13
15312  DB  65,15,86,213                        ; orps          %xmm13,%xmm2
15313  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
15314  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
15315  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
15316  DB  72,173                              ; lods          %ds:(%rsi),%rax
15317  DB  255,224                             ; jmpq          *%rax
15318
15319PUBLIC _sk_softlight_sse2
15320_sk_softlight_sse2 LABEL PROC
15321  DB  72,131,236,56                       ; sub           $0x38,%rsp
15322  DB  15,41,84,36,32                      ; movaps        %xmm2,0x20(%rsp)
15323  DB  15,40,209                           ; movaps        %xmm1,%xmm2
15324  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
15325  DB  69,15,87,228                        ; xorps         %xmm12,%xmm12
15326  DB  68,15,194,231,1                     ; cmpltps       %xmm7,%xmm12
15327  DB  68,15,40,212                        ; movaps        %xmm4,%xmm10
15328  DB  68,15,94,215                        ; divps         %xmm7,%xmm10
15329  DB  69,15,84,212                        ; andps         %xmm12,%xmm10
15330  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15331  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15332  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15333  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15334  DB  69,15,92,242                        ; subps         %xmm10,%xmm14
15335  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
15336  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
15337  DB  65,15,82,194                        ; rsqrtps       %xmm10,%xmm0
15338  DB  68,15,83,248                        ; rcpps         %xmm0,%xmm15
15339  DB  69,15,92,250                        ; subps         %xmm10,%xmm15
15340  DB  69,15,88,210                        ; addps         %xmm10,%xmm10
15341  DB  69,15,88,210                        ; addps         %xmm10,%xmm10
15342  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
15343  DB  15,89,192                           ; mulps         %xmm0,%xmm0
15344  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
15345  DB  69,15,92,217                        ; subps         %xmm9,%xmm11
15346  DB  68,15,89,216                        ; mulps         %xmm0,%xmm11
15347  DB  184,0,0,224,64                      ; mov           $0x40e00000,%eax
15348  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
15349  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
15350  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
15351  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
15352  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
15353  DB  15,40,204                           ; movaps        %xmm4,%xmm1
15354  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
15355  DB  15,88,228                           ; addps         %xmm4,%xmm4
15356  DB  15,88,228                           ; addps         %xmm4,%xmm4
15357  DB  15,194,231,2                        ; cmpleps       %xmm7,%xmm4
15358  DB  68,15,84,236                        ; andps         %xmm4,%xmm13
15359  DB  65,15,85,231                        ; andnps        %xmm15,%xmm4
15360  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
15361  DB  15,88,192                           ; addps         %xmm0,%xmm0
15362  DB  65,15,86,229                        ; orps          %xmm13,%xmm4
15363  DB  68,15,40,232                        ; movaps        %xmm0,%xmm13
15364  DB  68,15,92,235                        ; subps         %xmm3,%xmm13
15365  DB  69,15,89,245                        ; mulps         %xmm13,%xmm14
15366  DB  68,15,89,239                        ; mulps         %xmm7,%xmm13
15367  DB  65,15,89,229                        ; mulps         %xmm13,%xmm4
15368  DB  65,15,88,227                        ; addps         %xmm11,%xmm4
15369  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
15370  DB  68,15,92,219                        ; subps         %xmm3,%xmm11
15371  DB  69,15,40,251                        ; movaps        %xmm11,%xmm15
15372  DB  15,41,76,36,16                      ; movaps        %xmm1,0x10(%rsp)
15373  DB  68,15,89,249                        ; mulps         %xmm1,%xmm15
15374  DB  69,15,40,233                        ; movaps        %xmm9,%xmm13
15375  DB  68,15,92,239                        ; subps         %xmm7,%xmm13
15376  DB  69,15,89,197                        ; mulps         %xmm13,%xmm8
15377  DB  69,15,88,199                        ; addps         %xmm15,%xmm8
15378  DB  68,15,88,243                        ; addps         %xmm3,%xmm14
15379  DB  68,15,89,241                        ; mulps         %xmm1,%xmm14
15380  DB  15,194,195,2                        ; cmpleps       %xmm3,%xmm0
15381  DB  68,15,84,240                        ; andps         %xmm0,%xmm14
15382  DB  15,85,196                           ; andnps        %xmm4,%xmm0
15383  DB  65,15,86,198                        ; orps          %xmm14,%xmm0
15384  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
15385  DB  15,41,44,36                         ; movaps        %xmm5,(%rsp)
15386  DB  68,15,40,197                        ; movaps        %xmm5,%xmm8
15387  DB  68,15,94,199                        ; divps         %xmm7,%xmm8
15388  DB  69,15,84,196                        ; andps         %xmm12,%xmm8
15389  DB  69,15,40,240                        ; movaps        %xmm8,%xmm14
15390  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
15391  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
15392  DB  65,15,40,230                        ; movaps        %xmm14,%xmm4
15393  DB  15,89,228                           ; mulps         %xmm4,%xmm4
15394  DB  65,15,88,230                        ; addps         %xmm14,%xmm4
15395  DB  69,15,40,248                        ; movaps        %xmm8,%xmm15
15396  DB  69,15,92,249                        ; subps         %xmm9,%xmm15
15397  DB  68,15,89,252                        ; mulps         %xmm4,%xmm15
15398  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15399  DB  69,15,92,240                        ; subps         %xmm8,%xmm14
15400  DB  65,15,82,224                        ; rsqrtps       %xmm8,%xmm4
15401  DB  15,83,228                           ; rcpps         %xmm4,%xmm4
15402  DB  65,15,92,224                        ; subps         %xmm8,%xmm4
15403  DB  69,15,89,194                        ; mulps         %xmm10,%xmm8
15404  DB  69,15,88,199                        ; addps         %xmm15,%xmm8
15405  DB  68,15,40,253                        ; movaps        %xmm5,%xmm15
15406  DB  69,15,88,255                        ; addps         %xmm15,%xmm15
15407  DB  69,15,88,255                        ; addps         %xmm15,%xmm15
15408  DB  68,15,194,255,2                     ; cmpleps       %xmm7,%xmm15
15409  DB  69,15,84,199                        ; andps         %xmm15,%xmm8
15410  DB  68,15,85,252                        ; andnps        %xmm4,%xmm15
15411  DB  69,15,86,248                        ; orps          %xmm8,%xmm15
15412  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
15413  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
15414  DB  65,15,40,224                        ; movaps        %xmm8,%xmm4
15415  DB  15,92,227                           ; subps         %xmm3,%xmm4
15416  DB  68,15,89,244                        ; mulps         %xmm4,%xmm14
15417  DB  15,89,231                           ; mulps         %xmm7,%xmm4
15418  DB  68,15,89,252                        ; mulps         %xmm4,%xmm15
15419  DB  15,40,227                           ; movaps        %xmm3,%xmm4
15420  DB  15,89,229                           ; mulps         %xmm5,%xmm4
15421  DB  68,15,88,252                        ; addps         %xmm4,%xmm15
15422  DB  65,15,40,227                        ; movaps        %xmm11,%xmm4
15423  DB  15,89,229                           ; mulps         %xmm5,%xmm4
15424  DB  65,15,89,213                        ; mulps         %xmm13,%xmm2
15425  DB  15,88,212                           ; addps         %xmm4,%xmm2
15426  DB  68,15,88,243                        ; addps         %xmm3,%xmm14
15427  DB  68,15,89,245                        ; mulps         %xmm5,%xmm14
15428  DB  68,15,194,195,2                     ; cmpleps       %xmm3,%xmm8
15429  DB  69,15,84,240                        ; andps         %xmm8,%xmm14
15430  DB  69,15,85,199                        ; andnps        %xmm15,%xmm8
15431  DB  69,15,86,198                        ; orps          %xmm14,%xmm8
15432  DB  68,15,88,194                        ; addps         %xmm2,%xmm8
15433  DB  68,15,40,246                        ; movaps        %xmm6,%xmm14
15434  DB  65,15,40,206                        ; movaps        %xmm14,%xmm1
15435  DB  15,94,207                           ; divps         %xmm7,%xmm1
15436  DB  65,15,84,204                        ; andps         %xmm12,%xmm1
15437  DB  15,40,225                           ; movaps        %xmm1,%xmm4
15438  DB  65,15,92,225                        ; subps         %xmm9,%xmm4
15439  DB  68,15,92,201                        ; subps         %xmm1,%xmm9
15440  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
15441  DB  15,82,241                           ; rsqrtps       %xmm1,%xmm6
15442  DB  15,83,246                           ; rcpps         %xmm6,%xmm6
15443  DB  15,92,241                           ; subps         %xmm1,%xmm6
15444  DB  15,88,201                           ; addps         %xmm1,%xmm1
15445  DB  15,88,201                           ; addps         %xmm1,%xmm1
15446  DB  15,40,233                           ; movaps        %xmm1,%xmm5
15447  DB  15,89,237                           ; mulps         %xmm5,%xmm5
15448  DB  15,88,233                           ; addps         %xmm1,%xmm5
15449  DB  15,89,236                           ; mulps         %xmm4,%xmm5
15450  DB  68,15,88,213                        ; addps         %xmm5,%xmm10
15451  DB  65,15,40,238                        ; movaps        %xmm14,%xmm5
15452  DB  15,40,205                           ; movaps        %xmm5,%xmm1
15453  DB  15,88,201                           ; addps         %xmm1,%xmm1
15454  DB  15,88,201                           ; addps         %xmm1,%xmm1
15455  DB  15,194,207,2                        ; cmpleps       %xmm7,%xmm1
15456  DB  68,15,84,209                        ; andps         %xmm1,%xmm10
15457  DB  15,85,206                           ; andnps        %xmm6,%xmm1
15458  DB  15,40,84,36,32                      ; movaps        0x20(%rsp),%xmm2
15459  DB  68,15,89,234                        ; mulps         %xmm2,%xmm13
15460  DB  15,88,210                           ; addps         %xmm2,%xmm2
15461  DB  65,15,86,202                        ; orps          %xmm10,%xmm1
15462  DB  15,40,226                           ; movaps        %xmm2,%xmm4
15463  DB  15,92,227                           ; subps         %xmm3,%xmm4
15464  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
15465  DB  15,89,231                           ; mulps         %xmm7,%xmm4
15466  DB  15,89,204                           ; mulps         %xmm4,%xmm1
15467  DB  15,40,227                           ; movaps        %xmm3,%xmm4
15468  DB  15,89,229                           ; mulps         %xmm5,%xmm4
15469  DB  15,88,204                           ; addps         %xmm4,%xmm1
15470  DB  65,15,40,227                        ; movaps        %xmm11,%xmm4
15471  DB  15,89,229                           ; mulps         %xmm5,%xmm4
15472  DB  65,15,88,229                        ; addps         %xmm13,%xmm4
15473  DB  68,15,88,203                        ; addps         %xmm3,%xmm9
15474  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
15475  DB  15,40,245                           ; movaps        %xmm5,%xmm6
15476  DB  15,194,211,2                        ; cmpleps       %xmm3,%xmm2
15477  DB  68,15,84,202                        ; andps         %xmm2,%xmm9
15478  DB  15,85,209                           ; andnps        %xmm1,%xmm2
15479  DB  65,15,86,209                        ; orps          %xmm9,%xmm2
15480  DB  15,88,212                           ; addps         %xmm4,%xmm2
15481  DB  68,15,89,223                        ; mulps         %xmm7,%xmm11
15482  DB  65,15,88,219                        ; addps         %xmm11,%xmm3
15483  DB  72,173                              ; lods          %ds:(%rsi),%rax
15484  DB  15,40,100,36,16                     ; movaps        0x10(%rsp),%xmm4
15485  DB  15,40,44,36                         ; movaps        (%rsp),%xmm5
15486  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
15487  DB  72,131,196,56                       ; add           $0x38,%rsp
15488  DB  255,224                             ; jmpq          *%rax
15489
15490PUBLIC _sk_clamp_0_sse2
15491_sk_clamp_0_sse2 LABEL PROC
15492  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
15493  DB  65,15,95,192                        ; maxps         %xmm8,%xmm0
15494  DB  65,15,95,200                        ; maxps         %xmm8,%xmm1
15495  DB  65,15,95,208                        ; maxps         %xmm8,%xmm2
15496  DB  65,15,95,216                        ; maxps         %xmm8,%xmm3
15497  DB  72,173                              ; lods          %ds:(%rsi),%rax
15498  DB  255,224                             ; jmpq          *%rax
15499
15500PUBLIC _sk_clamp_1_sse2
15501_sk_clamp_1_sse2 LABEL PROC
15502  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15503  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15504  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15505  DB  65,15,93,192                        ; minps         %xmm8,%xmm0
15506  DB  65,15,93,200                        ; minps         %xmm8,%xmm1
15507  DB  65,15,93,208                        ; minps         %xmm8,%xmm2
15508  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
15509  DB  72,173                              ; lods          %ds:(%rsi),%rax
15510  DB  255,224                             ; jmpq          *%rax
15511
15512PUBLIC _sk_clamp_a_sse2
15513_sk_clamp_a_sse2 LABEL PROC
15514  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15515  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15516  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15517  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
15518  DB  15,93,195                           ; minps         %xmm3,%xmm0
15519  DB  15,93,203                           ; minps         %xmm3,%xmm1
15520  DB  15,93,211                           ; minps         %xmm3,%xmm2
15521  DB  72,173                              ; lods          %ds:(%rsi),%rax
15522  DB  255,224                             ; jmpq          *%rax
15523
15524PUBLIC _sk_set_rgb_sse2
15525_sk_set_rgb_sse2 LABEL PROC
15526  DB  72,173                              ; lods          %ds:(%rsi),%rax
15527  DB  243,15,16,0                         ; movss         (%rax),%xmm0
15528  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
15529  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
15530  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
15531  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
15532  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
15533  DB  72,173                              ; lods          %ds:(%rsi),%rax
15534  DB  255,224                             ; jmpq          *%rax
15535
15536PUBLIC _sk_swap_rb_sse2
15537_sk_swap_rb_sse2 LABEL PROC
15538  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
15539  DB  72,173                              ; lods          %ds:(%rsi),%rax
15540  DB  15,40,194                           ; movaps        %xmm2,%xmm0
15541  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
15542  DB  255,224                             ; jmpq          *%rax
15543
15544PUBLIC _sk_swap_sse2
15545_sk_swap_sse2 LABEL PROC
15546  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
15547  DB  68,15,40,202                        ; movaps        %xmm2,%xmm9
15548  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
15549  DB  68,15,40,216                        ; movaps        %xmm0,%xmm11
15550  DB  72,173                              ; lods          %ds:(%rsi),%rax
15551  DB  15,40,196                           ; movaps        %xmm4,%xmm0
15552  DB  15,40,205                           ; movaps        %xmm5,%xmm1
15553  DB  15,40,214                           ; movaps        %xmm6,%xmm2
15554  DB  15,40,223                           ; movaps        %xmm7,%xmm3
15555  DB  65,15,40,227                        ; movaps        %xmm11,%xmm4
15556  DB  65,15,40,234                        ; movaps        %xmm10,%xmm5
15557  DB  65,15,40,241                        ; movaps        %xmm9,%xmm6
15558  DB  65,15,40,248                        ; movaps        %xmm8,%xmm7
15559  DB  255,224                             ; jmpq          *%rax
15560
15561PUBLIC _sk_move_src_dst_sse2
15562_sk_move_src_dst_sse2 LABEL PROC
15563  DB  72,173                              ; lods          %ds:(%rsi),%rax
15564  DB  15,40,224                           ; movaps        %xmm0,%xmm4
15565  DB  15,40,233                           ; movaps        %xmm1,%xmm5
15566  DB  15,40,242                           ; movaps        %xmm2,%xmm6
15567  DB  15,40,251                           ; movaps        %xmm3,%xmm7
15568  DB  255,224                             ; jmpq          *%rax
15569
15570PUBLIC _sk_move_dst_src_sse2
15571_sk_move_dst_src_sse2 LABEL PROC
15572  DB  72,173                              ; lods          %ds:(%rsi),%rax
15573  DB  15,40,196                           ; movaps        %xmm4,%xmm0
15574  DB  15,40,205                           ; movaps        %xmm5,%xmm1
15575  DB  15,40,214                           ; movaps        %xmm6,%xmm2
15576  DB  15,40,223                           ; movaps        %xmm7,%xmm3
15577  DB  255,224                             ; jmpq          *%rax
15578
15579PUBLIC _sk_premul_sse2
15580_sk_premul_sse2 LABEL PROC
15581  DB  15,89,195                           ; mulps         %xmm3,%xmm0
15582  DB  15,89,203                           ; mulps         %xmm3,%xmm1
15583  DB  15,89,211                           ; mulps         %xmm3,%xmm2
15584  DB  72,173                              ; lods          %ds:(%rsi),%rax
15585  DB  255,224                             ; jmpq          *%rax
15586
15587PUBLIC _sk_unpremul_sse2
15588_sk_unpremul_sse2 LABEL PROC
15589  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
15590  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15591  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15592  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15593  DB  68,15,94,203                        ; divps         %xmm3,%xmm9
15594  DB  68,15,194,195,4                     ; cmpneqps      %xmm3,%xmm8
15595  DB  69,15,84,193                        ; andps         %xmm9,%xmm8
15596  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
15597  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
15598  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
15599  DB  72,173                              ; lods          %ds:(%rsi),%rax
15600  DB  255,224                             ; jmpq          *%rax
15601
15602PUBLIC _sk_from_srgb_sse2
15603_sk_from_srgb_sse2 LABEL PROC
15604  DB  184,145,131,158,61                  ; mov           $0x3d9e8391,%eax
15605  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15606  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15607  DB  69,15,40,232                        ; movaps        %xmm8,%xmm13
15608  DB  68,15,89,232                        ; mulps         %xmm0,%xmm13
15609  DB  68,15,40,224                        ; movaps        %xmm0,%xmm12
15610  DB  69,15,89,228                        ; mulps         %xmm12,%xmm12
15611  DB  184,154,153,153,62                  ; mov           $0x3e99999a,%eax
15612  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15613  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15614  DB  184,92,143,50,63                    ; mov           $0x3f328f5c,%eax
15615  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
15616  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
15617  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15618  DB  68,15,89,240                        ; mulps         %xmm0,%xmm14
15619  DB  69,15,88,242                        ; addps         %xmm10,%xmm14
15620  DB  184,10,215,35,59                    ; mov           $0x3b23d70a,%eax
15621  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
15622  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
15623  DB  69,15,89,244                        ; mulps         %xmm12,%xmm14
15624  DB  69,15,88,243                        ; addps         %xmm11,%xmm14
15625  DB  184,174,71,97,61                    ; mov           $0x3d6147ae,%eax
15626  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15627  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15628  DB  65,15,194,196,1                     ; cmpltps       %xmm12,%xmm0
15629  DB  68,15,84,232                        ; andps         %xmm0,%xmm13
15630  DB  65,15,85,198                        ; andnps        %xmm14,%xmm0
15631  DB  65,15,86,197                        ; orps          %xmm13,%xmm0
15632  DB  69,15,40,232                        ; movaps        %xmm8,%xmm13
15633  DB  68,15,89,233                        ; mulps         %xmm1,%xmm13
15634  DB  68,15,40,241                        ; movaps        %xmm1,%xmm14
15635  DB  69,15,89,246                        ; mulps         %xmm14,%xmm14
15636  DB  69,15,40,249                        ; movaps        %xmm9,%xmm15
15637  DB  68,15,89,249                        ; mulps         %xmm1,%xmm15
15638  DB  69,15,88,250                        ; addps         %xmm10,%xmm15
15639  DB  69,15,89,254                        ; mulps         %xmm14,%xmm15
15640  DB  69,15,88,251                        ; addps         %xmm11,%xmm15
15641  DB  65,15,194,204,1                     ; cmpltps       %xmm12,%xmm1
15642  DB  68,15,84,233                        ; andps         %xmm1,%xmm13
15643  DB  65,15,85,207                        ; andnps        %xmm15,%xmm1
15644  DB  65,15,86,205                        ; orps          %xmm13,%xmm1
15645  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
15646  DB  68,15,40,234                        ; movaps        %xmm2,%xmm13
15647  DB  69,15,89,237                        ; mulps         %xmm13,%xmm13
15648  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
15649  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
15650  DB  69,15,89,205                        ; mulps         %xmm13,%xmm9
15651  DB  69,15,88,203                        ; addps         %xmm11,%xmm9
15652  DB  65,15,194,212,1                     ; cmpltps       %xmm12,%xmm2
15653  DB  68,15,84,194                        ; andps         %xmm2,%xmm8
15654  DB  65,15,85,209                        ; andnps        %xmm9,%xmm2
15655  DB  65,15,86,208                        ; orps          %xmm8,%xmm2
15656  DB  72,173                              ; lods          %ds:(%rsi),%rax
15657  DB  255,224                             ; jmpq          *%rax
15658
15659PUBLIC _sk_to_srgb_sse2
15660_sk_to_srgb_sse2 LABEL PROC
15661  DB  68,15,82,192                        ; rsqrtps       %xmm0,%xmm8
15662  DB  69,15,83,248                        ; rcpps         %xmm8,%xmm15
15663  DB  69,15,82,232                        ; rsqrtps       %xmm8,%xmm13
15664  DB  184,41,92,71,65                     ; mov           $0x41475c29,%eax
15665  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15666  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15667  DB  69,15,40,240                        ; movaps        %xmm8,%xmm14
15668  DB  68,15,89,240                        ; mulps         %xmm0,%xmm14
15669  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15670  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15671  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15672  DB  184,194,135,210,62                  ; mov           $0x3ed287c2,%eax
15673  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
15674  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
15675  DB  184,206,111,48,63                   ; mov           $0x3f306fce,%eax
15676  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
15677  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
15678  DB  184,168,87,202,61                   ; mov           $0x3dca57a8,%eax
15679  DB  53,0,0,0,128                        ; xor           $0x80000000,%eax
15680  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15681  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15682  DB  69,15,89,251                        ; mulps         %xmm11,%xmm15
15683  DB  69,15,88,252                        ; addps         %xmm12,%xmm15
15684  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
15685  DB  69,15,88,239                        ; addps         %xmm15,%xmm13
15686  DB  69,15,40,249                        ; movaps        %xmm9,%xmm15
15687  DB  69,15,93,253                        ; minps         %xmm13,%xmm15
15688  DB  184,4,231,140,59                    ; mov           $0x3b8ce704,%eax
15689  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
15690  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
15691  DB  65,15,194,197,1                     ; cmpltps       %xmm13,%xmm0
15692  DB  68,15,84,240                        ; andps         %xmm0,%xmm14
15693  DB  65,15,85,199                        ; andnps        %xmm15,%xmm0
15694  DB  65,15,86,198                        ; orps          %xmm14,%xmm0
15695  DB  68,15,82,241                        ; rsqrtps       %xmm1,%xmm14
15696  DB  69,15,83,254                        ; rcpps         %xmm14,%xmm15
15697  DB  69,15,82,246                        ; rsqrtps       %xmm14,%xmm14
15698  DB  69,15,89,251                        ; mulps         %xmm11,%xmm15
15699  DB  69,15,88,252                        ; addps         %xmm12,%xmm15
15700  DB  69,15,89,242                        ; mulps         %xmm10,%xmm14
15701  DB  69,15,88,247                        ; addps         %xmm15,%xmm14
15702  DB  69,15,40,249                        ; movaps        %xmm9,%xmm15
15703  DB  69,15,93,254                        ; minps         %xmm14,%xmm15
15704  DB  69,15,40,240                        ; movaps        %xmm8,%xmm14
15705  DB  68,15,89,241                        ; mulps         %xmm1,%xmm14
15706  DB  65,15,194,205,1                     ; cmpltps       %xmm13,%xmm1
15707  DB  68,15,84,241                        ; andps         %xmm1,%xmm14
15708  DB  65,15,85,207                        ; andnps        %xmm15,%xmm1
15709  DB  65,15,86,206                        ; orps          %xmm14,%xmm1
15710  DB  68,15,82,242                        ; rsqrtps       %xmm2,%xmm14
15711  DB  69,15,83,254                        ; rcpps         %xmm14,%xmm15
15712  DB  69,15,89,251                        ; mulps         %xmm11,%xmm15
15713  DB  69,15,88,252                        ; addps         %xmm12,%xmm15
15714  DB  69,15,82,222                        ; rsqrtps       %xmm14,%xmm11
15715  DB  69,15,89,218                        ; mulps         %xmm10,%xmm11
15716  DB  69,15,88,223                        ; addps         %xmm15,%xmm11
15717  DB  69,15,93,203                        ; minps         %xmm11,%xmm9
15718  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
15719  DB  65,15,194,213,1                     ; cmpltps       %xmm13,%xmm2
15720  DB  68,15,84,194                        ; andps         %xmm2,%xmm8
15721  DB  65,15,85,209                        ; andnps        %xmm9,%xmm2
15722  DB  65,15,86,208                        ; orps          %xmm8,%xmm2
15723  DB  72,173                              ; lods          %ds:(%rsi),%rax
15724  DB  255,224                             ; jmpq          *%rax
15725
15726PUBLIC _sk_rgb_to_hsl_sse2
15727_sk_rgb_to_hsl_sse2 LABEL PROC
15728  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
15729  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
15730  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
15731  DB  69,15,95,209                        ; maxps         %xmm9,%xmm10
15732  DB  68,15,95,210                        ; maxps         %xmm2,%xmm10
15733  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
15734  DB  69,15,93,217                        ; minps         %xmm9,%xmm11
15735  DB  68,15,93,218                        ; minps         %xmm2,%xmm11
15736  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
15737  DB  65,15,92,203                        ; subps         %xmm11,%xmm1
15738  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15739  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15740  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15741  DB  68,15,94,225                        ; divps         %xmm1,%xmm12
15742  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
15743  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
15744  DB  65,15,194,192,0                     ; cmpeqps       %xmm8,%xmm0
15745  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15746  DB  68,15,194,242,1                     ; cmpltps       %xmm2,%xmm14
15747  DB  185,0,0,192,64                      ; mov           $0x40c00000,%ecx
15748  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
15749  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
15750  DB  69,15,84,238                        ; andps         %xmm14,%xmm13
15751  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15752  DB  68,15,92,242                        ; subps         %xmm2,%xmm14
15753  DB  69,15,89,244                        ; mulps         %xmm12,%xmm14
15754  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
15755  DB  69,15,40,242                        ; movaps        %xmm10,%xmm14
15756  DB  69,15,194,241,0                     ; cmpeqps       %xmm9,%xmm14
15757  DB  65,15,92,208                        ; subps         %xmm8,%xmm2
15758  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
15759  DB  65,15,89,212                        ; mulps         %xmm12,%xmm2
15760  DB  185,0,0,0,64                        ; mov           $0x40000000,%ecx
15761  DB  69,15,89,196                        ; mulps         %xmm12,%xmm8
15762  DB  184,0,0,128,64                      ; mov           $0x40800000,%eax
15763  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15764  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15765  DB  69,15,88,200                        ; addps         %xmm8,%xmm9
15766  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
15767  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15768  DB  65,15,88,208                        ; addps         %xmm8,%xmm2
15769  DB  65,15,84,214                        ; andps         %xmm14,%xmm2
15770  DB  69,15,85,241                        ; andnps        %xmm9,%xmm14
15771  DB  68,15,86,242                        ; orps          %xmm2,%xmm14
15772  DB  68,15,84,232                        ; andps         %xmm0,%xmm13
15773  DB  65,15,85,198                        ; andnps        %xmm14,%xmm0
15774  DB  102,65,15,110,208                   ; movd          %r8d,%xmm2
15775  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
15776  DB  65,15,86,197                        ; orps          %xmm13,%xmm0
15777  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
15778  DB  69,15,194,203,4                     ; cmpneqps      %xmm11,%xmm9
15779  DB  65,15,84,193                        ; andps         %xmm9,%xmm0
15780  DB  15,89,194                           ; mulps         %xmm2,%xmm0
15781  DB  69,15,92,194                        ; subps         %xmm10,%xmm8
15782  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
15783  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
15784  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15785  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15786  DB  69,15,92,195                        ; subps         %xmm11,%xmm8
15787  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
15788  DB  65,15,89,212                        ; mulps         %xmm12,%xmm2
15789  DB  68,15,194,226,1                     ; cmpltps       %xmm2,%xmm12
15790  DB  69,15,84,196                        ; andps         %xmm12,%xmm8
15791  DB  69,15,85,226                        ; andnps        %xmm10,%xmm12
15792  DB  69,15,86,224                        ; orps          %xmm8,%xmm12
15793  DB  65,15,94,204                        ; divps         %xmm12,%xmm1
15794  DB  65,15,84,201                        ; andps         %xmm9,%xmm1
15795  DB  72,173                              ; lods          %ds:(%rsi),%rax
15796  DB  255,224                             ; jmpq          *%rax
15797
15798PUBLIC _sk_hsl_to_rgb_sse2
15799_sk_hsl_to_rgb_sse2 LABEL PROC
15800  DB  72,131,236,104                      ; sub           $0x68,%rsp
15801  DB  15,41,124,36,80                     ; movaps        %xmm7,0x50(%rsp)
15802  DB  15,41,116,36,64                     ; movaps        %xmm6,0x40(%rsp)
15803  DB  15,41,108,36,48                     ; movaps        %xmm5,0x30(%rsp)
15804  DB  15,41,100,36,32                     ; movaps        %xmm4,0x20(%rsp)
15805  DB  15,41,92,36,16                      ; movaps        %xmm3,0x10(%rsp)
15806  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
15807  DB  15,40,209                           ; movaps        %xmm1,%xmm2
15808  DB  15,40,240                           ; movaps        %xmm0,%xmm6
15809  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
15810  DB  102,68,15,110,240                   ; movd          %eax,%xmm14
15811  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
15812  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
15813  DB  69,15,194,206,1                     ; cmpltps       %xmm14,%xmm9
15814  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15815  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15816  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15817  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
15818  DB  15,88,194                           ; addps         %xmm2,%xmm0
15819  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
15820  DB  15,40,218                           ; movaps        %xmm2,%xmm3
15821  DB  69,15,87,219                        ; xorps         %xmm11,%xmm11
15822  DB  68,15,194,218,0                     ; cmpeqps       %xmm2,%xmm11
15823  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
15824  DB  65,15,89,218                        ; mulps         %xmm10,%xmm3
15825  DB  15,92,211                           ; subps         %xmm3,%xmm2
15826  DB  65,15,84,193                        ; andps         %xmm9,%xmm0
15827  DB  68,15,85,202                        ; andnps        %xmm2,%xmm9
15828  DB  68,15,86,200                        ; orps          %xmm0,%xmm9
15829  DB  184,0,0,0,64                        ; mov           $0x40000000,%eax
15830  DB  185,171,170,170,62                  ; mov           $0x3eaaaaab,%ecx
15831  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
15832  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15833  DB  68,15,41,4,36                       ; movaps        %xmm8,(%rsp)
15834  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
15835  DB  185,0,0,0,0                         ; mov           $0x0,%ecx
15836  DB  102,15,110,233                      ; movd          %ecx,%xmm5
15837  DB  15,198,237,0                        ; shufps        $0x0,%xmm5,%xmm5
15838  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
15839  DB  65,15,194,192,1                     ; cmpltps       %xmm8,%xmm0
15840  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
15841  DB  65,15,92,220                        ; subps         %xmm12,%xmm3
15842  DB  15,84,216                           ; andps         %xmm0,%xmm3
15843  DB  65,15,85,192                        ; andnps        %xmm8,%xmm0
15844  DB  15,86,195                           ; orps          %xmm3,%xmm0
15845  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
15846  DB  15,194,221,1                        ; cmpltps       %xmm5,%xmm3
15847  DB  65,15,40,212                        ; movaps        %xmm12,%xmm2
15848  DB  65,15,88,208                        ; addps         %xmm8,%xmm2
15849  DB  15,84,211                           ; andps         %xmm3,%xmm2
15850  DB  15,85,216                           ; andnps        %xmm0,%xmm3
15851  DB  15,86,218                           ; orps          %xmm2,%xmm3
15852  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
15853  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
15854  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
15855  DB  69,15,92,233                        ; subps         %xmm9,%xmm13
15856  DB  184,171,170,42,62                   ; mov           $0x3e2aaaab,%eax
15857  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
15858  DB  65,15,92,197                        ; subps         %xmm13,%xmm0
15859  DB  185,0,0,192,64                      ; mov           $0x40c00000,%ecx
15860  DB  102,68,15,110,249                   ; movd          %ecx,%xmm15
15861  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
15862  DB  68,15,89,248                        ; mulps         %xmm0,%xmm15
15863  DB  185,171,170,42,63                   ; mov           $0x3f2aaaab,%ecx
15864  DB  102,15,110,225                      ; movd          %ecx,%xmm4
15865  DB  15,198,228,0                        ; shufps        $0x0,%xmm4,%xmm4
15866  DB  15,40,212                           ; movaps        %xmm4,%xmm2
15867  DB  15,92,211                           ; subps         %xmm3,%xmm2
15868  DB  15,40,203                           ; movaps        %xmm3,%xmm1
15869  DB  15,40,195                           ; movaps        %xmm3,%xmm0
15870  DB  15,194,220,1                        ; cmpltps       %xmm4,%xmm3
15871  DB  65,15,89,215                        ; mulps         %xmm15,%xmm2
15872  DB  65,15,88,213                        ; addps         %xmm13,%xmm2
15873  DB  15,84,211                           ; andps         %xmm3,%xmm2
15874  DB  65,15,85,221                        ; andnps        %xmm13,%xmm3
15875  DB  15,86,218                           ; orps          %xmm2,%xmm3
15876  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
15877  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
15878  DB  15,84,208                           ; andps         %xmm0,%xmm2
15879  DB  15,85,195                           ; andnps        %xmm3,%xmm0
15880  DB  15,86,194                           ; orps          %xmm2,%xmm0
15881  DB  102,15,110,248                      ; movd          %eax,%xmm7
15882  DB  15,198,255,0                        ; shufps        $0x0,%xmm7,%xmm7
15883  DB  15,194,207,1                        ; cmpltps       %xmm7,%xmm1
15884  DB  69,15,89,199                        ; mulps         %xmm15,%xmm8
15885  DB  69,15,88,197                        ; addps         %xmm13,%xmm8
15886  DB  68,15,84,193                        ; andps         %xmm1,%xmm8
15887  DB  15,85,200                           ; andnps        %xmm0,%xmm1
15888  DB  65,15,86,200                        ; orps          %xmm8,%xmm1
15889  DB  69,15,40,195                        ; movaps        %xmm11,%xmm8
15890  DB  68,15,85,193                        ; andnps        %xmm1,%xmm8
15891  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
15892  DB  15,194,198,1                        ; cmpltps       %xmm6,%xmm0
15893  DB  15,40,206                           ; movaps        %xmm6,%xmm1
15894  DB  65,15,92,204                        ; subps         %xmm12,%xmm1
15895  DB  15,84,200                           ; andps         %xmm0,%xmm1
15896  DB  15,85,198                           ; andnps        %xmm6,%xmm0
15897  DB  15,86,193                           ; orps          %xmm1,%xmm0
15898  DB  15,40,206                           ; movaps        %xmm6,%xmm1
15899  DB  15,194,205,1                        ; cmpltps       %xmm5,%xmm1
15900  DB  65,15,40,212                        ; movaps        %xmm12,%xmm2
15901  DB  15,88,214                           ; addps         %xmm6,%xmm2
15902  DB  15,84,209                           ; andps         %xmm1,%xmm2
15903  DB  15,85,200                           ; andnps        %xmm0,%xmm1
15904  DB  15,86,202                           ; orps          %xmm2,%xmm1
15905  DB  15,40,196                           ; movaps        %xmm4,%xmm0
15906  DB  15,92,193                           ; subps         %xmm1,%xmm0
15907  DB  15,40,217                           ; movaps        %xmm1,%xmm3
15908  DB  15,40,209                           ; movaps        %xmm1,%xmm2
15909  DB  15,194,204,1                        ; cmpltps       %xmm4,%xmm1
15910  DB  65,15,89,199                        ; mulps         %xmm15,%xmm0
15911  DB  65,15,88,197                        ; addps         %xmm13,%xmm0
15912  DB  15,84,193                           ; andps         %xmm1,%xmm0
15913  DB  65,15,85,205                        ; andnps        %xmm13,%xmm1
15914  DB  15,86,200                           ; orps          %xmm0,%xmm1
15915  DB  65,15,194,214,1                     ; cmpltps       %xmm14,%xmm2
15916  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
15917  DB  15,84,194                           ; andps         %xmm2,%xmm0
15918  DB  15,85,209                           ; andnps        %xmm1,%xmm2
15919  DB  15,86,208                           ; orps          %xmm0,%xmm2
15920  DB  15,194,223,1                        ; cmpltps       %xmm7,%xmm3
15921  DB  65,15,40,199                        ; movaps        %xmm15,%xmm0
15922  DB  15,89,198                           ; mulps         %xmm6,%xmm0
15923  DB  65,15,88,197                        ; addps         %xmm13,%xmm0
15924  DB  15,84,195                           ; andps         %xmm3,%xmm0
15925  DB  15,85,218                           ; andnps        %xmm2,%xmm3
15926  DB  15,86,216                           ; orps          %xmm0,%xmm3
15927  DB  65,15,40,203                        ; movaps        %xmm11,%xmm1
15928  DB  15,85,203                           ; andnps        %xmm3,%xmm1
15929  DB  15,92,52,36                         ; subps         (%rsp),%xmm6
15930  DB  15,40,198                           ; movaps        %xmm6,%xmm0
15931  DB  15,194,197,1                        ; cmpltps       %xmm5,%xmm0
15932  DB  15,40,214                           ; movaps        %xmm6,%xmm2
15933  DB  65,15,92,212                        ; subps         %xmm12,%xmm2
15934  DB  65,15,40,220                        ; movaps        %xmm12,%xmm3
15935  DB  68,15,194,230,1                     ; cmpltps       %xmm6,%xmm12
15936  DB  65,15,84,212                        ; andps         %xmm12,%xmm2
15937  DB  68,15,85,230                        ; andnps        %xmm6,%xmm12
15938  DB  68,15,86,226                        ; orps          %xmm2,%xmm12
15939  DB  15,88,222                           ; addps         %xmm6,%xmm3
15940  DB  15,84,216                           ; andps         %xmm0,%xmm3
15941  DB  65,15,85,196                        ; andnps        %xmm12,%xmm0
15942  DB  15,86,195                           ; orps          %xmm3,%xmm0
15943  DB  15,40,232                           ; movaps        %xmm0,%xmm5
15944  DB  15,194,239,1                        ; cmpltps       %xmm7,%xmm5
15945  DB  15,40,208                           ; movaps        %xmm0,%xmm2
15946  DB  15,194,212,1                        ; cmpltps       %xmm4,%xmm2
15947  DB  15,92,224                           ; subps         %xmm0,%xmm4
15948  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
15949  DB  65,15,89,247                        ; mulps         %xmm15,%xmm6
15950  DB  65,15,89,231                        ; mulps         %xmm15,%xmm4
15951  DB  65,15,88,245                        ; addps         %xmm13,%xmm6
15952  DB  65,15,88,229                        ; addps         %xmm13,%xmm4
15953  DB  15,84,226                           ; andps         %xmm2,%xmm4
15954  DB  65,15,85,213                        ; andnps        %xmm13,%xmm2
15955  DB  15,86,212                           ; orps          %xmm4,%xmm2
15956  DB  68,15,84,200                        ; andps         %xmm0,%xmm9
15957  DB  15,85,194                           ; andnps        %xmm2,%xmm0
15958  DB  65,15,86,193                        ; orps          %xmm9,%xmm0
15959  DB  15,84,245                           ; andps         %xmm5,%xmm6
15960  DB  15,85,232                           ; andnps        %xmm0,%xmm5
15961  DB  15,86,238                           ; orps          %xmm6,%xmm5
15962  DB  69,15,84,211                        ; andps         %xmm11,%xmm10
15963  DB  68,15,85,221                        ; andnps        %xmm5,%xmm11
15964  DB  69,15,86,194                        ; orps          %xmm10,%xmm8
15965  DB  65,15,86,202                        ; orps          %xmm10,%xmm1
15966  DB  69,15,86,211                        ; orps          %xmm11,%xmm10
15967  DB  72,173                              ; lods          %ds:(%rsi),%rax
15968  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
15969  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
15970  DB  15,40,92,36,16                      ; movaps        0x10(%rsp),%xmm3
15971  DB  15,40,100,36,32                     ; movaps        0x20(%rsp),%xmm4
15972  DB  15,40,108,36,48                     ; movaps        0x30(%rsp),%xmm5
15973  DB  15,40,116,36,64                     ; movaps        0x40(%rsp),%xmm6
15974  DB  15,40,124,36,80                     ; movaps        0x50(%rsp),%xmm7
15975  DB  72,131,196,104                      ; add           $0x68,%rsp
15976  DB  255,224                             ; jmpq          *%rax
15977
15978PUBLIC _sk_scale_1_float_sse2
15979_sk_scale_1_float_sse2 LABEL PROC
15980  DB  72,173                              ; lods          %ds:(%rsi),%rax
15981  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
15982  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15983  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
15984  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
15985  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
15986  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
15987  DB  72,173                              ; lods          %ds:(%rsi),%rax
15988  DB  255,224                             ; jmpq          *%rax
15989
15990PUBLIC _sk_scale_u8_sse2
15991_sk_scale_u8_sse2 LABEL PROC
15992  DB  72,173                              ; lods          %ds:(%rsi),%rax
15993  DB  72,139,0                            ; mov           (%rax),%rax
15994  DB  102,68,15,110,4,56                  ; movd          (%rax,%rdi,1),%xmm8
15995  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
15996  DB  102,69,15,96,193                    ; punpcklbw     %xmm9,%xmm8
15997  DB  102,69,15,97,193                    ; punpcklwd     %xmm9,%xmm8
15998  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
15999  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
16000  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
16001  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16002  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
16003  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
16004  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
16005  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
16006  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
16007  DB  72,173                              ; lods          %ds:(%rsi),%rax
16008  DB  255,224                             ; jmpq          *%rax
16009
16010PUBLIC _sk_lerp_1_float_sse2
16011_sk_lerp_1_float_sse2 LABEL PROC
16012  DB  72,173                              ; lods          %ds:(%rsi),%rax
16013  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
16014  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16015  DB  15,92,196                           ; subps         %xmm4,%xmm0
16016  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
16017  DB  15,88,196                           ; addps         %xmm4,%xmm0
16018  DB  15,92,205                           ; subps         %xmm5,%xmm1
16019  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
16020  DB  15,88,205                           ; addps         %xmm5,%xmm1
16021  DB  15,92,214                           ; subps         %xmm6,%xmm2
16022  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
16023  DB  15,88,214                           ; addps         %xmm6,%xmm2
16024  DB  15,92,223                           ; subps         %xmm7,%xmm3
16025  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
16026  DB  15,88,223                           ; addps         %xmm7,%xmm3
16027  DB  72,173                              ; lods          %ds:(%rsi),%rax
16028  DB  255,224                             ; jmpq          *%rax
16029
16030PUBLIC _sk_lerp_u8_sse2
16031_sk_lerp_u8_sse2 LABEL PROC
16032  DB  72,173                              ; lods          %ds:(%rsi),%rax
16033  DB  72,139,0                            ; mov           (%rax),%rax
16034  DB  102,68,15,110,4,56                  ; movd          (%rax,%rdi,1),%xmm8
16035  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
16036  DB  102,69,15,96,193                    ; punpcklbw     %xmm9,%xmm8
16037  DB  102,69,15,97,193                    ; punpcklwd     %xmm9,%xmm8
16038  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16039  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
16040  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
16041  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16042  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
16043  DB  15,92,196                           ; subps         %xmm4,%xmm0
16044  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
16045  DB  15,88,196                           ; addps         %xmm4,%xmm0
16046  DB  15,92,205                           ; subps         %xmm5,%xmm1
16047  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
16048  DB  15,88,205                           ; addps         %xmm5,%xmm1
16049  DB  15,92,214                           ; subps         %xmm6,%xmm2
16050  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
16051  DB  15,88,214                           ; addps         %xmm6,%xmm2
16052  DB  15,92,223                           ; subps         %xmm7,%xmm3
16053  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
16054  DB  15,88,223                           ; addps         %xmm7,%xmm3
16055  DB  72,173                              ; lods          %ds:(%rsi),%rax
16056  DB  255,224                             ; jmpq          *%rax
16057
16058PUBLIC _sk_lerp_565_sse2
16059_sk_lerp_565_sse2 LABEL PROC
16060  DB  72,173                              ; lods          %ds:(%rsi),%rax
16061  DB  72,139,0                            ; mov           (%rax),%rax
16062  DB  243,68,15,126,4,120                 ; movq          (%rax,%rdi,2),%xmm8
16063  DB  102,15,239,219                      ; pxor          %xmm3,%xmm3
16064  DB  102,68,15,97,195                    ; punpcklwd     %xmm3,%xmm8
16065  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
16066  DB  102,15,110,216                      ; movd          %eax,%xmm3
16067  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
16068  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
16069  DB  68,15,91,203                        ; cvtdq2ps      %xmm3,%xmm9
16070  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
16071  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
16072  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16073  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
16074  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
16075  DB  102,15,110,216                      ; movd          %eax,%xmm3
16076  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
16077  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
16078  DB  68,15,91,203                        ; cvtdq2ps      %xmm3,%xmm9
16079  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
16080  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
16081  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16082  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
16083  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
16084  DB  102,15,110,216                      ; movd          %eax,%xmm3
16085  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
16086  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
16087  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
16088  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
16089  DB  102,15,110,216                      ; movd          %eax,%xmm3
16090  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
16091  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
16092  DB  15,92,196                           ; subps         %xmm4,%xmm0
16093  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
16094  DB  15,88,196                           ; addps         %xmm4,%xmm0
16095  DB  15,92,205                           ; subps         %xmm5,%xmm1
16096  DB  65,15,89,203                        ; mulps         %xmm11,%xmm1
16097  DB  15,88,205                           ; addps         %xmm5,%xmm1
16098  DB  15,92,214                           ; subps         %xmm6,%xmm2
16099  DB  15,89,211                           ; mulps         %xmm3,%xmm2
16100  DB  15,88,214                           ; addps         %xmm6,%xmm2
16101  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
16102  DB  102,15,110,216                      ; movd          %eax,%xmm3
16103  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
16104  DB  72,173                              ; lods          %ds:(%rsi),%rax
16105  DB  255,224                             ; jmpq          *%rax
16106
16107PUBLIC _sk_load_tables_sse2
16108_sk_load_tables_sse2 LABEL PROC
16109  DB  72,173                              ; lods          %ds:(%rsi),%rax
16110  DB  72,139,8                            ; mov           (%rax),%rcx
16111  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
16112  DB  243,68,15,111,4,185                 ; movdqu        (%rcx,%rdi,4),%xmm8
16113  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
16114  DB  102,15,110,193                      ; movd          %ecx,%xmm0
16115  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
16116  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
16117  DB  102,65,15,114,209,8                 ; psrld         $0x8,%xmm9
16118  DB  102,68,15,219,200                   ; pand          %xmm0,%xmm9
16119  DB  102,69,15,111,208                   ; movdqa        %xmm8,%xmm10
16120  DB  102,65,15,114,210,16                ; psrld         $0x10,%xmm10
16121  DB  102,68,15,219,208                   ; pand          %xmm0,%xmm10
16122  DB  102,65,15,219,192                   ; pand          %xmm8,%xmm0
16123  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
16124  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
16125  DB  65,137,201                          ; mov           %ecx,%r9d
16126  DB  72,193,233,32                       ; shr           $0x20,%rcx
16127  DB  102,73,15,126,194                   ; movq          %xmm0,%r10
16128  DB  69,137,211                          ; mov           %r10d,%r11d
16129  DB  73,193,234,32                       ; shr           $0x20,%r10
16130  DB  243,67,15,16,28,144                 ; movss         (%r8,%r10,4),%xmm3
16131  DB  243,65,15,16,4,136                  ; movss         (%r8,%rcx,4),%xmm0
16132  DB  15,20,216                           ; unpcklps      %xmm0,%xmm3
16133  DB  243,67,15,16,4,152                  ; movss         (%r8,%r11,4),%xmm0
16134  DB  243,67,15,16,12,136                 ; movss         (%r8,%r9,4),%xmm1
16135  DB  15,20,193                           ; unpcklps      %xmm1,%xmm0
16136  DB  15,20,195                           ; unpcklps      %xmm3,%xmm0
16137  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
16138  DB  102,65,15,112,201,78                ; pshufd        $0x4e,%xmm9,%xmm1
16139  DB  102,73,15,126,202                   ; movq          %xmm1,%r10
16140  DB  77,137,209                          ; mov           %r10,%r9
16141  DB  73,193,233,32                       ; shr           $0x20,%r9
16142  DB  102,76,15,126,201                   ; movq          %xmm9,%rcx
16143  DB  65,137,203                          ; mov           %ecx,%r11d
16144  DB  65,129,227,255,255,255,0            ; and           $0xffffff,%r11d
16145  DB  72,193,233,30                       ; shr           $0x1e,%rcx
16146  DB  65,129,226,255,255,255,0            ; and           $0xffffff,%r10d
16147  DB  243,65,15,16,28,8                   ; movss         (%r8,%rcx,1),%xmm3
16148  DB  243,67,15,16,12,136                 ; movss         (%r8,%r9,4),%xmm1
16149  DB  15,20,217                           ; unpcklps      %xmm1,%xmm3
16150  DB  243,67,15,16,12,152                 ; movss         (%r8,%r11,4),%xmm1
16151  DB  243,67,15,16,20,144                 ; movss         (%r8,%r10,4),%xmm2
16152  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
16153  DB  15,20,203                           ; unpcklps      %xmm3,%xmm1
16154  DB  76,139,72,24                        ; mov           0x18(%rax),%r9
16155  DB  102,65,15,112,210,78                ; pshufd        $0x4e,%xmm10,%xmm2
16156  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16157  DB  68,15,183,193                       ; movzwl        %cx,%r8d
16158  DB  72,193,233,32                       ; shr           $0x20,%rcx
16159  DB  102,76,15,126,208                   ; movq          %xmm10,%rax
16160  DB  68,15,183,208                       ; movzwl        %ax,%r10d
16161  DB  72,193,232,30                       ; shr           $0x1e,%rax
16162  DB  243,69,15,16,12,1                   ; movss         (%r9,%rax,1),%xmm9
16163  DB  243,65,15,16,20,137                 ; movss         (%r9,%rcx,4),%xmm2
16164  DB  68,15,20,202                        ; unpcklps      %xmm2,%xmm9
16165  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
16166  DB  243,67,15,16,28,129                 ; movss         (%r9,%r8,4),%xmm3
16167  DB  15,20,211                           ; unpcklps      %xmm3,%xmm2
16168  DB  65,15,20,209                        ; unpcklps      %xmm9,%xmm2
16169  DB  102,65,15,114,208,24                ; psrld         $0x18,%xmm8
16170  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16171  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
16172  DB  102,15,110,216                      ; movd          %eax,%xmm3
16173  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
16174  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
16175  DB  72,173                              ; lods          %ds:(%rsi),%rax
16176  DB  255,224                             ; jmpq          *%rax
16177
16178PUBLIC _sk_load_tables_u16_be_sse2
16179_sk_load_tables_u16_be_sse2 LABEL PROC
16180  DB  72,173                              ; lods          %ds:(%rsi),%rax
16181  DB  72,139,8                            ; mov           (%rax),%rcx
16182  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
16183  DB  243,15,111,4,249                    ; movdqu        (%rcx,%rdi,8),%xmm0
16184  DB  243,15,111,76,249,16                ; movdqu        0x10(%rcx,%rdi,8),%xmm1
16185  DB  102,68,15,111,208                   ; movdqa        %xmm0,%xmm10
16186  DB  102,68,15,97,209                    ; punpcklwd     %xmm1,%xmm10
16187  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
16188  DB  102,65,15,111,202                   ; movdqa        %xmm10,%xmm1
16189  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
16190  DB  102,68,15,105,208                   ; punpckhwd     %xmm0,%xmm10
16191  DB  102,69,15,239,192                   ; pxor          %xmm8,%xmm8
16192  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
16193  DB  102,65,15,97,192                    ; punpcklwd     %xmm8,%xmm0
16194  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
16195  DB  102,15,110,217                      ; movd          %ecx,%xmm3
16196  DB  102,68,15,112,203,0                 ; pshufd        $0x0,%xmm3,%xmm9
16197  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
16198  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
16199  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
16200  DB  68,15,183,201                       ; movzwl        %cx,%r9d
16201  DB  72,193,233,32                       ; shr           $0x20,%rcx
16202  DB  102,73,15,126,194                   ; movq          %xmm0,%r10
16203  DB  69,15,183,218                       ; movzwl        %r10w,%r11d
16204  DB  73,193,234,30                       ; shr           $0x1e,%r10
16205  DB  243,67,15,16,28,16                  ; movss         (%r8,%r10,1),%xmm3
16206  DB  243,65,15,16,4,136                  ; movss         (%r8,%rcx,4),%xmm0
16207  DB  15,20,216                           ; unpcklps      %xmm0,%xmm3
16208  DB  243,67,15,16,4,152                  ; movss         (%r8,%r11,4),%xmm0
16209  DB  243,67,15,16,20,136                 ; movss         (%r8,%r9,4),%xmm2
16210  DB  15,20,194                           ; unpcklps      %xmm2,%xmm0
16211  DB  15,20,195                           ; unpcklps      %xmm3,%xmm0
16212  DB  76,139,80,16                        ; mov           0x10(%rax),%r10
16213  DB  102,15,115,217,8                    ; psrldq        $0x8,%xmm1
16214  DB  102,65,15,97,200                    ; punpcklwd     %xmm8,%xmm1
16215  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
16216  DB  102,15,112,209,78                   ; pshufd        $0x4e,%xmm1,%xmm2
16217  DB  102,73,15,126,208                   ; movq          %xmm2,%r8
16218  DB  69,15,183,200                       ; movzwl        %r8w,%r9d
16219  DB  73,193,232,32                       ; shr           $0x20,%r8
16220  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
16221  DB  68,15,183,217                       ; movzwl        %cx,%r11d
16222  DB  72,193,233,30                       ; shr           $0x1e,%rcx
16223  DB  243,65,15,16,20,10                  ; movss         (%r10,%rcx,1),%xmm2
16224  DB  243,67,15,16,12,130                 ; movss         (%r10,%r8,4),%xmm1
16225  DB  15,20,209                           ; unpcklps      %xmm1,%xmm2
16226  DB  243,67,15,16,12,154                 ; movss         (%r10,%r11,4),%xmm1
16227  DB  243,67,15,16,28,138                 ; movss         (%r10,%r9,4),%xmm3
16228  DB  15,20,203                           ; unpcklps      %xmm3,%xmm1
16229  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
16230  DB  76,139,72,24                        ; mov           0x18(%rax),%r9
16231  DB  102,69,15,112,218,78                ; pshufd        $0x4e,%xmm10,%xmm11
16232  DB  102,69,15,97,208                    ; punpcklwd     %xmm8,%xmm10
16233  DB  102,69,15,219,209                   ; pand          %xmm9,%xmm10
16234  DB  102,65,15,112,210,78                ; pshufd        $0x4e,%xmm10,%xmm2
16235  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16236  DB  68,15,183,193                       ; movzwl        %cx,%r8d
16237  DB  72,193,233,32                       ; shr           $0x20,%rcx
16238  DB  102,76,15,126,208                   ; movq          %xmm10,%rax
16239  DB  68,15,183,208                       ; movzwl        %ax,%r10d
16240  DB  72,193,232,30                       ; shr           $0x1e,%rax
16241  DB  243,69,15,16,12,1                   ; movss         (%r9,%rax,1),%xmm9
16242  DB  243,65,15,16,20,137                 ; movss         (%r9,%rcx,4),%xmm2
16243  DB  68,15,20,202                        ; unpcklps      %xmm2,%xmm9
16244  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
16245  DB  243,67,15,16,28,129                 ; movss         (%r9,%r8,4),%xmm3
16246  DB  15,20,211                           ; unpcklps      %xmm3,%xmm2
16247  DB  65,15,20,209                        ; unpcklps      %xmm9,%xmm2
16248  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
16249  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
16250  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16251  DB  102,65,15,111,219                   ; movdqa        %xmm11,%xmm3
16252  DB  102,15,113,243,8                    ; psllw         $0x8,%xmm3
16253  DB  102,65,15,113,211,8                 ; psrlw         $0x8,%xmm11
16254  DB  102,68,15,235,219                   ; por           %xmm3,%xmm11
16255  DB  102,69,15,97,216                    ; punpcklwd     %xmm8,%xmm11
16256  DB  65,15,91,219                        ; cvtdq2ps      %xmm11,%xmm3
16257  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
16258  DB  72,173                              ; lods          %ds:(%rsi),%rax
16259  DB  255,224                             ; jmpq          *%rax
16260
16261PUBLIC _sk_load_tables_rgb_u16_be_sse2
16262_sk_load_tables_rgb_u16_be_sse2 LABEL PROC
16263  DB  72,173                              ; lods          %ds:(%rsi),%rax
16264  DB  76,141,12,127                       ; lea           (%rdi,%rdi,2),%r9
16265  DB  72,139,8                            ; mov           (%rax),%rcx
16266  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
16267  DB  243,70,15,111,28,73                 ; movdqu        (%rcx,%r9,2),%xmm11
16268  DB  243,66,15,111,68,73,8               ; movdqu        0x8(%rcx,%r9,2),%xmm0
16269  DB  102,15,115,216,4                    ; psrldq        $0x4,%xmm0
16270  DB  102,65,15,111,219                   ; movdqa        %xmm11,%xmm3
16271  DB  102,15,115,219,6                    ; psrldq        $0x6,%xmm3
16272  DB  102,68,15,97,216                    ; punpcklwd     %xmm0,%xmm11
16273  DB  102,15,115,216,6                    ; psrldq        $0x6,%xmm0
16274  DB  102,15,97,216                       ; punpcklwd     %xmm0,%xmm3
16275  DB  102,65,15,111,195                   ; movdqa        %xmm11,%xmm0
16276  DB  102,15,97,195                       ; punpcklwd     %xmm3,%xmm0
16277  DB  102,68,15,112,208,78                ; pshufd        $0x4e,%xmm0,%xmm10
16278  DB  102,68,15,105,219                   ; punpckhwd     %xmm3,%xmm11
16279  DB  102,69,15,239,192                   ; pxor          %xmm8,%xmm8
16280  DB  102,65,15,97,192                    ; punpcklwd     %xmm8,%xmm0
16281  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
16282  DB  102,15,110,217                      ; movd          %ecx,%xmm3
16283  DB  102,68,15,112,203,0                 ; pshufd        $0x0,%xmm3,%xmm9
16284  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
16285  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
16286  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
16287  DB  68,15,183,201                       ; movzwl        %cx,%r9d
16288  DB  72,193,233,32                       ; shr           $0x20,%rcx
16289  DB  102,73,15,126,194                   ; movq          %xmm0,%r10
16290  DB  69,15,183,218                       ; movzwl        %r10w,%r11d
16291  DB  73,193,234,30                       ; shr           $0x1e,%r10
16292  DB  243,67,15,16,28,16                  ; movss         (%r8,%r10,1),%xmm3
16293  DB  243,65,15,16,4,136                  ; movss         (%r8,%rcx,4),%xmm0
16294  DB  15,20,216                           ; unpcklps      %xmm0,%xmm3
16295  DB  243,67,15,16,4,152                  ; movss         (%r8,%r11,4),%xmm0
16296  DB  243,67,15,16,12,136                 ; movss         (%r8,%r9,4),%xmm1
16297  DB  15,20,193                           ; unpcklps      %xmm1,%xmm0
16298  DB  15,20,195                           ; unpcklps      %xmm3,%xmm0
16299  DB  76,139,80,16                        ; mov           0x10(%rax),%r10
16300  DB  102,69,15,97,208                    ; punpcklwd     %xmm8,%xmm10
16301  DB  102,69,15,219,209                   ; pand          %xmm9,%xmm10
16302  DB  102,65,15,112,202,78                ; pshufd        $0x4e,%xmm10,%xmm1
16303  DB  102,73,15,126,200                   ; movq          %xmm1,%r8
16304  DB  69,15,183,200                       ; movzwl        %r8w,%r9d
16305  DB  73,193,232,32                       ; shr           $0x20,%r8
16306  DB  102,76,15,126,209                   ; movq          %xmm10,%rcx
16307  DB  68,15,183,217                       ; movzwl        %cx,%r11d
16308  DB  72,193,233,30                       ; shr           $0x1e,%rcx
16309  DB  243,65,15,16,28,10                  ; movss         (%r10,%rcx,1),%xmm3
16310  DB  243,67,15,16,12,130                 ; movss         (%r10,%r8,4),%xmm1
16311  DB  15,20,217                           ; unpcklps      %xmm1,%xmm3
16312  DB  243,67,15,16,12,154                 ; movss         (%r10,%r11,4),%xmm1
16313  DB  243,67,15,16,20,138                 ; movss         (%r10,%r9,4),%xmm2
16314  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
16315  DB  15,20,203                           ; unpcklps      %xmm3,%xmm1
16316  DB  76,139,72,24                        ; mov           0x18(%rax),%r9
16317  DB  102,69,15,97,216                    ; punpcklwd     %xmm8,%xmm11
16318  DB  102,69,15,219,217                   ; pand          %xmm9,%xmm11
16319  DB  102,65,15,112,211,78                ; pshufd        $0x4e,%xmm11,%xmm2
16320  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16321  DB  68,15,183,193                       ; movzwl        %cx,%r8d
16322  DB  72,193,233,32                       ; shr           $0x20,%rcx
16323  DB  102,76,15,126,216                   ; movq          %xmm11,%rax
16324  DB  68,15,183,208                       ; movzwl        %ax,%r10d
16325  DB  72,193,232,30                       ; shr           $0x1e,%rax
16326  DB  243,69,15,16,4,1                    ; movss         (%r9,%rax,1),%xmm8
16327  DB  243,65,15,16,20,137                 ; movss         (%r9,%rcx,4),%xmm2
16328  DB  68,15,20,194                        ; unpcklps      %xmm2,%xmm8
16329  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
16330  DB  243,67,15,16,28,129                 ; movss         (%r9,%r8,4),%xmm3
16331  DB  15,20,211                           ; unpcklps      %xmm3,%xmm2
16332  DB  65,15,20,208                        ; unpcklps      %xmm8,%xmm2
16333  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
16334  DB  102,15,110,216                      ; movd          %eax,%xmm3
16335  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
16336  DB  72,173                              ; lods          %ds:(%rsi),%rax
16337  DB  255,224                             ; jmpq          *%rax
16338
16339PUBLIC _sk_byte_tables_sse2
16340_sk_byte_tables_sse2 LABEL PROC
16341  DB  65,86                               ; push          %r14
16342  DB  83                                  ; push          %rbx
16343  DB  72,173                              ; lods          %ds:(%rsi),%rax
16344  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
16345  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
16346  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16347  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
16348  DB  102,15,91,192                       ; cvtps2dq      %xmm0,%xmm0
16349  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
16350  DB  65,137,200                          ; mov           %ecx,%r8d
16351  DB  72,193,233,32                       ; shr           $0x20,%rcx
16352  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
16353  DB  102,73,15,126,193                   ; movq          %xmm0,%r9
16354  DB  69,137,202                          ; mov           %r9d,%r10d
16355  DB  77,137,203                          ; mov           %r9,%r11
16356  DB  73,193,235,32                       ; shr           $0x20,%r11
16357  DB  76,139,48                           ; mov           (%rax),%r14
16358  DB  76,139,72,8                         ; mov           0x8(%rax),%r9
16359  DB  71,15,182,20,22                     ; movzbl        (%r14,%r10,1),%r10d
16360  DB  67,15,182,28,30                     ; movzbl        (%r14,%r11,1),%ebx
16361  DB  193,227,8                           ; shl           $0x8,%ebx
16362  DB  68,9,211                            ; or            %r10d,%ebx
16363  DB  71,15,182,4,6                       ; movzbl        (%r14,%r8,1),%r8d
16364  DB  65,15,182,12,14                     ; movzbl        (%r14,%rcx,1),%ecx
16365  DB  193,225,8                           ; shl           $0x8,%ecx
16366  DB  68,9,193                            ; or            %r8d,%ecx
16367  DB  102,15,196,193,0                    ; pinsrw        $0x0,%ecx,%xmm0
16368  DB  102,15,196,195,1                    ; pinsrw        $0x1,%ebx,%xmm0
16369  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
16370  DB  102,65,15,96,193                    ; punpcklbw     %xmm9,%xmm0
16371  DB  102,65,15,97,193                    ; punpcklwd     %xmm9,%xmm0
16372  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
16373  DB  185,129,128,128,59                  ; mov           $0x3b808081,%ecx
16374  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16375  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16376  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
16377  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
16378  DB  102,15,91,201                       ; cvtps2dq      %xmm1,%xmm1
16379  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
16380  DB  65,137,200                          ; mov           %ecx,%r8d
16381  DB  72,193,233,32                       ; shr           $0x20,%rcx
16382  DB  102,15,112,201,78                   ; pshufd        $0x4e,%xmm1,%xmm1
16383  DB  102,72,15,126,203                   ; movq          %xmm1,%rbx
16384  DB  65,137,218                          ; mov           %ebx,%r10d
16385  DB  72,193,235,32                       ; shr           $0x20,%rbx
16386  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
16387  DB  65,15,182,28,25                     ; movzbl        (%r9,%rbx,1),%ebx
16388  DB  193,227,8                           ; shl           $0x8,%ebx
16389  DB  68,9,211                            ; or            %r10d,%ebx
16390  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
16391  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
16392  DB  193,225,8                           ; shl           $0x8,%ecx
16393  DB  68,9,193                            ; or            %r8d,%ecx
16394  DB  102,15,196,201,0                    ; pinsrw        $0x0,%ecx,%xmm1
16395  DB  102,15,196,203,1                    ; pinsrw        $0x1,%ebx,%xmm1
16396  DB  102,65,15,96,201                    ; punpcklbw     %xmm9,%xmm1
16397  DB  102,65,15,97,201                    ; punpcklwd     %xmm9,%xmm1
16398  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
16399  DB  65,15,89,202                        ; mulps         %xmm10,%xmm1
16400  DB  76,139,72,16                        ; mov           0x10(%rax),%r9
16401  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
16402  DB  102,15,91,210                       ; cvtps2dq      %xmm2,%xmm2
16403  DB  102,72,15,126,211                   ; movq          %xmm2,%rbx
16404  DB  65,137,216                          ; mov           %ebx,%r8d
16405  DB  72,193,235,32                       ; shr           $0x20,%rbx
16406  DB  102,15,112,210,78                   ; pshufd        $0x4e,%xmm2,%xmm2
16407  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16408  DB  65,137,202                          ; mov           %ecx,%r10d
16409  DB  72,193,233,32                       ; shr           $0x20,%rcx
16410  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
16411  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
16412  DB  193,225,8                           ; shl           $0x8,%ecx
16413  DB  68,9,209                            ; or            %r10d,%ecx
16414  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
16415  DB  65,15,182,28,25                     ; movzbl        (%r9,%rbx,1),%ebx
16416  DB  193,227,8                           ; shl           $0x8,%ebx
16417  DB  68,9,195                            ; or            %r8d,%ebx
16418  DB  102,15,196,211,0                    ; pinsrw        $0x0,%ebx,%xmm2
16419  DB  102,15,196,209,1                    ; pinsrw        $0x1,%ecx,%xmm2
16420  DB  102,65,15,96,209                    ; punpcklbw     %xmm9,%xmm2
16421  DB  102,65,15,97,209                    ; punpcklwd     %xmm9,%xmm2
16422  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
16423  DB  65,15,89,210                        ; mulps         %xmm10,%xmm2
16424  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
16425  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
16426  DB  102,65,15,91,216                    ; cvtps2dq      %xmm8,%xmm3
16427  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
16428  DB  65,137,200                          ; mov           %ecx,%r8d
16429  DB  72,193,233,32                       ; shr           $0x20,%rcx
16430  DB  102,15,112,219,78                   ; pshufd        $0x4e,%xmm3,%xmm3
16431  DB  102,72,15,126,219                   ; movq          %xmm3,%rbx
16432  DB  65,137,217                          ; mov           %ebx,%r9d
16433  DB  72,193,235,32                       ; shr           $0x20,%rbx
16434  DB  70,15,182,12,8                      ; movzbl        (%rax,%r9,1),%r9d
16435  DB  15,182,28,24                        ; movzbl        (%rax,%rbx,1),%ebx
16436  DB  193,227,8                           ; shl           $0x8,%ebx
16437  DB  68,9,203                            ; or            %r9d,%ebx
16438  DB  70,15,182,4,0                       ; movzbl        (%rax,%r8,1),%r8d
16439  DB  15,182,4,8                          ; movzbl        (%rax,%rcx,1),%eax
16440  DB  193,224,8                           ; shl           $0x8,%eax
16441  DB  68,9,192                            ; or            %r8d,%eax
16442  DB  102,15,196,216,0                    ; pinsrw        $0x0,%eax,%xmm3
16443  DB  102,15,196,219,1                    ; pinsrw        $0x1,%ebx,%xmm3
16444  DB  102,65,15,96,217                    ; punpcklbw     %xmm9,%xmm3
16445  DB  102,65,15,97,217                    ; punpcklwd     %xmm9,%xmm3
16446  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
16447  DB  65,15,89,218                        ; mulps         %xmm10,%xmm3
16448  DB  72,173                              ; lods          %ds:(%rsi),%rax
16449  DB  91                                  ; pop           %rbx
16450  DB  65,94                               ; pop           %r14
16451  DB  255,224                             ; jmpq          *%rax
16452
16453PUBLIC _sk_byte_tables_rgb_sse2
16454_sk_byte_tables_rgb_sse2 LABEL PROC
16455  DB  65,86                               ; push          %r14
16456  DB  83                                  ; push          %rbx
16457  DB  72,173                              ; lods          %ds:(%rsi),%rax
16458  DB  139,72,24                           ; mov           0x18(%rax),%ecx
16459  DB  255,201                             ; dec           %ecx
16460  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
16461  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16462  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16463  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
16464  DB  102,15,91,192                       ; cvtps2dq      %xmm0,%xmm0
16465  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
16466  DB  65,137,200                          ; mov           %ecx,%r8d
16467  DB  72,193,233,32                       ; shr           $0x20,%rcx
16468  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
16469  DB  102,73,15,126,193                   ; movq          %xmm0,%r9
16470  DB  69,137,202                          ; mov           %r9d,%r10d
16471  DB  77,137,203                          ; mov           %r9,%r11
16472  DB  73,193,235,32                       ; shr           $0x20,%r11
16473  DB  76,139,48                           ; mov           (%rax),%r14
16474  DB  76,139,72,8                         ; mov           0x8(%rax),%r9
16475  DB  71,15,182,20,22                     ; movzbl        (%r14,%r10,1),%r10d
16476  DB  67,15,182,28,30                     ; movzbl        (%r14,%r11,1),%ebx
16477  DB  193,227,8                           ; shl           $0x8,%ebx
16478  DB  68,9,211                            ; or            %r10d,%ebx
16479  DB  71,15,182,4,6                       ; movzbl        (%r14,%r8,1),%r8d
16480  DB  65,15,182,12,14                     ; movzbl        (%r14,%rcx,1),%ecx
16481  DB  193,225,8                           ; shl           $0x8,%ecx
16482  DB  68,9,193                            ; or            %r8d,%ecx
16483  DB  102,15,196,193,0                    ; pinsrw        $0x0,%ecx,%xmm0
16484  DB  102,15,196,195,1                    ; pinsrw        $0x1,%ebx,%xmm0
16485  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
16486  DB  102,65,15,96,193                    ; punpcklbw     %xmm9,%xmm0
16487  DB  102,65,15,97,193                    ; punpcklwd     %xmm9,%xmm0
16488  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
16489  DB  185,129,128,128,59                  ; mov           $0x3b808081,%ecx
16490  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16491  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16492  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
16493  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
16494  DB  102,15,91,201                       ; cvtps2dq      %xmm1,%xmm1
16495  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
16496  DB  65,137,200                          ; mov           %ecx,%r8d
16497  DB  72,193,233,32                       ; shr           $0x20,%rcx
16498  DB  102,15,112,201,78                   ; pshufd        $0x4e,%xmm1,%xmm1
16499  DB  102,72,15,126,203                   ; movq          %xmm1,%rbx
16500  DB  65,137,218                          ; mov           %ebx,%r10d
16501  DB  72,193,235,32                       ; shr           $0x20,%rbx
16502  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
16503  DB  65,15,182,28,25                     ; movzbl        (%r9,%rbx,1),%ebx
16504  DB  193,227,8                           ; shl           $0x8,%ebx
16505  DB  68,9,211                            ; or            %r10d,%ebx
16506  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
16507  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
16508  DB  193,225,8                           ; shl           $0x8,%ecx
16509  DB  68,9,193                            ; or            %r8d,%ecx
16510  DB  102,15,196,201,0                    ; pinsrw        $0x0,%ecx,%xmm1
16511  DB  102,15,196,203,1                    ; pinsrw        $0x1,%ebx,%xmm1
16512  DB  102,65,15,96,201                    ; punpcklbw     %xmm9,%xmm1
16513  DB  102,65,15,97,201                    ; punpcklwd     %xmm9,%xmm1
16514  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
16515  DB  65,15,89,202                        ; mulps         %xmm10,%xmm1
16516  DB  72,139,64,16                        ; mov           0x10(%rax),%rax
16517  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
16518  DB  102,15,91,210                       ; cvtps2dq      %xmm2,%xmm2
16519  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16520  DB  65,137,200                          ; mov           %ecx,%r8d
16521  DB  72,193,233,32                       ; shr           $0x20,%rcx
16522  DB  102,15,112,210,78                   ; pshufd        $0x4e,%xmm2,%xmm2
16523  DB  102,72,15,126,211                   ; movq          %xmm2,%rbx
16524  DB  65,137,217                          ; mov           %ebx,%r9d
16525  DB  72,193,235,32                       ; shr           $0x20,%rbx
16526  DB  70,15,182,12,8                      ; movzbl        (%rax,%r9,1),%r9d
16527  DB  15,182,28,24                        ; movzbl        (%rax,%rbx,1),%ebx
16528  DB  193,227,8                           ; shl           $0x8,%ebx
16529  DB  68,9,203                            ; or            %r9d,%ebx
16530  DB  70,15,182,4,0                       ; movzbl        (%rax,%r8,1),%r8d
16531  DB  15,182,4,8                          ; movzbl        (%rax,%rcx,1),%eax
16532  DB  193,224,8                           ; shl           $0x8,%eax
16533  DB  68,9,192                            ; or            %r8d,%eax
16534  DB  102,15,196,208,0                    ; pinsrw        $0x0,%eax,%xmm2
16535  DB  102,15,196,211,1                    ; pinsrw        $0x1,%ebx,%xmm2
16536  DB  102,65,15,96,209                    ; punpcklbw     %xmm9,%xmm2
16537  DB  102,65,15,97,209                    ; punpcklwd     %xmm9,%xmm2
16538  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
16539  DB  65,15,89,210                        ; mulps         %xmm10,%xmm2
16540  DB  72,173                              ; lods          %ds:(%rsi),%rax
16541  DB  91                                  ; pop           %rbx
16542  DB  65,94                               ; pop           %r14
16543  DB  255,224                             ; jmpq          *%rax
16544
16545PUBLIC _sk_table_r_sse2
16546_sk_table_r_sse2 LABEL PROC
16547  DB  72,173                              ; lods          %ds:(%rsi),%rax
16548  DB  76,139,8                            ; mov           (%rax),%r9
16549  DB  139,64,8                            ; mov           0x8(%rax),%eax
16550  DB  255,200                             ; dec           %eax
16551  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16552  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16553  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16554  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
16555  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16556  DB  102,65,15,112,192,78                ; pshufd        $0x4e,%xmm8,%xmm0
16557  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
16558  DB  65,137,192                          ; mov           %eax,%r8d
16559  DB  72,193,232,32                       ; shr           $0x20,%rax
16560  DB  102,76,15,126,193                   ; movq          %xmm8,%rcx
16561  DB  65,137,202                          ; mov           %ecx,%r10d
16562  DB  72,193,233,32                       ; shr           $0x20,%rcx
16563  DB  243,69,15,16,4,137                  ; movss         (%r9,%rcx,4),%xmm8
16564  DB  243,65,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm0
16565  DB  68,15,20,192                        ; unpcklps      %xmm0,%xmm8
16566  DB  243,67,15,16,4,145                  ; movss         (%r9,%r10,4),%xmm0
16567  DB  243,71,15,16,12,129                 ; movss         (%r9,%r8,4),%xmm9
16568  DB  65,15,20,193                        ; unpcklps      %xmm9,%xmm0
16569  DB  65,15,20,192                        ; unpcklps      %xmm8,%xmm0
16570  DB  72,173                              ; lods          %ds:(%rsi),%rax
16571  DB  255,224                             ; jmpq          *%rax
16572
16573PUBLIC _sk_table_g_sse2
16574_sk_table_g_sse2 LABEL PROC
16575  DB  72,173                              ; lods          %ds:(%rsi),%rax
16576  DB  76,139,8                            ; mov           (%rax),%r9
16577  DB  139,64,8                            ; mov           0x8(%rax),%eax
16578  DB  255,200                             ; dec           %eax
16579  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16580  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16581  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16582  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
16583  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16584  DB  102,65,15,112,200,78                ; pshufd        $0x4e,%xmm8,%xmm1
16585  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
16586  DB  65,137,192                          ; mov           %eax,%r8d
16587  DB  72,193,232,32                       ; shr           $0x20,%rax
16588  DB  102,76,15,126,193                   ; movq          %xmm8,%rcx
16589  DB  65,137,202                          ; mov           %ecx,%r10d
16590  DB  72,193,233,32                       ; shr           $0x20,%rcx
16591  DB  243,69,15,16,4,137                  ; movss         (%r9,%rcx,4),%xmm8
16592  DB  243,65,15,16,12,129                 ; movss         (%r9,%rax,4),%xmm1
16593  DB  68,15,20,193                        ; unpcklps      %xmm1,%xmm8
16594  DB  243,67,15,16,12,145                 ; movss         (%r9,%r10,4),%xmm1
16595  DB  243,71,15,16,12,129                 ; movss         (%r9,%r8,4),%xmm9
16596  DB  65,15,20,201                        ; unpcklps      %xmm9,%xmm1
16597  DB  65,15,20,200                        ; unpcklps      %xmm8,%xmm1
16598  DB  72,173                              ; lods          %ds:(%rsi),%rax
16599  DB  255,224                             ; jmpq          *%rax
16600
16601PUBLIC _sk_table_b_sse2
16602_sk_table_b_sse2 LABEL PROC
16603  DB  72,173                              ; lods          %ds:(%rsi),%rax
16604  DB  76,139,8                            ; mov           (%rax),%r9
16605  DB  139,64,8                            ; mov           0x8(%rax),%eax
16606  DB  255,200                             ; dec           %eax
16607  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16608  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16609  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16610  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
16611  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16612  DB  102,65,15,112,208,78                ; pshufd        $0x4e,%xmm8,%xmm2
16613  DB  102,72,15,126,208                   ; movq          %xmm2,%rax
16614  DB  65,137,192                          ; mov           %eax,%r8d
16615  DB  72,193,232,32                       ; shr           $0x20,%rax
16616  DB  102,76,15,126,193                   ; movq          %xmm8,%rcx
16617  DB  65,137,202                          ; mov           %ecx,%r10d
16618  DB  72,193,233,32                       ; shr           $0x20,%rcx
16619  DB  243,69,15,16,4,137                  ; movss         (%r9,%rcx,4),%xmm8
16620  DB  243,65,15,16,20,129                 ; movss         (%r9,%rax,4),%xmm2
16621  DB  68,15,20,194                        ; unpcklps      %xmm2,%xmm8
16622  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
16623  DB  243,71,15,16,12,129                 ; movss         (%r9,%r8,4),%xmm9
16624  DB  65,15,20,209                        ; unpcklps      %xmm9,%xmm2
16625  DB  65,15,20,208                        ; unpcklps      %xmm8,%xmm2
16626  DB  72,173                              ; lods          %ds:(%rsi),%rax
16627  DB  255,224                             ; jmpq          *%rax
16628
16629PUBLIC _sk_table_a_sse2
16630_sk_table_a_sse2 LABEL PROC
16631  DB  72,173                              ; lods          %ds:(%rsi),%rax
16632  DB  76,139,8                            ; mov           (%rax),%r9
16633  DB  139,64,8                            ; mov           0x8(%rax),%eax
16634  DB  255,200                             ; dec           %eax
16635  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16636  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16637  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16638  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
16639  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16640  DB  102,65,15,112,216,78                ; pshufd        $0x4e,%xmm8,%xmm3
16641  DB  102,72,15,126,216                   ; movq          %xmm3,%rax
16642  DB  65,137,192                          ; mov           %eax,%r8d
16643  DB  72,193,232,32                       ; shr           $0x20,%rax
16644  DB  102,76,15,126,193                   ; movq          %xmm8,%rcx
16645  DB  65,137,202                          ; mov           %ecx,%r10d
16646  DB  72,193,233,32                       ; shr           $0x20,%rcx
16647  DB  243,69,15,16,4,137                  ; movss         (%r9,%rcx,4),%xmm8
16648  DB  243,65,15,16,28,129                 ; movss         (%r9,%rax,4),%xmm3
16649  DB  68,15,20,195                        ; unpcklps      %xmm3,%xmm8
16650  DB  243,67,15,16,28,145                 ; movss         (%r9,%r10,4),%xmm3
16651  DB  243,71,15,16,12,129                 ; movss         (%r9,%r8,4),%xmm9
16652  DB  65,15,20,217                        ; unpcklps      %xmm9,%xmm3
16653  DB  65,15,20,216                        ; unpcklps      %xmm8,%xmm3
16654  DB  72,173                              ; lods          %ds:(%rsi),%rax
16655  DB  255,224                             ; jmpq          *%rax
16656
16657PUBLIC _sk_parametric_r_sse2
16658_sk_parametric_r_sse2 LABEL PROC
16659  DB  72,173                              ; lods          %ds:(%rsi),%rax
16660  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
16661  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16662  DB  243,68,15,16,64,12                  ; movss         0xc(%rax),%xmm8
16663  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16664  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
16665  DB  243,68,15,16,80,4                   ; movss         0x4(%rax),%xmm10
16666  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16667  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
16668  DB  65,15,194,193,2                     ; cmpleps       %xmm9,%xmm0
16669  DB  243,68,15,16,72,24                  ; movss         0x18(%rax),%xmm9
16670  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16671  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
16672  DB  243,68,15,16,24                     ; movss         (%rax),%xmm11
16673  DB  243,68,15,16,72,8                   ; movss         0x8(%rax),%xmm9
16674  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16675  DB  69,15,88,209                        ; addps         %xmm9,%xmm10
16676  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16677  DB  69,15,91,202                        ; cvtdq2ps      %xmm10,%xmm9
16678  DB  68,15,89,13,78,36,0,0               ; mulps         0x244e(%rip),%xmm9        # 43e0 <_sk_callback_sse2+0xcb>
16679  DB  68,15,84,21,86,36,0,0               ; andps         0x2456(%rip),%xmm10        # 43f0 <_sk_callback_sse2+0xdb>
16680  DB  68,15,86,21,94,36,0,0               ; orps          0x245e(%rip),%xmm10        # 4400 <_sk_callback_sse2+0xeb>
16681  DB  68,15,88,13,102,36,0,0              ; addps         0x2466(%rip),%xmm9        # 4410 <_sk_callback_sse2+0xfb>
16682  DB  68,15,40,37,110,36,0,0              ; movaps        0x246e(%rip),%xmm12        # 4420 <_sk_callback_sse2+0x10b>
16683  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
16684  DB  69,15,92,204                        ; subps         %xmm12,%xmm9
16685  DB  68,15,88,21,110,36,0,0              ; addps         0x246e(%rip),%xmm10        # 4430 <_sk_callback_sse2+0x11b>
16686  DB  68,15,40,37,118,36,0,0              ; movaps        0x2476(%rip),%xmm12        # 4440 <_sk_callback_sse2+0x12b>
16687  DB  69,15,94,226                        ; divps         %xmm10,%xmm12
16688  DB  69,15,92,204                        ; subps         %xmm12,%xmm9
16689  DB  69,15,89,203                        ; mulps         %xmm11,%xmm9
16690  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
16691  DB  69,15,91,218                        ; cvtdq2ps      %xmm10,%xmm11
16692  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
16693  DB  69,15,194,227,1                     ; cmpltps       %xmm11,%xmm12
16694  DB  68,15,84,37,96,36,0,0               ; andps         0x2460(%rip),%xmm12        # 4450 <_sk_callback_sse2+0x13b>
16695  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
16696  DB  69,15,92,220                        ; subps         %xmm12,%xmm11
16697  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
16698  DB  69,15,92,227                        ; subps         %xmm11,%xmm12
16699  DB  68,15,88,13,88,36,0,0               ; addps         0x2458(%rip),%xmm9        # 4460 <_sk_callback_sse2+0x14b>
16700  DB  68,15,40,29,96,36,0,0               ; movaps        0x2460(%rip),%xmm11        # 4470 <_sk_callback_sse2+0x15b>
16701  DB  69,15,89,220                        ; mulps         %xmm12,%xmm11
16702  DB  69,15,92,203                        ; subps         %xmm11,%xmm9
16703  DB  68,15,40,29,96,36,0,0               ; movaps        0x2460(%rip),%xmm11        # 4480 <_sk_callback_sse2+0x16b>
16704  DB  69,15,92,220                        ; subps         %xmm12,%xmm11
16705  DB  68,15,40,37,100,36,0,0              ; movaps        0x2464(%rip),%xmm12        # 4490 <_sk_callback_sse2+0x17b>
16706  DB  69,15,94,227                        ; divps         %xmm11,%xmm12
16707  DB  69,15,88,225                        ; addps         %xmm9,%xmm12
16708  DB  68,15,89,37,100,36,0,0              ; mulps         0x2464(%rip),%xmm12        # 44a0 <_sk_callback_sse2+0x18b>
16709  DB  102,69,15,91,204                    ; cvtps2dq      %xmm12,%xmm9
16710  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
16711  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16712  DB  69,15,88,217                        ; addps         %xmm9,%xmm11
16713  DB  68,15,84,192                        ; andps         %xmm0,%xmm8
16714  DB  65,15,85,195                        ; andnps        %xmm11,%xmm0
16715  DB  65,15,86,192                        ; orps          %xmm8,%xmm0
16716  DB  65,15,95,194                        ; maxps         %xmm10,%xmm0
16717  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
16718  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16719  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16720  DB  65,15,93,192                        ; minps         %xmm8,%xmm0
16721  DB  72,173                              ; lods          %ds:(%rsi),%rax
16722  DB  255,224                             ; jmpq          *%rax
16723
16724PUBLIC _sk_parametric_g_sse2
16725_sk_parametric_g_sse2 LABEL PROC
16726  DB  72,173                              ; lods          %ds:(%rsi),%rax
16727  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
16728  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16729  DB  243,68,15,16,64,12                  ; movss         0xc(%rax),%xmm8
16730  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16731  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
16732  DB  243,68,15,16,80,4                   ; movss         0x4(%rax),%xmm10
16733  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16734  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
16735  DB  65,15,194,201,2                     ; cmpleps       %xmm9,%xmm1
16736  DB  243,68,15,16,72,24                  ; movss         0x18(%rax),%xmm9
16737  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16738  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
16739  DB  243,68,15,16,24                     ; movss         (%rax),%xmm11
16740  DB  243,68,15,16,72,8                   ; movss         0x8(%rax),%xmm9
16741  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16742  DB  69,15,88,209                        ; addps         %xmm9,%xmm10
16743  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16744  DB  69,15,91,202                        ; cvtdq2ps      %xmm10,%xmm9
16745  DB  68,15,89,13,213,35,0,0              ; mulps         0x23d5(%rip),%xmm9        # 44b0 <_sk_callback_sse2+0x19b>
16746  DB  68,15,84,21,221,35,0,0              ; andps         0x23dd(%rip),%xmm10        # 44c0 <_sk_callback_sse2+0x1ab>
16747  DB  68,15,86,21,229,35,0,0              ; orps          0x23e5(%rip),%xmm10        # 44d0 <_sk_callback_sse2+0x1bb>
16748  DB  68,15,88,13,237,35,0,0              ; addps         0x23ed(%rip),%xmm9        # 44e0 <_sk_callback_sse2+0x1cb>
16749  DB  68,15,40,37,245,35,0,0              ; movaps        0x23f5(%rip),%xmm12        # 44f0 <_sk_callback_sse2+0x1db>
16750  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
16751  DB  69,15,92,204                        ; subps         %xmm12,%xmm9
16752  DB  68,15,88,21,245,35,0,0              ; addps         0x23f5(%rip),%xmm10        # 4500 <_sk_callback_sse2+0x1eb>
16753  DB  68,15,40,37,253,35,0,0              ; movaps        0x23fd(%rip),%xmm12        # 4510 <_sk_callback_sse2+0x1fb>
16754  DB  69,15,94,226                        ; divps         %xmm10,%xmm12
16755  DB  69,15,92,204                        ; subps         %xmm12,%xmm9
16756  DB  69,15,89,203                        ; mulps         %xmm11,%xmm9
16757  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
16758  DB  69,15,91,218                        ; cvtdq2ps      %xmm10,%xmm11
16759  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
16760  DB  69,15,194,227,1                     ; cmpltps       %xmm11,%xmm12
16761  DB  68,15,84,37,231,35,0,0              ; andps         0x23e7(%rip),%xmm12        # 4520 <_sk_callback_sse2+0x20b>
16762  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
16763  DB  69,15,92,220                        ; subps         %xmm12,%xmm11
16764  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
16765  DB  69,15,92,227                        ; subps         %xmm11,%xmm12
16766  DB  68,15,88,13,223,35,0,0              ; addps         0x23df(%rip),%xmm9        # 4530 <_sk_callback_sse2+0x21b>
16767  DB  68,15,40,29,231,35,0,0              ; movaps        0x23e7(%rip),%xmm11        # 4540 <_sk_callback_sse2+0x22b>
16768  DB  69,15,89,220                        ; mulps         %xmm12,%xmm11
16769  DB  69,15,92,203                        ; subps         %xmm11,%xmm9
16770  DB  68,15,40,29,231,35,0,0              ; movaps        0x23e7(%rip),%xmm11        # 4550 <_sk_callback_sse2+0x23b>
16771  DB  69,15,92,220                        ; subps         %xmm12,%xmm11
16772  DB  68,15,40,37,235,35,0,0              ; movaps        0x23eb(%rip),%xmm12        # 4560 <_sk_callback_sse2+0x24b>
16773  DB  69,15,94,227                        ; divps         %xmm11,%xmm12
16774  DB  69,15,88,225                        ; addps         %xmm9,%xmm12
16775  DB  68,15,89,37,235,35,0,0              ; mulps         0x23eb(%rip),%xmm12        # 4570 <_sk_callback_sse2+0x25b>
16776  DB  102,69,15,91,204                    ; cvtps2dq      %xmm12,%xmm9
16777  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
16778  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16779  DB  69,15,88,217                        ; addps         %xmm9,%xmm11
16780  DB  68,15,84,193                        ; andps         %xmm1,%xmm8
16781  DB  65,15,85,203                        ; andnps        %xmm11,%xmm1
16782  DB  65,15,86,200                        ; orps          %xmm8,%xmm1
16783  DB  65,15,95,202                        ; maxps         %xmm10,%xmm1
16784  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
16785  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16786  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16787  DB  65,15,93,200                        ; minps         %xmm8,%xmm1
16788  DB  72,173                              ; lods          %ds:(%rsi),%rax
16789  DB  255,224                             ; jmpq          *%rax
16790
16791PUBLIC _sk_parametric_b_sse2
16792_sk_parametric_b_sse2 LABEL PROC
16793  DB  72,173                              ; lods          %ds:(%rsi),%rax
16794  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
16795  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16796  DB  243,68,15,16,64,12                  ; movss         0xc(%rax),%xmm8
16797  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16798  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
16799  DB  243,68,15,16,80,4                   ; movss         0x4(%rax),%xmm10
16800  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16801  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
16802  DB  65,15,194,209,2                     ; cmpleps       %xmm9,%xmm2
16803  DB  243,68,15,16,72,24                  ; movss         0x18(%rax),%xmm9
16804  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16805  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
16806  DB  243,68,15,16,24                     ; movss         (%rax),%xmm11
16807  DB  243,68,15,16,72,8                   ; movss         0x8(%rax),%xmm9
16808  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16809  DB  69,15,88,209                        ; addps         %xmm9,%xmm10
16810  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16811  DB  69,15,91,202                        ; cvtdq2ps      %xmm10,%xmm9
16812  DB  68,15,89,13,92,35,0,0               ; mulps         0x235c(%rip),%xmm9        # 4580 <_sk_callback_sse2+0x26b>
16813  DB  68,15,84,21,100,35,0,0              ; andps         0x2364(%rip),%xmm10        # 4590 <_sk_callback_sse2+0x27b>
16814  DB  68,15,86,21,108,35,0,0              ; orps          0x236c(%rip),%xmm10        # 45a0 <_sk_callback_sse2+0x28b>
16815  DB  68,15,88,13,116,35,0,0              ; addps         0x2374(%rip),%xmm9        # 45b0 <_sk_callback_sse2+0x29b>
16816  DB  68,15,40,37,124,35,0,0              ; movaps        0x237c(%rip),%xmm12        # 45c0 <_sk_callback_sse2+0x2ab>
16817  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
16818  DB  69,15,92,204                        ; subps         %xmm12,%xmm9
16819  DB  68,15,88,21,124,35,0,0              ; addps         0x237c(%rip),%xmm10        # 45d0 <_sk_callback_sse2+0x2bb>
16820  DB  68,15,40,37,132,35,0,0              ; movaps        0x2384(%rip),%xmm12        # 45e0 <_sk_callback_sse2+0x2cb>
16821  DB  69,15,94,226                        ; divps         %xmm10,%xmm12
16822  DB  69,15,92,204                        ; subps         %xmm12,%xmm9
16823  DB  69,15,89,203                        ; mulps         %xmm11,%xmm9
16824  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
16825  DB  69,15,91,218                        ; cvtdq2ps      %xmm10,%xmm11
16826  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
16827  DB  69,15,194,227,1                     ; cmpltps       %xmm11,%xmm12
16828  DB  68,15,84,37,110,35,0,0              ; andps         0x236e(%rip),%xmm12        # 45f0 <_sk_callback_sse2+0x2db>
16829  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
16830  DB  69,15,92,220                        ; subps         %xmm12,%xmm11
16831  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
16832  DB  69,15,92,227                        ; subps         %xmm11,%xmm12
16833  DB  68,15,88,13,102,35,0,0              ; addps         0x2366(%rip),%xmm9        # 4600 <_sk_callback_sse2+0x2eb>
16834  DB  68,15,40,29,110,35,0,0              ; movaps        0x236e(%rip),%xmm11        # 4610 <_sk_callback_sse2+0x2fb>
16835  DB  69,15,89,220                        ; mulps         %xmm12,%xmm11
16836  DB  69,15,92,203                        ; subps         %xmm11,%xmm9
16837  DB  68,15,40,29,110,35,0,0              ; movaps        0x236e(%rip),%xmm11        # 4620 <_sk_callback_sse2+0x30b>
16838  DB  69,15,92,220                        ; subps         %xmm12,%xmm11
16839  DB  68,15,40,37,114,35,0,0              ; movaps        0x2372(%rip),%xmm12        # 4630 <_sk_callback_sse2+0x31b>
16840  DB  69,15,94,227                        ; divps         %xmm11,%xmm12
16841  DB  69,15,88,225                        ; addps         %xmm9,%xmm12
16842  DB  68,15,89,37,114,35,0,0              ; mulps         0x2372(%rip),%xmm12        # 4640 <_sk_callback_sse2+0x32b>
16843  DB  102,69,15,91,204                    ; cvtps2dq      %xmm12,%xmm9
16844  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
16845  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16846  DB  69,15,88,217                        ; addps         %xmm9,%xmm11
16847  DB  68,15,84,194                        ; andps         %xmm2,%xmm8
16848  DB  65,15,85,211                        ; andnps        %xmm11,%xmm2
16849  DB  65,15,86,208                        ; orps          %xmm8,%xmm2
16850  DB  65,15,95,210                        ; maxps         %xmm10,%xmm2
16851  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
16852  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16853  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16854  DB  65,15,93,208                        ; minps         %xmm8,%xmm2
16855  DB  72,173                              ; lods          %ds:(%rsi),%rax
16856  DB  255,224                             ; jmpq          *%rax
16857
16858PUBLIC _sk_parametric_a_sse2
16859_sk_parametric_a_sse2 LABEL PROC
16860  DB  72,173                              ; lods          %ds:(%rsi),%rax
16861  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
16862  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16863  DB  243,68,15,16,64,12                  ; movss         0xc(%rax),%xmm8
16864  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16865  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
16866  DB  243,68,15,16,80,4                   ; movss         0x4(%rax),%xmm10
16867  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16868  DB  68,15,89,211                        ; mulps         %xmm3,%xmm10
16869  DB  65,15,194,217,2                     ; cmpleps       %xmm9,%xmm3
16870  DB  243,68,15,16,72,24                  ; movss         0x18(%rax),%xmm9
16871  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16872  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
16873  DB  243,68,15,16,24                     ; movss         (%rax),%xmm11
16874  DB  243,68,15,16,72,8                   ; movss         0x8(%rax),%xmm9
16875  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16876  DB  69,15,88,209                        ; addps         %xmm9,%xmm10
16877  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16878  DB  69,15,91,202                        ; cvtdq2ps      %xmm10,%xmm9
16879  DB  68,15,89,13,227,34,0,0              ; mulps         0x22e3(%rip),%xmm9        # 4650 <_sk_callback_sse2+0x33b>
16880  DB  68,15,84,21,235,34,0,0              ; andps         0x22eb(%rip),%xmm10        # 4660 <_sk_callback_sse2+0x34b>
16881  DB  68,15,86,21,243,34,0,0              ; orps          0x22f3(%rip),%xmm10        # 4670 <_sk_callback_sse2+0x35b>
16882  DB  68,15,88,13,251,34,0,0              ; addps         0x22fb(%rip),%xmm9        # 4680 <_sk_callback_sse2+0x36b>
16883  DB  68,15,40,37,3,35,0,0                ; movaps        0x2303(%rip),%xmm12        # 4690 <_sk_callback_sse2+0x37b>
16884  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
16885  DB  69,15,92,204                        ; subps         %xmm12,%xmm9
16886  DB  68,15,88,21,3,35,0,0                ; addps         0x2303(%rip),%xmm10        # 46a0 <_sk_callback_sse2+0x38b>
16887  DB  68,15,40,37,11,35,0,0               ; movaps        0x230b(%rip),%xmm12        # 46b0 <_sk_callback_sse2+0x39b>
16888  DB  69,15,94,226                        ; divps         %xmm10,%xmm12
16889  DB  69,15,92,204                        ; subps         %xmm12,%xmm9
16890  DB  69,15,89,203                        ; mulps         %xmm11,%xmm9
16891  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
16892  DB  69,15,91,218                        ; cvtdq2ps      %xmm10,%xmm11
16893  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
16894  DB  69,15,194,227,1                     ; cmpltps       %xmm11,%xmm12
16895  DB  68,15,84,37,245,34,0,0              ; andps         0x22f5(%rip),%xmm12        # 46c0 <_sk_callback_sse2+0x3ab>
16896  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
16897  DB  69,15,92,220                        ; subps         %xmm12,%xmm11
16898  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
16899  DB  69,15,92,227                        ; subps         %xmm11,%xmm12
16900  DB  68,15,88,13,237,34,0,0              ; addps         0x22ed(%rip),%xmm9        # 46d0 <_sk_callback_sse2+0x3bb>
16901  DB  68,15,40,29,245,34,0,0              ; movaps        0x22f5(%rip),%xmm11        # 46e0 <_sk_callback_sse2+0x3cb>
16902  DB  69,15,89,220                        ; mulps         %xmm12,%xmm11
16903  DB  69,15,92,203                        ; subps         %xmm11,%xmm9
16904  DB  68,15,40,29,245,34,0,0              ; movaps        0x22f5(%rip),%xmm11        # 46f0 <_sk_callback_sse2+0x3db>
16905  DB  69,15,92,220                        ; subps         %xmm12,%xmm11
16906  DB  68,15,40,37,249,34,0,0              ; movaps        0x22f9(%rip),%xmm12        # 4700 <_sk_callback_sse2+0x3eb>
16907  DB  69,15,94,227                        ; divps         %xmm11,%xmm12
16908  DB  69,15,88,225                        ; addps         %xmm9,%xmm12
16909  DB  68,15,89,37,249,34,0,0              ; mulps         0x22f9(%rip),%xmm12        # 4710 <_sk_callback_sse2+0x3fb>
16910  DB  102,69,15,91,204                    ; cvtps2dq      %xmm12,%xmm9
16911  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
16912  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16913  DB  69,15,88,217                        ; addps         %xmm9,%xmm11
16914  DB  68,15,84,195                        ; andps         %xmm3,%xmm8
16915  DB  65,15,85,219                        ; andnps        %xmm11,%xmm3
16916  DB  65,15,86,216                        ; orps          %xmm8,%xmm3
16917  DB  65,15,95,218                        ; maxps         %xmm10,%xmm3
16918  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
16919  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16920  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16921  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
16922  DB  72,173                              ; lods          %ds:(%rsi),%rax
16923  DB  255,224                             ; jmpq          *%rax
16924
16925PUBLIC _sk_lab_to_xyz_sse2
16926_sk_lab_to_xyz_sse2 LABEL PROC
16927  DB  184,0,0,200,66                      ; mov           $0x42c80000,%eax
16928  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
16929  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16930  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
16931  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
16932  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16933  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16934  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
16935  DB  184,0,0,0,67                        ; mov           $0x43000000,%eax
16936  DB  102,15,110,192                      ; movd          %eax,%xmm0
16937  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
16938  DB  15,92,200                           ; subps         %xmm0,%xmm1
16939  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
16940  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
16941  DB  184,0,0,128,65                      ; mov           $0x41800000,%eax
16942  DB  102,15,110,208                      ; movd          %eax,%xmm2
16943  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
16944  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
16945  DB  184,203,61,13,60                    ; mov           $0x3c0d3dcb,%eax
16946  DB  102,15,110,192                      ; movd          %eax,%xmm0
16947  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
16948  DB  15,89,194                           ; mulps         %xmm2,%xmm0
16949  DB  184,111,18,3,59                     ; mov           $0x3b03126f,%eax
16950  DB  102,15,110,208                      ; movd          %eax,%xmm2
16951  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
16952  DB  15,89,209                           ; mulps         %xmm1,%xmm2
16953  DB  15,88,208                           ; addps         %xmm0,%xmm2
16954  DB  184,10,215,163,59                   ; mov           $0x3ba3d70a,%eax
16955  DB  102,15,110,200                      ; movd          %eax,%xmm1
16956  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
16957  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
16958  DB  68,15,40,208                        ; movaps        %xmm0,%xmm10
16959  DB  68,15,92,209                        ; subps         %xmm1,%xmm10
16960  DB  15,40,202                           ; movaps        %xmm2,%xmm1
16961  DB  15,89,201                           ; mulps         %xmm1,%xmm1
16962  DB  15,89,202                           ; mulps         %xmm2,%xmm1
16963  DB  184,194,24,17,60                    ; mov           $0x3c1118c2,%eax
16964  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16965  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16966  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
16967  DB  68,15,194,201,1                     ; cmpltps       %xmm1,%xmm9
16968  DB  184,203,61,13,62                    ; mov           $0x3e0d3dcb,%eax
16969  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
16970  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16971  DB  65,15,92,211                        ; subps         %xmm11,%xmm2
16972  DB  184,80,128,3,62                     ; mov           $0x3e038050,%eax
16973  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
16974  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16975  DB  65,15,89,212                        ; mulps         %xmm12,%xmm2
16976  DB  65,15,84,201                        ; andps         %xmm9,%xmm1
16977  DB  68,15,85,202                        ; andnps        %xmm2,%xmm9
16978  DB  68,15,86,201                        ; orps          %xmm1,%xmm9
16979  DB  15,40,208                           ; movaps        %xmm0,%xmm2
16980  DB  15,89,210                           ; mulps         %xmm2,%xmm2
16981  DB  15,89,208                           ; mulps         %xmm0,%xmm2
16982  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
16983  DB  15,194,202,1                        ; cmpltps       %xmm2,%xmm1
16984  DB  65,15,92,195                        ; subps         %xmm11,%xmm0
16985  DB  65,15,89,196                        ; mulps         %xmm12,%xmm0
16986  DB  15,84,209                           ; andps         %xmm1,%xmm2
16987  DB  15,85,200                           ; andnps        %xmm0,%xmm1
16988  DB  15,86,202                           ; orps          %xmm2,%xmm1
16989  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
16990  DB  15,89,192                           ; mulps         %xmm0,%xmm0
16991  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
16992  DB  68,15,194,192,1                     ; cmpltps       %xmm0,%xmm8
16993  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16994  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
16995  DB  65,15,84,192                        ; andps         %xmm8,%xmm0
16996  DB  69,15,85,194                        ; andnps        %xmm10,%xmm8
16997  DB  68,15,86,192                        ; orps          %xmm0,%xmm8
16998  DB  184,31,215,118,63                   ; mov           $0x3f76d71f,%eax
16999  DB  102,15,110,192                      ; movd          %eax,%xmm0
17000  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17001  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
17002  DB  184,246,64,83,63                    ; mov           $0x3f5340f6,%eax
17003  DB  102,15,110,208                      ; movd          %eax,%xmm2
17004  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17005  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17006  DB  72,173                              ; lods          %ds:(%rsi),%rax
17007  DB  255,224                             ; jmpq          *%rax
17008
17009PUBLIC _sk_load_a8_sse2
17010_sk_load_a8_sse2 LABEL PROC
17011  DB  72,173                              ; lods          %ds:(%rsi),%rax
17012  DB  72,139,0                            ; mov           (%rax),%rax
17013  DB  102,15,110,4,56                     ; movd          (%rax,%rdi,1),%xmm0
17014  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
17015  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
17016  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
17017  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17018  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17019  DB  102,15,110,216                      ; movd          %eax,%xmm3
17020  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17021  DB  15,89,216                           ; mulps         %xmm0,%xmm3
17022  DB  72,173                              ; lods          %ds:(%rsi),%rax
17023  DB  15,87,192                           ; xorps         %xmm0,%xmm0
17024  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
17025  DB  15,87,210                           ; xorps         %xmm2,%xmm2
17026  DB  255,224                             ; jmpq          *%rax
17027
17028PUBLIC _sk_gather_a8_sse2
17029_sk_gather_a8_sse2 LABEL PROC
17030  DB  72,173                              ; lods          %ds:(%rsi),%rax
17031  DB  76,139,8                            ; mov           (%rax),%r9
17032  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17033  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17034  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17035  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17036  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17037  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17038  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17039  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17040  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17041  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17042  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17043  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
17044  DB  65,137,192                          ; mov           %eax,%r8d
17045  DB  72,193,232,32                       ; shr           $0x20,%rax
17046  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
17047  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17048  DB  65,137,202                          ; mov           %ecx,%r10d
17049  DB  72,193,233,32                       ; shr           $0x20,%rcx
17050  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
17051  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
17052  DB  193,225,8                           ; shl           $0x8,%ecx
17053  DB  68,9,209                            ; or            %r10d,%ecx
17054  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
17055  DB  65,15,182,4,1                       ; movzbl        (%r9,%rax,1),%eax
17056  DB  193,224,8                           ; shl           $0x8,%eax
17057  DB  68,9,192                            ; or            %r8d,%eax
17058  DB  102,15,196,192,0                    ; pinsrw        $0x0,%eax,%xmm0
17059  DB  102,15,196,193,1                    ; pinsrw        $0x1,%ecx,%xmm0
17060  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
17061  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
17062  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
17063  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17064  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17065  DB  102,15,110,216                      ; movd          %eax,%xmm3
17066  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17067  DB  15,89,216                           ; mulps         %xmm0,%xmm3
17068  DB  72,173                              ; lods          %ds:(%rsi),%rax
17069  DB  15,87,192                           ; xorps         %xmm0,%xmm0
17070  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
17071  DB  102,15,239,210                      ; pxor          %xmm2,%xmm2
17072  DB  255,224                             ; jmpq          *%rax
17073
17074PUBLIC _sk_store_a8_sse2
17075_sk_store_a8_sse2 LABEL PROC
17076  DB  72,173                              ; lods          %ds:(%rsi),%rax
17077  DB  72,139,0                            ; mov           (%rax),%rax
17078  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
17079  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17080  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17081  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
17082  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17083  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
17084  DB  102,65,15,114,224,16                ; psrad         $0x10,%xmm8
17085  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17086  DB  102,69,15,103,192                   ; packuswb      %xmm8,%xmm8
17087  DB  102,68,15,126,4,56                  ; movd          %xmm8,(%rax,%rdi,1)
17088  DB  72,173                              ; lods          %ds:(%rsi),%rax
17089  DB  255,224                             ; jmpq          *%rax
17090
17091PUBLIC _sk_load_g8_sse2
17092_sk_load_g8_sse2 LABEL PROC
17093  DB  72,173                              ; lods          %ds:(%rsi),%rax
17094  DB  72,139,0                            ; mov           (%rax),%rax
17095  DB  102,15,110,4,56                     ; movd          (%rax,%rdi,1),%xmm0
17096  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
17097  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
17098  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
17099  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17100  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17101  DB  102,15,110,192                      ; movd          %eax,%xmm0
17102  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17103  DB  15,89,193                           ; mulps         %xmm1,%xmm0
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  15,40,200                           ; movaps        %xmm0,%xmm1
17109  DB  15,40,208                           ; movaps        %xmm0,%xmm2
17110  DB  255,224                             ; jmpq          *%rax
17111
17112PUBLIC _sk_gather_g8_sse2
17113_sk_gather_g8_sse2 LABEL PROC
17114  DB  72,173                              ; lods          %ds:(%rsi),%rax
17115  DB  76,139,8                            ; mov           (%rax),%r9
17116  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17117  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17118  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17119  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17120  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17121  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17122  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17123  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17124  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17125  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17126  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17127  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
17128  DB  65,137,192                          ; mov           %eax,%r8d
17129  DB  72,193,232,32                       ; shr           $0x20,%rax
17130  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
17131  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17132  DB  65,137,202                          ; mov           %ecx,%r10d
17133  DB  72,193,233,32                       ; shr           $0x20,%rcx
17134  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
17135  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
17136  DB  193,225,8                           ; shl           $0x8,%ecx
17137  DB  68,9,209                            ; or            %r10d,%ecx
17138  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
17139  DB  65,15,182,4,1                       ; movzbl        (%r9,%rax,1),%eax
17140  DB  193,224,8                           ; shl           $0x8,%eax
17141  DB  68,9,192                            ; or            %r8d,%eax
17142  DB  102,15,196,192,0                    ; pinsrw        $0x0,%eax,%xmm0
17143  DB  102,15,196,193,1                    ; pinsrw        $0x1,%ecx,%xmm0
17144  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
17145  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
17146  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
17147  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17148  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17149  DB  102,15,110,192                      ; movd          %eax,%xmm0
17150  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17151  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17152  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17153  DB  102,15,110,216                      ; movd          %eax,%xmm3
17154  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17155  DB  72,173                              ; lods          %ds:(%rsi),%rax
17156  DB  15,40,200                           ; movaps        %xmm0,%xmm1
17157  DB  15,40,208                           ; movaps        %xmm0,%xmm2
17158  DB  255,224                             ; jmpq          *%rax
17159
17160PUBLIC _sk_gather_i8_sse2
17161_sk_gather_i8_sse2 LABEL PROC
17162  DB  72,173                              ; lods          %ds:(%rsi),%rax
17163  DB  73,137,192                          ; mov           %rax,%r8
17164  DB  77,133,192                          ; test          %r8,%r8
17165  DB  116,5                               ; je            27bd <_sk_gather_i8_sse2+0xf>
17166  DB  76,137,192                          ; mov           %r8,%rax
17167  DB  235,2                               ; jmp           27bf <_sk_gather_i8_sse2+0x11>
17168  DB  72,173                              ; lods          %ds:(%rsi),%rax
17169  DB  76,139,16                           ; mov           (%rax),%r10
17170  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17171  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17172  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17173  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17174  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17175  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17176  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17177  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17178  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17179  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17180  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17181  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
17182  DB  65,137,193                          ; mov           %eax,%r9d
17183  DB  72,193,232,32                       ; shr           $0x20,%rax
17184  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
17185  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17186  DB  65,137,203                          ; mov           %ecx,%r11d
17187  DB  72,193,233,32                       ; shr           $0x20,%rcx
17188  DB  71,15,182,28,26                     ; movzbl        (%r10,%r11,1),%r11d
17189  DB  65,15,182,12,10                     ; movzbl        (%r10,%rcx,1),%ecx
17190  DB  193,225,8                           ; shl           $0x8,%ecx
17191  DB  68,9,217                            ; or            %r11d,%ecx
17192  DB  71,15,182,12,10                     ; movzbl        (%r10,%r9,1),%r9d
17193  DB  65,15,182,4,2                       ; movzbl        (%r10,%rax,1),%eax
17194  DB  193,224,8                           ; shl           $0x8,%eax
17195  DB  68,9,200                            ; or            %r9d,%eax
17196  DB  102,15,196,192,0                    ; pinsrw        $0x0,%eax,%xmm0
17197  DB  102,15,196,193,1                    ; pinsrw        $0x1,%ecx,%xmm0
17198  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
17199  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
17200  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
17201  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17202  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17203  DB  68,15,182,200                       ; movzbl        %al,%r9d
17204  DB  72,193,232,32                       ; shr           $0x20,%rax
17205  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17206  DB  77,139,64,8                         ; mov           0x8(%r8),%r8
17207  DB  68,15,182,209                       ; movzbl        %cl,%r10d
17208  DB  72,193,233,30                       ; shr           $0x1e,%rcx
17209  DB  102,65,15,110,4,8                   ; movd          (%r8,%rcx,1),%xmm0
17210  DB  102,65,15,110,12,128                ; movd          (%r8,%rax,4),%xmm1
17211  DB  102,15,98,193                       ; punpckldq     %xmm1,%xmm0
17212  DB  102,67,15,110,28,144                ; movd          (%r8,%r10,4),%xmm3
17213  DB  102,67,15,110,12,136                ; movd          (%r8,%r9,4),%xmm1
17214  DB  102,15,98,217                       ; punpckldq     %xmm1,%xmm3
17215  DB  102,15,98,216                       ; punpckldq     %xmm0,%xmm3
17216  DB  184,255,0,0,0                       ; mov           $0xff,%eax
17217  DB  102,15,110,192                      ; movd          %eax,%xmm0
17218  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17219  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17220  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
17221  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
17222  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17223  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
17224  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
17225  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
17226  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17227  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17228  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17229  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17230  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17231  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
17232  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17233  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17234  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17235  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
17236  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17237  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17238  DB  72,173                              ; lods          %ds:(%rsi),%rax
17239  DB  255,224                             ; jmpq          *%rax
17240
17241PUBLIC _sk_load_565_sse2
17242_sk_load_565_sse2 LABEL PROC
17243  DB  72,173                              ; lods          %ds:(%rsi),%rax
17244  DB  72,139,0                            ; mov           (%rax),%rax
17245  DB  243,15,126,20,120                   ; movq          (%rax,%rdi,2),%xmm2
17246  DB  102,15,239,192                      ; pxor          %xmm0,%xmm0
17247  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
17248  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
17249  DB  102,15,110,192                      ; movd          %eax,%xmm0
17250  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17251  DB  102,15,219,194                      ; pand          %xmm2,%xmm0
17252  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17253  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
17254  DB  102,15,110,192                      ; movd          %eax,%xmm0
17255  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17256  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17257  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
17258  DB  102,15,110,200                      ; movd          %eax,%xmm1
17259  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
17260  DB  102,15,219,202                      ; pand          %xmm2,%xmm1
17261  DB  15,91,217                           ; cvtdq2ps      %xmm1,%xmm3
17262  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
17263  DB  102,15,110,200                      ; movd          %eax,%xmm1
17264  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
17265  DB  15,89,203                           ; mulps         %xmm3,%xmm1
17266  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
17267  DB  102,15,110,216                      ; movd          %eax,%xmm3
17268  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
17269  DB  102,15,219,218                      ; pand          %xmm2,%xmm3
17270  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17271  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
17272  DB  102,15,110,208                      ; movd          %eax,%xmm2
17273  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17274  DB  15,89,211                           ; mulps         %xmm3,%xmm2
17275  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17276  DB  102,15,110,216                      ; movd          %eax,%xmm3
17277  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17278  DB  72,173                              ; lods          %ds:(%rsi),%rax
17279  DB  255,224                             ; jmpq          *%rax
17280
17281PUBLIC _sk_gather_565_sse2
17282_sk_gather_565_sse2 LABEL PROC
17283  DB  72,173                              ; lods          %ds:(%rsi),%rax
17284  DB  76,139,8                            ; mov           (%rax),%r9
17285  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17286  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17287  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17288  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17289  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17290  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17291  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17292  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17293  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17294  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17295  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17296  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17297  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17298  DB  65,137,192                          ; mov           %eax,%r8d
17299  DB  72,193,232,32                       ; shr           $0x20,%rax
17300  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17301  DB  65,137,202                          ; mov           %ecx,%r10d
17302  DB  72,193,233,32                       ; shr           $0x20,%rcx
17303  DB  102,67,15,196,20,81,0               ; pinsrw        $0x0,(%r9,%r10,2),%xmm2
17304  DB  102,65,15,196,20,73,1               ; pinsrw        $0x1,(%r9,%rcx,2),%xmm2
17305  DB  67,15,183,12,65                     ; movzwl        (%r9,%r8,2),%ecx
17306  DB  102,15,196,209,2                    ; pinsrw        $0x2,%ecx,%xmm2
17307  DB  65,15,183,4,65                      ; movzwl        (%r9,%rax,2),%eax
17308  DB  102,15,196,208,3                    ; pinsrw        $0x3,%eax,%xmm2
17309  DB  102,15,239,192                      ; pxor          %xmm0,%xmm0
17310  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
17311  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
17312  DB  102,15,110,192                      ; movd          %eax,%xmm0
17313  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17314  DB  102,15,219,194                      ; pand          %xmm2,%xmm0
17315  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17316  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
17317  DB  102,15,110,192                      ; movd          %eax,%xmm0
17318  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17319  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17320  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
17321  DB  102,15,110,200                      ; movd          %eax,%xmm1
17322  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
17323  DB  102,15,219,202                      ; pand          %xmm2,%xmm1
17324  DB  15,91,217                           ; cvtdq2ps      %xmm1,%xmm3
17325  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
17326  DB  102,15,110,200                      ; movd          %eax,%xmm1
17327  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
17328  DB  15,89,203                           ; mulps         %xmm3,%xmm1
17329  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
17330  DB  102,15,110,216                      ; movd          %eax,%xmm3
17331  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
17332  DB  102,15,219,218                      ; pand          %xmm2,%xmm3
17333  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17334  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
17335  DB  102,15,110,208                      ; movd          %eax,%xmm2
17336  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17337  DB  15,89,211                           ; mulps         %xmm3,%xmm2
17338  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17339  DB  102,15,110,216                      ; movd          %eax,%xmm3
17340  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17341  DB  72,173                              ; lods          %ds:(%rsi),%rax
17342  DB  255,224                             ; jmpq          *%rax
17343
17344PUBLIC _sk_store_565_sse2
17345_sk_store_565_sse2 LABEL PROC
17346  DB  72,173                              ; lods          %ds:(%rsi),%rax
17347  DB  72,139,0                            ; mov           (%rax),%rax
17348  DB  185,0,0,248,65                      ; mov           $0x41f80000,%ecx
17349  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17350  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17351  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17352  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
17353  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17354  DB  102,65,15,114,241,11                ; pslld         $0xb,%xmm9
17355  DB  185,0,0,124,66                      ; mov           $0x427c0000,%ecx
17356  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
17357  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
17358  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
17359  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
17360  DB  102,65,15,114,242,5                 ; pslld         $0x5,%xmm10
17361  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
17362  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
17363  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17364  DB  102,69,15,86,194                    ; orpd          %xmm10,%xmm8
17365  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
17366  DB  102,65,15,114,224,16                ; psrad         $0x10,%xmm8
17367  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17368  DB  102,68,15,214,4,120                 ; movq          %xmm8,(%rax,%rdi,2)
17369  DB  72,173                              ; lods          %ds:(%rsi),%rax
17370  DB  255,224                             ; jmpq          *%rax
17371
17372PUBLIC _sk_load_4444_sse2
17373_sk_load_4444_sse2 LABEL PROC
17374  DB  72,173                              ; lods          %ds:(%rsi),%rax
17375  DB  72,139,0                            ; mov           (%rax),%rax
17376  DB  243,68,15,126,12,120                ; movq          (%rax,%rdi,2),%xmm9
17377  DB  102,15,239,192                      ; pxor          %xmm0,%xmm0
17378  DB  102,68,15,97,200                    ; punpcklwd     %xmm0,%xmm9
17379  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
17380  DB  102,15,110,192                      ; movd          %eax,%xmm0
17381  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17382  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
17383  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17384  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
17385  DB  102,15,110,192                      ; movd          %eax,%xmm0
17386  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17387  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17388  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
17389  DB  102,15,110,200                      ; movd          %eax,%xmm1
17390  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
17391  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
17392  DB  15,91,209                           ; cvtdq2ps      %xmm1,%xmm2
17393  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
17394  DB  102,15,110,200                      ; movd          %eax,%xmm1
17395  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
17396  DB  15,89,202                           ; mulps         %xmm2,%xmm1
17397  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
17398  DB  102,15,110,208                      ; movd          %eax,%xmm2
17399  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17400  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
17401  DB  68,15,91,194                        ; cvtdq2ps      %xmm2,%xmm8
17402  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
17403  DB  102,15,110,208                      ; movd          %eax,%xmm2
17404  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17405  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17406  DB  184,15,0,0,0                        ; mov           $0xf,%eax
17407  DB  102,15,110,216                      ; movd          %eax,%xmm3
17408  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
17409  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
17410  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
17411  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
17412  DB  102,15,110,216                      ; movd          %eax,%xmm3
17413  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17414  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17415  DB  72,173                              ; lods          %ds:(%rsi),%rax
17416  DB  255,224                             ; jmpq          *%rax
17417
17418PUBLIC _sk_gather_4444_sse2
17419_sk_gather_4444_sse2 LABEL PROC
17420  DB  72,173                              ; lods          %ds:(%rsi),%rax
17421  DB  76,139,8                            ; mov           (%rax),%r9
17422  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17423  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17424  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17425  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17426  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17427  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17428  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17429  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17430  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17431  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17432  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17433  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17434  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17435  DB  65,137,192                          ; mov           %eax,%r8d
17436  DB  72,193,232,32                       ; shr           $0x20,%rax
17437  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17438  DB  65,137,202                          ; mov           %ecx,%r10d
17439  DB  72,193,233,32                       ; shr           $0x20,%rcx
17440  DB  102,71,15,196,12,81,0               ; pinsrw        $0x0,(%r9,%r10,2),%xmm9
17441  DB  102,69,15,196,12,73,1               ; pinsrw        $0x1,(%r9,%rcx,2),%xmm9
17442  DB  67,15,183,12,65                     ; movzwl        (%r9,%r8,2),%ecx
17443  DB  102,68,15,196,201,2                 ; pinsrw        $0x2,%ecx,%xmm9
17444  DB  65,15,183,4,65                      ; movzwl        (%r9,%rax,2),%eax
17445  DB  102,68,15,196,200,3                 ; pinsrw        $0x3,%eax,%xmm9
17446  DB  102,15,239,192                      ; pxor          %xmm0,%xmm0
17447  DB  102,68,15,97,200                    ; punpcklwd     %xmm0,%xmm9
17448  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
17449  DB  102,15,110,192                      ; movd          %eax,%xmm0
17450  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17451  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
17452  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17453  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
17454  DB  102,15,110,192                      ; movd          %eax,%xmm0
17455  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17456  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17457  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
17458  DB  102,15,110,200                      ; movd          %eax,%xmm1
17459  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
17460  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
17461  DB  15,91,209                           ; cvtdq2ps      %xmm1,%xmm2
17462  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
17463  DB  102,15,110,200                      ; movd          %eax,%xmm1
17464  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
17465  DB  15,89,202                           ; mulps         %xmm2,%xmm1
17466  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
17467  DB  102,15,110,208                      ; movd          %eax,%xmm2
17468  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17469  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
17470  DB  68,15,91,194                        ; cvtdq2ps      %xmm2,%xmm8
17471  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
17472  DB  102,15,110,208                      ; movd          %eax,%xmm2
17473  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17474  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17475  DB  184,15,0,0,0                        ; mov           $0xf,%eax
17476  DB  102,15,110,216                      ; movd          %eax,%xmm3
17477  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
17478  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
17479  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
17480  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
17481  DB  102,15,110,216                      ; movd          %eax,%xmm3
17482  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17483  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17484  DB  72,173                              ; lods          %ds:(%rsi),%rax
17485  DB  255,224                             ; jmpq          *%rax
17486
17487PUBLIC _sk_store_4444_sse2
17488_sk_store_4444_sse2 LABEL PROC
17489  DB  72,173                              ; lods          %ds:(%rsi),%rax
17490  DB  72,139,0                            ; mov           (%rax),%rax
17491  DB  185,0,0,112,65                      ; mov           $0x41700000,%ecx
17492  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17493  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17494  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17495  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
17496  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17497  DB  102,65,15,114,241,12                ; pslld         $0xc,%xmm9
17498  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
17499  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
17500  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
17501  DB  102,65,15,114,242,8                 ; pslld         $0x8,%xmm10
17502  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
17503  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17504  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
17505  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17506  DB  102,65,15,114,241,4                 ; pslld         $0x4,%xmm9
17507  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
17508  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17509  DB  102,69,15,86,193                    ; orpd          %xmm9,%xmm8
17510  DB  102,69,15,86,194                    ; orpd          %xmm10,%xmm8
17511  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
17512  DB  102,65,15,114,224,16                ; psrad         $0x10,%xmm8
17513  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17514  DB  102,68,15,214,4,120                 ; movq          %xmm8,(%rax,%rdi,2)
17515  DB  72,173                              ; lods          %ds:(%rsi),%rax
17516  DB  255,224                             ; jmpq          *%rax
17517
17518PUBLIC _sk_load_8888_sse2
17519_sk_load_8888_sse2 LABEL PROC
17520  DB  72,173                              ; lods          %ds:(%rsi),%rax
17521  DB  72,139,0                            ; mov           (%rax),%rax
17522  DB  243,15,111,28,184                   ; movdqu        (%rax,%rdi,4),%xmm3
17523  DB  184,255,0,0,0                       ; mov           $0xff,%eax
17524  DB  102,15,110,192                      ; movd          %eax,%xmm0
17525  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17526  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17527  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
17528  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
17529  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17530  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
17531  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
17532  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
17533  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17534  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17535  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17536  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17537  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17538  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
17539  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17540  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17541  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17542  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
17543  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17544  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17545  DB  72,173                              ; lods          %ds:(%rsi),%rax
17546  DB  255,224                             ; jmpq          *%rax
17547
17548PUBLIC _sk_gather_8888_sse2
17549_sk_gather_8888_sse2 LABEL PROC
17550  DB  72,173                              ; lods          %ds:(%rsi),%rax
17551  DB  76,139,8                            ; mov           (%rax),%r9
17552  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17553  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17554  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17555  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17556  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17557  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17558  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17559  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17560  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17561  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17562  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17563  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17564  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17565  DB  65,137,192                          ; mov           %eax,%r8d
17566  DB  72,193,232,32                       ; shr           $0x20,%rax
17567  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17568  DB  65,137,202                          ; mov           %ecx,%r10d
17569  DB  72,193,233,32                       ; shr           $0x20,%rcx
17570  DB  102,65,15,110,4,137                 ; movd          (%r9,%rcx,4),%xmm0
17571  DB  102,65,15,110,12,129                ; movd          (%r9,%rax,4),%xmm1
17572  DB  102,15,98,193                       ; punpckldq     %xmm1,%xmm0
17573  DB  102,67,15,110,28,145                ; movd          (%r9,%r10,4),%xmm3
17574  DB  102,67,15,110,12,129                ; movd          (%r9,%r8,4),%xmm1
17575  DB  102,15,98,217                       ; punpckldq     %xmm1,%xmm3
17576  DB  102,15,98,216                       ; punpckldq     %xmm0,%xmm3
17577  DB  184,255,0,0,0                       ; mov           $0xff,%eax
17578  DB  102,15,110,192                      ; movd          %eax,%xmm0
17579  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17580  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17581  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
17582  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
17583  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17584  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
17585  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
17586  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
17587  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17588  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17589  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17590  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17591  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17592  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
17593  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17594  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17595  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17596  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
17597  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17598  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17599  DB  72,173                              ; lods          %ds:(%rsi),%rax
17600  DB  255,224                             ; jmpq          *%rax
17601
17602PUBLIC _sk_store_8888_sse2
17603_sk_store_8888_sse2 LABEL PROC
17604  DB  72,173                              ; lods          %ds:(%rsi),%rax
17605  DB  72,139,0                            ; mov           (%rax),%rax
17606  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
17607  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17608  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17609  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17610  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
17611  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17612  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
17613  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
17614  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
17615  DB  102,65,15,114,242,8                 ; pslld         $0x8,%xmm10
17616  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
17617  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17618  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
17619  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17620  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
17621  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
17622  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17623  DB  102,65,15,114,240,24                ; pslld         $0x18,%xmm8
17624  DB  102,69,15,235,193                   ; por           %xmm9,%xmm8
17625  DB  102,69,15,235,194                   ; por           %xmm10,%xmm8
17626  DB  243,68,15,127,4,184                 ; movdqu        %xmm8,(%rax,%rdi,4)
17627  DB  72,173                              ; lods          %ds:(%rsi),%rax
17628  DB  255,224                             ; jmpq          *%rax
17629
17630PUBLIC _sk_load_f16_sse2
17631_sk_load_f16_sse2 LABEL PROC
17632  DB  72,173                              ; lods          %ds:(%rsi),%rax
17633  DB  72,139,0                            ; mov           (%rax),%rax
17634  DB  243,15,111,4,248                    ; movdqu        (%rax,%rdi,8),%xmm0
17635  DB  243,15,111,76,248,16                ; movdqu        0x10(%rax,%rdi,8),%xmm1
17636  DB  102,68,15,111,192                   ; movdqa        %xmm0,%xmm8
17637  DB  102,68,15,97,193                    ; punpcklwd     %xmm1,%xmm8
17638  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
17639  DB  102,69,15,111,240                   ; movdqa        %xmm8,%xmm14
17640  DB  102,68,15,97,240                    ; punpcklwd     %xmm0,%xmm14
17641  DB  102,68,15,105,192                   ; punpckhwd     %xmm0,%xmm8
17642  DB  102,69,15,239,210                   ; pxor          %xmm10,%xmm10
17643  DB  102,65,15,111,206                   ; movdqa        %xmm14,%xmm1
17644  DB  102,65,15,97,202                    ; punpcklwd     %xmm10,%xmm1
17645  DB  102,68,15,111,13,232,23,0,0         ; movdqa        0x17e8(%rip),%xmm9        # 4720 <_sk_callback_sse2+0x40b>
17646  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
17647  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
17648  DB  102,15,239,200                      ; pxor          %xmm0,%xmm1
17649  DB  102,15,114,240,16                   ; pslld         $0x10,%xmm0
17650  DB  102,68,15,111,233                   ; movdqa        %xmm1,%xmm13
17651  DB  102,65,15,114,245,13                ; pslld         $0xd,%xmm13
17652  DB  102,68,15,235,232                   ; por           %xmm0,%xmm13
17653  DB  102,68,15,111,29,205,23,0,0         ; movdqa        0x17cd(%rip),%xmm11        # 4730 <_sk_callback_sse2+0x41b>
17654  DB  102,69,15,254,235                   ; paddd         %xmm11,%xmm13
17655  DB  102,68,15,111,37,207,23,0,0         ; movdqa        0x17cf(%rip),%xmm12        # 4740 <_sk_callback_sse2+0x42b>
17656  DB  102,65,15,239,204                   ; pxor          %xmm12,%xmm1
17657  DB  102,15,111,29,210,23,0,0            ; movdqa        0x17d2(%rip),%xmm3        # 4750 <_sk_callback_sse2+0x43b>
17658  DB  102,15,111,195                      ; movdqa        %xmm3,%xmm0
17659  DB  102,15,102,193                      ; pcmpgtd       %xmm1,%xmm0
17660  DB  102,65,15,223,197                   ; pandn         %xmm13,%xmm0
17661  DB  102,65,15,115,222,8                 ; psrldq        $0x8,%xmm14
17662  DB  102,69,15,97,242                    ; punpcklwd     %xmm10,%xmm14
17663  DB  102,65,15,111,206                   ; movdqa        %xmm14,%xmm1
17664  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
17665  DB  102,68,15,239,241                   ; pxor          %xmm1,%xmm14
17666  DB  102,15,114,241,16                   ; pslld         $0x10,%xmm1
17667  DB  102,65,15,111,214                   ; movdqa        %xmm14,%xmm2
17668  DB  102,15,114,242,13                   ; pslld         $0xd,%xmm2
17669  DB  102,15,235,209                      ; por           %xmm1,%xmm2
17670  DB  102,65,15,254,211                   ; paddd         %xmm11,%xmm2
17671  DB  102,69,15,239,244                   ; pxor          %xmm12,%xmm14
17672  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17673  DB  102,65,15,102,206                   ; pcmpgtd       %xmm14,%xmm1
17674  DB  102,15,223,202                      ; pandn         %xmm2,%xmm1
17675  DB  102,69,15,111,232                   ; movdqa        %xmm8,%xmm13
17676  DB  102,69,15,97,234                    ; punpcklwd     %xmm10,%xmm13
17677  DB  102,65,15,111,213                   ; movdqa        %xmm13,%xmm2
17678  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
17679  DB  102,68,15,239,234                   ; pxor          %xmm2,%xmm13
17680  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
17681  DB  102,69,15,111,245                   ; movdqa        %xmm13,%xmm14
17682  DB  102,65,15,114,246,13                ; pslld         $0xd,%xmm14
17683  DB  102,68,15,235,242                   ; por           %xmm2,%xmm14
17684  DB  102,69,15,254,243                   ; paddd         %xmm11,%xmm14
17685  DB  102,69,15,239,236                   ; pxor          %xmm12,%xmm13
17686  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17687  DB  102,65,15,102,213                   ; pcmpgtd       %xmm13,%xmm2
17688  DB  102,65,15,223,214                   ; pandn         %xmm14,%xmm2
17689  DB  102,65,15,115,216,8                 ; psrldq        $0x8,%xmm8
17690  DB  102,69,15,97,194                    ; punpcklwd     %xmm10,%xmm8
17691  DB  102,69,15,219,200                   ; pand          %xmm8,%xmm9
17692  DB  102,69,15,239,193                   ; pxor          %xmm9,%xmm8
17693  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
17694  DB  102,69,15,111,208                   ; movdqa        %xmm8,%xmm10
17695  DB  102,65,15,114,242,13                ; pslld         $0xd,%xmm10
17696  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
17697  DB  102,69,15,254,211                   ; paddd         %xmm11,%xmm10
17698  DB  102,69,15,239,196                   ; pxor          %xmm12,%xmm8
17699  DB  102,65,15,102,216                   ; pcmpgtd       %xmm8,%xmm3
17700  DB  102,65,15,223,218                   ; pandn         %xmm10,%xmm3
17701  DB  72,173                              ; lods          %ds:(%rsi),%rax
17702  DB  255,224                             ; jmpq          *%rax
17703
17704PUBLIC _sk_gather_f16_sse2
17705_sk_gather_f16_sse2 LABEL PROC
17706  DB  72,173                              ; lods          %ds:(%rsi),%rax
17707  DB  76,139,8                            ; mov           (%rax),%r9
17708  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17709  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17710  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17711  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17712  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17713  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17714  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17715  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17716  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17717  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17718  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17719  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17720  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17721  DB  65,137,192                          ; mov           %eax,%r8d
17722  DB  72,193,232,32                       ; shr           $0x20,%rax
17723  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17724  DB  65,137,202                          ; mov           %ecx,%r10d
17725  DB  72,193,233,32                       ; shr           $0x20,%rcx
17726  DB  243,65,15,126,4,201                 ; movq          (%r9,%rcx,8),%xmm0
17727  DB  243,67,15,126,12,209                ; movq          (%r9,%r10,8),%xmm1
17728  DB  102,15,108,200                      ; punpcklqdq    %xmm0,%xmm1
17729  DB  243,65,15,126,4,193                 ; movq          (%r9,%rax,8),%xmm0
17730  DB  243,67,15,126,20,193                ; movq          (%r9,%r8,8),%xmm2
17731  DB  102,15,108,208                      ; punpcklqdq    %xmm0,%xmm2
17732  DB  102,68,15,111,193                   ; movdqa        %xmm1,%xmm8
17733  DB  102,68,15,97,194                    ; punpcklwd     %xmm2,%xmm8
17734  DB  102,15,105,202                      ; punpckhwd     %xmm2,%xmm1
17735  DB  102,69,15,111,240                   ; movdqa        %xmm8,%xmm14
17736  DB  102,68,15,97,241                    ; punpcklwd     %xmm1,%xmm14
17737  DB  102,68,15,105,193                   ; punpckhwd     %xmm1,%xmm8
17738  DB  102,69,15,239,210                   ; pxor          %xmm10,%xmm10
17739  DB  102,65,15,111,206                   ; movdqa        %xmm14,%xmm1
17740  DB  102,65,15,97,202                    ; punpcklwd     %xmm10,%xmm1
17741  DB  102,68,15,111,13,96,22,0,0          ; movdqa        0x1660(%rip),%xmm9        # 4760 <_sk_callback_sse2+0x44b>
17742  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
17743  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
17744  DB  102,15,239,200                      ; pxor          %xmm0,%xmm1
17745  DB  102,15,114,240,16                   ; pslld         $0x10,%xmm0
17746  DB  102,68,15,111,233                   ; movdqa        %xmm1,%xmm13
17747  DB  102,65,15,114,245,13                ; pslld         $0xd,%xmm13
17748  DB  102,68,15,235,232                   ; por           %xmm0,%xmm13
17749  DB  102,68,15,111,29,69,22,0,0          ; movdqa        0x1645(%rip),%xmm11        # 4770 <_sk_callback_sse2+0x45b>
17750  DB  102,69,15,254,235                   ; paddd         %xmm11,%xmm13
17751  DB  102,68,15,111,37,71,22,0,0          ; movdqa        0x1647(%rip),%xmm12        # 4780 <_sk_callback_sse2+0x46b>
17752  DB  102,65,15,239,204                   ; pxor          %xmm12,%xmm1
17753  DB  102,15,111,29,74,22,0,0             ; movdqa        0x164a(%rip),%xmm3        # 4790 <_sk_callback_sse2+0x47b>
17754  DB  102,15,111,195                      ; movdqa        %xmm3,%xmm0
17755  DB  102,15,102,193                      ; pcmpgtd       %xmm1,%xmm0
17756  DB  102,65,15,223,197                   ; pandn         %xmm13,%xmm0
17757  DB  102,65,15,115,222,8                 ; psrldq        $0x8,%xmm14
17758  DB  102,69,15,97,242                    ; punpcklwd     %xmm10,%xmm14
17759  DB  102,65,15,111,206                   ; movdqa        %xmm14,%xmm1
17760  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
17761  DB  102,68,15,239,241                   ; pxor          %xmm1,%xmm14
17762  DB  102,15,114,241,16                   ; pslld         $0x10,%xmm1
17763  DB  102,65,15,111,214                   ; movdqa        %xmm14,%xmm2
17764  DB  102,15,114,242,13                   ; pslld         $0xd,%xmm2
17765  DB  102,15,235,209                      ; por           %xmm1,%xmm2
17766  DB  102,65,15,254,211                   ; paddd         %xmm11,%xmm2
17767  DB  102,69,15,239,244                   ; pxor          %xmm12,%xmm14
17768  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17769  DB  102,65,15,102,206                   ; pcmpgtd       %xmm14,%xmm1
17770  DB  102,15,223,202                      ; pandn         %xmm2,%xmm1
17771  DB  102,69,15,111,232                   ; movdqa        %xmm8,%xmm13
17772  DB  102,69,15,97,234                    ; punpcklwd     %xmm10,%xmm13
17773  DB  102,65,15,111,213                   ; movdqa        %xmm13,%xmm2
17774  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
17775  DB  102,68,15,239,234                   ; pxor          %xmm2,%xmm13
17776  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
17777  DB  102,69,15,111,245                   ; movdqa        %xmm13,%xmm14
17778  DB  102,65,15,114,246,13                ; pslld         $0xd,%xmm14
17779  DB  102,68,15,235,242                   ; por           %xmm2,%xmm14
17780  DB  102,69,15,254,243                   ; paddd         %xmm11,%xmm14
17781  DB  102,69,15,239,236                   ; pxor          %xmm12,%xmm13
17782  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17783  DB  102,65,15,102,213                   ; pcmpgtd       %xmm13,%xmm2
17784  DB  102,65,15,223,214                   ; pandn         %xmm14,%xmm2
17785  DB  102,65,15,115,216,8                 ; psrldq        $0x8,%xmm8
17786  DB  102,69,15,97,194                    ; punpcklwd     %xmm10,%xmm8
17787  DB  102,69,15,219,200                   ; pand          %xmm8,%xmm9
17788  DB  102,69,15,239,193                   ; pxor          %xmm9,%xmm8
17789  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
17790  DB  102,69,15,111,208                   ; movdqa        %xmm8,%xmm10
17791  DB  102,65,15,114,242,13                ; pslld         $0xd,%xmm10
17792  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
17793  DB  102,69,15,254,211                   ; paddd         %xmm11,%xmm10
17794  DB  102,69,15,239,196                   ; pxor          %xmm12,%xmm8
17795  DB  102,65,15,102,216                   ; pcmpgtd       %xmm8,%xmm3
17796  DB  102,65,15,223,218                   ; pandn         %xmm10,%xmm3
17797  DB  72,173                              ; lods          %ds:(%rsi),%rax
17798  DB  255,224                             ; jmpq          *%rax
17799
17800PUBLIC _sk_store_f16_sse2
17801_sk_store_f16_sse2 LABEL PROC
17802  DB  72,173                              ; lods          %ds:(%rsi),%rax
17803  DB  72,139,0                            ; mov           (%rax),%rax
17804  DB  102,68,15,111,21,114,21,0,0         ; movdqa        0x1572(%rip),%xmm10        # 47a0 <_sk_callback_sse2+0x48b>
17805  DB  102,68,15,111,224                   ; movdqa        %xmm0,%xmm12
17806  DB  102,68,15,111,232                   ; movdqa        %xmm0,%xmm13
17807  DB  102,69,15,219,234                   ; pand          %xmm10,%xmm13
17808  DB  102,69,15,239,229                   ; pxor          %xmm13,%xmm12
17809  DB  102,68,15,111,13,101,21,0,0         ; movdqa        0x1565(%rip),%xmm9        # 47b0 <_sk_callback_sse2+0x49b>
17810  DB  102,65,15,114,213,16                ; psrld         $0x10,%xmm13
17811  DB  102,69,15,111,193                   ; movdqa        %xmm9,%xmm8
17812  DB  102,69,15,102,196                   ; pcmpgtd       %xmm12,%xmm8
17813  DB  102,65,15,114,212,13                ; psrld         $0xd,%xmm12
17814  DB  102,68,15,111,29,86,21,0,0          ; movdqa        0x1556(%rip),%xmm11        # 47c0 <_sk_callback_sse2+0x4ab>
17815  DB  102,69,15,235,235                   ; por           %xmm11,%xmm13
17816  DB  102,69,15,254,236                   ; paddd         %xmm12,%xmm13
17817  DB  102,65,15,114,245,16                ; pslld         $0x10,%xmm13
17818  DB  102,65,15,114,229,16                ; psrad         $0x10,%xmm13
17819  DB  102,69,15,223,197                   ; pandn         %xmm13,%xmm8
17820  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17821  DB  102,68,15,111,233                   ; movdqa        %xmm1,%xmm13
17822  DB  102,68,15,111,241                   ; movdqa        %xmm1,%xmm14
17823  DB  102,69,15,219,242                   ; pand          %xmm10,%xmm14
17824  DB  102,69,15,239,238                   ; pxor          %xmm14,%xmm13
17825  DB  102,65,15,114,214,16                ; psrld         $0x10,%xmm14
17826  DB  102,69,15,111,225                   ; movdqa        %xmm9,%xmm12
17827  DB  102,69,15,102,229                   ; pcmpgtd       %xmm13,%xmm12
17828  DB  102,65,15,114,213,13                ; psrld         $0xd,%xmm13
17829  DB  102,69,15,235,243                   ; por           %xmm11,%xmm14
17830  DB  102,69,15,254,245                   ; paddd         %xmm13,%xmm14
17831  DB  102,65,15,114,246,16                ; pslld         $0x10,%xmm14
17832  DB  102,65,15,114,230,16                ; psrad         $0x10,%xmm14
17833  DB  102,69,15,223,230                   ; pandn         %xmm14,%xmm12
17834  DB  102,69,15,107,228                   ; packssdw      %xmm12,%xmm12
17835  DB  102,68,15,111,242                   ; movdqa        %xmm2,%xmm14
17836  DB  102,68,15,111,250                   ; movdqa        %xmm2,%xmm15
17837  DB  102,69,15,219,250                   ; pand          %xmm10,%xmm15
17838  DB  102,69,15,239,247                   ; pxor          %xmm15,%xmm14
17839  DB  102,65,15,114,215,16                ; psrld         $0x10,%xmm15
17840  DB  102,69,15,111,233                   ; movdqa        %xmm9,%xmm13
17841  DB  102,69,15,102,238                   ; pcmpgtd       %xmm14,%xmm13
17842  DB  102,65,15,114,214,13                ; psrld         $0xd,%xmm14
17843  DB  102,69,15,235,251                   ; por           %xmm11,%xmm15
17844  DB  102,69,15,254,254                   ; paddd         %xmm14,%xmm15
17845  DB  102,65,15,114,247,16                ; pslld         $0x10,%xmm15
17846  DB  102,65,15,114,231,16                ; psrad         $0x10,%xmm15
17847  DB  102,69,15,223,239                   ; pandn         %xmm15,%xmm13
17848  DB  102,69,15,107,237                   ; packssdw      %xmm13,%xmm13
17849  DB  102,68,15,219,211                   ; pand          %xmm3,%xmm10
17850  DB  102,68,15,111,243                   ; movdqa        %xmm3,%xmm14
17851  DB  102,69,15,239,242                   ; pxor          %xmm10,%xmm14
17852  DB  102,65,15,114,210,16                ; psrld         $0x10,%xmm10
17853  DB  102,69,15,102,206                   ; pcmpgtd       %xmm14,%xmm9
17854  DB  102,65,15,114,214,13                ; psrld         $0xd,%xmm14
17855  DB  102,69,15,235,211                   ; por           %xmm11,%xmm10
17856  DB  102,69,15,254,214                   ; paddd         %xmm14,%xmm10
17857  DB  102,65,15,114,242,16                ; pslld         $0x10,%xmm10
17858  DB  102,65,15,114,226,16                ; psrad         $0x10,%xmm10
17859  DB  102,69,15,223,202                   ; pandn         %xmm10,%xmm9
17860  DB  102,69,15,107,201                   ; packssdw      %xmm9,%xmm9
17861  DB  102,69,15,97,196                    ; punpcklwd     %xmm12,%xmm8
17862  DB  102,69,15,97,233                    ; punpcklwd     %xmm9,%xmm13
17863  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
17864  DB  102,69,15,98,205                    ; punpckldq     %xmm13,%xmm9
17865  DB  243,68,15,127,12,248                ; movdqu        %xmm9,(%rax,%rdi,8)
17866  DB  102,69,15,106,197                   ; punpckhdq     %xmm13,%xmm8
17867  DB  243,68,15,127,68,248,16             ; movdqu        %xmm8,0x10(%rax,%rdi,8)
17868  DB  72,173                              ; lods          %ds:(%rsi),%rax
17869  DB  255,224                             ; jmpq          *%rax
17870
17871PUBLIC _sk_load_u16_be_sse2
17872_sk_load_u16_be_sse2 LABEL PROC
17873  DB  72,173                              ; lods          %ds:(%rsi),%rax
17874  DB  72,139,0                            ; mov           (%rax),%rax
17875  DB  243,15,111,4,248                    ; movdqu        (%rax,%rdi,8),%xmm0
17876  DB  243,15,111,76,248,16                ; movdqu        0x10(%rax,%rdi,8),%xmm1
17877  DB  102,15,111,208                      ; movdqa        %xmm0,%xmm2
17878  DB  102,15,97,209                       ; punpcklwd     %xmm1,%xmm2
17879  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
17880  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
17881  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
17882  DB  102,15,105,208                      ; punpckhwd     %xmm0,%xmm2
17883  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
17884  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17885  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17886  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
17887  DB  102,15,113,240,8                    ; psllw         $0x8,%xmm0
17888  DB  102,15,112,217,78                   ; pshufd        $0x4e,%xmm1,%xmm3
17889  DB  102,15,113,209,8                    ; psrlw         $0x8,%xmm1
17890  DB  102,15,235,200                      ; por           %xmm0,%xmm1
17891  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
17892  DB  102,65,15,97,201                    ; punpcklwd     %xmm9,%xmm1
17893  DB  15,91,193                           ; cvtdq2ps      %xmm1,%xmm0
17894  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17895  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17896  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
17897  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
17898  DB  102,15,235,217                      ; por           %xmm1,%xmm3
17899  DB  102,65,15,97,217                    ; punpcklwd     %xmm9,%xmm3
17900  DB  15,91,203                           ; cvtdq2ps      %xmm3,%xmm1
17901  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17902  DB  102,68,15,111,210                   ; movdqa        %xmm2,%xmm10
17903  DB  102,65,15,113,242,8                 ; psllw         $0x8,%xmm10
17904  DB  102,15,112,218,78                   ; pshufd        $0x4e,%xmm2,%xmm3
17905  DB  102,15,113,210,8                    ; psrlw         $0x8,%xmm2
17906  DB  102,65,15,235,210                   ; por           %xmm10,%xmm2
17907  DB  102,65,15,97,209                    ; punpcklwd     %xmm9,%xmm2
17908  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17909  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17910  DB  102,68,15,111,211                   ; movdqa        %xmm3,%xmm10
17911  DB  102,65,15,113,242,8                 ; psllw         $0x8,%xmm10
17912  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
17913  DB  102,65,15,235,218                   ; por           %xmm10,%xmm3
17914  DB  102,65,15,97,217                    ; punpcklwd     %xmm9,%xmm3
17915  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17916  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17917  DB  72,173                              ; lods          %ds:(%rsi),%rax
17918  DB  255,224                             ; jmpq          *%rax
17919
17920PUBLIC _sk_load_rgb_u16_be_sse2
17921_sk_load_rgb_u16_be_sse2 LABEL PROC
17922  DB  72,173                              ; lods          %ds:(%rsi),%rax
17923  DB  72,139,0                            ; mov           (%rax),%rax
17924  DB  72,141,12,127                       ; lea           (%rdi,%rdi,2),%rcx
17925  DB  243,15,111,20,72                    ; movdqu        (%rax,%rcx,2),%xmm2
17926  DB  243,15,111,68,72,8                  ; movdqu        0x8(%rax,%rcx,2),%xmm0
17927  DB  102,15,115,216,4                    ; psrldq        $0x4,%xmm0
17928  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
17929  DB  102,15,115,217,6                    ; psrldq        $0x6,%xmm1
17930  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
17931  DB  102,15,115,216,6                    ; psrldq        $0x6,%xmm0
17932  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
17933  DB  102,15,111,194                      ; movdqa        %xmm2,%xmm0
17934  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
17935  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
17936  DB  102,15,105,209                      ; punpckhwd     %xmm1,%xmm2
17937  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
17938  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17939  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17940  DB  102,15,111,200                      ; movdqa        %xmm0,%xmm1
17941  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
17942  DB  102,15,113,208,8                    ; psrlw         $0x8,%xmm0
17943  DB  102,15,235,193                      ; por           %xmm1,%xmm0
17944  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
17945  DB  102,65,15,97,193                    ; punpcklwd     %xmm9,%xmm0
17946  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17947  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17948  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17949  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
17950  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
17951  DB  102,15,235,217                      ; por           %xmm1,%xmm3
17952  DB  102,65,15,97,217                    ; punpcklwd     %xmm9,%xmm3
17953  DB  15,91,203                           ; cvtdq2ps      %xmm3,%xmm1
17954  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17955  DB  102,15,111,218                      ; movdqa        %xmm2,%xmm3
17956  DB  102,15,113,243,8                    ; psllw         $0x8,%xmm3
17957  DB  102,15,113,210,8                    ; psrlw         $0x8,%xmm2
17958  DB  102,15,235,211                      ; por           %xmm3,%xmm2
17959  DB  102,65,15,97,209                    ; punpcklwd     %xmm9,%xmm2
17960  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17961  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17962  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17963  DB  102,15,110,216                      ; movd          %eax,%xmm3
17964  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17965  DB  72,173                              ; lods          %ds:(%rsi),%rax
17966  DB  255,224                             ; jmpq          *%rax
17967
17968PUBLIC _sk_store_u16_be_sse2
17969_sk_store_u16_be_sse2 LABEL PROC
17970  DB  72,173                              ; lods          %ds:(%rsi),%rax
17971  DB  72,139,0                            ; mov           (%rax),%rax
17972  DB  185,0,255,127,71                    ; mov           $0x477fff00,%ecx
17973  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
17974  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
17975  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
17976  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
17977  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17978  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
17979  DB  102,65,15,114,224,16                ; psrad         $0x10,%xmm8
17980  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17981  DB  102,69,15,111,208                   ; movdqa        %xmm8,%xmm10
17982  DB  102,65,15,113,242,8                 ; psllw         $0x8,%xmm10
17983  DB  102,65,15,113,208,8                 ; psrlw         $0x8,%xmm8
17984  DB  102,69,15,235,194                   ; por           %xmm10,%xmm8
17985  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
17986  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
17987  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
17988  DB  102,65,15,114,242,16                ; pslld         $0x10,%xmm10
17989  DB  102,65,15,114,226,16                ; psrad         $0x10,%xmm10
17990  DB  102,69,15,107,210                   ; packssdw      %xmm10,%xmm10
17991  DB  102,69,15,111,218                   ; movdqa        %xmm10,%xmm11
17992  DB  102,65,15,113,243,8                 ; psllw         $0x8,%xmm11
17993  DB  102,65,15,113,210,8                 ; psrlw         $0x8,%xmm10
17994  DB  102,69,15,235,211                   ; por           %xmm11,%xmm10
17995  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
17996  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
17997  DB  102,69,15,91,219                    ; cvtps2dq      %xmm11,%xmm11
17998  DB  102,65,15,114,243,16                ; pslld         $0x10,%xmm11
17999  DB  102,65,15,114,227,16                ; psrad         $0x10,%xmm11
18000  DB  102,69,15,107,219                   ; packssdw      %xmm11,%xmm11
18001  DB  102,69,15,111,227                   ; movdqa        %xmm11,%xmm12
18002  DB  102,65,15,113,244,8                 ; psllw         $0x8,%xmm12
18003  DB  102,65,15,113,211,8                 ; psrlw         $0x8,%xmm11
18004  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
18005  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
18006  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
18007  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
18008  DB  102,65,15,114,225,16                ; psrad         $0x10,%xmm9
18009  DB  102,69,15,107,201                   ; packssdw      %xmm9,%xmm9
18010  DB  102,69,15,111,225                   ; movdqa        %xmm9,%xmm12
18011  DB  102,65,15,113,244,8                 ; psllw         $0x8,%xmm12
18012  DB  102,65,15,113,209,8                 ; psrlw         $0x8,%xmm9
18013  DB  102,69,15,235,204                   ; por           %xmm12,%xmm9
18014  DB  102,69,15,97,194                    ; punpcklwd     %xmm10,%xmm8
18015  DB  102,69,15,97,217                    ; punpcklwd     %xmm9,%xmm11
18016  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
18017  DB  102,69,15,98,203                    ; punpckldq     %xmm11,%xmm9
18018  DB  243,68,15,127,12,248                ; movdqu        %xmm9,(%rax,%rdi,8)
18019  DB  102,69,15,106,195                   ; punpckhdq     %xmm11,%xmm8
18020  DB  243,68,15,127,68,248,16             ; movdqu        %xmm8,0x10(%rax,%rdi,8)
18021  DB  72,173                              ; lods          %ds:(%rsi),%rax
18022  DB  255,224                             ; jmpq          *%rax
18023
18024PUBLIC _sk_load_f32_sse2
18025_sk_load_f32_sse2 LABEL PROC
18026  DB  72,173                              ; lods          %ds:(%rsi),%rax
18027  DB  72,139,0                            ; mov           (%rax),%rax
18028  DB  72,137,249                          ; mov           %rdi,%rcx
18029  DB  72,193,225,4                        ; shl           $0x4,%rcx
18030  DB  68,15,16,4,8                        ; movups        (%rax,%rcx,1),%xmm8
18031  DB  15,16,68,8,16                       ; movups        0x10(%rax,%rcx,1),%xmm0
18032  DB  15,16,92,8,32                       ; movups        0x20(%rax,%rcx,1),%xmm3
18033  DB  68,15,16,76,8,48                    ; movups        0x30(%rax,%rcx,1),%xmm9
18034  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
18035  DB  15,20,208                           ; unpcklps      %xmm0,%xmm2
18036  DB  15,40,203                           ; movaps        %xmm3,%xmm1
18037  DB  65,15,20,201                        ; unpcklps      %xmm9,%xmm1
18038  DB  68,15,21,192                        ; unpckhps      %xmm0,%xmm8
18039  DB  65,15,21,217                        ; unpckhps      %xmm9,%xmm3
18040  DB  15,40,194                           ; movaps        %xmm2,%xmm0
18041  DB  102,15,20,193                       ; unpcklpd      %xmm1,%xmm0
18042  DB  15,18,202                           ; movhlps       %xmm2,%xmm1
18043  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
18044  DB  102,15,20,211                       ; unpcklpd      %xmm3,%xmm2
18045  DB  65,15,18,216                        ; movhlps       %xmm8,%xmm3
18046  DB  72,173                              ; lods          %ds:(%rsi),%rax
18047  DB  255,224                             ; jmpq          *%rax
18048
18049PUBLIC _sk_store_f32_sse2
18050_sk_store_f32_sse2 LABEL PROC
18051  DB  72,173                              ; lods          %ds:(%rsi),%rax
18052  DB  72,139,0                            ; mov           (%rax),%rax
18053  DB  72,137,249                          ; mov           %rdi,%rcx
18054  DB  72,193,225,4                        ; shl           $0x4,%rcx
18055  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18056  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
18057  DB  68,15,20,201                        ; unpcklps      %xmm1,%xmm9
18058  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
18059  DB  68,15,40,218                        ; movaps        %xmm2,%xmm11
18060  DB  68,15,20,219                        ; unpcklps      %xmm3,%xmm11
18061  DB  68,15,21,193                        ; unpckhps      %xmm1,%xmm8
18062  DB  68,15,21,211                        ; unpckhps      %xmm3,%xmm10
18063  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
18064  DB  102,69,15,20,227                    ; unpcklpd      %xmm11,%xmm12
18065  DB  69,15,18,217                        ; movhlps       %xmm9,%xmm11
18066  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
18067  DB  102,69,15,20,202                    ; unpcklpd      %xmm10,%xmm9
18068  DB  69,15,18,208                        ; movhlps       %xmm8,%xmm10
18069  DB  102,68,15,17,36,8                   ; movupd        %xmm12,(%rax,%rcx,1)
18070  DB  68,15,17,92,8,16                    ; movups        %xmm11,0x10(%rax,%rcx,1)
18071  DB  102,68,15,17,76,8,32                ; movupd        %xmm9,0x20(%rax,%rcx,1)
18072  DB  68,15,17,84,8,48                    ; movups        %xmm10,0x30(%rax,%rcx,1)
18073  DB  72,173                              ; lods          %ds:(%rsi),%rax
18074  DB  255,224                             ; jmpq          *%rax
18075
18076PUBLIC _sk_clamp_x_sse2
18077_sk_clamp_x_sse2 LABEL PROC
18078  DB  72,173                              ; lods          %ds:(%rsi),%rax
18079  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
18080  DB  68,15,95,192                        ; maxps         %xmm0,%xmm8
18081  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
18082  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18083  DB  102,15,118,192                      ; pcmpeqd       %xmm0,%xmm0
18084  DB  102,65,15,254,193                   ; paddd         %xmm9,%xmm0
18085  DB  68,15,93,192                        ; minps         %xmm0,%xmm8
18086  DB  72,173                              ; lods          %ds:(%rsi),%rax
18087  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
18088  DB  255,224                             ; jmpq          *%rax
18089
18090PUBLIC _sk_clamp_y_sse2
18091_sk_clamp_y_sse2 LABEL PROC
18092  DB  72,173                              ; lods          %ds:(%rsi),%rax
18093  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
18094  DB  68,15,95,193                        ; maxps         %xmm1,%xmm8
18095  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
18096  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18097  DB  102,15,118,201                      ; pcmpeqd       %xmm1,%xmm1
18098  DB  102,65,15,254,201                   ; paddd         %xmm9,%xmm1
18099  DB  68,15,93,193                        ; minps         %xmm1,%xmm8
18100  DB  72,173                              ; lods          %ds:(%rsi),%rax
18101  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
18102  DB  255,224                             ; jmpq          *%rax
18103
18104PUBLIC _sk_repeat_x_sse2
18105_sk_repeat_x_sse2 LABEL PROC
18106  DB  72,173                              ; lods          %ds:(%rsi),%rax
18107  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
18108  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18109  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
18110  DB  69,15,94,200                        ; divps         %xmm8,%xmm9
18111  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
18112  DB  69,15,91,210                        ; cvtdq2ps      %xmm10,%xmm10
18113  DB  69,15,194,202,1                     ; cmpltps       %xmm10,%xmm9
18114  DB  68,15,84,13,135,16,0,0              ; andps         0x1087(%rip),%xmm9        # 47d0 <_sk_callback_sse2+0x4bb>
18115  DB  69,15,92,209                        ; subps         %xmm9,%xmm10
18116  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18117  DB  65,15,92,194                        ; subps         %xmm10,%xmm0
18118  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
18119  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
18120  DB  65,15,93,193                        ; minps         %xmm9,%xmm0
18121  DB  72,173                              ; lods          %ds:(%rsi),%rax
18122  DB  255,224                             ; jmpq          *%rax
18123
18124PUBLIC _sk_repeat_y_sse2
18125_sk_repeat_y_sse2 LABEL PROC
18126  DB  72,173                              ; lods          %ds:(%rsi),%rax
18127  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
18128  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18129  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
18130  DB  69,15,94,200                        ; divps         %xmm8,%xmm9
18131  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
18132  DB  69,15,91,210                        ; cvtdq2ps      %xmm10,%xmm10
18133  DB  69,15,194,202,1                     ; cmpltps       %xmm10,%xmm9
18134  DB  68,15,84,13,79,16,0,0               ; andps         0x104f(%rip),%xmm9        # 47e0 <_sk_callback_sse2+0x4cb>
18135  DB  69,15,92,209                        ; subps         %xmm9,%xmm10
18136  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18137  DB  65,15,92,202                        ; subps         %xmm10,%xmm1
18138  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
18139  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
18140  DB  65,15,93,201                        ; minps         %xmm9,%xmm1
18141  DB  72,173                              ; lods          %ds:(%rsi),%rax
18142  DB  255,224                             ; jmpq          *%rax
18143
18144PUBLIC _sk_mirror_x_sse2
18145_sk_mirror_x_sse2 LABEL PROC
18146  DB  72,173                              ; lods          %ds:(%rsi),%rax
18147  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
18148  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
18149  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18150  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
18151  DB  243,69,15,88,192                    ; addss         %xmm8,%xmm8
18152  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18153  DB  68,15,40,208                        ; movaps        %xmm0,%xmm10
18154  DB  69,15,94,208                        ; divps         %xmm8,%xmm10
18155  DB  243,69,15,91,218                    ; cvttps2dq     %xmm10,%xmm11
18156  DB  69,15,91,219                        ; cvtdq2ps      %xmm11,%xmm11
18157  DB  69,15,194,211,1                     ; cmpltps       %xmm11,%xmm10
18158  DB  68,15,84,21,5,16,0,0                ; andps         0x1005(%rip),%xmm10        # 47f0 <_sk_callback_sse2+0x4db>
18159  DB  69,15,87,228                        ; xorps         %xmm12,%xmm12
18160  DB  69,15,92,218                        ; subps         %xmm10,%xmm11
18161  DB  69,15,89,216                        ; mulps         %xmm8,%xmm11
18162  DB  65,15,92,195                        ; subps         %xmm11,%xmm0
18163  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
18164  DB  68,15,92,224                        ; subps         %xmm0,%xmm12
18165  DB  65,15,84,196                        ; andps         %xmm12,%xmm0
18166  DB  102,69,15,118,192                   ; pcmpeqd       %xmm8,%xmm8
18167  DB  102,69,15,254,193                   ; paddd         %xmm9,%xmm8
18168  DB  65,15,93,192                        ; minps         %xmm8,%xmm0
18169  DB  72,173                              ; lods          %ds:(%rsi),%rax
18170  DB  255,224                             ; jmpq          *%rax
18171
18172PUBLIC _sk_mirror_y_sse2
18173_sk_mirror_y_sse2 LABEL PROC
18174  DB  72,173                              ; lods          %ds:(%rsi),%rax
18175  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
18176  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
18177  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18178  DB  65,15,92,201                        ; subps         %xmm9,%xmm1
18179  DB  243,69,15,88,192                    ; addss         %xmm8,%xmm8
18180  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18181  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
18182  DB  69,15,94,208                        ; divps         %xmm8,%xmm10
18183  DB  243,69,15,91,218                    ; cvttps2dq     %xmm10,%xmm11
18184  DB  69,15,91,219                        ; cvtdq2ps      %xmm11,%xmm11
18185  DB  69,15,194,211,1                     ; cmpltps       %xmm11,%xmm10
18186  DB  68,15,84,21,171,15,0,0              ; andps         0xfab(%rip),%xmm10        # 4800 <_sk_callback_sse2+0x4eb>
18187  DB  69,15,87,228                        ; xorps         %xmm12,%xmm12
18188  DB  69,15,92,218                        ; subps         %xmm10,%xmm11
18189  DB  69,15,89,216                        ; mulps         %xmm8,%xmm11
18190  DB  65,15,92,203                        ; subps         %xmm11,%xmm1
18191  DB  65,15,92,201                        ; subps         %xmm9,%xmm1
18192  DB  68,15,92,225                        ; subps         %xmm1,%xmm12
18193  DB  65,15,84,204                        ; andps         %xmm12,%xmm1
18194  DB  102,69,15,118,192                   ; pcmpeqd       %xmm8,%xmm8
18195  DB  102,69,15,254,193                   ; paddd         %xmm9,%xmm8
18196  DB  65,15,93,200                        ; minps         %xmm8,%xmm1
18197  DB  72,173                              ; lods          %ds:(%rsi),%rax
18198  DB  255,224                             ; jmpq          *%rax
18199
18200PUBLIC _sk_luminance_to_alpha_sse2
18201_sk_luminance_to_alpha_sse2 LABEL PROC
18202  DB  184,208,179,89,62                   ; mov           $0x3e59b3d0,%eax
18203  DB  102,15,110,216                      ; movd          %eax,%xmm3
18204  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
18205  DB  15,89,216                           ; mulps         %xmm0,%xmm3
18206  DB  184,89,23,55,63                     ; mov           $0x3f371759,%eax
18207  DB  102,15,110,192                      ; movd          %eax,%xmm0
18208  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18209  DB  15,89,193                           ; mulps         %xmm1,%xmm0
18210  DB  15,88,195                           ; addps         %xmm3,%xmm0
18211  DB  184,152,221,147,61                  ; mov           $0x3d93dd98,%eax
18212  DB  102,15,110,216                      ; movd          %eax,%xmm3
18213  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
18214  DB  15,89,218                           ; mulps         %xmm2,%xmm3
18215  DB  15,88,216                           ; addps         %xmm0,%xmm3
18216  DB  72,173                              ; lods          %ds:(%rsi),%rax
18217  DB  15,87,192                           ; xorps         %xmm0,%xmm0
18218  DB  15,87,201                           ; xorps         %xmm1,%xmm1
18219  DB  15,87,210                           ; xorps         %xmm2,%xmm2
18220  DB  255,224                             ; jmpq          *%rax
18221
18222PUBLIC _sk_matrix_2x3_sse2
18223_sk_matrix_2x3_sse2 LABEL PROC
18224  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
18225  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18226  DB  72,173                              ; lods          %ds:(%rsi),%rax
18227  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18228  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
18229  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18230  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
18231  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18232  DB  243,68,15,16,88,16                  ; movss         0x10(%rax),%xmm11
18233  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18234  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18235  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18236  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18237  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
18238  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
18239  DB  243,68,15,16,80,12                  ; movss         0xc(%rax),%xmm10
18240  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18241  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
18242  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18243  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18244  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18245  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
18246  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
18247  DB  72,173                              ; lods          %ds:(%rsi),%rax
18248  DB  255,224                             ; jmpq          *%rax
18249
18250PUBLIC _sk_matrix_3x4_sse2
18251_sk_matrix_3x4_sse2 LABEL PROC
18252  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
18253  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18254  DB  72,173                              ; lods          %ds:(%rsi),%rax
18255  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18256  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
18257  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18258  DB  243,68,15,16,80,12                  ; movss         0xc(%rax),%xmm10
18259  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18260  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
18261  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18262  DB  243,68,15,16,96,36                  ; movss         0x24(%rax),%xmm12
18263  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18264  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
18265  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18266  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18267  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18268  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18269  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
18270  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
18271  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
18272  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18273  DB  243,68,15,16,88,28                  ; movss         0x1c(%rax),%xmm11
18274  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18275  DB  243,68,15,16,96,40                  ; movss         0x28(%rax),%xmm12
18276  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18277  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
18278  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18279  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18280  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18281  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
18282  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
18283  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
18284  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18285  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
18286  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18287  DB  243,68,15,16,96,32                  ; movss         0x20(%rax),%xmm12
18288  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18289  DB  243,68,15,16,104,44                 ; movss         0x2c(%rax),%xmm13
18290  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18291  DB  68,15,89,226                        ; mulps         %xmm2,%xmm12
18292  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18293  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
18294  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18295  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18296  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18297  DB  72,173                              ; lods          %ds:(%rsi),%rax
18298  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
18299  DB  255,224                             ; jmpq          *%rax
18300
18301PUBLIC _sk_matrix_4x5_sse2
18302_sk_matrix_4x5_sse2 LABEL PROC
18303  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
18304  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18305  DB  72,173                              ; lods          %ds:(%rsi),%rax
18306  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18307  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
18308  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18309  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
18310  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18311  DB  243,68,15,16,88,32                  ; movss         0x20(%rax),%xmm11
18312  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18313  DB  243,68,15,16,96,48                  ; movss         0x30(%rax),%xmm12
18314  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18315  DB  243,68,15,16,104,64                 ; movss         0x40(%rax),%xmm13
18316  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18317  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
18318  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18319  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
18320  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18321  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18322  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18323  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18324  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
18325  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
18326  DB  243,68,15,16,80,20                  ; movss         0x14(%rax),%xmm10
18327  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18328  DB  243,68,15,16,88,36                  ; movss         0x24(%rax),%xmm11
18329  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18330  DB  243,68,15,16,96,52                  ; movss         0x34(%rax),%xmm12
18331  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18332  DB  243,68,15,16,104,68                 ; movss         0x44(%rax),%xmm13
18333  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18334  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
18335  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18336  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
18337  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18338  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18339  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18340  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
18341  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
18342  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
18343  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18344  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
18345  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18346  DB  243,68,15,16,96,40                  ; movss         0x28(%rax),%xmm12
18347  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18348  DB  243,68,15,16,104,56                 ; movss         0x38(%rax),%xmm13
18349  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18350  DB  243,68,15,16,112,72                 ; movss         0x48(%rax),%xmm14
18351  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
18352  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
18353  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
18354  DB  68,15,89,226                        ; mulps         %xmm2,%xmm12
18355  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18356  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
18357  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18358  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18359  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18360  DB  243,68,15,16,88,12                  ; movss         0xc(%rax),%xmm11
18361  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18362  DB  243,68,15,16,96,28                  ; movss         0x1c(%rax),%xmm12
18363  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18364  DB  243,68,15,16,104,44                 ; movss         0x2c(%rax),%xmm13
18365  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18366  DB  243,68,15,16,112,60                 ; movss         0x3c(%rax),%xmm14
18367  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
18368  DB  243,68,15,16,120,76                 ; movss         0x4c(%rax),%xmm15
18369  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
18370  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
18371  DB  69,15,88,247                        ; addps         %xmm15,%xmm14
18372  DB  68,15,89,234                        ; mulps         %xmm2,%xmm13
18373  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
18374  DB  69,15,89,225                        ; mulps         %xmm9,%xmm12
18375  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18376  DB  69,15,89,216                        ; mulps         %xmm8,%xmm11
18377  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18378  DB  72,173                              ; lods          %ds:(%rsi),%rax
18379  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
18380  DB  65,15,40,219                        ; movaps        %xmm11,%xmm3
18381  DB  255,224                             ; jmpq          *%rax
18382
18383PUBLIC _sk_matrix_perspective_sse2
18384_sk_matrix_perspective_sse2 LABEL PROC
18385  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18386  DB  72,173                              ; lods          %ds:(%rsi),%rax
18387  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18388  DB  243,68,15,16,72,4                   ; movss         0x4(%rax),%xmm9
18389  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18390  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18391  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
18392  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18393  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
18394  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18395  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18396  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
18397  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
18398  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18399  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
18400  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18401  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
18402  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18403  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
18404  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18405  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18406  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18407  DB  243,68,15,16,80,24                  ; movss         0x18(%rax),%xmm10
18408  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18409  DB  243,68,15,16,88,28                  ; movss         0x1c(%rax),%xmm11
18410  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18411  DB  243,68,15,16,96,32                  ; movss         0x20(%rax),%xmm12
18412  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18413  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
18414  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18415  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18416  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18417  DB  65,15,83,202                        ; rcpps         %xmm10,%xmm1
18418  DB  15,89,193                           ; mulps         %xmm1,%xmm0
18419  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
18420  DB  72,173                              ; lods          %ds:(%rsi),%rax
18421  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
18422  DB  255,224                             ; jmpq          *%rax
18423
18424PUBLIC _sk_linear_gradient_sse2
18425_sk_linear_gradient_sse2 LABEL PROC
18426  DB  72,173                              ; lods          %ds:(%rsi),%rax
18427  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
18428  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18429  DB  243,68,15,16,80,20                  ; movss         0x14(%rax),%xmm10
18430  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18431  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
18432  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18433  DB  243,68,15,16,96,28                  ; movss         0x1c(%rax),%xmm12
18434  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18435  DB  72,139,8                            ; mov           (%rax),%rcx
18436  DB  72,133,201                          ; test          %rcx,%rcx
18437  DB  15,132,15,1,0,0                     ; je            3d69 <_sk_linear_gradient_sse2+0x149>
18438  DB  72,139,64,8                         ; mov           0x8(%rax),%rax
18439  DB  72,131,192,32                       ; add           $0x20,%rax
18440  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
18441  DB  15,87,219                           ; xorps         %xmm3,%xmm3
18442  DB  15,87,210                           ; xorps         %xmm2,%xmm2
18443  DB  15,87,201                           ; xorps         %xmm1,%xmm1
18444  DB  243,68,15,16,112,224                ; movss         -0x20(%rax),%xmm14
18445  DB  243,68,15,16,104,228                ; movss         -0x1c(%rax),%xmm13
18446  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
18447  DB  69,15,40,252                        ; movaps        %xmm12,%xmm15
18448  DB  68,15,40,224                        ; movaps        %xmm0,%xmm12
18449  DB  69,15,194,230,1                     ; cmpltps       %xmm14,%xmm12
18450  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18451  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18452  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18453  DB  69,15,84,196                        ; andps         %xmm12,%xmm8
18454  DB  69,15,86,198                        ; orps          %xmm14,%xmm8
18455  DB  243,68,15,16,104,232                ; movss         -0x18(%rax),%xmm13
18456  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18457  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18458  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18459  DB  65,15,84,204                        ; andps         %xmm12,%xmm1
18460  DB  65,15,86,206                        ; orps          %xmm14,%xmm1
18461  DB  243,68,15,16,104,236                ; movss         -0x14(%rax),%xmm13
18462  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18463  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18464  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18465  DB  65,15,84,212                        ; andps         %xmm12,%xmm2
18466  DB  65,15,86,214                        ; orps          %xmm14,%xmm2
18467  DB  243,68,15,16,104,240                ; movss         -0x10(%rax),%xmm13
18468  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18469  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18470  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18471  DB  65,15,84,220                        ; andps         %xmm12,%xmm3
18472  DB  65,15,86,222                        ; orps          %xmm14,%xmm3
18473  DB  243,68,15,16,104,244                ; movss         -0xc(%rax),%xmm13
18474  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18475  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18476  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18477  DB  69,15,84,204                        ; andps         %xmm12,%xmm9
18478  DB  69,15,86,206                        ; orps          %xmm14,%xmm9
18479  DB  243,68,15,16,104,248                ; movss         -0x8(%rax),%xmm13
18480  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18481  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18482  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18483  DB  69,15,84,212                        ; andps         %xmm12,%xmm10
18484  DB  69,15,86,214                        ; orps          %xmm14,%xmm10
18485  DB  243,68,15,16,104,252                ; movss         -0x4(%rax),%xmm13
18486  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18487  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18488  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18489  DB  69,15,84,220                        ; andps         %xmm12,%xmm11
18490  DB  69,15,86,222                        ; orps          %xmm14,%xmm11
18491  DB  243,68,15,16,40                     ; movss         (%rax),%xmm13
18492  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18493  DB  69,15,84,252                        ; andps         %xmm12,%xmm15
18494  DB  69,15,85,229                        ; andnps        %xmm13,%xmm12
18495  DB  69,15,86,231                        ; orps          %xmm15,%xmm12
18496  DB  72,131,192,36                       ; add           $0x24,%rax
18497  DB  72,255,201                          ; dec           %rcx
18498  DB  15,133,8,255,255,255                ; jne           3c6f <_sk_linear_gradient_sse2+0x4f>
18499  DB  235,13                              ; jmp           3d76 <_sk_linear_gradient_sse2+0x156>
18500  DB  15,87,201                           ; xorps         %xmm1,%xmm1
18501  DB  15,87,210                           ; xorps         %xmm2,%xmm2
18502  DB  15,87,219                           ; xorps         %xmm3,%xmm3
18503  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
18504  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
18505  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
18506  DB  15,89,200                           ; mulps         %xmm0,%xmm1
18507  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
18508  DB  15,89,208                           ; mulps         %xmm0,%xmm2
18509  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
18510  DB  15,89,216                           ; mulps         %xmm0,%xmm3
18511  DB  65,15,88,220                        ; addps         %xmm12,%xmm3
18512  DB  72,173                              ; lods          %ds:(%rsi),%rax
18513  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
18514  DB  255,224                             ; jmpq          *%rax
18515
18516PUBLIC _sk_linear_gradient_2stops_sse2
18517_sk_linear_gradient_2stops_sse2 LABEL PROC
18518  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18519  DB  72,173                              ; lods          %ds:(%rsi),%rax
18520  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18521  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
18522  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18523  DB  243,15,16,80,16                     ; movss         0x10(%rax),%xmm2
18524  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
18525  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18526  DB  15,88,194                           ; addps         %xmm2,%xmm0
18527  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
18528  DB  243,15,16,80,20                     ; movss         0x14(%rax),%xmm2
18529  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
18530  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
18531  DB  15,88,202                           ; addps         %xmm2,%xmm1
18532  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
18533  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
18534  DB  243,15,16,88,24                     ; movss         0x18(%rax),%xmm3
18535  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
18536  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
18537  DB  15,88,211                           ; addps         %xmm3,%xmm2
18538  DB  243,15,16,88,12                     ; movss         0xc(%rax),%xmm3
18539  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
18540  DB  243,68,15,16,72,28                  ; movss         0x1c(%rax),%xmm9
18541  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18542  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
18543  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
18544  DB  72,173                              ; lods          %ds:(%rsi),%rax
18545  DB  255,224                             ; jmpq          *%rax
18546
18547PUBLIC _sk_save_xy_sse2
18548_sk_save_xy_sse2 LABEL PROC
18549  DB  72,173                              ; lods          %ds:(%rsi),%rax
18550  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18551  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18552  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18553  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
18554  DB  68,15,88,200                        ; addps         %xmm0,%xmm9
18555  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
18556  DB  69,15,91,210                        ; cvtdq2ps      %xmm10,%xmm10
18557  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
18558  DB  69,15,194,218,1                     ; cmpltps       %xmm10,%xmm11
18559  DB  68,15,40,37,210,9,0,0               ; movaps        0x9d2(%rip),%xmm12        # 4810 <_sk_callback_sse2+0x4fb>
18560  DB  69,15,84,220                        ; andps         %xmm12,%xmm11
18561  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
18562  DB  69,15,92,202                        ; subps         %xmm10,%xmm9
18563  DB  68,15,88,193                        ; addps         %xmm1,%xmm8
18564  DB  243,69,15,91,208                    ; cvttps2dq     %xmm8,%xmm10
18565  DB  69,15,91,210                        ; cvtdq2ps      %xmm10,%xmm10
18566  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
18567  DB  69,15,194,218,1                     ; cmpltps       %xmm10,%xmm11
18568  DB  69,15,84,220                        ; andps         %xmm12,%xmm11
18569  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
18570  DB  69,15,92,194                        ; subps         %xmm10,%xmm8
18571  DB  15,17,0                             ; movups        %xmm0,(%rax)
18572  DB  15,17,72,32                         ; movups        %xmm1,0x20(%rax)
18573  DB  68,15,17,72,64                      ; movups        %xmm9,0x40(%rax)
18574  DB  68,15,17,64,96                      ; movups        %xmm8,0x60(%rax)
18575  DB  72,173                              ; lods          %ds:(%rsi),%rax
18576  DB  255,224                             ; jmpq          *%rax
18577
18578PUBLIC _sk_accumulate_sse2
18579_sk_accumulate_sse2 LABEL PROC
18580  DB  72,173                              ; lods          %ds:(%rsi),%rax
18581  DB  68,15,16,128,128,0,0,0              ; movups        0x80(%rax),%xmm8
18582  DB  68,15,16,136,160,0,0,0              ; movups        0xa0(%rax),%xmm9
18583  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18584  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
18585  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
18586  DB  65,15,88,224                        ; addps         %xmm8,%xmm4
18587  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
18588  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
18589  DB  65,15,88,232                        ; addps         %xmm8,%xmm5
18590  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
18591  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
18592  DB  65,15,88,240                        ; addps         %xmm8,%xmm6
18593  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
18594  DB  65,15,88,249                        ; addps         %xmm9,%xmm7
18595  DB  72,173                              ; lods          %ds:(%rsi),%rax
18596  DB  255,224                             ; jmpq          *%rax
18597
18598PUBLIC _sk_bilinear_nx_sse2
18599_sk_bilinear_nx_sse2 LABEL PROC
18600  DB  72,173                              ; lods          %ds:(%rsi),%rax
18601  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
18602  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18603  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18604  DB  15,16,0                             ; movups        (%rax),%xmm0
18605  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18606  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18607  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18608  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18609  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18610  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18611  DB  68,15,17,128,128,0,0,0              ; movups        %xmm8,0x80(%rax)
18612  DB  72,173                              ; lods          %ds:(%rsi),%rax
18613  DB  255,224                             ; jmpq          *%rax
18614
18615PUBLIC _sk_bilinear_px_sse2
18616_sk_bilinear_px_sse2 LABEL PROC
18617  DB  72,173                              ; lods          %ds:(%rsi),%rax
18618  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18619  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18620  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18621  DB  15,16,0                             ; movups        (%rax),%xmm0
18622  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18623  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18624  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
18625  DB  72,173                              ; lods          %ds:(%rsi),%rax
18626  DB  255,224                             ; jmpq          *%rax
18627
18628PUBLIC _sk_bilinear_ny_sse2
18629_sk_bilinear_ny_sse2 LABEL PROC
18630  DB  72,173                              ; lods          %ds:(%rsi),%rax
18631  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
18632  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18633  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18634  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18635  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18636  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18637  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18638  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18639  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18640  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18641  DB  68,15,17,128,160,0,0,0              ; movups        %xmm8,0xa0(%rax)
18642  DB  72,173                              ; lods          %ds:(%rsi),%rax
18643  DB  255,224                             ; jmpq          *%rax
18644
18645PUBLIC _sk_bilinear_py_sse2
18646_sk_bilinear_py_sse2 LABEL PROC
18647  DB  72,173                              ; lods          %ds:(%rsi),%rax
18648  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18649  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18650  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18651  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18652  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18653  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18654  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
18655  DB  72,173                              ; lods          %ds:(%rsi),%rax
18656  DB  255,224                             ; jmpq          *%rax
18657
18658PUBLIC _sk_bicubic_n3x_sse2
18659_sk_bicubic_n3x_sse2 LABEL PROC
18660  DB  72,173                              ; lods          %ds:(%rsi),%rax
18661  DB  185,0,0,192,191                     ; mov           $0xbfc00000,%ecx
18662  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18663  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18664  DB  15,16,0                             ; movups        (%rax),%xmm0
18665  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18666  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18667  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18668  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18669  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18670  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18671  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
18672  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
18673  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18674  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
18675  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18676  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18677  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18678  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
18679  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18680  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18681  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
18682  DB  72,173                              ; lods          %ds:(%rsi),%rax
18683  DB  255,224                             ; jmpq          *%rax
18684
18685PUBLIC _sk_bicubic_n1x_sse2
18686_sk_bicubic_n1x_sse2 LABEL PROC
18687  DB  72,173                              ; lods          %ds:(%rsi),%rax
18688  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
18689  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18690  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18691  DB  15,16,0                             ; movups        (%rax),%xmm0
18692  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18693  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18694  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18695  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18696  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18697  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18698  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
18699  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
18700  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18701  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18702  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18703  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18704  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18705  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18706  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18707  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18708  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18709  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18710  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18711  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
18712  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18713  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18714  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18715  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18716  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
18717  DB  72,173                              ; lods          %ds:(%rsi),%rax
18718  DB  255,224                             ; jmpq          *%rax
18719
18720PUBLIC _sk_bicubic_p1x_sse2
18721_sk_bicubic_p1x_sse2 LABEL PROC
18722  DB  72,173                              ; lods          %ds:(%rsi),%rax
18723  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18724  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18725  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18726  DB  15,16,0                             ; movups        (%rax),%xmm0
18727  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18728  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18729  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
18730  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18731  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18732  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18733  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
18734  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18735  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18736  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18737  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18738  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
18739  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
18740  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18741  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18742  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18743  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
18744  DB  68,15,17,144,128,0,0,0              ; movups        %xmm10,0x80(%rax)
18745  DB  72,173                              ; lods          %ds:(%rsi),%rax
18746  DB  255,224                             ; jmpq          *%rax
18747
18748PUBLIC _sk_bicubic_p3x_sse2
18749_sk_bicubic_p3x_sse2 LABEL PROC
18750  DB  72,173                              ; lods          %ds:(%rsi),%rax
18751  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18752  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18753  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18754  DB  15,16,0                             ; movups        (%rax),%xmm0
18755  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18756  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18757  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
18758  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18759  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18760  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
18761  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
18762  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
18763  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18764  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18765  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
18766  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
18767  DB  68,15,17,128,128,0,0,0              ; movups        %xmm8,0x80(%rax)
18768  DB  72,173                              ; lods          %ds:(%rsi),%rax
18769  DB  255,224                             ; jmpq          *%rax
18770
18771PUBLIC _sk_bicubic_n3y_sse2
18772_sk_bicubic_n3y_sse2 LABEL PROC
18773  DB  72,173                              ; lods          %ds:(%rsi),%rax
18774  DB  185,0,0,192,191                     ; mov           $0xbfc00000,%ecx
18775  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18776  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18777  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18778  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18779  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18780  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18781  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18782  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18783  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18784  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
18785  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
18786  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18787  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
18788  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18789  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18790  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18791  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
18792  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18793  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18794  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
18795  DB  72,173                              ; lods          %ds:(%rsi),%rax
18796  DB  255,224                             ; jmpq          *%rax
18797
18798PUBLIC _sk_bicubic_n1y_sse2
18799_sk_bicubic_n1y_sse2 LABEL PROC
18800  DB  72,173                              ; lods          %ds:(%rsi),%rax
18801  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
18802  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18803  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18804  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18805  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18806  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18807  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18808  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18809  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18810  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18811  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
18812  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
18813  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18814  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18815  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18816  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18817  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18818  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18819  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18820  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18821  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18822  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18823  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18824  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
18825  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18826  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18827  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18828  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18829  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
18830  DB  72,173                              ; lods          %ds:(%rsi),%rax
18831  DB  255,224                             ; jmpq          *%rax
18832
18833PUBLIC _sk_bicubic_p1y_sse2
18834_sk_bicubic_p1y_sse2 LABEL PROC
18835  DB  72,173                              ; lods          %ds:(%rsi),%rax
18836  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18837  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18838  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18839  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18840  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18841  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18842  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
18843  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18844  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18845  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18846  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
18847  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18848  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18849  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18850  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18851  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
18852  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
18853  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18854  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18855  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18856  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
18857  DB  68,15,17,144,160,0,0,0              ; movups        %xmm10,0xa0(%rax)
18858  DB  72,173                              ; lods          %ds:(%rsi),%rax
18859  DB  255,224                             ; jmpq          *%rax
18860
18861PUBLIC _sk_bicubic_p3y_sse2
18862_sk_bicubic_p3y_sse2 LABEL PROC
18863  DB  72,173                              ; lods          %ds:(%rsi),%rax
18864  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18865  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18866  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18867  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18868  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18869  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18870  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
18871  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18872  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18873  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
18874  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
18875  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
18876  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18877  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18878  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
18879  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
18880  DB  68,15,17,128,160,0,0,0              ; movups        %xmm8,0xa0(%rax)
18881  DB  72,173                              ; lods          %ds:(%rsi),%rax
18882  DB  255,224                             ; jmpq          *%rax
18883
18884PUBLIC _sk_callback_sse2
18885_sk_callback_sse2 LABEL PROC
18886  DB  65,86                               ; push          %r14
18887  DB  83                                  ; push          %rbx
18888  DB  72,131,236,40                       ; sub           $0x28,%rsp
18889  DB  68,15,40,197                        ; movaps        %xmm5,%xmm8
18890  DB  68,15,40,204                        ; movaps        %xmm4,%xmm9
18891  DB  73,137,214                          ; mov           %rdx,%r14
18892  DB  72,173                              ; lods          %ds:(%rsi),%rax
18893  DB  72,137,195                          ; mov           %rax,%rbx
18894  DB  15,40,224                           ; movaps        %xmm0,%xmm4
18895  DB  15,20,225                           ; unpcklps      %xmm1,%xmm4
18896  DB  15,40,234                           ; movaps        %xmm2,%xmm5
18897  DB  15,20,235                           ; unpcklps      %xmm3,%xmm5
18898  DB  15,21,193                           ; unpckhps      %xmm1,%xmm0
18899  DB  15,21,211                           ; unpckhps      %xmm3,%xmm2
18900  DB  15,40,204                           ; movaps        %xmm4,%xmm1
18901  DB  102,15,20,205                       ; unpcklpd      %xmm5,%xmm1
18902  DB  15,18,236                           ; movhlps       %xmm4,%xmm5
18903  DB  15,40,216                           ; movaps        %xmm0,%xmm3
18904  DB  102,15,20,218                       ; unpcklpd      %xmm2,%xmm3
18905  DB  15,18,208                           ; movhlps       %xmm0,%xmm2
18906  DB  102,15,17,75,8                      ; movupd        %xmm1,0x8(%rbx)
18907  DB  15,17,107,24                        ; movups        %xmm5,0x18(%rbx)
18908  DB  102,15,17,91,40                     ; movupd        %xmm3,0x28(%rbx)
18909  DB  15,17,83,56                         ; movups        %xmm2,0x38(%rbx)
18910  DB  186,4,0,0,0                         ; mov           $0x4,%edx
18911  DB  72,137,217                          ; mov           %rbx,%rcx
18912  DB  255,19                              ; callq         *(%rbx)
18913  DB  72,139,131,136,0,0,0                ; mov           0x88(%rbx),%rax
18914  DB  15,16,32                            ; movups        (%rax),%xmm4
18915  DB  15,16,64,16                         ; movups        0x10(%rax),%xmm0
18916  DB  15,16,88,32                         ; movups        0x20(%rax),%xmm3
18917  DB  15,16,80,48                         ; movups        0x30(%rax),%xmm2
18918  DB  15,40,236                           ; movaps        %xmm4,%xmm5
18919  DB  15,20,232                           ; unpcklps      %xmm0,%xmm5
18920  DB  15,40,203                           ; movaps        %xmm3,%xmm1
18921  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
18922  DB  15,21,224                           ; unpckhps      %xmm0,%xmm4
18923  DB  15,21,218                           ; unpckhps      %xmm2,%xmm3
18924  DB  15,40,197                           ; movaps        %xmm5,%xmm0
18925  DB  102,15,20,193                       ; unpcklpd      %xmm1,%xmm0
18926  DB  15,18,205                           ; movhlps       %xmm5,%xmm1
18927  DB  15,40,212                           ; movaps        %xmm4,%xmm2
18928  DB  102,15,20,211                       ; unpcklpd      %xmm3,%xmm2
18929  DB  15,18,220                           ; movhlps       %xmm4,%xmm3
18930  DB  72,173                              ; lods          %ds:(%rsi),%rax
18931  DB  76,137,242                          ; mov           %r14,%rdx
18932  DB  65,15,40,225                        ; movaps        %xmm9,%xmm4
18933  DB  65,15,40,232                        ; movaps        %xmm8,%xmm5
18934  DB  72,131,196,40                       ; add           $0x28,%rsp
18935  DB  91                                  ; pop           %rbx
18936  DB  65,94                               ; pop           %r14
18937  DB  255,224                             ; jmpq          *%rax
18938
18939ALIGN 16
18940  DB  0,0                                 ; add           %al,(%rax)
18941  DB  0,63                                ; add           %bh,(%rdi)
18942  DB  0,0                                 ; add           %al,(%rax)
18943  DB  0,63                                ; add           %bh,(%rdi)
18944  DB  0,0                                 ; add           %al,(%rax)
18945  DB  0,63                                ; add           %bh,(%rdi)
18946  DB  0,0                                 ; add           %al,(%rax)
18947  DB  0,63                                ; add           %bh,(%rdi)
18948  DB  0,0                                 ; add           %al,(%rax)
18949  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
18950  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
18951  DB  63                                  ; (bad)
18952  DB  0,0                                 ; add           %al,(%rax)
18953  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
18954  DB  0,0                                 ; add           %al,(%rax)
18955  DB  52,0                                ; xor           $0x0,%al
18956  DB  0,0                                 ; add           %al,(%rax)
18957  DB  52,0                                ; xor           $0x0,%al
18958  DB  0,0                                 ; add           %al,(%rax)
18959  DB  52,0                                ; xor           $0x0,%al
18960  DB  0,0                                 ; add           %al,(%rax)
18961  DB  52,255                              ; xor           $0xff,%al
18962  DB  255                                 ; (bad)
18963  DB  127,0                               ; jg            43f4 <.literal16+0x34>
18964  DB  255                                 ; (bad)
18965  DB  255                                 ; (bad)
18966  DB  127,0                               ; jg            43f8 <.literal16+0x38>
18967  DB  255                                 ; (bad)
18968  DB  255                                 ; (bad)
18969  DB  127,0                               ; jg            43fc <.literal16+0x3c>
18970  DB  255                                 ; (bad)
18971  DB  255                                 ; (bad)
18972  DB  127,0                               ; jg            4400 <.literal16+0x40>
18973  DB  0,0                                 ; add           %al,(%rax)
18974  DB  0,63                                ; add           %bh,(%rdi)
18975  DB  0,0                                 ; add           %al,(%rax)
18976  DB  0,63                                ; add           %bh,(%rdi)
18977  DB  0,0                                 ; add           %al,(%rax)
18978  DB  0,63                                ; add           %bh,(%rdi)
18979  DB  0,0                                 ; add           %al,(%rax)
18980  DB  0,63                                ; add           %bh,(%rdi)
18981  DB  119,115                             ; ja            4485 <.literal16+0xc5>
18982  DB  248                                 ; clc
18983  DB  194,119,115                         ; retq          $0x7377
18984  DB  248                                 ; clc
18985  DB  194,119,115                         ; retq          $0x7377
18986  DB  248                                 ; clc
18987  DB  194,119,115                         ; retq          $0x7377
18988  DB  248                                 ; clc
18989  DB  194,117,191                         ; retq          $0xbf75
18990  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
18991  DB  63                                  ; (bad)
18992  DB  117,191                             ; jne           43e9 <.literal16+0x29>
18993  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
18994  DB  63                                  ; (bad)
18995  DB  249                                 ; stc
18996  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
18997  DB  249                                 ; stc
18998  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
18999  DB  249                                 ; stc
19000  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19001  DB  249                                 ; stc
19002  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19003  DB  163,233,220,63,163,233,220,63,163   ; movabs        %eax,0xa33fdce9a33fdce9
19004  DB  233,220,63,163,233                  ; jmpq          ffffffffe9a3842a <_sk_callback_sse2+0xffffffffe9a34115>
19005  DB  220,63                              ; fdivrl        (%rdi)
19006  DB  0,0                                 ; add           %al,(%rax)
19007  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
19008  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
19009  DB  63                                  ; (bad)
19010  DB  0,0                                 ; add           %al,(%rax)
19011  DB  128,63,81                           ; cmpb          $0x51,(%rdi)
19012  DB  140,242                             ; mov           %?,%edx
19013  DB  66,81                               ; rex.X         push %rcx
19014  DB  140,242                             ; mov           %?,%edx
19015  DB  66,81                               ; rex.X         push %rcx
19016  DB  140,242                             ; mov           %?,%edx
19017  DB  66,81                               ; rex.X         push %rcx
19018  DB  140,242                             ; mov           %?,%edx
19019  DB  66,141,188,190,63,141,188,190       ; lea           -0x414372c1(%rsi,%r15,4),%edi
19020  DB  63                                  ; (bad)
19021  DB  141,188,190,63,141,188,190          ; lea           -0x414372c1(%rsi,%rdi,4),%edi
19022  DB  63                                  ; (bad)
19023  DB  248                                 ; clc
19024  DB  245                                 ; cmc
19025  DB  154                                 ; (bad)
19026  DB  64,248                              ; rex           clc
19027  DB  245                                 ; cmc
19028  DB  154                                 ; (bad)
19029  DB  64,248                              ; rex           clc
19030  DB  245                                 ; cmc
19031  DB  154                                 ; (bad)
19032  DB  64,248                              ; rex           clc
19033  DB  245                                 ; cmc
19034  DB  154                                 ; (bad)
19035  DB  64,254                              ; rex           (bad)
19036  DB  210,221                             ; rcr           %cl,%ch
19037  DB  65,254                              ; rex.B         (bad)
19038  DB  210,221                             ; rcr           %cl,%ch
19039  DB  65,254                              ; rex.B         (bad)
19040  DB  210,221                             ; rcr           %cl,%ch
19041  DB  65,254                              ; rex.B         (bad)
19042  DB  210,221                             ; rcr           %cl,%ch
19043  DB  65,0,0                              ; add           %al,(%r8)
19044  DB  0,75,0                              ; add           %cl,0x0(%rbx)
19045  DB  0,0                                 ; add           %al,(%rax)
19046  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
19047  DB  0,75,0                              ; add           %cl,0x0(%rbx)
19048  DB  0,0                                 ; add           %al,(%rax)
19049  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
19050  DB  0,52,0                              ; add           %dh,(%rax,%rax,1)
19051  DB  0,0                                 ; add           %al,(%rax)
19052  DB  52,0                                ; xor           $0x0,%al
19053  DB  0,0                                 ; add           %al,(%rax)
19054  DB  52,0                                ; xor           $0x0,%al
19055  DB  0,0                                 ; add           %al,(%rax)
19056  DB  52,255                              ; xor           $0xff,%al
19057  DB  255                                 ; (bad)
19058  DB  127,0                               ; jg            44c4 <.literal16+0x104>
19059  DB  255                                 ; (bad)
19060  DB  255                                 ; (bad)
19061  DB  127,0                               ; jg            44c8 <.literal16+0x108>
19062  DB  255                                 ; (bad)
19063  DB  255                                 ; (bad)
19064  DB  127,0                               ; jg            44cc <.literal16+0x10c>
19065  DB  255                                 ; (bad)
19066  DB  255                                 ; (bad)
19067  DB  127,0                               ; jg            44d0 <.literal16+0x110>
19068  DB  0,0                                 ; add           %al,(%rax)
19069  DB  0,63                                ; add           %bh,(%rdi)
19070  DB  0,0                                 ; add           %al,(%rax)
19071  DB  0,63                                ; add           %bh,(%rdi)
19072  DB  0,0                                 ; add           %al,(%rax)
19073  DB  0,63                                ; add           %bh,(%rdi)
19074  DB  0,0                                 ; add           %al,(%rax)
19075  DB  0,63                                ; add           %bh,(%rdi)
19076  DB  119,115                             ; ja            4555 <.literal16+0x195>
19077  DB  248                                 ; clc
19078  DB  194,119,115                         ; retq          $0x7377
19079  DB  248                                 ; clc
19080  DB  194,119,115                         ; retq          $0x7377
19081  DB  248                                 ; clc
19082  DB  194,119,115                         ; retq          $0x7377
19083  DB  248                                 ; clc
19084  DB  194,117,191                         ; retq          $0xbf75
19085  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
19086  DB  63                                  ; (bad)
19087  DB  117,191                             ; jne           44b9 <.literal16+0xf9>
19088  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
19089  DB  63                                  ; (bad)
19090  DB  249                                 ; stc
19091  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19092  DB  249                                 ; stc
19093  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19094  DB  249                                 ; stc
19095  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19096  DB  249                                 ; stc
19097  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19098  DB  163,233,220,63,163,233,220,63,163   ; movabs        %eax,0xa33fdce9a33fdce9
19099  DB  233,220,63,163,233                  ; jmpq          ffffffffe9a384fa <_sk_callback_sse2+0xffffffffe9a341e5>
19100  DB  220,63                              ; fdivrl        (%rdi)
19101  DB  0,0                                 ; add           %al,(%rax)
19102  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
19103  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
19104  DB  63                                  ; (bad)
19105  DB  0,0                                 ; add           %al,(%rax)
19106  DB  128,63,81                           ; cmpb          $0x51,(%rdi)
19107  DB  140,242                             ; mov           %?,%edx
19108  DB  66,81                               ; rex.X         push %rcx
19109  DB  140,242                             ; mov           %?,%edx
19110  DB  66,81                               ; rex.X         push %rcx
19111  DB  140,242                             ; mov           %?,%edx
19112  DB  66,81                               ; rex.X         push %rcx
19113  DB  140,242                             ; mov           %?,%edx
19114  DB  66,141,188,190,63,141,188,190       ; lea           -0x414372c1(%rsi,%r15,4),%edi
19115  DB  63                                  ; (bad)
19116  DB  141,188,190,63,141,188,190          ; lea           -0x414372c1(%rsi,%rdi,4),%edi
19117  DB  63                                  ; (bad)
19118  DB  248                                 ; clc
19119  DB  245                                 ; cmc
19120  DB  154                                 ; (bad)
19121  DB  64,248                              ; rex           clc
19122  DB  245                                 ; cmc
19123  DB  154                                 ; (bad)
19124  DB  64,248                              ; rex           clc
19125  DB  245                                 ; cmc
19126  DB  154                                 ; (bad)
19127  DB  64,248                              ; rex           clc
19128  DB  245                                 ; cmc
19129  DB  154                                 ; (bad)
19130  DB  64,254                              ; rex           (bad)
19131  DB  210,221                             ; rcr           %cl,%ch
19132  DB  65,254                              ; rex.B         (bad)
19133  DB  210,221                             ; rcr           %cl,%ch
19134  DB  65,254                              ; rex.B         (bad)
19135  DB  210,221                             ; rcr           %cl,%ch
19136  DB  65,254                              ; rex.B         (bad)
19137  DB  210,221                             ; rcr           %cl,%ch
19138  DB  65,0,0                              ; add           %al,(%r8)
19139  DB  0,75,0                              ; add           %cl,0x0(%rbx)
19140  DB  0,0                                 ; add           %al,(%rax)
19141  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
19142  DB  0,75,0                              ; add           %cl,0x0(%rbx)
19143  DB  0,0                                 ; add           %al,(%rax)
19144  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
19145  DB  0,52,0                              ; add           %dh,(%rax,%rax,1)
19146  DB  0,0                                 ; add           %al,(%rax)
19147  DB  52,0                                ; xor           $0x0,%al
19148  DB  0,0                                 ; add           %al,(%rax)
19149  DB  52,0                                ; xor           $0x0,%al
19150  DB  0,0                                 ; add           %al,(%rax)
19151  DB  52,255                              ; xor           $0xff,%al
19152  DB  255                                 ; (bad)
19153  DB  127,0                               ; jg            4594 <.literal16+0x1d4>
19154  DB  255                                 ; (bad)
19155  DB  255                                 ; (bad)
19156  DB  127,0                               ; jg            4598 <.literal16+0x1d8>
19157  DB  255                                 ; (bad)
19158  DB  255                                 ; (bad)
19159  DB  127,0                               ; jg            459c <.literal16+0x1dc>
19160  DB  255                                 ; (bad)
19161  DB  255                                 ; (bad)
19162  DB  127,0                               ; jg            45a0 <.literal16+0x1e0>
19163  DB  0,0                                 ; add           %al,(%rax)
19164  DB  0,63                                ; add           %bh,(%rdi)
19165  DB  0,0                                 ; add           %al,(%rax)
19166  DB  0,63                                ; add           %bh,(%rdi)
19167  DB  0,0                                 ; add           %al,(%rax)
19168  DB  0,63                                ; add           %bh,(%rdi)
19169  DB  0,0                                 ; add           %al,(%rax)
19170  DB  0,63                                ; add           %bh,(%rdi)
19171  DB  119,115                             ; ja            4625 <.literal16+0x265>
19172  DB  248                                 ; clc
19173  DB  194,119,115                         ; retq          $0x7377
19174  DB  248                                 ; clc
19175  DB  194,119,115                         ; retq          $0x7377
19176  DB  248                                 ; clc
19177  DB  194,119,115                         ; retq          $0x7377
19178  DB  248                                 ; clc
19179  DB  194,117,191                         ; retq          $0xbf75
19180  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
19181  DB  63                                  ; (bad)
19182  DB  117,191                             ; jne           4589 <.literal16+0x1c9>
19183  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
19184  DB  63                                  ; (bad)
19185  DB  249                                 ; stc
19186  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19187  DB  249                                 ; stc
19188  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19189  DB  249                                 ; stc
19190  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19191  DB  249                                 ; stc
19192  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19193  DB  163,233,220,63,163,233,220,63,163   ; movabs        %eax,0xa33fdce9a33fdce9
19194  DB  233,220,63,163,233                  ; jmpq          ffffffffe9a385ca <_sk_callback_sse2+0xffffffffe9a342b5>
19195  DB  220,63                              ; fdivrl        (%rdi)
19196  DB  0,0                                 ; add           %al,(%rax)
19197  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
19198  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
19199  DB  63                                  ; (bad)
19200  DB  0,0                                 ; add           %al,(%rax)
19201  DB  128,63,81                           ; cmpb          $0x51,(%rdi)
19202  DB  140,242                             ; mov           %?,%edx
19203  DB  66,81                               ; rex.X         push %rcx
19204  DB  140,242                             ; mov           %?,%edx
19205  DB  66,81                               ; rex.X         push %rcx
19206  DB  140,242                             ; mov           %?,%edx
19207  DB  66,81                               ; rex.X         push %rcx
19208  DB  140,242                             ; mov           %?,%edx
19209  DB  66,141,188,190,63,141,188,190       ; lea           -0x414372c1(%rsi,%r15,4),%edi
19210  DB  63                                  ; (bad)
19211  DB  141,188,190,63,141,188,190          ; lea           -0x414372c1(%rsi,%rdi,4),%edi
19212  DB  63                                  ; (bad)
19213  DB  248                                 ; clc
19214  DB  245                                 ; cmc
19215  DB  154                                 ; (bad)
19216  DB  64,248                              ; rex           clc
19217  DB  245                                 ; cmc
19218  DB  154                                 ; (bad)
19219  DB  64,248                              ; rex           clc
19220  DB  245                                 ; cmc
19221  DB  154                                 ; (bad)
19222  DB  64,248                              ; rex           clc
19223  DB  245                                 ; cmc
19224  DB  154                                 ; (bad)
19225  DB  64,254                              ; rex           (bad)
19226  DB  210,221                             ; rcr           %cl,%ch
19227  DB  65,254                              ; rex.B         (bad)
19228  DB  210,221                             ; rcr           %cl,%ch
19229  DB  65,254                              ; rex.B         (bad)
19230  DB  210,221                             ; rcr           %cl,%ch
19231  DB  65,254                              ; rex.B         (bad)
19232  DB  210,221                             ; rcr           %cl,%ch
19233  DB  65,0,0                              ; add           %al,(%r8)
19234  DB  0,75,0                              ; add           %cl,0x0(%rbx)
19235  DB  0,0                                 ; add           %al,(%rax)
19236  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
19237  DB  0,75,0                              ; add           %cl,0x0(%rbx)
19238  DB  0,0                                 ; add           %al,(%rax)
19239  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
19240  DB  0,52,0                              ; add           %dh,(%rax,%rax,1)
19241  DB  0,0                                 ; add           %al,(%rax)
19242  DB  52,0                                ; xor           $0x0,%al
19243  DB  0,0                                 ; add           %al,(%rax)
19244  DB  52,0                                ; xor           $0x0,%al
19245  DB  0,0                                 ; add           %al,(%rax)
19246  DB  52,255                              ; xor           $0xff,%al
19247  DB  255                                 ; (bad)
19248  DB  127,0                               ; jg            4664 <.literal16+0x2a4>
19249  DB  255                                 ; (bad)
19250  DB  255                                 ; (bad)
19251  DB  127,0                               ; jg            4668 <.literal16+0x2a8>
19252  DB  255                                 ; (bad)
19253  DB  255                                 ; (bad)
19254  DB  127,0                               ; jg            466c <.literal16+0x2ac>
19255  DB  255                                 ; (bad)
19256  DB  255                                 ; (bad)
19257  DB  127,0                               ; jg            4670 <.literal16+0x2b0>
19258  DB  0,0                                 ; add           %al,(%rax)
19259  DB  0,63                                ; add           %bh,(%rdi)
19260  DB  0,0                                 ; add           %al,(%rax)
19261  DB  0,63                                ; add           %bh,(%rdi)
19262  DB  0,0                                 ; add           %al,(%rax)
19263  DB  0,63                                ; add           %bh,(%rdi)
19264  DB  0,0                                 ; add           %al,(%rax)
19265  DB  0,63                                ; add           %bh,(%rdi)
19266  DB  119,115                             ; ja            46f5 <.literal16+0x335>
19267  DB  248                                 ; clc
19268  DB  194,119,115                         ; retq          $0x7377
19269  DB  248                                 ; clc
19270  DB  194,119,115                         ; retq          $0x7377
19271  DB  248                                 ; clc
19272  DB  194,119,115                         ; retq          $0x7377
19273  DB  248                                 ; clc
19274  DB  194,117,191                         ; retq          $0xbf75
19275  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
19276  DB  63                                  ; (bad)
19277  DB  117,191                             ; jne           4659 <.literal16+0x299>
19278  DB  191,63,117,191,191                  ; mov           $0xbfbf753f,%edi
19279  DB  63                                  ; (bad)
19280  DB  249                                 ; stc
19281  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19282  DB  249                                 ; stc
19283  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19284  DB  249                                 ; stc
19285  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19286  DB  249                                 ; stc
19287  DB  68,180,62                           ; rex.R         mov $0x3e,%spl
19288  DB  163,233,220,63,163,233,220,63,163   ; movabs        %eax,0xa33fdce9a33fdce9
19289  DB  233,220,63,163,233                  ; jmpq          ffffffffe9a3869a <_sk_callback_sse2+0xffffffffe9a34385>
19290  DB  220,63                              ; fdivrl        (%rdi)
19291  DB  0,0                                 ; add           %al,(%rax)
19292  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
19293  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
19294  DB  63                                  ; (bad)
19295  DB  0,0                                 ; add           %al,(%rax)
19296  DB  128,63,81                           ; cmpb          $0x51,(%rdi)
19297  DB  140,242                             ; mov           %?,%edx
19298  DB  66,81                               ; rex.X         push %rcx
19299  DB  140,242                             ; mov           %?,%edx
19300  DB  66,81                               ; rex.X         push %rcx
19301  DB  140,242                             ; mov           %?,%edx
19302  DB  66,81                               ; rex.X         push %rcx
19303  DB  140,242                             ; mov           %?,%edx
19304  DB  66,141,188,190,63,141,188,190       ; lea           -0x414372c1(%rsi,%r15,4),%edi
19305  DB  63                                  ; (bad)
19306  DB  141,188,190,63,141,188,190          ; lea           -0x414372c1(%rsi,%rdi,4),%edi
19307  DB  63                                  ; (bad)
19308  DB  248                                 ; clc
19309  DB  245                                 ; cmc
19310  DB  154                                 ; (bad)
19311  DB  64,248                              ; rex           clc
19312  DB  245                                 ; cmc
19313  DB  154                                 ; (bad)
19314  DB  64,248                              ; rex           clc
19315  DB  245                                 ; cmc
19316  DB  154                                 ; (bad)
19317  DB  64,248                              ; rex           clc
19318  DB  245                                 ; cmc
19319  DB  154                                 ; (bad)
19320  DB  64,254                              ; rex           (bad)
19321  DB  210,221                             ; rcr           %cl,%ch
19322  DB  65,254                              ; rex.B         (bad)
19323  DB  210,221                             ; rcr           %cl,%ch
19324  DB  65,254                              ; rex.B         (bad)
19325  DB  210,221                             ; rcr           %cl,%ch
19326  DB  65,254                              ; rex.B         (bad)
19327  DB  210,221                             ; rcr           %cl,%ch
19328  DB  65,0,0                              ; add           %al,(%r8)
19329  DB  0,75,0                              ; add           %cl,0x0(%rbx)
19330  DB  0,0                                 ; add           %al,(%rax)
19331  DB  75,0,0                              ; rex.WXB       add %al,(%r8)
19332  DB  0,75,0                              ; add           %cl,0x0(%rbx)
19333  DB  0,0                                 ; add           %al,(%rax)
19334  DB  75,0,128,0,0,0,128                  ; rex.WXB       add %al,-0x80000000(%r8)
19335  DB  0,0                                 ; add           %al,(%rax)
19336  DB  0,128,0,0,0,128                     ; add           %al,-0x80000000(%rax)
19337  DB  0,0                                 ; add           %al,(%rax)
19338  DB  0,0                                 ; add           %al,(%rax)
19339  DB  0,56                                ; add           %bh,(%rax)
19340  DB  0,0                                 ; add           %al,(%rax)
19341  DB  0,56                                ; add           %bh,(%rax)
19342  DB  0,0                                 ; add           %al,(%rax)
19343  DB  0,56                                ; add           %bh,(%rax)
19344  DB  0,0                                 ; add           %al,(%rax)
19345  DB  0,56                                ; add           %bh,(%rax)
19346  DB  0,0                                 ; add           %al,(%rax)
19347  DB  0,128,0,0,0,128                     ; add           %al,-0x80000000(%rax)
19348  DB  0,0                                 ; add           %al,(%rax)
19349  DB  0,128,0,0,0,128                     ; add           %al,-0x80000000(%rax)
19350  DB  0,4,0                               ; add           %al,(%rax,%rax,1)
19351  DB  128,0,4                             ; addb          $0x4,(%rax)
19352  DB  0,128,0,4,0,128                     ; add           %al,-0x7ffffc00(%rax)
19353  DB  0,4,0                               ; add           %al,(%rax,%rax,1)
19354  DB  128,0,128                           ; addb          $0x80,(%rax)
19355  DB  0,0                                 ; add           %al,(%rax)
19356  DB  0,128,0,0,0,128                     ; add           %al,-0x80000000(%rax)
19357  DB  0,0                                 ; add           %al,(%rax)
19358  DB  0,128,0,0,0,0                       ; add           %al,0x0(%rax)
19359  DB  0,56                                ; add           %bh,(%rax)
19360  DB  0,0                                 ; add           %al,(%rax)
19361  DB  0,56                                ; add           %bh,(%rax)
19362  DB  0,0                                 ; add           %al,(%rax)
19363  DB  0,56                                ; add           %bh,(%rax)
19364  DB  0,0                                 ; add           %al,(%rax)
19365  DB  0,56                                ; add           %bh,(%rax)
19366  DB  0,0                                 ; add           %al,(%rax)
19367  DB  0,128,0,0,0,128                     ; add           %al,-0x80000000(%rax)
19368  DB  0,0                                 ; add           %al,(%rax)
19369  DB  0,128,0,0,0,128                     ; add           %al,-0x80000000(%rax)
19370  DB  0,4,0                               ; add           %al,(%rax,%rax,1)
19371  DB  128,0,4                             ; addb          $0x4,(%rax)
19372  DB  0,128,0,4,0,128                     ; add           %al,-0x7ffffc00(%rax)
19373  DB  0,4,0                               ; add           %al,(%rax,%rax,1)
19374  DB  128,0,0                             ; addb          $0x0,(%rax)
19375  DB  0,128,0,0,0,128                     ; add           %al,-0x80000000(%rax)
19376  DB  0,0                                 ; add           %al,(%rax)
19377  DB  0,128,0,0,0,128                     ; add           %al,-0x80000000(%rax)
19378  DB  0,0                                 ; add           %al,(%rax)
19379  DB  128,56,0                            ; cmpb          $0x0,(%rax)
19380  DB  0,128,56,0,0,128                    ; add           %al,-0x7fffffc8(%rax)
19381  DB  56,0                                ; cmp           %al,(%rax)
19382  DB  0,128,56,0,64,254                   ; add           %al,-0x1bfffc8(%rax)
19383  DB  255,0                               ; incl          (%rax)
19384  DB  64,254                              ; rex           (bad)
19385  DB  255,0                               ; incl          (%rax)
19386  DB  64,254                              ; rex           (bad)
19387  DB  255,0                               ; incl          (%rax)
19388  DB  64,254                              ; rex           (bad)
19389  DB  255,0                               ; incl          (%rax)
19390  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
19391  DB  63                                  ; (bad)
19392  DB  0,0                                 ; add           %al,(%rax)
19393  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
19394  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
19395  DB  63                                  ; (bad)
19396  DB  0,0                                 ; add           %al,(%rax)
19397  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
19398  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
19399  DB  63                                  ; (bad)
19400  DB  0,0                                 ; add           %al,(%rax)
19401  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
19402  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
19403  DB  63                                  ; (bad)
19404  DB  0,0                                 ; add           %al,(%rax)
19405  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
19406  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
19407  DB  63                                  ; (bad)
19408  DB  0,0                                 ; add           %al,(%rax)
19409  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
19410  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
19411  DB  63                                  ; (bad)
19412  DB  0,0                                 ; add           %al,(%rax)
19413  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
19414  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
19415  DB  63                                  ; (bad)
19416ENDIF
19417END
19418