SkJumper_generated_win.S revision 67e617149df4336b77a3ccdf5ea7d557c7a33166
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,130,65,0,0        ; vbroadcastss  0x4182(%rip),%ymm1        # 42dc <_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,102,65,0,0        ; vbroadcastss  0x4166(%rip),%ymm2        # 42e0 <_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,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
1866  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
1867  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
1868  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1869  DB  196,98,125,88,232                   ; vpbroadcastd  %xmm0,%ymm13
1870  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
1871  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1872  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
1873  DB  196,65,125,219,210                  ; vpand         %ymm10,%ymm0,%ymm10
1874  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
1875  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1876  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
1877  DB  197,45,235,208                      ; vpor          %ymm0,%ymm10,%ymm10
1878  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
1879  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1880  DB  196,98,125,88,240                   ; vpbroadcastd  %xmm0,%ymm14
1881  DB  196,66,37,186,245                   ; vfmsub231ps   %ymm13,%ymm11,%ymm14
1882  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
1883  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1884  DB  196,98,125,88,216                   ; vpbroadcastd  %xmm0,%ymm11
1885  DB  196,66,45,172,222                   ; vfnmadd213ps  %ymm14,%ymm10,%ymm11
1886  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
1887  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1888  DB  196,98,125,88,232                   ; vpbroadcastd  %xmm0,%ymm13
1889  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
1890  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1891  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
1892  DB  197,172,88,192                      ; vaddps        %ymm0,%ymm10,%ymm0
1893  DB  197,148,94,192                      ; vdivps        %ymm0,%ymm13,%ymm0
1894  DB  197,164,92,192                      ; vsubps        %ymm0,%ymm11,%ymm0
1895  DB  197,28,89,216                       ; vmulps        %ymm0,%ymm12,%ymm11
1896  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
1897  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
1898  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
1899  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1900  DB  196,98,125,88,224                   ; vpbroadcastd  %xmm0,%ymm12
1901  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
1902  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1903  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
1904  DB  196,65,124,88,219                   ; vaddps        %ymm11,%ymm0,%ymm11
1905  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
1906  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1907  DB  196,98,125,88,232                   ; vpbroadcastd  %xmm0,%ymm13
1908  DB  196,66,45,172,235                   ; vfnmadd213ps  %ymm11,%ymm10,%ymm13
1909  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
1910  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1911  DB  196,98,125,88,216                   ; vpbroadcastd  %xmm0,%ymm11
1912  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
1913  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
1914  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
1915  DB  196,193,124,92,194                  ; vsubps        %ymm10,%ymm0,%ymm0
1916  DB  197,164,94,192                      ; vdivps        %ymm0,%ymm11,%ymm0
1917  DB  197,148,88,192                      ; vaddps        %ymm0,%ymm13,%ymm0
1918  DB  197,156,89,192                      ; vmulps        %ymm0,%ymm12,%ymm0
1919  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
1920  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
1921  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
1922  DB  196,195,125,74,193,128              ; vblendvps     %ymm8,%ymm9,%ymm0,%ymm0
1923  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
1924  DB  196,65,124,95,192                   ; vmaxps        %ymm8,%ymm0,%ymm8
1925  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
1926  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
1927  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
1928  DB  197,188,93,192                      ; vminps        %ymm0,%ymm8,%ymm0
1929  DB  72,173                              ; lods          %ds:(%rsi),%rax
1930  DB  255,224                             ; jmpq          *%rax
1931
1932PUBLIC _sk_parametric_g_hsw
1933_sk_parametric_g_hsw LABEL PROC
1934  DB  72,173                              ; lods          %ds:(%rsi),%rax
1935  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
1936  DB  196,65,116,194,192,2                ; vcmpleps      %ymm8,%ymm1,%ymm8
1937  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
1938  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
1939  DB  196,66,117,168,202                  ; vfmadd213ps   %ymm10,%ymm1,%ymm9
1940  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
1941  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
1942  DB  196,66,117,168,211                  ; vfmadd213ps   %ymm11,%ymm1,%ymm10
1943  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
1944  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
1945  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
1946  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1947  DB  196,98,125,88,233                   ; vpbroadcastd  %xmm1,%ymm13
1948  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
1949  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1950  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
1951  DB  196,65,117,219,210                  ; vpand         %ymm10,%ymm1,%ymm10
1952  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
1953  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1954  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
1955  DB  197,45,235,209                      ; vpor          %ymm1,%ymm10,%ymm10
1956  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
1957  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1958  DB  196,98,125,88,241                   ; vpbroadcastd  %xmm1,%ymm14
1959  DB  196,66,37,186,245                   ; vfmsub231ps   %ymm13,%ymm11,%ymm14
1960  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
1961  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1962  DB  196,98,125,88,217                   ; vpbroadcastd  %xmm1,%ymm11
1963  DB  196,66,45,172,222                   ; vfnmadd213ps  %ymm14,%ymm10,%ymm11
1964  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
1965  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1966  DB  196,98,125,88,233                   ; vpbroadcastd  %xmm1,%ymm13
1967  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
1968  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1969  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
1970  DB  197,172,88,201                      ; vaddps        %ymm1,%ymm10,%ymm1
1971  DB  197,148,94,201                      ; vdivps        %ymm1,%ymm13,%ymm1
1972  DB  197,164,92,201                      ; vsubps        %ymm1,%ymm11,%ymm1
1973  DB  197,28,89,217                       ; vmulps        %ymm1,%ymm12,%ymm11
1974  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
1975  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
1976  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
1977  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1978  DB  196,98,125,88,225                   ; vpbroadcastd  %xmm1,%ymm12
1979  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
1980  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1981  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
1982  DB  196,65,116,88,219                   ; vaddps        %ymm11,%ymm1,%ymm11
1983  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
1984  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1985  DB  196,98,125,88,233                   ; vpbroadcastd  %xmm1,%ymm13
1986  DB  196,66,45,172,235                   ; vfnmadd213ps  %ymm11,%ymm10,%ymm13
1987  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
1988  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1989  DB  196,98,125,88,217                   ; vpbroadcastd  %xmm1,%ymm11
1990  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
1991  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
1992  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
1993  DB  196,193,116,92,202                  ; vsubps        %ymm10,%ymm1,%ymm1
1994  DB  197,164,94,201                      ; vdivps        %ymm1,%ymm11,%ymm1
1995  DB  197,148,88,201                      ; vaddps        %ymm1,%ymm13,%ymm1
1996  DB  197,156,89,201                      ; vmulps        %ymm1,%ymm12,%ymm1
1997  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
1998  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
1999  DB  196,193,116,88,202                  ; vaddps        %ymm10,%ymm1,%ymm1
2000  DB  196,195,117,74,201,128              ; vblendvps     %ymm8,%ymm9,%ymm1,%ymm1
2001  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
2002  DB  196,65,116,95,192                   ; vmaxps        %ymm8,%ymm1,%ymm8
2003  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2004  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2005  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2006  DB  197,188,93,201                      ; vminps        %ymm1,%ymm8,%ymm1
2007  DB  72,173                              ; lods          %ds:(%rsi),%rax
2008  DB  255,224                             ; jmpq          *%rax
2009
2010PUBLIC _sk_parametric_b_hsw
2011_sk_parametric_b_hsw LABEL PROC
2012  DB  72,173                              ; lods          %ds:(%rsi),%rax
2013  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
2014  DB  196,65,108,194,192,2                ; vcmpleps      %ymm8,%ymm2,%ymm8
2015  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
2016  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
2017  DB  196,66,109,168,202                  ; vfmadd213ps   %ymm10,%ymm2,%ymm9
2018  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
2019  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
2020  DB  196,66,109,168,211                  ; vfmadd213ps   %ymm11,%ymm2,%ymm10
2021  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
2022  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
2023  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
2024  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2025  DB  196,98,125,88,234                   ; vpbroadcastd  %xmm2,%ymm13
2026  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
2027  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2028  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2029  DB  196,65,109,219,210                  ; vpand         %ymm10,%ymm2,%ymm10
2030  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
2031  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2032  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2033  DB  197,45,235,210                      ; vpor          %ymm2,%ymm10,%ymm10
2034  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
2035  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2036  DB  196,98,125,88,242                   ; vpbroadcastd  %xmm2,%ymm14
2037  DB  196,66,37,186,245                   ; vfmsub231ps   %ymm13,%ymm11,%ymm14
2038  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
2039  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2040  DB  196,98,125,88,218                   ; vpbroadcastd  %xmm2,%ymm11
2041  DB  196,66,45,172,222                   ; vfnmadd213ps  %ymm14,%ymm10,%ymm11
2042  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
2043  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2044  DB  196,98,125,88,234                   ; vpbroadcastd  %xmm2,%ymm13
2045  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
2046  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2047  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2048  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
2049  DB  197,148,94,210                      ; vdivps        %ymm2,%ymm13,%ymm2
2050  DB  197,164,92,210                      ; vsubps        %ymm2,%ymm11,%ymm2
2051  DB  197,28,89,218                       ; vmulps        %ymm2,%ymm12,%ymm11
2052  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
2053  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
2054  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
2055  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2056  DB  196,98,125,88,226                   ; vpbroadcastd  %xmm2,%ymm12
2057  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
2058  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2059  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2060  DB  196,65,108,88,219                   ; vaddps        %ymm11,%ymm2,%ymm11
2061  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
2062  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2063  DB  196,98,125,88,234                   ; vpbroadcastd  %xmm2,%ymm13
2064  DB  196,66,45,172,235                   ; vfnmadd213ps  %ymm11,%ymm10,%ymm13
2065  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
2066  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2067  DB  196,98,125,88,218                   ; vpbroadcastd  %xmm2,%ymm11
2068  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
2069  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
2070  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2071  DB  196,193,108,92,210                  ; vsubps        %ymm10,%ymm2,%ymm2
2072  DB  197,164,94,210                      ; vdivps        %ymm2,%ymm11,%ymm2
2073  DB  197,148,88,210                      ; vaddps        %ymm2,%ymm13,%ymm2
2074  DB  197,156,89,210                      ; vmulps        %ymm2,%ymm12,%ymm2
2075  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
2076  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
2077  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
2078  DB  196,195,109,74,209,128              ; vblendvps     %ymm8,%ymm9,%ymm2,%ymm2
2079  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
2080  DB  196,65,108,95,192                   ; vmaxps        %ymm8,%ymm2,%ymm8
2081  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2082  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2083  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2084  DB  197,188,93,210                      ; vminps        %ymm2,%ymm8,%ymm2
2085  DB  72,173                              ; lods          %ds:(%rsi),%rax
2086  DB  255,224                             ; jmpq          *%rax
2087
2088PUBLIC _sk_parametric_a_hsw
2089_sk_parametric_a_hsw LABEL PROC
2090  DB  72,173                              ; lods          %ds:(%rsi),%rax
2091  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
2092  DB  196,65,100,194,192,2                ; vcmpleps      %ymm8,%ymm3,%ymm8
2093  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
2094  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
2095  DB  196,66,101,168,202                  ; vfmadd213ps   %ymm10,%ymm3,%ymm9
2096  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
2097  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
2098  DB  196,66,101,168,211                  ; vfmadd213ps   %ymm11,%ymm3,%ymm10
2099  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
2100  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
2101  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
2102  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2103  DB  196,98,125,88,235                   ; vpbroadcastd  %xmm3,%ymm13
2104  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
2105  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2106  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2107  DB  196,65,101,219,210                  ; vpand         %ymm10,%ymm3,%ymm10
2108  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
2109  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2110  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2111  DB  197,45,235,211                      ; vpor          %ymm3,%ymm10,%ymm10
2112  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
2113  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2114  DB  196,98,125,88,243                   ; vpbroadcastd  %xmm3,%ymm14
2115  DB  196,66,37,186,245                   ; vfmsub231ps   %ymm13,%ymm11,%ymm14
2116  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
2117  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2118  DB  196,98,125,88,219                   ; vpbroadcastd  %xmm3,%ymm11
2119  DB  196,66,45,172,222                   ; vfnmadd213ps  %ymm14,%ymm10,%ymm11
2120  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
2121  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2122  DB  196,98,125,88,235                   ; vpbroadcastd  %xmm3,%ymm13
2123  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
2124  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2125  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2126  DB  197,172,88,219                      ; vaddps        %ymm3,%ymm10,%ymm3
2127  DB  197,148,94,219                      ; vdivps        %ymm3,%ymm13,%ymm3
2128  DB  197,164,92,219                      ; vsubps        %ymm3,%ymm11,%ymm3
2129  DB  197,28,89,219                       ; vmulps        %ymm3,%ymm12,%ymm11
2130  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
2131  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
2132  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
2133  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2134  DB  196,98,125,88,227                   ; vpbroadcastd  %xmm3,%ymm12
2135  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
2136  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2137  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2138  DB  196,65,100,88,219                   ; vaddps        %ymm11,%ymm3,%ymm11
2139  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
2140  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2141  DB  196,98,125,88,235                   ; vpbroadcastd  %xmm3,%ymm13
2142  DB  196,66,45,172,235                   ; vfnmadd213ps  %ymm11,%ymm10,%ymm13
2143  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
2144  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2145  DB  196,98,125,88,219                   ; vpbroadcastd  %xmm3,%ymm11
2146  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
2147  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
2148  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2149  DB  196,193,100,92,218                  ; vsubps        %ymm10,%ymm3,%ymm3
2150  DB  197,164,94,219                      ; vdivps        %ymm3,%ymm11,%ymm3
2151  DB  197,148,88,219                      ; vaddps        %ymm3,%ymm13,%ymm3
2152  DB  197,156,89,219                      ; vmulps        %ymm3,%ymm12,%ymm3
2153  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
2154  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
2155  DB  196,193,100,88,218                  ; vaddps        %ymm10,%ymm3,%ymm3
2156  DB  196,195,101,74,217,128              ; vblendvps     %ymm8,%ymm9,%ymm3,%ymm3
2157  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
2158  DB  196,65,100,95,192                   ; vmaxps        %ymm8,%ymm3,%ymm8
2159  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2160  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2161  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2162  DB  197,188,93,219                      ; vminps        %ymm3,%ymm8,%ymm3
2163  DB  72,173                              ; lods          %ds:(%rsi),%rax
2164  DB  255,224                             ; jmpq          *%rax
2165
2166PUBLIC _sk_lab_to_xyz_hsw
2167_sk_lab_to_xyz_hsw LABEL PROC
2168  DB  184,0,0,200,66                      ; mov           $0x42c80000,%eax
2169  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
2170  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
2171  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
2172  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
2173  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
2174  DB  184,0,0,0,67                        ; mov           $0x43000000,%eax
2175  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
2176  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
2177  DB  196,194,53,170,202                  ; vfmsub213ps   %ymm10,%ymm9,%ymm1
2178  DB  196,194,53,170,210                  ; vfmsub213ps   %ymm10,%ymm9,%ymm2
2179  DB  184,0,0,128,65                      ; mov           $0x41800000,%eax
2180  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
2181  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
2182  DB  196,66,125,168,193                  ; vfmadd213ps   %ymm9,%ymm0,%ymm8
2183  DB  184,203,61,13,60                    ; mov           $0x3c0d3dcb,%eax
2184  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2185  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2186  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
2187  DB  184,111,18,3,59                     ; mov           $0x3b03126f,%eax
2188  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2189  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2190  DB  196,194,117,168,192                 ; vfmadd213ps   %ymm8,%ymm1,%ymm0
2191  DB  184,10,215,163,59                   ; mov           $0x3ba3d70a,%eax
2192  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2193  DB  196,98,125,88,201                   ; vpbroadcastd  %xmm1,%ymm9
2194  DB  196,66,109,172,200                  ; vfnmadd213ps  %ymm8,%ymm2,%ymm9
2195  DB  197,252,89,200                      ; vmulps        %ymm0,%ymm0,%ymm1
2196  DB  197,124,89,217                      ; vmulps        %ymm1,%ymm0,%ymm11
2197  DB  184,194,24,17,60                    ; mov           $0x3c1118c2,%eax
2198  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2199  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2200  DB  196,65,108,194,211,1                ; vcmpltps      %ymm11,%ymm2,%ymm10
2201  DB  184,203,61,13,62                    ; mov           $0x3e0d3dcb,%eax
2202  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2203  DB  196,98,125,88,225                   ; vpbroadcastd  %xmm1,%ymm12
2204  DB  196,193,124,92,196                  ; vsubps        %ymm12,%ymm0,%ymm0
2205  DB  184,80,128,3,62                     ; mov           $0x3e038050,%eax
2206  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2207  DB  196,98,125,88,233                   ; vpbroadcastd  %xmm1,%ymm13
2208  DB  196,193,124,89,197                  ; vmulps        %ymm13,%ymm0,%ymm0
2209  DB  196,67,125,74,219,160               ; vblendvps     %ymm10,%ymm11,%ymm0,%ymm11
2210  DB  196,193,60,89,200                   ; vmulps        %ymm8,%ymm8,%ymm1
2211  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
2212  DB  197,108,194,209,1                   ; vcmpltps      %ymm1,%ymm2,%ymm10
2213  DB  196,65,60,92,196                    ; vsubps        %ymm12,%ymm8,%ymm8
2214  DB  196,65,60,89,197                    ; vmulps        %ymm13,%ymm8,%ymm8
2215  DB  196,227,61,74,201,160               ; vblendvps     %ymm10,%ymm1,%ymm8,%ymm1
2216  DB  196,65,52,89,193                    ; vmulps        %ymm9,%ymm9,%ymm8
2217  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
2218  DB  196,193,108,194,208,1               ; vcmpltps      %ymm8,%ymm2,%ymm2
2219  DB  196,65,52,92,204                    ; vsubps        %ymm12,%ymm9,%ymm9
2220  DB  196,65,52,89,205                    ; vmulps        %ymm13,%ymm9,%ymm9
2221  DB  196,67,53,74,192,32                 ; vblendvps     %ymm2,%ymm8,%ymm9,%ymm8
2222  DB  184,31,215,118,63                   ; mov           $0x3f76d71f,%eax
2223  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2224  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2225  DB  197,164,89,192                      ; vmulps        %ymm0,%ymm11,%ymm0
2226  DB  184,246,64,83,63                    ; mov           $0x3f5340f6,%eax
2227  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2228  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2229  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
2230  DB  72,173                              ; lods          %ds:(%rsi),%rax
2231  DB  255,224                             ; jmpq          *%rax
2232
2233PUBLIC _sk_load_a8_hsw
2234_sk_load_a8_hsw LABEL PROC
2235  DB  73,137,200                          ; mov           %rcx,%r8
2236  DB  72,173                              ; lods          %ds:(%rsi),%rax
2237  DB  72,139,0                            ; mov           (%rax),%rax
2238  DB  72,1,248                            ; add           %rdi,%rax
2239  DB  77,133,192                          ; test          %r8,%r8
2240  DB  117,50                              ; jne           23d1 <_sk_load_a8_hsw+0x42>
2241  DB  197,250,126,0                       ; vmovq         (%rax),%xmm0
2242  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2243  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2244  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2245  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2246  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2247  DB  197,252,89,217                      ; vmulps        %ymm1,%ymm0,%ymm3
2248  DB  72,173                              ; lods          %ds:(%rsi),%rax
2249  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
2250  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
2251  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
2252  DB  76,137,193                          ; mov           %r8,%rcx
2253  DB  255,224                             ; jmpq          *%rax
2254  DB  49,201                              ; xor           %ecx,%ecx
2255  DB  77,137,194                          ; mov           %r8,%r10
2256  DB  69,49,201                           ; xor           %r9d,%r9d
2257  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
2258  DB  72,255,192                          ; inc           %rax
2259  DB  73,211,227                          ; shl           %cl,%r11
2260  DB  77,9,217                            ; or            %r11,%r9
2261  DB  72,131,193,8                        ; add           $0x8,%rcx
2262  DB  73,255,202                          ; dec           %r10
2263  DB  117,234                             ; jne           23d9 <_sk_load_a8_hsw+0x4a>
2264  DB  196,193,249,110,193                 ; vmovq         %r9,%xmm0
2265  DB  235,173                             ; jmp           23a3 <_sk_load_a8_hsw+0x14>
2266
2267PUBLIC _sk_gather_a8_hsw
2268_sk_gather_a8_hsw LABEL PROC
2269  DB  65,87                               ; push          %r15
2270  DB  65,86                               ; push          %r14
2271  DB  65,84                               ; push          %r12
2272  DB  83                                  ; push          %rbx
2273  DB  72,173                              ; lods          %ds:(%rsi),%rax
2274  DB  76,139,0                            ; mov           (%rax),%r8
2275  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2276  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2277  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2278  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2279  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2280  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2281  DB  65,137,193                          ; mov           %eax,%r9d
2282  DB  72,193,232,32                       ; shr           $0x20,%rax
2283  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
2284  DB  69,137,211                          ; mov           %r10d,%r11d
2285  DB  73,193,234,32                       ; shr           $0x20,%r10
2286  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2287  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2288  DB  65,137,222                          ; mov           %ebx,%r14d
2289  DB  72,193,235,32                       ; shr           $0x20,%rbx
2290  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
2291  DB  69,137,252                          ; mov           %r15d,%r12d
2292  DB  73,193,239,32                       ; shr           $0x20,%r15
2293  DB  196,131,121,32,4,24,0               ; vpinsrb       $0x0,(%r8,%r11,1),%xmm0,%xmm0
2294  DB  196,131,121,32,4,16,1               ; vpinsrb       $0x1,(%r8,%r10,1),%xmm0,%xmm0
2295  DB  71,15,182,12,8                      ; movzbl        (%r8,%r9,1),%r9d
2296  DB  196,195,121,32,193,2                ; vpinsrb       $0x2,%r9d,%xmm0,%xmm0
2297  DB  65,15,182,4,0                       ; movzbl        (%r8,%rax,1),%eax
2298  DB  196,227,121,32,192,3                ; vpinsrb       $0x3,%eax,%xmm0,%xmm0
2299  DB  67,15,182,4,32                      ; movzbl        (%r8,%r12,1),%eax
2300  DB  196,227,121,32,192,4                ; vpinsrb       $0x4,%eax,%xmm0,%xmm0
2301  DB  67,15,182,4,56                      ; movzbl        (%r8,%r15,1),%eax
2302  DB  196,227,121,32,192,5                ; vpinsrb       $0x5,%eax,%xmm0,%xmm0
2303  DB  67,15,182,4,48                      ; movzbl        (%r8,%r14,1),%eax
2304  DB  196,227,121,32,192,6                ; vpinsrb       $0x6,%eax,%xmm0,%xmm0
2305  DB  65,15,182,4,24                      ; movzbl        (%r8,%rbx,1),%eax
2306  DB  196,227,121,32,192,7                ; vpinsrb       $0x7,%eax,%xmm0,%xmm0
2307  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2308  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2309  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2310  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2311  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2312  DB  197,252,89,217                      ; vmulps        %ymm1,%ymm0,%ymm3
2313  DB  72,173                              ; lods          %ds:(%rsi),%rax
2314  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
2315  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
2316  DB  197,237,239,210                     ; vpxor         %ymm2,%ymm2,%ymm2
2317  DB  91                                  ; pop           %rbx
2318  DB  65,92                               ; pop           %r12
2319  DB  65,94                               ; pop           %r14
2320  DB  65,95                               ; pop           %r15
2321  DB  255,224                             ; jmpq          *%rax
2322
2323PUBLIC _sk_store_a8_hsw
2324_sk_store_a8_hsw LABEL PROC
2325  DB  72,173                              ; lods          %ds:(%rsi),%rax
2326  DB  76,139,8                            ; mov           (%rax),%r9
2327  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
2328  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
2329  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
2330  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
2331  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
2332  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
2333  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
2334  DB  196,65,57,103,192                   ; vpackuswb     %xmm8,%xmm8,%xmm8
2335  DB  72,133,201                          ; test          %rcx,%rcx
2336  DB  117,10                              ; jne           250e <_sk_store_a8_hsw+0x3b>
2337  DB  196,65,123,17,4,57                  ; vmovsd        %xmm8,(%r9,%rdi,1)
2338  DB  72,173                              ; lods          %ds:(%rsi),%rax
2339  DB  255,224                             ; jmpq          *%rax
2340  DB  65,137,200                          ; mov           %ecx,%r8d
2341  DB  65,128,224,7                        ; and           $0x7,%r8b
2342  DB  65,254,200                          ; dec           %r8b
2343  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2344  DB  119,236                             ; ja            250a <_sk_store_a8_hsw+0x37>
2345  DB  196,66,121,48,192                   ; vpmovzxbw     %xmm8,%xmm8
2346  DB  65,15,182,192                       ; movzbl        %r8b,%eax
2347  DB  76,141,5,66,0,0,0                   ; lea           0x42(%rip),%r8        # 2570 <_sk_store_a8_hsw+0x9d>
2348  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
2349  DB  76,1,192                            ; add           %r8,%rax
2350  DB  255,224                             ; jmpq          *%rax
2351  DB  196,67,121,20,68,57,6,12            ; vpextrb       $0xc,%xmm8,0x6(%r9,%rdi,1)
2352  DB  196,67,121,20,68,57,5,10            ; vpextrb       $0xa,%xmm8,0x5(%r9,%rdi,1)
2353  DB  196,67,121,20,68,57,4,8             ; vpextrb       $0x8,%xmm8,0x4(%r9,%rdi,1)
2354  DB  196,67,121,20,68,57,3,6             ; vpextrb       $0x6,%xmm8,0x3(%r9,%rdi,1)
2355  DB  196,67,121,20,68,57,2,4             ; vpextrb       $0x4,%xmm8,0x2(%r9,%rdi,1)
2356  DB  196,67,121,20,68,57,1,2             ; vpextrb       $0x2,%xmm8,0x1(%r9,%rdi,1)
2357  DB  196,67,121,20,4,57,0                ; vpextrb       $0x0,%xmm8,(%r9,%rdi,1)
2358  DB  235,154                             ; jmp           250a <_sk_store_a8_hsw+0x37>
2359  DB  247,255                             ; idiv          %edi
2360  DB  255                                 ; (bad)
2361  DB  255                                 ; (bad)
2362  DB  239                                 ; out           %eax,(%dx)
2363  DB  255                                 ; (bad)
2364  DB  255                                 ; (bad)
2365  DB  255,231                             ; jmpq          *%rdi
2366  DB  255                                 ; (bad)
2367  DB  255                                 ; (bad)
2368  DB  255                                 ; (bad)
2369  DB  223,255                             ; (bad)
2370  DB  255                                 ; (bad)
2371  DB  255,215                             ; callq         *%rdi
2372  DB  255                                 ; (bad)
2373  DB  255                                 ; (bad)
2374  DB  255,207                             ; dec           %edi
2375  DB  255                                 ; (bad)
2376  DB  255                                 ; (bad)
2377  DB  255,199                             ; inc           %edi
2378  DB  255                                 ; (bad)
2379  DB  255                                 ; (bad)
2380  DB  255                                 ; .byte         0xff
2381
2382PUBLIC _sk_load_g8_hsw
2383_sk_load_g8_hsw LABEL PROC
2384  DB  73,137,200                          ; mov           %rcx,%r8
2385  DB  72,173                              ; lods          %ds:(%rsi),%rax
2386  DB  72,139,0                            ; mov           (%rax),%rax
2387  DB  72,1,248                            ; add           %rdi,%rax
2388  DB  77,133,192                          ; test          %r8,%r8
2389  DB  117,60                              ; jne           25d8 <_sk_load_g8_hsw+0x4c>
2390  DB  197,250,126,0                       ; vmovq         (%rax),%xmm0
2391  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2392  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2393  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2394  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2395  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2396  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2397  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2398  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2399  DB  196,226,125,88,217                  ; vpbroadcastd  %xmm1,%ymm3
2400  DB  72,173                              ; lods          %ds:(%rsi),%rax
2401  DB  76,137,193                          ; mov           %r8,%rcx
2402  DB  197,252,40,200                      ; vmovaps       %ymm0,%ymm1
2403  DB  197,252,40,208                      ; vmovaps       %ymm0,%ymm2
2404  DB  255,224                             ; jmpq          *%rax
2405  DB  49,201                              ; xor           %ecx,%ecx
2406  DB  77,137,194                          ; mov           %r8,%r10
2407  DB  69,49,201                           ; xor           %r9d,%r9d
2408  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
2409  DB  72,255,192                          ; inc           %rax
2410  DB  73,211,227                          ; shl           %cl,%r11
2411  DB  77,9,217                            ; or            %r11,%r9
2412  DB  72,131,193,8                        ; add           $0x8,%rcx
2413  DB  73,255,202                          ; dec           %r10
2414  DB  117,234                             ; jne           25e0 <_sk_load_g8_hsw+0x54>
2415  DB  196,193,249,110,193                 ; vmovq         %r9,%xmm0
2416  DB  235,163                             ; jmp           25a0 <_sk_load_g8_hsw+0x14>
2417
2418PUBLIC _sk_gather_g8_hsw
2419_sk_gather_g8_hsw LABEL PROC
2420  DB  65,87                               ; push          %r15
2421  DB  65,86                               ; push          %r14
2422  DB  65,84                               ; push          %r12
2423  DB  83                                  ; push          %rbx
2424  DB  72,173                              ; lods          %ds:(%rsi),%rax
2425  DB  76,139,0                            ; mov           (%rax),%r8
2426  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2427  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2428  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2429  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2430  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2431  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2432  DB  65,137,193                          ; mov           %eax,%r9d
2433  DB  72,193,232,32                       ; shr           $0x20,%rax
2434  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
2435  DB  69,137,211                          ; mov           %r10d,%r11d
2436  DB  73,193,234,32                       ; shr           $0x20,%r10
2437  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2438  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2439  DB  65,137,222                          ; mov           %ebx,%r14d
2440  DB  72,193,235,32                       ; shr           $0x20,%rbx
2441  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
2442  DB  69,137,252                          ; mov           %r15d,%r12d
2443  DB  73,193,239,32                       ; shr           $0x20,%r15
2444  DB  196,131,121,32,4,24,0               ; vpinsrb       $0x0,(%r8,%r11,1),%xmm0,%xmm0
2445  DB  196,131,121,32,4,16,1               ; vpinsrb       $0x1,(%r8,%r10,1),%xmm0,%xmm0
2446  DB  71,15,182,12,8                      ; movzbl        (%r8,%r9,1),%r9d
2447  DB  196,195,121,32,193,2                ; vpinsrb       $0x2,%r9d,%xmm0,%xmm0
2448  DB  65,15,182,4,0                       ; movzbl        (%r8,%rax,1),%eax
2449  DB  196,227,121,32,192,3                ; vpinsrb       $0x3,%eax,%xmm0,%xmm0
2450  DB  67,15,182,4,32                      ; movzbl        (%r8,%r12,1),%eax
2451  DB  196,227,121,32,192,4                ; vpinsrb       $0x4,%eax,%xmm0,%xmm0
2452  DB  67,15,182,4,56                      ; movzbl        (%r8,%r15,1),%eax
2453  DB  196,227,121,32,192,5                ; vpinsrb       $0x5,%eax,%xmm0,%xmm0
2454  DB  67,15,182,4,48                      ; movzbl        (%r8,%r14,1),%eax
2455  DB  196,227,121,32,192,6                ; vpinsrb       $0x6,%eax,%xmm0,%xmm0
2456  DB  65,15,182,4,24                      ; movzbl        (%r8,%rbx,1),%eax
2457  DB  196,227,121,32,192,7                ; vpinsrb       $0x7,%eax,%xmm0,%xmm0
2458  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2459  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2460  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2461  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2462  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2463  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2464  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2465  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2466  DB  196,226,125,88,217                  ; vpbroadcastd  %xmm1,%ymm3
2467  DB  72,173                              ; lods          %ds:(%rsi),%rax
2468  DB  197,252,40,200                      ; vmovaps       %ymm0,%ymm1
2469  DB  197,252,40,208                      ; vmovaps       %ymm0,%ymm2
2470  DB  91                                  ; pop           %rbx
2471  DB  65,92                               ; pop           %r12
2472  DB  65,94                               ; pop           %r14
2473  DB  65,95                               ; pop           %r15
2474  DB  255,224                             ; jmpq          *%rax
2475
2476PUBLIC _sk_gather_i8_hsw
2477_sk_gather_i8_hsw LABEL PROC
2478  DB  72,173                              ; lods          %ds:(%rsi),%rax
2479  DB  73,137,192                          ; mov           %rax,%r8
2480  DB  77,133,192                          ; test          %r8,%r8
2481  DB  116,5                               ; je            26f3 <_sk_gather_i8_hsw+0xf>
2482  DB  76,137,192                          ; mov           %r8,%rax
2483  DB  235,2                               ; jmp           26f5 <_sk_gather_i8_hsw+0x11>
2484  DB  72,173                              ; lods          %ds:(%rsi),%rax
2485  DB  65,87                               ; push          %r15
2486  DB  65,86                               ; push          %r14
2487  DB  65,85                               ; push          %r13
2488  DB  65,84                               ; push          %r12
2489  DB  83                                  ; push          %rbx
2490  DB  76,139,8                            ; mov           (%rax),%r9
2491  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2492  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2493  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2494  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2495  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2496  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2497  DB  65,137,194                          ; mov           %eax,%r10d
2498  DB  72,193,232,32                       ; shr           $0x20,%rax
2499  DB  196,193,249,126,195                 ; vmovq         %xmm0,%r11
2500  DB  69,137,222                          ; mov           %r11d,%r14d
2501  DB  73,193,235,32                       ; shr           $0x20,%r11
2502  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2503  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2504  DB  65,137,223                          ; mov           %ebx,%r15d
2505  DB  72,193,235,32                       ; shr           $0x20,%rbx
2506  DB  196,193,249,126,196                 ; vmovq         %xmm0,%r12
2507  DB  69,137,229                          ; mov           %r12d,%r13d
2508  DB  73,193,236,32                       ; shr           $0x20,%r12
2509  DB  196,131,121,32,4,49,0               ; vpinsrb       $0x0,(%r9,%r14,1),%xmm0,%xmm0
2510  DB  196,131,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%r11,1),%xmm0,%xmm0
2511  DB  196,131,121,32,4,17,2               ; vpinsrb       $0x2,(%r9,%r10,1),%xmm0,%xmm0
2512  DB  196,195,121,32,4,1,3                ; vpinsrb       $0x3,(%r9,%rax,1),%xmm0,%xmm0
2513  DB  196,131,121,32,4,41,4               ; vpinsrb       $0x4,(%r9,%r13,1),%xmm0,%xmm0
2514  DB  196,131,121,32,4,33,5               ; vpinsrb       $0x5,(%r9,%r12,1),%xmm0,%xmm0
2515  DB  196,131,121,32,4,57,6               ; vpinsrb       $0x6,(%r9,%r15,1),%xmm0,%xmm0
2516  DB  196,195,121,32,4,25,7               ; vpinsrb       $0x7,(%r9,%rbx,1),%xmm0,%xmm0
2517  DB  196,226,125,49,192                  ; vpmovzxbd     %xmm0,%ymm0
2518  DB  73,139,64,8                         ; mov           0x8(%r8),%rax
2519  DB  197,245,118,201                     ; vpcmpeqd      %ymm1,%ymm1,%ymm1
2520  DB  196,226,117,144,28,128              ; vpgatherdd    %ymm1,(%rax,%ymm0,4),%ymm3
2521  DB  184,255,0,0,0                       ; mov           $0xff,%eax
2522  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2523  DB  196,226,125,88,208                  ; vpbroadcastd  %xmm0,%ymm2
2524  DB  197,237,219,195                     ; vpand         %ymm3,%ymm2,%ymm0
2525  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2526  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
2527  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2528  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
2529  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
2530  DB  197,245,114,211,8                   ; vpsrld        $0x8,%ymm3,%ymm1
2531  DB  197,237,219,201                     ; vpand         %ymm1,%ymm2,%ymm1
2532  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2533  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
2534  DB  197,181,114,211,16                  ; vpsrld        $0x10,%ymm3,%ymm9
2535  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
2536  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
2537  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
2538  DB  197,229,114,211,24                  ; vpsrld        $0x18,%ymm3,%ymm3
2539  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
2540  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
2541  DB  72,173                              ; lods          %ds:(%rsi),%rax
2542  DB  91                                  ; pop           %rbx
2543  DB  65,92                               ; pop           %r12
2544  DB  65,93                               ; pop           %r13
2545  DB  65,94                               ; pop           %r14
2546  DB  65,95                               ; pop           %r15
2547  DB  255,224                             ; jmpq          *%rax
2548
2549PUBLIC _sk_load_565_hsw
2550_sk_load_565_hsw LABEL PROC
2551  DB  72,173                              ; lods          %ds:(%rsi),%rax
2552  DB  76,139,16                           ; mov           (%rax),%r10
2553  DB  72,133,201                          ; test          %rcx,%rcx
2554  DB  15,133,149,0,0,0                    ; jne           28a7 <_sk_load_565_hsw+0xa3>
2555  DB  196,193,122,111,4,122               ; vmovdqu       (%r10,%rdi,2),%xmm0
2556  DB  196,226,125,51,208                  ; vpmovzxwd     %xmm0,%ymm2
2557  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
2558  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2559  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2560  DB  197,253,219,194                     ; vpand         %ymm2,%ymm0,%ymm0
2561  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2562  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
2563  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2564  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2565  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2566  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
2567  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2568  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2569  DB  197,245,219,202                     ; vpand         %ymm2,%ymm1,%ymm1
2570  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2571  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
2572  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2573  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2574  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
2575  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
2576  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2577  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2578  DB  197,229,219,210                     ; vpand         %ymm2,%ymm3,%ymm2
2579  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
2580  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
2581  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2582  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2583  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
2584  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2585  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2586  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2587  DB  72,173                              ; lods          %ds:(%rsi),%rax
2588  DB  255,224                             ; jmpq          *%rax
2589  DB  65,137,200                          ; mov           %ecx,%r8d
2590  DB  65,128,224,7                        ; and           $0x7,%r8b
2591  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
2592  DB  65,254,200                          ; dec           %r8b
2593  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2594  DB  15,135,89,255,255,255               ; ja            2818 <_sk_load_565_hsw+0x14>
2595  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
2596  DB  76,141,13,74,0,0,0                  ; lea           0x4a(%rip),%r9        # 2914 <_sk_load_565_hsw+0x110>
2597  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
2598  DB  76,1,200                            ; add           %r9,%rax
2599  DB  255,224                             ; jmpq          *%rax
2600  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
2601  DB  196,193,121,196,68,122,12,6         ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm0,%xmm0
2602  DB  196,193,121,196,68,122,10,5         ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm0,%xmm0
2603  DB  196,193,121,196,68,122,8,4          ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm0,%xmm0
2604  DB  196,193,121,196,68,122,6,3          ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm0,%xmm0
2605  DB  196,193,121,196,68,122,4,2          ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0
2606  DB  196,193,121,196,68,122,2,1          ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0
2607  DB  196,193,121,196,4,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm0,%xmm0
2608  DB  233,5,255,255,255                   ; jmpq          2818 <_sk_load_565_hsw+0x14>
2609  DB  144                                 ; nop
2610  DB  243,255                             ; repz          (bad)
2611  DB  255                                 ; (bad)
2612  DB  255                                 ; (bad)
2613  DB  235,255                             ; jmp           2919 <_sk_load_565_hsw+0x115>
2614  DB  255                                 ; (bad)
2615  DB  255,227                             ; jmpq          *%rbx
2616  DB  255                                 ; (bad)
2617  DB  255                                 ; (bad)
2618  DB  255                                 ; (bad)
2619  DB  219,255                             ; (bad)
2620  DB  255                                 ; (bad)
2621  DB  255,211                             ; callq         *%rbx
2622  DB  255                                 ; (bad)
2623  DB  255                                 ; (bad)
2624  DB  255,203                             ; dec           %ebx
2625  DB  255                                 ; (bad)
2626  DB  255                                 ; (bad)
2627  DB  255                                 ; (bad)
2628  DB  191                                 ; .byte         0xbf
2629  DB  255                                 ; (bad)
2630  DB  255                                 ; (bad)
2631  DB  255                                 ; .byte         0xff
2632
2633PUBLIC _sk_gather_565_hsw
2634_sk_gather_565_hsw LABEL PROC
2635  DB  65,87                               ; push          %r15
2636  DB  65,86                               ; push          %r14
2637  DB  65,84                               ; push          %r12
2638  DB  83                                  ; push          %rbx
2639  DB  72,173                              ; lods          %ds:(%rsi),%rax
2640  DB  76,139,0                            ; mov           (%rax),%r8
2641  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2642  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2643  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2644  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2645  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2646  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2647  DB  65,137,193                          ; mov           %eax,%r9d
2648  DB  72,193,232,32                       ; shr           $0x20,%rax
2649  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
2650  DB  69,137,211                          ; mov           %r10d,%r11d
2651  DB  73,193,234,32                       ; shr           $0x20,%r10
2652  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2653  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2654  DB  65,137,222                          ; mov           %ebx,%r14d
2655  DB  72,193,235,32                       ; shr           $0x20,%rbx
2656  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
2657  DB  69,137,252                          ; mov           %r15d,%r12d
2658  DB  73,193,239,32                       ; shr           $0x20,%r15
2659  DB  71,15,183,20,80                     ; movzwl        (%r8,%r10,2),%r10d
2660  DB  71,15,183,28,88                     ; movzwl        (%r8,%r11,2),%r11d
2661  DB  196,193,121,110,195                 ; vmovd         %r11d,%xmm0
2662  DB  196,193,121,196,194,1               ; vpinsrw       $0x1,%r10d,%xmm0,%xmm0
2663  DB  71,15,183,12,72                     ; movzwl        (%r8,%r9,2),%r9d
2664  DB  196,193,121,196,193,2               ; vpinsrw       $0x2,%r9d,%xmm0,%xmm0
2665  DB  65,15,183,4,64                      ; movzwl        (%r8,%rax,2),%eax
2666  DB  197,249,196,192,3                   ; vpinsrw       $0x3,%eax,%xmm0,%xmm0
2667  DB  67,15,183,4,96                      ; movzwl        (%r8,%r12,2),%eax
2668  DB  197,249,196,192,4                   ; vpinsrw       $0x4,%eax,%xmm0,%xmm0
2669  DB  67,15,183,4,120                     ; movzwl        (%r8,%r15,2),%eax
2670  DB  197,249,196,192,5                   ; vpinsrw       $0x5,%eax,%xmm0,%xmm0
2671  DB  67,15,183,4,112                     ; movzwl        (%r8,%r14,2),%eax
2672  DB  197,249,196,192,6                   ; vpinsrw       $0x6,%eax,%xmm0,%xmm0
2673  DB  65,15,183,4,88                      ; movzwl        (%r8,%rbx,2),%eax
2674  DB  197,249,196,192,7                   ; vpinsrw       $0x7,%eax,%xmm0,%xmm0
2675  DB  196,226,125,51,208                  ; vpmovzxwd     %xmm0,%ymm2
2676  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
2677  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2678  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2679  DB  197,253,219,194                     ; vpand         %ymm2,%ymm0,%ymm0
2680  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2681  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
2682  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2683  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2684  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2685  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
2686  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2687  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2688  DB  197,245,219,202                     ; vpand         %ymm2,%ymm1,%ymm1
2689  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2690  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
2691  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2692  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2693  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
2694  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
2695  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2696  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2697  DB  197,229,219,210                     ; vpand         %ymm2,%ymm3,%ymm2
2698  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
2699  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
2700  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2701  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2702  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
2703  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
2704  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2705  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2706  DB  72,173                              ; lods          %ds:(%rsi),%rax
2707  DB  91                                  ; pop           %rbx
2708  DB  65,92                               ; pop           %r12
2709  DB  65,94                               ; pop           %r14
2710  DB  65,95                               ; pop           %r15
2711  DB  255,224                             ; jmpq          *%rax
2712
2713PUBLIC _sk_store_565_hsw
2714_sk_store_565_hsw LABEL PROC
2715  DB  72,173                              ; lods          %ds:(%rsi),%rax
2716  DB  76,139,8                            ; mov           (%rax),%r9
2717  DB  184,0,0,248,65                      ; mov           $0x41f80000,%eax
2718  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
2719  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
2720  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
2721  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
2722  DB  196,193,53,114,241,11               ; vpslld        $0xb,%ymm9,%ymm9
2723  DB  184,0,0,124,66                      ; mov           $0x427c0000,%eax
2724  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
2725  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
2726  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
2727  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
2728  DB  196,193,45,114,242,5                ; vpslld        $0x5,%ymm10,%ymm10
2729  DB  196,65,45,235,201                   ; vpor          %ymm9,%ymm10,%ymm9
2730  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
2731  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
2732  DB  196,65,53,235,192                   ; vpor          %ymm8,%ymm9,%ymm8
2733  DB  196,67,125,57,193,1                 ; vextracti128  $0x1,%ymm8,%xmm9
2734  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
2735  DB  72,133,201                          ; test          %rcx,%rcx
2736  DB  117,10                              ; jne           2adf <_sk_store_565_hsw+0x6c>
2737  DB  196,65,122,127,4,121                ; vmovdqu       %xmm8,(%r9,%rdi,2)
2738  DB  72,173                              ; lods          %ds:(%rsi),%rax
2739  DB  255,224                             ; jmpq          *%rax
2740  DB  65,137,200                          ; mov           %ecx,%r8d
2741  DB  65,128,224,7                        ; and           $0x7,%r8b
2742  DB  65,254,200                          ; dec           %r8b
2743  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2744  DB  119,236                             ; ja            2adb <_sk_store_565_hsw+0x68>
2745  DB  65,15,182,192                       ; movzbl        %r8b,%eax
2746  DB  76,141,5,66,0,0,0                   ; lea           0x42(%rip),%r8        # 2b3c <_sk_store_565_hsw+0xc9>
2747  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
2748  DB  76,1,192                            ; add           %r8,%rax
2749  DB  255,224                             ; jmpq          *%rax
2750  DB  196,67,121,21,68,121,12,6           ; vpextrw       $0x6,%xmm8,0xc(%r9,%rdi,2)
2751  DB  196,67,121,21,68,121,10,5           ; vpextrw       $0x5,%xmm8,0xa(%r9,%rdi,2)
2752  DB  196,67,121,21,68,121,8,4            ; vpextrw       $0x4,%xmm8,0x8(%r9,%rdi,2)
2753  DB  196,67,121,21,68,121,6,3            ; vpextrw       $0x3,%xmm8,0x6(%r9,%rdi,2)
2754  DB  196,67,121,21,68,121,4,2            ; vpextrw       $0x2,%xmm8,0x4(%r9,%rdi,2)
2755  DB  196,67,121,21,68,121,2,1            ; vpextrw       $0x1,%xmm8,0x2(%r9,%rdi,2)
2756  DB  196,67,121,21,4,121,0               ; vpextrw       $0x0,%xmm8,(%r9,%rdi,2)
2757  DB  235,159                             ; jmp           2adb <_sk_store_565_hsw+0x68>
2758  DB  247,255                             ; idiv          %edi
2759  DB  255                                 ; (bad)
2760  DB  255                                 ; (bad)
2761  DB  239                                 ; out           %eax,(%dx)
2762  DB  255                                 ; (bad)
2763  DB  255                                 ; (bad)
2764  DB  255,231                             ; jmpq          *%rdi
2765  DB  255                                 ; (bad)
2766  DB  255                                 ; (bad)
2767  DB  255                                 ; (bad)
2768  DB  223,255                             ; (bad)
2769  DB  255                                 ; (bad)
2770  DB  255,215                             ; callq         *%rdi
2771  DB  255                                 ; (bad)
2772  DB  255                                 ; (bad)
2773  DB  255,207                             ; dec           %edi
2774  DB  255                                 ; (bad)
2775  DB  255                                 ; (bad)
2776  DB  255,199                             ; inc           %edi
2777  DB  255                                 ; (bad)
2778  DB  255                                 ; (bad)
2779  DB  255                                 ; .byte         0xff
2780
2781PUBLIC _sk_load_4444_hsw
2782_sk_load_4444_hsw LABEL PROC
2783  DB  72,173                              ; lods          %ds:(%rsi),%rax
2784  DB  76,139,16                           ; mov           (%rax),%r10
2785  DB  72,133,201                          ; test          %rcx,%rcx
2786  DB  15,133,179,0,0,0                    ; jne           2c19 <_sk_load_4444_hsw+0xc1>
2787  DB  196,193,122,111,4,122               ; vmovdqu       (%r10,%rdi,2),%xmm0
2788  DB  196,98,125,51,200                   ; vpmovzxwd     %xmm0,%ymm9
2789  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
2790  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2791  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2792  DB  196,193,125,219,193                 ; vpand         %ymm9,%ymm0,%ymm0
2793  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2794  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
2795  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2796  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2797  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2798  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
2799  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2800  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2801  DB  196,193,117,219,201                 ; vpand         %ymm9,%ymm1,%ymm1
2802  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2803  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
2804  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2805  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2806  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
2807  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
2808  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2809  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2810  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
2811  DB  197,124,91,194                      ; vcvtdq2ps     %ymm2,%ymm8
2812  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
2813  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2814  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2815  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
2816  DB  184,15,0,0,0                        ; mov           $0xf,%eax
2817  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2818  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2819  DB  196,193,101,219,217                 ; vpand         %ymm9,%ymm3,%ymm3
2820  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
2821  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
2822  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2823  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2824  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
2825  DB  72,173                              ; lods          %ds:(%rsi),%rax
2826  DB  255,224                             ; jmpq          *%rax
2827  DB  65,137,200                          ; mov           %ecx,%r8d
2828  DB  65,128,224,7                        ; and           $0x7,%r8b
2829  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
2830  DB  65,254,200                          ; dec           %r8b
2831  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2832  DB  15,135,59,255,255,255               ; ja            2b6c <_sk_load_4444_hsw+0x14>
2833  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
2834  DB  76,141,13,76,0,0,0                  ; lea           0x4c(%rip),%r9        # 2c88 <_sk_load_4444_hsw+0x130>
2835  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
2836  DB  76,1,200                            ; add           %r9,%rax
2837  DB  255,224                             ; jmpq          *%rax
2838  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
2839  DB  196,193,121,196,68,122,12,6         ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm0,%xmm0
2840  DB  196,193,121,196,68,122,10,5         ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm0,%xmm0
2841  DB  196,193,121,196,68,122,8,4          ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm0,%xmm0
2842  DB  196,193,121,196,68,122,6,3          ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm0,%xmm0
2843  DB  196,193,121,196,68,122,4,2          ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0
2844  DB  196,193,121,196,68,122,2,1          ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0
2845  DB  196,193,121,196,4,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm0,%xmm0
2846  DB  233,231,254,255,255                 ; jmpq          2b6c <_sk_load_4444_hsw+0x14>
2847  DB  15,31,0                             ; nopl          (%rax)
2848  DB  241                                 ; icebp
2849  DB  255                                 ; (bad)
2850  DB  255                                 ; (bad)
2851  DB  255                                 ; (bad)
2852  DB  233,255,255,255,225                 ; jmpq          ffffffffe2002c90 <_sk_callback_hsw+0xffffffffe1ffeace>
2853  DB  255                                 ; (bad)
2854  DB  255                                 ; (bad)
2855  DB  255                                 ; (bad)
2856  DB  217,255                             ; fcos
2857  DB  255                                 ; (bad)
2858  DB  255,209                             ; callq         *%rcx
2859  DB  255                                 ; (bad)
2860  DB  255                                 ; (bad)
2861  DB  255,201                             ; dec           %ecx
2862  DB  255                                 ; (bad)
2863  DB  255                                 ; (bad)
2864  DB  255                                 ; (bad)
2865  DB  189                                 ; .byte         0xbd
2866  DB  255                                 ; (bad)
2867  DB  255                                 ; (bad)
2868  DB  255                                 ; .byte         0xff
2869
2870PUBLIC _sk_gather_4444_hsw
2871_sk_gather_4444_hsw LABEL PROC
2872  DB  65,87                               ; push          %r15
2873  DB  65,86                               ; push          %r14
2874  DB  65,84                               ; push          %r12
2875  DB  83                                  ; push          %rbx
2876  DB  72,173                              ; lods          %ds:(%rsi),%rax
2877  DB  76,139,0                            ; mov           (%rax),%r8
2878  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
2879  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
2880  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
2881  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
2882  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
2883  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
2884  DB  65,137,193                          ; mov           %eax,%r9d
2885  DB  72,193,232,32                       ; shr           $0x20,%rax
2886  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
2887  DB  69,137,211                          ; mov           %r10d,%r11d
2888  DB  73,193,234,32                       ; shr           $0x20,%r10
2889  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
2890  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
2891  DB  65,137,222                          ; mov           %ebx,%r14d
2892  DB  72,193,235,32                       ; shr           $0x20,%rbx
2893  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
2894  DB  69,137,252                          ; mov           %r15d,%r12d
2895  DB  73,193,239,32                       ; shr           $0x20,%r15
2896  DB  71,15,183,20,80                     ; movzwl        (%r8,%r10,2),%r10d
2897  DB  71,15,183,28,88                     ; movzwl        (%r8,%r11,2),%r11d
2898  DB  196,193,121,110,195                 ; vmovd         %r11d,%xmm0
2899  DB  196,193,121,196,194,1               ; vpinsrw       $0x1,%r10d,%xmm0,%xmm0
2900  DB  71,15,183,12,72                     ; movzwl        (%r8,%r9,2),%r9d
2901  DB  196,193,121,196,193,2               ; vpinsrw       $0x2,%r9d,%xmm0,%xmm0
2902  DB  65,15,183,4,64                      ; movzwl        (%r8,%rax,2),%eax
2903  DB  197,249,196,192,3                   ; vpinsrw       $0x3,%eax,%xmm0,%xmm0
2904  DB  67,15,183,4,96                      ; movzwl        (%r8,%r12,2),%eax
2905  DB  197,249,196,192,4                   ; vpinsrw       $0x4,%eax,%xmm0,%xmm0
2906  DB  67,15,183,4,120                     ; movzwl        (%r8,%r15,2),%eax
2907  DB  197,249,196,192,5                   ; vpinsrw       $0x5,%eax,%xmm0,%xmm0
2908  DB  67,15,183,4,112                     ; movzwl        (%r8,%r14,2),%eax
2909  DB  197,249,196,192,6                   ; vpinsrw       $0x6,%eax,%xmm0,%xmm0
2910  DB  65,15,183,4,88                      ; movzwl        (%r8,%rbx,2),%eax
2911  DB  197,249,196,192,7                   ; vpinsrw       $0x7,%eax,%xmm0,%xmm0
2912  DB  196,98,125,51,200                   ; vpmovzxwd     %xmm0,%ymm9
2913  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
2914  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
2915  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
2916  DB  196,193,125,219,193                 ; vpand         %ymm9,%ymm0,%ymm0
2917  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
2918  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
2919  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2920  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2921  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
2922  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
2923  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
2924  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
2925  DB  196,193,117,219,201                 ; vpand         %ymm9,%ymm1,%ymm1
2926  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
2927  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
2928  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2929  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2930  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
2931  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
2932  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2933  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2934  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
2935  DB  197,124,91,194                      ; vcvtdq2ps     %ymm2,%ymm8
2936  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
2937  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
2938  DB  196,226,125,88,210                  ; vpbroadcastd  %xmm2,%ymm2
2939  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
2940  DB  184,15,0,0,0                        ; mov           $0xf,%eax
2941  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2942  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2943  DB  196,193,101,219,217                 ; vpand         %ymm9,%ymm3,%ymm3
2944  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
2945  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
2946  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
2947  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
2948  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
2949  DB  72,173                              ; lods          %ds:(%rsi),%rax
2950  DB  91                                  ; pop           %rbx
2951  DB  65,92                               ; pop           %r12
2952  DB  65,94                               ; pop           %r14
2953  DB  65,95                               ; pop           %r15
2954  DB  255,224                             ; jmpq          *%rax
2955
2956PUBLIC _sk_store_4444_hsw
2957_sk_store_4444_hsw LABEL PROC
2958  DB  72,173                              ; lods          %ds:(%rsi),%rax
2959  DB  76,139,8                            ; mov           (%rax),%r9
2960  DB  184,0,0,112,65                      ; mov           $0x41700000,%eax
2961  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
2962  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
2963  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
2964  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
2965  DB  196,193,53,114,241,12               ; vpslld        $0xc,%ymm9,%ymm9
2966  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
2967  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
2968  DB  196,193,45,114,242,8                ; vpslld        $0x8,%ymm10,%ymm10
2969  DB  196,65,45,235,201                   ; vpor          %ymm9,%ymm10,%ymm9
2970  DB  197,60,89,210                       ; vmulps        %ymm2,%ymm8,%ymm10
2971  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
2972  DB  196,193,45,114,242,4                ; vpslld        $0x4,%ymm10,%ymm10
2973  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
2974  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
2975  DB  196,65,45,235,192                   ; vpor          %ymm8,%ymm10,%ymm8
2976  DB  196,65,53,235,192                   ; vpor          %ymm8,%ymm9,%ymm8
2977  DB  196,67,125,57,193,1                 ; vextracti128  $0x1,%ymm8,%xmm9
2978  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
2979  DB  72,133,201                          ; test          %rcx,%rcx
2980  DB  117,10                              ; jne           2e77 <_sk_store_4444_hsw+0x72>
2981  DB  196,65,122,127,4,121                ; vmovdqu       %xmm8,(%r9,%rdi,2)
2982  DB  72,173                              ; lods          %ds:(%rsi),%rax
2983  DB  255,224                             ; jmpq          *%rax
2984  DB  65,137,200                          ; mov           %ecx,%r8d
2985  DB  65,128,224,7                        ; and           $0x7,%r8b
2986  DB  65,254,200                          ; dec           %r8b
2987  DB  65,128,248,6                        ; cmp           $0x6,%r8b
2988  DB  119,236                             ; ja            2e73 <_sk_store_4444_hsw+0x6e>
2989  DB  65,15,182,192                       ; movzbl        %r8b,%eax
2990  DB  76,141,5,66,0,0,0                   ; lea           0x42(%rip),%r8        # 2ed4 <_sk_store_4444_hsw+0xcf>
2991  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
2992  DB  76,1,192                            ; add           %r8,%rax
2993  DB  255,224                             ; jmpq          *%rax
2994  DB  196,67,121,21,68,121,12,6           ; vpextrw       $0x6,%xmm8,0xc(%r9,%rdi,2)
2995  DB  196,67,121,21,68,121,10,5           ; vpextrw       $0x5,%xmm8,0xa(%r9,%rdi,2)
2996  DB  196,67,121,21,68,121,8,4            ; vpextrw       $0x4,%xmm8,0x8(%r9,%rdi,2)
2997  DB  196,67,121,21,68,121,6,3            ; vpextrw       $0x3,%xmm8,0x6(%r9,%rdi,2)
2998  DB  196,67,121,21,68,121,4,2            ; vpextrw       $0x2,%xmm8,0x4(%r9,%rdi,2)
2999  DB  196,67,121,21,68,121,2,1            ; vpextrw       $0x1,%xmm8,0x2(%r9,%rdi,2)
3000  DB  196,67,121,21,4,121,0               ; vpextrw       $0x0,%xmm8,(%r9,%rdi,2)
3001  DB  235,159                             ; jmp           2e73 <_sk_store_4444_hsw+0x6e>
3002  DB  247,255                             ; idiv          %edi
3003  DB  255                                 ; (bad)
3004  DB  255                                 ; (bad)
3005  DB  239                                 ; out           %eax,(%dx)
3006  DB  255                                 ; (bad)
3007  DB  255                                 ; (bad)
3008  DB  255,231                             ; jmpq          *%rdi
3009  DB  255                                 ; (bad)
3010  DB  255                                 ; (bad)
3011  DB  255                                 ; (bad)
3012  DB  223,255                             ; (bad)
3013  DB  255                                 ; (bad)
3014  DB  255,215                             ; callq         *%rdi
3015  DB  255                                 ; (bad)
3016  DB  255                                 ; (bad)
3017  DB  255,207                             ; dec           %edi
3018  DB  255                                 ; (bad)
3019  DB  255                                 ; (bad)
3020  DB  255,199                             ; inc           %edi
3021  DB  255                                 ; (bad)
3022  DB  255                                 ; (bad)
3023  DB  255                                 ; .byte         0xff
3024
3025PUBLIC _sk_load_8888_hsw
3026_sk_load_8888_hsw LABEL PROC
3027  DB  73,137,200                          ; mov           %rcx,%r8
3028  DB  72,173                              ; lods          %ds:(%rsi),%rax
3029  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
3030  DB  76,3,8                              ; add           (%rax),%r9
3031  DB  77,133,192                          ; test          %r8,%r8
3032  DB  117,104                             ; jne           2f6d <_sk_load_8888_hsw+0x7d>
3033  DB  196,193,126,111,25                  ; vmovdqu       (%r9),%ymm3
3034  DB  184,255,0,0,0                       ; mov           $0xff,%eax
3035  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3036  DB  196,226,125,88,208                  ; vpbroadcastd  %xmm0,%ymm2
3037  DB  197,237,219,195                     ; vpand         %ymm3,%ymm2,%ymm0
3038  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
3039  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
3040  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
3041  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
3042  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
3043  DB  197,245,114,211,8                   ; vpsrld        $0x8,%ymm3,%ymm1
3044  DB  197,237,219,201                     ; vpand         %ymm1,%ymm2,%ymm1
3045  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
3046  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
3047  DB  197,181,114,211,16                  ; vpsrld        $0x10,%ymm3,%ymm9
3048  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
3049  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
3050  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
3051  DB  197,229,114,211,24                  ; vpsrld        $0x18,%ymm3,%ymm3
3052  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
3053  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
3054  DB  72,173                              ; lods          %ds:(%rsi),%rax
3055  DB  76,137,193                          ; mov           %r8,%rcx
3056  DB  255,224                             ; jmpq          *%rax
3057  DB  185,8,0,0,0                         ; mov           $0x8,%ecx
3058  DB  68,41,193                           ; sub           %r8d,%ecx
3059  DB  192,225,3                           ; shl           $0x3,%cl
3060  DB  72,199,192,255,255,255,255          ; mov           $0xffffffffffffffff,%rax
3061  DB  72,211,232                          ; shr           %cl,%rax
3062  DB  196,225,249,110,192                 ; vmovq         %rax,%xmm0
3063  DB  196,226,125,33,192                  ; vpmovsxbd     %xmm0,%ymm0
3064  DB  196,194,125,140,25                  ; vpmaskmovd    (%r9),%ymm0,%ymm3
3065  DB  233,116,255,255,255                 ; jmpq          2f0a <_sk_load_8888_hsw+0x1a>
3066
3067PUBLIC _sk_gather_8888_hsw
3068_sk_gather_8888_hsw LABEL PROC
3069  DB  72,173                              ; lods          %ds:(%rsi),%rax
3070  DB  76,139,0                            ; mov           (%rax),%r8
3071  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
3072  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
3073  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
3074  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
3075  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
3076  DB  197,245,118,201                     ; vpcmpeqd      %ymm1,%ymm1,%ymm1
3077  DB  196,194,117,144,28,128              ; vpgatherdd    %ymm1,(%r8,%ymm0,4),%ymm3
3078  DB  184,255,0,0,0                       ; mov           $0xff,%eax
3079  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3080  DB  196,226,125,88,208                  ; vpbroadcastd  %xmm0,%ymm2
3081  DB  197,237,219,195                     ; vpand         %ymm3,%ymm2,%ymm0
3082  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
3083  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
3084  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
3085  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
3086  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
3087  DB  197,245,114,211,8                   ; vpsrld        $0x8,%ymm3,%ymm1
3088  DB  197,237,219,201                     ; vpand         %ymm1,%ymm2,%ymm1
3089  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
3090  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
3091  DB  197,181,114,211,16                  ; vpsrld        $0x10,%ymm3,%ymm9
3092  DB  196,193,109,219,209                 ; vpand         %ymm9,%ymm2,%ymm2
3093  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
3094  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
3095  DB  197,229,114,211,24                  ; vpsrld        $0x18,%ymm3,%ymm3
3096  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
3097  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
3098  DB  72,173                              ; lods          %ds:(%rsi),%rax
3099  DB  255,224                             ; jmpq          *%rax
3100
3101PUBLIC _sk_store_8888_hsw
3102_sk_store_8888_hsw LABEL PROC
3103  DB  73,137,200                          ; mov           %rcx,%r8
3104  DB  72,173                              ; lods          %ds:(%rsi),%rax
3105  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
3106  DB  76,3,8                              ; add           (%rax),%r9
3107  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
3108  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
3109  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3110  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
3111  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
3112  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
3113  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
3114  DB  196,193,45,114,242,8                ; vpslld        $0x8,%ymm10,%ymm10
3115  DB  196,65,45,235,201                   ; vpor          %ymm9,%ymm10,%ymm9
3116  DB  197,60,89,210                       ; vmulps        %ymm2,%ymm8,%ymm10
3117  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
3118  DB  196,193,45,114,242,16               ; vpslld        $0x10,%ymm10,%ymm10
3119  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
3120  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
3121  DB  196,193,61,114,240,24               ; vpslld        $0x18,%ymm8,%ymm8
3122  DB  196,65,45,235,192                   ; vpor          %ymm8,%ymm10,%ymm8
3123  DB  196,65,53,235,192                   ; vpor          %ymm8,%ymm9,%ymm8
3124  DB  77,133,192                          ; test          %r8,%r8
3125  DB  117,12                              ; jne           3090 <_sk_store_8888_hsw+0x74>
3126  DB  196,65,126,127,1                    ; vmovdqu       %ymm8,(%r9)
3127  DB  72,173                              ; lods          %ds:(%rsi),%rax
3128  DB  76,137,193                          ; mov           %r8,%rcx
3129  DB  255,224                             ; jmpq          *%rax
3130  DB  185,8,0,0,0                         ; mov           $0x8,%ecx
3131  DB  68,41,193                           ; sub           %r8d,%ecx
3132  DB  192,225,3                           ; shl           $0x3,%cl
3133  DB  72,199,192,255,255,255,255          ; mov           $0xffffffffffffffff,%rax
3134  DB  72,211,232                          ; shr           %cl,%rax
3135  DB  196,97,249,110,200                  ; vmovq         %rax,%xmm9
3136  DB  196,66,125,33,201                   ; vpmovsxbd     %xmm9,%ymm9
3137  DB  196,66,53,142,1                     ; vpmaskmovd    %ymm8,%ymm9,(%r9)
3138  DB  235,211                             ; jmp           3089 <_sk_store_8888_hsw+0x6d>
3139
3140PUBLIC _sk_load_f16_hsw
3141_sk_load_f16_hsw LABEL PROC
3142  DB  72,173                              ; lods          %ds:(%rsi),%rax
3143  DB  72,139,0                            ; mov           (%rax),%rax
3144  DB  72,133,201                          ; test          %rcx,%rcx
3145  DB  117,97                              ; jne           3121 <_sk_load_f16_hsw+0x6b>
3146  DB  197,121,16,4,248                    ; vmovupd       (%rax,%rdi,8),%xmm8
3147  DB  197,249,16,84,248,16                ; vmovupd       0x10(%rax,%rdi,8),%xmm2
3148  DB  197,249,16,92,248,32                ; vmovupd       0x20(%rax,%rdi,8),%xmm3
3149  DB  197,122,111,76,248,48               ; vmovdqu       0x30(%rax,%rdi,8),%xmm9
3150  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
3151  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
3152  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
3153  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
3154  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
3155  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
3156  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
3157  DB  197,241,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm3
3158  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
3159  DB  196,226,125,19,192                  ; vcvtph2ps     %xmm0,%ymm0
3160  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
3161  DB  196,226,125,19,201                  ; vcvtph2ps     %xmm1,%ymm1
3162  DB  197,177,108,211                     ; vpunpcklqdq   %xmm3,%xmm9,%xmm2
3163  DB  196,226,125,19,210                  ; vcvtph2ps     %xmm2,%ymm2
3164  DB  197,177,109,219                     ; vpunpckhqdq   %xmm3,%xmm9,%xmm3
3165  DB  196,226,125,19,219                  ; vcvtph2ps     %xmm3,%ymm3
3166  DB  72,173                              ; lods          %ds:(%rsi),%rax
3167  DB  255,224                             ; jmpq          *%rax
3168  DB  197,123,16,4,248                    ; vmovsd        (%rax,%rdi,8),%xmm8
3169  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
3170  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3171  DB  116,79                              ; je            3180 <_sk_load_f16_hsw+0xca>
3172  DB  197,57,22,68,248,8                  ; vmovhpd       0x8(%rax,%rdi,8),%xmm8,%xmm8
3173  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3174  DB  114,67                              ; jb            3180 <_sk_load_f16_hsw+0xca>
3175  DB  197,251,16,84,248,16                ; vmovsd        0x10(%rax,%rdi,8),%xmm2
3176  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3177  DB  116,68                              ; je            318d <_sk_load_f16_hsw+0xd7>
3178  DB  197,233,22,84,248,24                ; vmovhpd       0x18(%rax,%rdi,8),%xmm2,%xmm2
3179  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3180  DB  114,56                              ; jb            318d <_sk_load_f16_hsw+0xd7>
3181  DB  197,251,16,92,248,32                ; vmovsd        0x20(%rax,%rdi,8),%xmm3
3182  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3183  DB  15,132,114,255,255,255              ; je            30d7 <_sk_load_f16_hsw+0x21>
3184  DB  197,225,22,92,248,40                ; vmovhpd       0x28(%rax,%rdi,8),%xmm3,%xmm3
3185  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3186  DB  15,130,98,255,255,255               ; jb            30d7 <_sk_load_f16_hsw+0x21>
3187  DB  197,122,126,76,248,48               ; vmovq         0x30(%rax,%rdi,8),%xmm9
3188  DB  233,87,255,255,255                  ; jmpq          30d7 <_sk_load_f16_hsw+0x21>
3189  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
3190  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
3191  DB  233,74,255,255,255                  ; jmpq          30d7 <_sk_load_f16_hsw+0x21>
3192  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
3193  DB  233,65,255,255,255                  ; jmpq          30d7 <_sk_load_f16_hsw+0x21>
3194
3195PUBLIC _sk_gather_f16_hsw
3196_sk_gather_f16_hsw LABEL PROC
3197  DB  72,173                              ; lods          %ds:(%rsi),%rax
3198  DB  76,139,0                            ; mov           (%rax),%r8
3199  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
3200  DB  196,226,125,88,80,16                ; vpbroadcastd  0x10(%rax),%ymm2
3201  DB  196,226,109,64,201                  ; vpmulld       %ymm1,%ymm2,%ymm1
3202  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
3203  DB  197,245,254,192                     ; vpaddd        %ymm0,%ymm1,%ymm0
3204  DB  197,245,118,201                     ; vpcmpeqd      %ymm1,%ymm1,%ymm1
3205  DB  197,237,118,210                     ; vpcmpeqd      %ymm2,%ymm2,%ymm2
3206  DB  196,194,237,144,28,192              ; vpgatherdq    %ymm2,(%r8,%xmm0,8),%ymm3
3207  DB  196,227,125,57,192,1                ; vextracti128  $0x1,%ymm0,%xmm0
3208  DB  196,194,245,144,20,192              ; vpgatherdq    %ymm1,(%r8,%xmm0,8),%ymm2
3209  DB  196,227,125,57,216,1                ; vextracti128  $0x1,%ymm3,%xmm0
3210  DB  196,227,125,57,209,1                ; vextracti128  $0x1,%ymm2,%xmm1
3211  DB  197,97,97,192                       ; vpunpcklwd    %xmm0,%xmm3,%xmm8
3212  DB  197,225,105,192                     ; vpunpckhwd    %xmm0,%xmm3,%xmm0
3213  DB  197,233,97,217                      ; vpunpcklwd    %xmm1,%xmm2,%xmm3
3214  DB  197,233,105,201                     ; vpunpckhwd    %xmm1,%xmm2,%xmm1
3215  DB  197,57,97,200                       ; vpunpcklwd    %xmm0,%xmm8,%xmm9
3216  DB  197,57,105,192                      ; vpunpckhwd    %xmm0,%xmm8,%xmm8
3217  DB  197,225,97,209                      ; vpunpcklwd    %xmm1,%xmm3,%xmm2
3218  DB  197,225,105,217                     ; vpunpckhwd    %xmm1,%xmm3,%xmm3
3219  DB  197,177,108,194                     ; vpunpcklqdq   %xmm2,%xmm9,%xmm0
3220  DB  196,226,125,19,192                  ; vcvtph2ps     %xmm0,%ymm0
3221  DB  197,177,109,202                     ; vpunpckhqdq   %xmm2,%xmm9,%xmm1
3222  DB  196,226,125,19,201                  ; vcvtph2ps     %xmm1,%ymm1
3223  DB  197,185,108,211                     ; vpunpcklqdq   %xmm3,%xmm8,%xmm2
3224  DB  196,226,125,19,210                  ; vcvtph2ps     %xmm2,%ymm2
3225  DB  197,185,109,219                     ; vpunpckhqdq   %xmm3,%xmm8,%xmm3
3226  DB  196,226,125,19,219                  ; vcvtph2ps     %xmm3,%ymm3
3227  DB  72,173                              ; lods          %ds:(%rsi),%rax
3228  DB  255,224                             ; jmpq          *%rax
3229
3230PUBLIC _sk_store_f16_hsw
3231_sk_store_f16_hsw LABEL PROC
3232  DB  72,173                              ; lods          %ds:(%rsi),%rax
3233  DB  72,139,0                            ; mov           (%rax),%rax
3234  DB  196,195,125,29,192,4                ; vcvtps2ph     $0x4,%ymm0,%xmm8
3235  DB  196,195,125,29,201,4                ; vcvtps2ph     $0x4,%ymm1,%xmm9
3236  DB  196,195,125,29,210,4                ; vcvtps2ph     $0x4,%ymm2,%xmm10
3237  DB  196,195,125,29,219,4                ; vcvtps2ph     $0x4,%ymm3,%xmm11
3238  DB  196,65,57,97,225                    ; vpunpcklwd    %xmm9,%xmm8,%xmm12
3239  DB  196,65,57,105,193                   ; vpunpckhwd    %xmm9,%xmm8,%xmm8
3240  DB  196,65,41,97,203                    ; vpunpcklwd    %xmm11,%xmm10,%xmm9
3241  DB  196,65,41,105,235                   ; vpunpckhwd    %xmm11,%xmm10,%xmm13
3242  DB  196,65,25,98,217                    ; vpunpckldq    %xmm9,%xmm12,%xmm11
3243  DB  196,65,25,106,209                   ; vpunpckhdq    %xmm9,%xmm12,%xmm10
3244  DB  196,65,57,98,205                    ; vpunpckldq    %xmm13,%xmm8,%xmm9
3245  DB  196,65,57,106,197                   ; vpunpckhdq    %xmm13,%xmm8,%xmm8
3246  DB  72,133,201                          ; test          %rcx,%rcx
3247  DB  117,27                              ; jne           3285 <_sk_store_f16_hsw+0x65>
3248  DB  197,120,17,28,248                   ; vmovups       %xmm11,(%rax,%rdi,8)
3249  DB  197,120,17,84,248,16                ; vmovups       %xmm10,0x10(%rax,%rdi,8)
3250  DB  197,120,17,76,248,32                ; vmovups       %xmm9,0x20(%rax,%rdi,8)
3251  DB  197,122,127,68,248,48               ; vmovdqu       %xmm8,0x30(%rax,%rdi,8)
3252  DB  72,173                              ; lods          %ds:(%rsi),%rax
3253  DB  255,224                             ; jmpq          *%rax
3254  DB  197,121,214,28,248                  ; vmovq         %xmm11,(%rax,%rdi,8)
3255  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3256  DB  116,241                             ; je            3281 <_sk_store_f16_hsw+0x61>
3257  DB  197,121,23,92,248,8                 ; vmovhpd       %xmm11,0x8(%rax,%rdi,8)
3258  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3259  DB  114,229                             ; jb            3281 <_sk_store_f16_hsw+0x61>
3260  DB  197,121,214,84,248,16               ; vmovq         %xmm10,0x10(%rax,%rdi,8)
3261  DB  116,221                             ; je            3281 <_sk_store_f16_hsw+0x61>
3262  DB  197,121,23,84,248,24                ; vmovhpd       %xmm10,0x18(%rax,%rdi,8)
3263  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3264  DB  114,209                             ; jb            3281 <_sk_store_f16_hsw+0x61>
3265  DB  197,121,214,76,248,32               ; vmovq         %xmm9,0x20(%rax,%rdi,8)
3266  DB  116,201                             ; je            3281 <_sk_store_f16_hsw+0x61>
3267  DB  197,121,23,76,248,40                ; vmovhpd       %xmm9,0x28(%rax,%rdi,8)
3268  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3269  DB  114,189                             ; jb            3281 <_sk_store_f16_hsw+0x61>
3270  DB  197,121,214,68,248,48               ; vmovq         %xmm8,0x30(%rax,%rdi,8)
3271  DB  235,181                             ; jmp           3281 <_sk_store_f16_hsw+0x61>
3272
3273PUBLIC _sk_load_u16_be_hsw
3274_sk_load_u16_be_hsw LABEL PROC
3275  DB  72,173                              ; lods          %ds:(%rsi),%rax
3276  DB  76,139,0                            ; mov           (%rax),%r8
3277  DB  72,141,4,189,0,0,0,0                ; lea           0x0(,%rdi,4),%rax
3278  DB  72,133,201                          ; test          %rcx,%rcx
3279  DB  15,133,205,0,0,0                    ; jne           33af <_sk_load_u16_be_hsw+0xe3>
3280  DB  196,65,121,16,4,64                  ; vmovupd       (%r8,%rax,2),%xmm8
3281  DB  196,193,121,16,84,64,16             ; vmovupd       0x10(%r8,%rax,2),%xmm2
3282  DB  196,193,121,16,92,64,32             ; vmovupd       0x20(%r8,%rax,2),%xmm3
3283  DB  196,65,122,111,76,64,48             ; vmovdqu       0x30(%r8,%rax,2),%xmm9
3284  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
3285  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
3286  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
3287  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
3288  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
3289  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
3290  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
3291  DB  197,113,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm11
3292  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
3293  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3294  DB  196,98,125,88,208                   ; vpbroadcastd  %xmm0,%ymm10
3295  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
3296  DB  197,241,113,240,8                   ; vpsllw        $0x8,%xmm0,%xmm1
3297  DB  197,249,113,208,8                   ; vpsrlw        $0x8,%xmm0,%xmm0
3298  DB  197,241,235,192                     ; vpor          %xmm0,%xmm1,%xmm0
3299  DB  196,226,125,51,192                  ; vpmovzxwd     %xmm0,%ymm0
3300  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
3301  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
3302  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
3303  DB  197,233,113,241,8                   ; vpsllw        $0x8,%xmm1,%xmm2
3304  DB  197,241,113,209,8                   ; vpsrlw        $0x8,%xmm1,%xmm1
3305  DB  197,233,235,201                     ; vpor          %xmm1,%xmm2,%xmm1
3306  DB  196,226,125,51,201                  ; vpmovzxwd     %xmm1,%ymm1
3307  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
3308  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
3309  DB  196,193,49,108,211                  ; vpunpcklqdq   %xmm11,%xmm9,%xmm2
3310  DB  197,225,113,242,8                   ; vpsllw        $0x8,%xmm2,%xmm3
3311  DB  197,233,113,210,8                   ; vpsrlw        $0x8,%xmm2,%xmm2
3312  DB  197,225,235,210                     ; vpor          %xmm2,%xmm3,%xmm2
3313  DB  196,226,125,51,210                  ; vpmovzxwd     %xmm2,%ymm2
3314  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
3315  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
3316  DB  196,193,49,109,219                  ; vpunpckhqdq   %xmm11,%xmm9,%xmm3
3317  DB  197,185,113,243,8                   ; vpsllw        $0x8,%xmm3,%xmm8
3318  DB  197,225,113,211,8                   ; vpsrlw        $0x8,%xmm3,%xmm3
3319  DB  197,185,235,219                     ; vpor          %xmm3,%xmm8,%xmm3
3320  DB  196,226,125,51,219                  ; vpmovzxwd     %xmm3,%ymm3
3321  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
3322  DB  197,172,89,219                      ; vmulps        %ymm3,%ymm10,%ymm3
3323  DB  72,173                              ; lods          %ds:(%rsi),%rax
3324  DB  255,224                             ; jmpq          *%rax
3325  DB  196,65,123,16,4,64                  ; vmovsd        (%r8,%rax,2),%xmm8
3326  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
3327  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3328  DB  116,85                              ; je            3415 <_sk_load_u16_be_hsw+0x149>
3329  DB  196,65,57,22,68,64,8                ; vmovhpd       0x8(%r8,%rax,2),%xmm8,%xmm8
3330  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3331  DB  114,72                              ; jb            3415 <_sk_load_u16_be_hsw+0x149>
3332  DB  196,193,123,16,84,64,16             ; vmovsd        0x10(%r8,%rax,2),%xmm2
3333  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3334  DB  116,72                              ; je            3422 <_sk_load_u16_be_hsw+0x156>
3335  DB  196,193,105,22,84,64,24             ; vmovhpd       0x18(%r8,%rax,2),%xmm2,%xmm2
3336  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3337  DB  114,59                              ; jb            3422 <_sk_load_u16_be_hsw+0x156>
3338  DB  196,193,123,16,92,64,32             ; vmovsd        0x20(%r8,%rax,2),%xmm3
3339  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3340  DB  15,132,5,255,255,255                ; je            32fd <_sk_load_u16_be_hsw+0x31>
3341  DB  196,193,97,22,92,64,40              ; vmovhpd       0x28(%r8,%rax,2),%xmm3,%xmm3
3342  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3343  DB  15,130,244,254,255,255              ; jb            32fd <_sk_load_u16_be_hsw+0x31>
3344  DB  196,65,122,126,76,64,48             ; vmovq         0x30(%r8,%rax,2),%xmm9
3345  DB  233,232,254,255,255                 ; jmpq          32fd <_sk_load_u16_be_hsw+0x31>
3346  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
3347  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
3348  DB  233,219,254,255,255                 ; jmpq          32fd <_sk_load_u16_be_hsw+0x31>
3349  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
3350  DB  233,210,254,255,255                 ; jmpq          32fd <_sk_load_u16_be_hsw+0x31>
3351
3352PUBLIC _sk_load_rgb_u16_be_hsw
3353_sk_load_rgb_u16_be_hsw LABEL PROC
3354  DB  72,173                              ; lods          %ds:(%rsi),%rax
3355  DB  76,139,0                            ; mov           (%rax),%r8
3356  DB  72,141,4,127                        ; lea           (%rdi,%rdi,2),%rax
3357  DB  72,133,201                          ; test          %rcx,%rcx
3358  DB  15,133,211,0,0,0                    ; jne           3510 <_sk_load_rgb_u16_be_hsw+0xe5>
3359  DB  196,193,122,111,4,64                ; vmovdqu       (%r8,%rax,2),%xmm0
3360  DB  196,193,122,111,84,64,12            ; vmovdqu       0xc(%r8,%rax,2),%xmm2
3361  DB  196,193,122,111,76,64,24            ; vmovdqu       0x18(%r8,%rax,2),%xmm1
3362  DB  196,193,122,111,92,64,32            ; vmovdqu       0x20(%r8,%rax,2),%xmm3
3363  DB  197,225,115,219,4                   ; vpsrldq       $0x4,%xmm3,%xmm3
3364  DB  197,185,115,216,6                   ; vpsrldq       $0x6,%xmm0,%xmm8
3365  DB  197,177,115,218,6                   ; vpsrldq       $0x6,%xmm2,%xmm9
3366  DB  197,161,115,217,6                   ; vpsrldq       $0x6,%xmm1,%xmm11
3367  DB  197,169,115,219,6                   ; vpsrldq       $0x6,%xmm3,%xmm10
3368  DB  197,249,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm0
3369  DB  196,193,57,97,209                   ; vpunpcklwd    %xmm9,%xmm8,%xmm2
3370  DB  197,241,97,203                      ; vpunpcklwd    %xmm3,%xmm1,%xmm1
3371  DB  196,193,33,97,218                   ; vpunpcklwd    %xmm10,%xmm11,%xmm3
3372  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
3373  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
3374  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
3375  DB  197,241,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm3
3376  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
3377  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3378  DB  196,98,125,88,208                   ; vpbroadcastd  %xmm0,%ymm10
3379  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
3380  DB  197,241,113,240,8                   ; vpsllw        $0x8,%xmm0,%xmm1
3381  DB  197,249,113,208,8                   ; vpsrlw        $0x8,%xmm0,%xmm0
3382  DB  197,241,235,192                     ; vpor          %xmm0,%xmm1,%xmm0
3383  DB  196,226,125,51,192                  ; vpmovzxwd     %xmm0,%ymm0
3384  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
3385  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
3386  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
3387  DB  197,233,113,241,8                   ; vpsllw        $0x8,%xmm1,%xmm2
3388  DB  197,241,113,209,8                   ; vpsrlw        $0x8,%xmm1,%xmm1
3389  DB  197,233,235,201                     ; vpor          %xmm1,%xmm2,%xmm1
3390  DB  196,226,125,51,201                  ; vpmovzxwd     %xmm1,%ymm1
3391  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
3392  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
3393  DB  197,177,108,211                     ; vpunpcklqdq   %xmm3,%xmm9,%xmm2
3394  DB  197,225,113,242,8                   ; vpsllw        $0x8,%xmm2,%xmm3
3395  DB  197,233,113,210,8                   ; vpsrlw        $0x8,%xmm2,%xmm2
3396  DB  197,225,235,210                     ; vpor          %xmm2,%xmm3,%xmm2
3397  DB  196,226,125,51,210                  ; vpmovzxwd     %xmm2,%ymm2
3398  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
3399  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
3400  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
3401  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
3402  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
3403  DB  72,173                              ; lods          %ds:(%rsi),%rax
3404  DB  255,224                             ; jmpq          *%rax
3405  DB  196,193,121,110,4,64                ; vmovd         (%r8,%rax,2),%xmm0
3406  DB  196,193,121,196,68,64,4,2           ; vpinsrw       $0x2,0x4(%r8,%rax,2),%xmm0,%xmm0
3407  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3408  DB  117,5                               ; jne           3529 <_sk_load_rgb_u16_be_hsw+0xfe>
3409  DB  233,72,255,255,255                  ; jmpq          3471 <_sk_load_rgb_u16_be_hsw+0x46>
3410  DB  196,193,121,110,76,64,6             ; vmovd         0x6(%r8,%rax,2),%xmm1
3411  DB  196,65,113,196,68,64,10,2           ; vpinsrw       $0x2,0xa(%r8,%rax,2),%xmm1,%xmm8
3412  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3413  DB  114,26                              ; jb            3558 <_sk_load_rgb_u16_be_hsw+0x12d>
3414  DB  196,193,121,110,76,64,12            ; vmovd         0xc(%r8,%rax,2),%xmm1
3415  DB  196,193,113,196,84,64,16,2          ; vpinsrw       $0x2,0x10(%r8,%rax,2),%xmm1,%xmm2
3416  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3417  DB  117,10                              ; jne           355d <_sk_load_rgb_u16_be_hsw+0x132>
3418  DB  233,25,255,255,255                  ; jmpq          3471 <_sk_load_rgb_u16_be_hsw+0x46>
3419  DB  233,20,255,255,255                  ; jmpq          3471 <_sk_load_rgb_u16_be_hsw+0x46>
3420  DB  196,193,121,110,76,64,18            ; vmovd         0x12(%r8,%rax,2),%xmm1
3421  DB  196,65,113,196,76,64,22,2           ; vpinsrw       $0x2,0x16(%r8,%rax,2),%xmm1,%xmm9
3422  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3423  DB  114,26                              ; jb            358c <_sk_load_rgb_u16_be_hsw+0x161>
3424  DB  196,193,121,110,76,64,24            ; vmovd         0x18(%r8,%rax,2),%xmm1
3425  DB  196,193,113,196,76,64,28,2          ; vpinsrw       $0x2,0x1c(%r8,%rax,2),%xmm1,%xmm1
3426  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3427  DB  117,10                              ; jne           3591 <_sk_load_rgb_u16_be_hsw+0x166>
3428  DB  233,229,254,255,255                 ; jmpq          3471 <_sk_load_rgb_u16_be_hsw+0x46>
3429  DB  233,224,254,255,255                 ; jmpq          3471 <_sk_load_rgb_u16_be_hsw+0x46>
3430  DB  196,193,121,110,92,64,30            ; vmovd         0x1e(%r8,%rax,2),%xmm3
3431  DB  196,65,97,196,92,64,34,2            ; vpinsrw       $0x2,0x22(%r8,%rax,2),%xmm3,%xmm11
3432  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3433  DB  114,20                              ; jb            35ba <_sk_load_rgb_u16_be_hsw+0x18f>
3434  DB  196,193,121,110,92,64,36            ; vmovd         0x24(%r8,%rax,2),%xmm3
3435  DB  196,193,97,196,92,64,40,2           ; vpinsrw       $0x2,0x28(%r8,%rax,2),%xmm3,%xmm3
3436  DB  233,183,254,255,255                 ; jmpq          3471 <_sk_load_rgb_u16_be_hsw+0x46>
3437  DB  233,178,254,255,255                 ; jmpq          3471 <_sk_load_rgb_u16_be_hsw+0x46>
3438
3439PUBLIC _sk_store_u16_be_hsw
3440_sk_store_u16_be_hsw LABEL PROC
3441  DB  72,173                              ; lods          %ds:(%rsi),%rax
3442  DB  76,139,0                            ; mov           (%rax),%r8
3443  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
3444  DB  184,0,255,127,71                    ; mov           $0x477fff00,%eax
3445  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
3446  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3447  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
3448  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
3449  DB  196,67,125,25,202,1                 ; vextractf128  $0x1,%ymm9,%xmm10
3450  DB  196,66,49,43,202                    ; vpackusdw     %xmm10,%xmm9,%xmm9
3451  DB  196,193,41,113,241,8                ; vpsllw        $0x8,%xmm9,%xmm10
3452  DB  196,193,49,113,209,8                ; vpsrlw        $0x8,%xmm9,%xmm9
3453  DB  196,65,41,235,201                   ; vpor          %xmm9,%xmm10,%xmm9
3454  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
3455  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
3456  DB  196,67,125,25,211,1                 ; vextractf128  $0x1,%ymm10,%xmm11
3457  DB  196,66,41,43,211                    ; vpackusdw     %xmm11,%xmm10,%xmm10
3458  DB  196,193,33,113,242,8                ; vpsllw        $0x8,%xmm10,%xmm11
3459  DB  196,193,41,113,210,8                ; vpsrlw        $0x8,%xmm10,%xmm10
3460  DB  196,65,33,235,210                   ; vpor          %xmm10,%xmm11,%xmm10
3461  DB  197,60,89,218                       ; vmulps        %ymm2,%ymm8,%ymm11
3462  DB  196,65,125,91,219                   ; vcvtps2dq     %ymm11,%ymm11
3463  DB  196,67,125,25,220,1                 ; vextractf128  $0x1,%ymm11,%xmm12
3464  DB  196,66,33,43,220                    ; vpackusdw     %xmm12,%xmm11,%xmm11
3465  DB  196,193,25,113,243,8                ; vpsllw        $0x8,%xmm11,%xmm12
3466  DB  196,193,33,113,211,8                ; vpsrlw        $0x8,%xmm11,%xmm11
3467  DB  196,65,25,235,219                   ; vpor          %xmm11,%xmm12,%xmm11
3468  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
3469  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
3470  DB  196,67,125,25,196,1                 ; vextractf128  $0x1,%ymm8,%xmm12
3471  DB  196,66,57,43,196                    ; vpackusdw     %xmm12,%xmm8,%xmm8
3472  DB  196,193,25,113,240,8                ; vpsllw        $0x8,%xmm8,%xmm12
3473  DB  196,193,57,113,208,8                ; vpsrlw        $0x8,%xmm8,%xmm8
3474  DB  196,65,25,235,192                   ; vpor          %xmm8,%xmm12,%xmm8
3475  DB  196,65,49,97,226                    ; vpunpcklwd    %xmm10,%xmm9,%xmm12
3476  DB  196,65,49,105,234                   ; vpunpckhwd    %xmm10,%xmm9,%xmm13
3477  DB  196,65,33,97,200                    ; vpunpcklwd    %xmm8,%xmm11,%xmm9
3478  DB  196,65,33,105,192                   ; vpunpckhwd    %xmm8,%xmm11,%xmm8
3479  DB  196,65,25,98,217                    ; vpunpckldq    %xmm9,%xmm12,%xmm11
3480  DB  196,65,25,106,209                   ; vpunpckhdq    %xmm9,%xmm12,%xmm10
3481  DB  196,65,17,98,200                    ; vpunpckldq    %xmm8,%xmm13,%xmm9
3482  DB  196,65,17,106,192                   ; vpunpckhdq    %xmm8,%xmm13,%xmm8
3483  DB  72,133,201                          ; test          %rcx,%rcx
3484  DB  117,31                              ; jne           36ba <_sk_store_u16_be_hsw+0xfb>
3485  DB  196,1,120,17,28,72                  ; vmovups       %xmm11,(%r8,%r9,2)
3486  DB  196,1,120,17,84,72,16               ; vmovups       %xmm10,0x10(%r8,%r9,2)
3487  DB  196,1,120,17,76,72,32               ; vmovups       %xmm9,0x20(%r8,%r9,2)
3488  DB  196,1,122,127,68,72,48              ; vmovdqu       %xmm8,0x30(%r8,%r9,2)
3489  DB  72,173                              ; lods          %ds:(%rsi),%rax
3490  DB  255,224                             ; jmpq          *%rax
3491  DB  196,1,121,214,28,72                 ; vmovq         %xmm11,(%r8,%r9,2)
3492  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3493  DB  116,240                             ; je            36b6 <_sk_store_u16_be_hsw+0xf7>
3494  DB  196,1,121,23,92,72,8                ; vmovhpd       %xmm11,0x8(%r8,%r9,2)
3495  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3496  DB  114,227                             ; jb            36b6 <_sk_store_u16_be_hsw+0xf7>
3497  DB  196,1,121,214,84,72,16              ; vmovq         %xmm10,0x10(%r8,%r9,2)
3498  DB  116,218                             ; je            36b6 <_sk_store_u16_be_hsw+0xf7>
3499  DB  196,1,121,23,84,72,24               ; vmovhpd       %xmm10,0x18(%r8,%r9,2)
3500  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3501  DB  114,205                             ; jb            36b6 <_sk_store_u16_be_hsw+0xf7>
3502  DB  196,1,121,214,76,72,32              ; vmovq         %xmm9,0x20(%r8,%r9,2)
3503  DB  116,196                             ; je            36b6 <_sk_store_u16_be_hsw+0xf7>
3504  DB  196,1,121,23,76,72,40               ; vmovhpd       %xmm9,0x28(%r8,%r9,2)
3505  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3506  DB  114,183                             ; jb            36b6 <_sk_store_u16_be_hsw+0xf7>
3507  DB  196,1,121,214,68,72,48              ; vmovq         %xmm8,0x30(%r8,%r9,2)
3508  DB  235,174                             ; jmp           36b6 <_sk_store_u16_be_hsw+0xf7>
3509
3510PUBLIC _sk_load_f32_hsw
3511_sk_load_f32_hsw LABEL PROC
3512  DB  72,173                              ; lods          %ds:(%rsi),%rax
3513  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3514  DB  119,110                             ; ja            377e <_sk_load_f32_hsw+0x76>
3515  DB  76,139,0                            ; mov           (%rax),%r8
3516  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
3517  DB  76,141,21,134,0,0,0                 ; lea           0x86(%rip),%r10        # 37a8 <_sk_load_f32_hsw+0xa0>
3518  DB  73,99,4,138                         ; movslq        (%r10,%rcx,4),%rax
3519  DB  76,1,208                            ; add           %r10,%rax
3520  DB  255,224                             ; jmpq          *%rax
3521  DB  196,3,125,24,68,136,112,1           ; vinsertf128   $0x1,0x70(%r8,%r9,4),%ymm0,%ymm8
3522  DB  196,131,125,24,92,136,96,1          ; vinsertf128   $0x1,0x60(%r8,%r9,4),%ymm0,%ymm3
3523  DB  196,131,125,24,76,136,80,1          ; vinsertf128   $0x1,0x50(%r8,%r9,4),%ymm0,%ymm1
3524  DB  196,131,125,24,84,136,64,1          ; vinsertf128   $0x1,0x40(%r8,%r9,4),%ymm0,%ymm2
3525  DB  196,129,121,16,68,136,48            ; vmovupd       0x30(%r8,%r9,4),%xmm0
3526  DB  196,195,125,13,192,12               ; vblendpd      $0xc,%ymm8,%ymm0,%ymm0
3527  DB  196,1,121,16,68,136,32              ; vmovupd       0x20(%r8,%r9,4),%xmm8
3528  DB  196,99,61,13,203,12                 ; vblendpd      $0xc,%ymm3,%ymm8,%ymm9
3529  DB  196,129,121,16,92,136,16            ; vmovupd       0x10(%r8,%r9,4),%xmm3
3530  DB  196,99,101,13,209,12                ; vblendpd      $0xc,%ymm1,%ymm3,%ymm10
3531  DB  196,129,121,16,12,136               ; vmovupd       (%r8,%r9,4),%xmm1
3532  DB  196,227,117,13,202,12               ; vblendpd      $0xc,%ymm2,%ymm1,%ymm1
3533  DB  196,193,116,20,210                  ; vunpcklps     %ymm10,%ymm1,%ymm2
3534  DB  196,193,116,21,218                  ; vunpckhps     %ymm10,%ymm1,%ymm3
3535  DB  197,180,20,200                      ; vunpcklps     %ymm0,%ymm9,%ymm1
3536  DB  197,52,21,192                       ; vunpckhps     %ymm0,%ymm9,%ymm8
3537  DB  197,237,20,193                      ; vunpcklpd     %ymm1,%ymm2,%ymm0
3538  DB  197,237,21,201                      ; vunpckhpd     %ymm1,%ymm2,%ymm1
3539  DB  196,193,101,20,208                  ; vunpcklpd     %ymm8,%ymm3,%ymm2
3540  DB  196,193,101,21,216                  ; vunpckhpd     %ymm8,%ymm3,%ymm3
3541  DB  72,173                              ; lods          %ds:(%rsi),%rax
3542  DB  255,224                             ; jmpq          *%rax
3543  DB  102,144                             ; xchg          %ax,%ax
3544  DB  131,255,255                         ; cmp           $0xffffffff,%edi
3545  DB  255,202                             ; dec           %edx
3546  DB  255                                 ; (bad)
3547  DB  255                                 ; (bad)
3548  DB  255                                 ; (bad)
3549  DB  189,255,255,255,176                 ; mov           $0xb0ffffff,%ebp
3550  DB  255                                 ; (bad)
3551  DB  255                                 ; (bad)
3552  DB  255,163,255,255,255,155             ; jmpq          *-0x64000001(%rbx)
3553  DB  255                                 ; (bad)
3554  DB  255                                 ; (bad)
3555  DB  255,147,255,255,255,139             ; callq         *-0x74000001(%rbx)
3556  DB  255                                 ; (bad)
3557  DB  255                                 ; (bad)
3558  DB  255                                 ; .byte         0xff
3559
3560PUBLIC _sk_store_f32_hsw
3561_sk_store_f32_hsw LABEL PROC
3562  DB  72,173                              ; lods          %ds:(%rsi),%rax
3563  DB  76,139,0                            ; mov           (%rax),%r8
3564  DB  72,141,4,189,0,0,0,0                ; lea           0x0(,%rdi,4),%rax
3565  DB  197,124,20,193                      ; vunpcklps     %ymm1,%ymm0,%ymm8
3566  DB  197,124,21,217                      ; vunpckhps     %ymm1,%ymm0,%ymm11
3567  DB  197,108,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm9
3568  DB  197,108,21,227                      ; vunpckhps     %ymm3,%ymm2,%ymm12
3569  DB  196,65,61,20,209                    ; vunpcklpd     %ymm9,%ymm8,%ymm10
3570  DB  196,65,61,21,201                    ; vunpckhpd     %ymm9,%ymm8,%ymm9
3571  DB  196,65,37,20,196                    ; vunpcklpd     %ymm12,%ymm11,%ymm8
3572  DB  196,65,37,21,220                    ; vunpckhpd     %ymm12,%ymm11,%ymm11
3573  DB  72,133,201                          ; test          %rcx,%rcx
3574  DB  117,55                              ; jne           3835 <_sk_store_f32_hsw+0x6d>
3575  DB  196,67,45,24,225,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm12
3576  DB  196,67,61,24,235,1                  ; vinsertf128   $0x1,%xmm11,%ymm8,%ymm13
3577  DB  196,67,45,6,201,49                  ; vperm2f128    $0x31,%ymm9,%ymm10,%ymm9
3578  DB  196,67,61,6,195,49                  ; vperm2f128    $0x31,%ymm11,%ymm8,%ymm8
3579  DB  196,65,125,17,36,128                ; vmovupd       %ymm12,(%r8,%rax,4)
3580  DB  196,65,125,17,108,128,32            ; vmovupd       %ymm13,0x20(%r8,%rax,4)
3581  DB  196,65,125,17,76,128,64             ; vmovupd       %ymm9,0x40(%r8,%rax,4)
3582  DB  196,65,125,17,68,128,96             ; vmovupd       %ymm8,0x60(%r8,%rax,4)
3583  DB  72,173                              ; lods          %ds:(%rsi),%rax
3584  DB  255,224                             ; jmpq          *%rax
3585  DB  196,65,121,17,20,128                ; vmovupd       %xmm10,(%r8,%rax,4)
3586  DB  72,131,249,1                        ; cmp           $0x1,%rcx
3587  DB  116,240                             ; je            3831 <_sk_store_f32_hsw+0x69>
3588  DB  196,65,121,17,76,128,16             ; vmovupd       %xmm9,0x10(%r8,%rax,4)
3589  DB  72,131,249,3                        ; cmp           $0x3,%rcx
3590  DB  114,227                             ; jb            3831 <_sk_store_f32_hsw+0x69>
3591  DB  196,65,121,17,68,128,32             ; vmovupd       %xmm8,0x20(%r8,%rax,4)
3592  DB  116,218                             ; je            3831 <_sk_store_f32_hsw+0x69>
3593  DB  196,65,121,17,92,128,48             ; vmovupd       %xmm11,0x30(%r8,%rax,4)
3594  DB  72,131,249,5                        ; cmp           $0x5,%rcx
3595  DB  114,205                             ; jb            3831 <_sk_store_f32_hsw+0x69>
3596  DB  196,67,125,25,84,128,64,1           ; vextractf128  $0x1,%ymm10,0x40(%r8,%rax,4)
3597  DB  116,195                             ; je            3831 <_sk_store_f32_hsw+0x69>
3598  DB  196,67,125,25,76,128,80,1           ; vextractf128  $0x1,%ymm9,0x50(%r8,%rax,4)
3599  DB  72,131,249,7                        ; cmp           $0x7,%rcx
3600  DB  114,181                             ; jb            3831 <_sk_store_f32_hsw+0x69>
3601  DB  196,67,125,25,68,128,96,1           ; vextractf128  $0x1,%ymm8,0x60(%r8,%rax,4)
3602  DB  235,171                             ; jmp           3831 <_sk_store_f32_hsw+0x69>
3603
3604PUBLIC _sk_clamp_x_hsw
3605_sk_clamp_x_hsw LABEL PROC
3606  DB  72,173                              ; lods          %ds:(%rsi),%rax
3607  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
3608  DB  197,188,95,192                      ; vmaxps        %ymm0,%ymm8,%ymm0
3609  DB  196,98,125,88,0                     ; vpbroadcastd  (%rax),%ymm8
3610  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
3611  DB  196,65,61,254,193                   ; vpaddd        %ymm9,%ymm8,%ymm8
3612  DB  196,193,124,93,192                  ; vminps        %ymm8,%ymm0,%ymm0
3613  DB  72,173                              ; lods          %ds:(%rsi),%rax
3614  DB  255,224                             ; jmpq          *%rax
3615
3616PUBLIC _sk_clamp_y_hsw
3617_sk_clamp_y_hsw LABEL PROC
3618  DB  72,173                              ; lods          %ds:(%rsi),%rax
3619  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
3620  DB  197,188,95,201                      ; vmaxps        %ymm1,%ymm8,%ymm1
3621  DB  196,98,125,88,0                     ; vpbroadcastd  (%rax),%ymm8
3622  DB  196,65,53,118,201                   ; vpcmpeqd      %ymm9,%ymm9,%ymm9
3623  DB  196,65,61,254,193                   ; vpaddd        %ymm9,%ymm8,%ymm8
3624  DB  196,193,116,93,200                  ; vminps        %ymm8,%ymm1,%ymm1
3625  DB  72,173                              ; lods          %ds:(%rsi),%rax
3626  DB  255,224                             ; jmpq          *%rax
3627
3628PUBLIC _sk_repeat_x_hsw
3629_sk_repeat_x_hsw LABEL PROC
3630  DB  72,173                              ; lods          %ds:(%rsi),%rax
3631  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
3632  DB  196,65,124,94,200                   ; vdivps        %ymm8,%ymm0,%ymm9
3633  DB  196,67,125,8,201,1                  ; vroundps      $0x1,%ymm9,%ymm9
3634  DB  196,98,61,172,200                   ; vfnmadd213ps  %ymm0,%ymm8,%ymm9
3635  DB  197,253,118,192                     ; vpcmpeqd      %ymm0,%ymm0,%ymm0
3636  DB  197,189,254,192                     ; vpaddd        %ymm0,%ymm8,%ymm0
3637  DB  197,180,93,192                      ; vminps        %ymm0,%ymm9,%ymm0
3638  DB  72,173                              ; lods          %ds:(%rsi),%rax
3639  DB  255,224                             ; jmpq          *%rax
3640
3641PUBLIC _sk_repeat_y_hsw
3642_sk_repeat_y_hsw LABEL PROC
3643  DB  72,173                              ; lods          %ds:(%rsi),%rax
3644  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
3645  DB  196,65,116,94,200                   ; vdivps        %ymm8,%ymm1,%ymm9
3646  DB  196,67,125,8,201,1                  ; vroundps      $0x1,%ymm9,%ymm9
3647  DB  196,98,61,172,201                   ; vfnmadd213ps  %ymm1,%ymm8,%ymm9
3648  DB  197,245,118,201                     ; vpcmpeqd      %ymm1,%ymm1,%ymm1
3649  DB  197,189,254,201                     ; vpaddd        %ymm1,%ymm8,%ymm1
3650  DB  197,180,93,201                      ; vminps        %ymm1,%ymm9,%ymm1
3651  DB  72,173                              ; lods          %ds:(%rsi),%rax
3652  DB  255,224                             ; jmpq          *%rax
3653
3654PUBLIC _sk_mirror_x_hsw
3655_sk_mirror_x_hsw LABEL PROC
3656  DB  72,173                              ; lods          %ds:(%rsi),%rax
3657  DB  197,122,16,0                        ; vmovss        (%rax),%xmm8
3658  DB  196,66,125,24,200                   ; vbroadcastss  %xmm8,%ymm9
3659  DB  196,65,124,92,209                   ; vsubps        %ymm9,%ymm0,%ymm10
3660  DB  196,193,58,88,192                   ; vaddss        %xmm8,%xmm8,%xmm0
3661  DB  196,226,125,24,192                  ; vbroadcastss  %xmm0,%ymm0
3662  DB  197,44,94,192                       ; vdivps        %ymm0,%ymm10,%ymm8
3663  DB  196,67,125,8,192,1                  ; vroundps      $0x1,%ymm8,%ymm8
3664  DB  196,66,125,172,194                  ; vfnmadd213ps  %ymm10,%ymm0,%ymm8
3665  DB  196,193,60,92,193                   ; vsubps        %ymm9,%ymm8,%ymm0
3666  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
3667  DB  197,60,92,192                       ; vsubps        %ymm0,%ymm8,%ymm8
3668  DB  197,188,84,192                      ; vandps        %ymm0,%ymm8,%ymm0
3669  DB  196,65,61,118,192                   ; vpcmpeqd      %ymm8,%ymm8,%ymm8
3670  DB  196,65,53,254,192                   ; vpaddd        %ymm8,%ymm9,%ymm8
3671  DB  196,193,124,93,192                  ; vminps        %ymm8,%ymm0,%ymm0
3672  DB  72,173                              ; lods          %ds:(%rsi),%rax
3673  DB  255,224                             ; jmpq          *%rax
3674
3675PUBLIC _sk_mirror_y_hsw
3676_sk_mirror_y_hsw LABEL PROC
3677  DB  72,173                              ; lods          %ds:(%rsi),%rax
3678  DB  197,122,16,0                        ; vmovss        (%rax),%xmm8
3679  DB  196,66,125,24,200                   ; vbroadcastss  %xmm8,%ymm9
3680  DB  196,65,116,92,209                   ; vsubps        %ymm9,%ymm1,%ymm10
3681  DB  196,193,58,88,200                   ; vaddss        %xmm8,%xmm8,%xmm1
3682  DB  196,226,125,24,201                  ; vbroadcastss  %xmm1,%ymm1
3683  DB  197,44,94,193                       ; vdivps        %ymm1,%ymm10,%ymm8
3684  DB  196,67,125,8,192,1                  ; vroundps      $0x1,%ymm8,%ymm8
3685  DB  196,66,117,172,194                  ; vfnmadd213ps  %ymm10,%ymm1,%ymm8
3686  DB  196,193,60,92,201                   ; vsubps        %ymm9,%ymm8,%ymm1
3687  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
3688  DB  197,60,92,193                       ; vsubps        %ymm1,%ymm8,%ymm8
3689  DB  197,188,84,201                      ; vandps        %ymm1,%ymm8,%ymm1
3690  DB  196,65,61,118,192                   ; vpcmpeqd      %ymm8,%ymm8,%ymm8
3691  DB  196,65,53,254,192                   ; vpaddd        %ymm8,%ymm9,%ymm8
3692  DB  196,193,116,93,200                  ; vminps        %ymm8,%ymm1,%ymm1
3693  DB  72,173                              ; lods          %ds:(%rsi),%rax
3694  DB  255,224                             ; jmpq          *%rax
3695
3696PUBLIC _sk_luminance_to_alpha_hsw
3697_sk_luminance_to_alpha_hsw LABEL PROC
3698  DB  184,208,179,89,62                   ; mov           $0x3e59b3d0,%eax
3699  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
3700  DB  196,98,125,88,195                   ; vpbroadcastd  %xmm3,%ymm8
3701  DB  184,89,23,55,63                     ; mov           $0x3f371759,%eax
3702  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
3703  DB  196,226,125,88,219                  ; vpbroadcastd  %xmm3,%ymm3
3704  DB  197,228,89,201                      ; vmulps        %ymm1,%ymm3,%ymm1
3705  DB  196,98,125,168,193                  ; vfmadd213ps   %ymm1,%ymm0,%ymm8
3706  DB  184,152,221,147,61                  ; mov           $0x3d93dd98,%eax
3707  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
3708  DB  196,226,125,88,216                  ; vpbroadcastd  %xmm0,%ymm3
3709  DB  196,194,109,168,216                 ; vfmadd213ps   %ymm8,%ymm2,%ymm3
3710  DB  72,173                              ; lods          %ds:(%rsi),%rax
3711  DB  197,253,239,192                     ; vpxor         %ymm0,%ymm0,%ymm0
3712  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
3713  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
3714  DB  255,224                             ; jmpq          *%rax
3715
3716PUBLIC _sk_matrix_2x3_hsw
3717_sk_matrix_2x3_hsw LABEL PROC
3718  DB  72,173                              ; lods          %ds:(%rsi),%rax
3719  DB  196,98,125,24,8                     ; vbroadcastss  (%rax),%ymm9
3720  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
3721  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
3722  DB  196,66,117,184,194                  ; vfmadd231ps   %ymm10,%ymm1,%ymm8
3723  DB  196,66,125,184,193                  ; vfmadd231ps   %ymm9,%ymm0,%ymm8
3724  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
3725  DB  196,98,125,24,88,12                 ; vbroadcastss  0xc(%rax),%ymm11
3726  DB  196,98,125,24,72,20                 ; vbroadcastss  0x14(%rax),%ymm9
3727  DB  196,66,117,184,203                  ; vfmadd231ps   %ymm11,%ymm1,%ymm9
3728  DB  196,66,125,184,202                  ; vfmadd231ps   %ymm10,%ymm0,%ymm9
3729  DB  72,173                              ; lods          %ds:(%rsi),%rax
3730  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3731  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
3732  DB  255,224                             ; jmpq          *%rax
3733
3734PUBLIC _sk_matrix_3x4_hsw
3735_sk_matrix_3x4_hsw LABEL PROC
3736  DB  72,173                              ; lods          %ds:(%rsi),%rax
3737  DB  196,98,125,24,8                     ; vbroadcastss  (%rax),%ymm9
3738  DB  196,98,125,24,80,12                 ; vbroadcastss  0xc(%rax),%ymm10
3739  DB  196,98,125,24,88,24                 ; vbroadcastss  0x18(%rax),%ymm11
3740  DB  196,98,125,24,64,36                 ; vbroadcastss  0x24(%rax),%ymm8
3741  DB  196,66,109,184,195                  ; vfmadd231ps   %ymm11,%ymm2,%ymm8
3742  DB  196,66,117,184,194                  ; vfmadd231ps   %ymm10,%ymm1,%ymm8
3743  DB  196,66,125,184,193                  ; vfmadd231ps   %ymm9,%ymm0,%ymm8
3744  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
3745  DB  196,98,125,24,88,16                 ; vbroadcastss  0x10(%rax),%ymm11
3746  DB  196,98,125,24,96,28                 ; vbroadcastss  0x1c(%rax),%ymm12
3747  DB  196,98,125,24,72,40                 ; vbroadcastss  0x28(%rax),%ymm9
3748  DB  196,66,109,184,204                  ; vfmadd231ps   %ymm12,%ymm2,%ymm9
3749  DB  196,66,117,184,203                  ; vfmadd231ps   %ymm11,%ymm1,%ymm9
3750  DB  196,66,125,184,202                  ; vfmadd231ps   %ymm10,%ymm0,%ymm9
3751  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
3752  DB  196,98,125,24,96,20                 ; vbroadcastss  0x14(%rax),%ymm12
3753  DB  196,98,125,24,104,32                ; vbroadcastss  0x20(%rax),%ymm13
3754  DB  196,98,125,24,80,44                 ; vbroadcastss  0x2c(%rax),%ymm10
3755  DB  196,66,109,184,213                  ; vfmadd231ps   %ymm13,%ymm2,%ymm10
3756  DB  196,66,117,184,212                  ; vfmadd231ps   %ymm12,%ymm1,%ymm10
3757  DB  196,66,125,184,211                  ; vfmadd231ps   %ymm11,%ymm0,%ymm10
3758  DB  72,173                              ; lods          %ds:(%rsi),%rax
3759  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3760  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
3761  DB  197,124,41,210                      ; vmovaps       %ymm10,%ymm2
3762  DB  255,224                             ; jmpq          *%rax
3763
3764PUBLIC _sk_matrix_4x5_hsw
3765_sk_matrix_4x5_hsw LABEL PROC
3766  DB  72,173                              ; lods          %ds:(%rsi),%rax
3767  DB  196,98,125,24,8                     ; vbroadcastss  (%rax),%ymm9
3768  DB  196,98,125,24,80,16                 ; vbroadcastss  0x10(%rax),%ymm10
3769  DB  196,98,125,24,88,32                 ; vbroadcastss  0x20(%rax),%ymm11
3770  DB  196,98,125,24,96,48                 ; vbroadcastss  0x30(%rax),%ymm12
3771  DB  196,98,125,24,64,64                 ; vbroadcastss  0x40(%rax),%ymm8
3772  DB  196,66,101,184,196                  ; vfmadd231ps   %ymm12,%ymm3,%ymm8
3773  DB  196,66,109,184,195                  ; vfmadd231ps   %ymm11,%ymm2,%ymm8
3774  DB  196,66,117,184,194                  ; vfmadd231ps   %ymm10,%ymm1,%ymm8
3775  DB  196,66,125,184,193                  ; vfmadd231ps   %ymm9,%ymm0,%ymm8
3776  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
3777  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
3778  DB  196,98,125,24,96,36                 ; vbroadcastss  0x24(%rax),%ymm12
3779  DB  196,98,125,24,104,52                ; vbroadcastss  0x34(%rax),%ymm13
3780  DB  196,98,125,24,72,68                 ; vbroadcastss  0x44(%rax),%ymm9
3781  DB  196,66,101,184,205                  ; vfmadd231ps   %ymm13,%ymm3,%ymm9
3782  DB  196,66,109,184,204                  ; vfmadd231ps   %ymm12,%ymm2,%ymm9
3783  DB  196,66,117,184,203                  ; vfmadd231ps   %ymm11,%ymm1,%ymm9
3784  DB  196,66,125,184,202                  ; vfmadd231ps   %ymm10,%ymm0,%ymm9
3785  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
3786  DB  196,98,125,24,96,24                 ; vbroadcastss  0x18(%rax),%ymm12
3787  DB  196,98,125,24,104,40                ; vbroadcastss  0x28(%rax),%ymm13
3788  DB  196,98,125,24,112,56                ; vbroadcastss  0x38(%rax),%ymm14
3789  DB  196,98,125,24,80,72                 ; vbroadcastss  0x48(%rax),%ymm10
3790  DB  196,66,101,184,214                  ; vfmadd231ps   %ymm14,%ymm3,%ymm10
3791  DB  196,66,109,184,213                  ; vfmadd231ps   %ymm13,%ymm2,%ymm10
3792  DB  196,66,117,184,212                  ; vfmadd231ps   %ymm12,%ymm1,%ymm10
3793  DB  196,66,125,184,211                  ; vfmadd231ps   %ymm11,%ymm0,%ymm10
3794  DB  196,98,125,24,96,12                 ; vbroadcastss  0xc(%rax),%ymm12
3795  DB  196,98,125,24,104,28                ; vbroadcastss  0x1c(%rax),%ymm13
3796  DB  196,98,125,24,112,44                ; vbroadcastss  0x2c(%rax),%ymm14
3797  DB  196,98,125,24,120,60                ; vbroadcastss  0x3c(%rax),%ymm15
3798  DB  196,98,125,24,88,76                 ; vbroadcastss  0x4c(%rax),%ymm11
3799  DB  196,66,101,184,223                  ; vfmadd231ps   %ymm15,%ymm3,%ymm11
3800  DB  196,66,109,184,222                  ; vfmadd231ps   %ymm14,%ymm2,%ymm11
3801  DB  196,66,117,184,221                  ; vfmadd231ps   %ymm13,%ymm1,%ymm11
3802  DB  196,66,125,184,220                  ; vfmadd231ps   %ymm12,%ymm0,%ymm11
3803  DB  72,173                              ; lods          %ds:(%rsi),%rax
3804  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3805  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
3806  DB  197,124,41,210                      ; vmovaps       %ymm10,%ymm2
3807  DB  197,124,41,219                      ; vmovaps       %ymm11,%ymm3
3808  DB  255,224                             ; jmpq          *%rax
3809
3810PUBLIC _sk_matrix_perspective_hsw
3811_sk_matrix_perspective_hsw LABEL PROC
3812  DB  72,173                              ; lods          %ds:(%rsi),%rax
3813  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
3814  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
3815  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
3816  DB  196,66,117,184,209                  ; vfmadd231ps   %ymm9,%ymm1,%ymm10
3817  DB  196,66,125,184,208                  ; vfmadd231ps   %ymm8,%ymm0,%ymm10
3818  DB  196,98,125,24,64,12                 ; vbroadcastss  0xc(%rax),%ymm8
3819  DB  196,98,125,24,72,16                 ; vbroadcastss  0x10(%rax),%ymm9
3820  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
3821  DB  196,66,117,184,217                  ; vfmadd231ps   %ymm9,%ymm1,%ymm11
3822  DB  196,66,125,184,216                  ; vfmadd231ps   %ymm8,%ymm0,%ymm11
3823  DB  196,98,125,24,64,24                 ; vbroadcastss  0x18(%rax),%ymm8
3824  DB  196,98,125,24,72,28                 ; vbroadcastss  0x1c(%rax),%ymm9
3825  DB  196,98,125,24,96,32                 ; vbroadcastss  0x20(%rax),%ymm12
3826  DB  196,66,117,184,225                  ; vfmadd231ps   %ymm9,%ymm1,%ymm12
3827  DB  196,66,125,184,224                  ; vfmadd231ps   %ymm8,%ymm0,%ymm12
3828  DB  196,193,124,83,204                  ; vrcpps        %ymm12,%ymm1
3829  DB  197,172,89,193                      ; vmulps        %ymm1,%ymm10,%ymm0
3830  DB  197,164,89,201                      ; vmulps        %ymm1,%ymm11,%ymm1
3831  DB  72,173                              ; lods          %ds:(%rsi),%rax
3832  DB  255,224                             ; jmpq          *%rax
3833
3834PUBLIC _sk_linear_gradient_hsw
3835_sk_linear_gradient_hsw LABEL PROC
3836  DB  72,173                              ; lods          %ds:(%rsi),%rax
3837  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
3838  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
3839  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
3840  DB  196,98,125,24,72,28                 ; vbroadcastss  0x1c(%rax),%ymm9
3841  DB  76,139,0                            ; mov           (%rax),%r8
3842  DB  77,133,192                          ; test          %r8,%r8
3843  DB  15,132,143,0,0,0                    ; je            3cc1 <_sk_linear_gradient_hsw+0xb5>
3844  DB  72,139,64,8                         ; mov           0x8(%rax),%rax
3845  DB  72,131,192,32                       ; add           $0x20,%rax
3846  DB  196,65,28,87,228                    ; vxorps        %ymm12,%ymm12,%ymm12
3847  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
3848  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
3849  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
3850  DB  196,98,125,24,104,224               ; vbroadcastss  -0x20(%rax),%ymm13
3851  DB  196,65,124,194,237,1                ; vcmpltps      %ymm13,%ymm0,%ymm13
3852  DB  196,98,125,24,112,228               ; vbroadcastss  -0x1c(%rax),%ymm14
3853  DB  196,67,13,74,228,208                ; vblendvps     %ymm13,%ymm12,%ymm14,%ymm12
3854  DB  196,98,125,24,112,232               ; vbroadcastss  -0x18(%rax),%ymm14
3855  DB  196,227,13,74,201,208               ; vblendvps     %ymm13,%ymm1,%ymm14,%ymm1
3856  DB  196,98,125,24,112,236               ; vbroadcastss  -0x14(%rax),%ymm14
3857  DB  196,227,13,74,210,208               ; vblendvps     %ymm13,%ymm2,%ymm14,%ymm2
3858  DB  196,98,125,24,112,240               ; vbroadcastss  -0x10(%rax),%ymm14
3859  DB  196,227,13,74,219,208               ; vblendvps     %ymm13,%ymm3,%ymm14,%ymm3
3860  DB  196,98,125,24,112,244               ; vbroadcastss  -0xc(%rax),%ymm14
3861  DB  196,67,13,74,192,208                ; vblendvps     %ymm13,%ymm8,%ymm14,%ymm8
3862  DB  196,98,125,24,112,248               ; vbroadcastss  -0x8(%rax),%ymm14
3863  DB  196,67,13,74,219,208                ; vblendvps     %ymm13,%ymm11,%ymm14,%ymm11
3864  DB  196,98,125,24,112,252               ; vbroadcastss  -0x4(%rax),%ymm14
3865  DB  196,67,13,74,210,208                ; vblendvps     %ymm13,%ymm10,%ymm14,%ymm10
3866  DB  196,98,125,24,48                    ; vbroadcastss  (%rax),%ymm14
3867  DB  196,67,13,74,201,208                ; vblendvps     %ymm13,%ymm9,%ymm14,%ymm9
3868  DB  72,131,192,36                       ; add           $0x24,%rax
3869  DB  73,255,200                          ; dec           %r8
3870  DB  117,140                             ; jne           3c4b <_sk_linear_gradient_hsw+0x3f>
3871  DB  235,17                              ; jmp           3cd2 <_sk_linear_gradient_hsw+0xc6>
3872  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
3873  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
3874  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
3875  DB  196,65,28,87,228                    ; vxorps        %ymm12,%ymm12,%ymm12
3876  DB  196,66,125,184,196                  ; vfmadd231ps   %ymm12,%ymm0,%ymm8
3877  DB  196,194,125,168,203                 ; vfmadd213ps   %ymm11,%ymm0,%ymm1
3878  DB  196,194,125,168,210                 ; vfmadd213ps   %ymm10,%ymm0,%ymm2
3879  DB  196,194,125,168,217                 ; vfmadd213ps   %ymm9,%ymm0,%ymm3
3880  DB  72,173                              ; lods          %ds:(%rsi),%rax
3881  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3882  DB  255,224                             ; jmpq          *%rax
3883
3884PUBLIC _sk_linear_gradient_2stops_hsw
3885_sk_linear_gradient_2stops_hsw LABEL PROC
3886  DB  72,173                              ; lods          %ds:(%rsi),%rax
3887  DB  196,226,125,24,8                    ; vbroadcastss  (%rax),%ymm1
3888  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
3889  DB  196,98,125,184,193                  ; vfmadd231ps   %ymm1,%ymm0,%ymm8
3890  DB  196,226,125,24,80,4                 ; vbroadcastss  0x4(%rax),%ymm2
3891  DB  196,226,125,24,72,20                ; vbroadcastss  0x14(%rax),%ymm1
3892  DB  196,226,125,184,202                 ; vfmadd231ps   %ymm2,%ymm0,%ymm1
3893  DB  196,226,125,24,88,8                 ; vbroadcastss  0x8(%rax),%ymm3
3894  DB  196,226,125,24,80,24                ; vbroadcastss  0x18(%rax),%ymm2
3895  DB  196,226,125,184,211                 ; vfmadd231ps   %ymm3,%ymm0,%ymm2
3896  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
3897  DB  196,226,125,24,88,28                ; vbroadcastss  0x1c(%rax),%ymm3
3898  DB  196,194,125,184,217                 ; vfmadd231ps   %ymm9,%ymm0,%ymm3
3899  DB  72,173                              ; lods          %ds:(%rsi),%rax
3900  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
3901  DB  255,224                             ; jmpq          *%rax
3902
3903PUBLIC _sk_save_xy_hsw
3904_sk_save_xy_hsw LABEL PROC
3905  DB  72,173                              ; lods          %ds:(%rsi),%rax
3906  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
3907  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3908  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3909  DB  197,60,88,200                       ; vaddps        %ymm0,%ymm8,%ymm9
3910  DB  196,67,125,8,209,1                  ; vroundps      $0x1,%ymm9,%ymm10
3911  DB  196,65,52,92,202                    ; vsubps        %ymm10,%ymm9,%ymm9
3912  DB  197,60,88,193                       ; vaddps        %ymm1,%ymm8,%ymm8
3913  DB  196,67,125,8,208,1                  ; vroundps      $0x1,%ymm8,%ymm10
3914  DB  196,65,60,92,194                    ; vsubps        %ymm10,%ymm8,%ymm8
3915  DB  197,252,17,0                        ; vmovups       %ymm0,(%rax)
3916  DB  197,252,17,72,32                    ; vmovups       %ymm1,0x20(%rax)
3917  DB  197,124,17,72,64                    ; vmovups       %ymm9,0x40(%rax)
3918  DB  197,124,17,64,96                    ; vmovups       %ymm8,0x60(%rax)
3919  DB  72,173                              ; lods          %ds:(%rsi),%rax
3920  DB  255,224                             ; jmpq          *%rax
3921
3922PUBLIC _sk_accumulate_hsw
3923_sk_accumulate_hsw LABEL PROC
3924  DB  72,173                              ; lods          %ds:(%rsi),%rax
3925  DB  197,124,16,128,128,0,0,0            ; vmovups       0x80(%rax),%ymm8
3926  DB  197,60,89,128,160,0,0,0             ; vmulps        0xa0(%rax),%ymm8,%ymm8
3927  DB  196,226,61,184,224                  ; vfmadd231ps   %ymm0,%ymm8,%ymm4
3928  DB  196,226,61,184,233                  ; vfmadd231ps   %ymm1,%ymm8,%ymm5
3929  DB  196,226,61,184,242                  ; vfmadd231ps   %ymm2,%ymm8,%ymm6
3930  DB  196,98,101,168,199                  ; vfmadd213ps   %ymm7,%ymm3,%ymm8
3931  DB  72,173                              ; lods          %ds:(%rsi),%rax
3932  DB  197,124,41,199                      ; vmovaps       %ymm8,%ymm7
3933  DB  255,224                             ; jmpq          *%rax
3934
3935PUBLIC _sk_bilinear_nx_hsw
3936_sk_bilinear_nx_hsw LABEL PROC
3937  DB  72,173                              ; lods          %ds:(%rsi),%rax
3938  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
3939  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
3940  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
3941  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
3942  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
3943  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3944  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3945  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
3946  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
3947  DB  72,173                              ; lods          %ds:(%rsi),%rax
3948  DB  255,224                             ; jmpq          *%rax
3949
3950PUBLIC _sk_bilinear_px_hsw
3951_sk_bilinear_px_hsw LABEL PROC
3952  DB  72,173                              ; lods          %ds:(%rsi),%rax
3953  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
3954  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
3955  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
3956  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
3957  DB  197,124,16,64,64                    ; vmovups       0x40(%rax),%ymm8
3958  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
3959  DB  72,173                              ; lods          %ds:(%rsi),%rax
3960  DB  255,224                             ; jmpq          *%rax
3961
3962PUBLIC _sk_bilinear_ny_hsw
3963_sk_bilinear_ny_hsw LABEL PROC
3964  DB  72,173                              ; lods          %ds:(%rsi),%rax
3965  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
3966  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
3967  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
3968  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
3969  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
3970  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3971  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3972  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
3973  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
3974  DB  72,173                              ; lods          %ds:(%rsi),%rax
3975  DB  255,224                             ; jmpq          *%rax
3976
3977PUBLIC _sk_bilinear_py_hsw
3978_sk_bilinear_py_hsw LABEL PROC
3979  DB  72,173                              ; lods          %ds:(%rsi),%rax
3980  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
3981  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
3982  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
3983  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
3984  DB  197,124,16,64,96                    ; vmovups       0x60(%rax),%ymm8
3985  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
3986  DB  72,173                              ; lods          %ds:(%rsi),%rax
3987  DB  255,224                             ; jmpq          *%rax
3988
3989PUBLIC _sk_bicubic_n3x_hsw
3990_sk_bicubic_n3x_hsw LABEL PROC
3991  DB  72,173                              ; lods          %ds:(%rsi),%rax
3992  DB  65,184,0,0,192,191                  ; mov           $0xbfc00000,%r8d
3993  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
3994  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
3995  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
3996  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
3997  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
3998  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
3999  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
4000  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
4001  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
4002  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4003  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4004  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
4005  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4006  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4007  DB  196,66,61,168,211                   ; vfmadd213ps   %ymm11,%ymm8,%ymm10
4008  DB  196,65,44,89,193                    ; vmulps        %ymm9,%ymm10,%ymm8
4009  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
4010  DB  72,173                              ; lods          %ds:(%rsi),%rax
4011  DB  255,224                             ; jmpq          *%rax
4012
4013PUBLIC _sk_bicubic_n1x_hsw
4014_sk_bicubic_n1x_hsw LABEL PROC
4015  DB  72,173                              ; lods          %ds:(%rsi),%rax
4016  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
4017  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
4018  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
4019  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
4020  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
4021  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4022  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4023  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
4024  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
4025  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
4026  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
4027  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4028  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4029  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4030  DB  196,66,61,168,202                   ; vfmadd213ps   %ymm10,%ymm8,%ymm9
4031  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
4032  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4033  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4034  DB  196,66,61,184,209                   ; vfmadd231ps   %ymm9,%ymm8,%ymm10
4035  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
4036  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
4037  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
4038  DB  196,66,61,184,202                   ; vfmadd231ps   %ymm10,%ymm8,%ymm9
4039  DB  197,124,17,136,128,0,0,0            ; vmovups       %ymm9,0x80(%rax)
4040  DB  72,173                              ; lods          %ds:(%rsi),%rax
4041  DB  255,224                             ; jmpq          *%rax
4042
4043PUBLIC _sk_bicubic_p1x_hsw
4044_sk_bicubic_p1x_hsw LABEL PROC
4045  DB  72,173                              ; lods          %ds:(%rsi),%rax
4046  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
4047  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
4048  DB  196,98,125,88,192                   ; vpbroadcastd  %xmm0,%ymm8
4049  DB  197,188,88,0                        ; vaddps        (%rax),%ymm8,%ymm0
4050  DB  197,124,16,72,64                    ; vmovups       0x40(%rax),%ymm9
4051  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
4052  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4053  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4054  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4055  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4056  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4057  DB  196,66,53,168,211                   ; vfmadd213ps   %ymm11,%ymm9,%ymm10
4058  DB  196,66,53,168,208                   ; vfmadd213ps   %ymm8,%ymm9,%ymm10
4059  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
4060  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4061  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4062  DB  196,66,53,184,194                   ; vfmadd231ps   %ymm10,%ymm9,%ymm8
4063  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
4064  DB  72,173                              ; lods          %ds:(%rsi),%rax
4065  DB  255,224                             ; jmpq          *%rax
4066
4067PUBLIC _sk_bicubic_p3x_hsw
4068_sk_bicubic_p3x_hsw LABEL PROC
4069  DB  72,173                              ; lods          %ds:(%rsi),%rax
4070  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4071  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
4072  DB  196,226,125,88,192                  ; vpbroadcastd  %xmm0,%ymm0
4073  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
4074  DB  197,124,16,64,64                    ; vmovups       0x40(%rax),%ymm8
4075  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
4076  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
4077  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4078  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4079  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
4080  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4081  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4082  DB  196,66,61,168,211                   ; vfmadd213ps   %ymm11,%ymm8,%ymm10
4083  DB  196,65,52,89,194                    ; vmulps        %ymm10,%ymm9,%ymm8
4084  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
4085  DB  72,173                              ; lods          %ds:(%rsi),%rax
4086  DB  255,224                             ; jmpq          *%rax
4087
4088PUBLIC _sk_bicubic_n3y_hsw
4089_sk_bicubic_n3y_hsw LABEL PROC
4090  DB  72,173                              ; lods          %ds:(%rsi),%rax
4091  DB  65,184,0,0,192,191                  ; mov           $0xbfc00000,%r8d
4092  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
4093  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
4094  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
4095  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
4096  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4097  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4098  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
4099  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
4100  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
4101  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4102  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4103  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
4104  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4105  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4106  DB  196,66,61,168,211                   ; vfmadd213ps   %ymm11,%ymm8,%ymm10
4107  DB  196,65,44,89,193                    ; vmulps        %ymm9,%ymm10,%ymm8
4108  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
4109  DB  72,173                              ; lods          %ds:(%rsi),%rax
4110  DB  255,224                             ; jmpq          *%rax
4111
4112PUBLIC _sk_bicubic_n1y_hsw
4113_sk_bicubic_n1y_hsw LABEL PROC
4114  DB  72,173                              ; lods          %ds:(%rsi),%rax
4115  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
4116  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
4117  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
4118  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
4119  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
4120  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4121  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4122  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
4123  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
4124  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
4125  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
4126  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4127  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4128  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4129  DB  196,66,61,168,202                   ; vfmadd213ps   %ymm10,%ymm8,%ymm9
4130  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
4131  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4132  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4133  DB  196,66,61,184,209                   ; vfmadd231ps   %ymm9,%ymm8,%ymm10
4134  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
4135  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
4136  DB  196,66,125,88,201                   ; vpbroadcastd  %xmm9,%ymm9
4137  DB  196,66,61,184,202                   ; vfmadd231ps   %ymm10,%ymm8,%ymm9
4138  DB  197,124,17,136,160,0,0,0            ; vmovups       %ymm9,0xa0(%rax)
4139  DB  72,173                              ; lods          %ds:(%rsi),%rax
4140  DB  255,224                             ; jmpq          *%rax
4141
4142PUBLIC _sk_bicubic_p1y_hsw
4143_sk_bicubic_p1y_hsw LABEL PROC
4144  DB  72,173                              ; lods          %ds:(%rsi),%rax
4145  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
4146  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
4147  DB  196,98,125,88,193                   ; vpbroadcastd  %xmm1,%ymm8
4148  DB  197,188,88,72,32                    ; vaddps        0x20(%rax),%ymm8,%ymm1
4149  DB  197,124,16,72,96                    ; vmovups       0x60(%rax),%ymm9
4150  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
4151  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4152  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4153  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4154  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4155  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4156  DB  196,66,53,168,211                   ; vfmadd213ps   %ymm11,%ymm9,%ymm10
4157  DB  196,66,53,168,208                   ; vfmadd213ps   %ymm8,%ymm9,%ymm10
4158  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
4159  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
4160  DB  196,66,125,88,192                   ; vpbroadcastd  %xmm8,%ymm8
4161  DB  196,66,53,184,194                   ; vfmadd231ps   %ymm10,%ymm9,%ymm8
4162  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
4163  DB  72,173                              ; lods          %ds:(%rsi),%rax
4164  DB  255,224                             ; jmpq          *%rax
4165
4166PUBLIC _sk_bicubic_p3y_hsw
4167_sk_bicubic_p3y_hsw LABEL PROC
4168  DB  72,173                              ; lods          %ds:(%rsi),%rax
4169  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
4170  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
4171  DB  196,226,125,88,201                  ; vpbroadcastd  %xmm1,%ymm1
4172  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
4173  DB  197,124,16,64,96                    ; vmovups       0x60(%rax),%ymm8
4174  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
4175  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
4176  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
4177  DB  196,66,125,88,210                   ; vpbroadcastd  %xmm10,%ymm10
4178  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
4179  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
4180  DB  196,66,125,88,219                   ; vpbroadcastd  %xmm11,%ymm11
4181  DB  196,66,61,168,211                   ; vfmadd213ps   %ymm11,%ymm8,%ymm10
4182  DB  196,65,52,89,194                    ; vmulps        %ymm10,%ymm9,%ymm8
4183  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
4184  DB  72,173                              ; lods          %ds:(%rsi),%rax
4185  DB  255,224                             ; jmpq          *%rax
4186
4187PUBLIC _sk_callback_hsw
4188_sk_callback_hsw LABEL PROC
4189  DB  65,87                               ; push          %r15
4190  DB  65,86                               ; push          %r14
4191  DB  83                                  ; push          %rbx
4192  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
4193  DB  197,252,17,188,36,128,0,0,0         ; vmovups       %ymm7,0x80(%rsp)
4194  DB  197,252,17,116,36,96                ; vmovups       %ymm6,0x60(%rsp)
4195  DB  197,252,17,108,36,64                ; vmovups       %ymm5,0x40(%rsp)
4196  DB  197,252,17,100,36,32                ; vmovups       %ymm4,0x20(%rsp)
4197  DB  73,137,207                          ; mov           %rcx,%r15
4198  DB  73,137,214                          ; mov           %rdx,%r14
4199  DB  72,173                              ; lods          %ds:(%rsi),%rax
4200  DB  72,137,195                          ; mov           %rax,%rbx
4201  DB  197,252,20,225                      ; vunpcklps     %ymm1,%ymm0,%ymm4
4202  DB  197,252,21,193                      ; vunpckhps     %ymm1,%ymm0,%ymm0
4203  DB  197,236,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm1
4204  DB  197,236,21,211                      ; vunpckhps     %ymm3,%ymm2,%ymm2
4205  DB  197,221,20,217                      ; vunpcklpd     %ymm1,%ymm4,%ymm3
4206  DB  197,221,21,201                      ; vunpckhpd     %ymm1,%ymm4,%ymm1
4207  DB  197,253,20,226                      ; vunpcklpd     %ymm2,%ymm0,%ymm4
4208  DB  197,253,21,194                      ; vunpckhpd     %ymm2,%ymm0,%ymm0
4209  DB  196,227,101,24,209,1                ; vinsertf128   $0x1,%xmm1,%ymm3,%ymm2
4210  DB  196,227,93,24,232,1                 ; vinsertf128   $0x1,%xmm0,%ymm4,%ymm5
4211  DB  196,227,101,6,201,49                ; vperm2f128    $0x31,%ymm1,%ymm3,%ymm1
4212  DB  196,227,93,6,192,49                 ; vperm2f128    $0x31,%ymm0,%ymm4,%ymm0
4213  DB  197,253,17,83,8                     ; vmovupd       %ymm2,0x8(%rbx)
4214  DB  197,253,17,107,40                   ; vmovupd       %ymm5,0x28(%rbx)
4215  DB  197,253,17,75,72                    ; vmovupd       %ymm1,0x48(%rbx)
4216  DB  197,253,17,67,104                   ; vmovupd       %ymm0,0x68(%rbx)
4217  DB  77,133,255                          ; test          %r15,%r15
4218  DB  186,8,0,0,0                         ; mov           $0x8,%edx
4219  DB  65,15,69,215                        ; cmovne        %r15d,%edx
4220  DB  72,137,217                          ; mov           %rbx,%rcx
4221  DB  197,248,119                         ; vzeroupper
4222  DB  255,19                              ; callq         *(%rbx)
4223  DB  72,139,131,136,0,0,0                ; mov           0x88(%rbx),%rax
4224  DB  197,248,16,0                        ; vmovups       (%rax),%xmm0
4225  DB  197,248,16,72,16                    ; vmovups       0x10(%rax),%xmm1
4226  DB  197,248,16,80,32                    ; vmovups       0x20(%rax),%xmm2
4227  DB  197,248,16,88,48                    ; vmovups       0x30(%rax),%xmm3
4228  DB  196,227,101,24,88,112,1             ; vinsertf128   $0x1,0x70(%rax),%ymm3,%ymm3
4229  DB  196,227,109,24,80,96,1              ; vinsertf128   $0x1,0x60(%rax),%ymm2,%ymm2
4230  DB  196,227,117,24,72,80,1              ; vinsertf128   $0x1,0x50(%rax),%ymm1,%ymm1
4231  DB  196,227,125,24,64,64,1              ; vinsertf128   $0x1,0x40(%rax),%ymm0,%ymm0
4232  DB  197,252,20,225                      ; vunpcklps     %ymm1,%ymm0,%ymm4
4233  DB  197,252,21,233                      ; vunpckhps     %ymm1,%ymm0,%ymm5
4234  DB  197,236,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm1
4235  DB  197,236,21,219                      ; vunpckhps     %ymm3,%ymm2,%ymm3
4236  DB  197,221,20,193                      ; vunpcklpd     %ymm1,%ymm4,%ymm0
4237  DB  197,221,21,201                      ; vunpckhpd     %ymm1,%ymm4,%ymm1
4238  DB  197,213,20,211                      ; vunpcklpd     %ymm3,%ymm5,%ymm2
4239  DB  197,213,21,219                      ; vunpckhpd     %ymm3,%ymm5,%ymm3
4240  DB  72,173                              ; lods          %ds:(%rsi),%rax
4241  DB  76,137,242                          ; mov           %r14,%rdx
4242  DB  76,137,249                          ; mov           %r15,%rcx
4243  DB  197,252,16,100,36,32                ; vmovups       0x20(%rsp),%ymm4
4244  DB  197,252,16,108,36,64                ; vmovups       0x40(%rsp),%ymm5
4245  DB  197,252,16,116,36,96                ; vmovups       0x60(%rsp),%ymm6
4246  DB  197,252,16,188,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm7
4247  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
4248  DB  91                                  ; pop           %rbx
4249  DB  65,94                               ; pop           %r14
4250  DB  65,95                               ; pop           %r15
4251  DB  255,224                             ; jmpq          *%rax
4252
4253ALIGN 4
4254  DB  0,0                                 ; add           %al,(%rax)
4255  DB  0,63                                ; add           %bh,(%rdi)
4256  DB  0,0                                 ; add           %al,(%rax)
4257  DB  128                                 ; .byte         0x80
4258  DB  63                                  ; (bad)
4259ALIGN 32
4260
4261PUBLIC _sk_start_pipeline_avx
4262_sk_start_pipeline_avx LABEL PROC
4263  DB  65,87                               ; push          %r15
4264  DB  65,86                               ; push          %r14
4265  DB  65,85                               ; push          %r13
4266  DB  65,84                               ; push          %r12
4267  DB  86                                  ; push          %rsi
4268  DB  87                                  ; push          %rdi
4269  DB  83                                  ; push          %rbx
4270  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
4271  DB  197,120,41,188,36,144,0,0,0         ; vmovaps       %xmm15,0x90(%rsp)
4272  DB  197,120,41,180,36,128,0,0,0         ; vmovaps       %xmm14,0x80(%rsp)
4273  DB  197,120,41,108,36,112               ; vmovaps       %xmm13,0x70(%rsp)
4274  DB  197,120,41,100,36,96                ; vmovaps       %xmm12,0x60(%rsp)
4275  DB  197,120,41,92,36,80                 ; vmovaps       %xmm11,0x50(%rsp)
4276  DB  197,120,41,84,36,64                 ; vmovaps       %xmm10,0x40(%rsp)
4277  DB  197,120,41,76,36,48                 ; vmovaps       %xmm9,0x30(%rsp)
4278  DB  197,120,41,68,36,32                 ; vmovaps       %xmm8,0x20(%rsp)
4279  DB  197,248,41,124,36,16                ; vmovaps       %xmm7,0x10(%rsp)
4280  DB  197,248,41,52,36                    ; vmovaps       %xmm6,(%rsp)
4281  DB  77,137,205                          ; mov           %r9,%r13
4282  DB  77,137,198                          ; mov           %r8,%r14
4283  DB  72,137,203                          ; mov           %rcx,%rbx
4284  DB  72,137,214                          ; mov           %rdx,%rsi
4285  DB  72,173                              ; lods          %ds:(%rsi),%rax
4286  DB  73,137,199                          ; mov           %rax,%r15
4287  DB  73,137,244                          ; mov           %rsi,%r12
4288  DB  72,141,67,8                         ; lea           0x8(%rbx),%rax
4289  DB  76,57,232                           ; cmp           %r13,%rax
4290  DB  118,5                               ; jbe           75 <_sk_start_pipeline_avx+0x75>
4291  DB  72,137,223                          ; mov           %rbx,%rdi
4292  DB  235,65                              ; jmp           b6 <_sk_start_pipeline_avx+0xb6>
4293  DB  185,0,0,0,0                         ; mov           $0x0,%ecx
4294  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
4295  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
4296  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
4297  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
4298  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
4299  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
4300  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
4301  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
4302  DB  72,137,223                          ; mov           %rbx,%rdi
4303  DB  76,137,230                          ; mov           %r12,%rsi
4304  DB  76,137,242                          ; mov           %r14,%rdx
4305  DB  65,255,215                          ; callq         *%r15
4306  DB  72,141,123,8                        ; lea           0x8(%rbx),%rdi
4307  DB  72,131,195,16                       ; add           $0x10,%rbx
4308  DB  76,57,235                           ; cmp           %r13,%rbx
4309  DB  72,137,251                          ; mov           %rdi,%rbx
4310  DB  118,191                             ; jbe           75 <_sk_start_pipeline_avx+0x75>
4311  DB  76,137,233                          ; mov           %r13,%rcx
4312  DB  72,41,249                           ; sub           %rdi,%rcx
4313  DB  116,41                              ; je            e7 <_sk_start_pipeline_avx+0xe7>
4314  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
4315  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
4316  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
4317  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
4318  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
4319  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
4320  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
4321  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
4322  DB  76,137,230                          ; mov           %r12,%rsi
4323  DB  76,137,242                          ; mov           %r14,%rdx
4324  DB  65,255,215                          ; callq         *%r15
4325  DB  76,137,232                          ; mov           %r13,%rax
4326  DB  197,248,40,52,36                    ; vmovaps       (%rsp),%xmm6
4327  DB  197,248,40,124,36,16                ; vmovaps       0x10(%rsp),%xmm7
4328  DB  197,120,40,68,36,32                 ; vmovaps       0x20(%rsp),%xmm8
4329  DB  197,120,40,76,36,48                 ; vmovaps       0x30(%rsp),%xmm9
4330  DB  197,120,40,84,36,64                 ; vmovaps       0x40(%rsp),%xmm10
4331  DB  197,120,40,92,36,80                 ; vmovaps       0x50(%rsp),%xmm11
4332  DB  197,120,40,100,36,96                ; vmovaps       0x60(%rsp),%xmm12
4333  DB  197,120,40,108,36,112               ; vmovaps       0x70(%rsp),%xmm13
4334  DB  197,120,40,180,36,128,0,0,0         ; vmovaps       0x80(%rsp),%xmm14
4335  DB  197,120,40,188,36,144,0,0,0         ; vmovaps       0x90(%rsp),%xmm15
4336  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
4337  DB  91                                  ; pop           %rbx
4338  DB  95                                  ; pop           %rdi
4339  DB  94                                  ; pop           %rsi
4340  DB  65,92                               ; pop           %r12
4341  DB  65,93                               ; pop           %r13
4342  DB  65,94                               ; pop           %r14
4343  DB  65,95                               ; pop           %r15
4344  DB  197,248,119                         ; vzeroupper
4345  DB  195                                 ; retq
4346
4347PUBLIC _sk_just_return_avx
4348_sk_just_return_avx LABEL PROC
4349  DB  195                                 ; retq
4350
4351PUBLIC _sk_seed_shader_avx
4352_sk_seed_shader_avx LABEL PROC
4353  DB  72,173                              ; lods          %ds:(%rsi),%rax
4354  DB  197,249,110,199                     ; vmovd         %edi,%xmm0
4355  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
4356  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
4357  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
4358  DB  196,226,125,24,13,100,93,0,0        ; vbroadcastss  0x5d64(%rip),%ymm1        # 5ec4 <_sk_callback_avx+0x11a>
4359  DB  197,252,88,193                      ; vaddps        %ymm1,%ymm0,%ymm0
4360  DB  197,252,88,2                        ; vaddps        (%rdx),%ymm0,%ymm0
4361  DB  196,226,125,24,16                   ; vbroadcastss  (%rax),%ymm2
4362  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
4363  DB  197,236,88,201                      ; vaddps        %ymm1,%ymm2,%ymm1
4364  DB  72,173                              ; lods          %ds:(%rsi),%rax
4365  DB  196,226,125,24,21,72,93,0,0         ; vbroadcastss  0x5d48(%rip),%ymm2        # 5ec8 <_sk_callback_avx+0x11e>
4366  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
4367  DB  197,220,87,228                      ; vxorps        %ymm4,%ymm4,%ymm4
4368  DB  197,212,87,237                      ; vxorps        %ymm5,%ymm5,%ymm5
4369  DB  197,204,87,246                      ; vxorps        %ymm6,%ymm6,%ymm6
4370  DB  197,196,87,255                      ; vxorps        %ymm7,%ymm7,%ymm7
4371  DB  255,224                             ; jmpq          *%rax
4372
4373PUBLIC _sk_constant_color_avx
4374_sk_constant_color_avx LABEL PROC
4375  DB  72,173                              ; lods          %ds:(%rsi),%rax
4376  DB  196,226,125,24,0                    ; vbroadcastss  (%rax),%ymm0
4377  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
4378  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
4379  DB  196,226,125,24,88,12                ; vbroadcastss  0xc(%rax),%ymm3
4380  DB  72,173                              ; lods          %ds:(%rsi),%rax
4381  DB  255,224                             ; jmpq          *%rax
4382
4383PUBLIC _sk_clear_avx
4384_sk_clear_avx LABEL PROC
4385  DB  72,173                              ; lods          %ds:(%rsi),%rax
4386  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
4387  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
4388  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
4389  DB  197,228,87,219                      ; vxorps        %ymm3,%ymm3,%ymm3
4390  DB  255,224                             ; jmpq          *%rax
4391
4392PUBLIC _sk_srcatop_avx
4393_sk_srcatop_avx LABEL PROC
4394  DB  197,124,89,199                      ; vmulps        %ymm7,%ymm0,%ymm8
4395  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4396  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
4397  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
4398  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
4399  DB  197,124,92,203                      ; vsubps        %ymm3,%ymm0,%ymm9
4400  DB  197,180,89,196                      ; vmulps        %ymm4,%ymm9,%ymm0
4401  DB  197,188,88,192                      ; vaddps        %ymm0,%ymm8,%ymm0
4402  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4403  DB  197,52,89,197                       ; vmulps        %ymm5,%ymm9,%ymm8
4404  DB  196,193,116,88,200                  ; vaddps        %ymm8,%ymm1,%ymm1
4405  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4406  DB  197,52,89,198                       ; vmulps        %ymm6,%ymm9,%ymm8
4407  DB  196,193,108,88,208                  ; vaddps        %ymm8,%ymm2,%ymm2
4408  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4409  DB  197,52,89,199                       ; vmulps        %ymm7,%ymm9,%ymm8
4410  DB  196,193,100,88,216                  ; vaddps        %ymm8,%ymm3,%ymm3
4411  DB  72,173                              ; lods          %ds:(%rsi),%rax
4412  DB  255,224                             ; jmpq          *%rax
4413
4414PUBLIC _sk_dstatop_avx
4415_sk_dstatop_avx LABEL PROC
4416  DB  197,100,89,196                      ; vmulps        %ymm4,%ymm3,%ymm8
4417  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4418  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
4419  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
4420  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
4421  DB  197,52,92,207                       ; vsubps        %ymm7,%ymm9,%ymm9
4422  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
4423  DB  197,188,88,192                      ; vaddps        %ymm0,%ymm8,%ymm0
4424  DB  197,100,89,197                      ; vmulps        %ymm5,%ymm3,%ymm8
4425  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
4426  DB  197,188,88,201                      ; vaddps        %ymm1,%ymm8,%ymm1
4427  DB  197,100,89,198                      ; vmulps        %ymm6,%ymm3,%ymm8
4428  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
4429  DB  197,188,88,210                      ; vaddps        %ymm2,%ymm8,%ymm2
4430  DB  197,100,89,199                      ; vmulps        %ymm7,%ymm3,%ymm8
4431  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
4432  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4433  DB  72,173                              ; lods          %ds:(%rsi),%rax
4434  DB  255,224                             ; jmpq          *%rax
4435
4436PUBLIC _sk_srcin_avx
4437_sk_srcin_avx LABEL PROC
4438  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
4439  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4440  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4441  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4442  DB  72,173                              ; lods          %ds:(%rsi),%rax
4443  DB  255,224                             ; jmpq          *%rax
4444
4445PUBLIC _sk_dstin_avx
4446_sk_dstin_avx LABEL PROC
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_srcout_avx
4455_sk_srcout_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,199                       ; vsubps        %ymm7,%ymm8,%ymm8
4461  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
4462  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
4463  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
4464  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
4465  DB  72,173                              ; lods          %ds:(%rsi),%rax
4466  DB  255,224                             ; jmpq          *%rax
4467
4468PUBLIC _sk_dstout_avx
4469_sk_dstout_avx LABEL PROC
4470  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4471  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
4472  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
4473  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
4474  DB  197,252,92,219                      ; vsubps        %ymm3,%ymm0,%ymm3
4475  DB  197,228,89,196                      ; vmulps        %ymm4,%ymm3,%ymm0
4476  DB  197,228,89,205                      ; vmulps        %ymm5,%ymm3,%ymm1
4477  DB  197,228,89,214                      ; vmulps        %ymm6,%ymm3,%ymm2
4478  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4479  DB  72,173                              ; lods          %ds:(%rsi),%rax
4480  DB  255,224                             ; jmpq          *%rax
4481
4482PUBLIC _sk_srcover_avx
4483_sk_srcover_avx LABEL PROC
4484  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4485  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4486  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4487  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4488  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4489  DB  197,60,89,204                       ; vmulps        %ymm4,%ymm8,%ymm9
4490  DB  197,180,88,192                      ; vaddps        %ymm0,%ymm9,%ymm0
4491  DB  197,60,89,205                       ; vmulps        %ymm5,%ymm8,%ymm9
4492  DB  197,180,88,201                      ; vaddps        %ymm1,%ymm9,%ymm1
4493  DB  197,60,89,206                       ; vmulps        %ymm6,%ymm8,%ymm9
4494  DB  197,180,88,210                      ; vaddps        %ymm2,%ymm9,%ymm2
4495  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4496  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4497  DB  72,173                              ; lods          %ds:(%rsi),%rax
4498  DB  255,224                             ; jmpq          *%rax
4499
4500PUBLIC _sk_dstover_avx
4501_sk_dstover_avx LABEL PROC
4502  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4503  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4504  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4505  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4506  DB  197,60,92,199                       ; vsubps        %ymm7,%ymm8,%ymm8
4507  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
4508  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
4509  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
4510  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
4511  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
4512  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
4513  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
4514  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
4515  DB  72,173                              ; lods          %ds:(%rsi),%rax
4516  DB  255,224                             ; jmpq          *%rax
4517
4518PUBLIC _sk_modulate_avx
4519_sk_modulate_avx LABEL PROC
4520  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
4521  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
4522  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
4523  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4524  DB  72,173                              ; lods          %ds:(%rsi),%rax
4525  DB  255,224                             ; jmpq          *%rax
4526
4527PUBLIC _sk_multiply_avx
4528_sk_multiply_avx LABEL PROC
4529  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4530  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4531  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4532  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4533  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
4534  DB  197,52,89,208                       ; vmulps        %ymm0,%ymm9,%ymm10
4535  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4536  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
4537  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
4538  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
4539  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
4540  DB  197,52,89,209                       ; vmulps        %ymm1,%ymm9,%ymm10
4541  DB  197,60,89,221                       ; vmulps        %ymm5,%ymm8,%ymm11
4542  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
4543  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
4544  DB  196,193,116,88,202                  ; vaddps        %ymm10,%ymm1,%ymm1
4545  DB  197,52,89,210                       ; vmulps        %ymm2,%ymm9,%ymm10
4546  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
4547  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
4548  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
4549  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
4550  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
4551  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4552  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
4553  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4554  DB  196,193,100,88,216                  ; vaddps        %ymm8,%ymm3,%ymm3
4555  DB  72,173                              ; lods          %ds:(%rsi),%rax
4556  DB  255,224                             ; jmpq          *%rax
4557
4558PUBLIC _sk_plus__avx
4559_sk_plus__avx LABEL PROC
4560  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
4561  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
4562  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
4563  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
4564  DB  72,173                              ; lods          %ds:(%rsi),%rax
4565  DB  255,224                             ; jmpq          *%rax
4566
4567PUBLIC _sk_screen_avx
4568_sk_screen_avx LABEL PROC
4569  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4570  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
4571  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4572  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4573  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
4574  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4575  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4576  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
4577  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4578  DB  197,100,88,199                      ; vaddps        %ymm7,%ymm3,%ymm8
4579  DB  197,228,89,223                      ; vmulps        %ymm7,%ymm3,%ymm3
4580  DB  197,188,92,219                      ; vsubps        %ymm3,%ymm8,%ymm3
4581  DB  72,173                              ; lods          %ds:(%rsi),%rax
4582  DB  255,224                             ; jmpq          *%rax
4583
4584PUBLIC _sk_xor__avx
4585_sk_xor__avx LABEL PROC
4586  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4587  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4588  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4589  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4590  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
4591  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
4592  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4593  DB  197,60,89,212                       ; vmulps        %ymm4,%ymm8,%ymm10
4594  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
4595  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
4596  DB  197,60,89,213                       ; vmulps        %ymm5,%ymm8,%ymm10
4597  DB  197,172,88,201                      ; vaddps        %ymm1,%ymm10,%ymm1
4598  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
4599  DB  197,60,89,214                       ; vmulps        %ymm6,%ymm8,%ymm10
4600  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
4601  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
4602  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4603  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4604  DB  72,173                              ; lods          %ds:(%rsi),%rax
4605  DB  255,224                             ; jmpq          *%rax
4606
4607PUBLIC _sk_darken_avx
4608_sk_darken_avx LABEL PROC
4609  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4610  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
4611  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
4612  DB  196,193,124,95,193                  ; vmaxps        %ymm9,%ymm0,%ymm0
4613  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4614  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4615  DB  197,244,89,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4616  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
4617  DB  196,193,116,95,201                  ; vmaxps        %ymm9,%ymm1,%ymm1
4618  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4619  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4620  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4621  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
4622  DB  196,193,108,95,209                  ; vmaxps        %ymm9,%ymm2,%ymm2
4623  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4624  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4625  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4626  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4627  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4628  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4629  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4630  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4631  DB  72,173                              ; lods          %ds:(%rsi),%rax
4632  DB  255,224                             ; jmpq          *%rax
4633
4634PUBLIC _sk_lighten_avx
4635_sk_lighten_avx LABEL PROC
4636  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4637  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
4638  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
4639  DB  196,193,124,93,193                  ; vminps        %ymm9,%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,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4646  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4647  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4648  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
4649  DB  196,193,108,93,209                  ; vminps        %ymm9,%ymm2,%ymm2
4650  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4651  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4652  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4653  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4654  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4655  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4656  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4657  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4658  DB  72,173                              ; lods          %ds:(%rsi),%rax
4659  DB  255,224                             ; jmpq          *%rax
4660
4661PUBLIC _sk_difference_avx
4662_sk_difference_avx LABEL PROC
4663  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4664  DB  197,252,89,199                      ; vmulps        %ymm7,%ymm0,%ymm0
4665  DB  197,100,89,204                      ; vmulps        %ymm4,%ymm3,%ymm9
4666  DB  196,193,124,93,193                  ; vminps        %ymm9,%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,207                      ; vmulps        %ymm7,%ymm1,%ymm1
4671  DB  197,100,89,205                      ; vmulps        %ymm5,%ymm3,%ymm9
4672  DB  196,193,116,93,201                  ; vminps        %ymm9,%ymm1,%ymm1
4673  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
4674  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4675  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4676  DB  197,236,89,215                      ; vmulps        %ymm7,%ymm2,%ymm2
4677  DB  197,100,89,206                      ; vmulps        %ymm6,%ymm3,%ymm9
4678  DB  196,193,108,93,209                  ; vminps        %ymm9,%ymm2,%ymm2
4679  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
4680  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4681  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4682  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4683  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4684  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4685  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4686  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4687  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4688  DB  72,173                              ; lods          %ds:(%rsi),%rax
4689  DB  255,224                             ; jmpq          *%rax
4690
4691PUBLIC _sk_exclusion_avx
4692_sk_exclusion_avx LABEL PROC
4693  DB  197,124,88,196                      ; vaddps        %ymm4,%ymm0,%ymm8
4694  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
4695  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
4696  DB  197,188,92,192                      ; vsubps        %ymm0,%ymm8,%ymm0
4697  DB  197,116,88,197                      ; vaddps        %ymm5,%ymm1,%ymm8
4698  DB  197,244,89,205                      ; vmulps        %ymm5,%ymm1,%ymm1
4699  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
4700  DB  197,188,92,201                      ; vsubps        %ymm1,%ymm8,%ymm1
4701  DB  197,108,88,198                      ; vaddps        %ymm6,%ymm2,%ymm8
4702  DB  197,236,89,214                      ; vmulps        %ymm6,%ymm2,%ymm2
4703  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
4704  DB  197,188,92,210                      ; vsubps        %ymm2,%ymm8,%ymm2
4705  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4706  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4707  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4708  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4709  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4710  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4711  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4712  DB  72,173                              ; lods          %ds:(%rsi),%rax
4713  DB  255,224                             ; jmpq          *%rax
4714
4715PUBLIC _sk_colorburn_avx
4716_sk_colorburn_avx LABEL PROC
4717  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4718  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4719  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4720  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4721  DB  197,60,92,207                       ; vsubps        %ymm7,%ymm8,%ymm9
4722  DB  197,52,89,216                       ; vmulps        %ymm0,%ymm9,%ymm11
4723  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
4724  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4725  DB  197,60,89,228                       ; vmulps        %ymm4,%ymm8,%ymm12
4726  DB  197,68,92,236                       ; vsubps        %ymm4,%ymm7,%ymm13
4727  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
4728  DB  197,20,94,232                       ; vdivps        %ymm0,%ymm13,%ymm13
4729  DB  196,65,68,93,237                    ; vminps        %ymm13,%ymm7,%ymm13
4730  DB  196,65,68,92,237                    ; vsubps        %ymm13,%ymm7,%ymm13
4731  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
4732  DB  196,65,20,88,235                    ; vaddps        %ymm11,%ymm13,%ymm13
4733  DB  196,65,28,88,237                    ; vaddps        %ymm13,%ymm12,%ymm13
4734  DB  197,28,88,224                       ; vaddps        %ymm0,%ymm12,%ymm12
4735  DB  196,193,124,194,194,0               ; vcmpeqps      %ymm10,%ymm0,%ymm0
4736  DB  196,195,21,74,196,0                 ; vblendvps     %ymm0,%ymm12,%ymm13,%ymm0
4737  DB  197,92,194,231,0                    ; vcmpeqps      %ymm7,%ymm4,%ymm12
4738  DB  197,36,88,220                       ; vaddps        %ymm4,%ymm11,%ymm11
4739  DB  196,195,125,74,195,192              ; vblendvps     %ymm12,%ymm11,%ymm0,%ymm0
4740  DB  197,52,89,217                       ; vmulps        %ymm1,%ymm9,%ymm11
4741  DB  197,60,89,229                       ; vmulps        %ymm5,%ymm8,%ymm12
4742  DB  197,68,92,237                       ; vsubps        %ymm5,%ymm7,%ymm13
4743  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
4744  DB  197,20,94,233                       ; vdivps        %ymm1,%ymm13,%ymm13
4745  DB  196,65,68,93,237                    ; vminps        %ymm13,%ymm7,%ymm13
4746  DB  196,65,68,92,237                    ; vsubps        %ymm13,%ymm7,%ymm13
4747  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
4748  DB  196,65,36,88,237                    ; vaddps        %ymm13,%ymm11,%ymm13
4749  DB  196,65,28,88,237                    ; vaddps        %ymm13,%ymm12,%ymm13
4750  DB  197,28,88,225                       ; vaddps        %ymm1,%ymm12,%ymm12
4751  DB  196,193,116,194,202,0               ; vcmpeqps      %ymm10,%ymm1,%ymm1
4752  DB  196,195,21,74,204,16                ; vblendvps     %ymm1,%ymm12,%ymm13,%ymm1
4753  DB  197,84,194,231,0                    ; vcmpeqps      %ymm7,%ymm5,%ymm12
4754  DB  197,36,88,221                       ; vaddps        %ymm5,%ymm11,%ymm11
4755  DB  196,195,117,74,203,192              ; vblendvps     %ymm12,%ymm11,%ymm1,%ymm1
4756  DB  197,52,89,202                       ; vmulps        %ymm2,%ymm9,%ymm9
4757  DB  196,65,108,194,210,0                ; vcmpeqps      %ymm10,%ymm2,%ymm10
4758  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
4759  DB  197,68,92,230                       ; vsubps        %ymm6,%ymm7,%ymm12
4760  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
4761  DB  197,28,94,226                       ; vdivps        %ymm2,%ymm12,%ymm12
4762  DB  197,164,88,210                      ; vaddps        %ymm2,%ymm11,%ymm2
4763  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
4764  DB  196,65,68,92,228                    ; vsubps        %ymm12,%ymm7,%ymm12
4765  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
4766  DB  196,65,52,88,228                    ; vaddps        %ymm12,%ymm9,%ymm12
4767  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
4768  DB  196,227,37,74,210,160               ; vblendvps     %ymm10,%ymm2,%ymm11,%ymm2
4769  DB  197,76,194,215,0                    ; vcmpeqps      %ymm7,%ymm6,%ymm10
4770  DB  197,52,88,206                       ; vaddps        %ymm6,%ymm9,%ymm9
4771  DB  196,195,109,74,209,160              ; vblendvps     %ymm10,%ymm9,%ymm2,%ymm2
4772  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4773  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4774  DB  72,173                              ; lods          %ds:(%rsi),%rax
4775  DB  255,224                             ; jmpq          *%rax
4776
4777PUBLIC _sk_colordodge_avx
4778_sk_colordodge_avx LABEL PROC
4779  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
4780  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4781  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
4782  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
4783  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
4784  DB  197,52,92,215                       ; vsubps        %ymm7,%ymm9,%ymm10
4785  DB  197,44,89,216                       ; vmulps        %ymm0,%ymm10,%ymm11
4786  DB  197,52,92,203                       ; vsubps        %ymm3,%ymm9,%ymm9
4787  DB  197,100,89,228                      ; vmulps        %ymm4,%ymm3,%ymm12
4788  DB  197,100,92,232                      ; vsubps        %ymm0,%ymm3,%ymm13
4789  DB  196,65,28,94,229                    ; vdivps        %ymm13,%ymm12,%ymm12
4790  DB  197,52,89,236                       ; vmulps        %ymm4,%ymm9,%ymm13
4791  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
4792  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
4793  DB  196,65,28,88,227                    ; vaddps        %ymm11,%ymm12,%ymm12
4794  DB  196,65,20,88,228                    ; vaddps        %ymm12,%ymm13,%ymm12
4795  DB  197,20,88,232                       ; vaddps        %ymm0,%ymm13,%ymm13
4796  DB  197,252,194,195,0                   ; vcmpeqps      %ymm3,%ymm0,%ymm0
4797  DB  196,195,29,74,197,0                 ; vblendvps     %ymm0,%ymm13,%ymm12,%ymm0
4798  DB  196,65,92,194,224,0                 ; vcmpeqps      %ymm8,%ymm4,%ymm12
4799  DB  197,36,88,220                       ; vaddps        %ymm4,%ymm11,%ymm11
4800  DB  196,195,125,74,195,192              ; vblendvps     %ymm12,%ymm11,%ymm0,%ymm0
4801  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
4802  DB  197,100,89,229                      ; vmulps        %ymm5,%ymm3,%ymm12
4803  DB  197,100,92,233                      ; vsubps        %ymm1,%ymm3,%ymm13
4804  DB  196,65,28,94,229                    ; vdivps        %ymm13,%ymm12,%ymm12
4805  DB  197,52,89,237                       ; vmulps        %ymm5,%ymm9,%ymm13
4806  DB  196,65,68,93,228                    ; vminps        %ymm12,%ymm7,%ymm12
4807  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
4808  DB  196,65,28,88,227                    ; vaddps        %ymm11,%ymm12,%ymm12
4809  DB  196,65,20,88,228                    ; vaddps        %ymm12,%ymm13,%ymm12
4810  DB  197,20,88,233                       ; vaddps        %ymm1,%ymm13,%ymm13
4811  DB  197,244,194,203,0                   ; vcmpeqps      %ymm3,%ymm1,%ymm1
4812  DB  196,195,29,74,205,16                ; vblendvps     %ymm1,%ymm13,%ymm12,%ymm1
4813  DB  196,65,84,194,224,0                 ; vcmpeqps      %ymm8,%ymm5,%ymm12
4814  DB  197,36,88,221                       ; vaddps        %ymm5,%ymm11,%ymm11
4815  DB  196,195,117,74,203,192              ; vblendvps     %ymm12,%ymm11,%ymm1,%ymm1
4816  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
4817  DB  197,100,89,222                      ; vmulps        %ymm6,%ymm3,%ymm11
4818  DB  197,100,92,226                      ; vsubps        %ymm2,%ymm3,%ymm12
4819  DB  196,65,36,94,220                    ; vdivps        %ymm12,%ymm11,%ymm11
4820  DB  197,52,89,230                       ; vmulps        %ymm6,%ymm9,%ymm12
4821  DB  196,65,68,93,219                    ; vminps        %ymm11,%ymm7,%ymm11
4822  DB  197,36,89,219                       ; vmulps        %ymm3,%ymm11,%ymm11
4823  DB  196,65,44,88,219                    ; vaddps        %ymm11,%ymm10,%ymm11
4824  DB  196,65,28,88,219                    ; vaddps        %ymm11,%ymm12,%ymm11
4825  DB  197,28,88,226                       ; vaddps        %ymm2,%ymm12,%ymm12
4826  DB  197,236,194,211,0                   ; vcmpeqps      %ymm3,%ymm2,%ymm2
4827  DB  196,195,37,74,212,32                ; vblendvps     %ymm2,%ymm12,%ymm11,%ymm2
4828  DB  196,65,76,194,192,0                 ; vcmpeqps      %ymm8,%ymm6,%ymm8
4829  DB  197,44,88,214                       ; vaddps        %ymm6,%ymm10,%ymm10
4830  DB  196,195,109,74,210,128              ; vblendvps     %ymm8,%ymm10,%ymm2,%ymm2
4831  DB  197,52,89,199                       ; vmulps        %ymm7,%ymm9,%ymm8
4832  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4833  DB  72,173                              ; lods          %ds:(%rsi),%rax
4834  DB  255,224                             ; jmpq          *%rax
4835
4836PUBLIC _sk_hardlight_avx
4837_sk_hardlight_avx LABEL PROC
4838  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4839  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4840  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4841  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4842  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
4843  DB  197,44,89,200                       ; vmulps        %ymm0,%ymm10,%ymm9
4844  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4845  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
4846  DB  196,65,52,88,219                    ; vaddps        %ymm11,%ymm9,%ymm11
4847  DB  197,124,88,200                      ; vaddps        %ymm0,%ymm0,%ymm9
4848  DB  197,52,194,227,2                    ; vcmpleps      %ymm3,%ymm9,%ymm12
4849  DB  197,124,89,204                      ; vmulps        %ymm4,%ymm0,%ymm9
4850  DB  196,65,52,88,233                    ; vaddps        %ymm9,%ymm9,%ymm13
4851  DB  197,100,89,207                      ; vmulps        %ymm7,%ymm3,%ymm9
4852  DB  197,68,92,244                       ; vsubps        %ymm4,%ymm7,%ymm14
4853  DB  197,228,92,192                      ; vsubps        %ymm0,%ymm3,%ymm0
4854  DB  196,193,124,89,198                  ; vmulps        %ymm14,%ymm0,%ymm0
4855  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
4856  DB  197,180,92,192                      ; vsubps        %ymm0,%ymm9,%ymm0
4857  DB  196,195,125,74,197,192              ; vblendvps     %ymm12,%ymm13,%ymm0,%ymm0
4858  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
4859  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
4860  DB  197,60,89,229                       ; vmulps        %ymm5,%ymm8,%ymm12
4861  DB  196,65,28,88,219                    ; vaddps        %ymm11,%ymm12,%ymm11
4862  DB  197,116,88,225                      ; vaddps        %ymm1,%ymm1,%ymm12
4863  DB  197,28,194,227,2                    ; vcmpleps      %ymm3,%ymm12,%ymm12
4864  DB  197,116,89,237                      ; vmulps        %ymm5,%ymm1,%ymm13
4865  DB  196,65,20,88,237                    ; vaddps        %ymm13,%ymm13,%ymm13
4866  DB  197,68,92,245                       ; vsubps        %ymm5,%ymm7,%ymm14
4867  DB  197,228,92,201                      ; vsubps        %ymm1,%ymm3,%ymm1
4868  DB  196,193,116,89,206                  ; vmulps        %ymm14,%ymm1,%ymm1
4869  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
4870  DB  197,180,92,201                      ; vsubps        %ymm1,%ymm9,%ymm1
4871  DB  196,195,117,74,205,192              ; vblendvps     %ymm12,%ymm13,%ymm1,%ymm1
4872  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
4873  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
4874  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
4875  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
4876  DB  197,108,88,218                      ; vaddps        %ymm2,%ymm2,%ymm11
4877  DB  197,36,194,219,2                    ; vcmpleps      %ymm3,%ymm11,%ymm11
4878  DB  197,108,89,230                      ; vmulps        %ymm6,%ymm2,%ymm12
4879  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
4880  DB  197,68,92,238                       ; vsubps        %ymm6,%ymm7,%ymm13
4881  DB  197,228,92,210                      ; vsubps        %ymm2,%ymm3,%ymm2
4882  DB  196,193,108,89,213                  ; vmulps        %ymm13,%ymm2,%ymm2
4883  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
4884  DB  197,180,92,210                      ; vsubps        %ymm2,%ymm9,%ymm2
4885  DB  196,195,109,74,212,176              ; vblendvps     %ymm11,%ymm12,%ymm2,%ymm2
4886  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
4887  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4888  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4889  DB  72,173                              ; lods          %ds:(%rsi),%rax
4890  DB  255,224                             ; jmpq          *%rax
4891
4892PUBLIC _sk_overlay_avx
4893_sk_overlay_avx LABEL PROC
4894  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4895  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4896  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4897  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4898  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
4899  DB  197,44,89,200                       ; vmulps        %ymm0,%ymm10,%ymm9
4900  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
4901  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
4902  DB  196,65,52,88,219                    ; vaddps        %ymm11,%ymm9,%ymm11
4903  DB  197,92,88,204                       ; vaddps        %ymm4,%ymm4,%ymm9
4904  DB  197,52,194,231,2                    ; vcmpleps      %ymm7,%ymm9,%ymm12
4905  DB  197,124,89,204                      ; vmulps        %ymm4,%ymm0,%ymm9
4906  DB  196,65,52,88,233                    ; vaddps        %ymm9,%ymm9,%ymm13
4907  DB  197,100,89,207                      ; vmulps        %ymm7,%ymm3,%ymm9
4908  DB  197,68,92,244                       ; vsubps        %ymm4,%ymm7,%ymm14
4909  DB  197,228,92,192                      ; vsubps        %ymm0,%ymm3,%ymm0
4910  DB  196,193,124,89,198                  ; vmulps        %ymm14,%ymm0,%ymm0
4911  DB  197,252,88,192                      ; vaddps        %ymm0,%ymm0,%ymm0
4912  DB  197,180,92,192                      ; vsubps        %ymm0,%ymm9,%ymm0
4913  DB  196,195,125,74,197,192              ; vblendvps     %ymm12,%ymm13,%ymm0,%ymm0
4914  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
4915  DB  197,44,89,217                       ; vmulps        %ymm1,%ymm10,%ymm11
4916  DB  197,60,89,229                       ; vmulps        %ymm5,%ymm8,%ymm12
4917  DB  196,65,28,88,219                    ; vaddps        %ymm11,%ymm12,%ymm11
4918  DB  197,84,88,229                       ; vaddps        %ymm5,%ymm5,%ymm12
4919  DB  197,28,194,231,2                    ; vcmpleps      %ymm7,%ymm12,%ymm12
4920  DB  197,116,89,237                      ; vmulps        %ymm5,%ymm1,%ymm13
4921  DB  196,65,20,88,237                    ; vaddps        %ymm13,%ymm13,%ymm13
4922  DB  197,68,92,245                       ; vsubps        %ymm5,%ymm7,%ymm14
4923  DB  197,228,92,201                      ; vsubps        %ymm1,%ymm3,%ymm1
4924  DB  196,193,116,89,206                  ; vmulps        %ymm14,%ymm1,%ymm1
4925  DB  197,244,88,201                      ; vaddps        %ymm1,%ymm1,%ymm1
4926  DB  197,180,92,201                      ; vsubps        %ymm1,%ymm9,%ymm1
4927  DB  196,195,117,74,205,192              ; vblendvps     %ymm12,%ymm13,%ymm1,%ymm1
4928  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
4929  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
4930  DB  197,60,89,222                       ; vmulps        %ymm6,%ymm8,%ymm11
4931  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
4932  DB  197,76,88,222                       ; vaddps        %ymm6,%ymm6,%ymm11
4933  DB  197,36,194,223,2                    ; vcmpleps      %ymm7,%ymm11,%ymm11
4934  DB  197,108,89,230                      ; vmulps        %ymm6,%ymm2,%ymm12
4935  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
4936  DB  197,68,92,238                       ; vsubps        %ymm6,%ymm7,%ymm13
4937  DB  197,228,92,210                      ; vsubps        %ymm2,%ymm3,%ymm2
4938  DB  196,193,108,89,213                  ; vmulps        %ymm13,%ymm2,%ymm2
4939  DB  197,236,88,210                      ; vaddps        %ymm2,%ymm2,%ymm2
4940  DB  197,180,92,210                      ; vsubps        %ymm2,%ymm9,%ymm2
4941  DB  196,195,109,74,212,176              ; vblendvps     %ymm11,%ymm12,%ymm2,%ymm2
4942  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
4943  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
4944  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
4945  DB  72,173                              ; lods          %ds:(%rsi),%rax
4946  DB  255,224                             ; jmpq          *%rax
4947
4948PUBLIC _sk_softlight_avx
4949_sk_softlight_avx LABEL PROC
4950  DB  72,131,236,56                       ; sub           $0x38,%rsp
4951  DB  197,252,17,20,36                    ; vmovups       %ymm2,(%rsp)
4952  DB  197,252,40,209                      ; vmovaps       %ymm1,%ymm2
4953  DB  196,65,52,87,201                    ; vxorps        %ymm9,%ymm9,%ymm9
4954  DB  197,52,194,215,1                    ; vcmpltps      %ymm7,%ymm9,%ymm10
4955  DB  197,92,94,199                       ; vdivps        %ymm7,%ymm4,%ymm8
4956  DB  196,67,53,74,216,160                ; vblendvps     %ymm10,%ymm8,%ymm9,%ymm11
4957  DB  196,65,36,88,195                    ; vaddps        %ymm11,%ymm11,%ymm8
4958  DB  196,65,60,88,224                    ; vaddps        %ymm8,%ymm8,%ymm12
4959  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
4960  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
4961  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
4962  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
4963  DB  196,65,28,89,236                    ; vmulps        %ymm12,%ymm12,%ymm13
4964  DB  196,65,28,88,229                    ; vaddps        %ymm13,%ymm12,%ymm12
4965  DB  196,65,36,92,232                    ; vsubps        %ymm8,%ymm11,%ymm13
4966  DB  196,65,28,89,237                    ; vmulps        %ymm13,%ymm12,%ymm13
4967  DB  184,0,0,224,64                      ; mov           $0x40e00000,%eax
4968  DB  197,121,110,224                     ; vmovd         %eax,%xmm12
4969  DB  196,67,121,4,228,0                  ; vpermilps     $0x0,%xmm12,%xmm12
4970  DB  196,67,29,24,228,1                  ; vinsertf128   $0x1,%xmm12,%ymm12,%ymm12
4971  DB  196,65,36,89,244                    ; vmulps        %ymm12,%ymm11,%ymm14
4972  DB  196,65,20,88,238                    ; vaddps        %ymm14,%ymm13,%ymm13
4973  DB  196,65,124,82,243                   ; vrsqrtps      %ymm11,%ymm14
4974  DB  196,65,124,83,246                   ; vrcpps        %ymm14,%ymm14
4975  DB  196,65,12,92,243                    ; vsubps        %ymm11,%ymm14,%ymm14
4976  DB  197,92,88,252                       ; vaddps        %ymm4,%ymm4,%ymm15
4977  DB  196,65,4,88,255                     ; vaddps        %ymm15,%ymm15,%ymm15
4978  DB  197,4,194,255,2                     ; vcmpleps      %ymm7,%ymm15,%ymm15
4979  DB  196,67,13,74,237,240                ; vblendvps     %ymm15,%ymm13,%ymm14,%ymm13
4980  DB  197,124,88,240                      ; vaddps        %ymm0,%ymm0,%ymm14
4981  DB  197,12,92,251                       ; vsubps        %ymm3,%ymm14,%ymm15
4982  DB  196,65,60,92,219                    ; vsubps        %ymm11,%ymm8,%ymm11
4983  DB  196,65,4,89,219                     ; vmulps        %ymm11,%ymm15,%ymm11
4984  DB  197,36,88,219                       ; vaddps        %ymm3,%ymm11,%ymm11
4985  DB  197,36,89,220                       ; vmulps        %ymm4,%ymm11,%ymm11
4986  DB  197,4,89,255                        ; vmulps        %ymm7,%ymm15,%ymm15
4987  DB  196,65,4,89,237                     ; vmulps        %ymm13,%ymm15,%ymm13
4988  DB  197,100,89,252                      ; vmulps        %ymm4,%ymm3,%ymm15
4989  DB  196,65,4,88,237                     ; vaddps        %ymm13,%ymm15,%ymm13
4990  DB  197,12,194,243,2                    ; vcmpleps      %ymm3,%ymm14,%ymm14
4991  DB  196,195,21,74,203,224               ; vblendvps     %ymm14,%ymm11,%ymm13,%ymm1
4992  DB  197,84,94,239                       ; vdivps        %ymm7,%ymm5,%ymm13
4993  DB  196,67,53,74,237,160                ; vblendvps     %ymm10,%ymm13,%ymm9,%ymm13
4994  DB  196,65,20,88,245                    ; vaddps        %ymm13,%ymm13,%ymm14
4995  DB  196,65,12,88,246                    ; vaddps        %ymm14,%ymm14,%ymm14
4996  DB  196,65,12,89,254                    ; vmulps        %ymm14,%ymm14,%ymm15
4997  DB  196,65,12,88,247                    ; vaddps        %ymm15,%ymm14,%ymm14
4998  DB  196,65,20,92,248                    ; vsubps        %ymm8,%ymm13,%ymm15
4999  DB  196,65,4,89,246                     ; vmulps        %ymm14,%ymm15,%ymm14
5000  DB  196,65,28,89,253                    ; vmulps        %ymm13,%ymm12,%ymm15
5001  DB  196,65,4,88,246                     ; vaddps        %ymm14,%ymm15,%ymm14
5002  DB  196,65,124,82,253                   ; vrsqrtps      %ymm13,%ymm15
5003  DB  196,65,124,83,255                   ; vrcpps        %ymm15,%ymm15
5004  DB  196,65,4,92,253                     ; vsubps        %ymm13,%ymm15,%ymm15
5005  DB  197,84,88,221                       ; vaddps        %ymm5,%ymm5,%ymm11
5006  DB  196,65,36,88,219                    ; vaddps        %ymm11,%ymm11,%ymm11
5007  DB  197,36,194,223,2                    ; vcmpleps      %ymm7,%ymm11,%ymm11
5008  DB  196,67,5,74,222,176                 ; vblendvps     %ymm11,%ymm14,%ymm15,%ymm11
5009  DB  197,108,88,242                      ; vaddps        %ymm2,%ymm2,%ymm14
5010  DB  196,65,60,92,237                    ; vsubps        %ymm13,%ymm8,%ymm13
5011  DB  197,12,92,251                       ; vsubps        %ymm3,%ymm14,%ymm15
5012  DB  196,65,4,89,237                     ; vmulps        %ymm13,%ymm15,%ymm13
5013  DB  197,4,89,255                        ; vmulps        %ymm7,%ymm15,%ymm15
5014  DB  196,65,4,89,219                     ; vmulps        %ymm11,%ymm15,%ymm11
5015  DB  197,100,89,253                      ; vmulps        %ymm5,%ymm3,%ymm15
5016  DB  196,65,4,88,219                     ; vaddps        %ymm11,%ymm15,%ymm11
5017  DB  197,20,88,235                       ; vaddps        %ymm3,%ymm13,%ymm13
5018  DB  197,20,89,237                       ; vmulps        %ymm5,%ymm13,%ymm13
5019  DB  197,12,194,243,2                    ; vcmpleps      %ymm3,%ymm14,%ymm14
5020  DB  196,67,37,74,237,224                ; vblendvps     %ymm14,%ymm13,%ymm11,%ymm13
5021  DB  197,76,94,223                       ; vdivps        %ymm7,%ymm6,%ymm11
5022  DB  196,67,53,74,203,160                ; vblendvps     %ymm10,%ymm11,%ymm9,%ymm9
5023  DB  196,65,52,88,209                    ; vaddps        %ymm9,%ymm9,%ymm10
5024  DB  196,65,44,88,210                    ; vaddps        %ymm10,%ymm10,%ymm10
5025  DB  196,65,44,89,218                    ; vmulps        %ymm10,%ymm10,%ymm11
5026  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
5027  DB  196,65,52,92,216                    ; vsubps        %ymm8,%ymm9,%ymm11
5028  DB  196,65,36,89,210                    ; vmulps        %ymm10,%ymm11,%ymm10
5029  DB  196,65,28,89,217                    ; vmulps        %ymm9,%ymm12,%ymm11
5030  DB  196,65,36,88,210                    ; vaddps        %ymm10,%ymm11,%ymm10
5031  DB  196,65,124,82,217                   ; vrsqrtps      %ymm9,%ymm11
5032  DB  196,65,124,83,219                   ; vrcpps        %ymm11,%ymm11
5033  DB  196,65,36,92,217                    ; vsubps        %ymm9,%ymm11,%ymm11
5034  DB  197,76,88,230                       ; vaddps        %ymm6,%ymm6,%ymm12
5035  DB  196,65,28,88,228                    ; vaddps        %ymm12,%ymm12,%ymm12
5036  DB  197,28,194,231,2                    ; vcmpleps      %ymm7,%ymm12,%ymm12
5037  DB  196,67,37,74,210,192                ; vblendvps     %ymm12,%ymm10,%ymm11,%ymm10
5038  DB  197,124,16,52,36                    ; vmovups       (%rsp),%ymm14
5039  DB  196,65,12,88,222                    ; vaddps        %ymm14,%ymm14,%ymm11
5040  DB  197,36,92,227                       ; vsubps        %ymm3,%ymm11,%ymm12
5041  DB  196,65,60,92,201                    ; vsubps        %ymm9,%ymm8,%ymm9
5042  DB  196,65,28,89,201                    ; vmulps        %ymm9,%ymm12,%ymm9
5043  DB  197,28,89,231                       ; vmulps        %ymm7,%ymm12,%ymm12
5044  DB  196,65,28,89,210                    ; vmulps        %ymm10,%ymm12,%ymm10
5045  DB  197,100,89,230                      ; vmulps        %ymm6,%ymm3,%ymm12
5046  DB  196,65,28,88,210                    ; vaddps        %ymm10,%ymm12,%ymm10
5047  DB  197,52,88,203                       ; vaddps        %ymm3,%ymm9,%ymm9
5048  DB  197,52,89,206                       ; vmulps        %ymm6,%ymm9,%ymm9
5049  DB  197,36,194,219,2                    ; vcmpleps      %ymm3,%ymm11,%ymm11
5050  DB  196,67,45,74,201,176                ; vblendvps     %ymm11,%ymm9,%ymm10,%ymm9
5051  DB  197,60,92,215                       ; vsubps        %ymm7,%ymm8,%ymm10
5052  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
5053  DB  197,60,92,195                       ; vsubps        %ymm3,%ymm8,%ymm8
5054  DB  197,60,89,220                       ; vmulps        %ymm4,%ymm8,%ymm11
5055  DB  196,193,124,88,195                  ; vaddps        %ymm11,%ymm0,%ymm0
5056  DB  197,244,88,192                      ; vaddps        %ymm0,%ymm1,%ymm0
5057  DB  197,172,89,202                      ; vmulps        %ymm2,%ymm10,%ymm1
5058  DB  197,188,89,213                      ; vmulps        %ymm5,%ymm8,%ymm2
5059  DB  197,236,88,201                      ; vaddps        %ymm1,%ymm2,%ymm1
5060  DB  196,193,116,88,205                  ; vaddps        %ymm13,%ymm1,%ymm1
5061  DB  196,193,44,89,214                   ; vmulps        %ymm14,%ymm10,%ymm2
5062  DB  197,60,89,214                       ; vmulps        %ymm6,%ymm8,%ymm10
5063  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
5064  DB  196,193,108,88,209                  ; vaddps        %ymm9,%ymm2,%ymm2
5065  DB  197,60,89,199                       ; vmulps        %ymm7,%ymm8,%ymm8
5066  DB  197,188,88,219                      ; vaddps        %ymm3,%ymm8,%ymm3
5067  DB  72,173                              ; lods          %ds:(%rsi),%rax
5068  DB  72,131,196,56                       ; add           $0x38,%rsp
5069  DB  255,224                             ; jmpq          *%rax
5070
5071PUBLIC _sk_clamp_0_avx
5072_sk_clamp_0_avx LABEL PROC
5073  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
5074  DB  196,193,124,95,192                  ; vmaxps        %ymm8,%ymm0,%ymm0
5075  DB  196,193,116,95,200                  ; vmaxps        %ymm8,%ymm1,%ymm1
5076  DB  196,193,108,95,208                  ; vmaxps        %ymm8,%ymm2,%ymm2
5077  DB  196,193,100,95,216                  ; vmaxps        %ymm8,%ymm3,%ymm3
5078  DB  72,173                              ; lods          %ds:(%rsi),%rax
5079  DB  255,224                             ; jmpq          *%rax
5080
5081PUBLIC _sk_clamp_1_avx
5082_sk_clamp_1_avx LABEL PROC
5083  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5084  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
5085  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
5086  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
5087  DB  196,193,124,93,192                  ; vminps        %ymm8,%ymm0,%ymm0
5088  DB  196,193,116,93,200                  ; vminps        %ymm8,%ymm1,%ymm1
5089  DB  196,193,108,93,208                  ; vminps        %ymm8,%ymm2,%ymm2
5090  DB  196,193,100,93,216                  ; vminps        %ymm8,%ymm3,%ymm3
5091  DB  72,173                              ; lods          %ds:(%rsi),%rax
5092  DB  255,224                             ; jmpq          *%rax
5093
5094PUBLIC _sk_clamp_a_avx
5095_sk_clamp_a_avx LABEL PROC
5096  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5097  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
5098  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
5099  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
5100  DB  196,193,100,93,216                  ; vminps        %ymm8,%ymm3,%ymm3
5101  DB  197,252,93,195                      ; vminps        %ymm3,%ymm0,%ymm0
5102  DB  197,244,93,203                      ; vminps        %ymm3,%ymm1,%ymm1
5103  DB  197,236,93,211                      ; vminps        %ymm3,%ymm2,%ymm2
5104  DB  72,173                              ; lods          %ds:(%rsi),%rax
5105  DB  255,224                             ; jmpq          *%rax
5106
5107PUBLIC _sk_set_rgb_avx
5108_sk_set_rgb_avx LABEL PROC
5109  DB  72,173                              ; lods          %ds:(%rsi),%rax
5110  DB  196,226,125,24,0                    ; vbroadcastss  (%rax),%ymm0
5111  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
5112  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
5113  DB  72,173                              ; lods          %ds:(%rsi),%rax
5114  DB  255,224                             ; jmpq          *%rax
5115
5116PUBLIC _sk_swap_rb_avx
5117_sk_swap_rb_avx LABEL PROC
5118  DB  197,124,40,192                      ; vmovaps       %ymm0,%ymm8
5119  DB  72,173                              ; lods          %ds:(%rsi),%rax
5120  DB  197,252,40,194                      ; vmovaps       %ymm2,%ymm0
5121  DB  197,124,41,194                      ; vmovaps       %ymm8,%ymm2
5122  DB  255,224                             ; jmpq          *%rax
5123
5124PUBLIC _sk_swap_avx
5125_sk_swap_avx LABEL PROC
5126  DB  197,124,40,195                      ; vmovaps       %ymm3,%ymm8
5127  DB  197,124,40,202                      ; vmovaps       %ymm2,%ymm9
5128  DB  197,124,40,209                      ; vmovaps       %ymm1,%ymm10
5129  DB  197,124,40,216                      ; vmovaps       %ymm0,%ymm11
5130  DB  72,173                              ; lods          %ds:(%rsi),%rax
5131  DB  197,252,40,196                      ; vmovaps       %ymm4,%ymm0
5132  DB  197,252,40,205                      ; vmovaps       %ymm5,%ymm1
5133  DB  197,252,40,214                      ; vmovaps       %ymm6,%ymm2
5134  DB  197,252,40,223                      ; vmovaps       %ymm7,%ymm3
5135  DB  197,124,41,220                      ; vmovaps       %ymm11,%ymm4
5136  DB  197,124,41,213                      ; vmovaps       %ymm10,%ymm5
5137  DB  197,124,41,206                      ; vmovaps       %ymm9,%ymm6
5138  DB  197,124,41,199                      ; vmovaps       %ymm8,%ymm7
5139  DB  255,224                             ; jmpq          *%rax
5140
5141PUBLIC _sk_move_src_dst_avx
5142_sk_move_src_dst_avx LABEL PROC
5143  DB  72,173                              ; lods          %ds:(%rsi),%rax
5144  DB  197,252,40,224                      ; vmovaps       %ymm0,%ymm4
5145  DB  197,252,40,233                      ; vmovaps       %ymm1,%ymm5
5146  DB  197,252,40,242                      ; vmovaps       %ymm2,%ymm6
5147  DB  197,252,40,251                      ; vmovaps       %ymm3,%ymm7
5148  DB  255,224                             ; jmpq          *%rax
5149
5150PUBLIC _sk_move_dst_src_avx
5151_sk_move_dst_src_avx LABEL PROC
5152  DB  72,173                              ; lods          %ds:(%rsi),%rax
5153  DB  197,252,40,196                      ; vmovaps       %ymm4,%ymm0
5154  DB  197,252,40,205                      ; vmovaps       %ymm5,%ymm1
5155  DB  197,252,40,214                      ; vmovaps       %ymm6,%ymm2
5156  DB  197,252,40,223                      ; vmovaps       %ymm7,%ymm3
5157  DB  255,224                             ; jmpq          *%rax
5158
5159PUBLIC _sk_premul_avx
5160_sk_premul_avx LABEL PROC
5161  DB  197,252,89,195                      ; vmulps        %ymm3,%ymm0,%ymm0
5162  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
5163  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
5164  DB  72,173                              ; lods          %ds:(%rsi),%rax
5165  DB  255,224                             ; jmpq          *%rax
5166
5167PUBLIC _sk_unpremul_avx
5168_sk_unpremul_avx LABEL PROC
5169  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
5170  DB  196,65,100,194,200,0                ; vcmpeqps      %ymm8,%ymm3,%ymm9
5171  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5172  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
5173  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
5174  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
5175  DB  197,44,94,211                       ; vdivps        %ymm3,%ymm10,%ymm10
5176  DB  196,67,45,74,192,144                ; vblendvps     %ymm9,%ymm8,%ymm10,%ymm8
5177  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
5178  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
5179  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
5180  DB  72,173                              ; lods          %ds:(%rsi),%rax
5181  DB  255,224                             ; jmpq          *%rax
5182
5183PUBLIC _sk_from_srgb_avx
5184_sk_from_srgb_avx LABEL PROC
5185  DB  184,145,131,158,61                  ; mov           $0x3d9e8391,%eax
5186  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
5187  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
5188  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
5189  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
5190  DB  197,124,89,208                      ; vmulps        %ymm0,%ymm0,%ymm10
5191  DB  184,154,153,153,62                  ; mov           $0x3e99999a,%eax
5192  DB  197,121,110,216                     ; vmovd         %eax,%xmm11
5193  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
5194  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
5195  DB  184,92,143,50,63                    ; mov           $0x3f328f5c,%eax
5196  DB  197,121,110,224                     ; vmovd         %eax,%xmm12
5197  DB  196,67,121,4,228,0                  ; vpermilps     $0x0,%xmm12,%xmm12
5198  DB  196,67,29,24,228,1                  ; vinsertf128   $0x1,%xmm12,%ymm12,%ymm12
5199  DB  197,36,89,232                       ; vmulps        %ymm0,%ymm11,%ymm13
5200  DB  196,65,20,88,236                    ; vaddps        %ymm12,%ymm13,%ymm13
5201  DB  184,10,215,35,59                    ; mov           $0x3b23d70a,%eax
5202  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
5203  DB  196,67,121,4,246,0                  ; vpermilps     $0x0,%xmm14,%xmm14
5204  DB  196,67,13,24,246,1                  ; vinsertf128   $0x1,%xmm14,%ymm14,%ymm14
5205  DB  196,65,44,89,213                    ; vmulps        %ymm13,%ymm10,%ymm10
5206  DB  196,65,12,88,210                    ; vaddps        %ymm10,%ymm14,%ymm10
5207  DB  184,174,71,97,61                    ; mov           $0x3d6147ae,%eax
5208  DB  197,121,110,232                     ; vmovd         %eax,%xmm13
5209  DB  196,67,121,4,237,0                  ; vpermilps     $0x0,%xmm13,%xmm13
5210  DB  196,67,21,24,237,1                  ; vinsertf128   $0x1,%xmm13,%ymm13,%ymm13
5211  DB  196,193,124,194,197,1               ; vcmpltps      %ymm13,%ymm0,%ymm0
5212  DB  196,195,45,74,193,0                 ; vblendvps     %ymm0,%ymm9,%ymm10,%ymm0
5213  DB  197,60,89,201                       ; vmulps        %ymm1,%ymm8,%ymm9
5214  DB  197,116,89,209                      ; vmulps        %ymm1,%ymm1,%ymm10
5215  DB  197,36,89,249                       ; vmulps        %ymm1,%ymm11,%ymm15
5216  DB  196,65,28,88,255                    ; vaddps        %ymm15,%ymm12,%ymm15
5217  DB  196,65,44,89,215                    ; vmulps        %ymm15,%ymm10,%ymm10
5218  DB  196,65,12,88,210                    ; vaddps        %ymm10,%ymm14,%ymm10
5219  DB  196,193,116,194,205,1               ; vcmpltps      %ymm13,%ymm1,%ymm1
5220  DB  196,195,45,74,201,16                ; vblendvps     %ymm1,%ymm9,%ymm10,%ymm1
5221  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
5222  DB  197,108,89,202                      ; vmulps        %ymm2,%ymm2,%ymm9
5223  DB  197,36,89,210                       ; vmulps        %ymm2,%ymm11,%ymm10
5224  DB  196,65,28,88,210                    ; vaddps        %ymm10,%ymm12,%ymm10
5225  DB  196,65,52,89,202                    ; vmulps        %ymm10,%ymm9,%ymm9
5226  DB  196,65,12,88,201                    ; vaddps        %ymm9,%ymm14,%ymm9
5227  DB  196,193,108,194,213,1               ; vcmpltps      %ymm13,%ymm2,%ymm2
5228  DB  196,195,53,74,208,32                ; vblendvps     %ymm2,%ymm8,%ymm9,%ymm2
5229  DB  72,173                              ; lods          %ds:(%rsi),%rax
5230  DB  255,224                             ; jmpq          *%rax
5231
5232PUBLIC _sk_to_srgb_avx
5233_sk_to_srgb_avx LABEL PROC
5234  DB  197,124,82,192                      ; vrsqrtps      %ymm0,%ymm8
5235  DB  196,65,124,83,232                   ; vrcpps        %ymm8,%ymm13
5236  DB  196,65,124,82,240                   ; vrsqrtps      %ymm8,%ymm14
5237  DB  184,41,92,71,65                     ; mov           $0x41475c29,%eax
5238  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
5239  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
5240  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
5241  DB  197,60,89,224                       ; vmulps        %ymm0,%ymm8,%ymm12
5242  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5243  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
5244  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
5245  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
5246  DB  184,194,135,210,62                  ; mov           $0x3ed287c2,%eax
5247  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
5248  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
5249  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
5250  DB  184,206,111,48,63                   ; mov           $0x3f306fce,%eax
5251  DB  197,121,110,216                     ; vmovd         %eax,%xmm11
5252  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
5253  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
5254  DB  184,168,87,202,61                   ; mov           $0x3dca57a8,%eax
5255  DB  53,0,0,0,128                        ; xor           $0x80000000,%eax
5256  DB  197,121,110,248                     ; vmovd         %eax,%xmm15
5257  DB  196,67,121,4,255,0                  ; vpermilps     $0x0,%xmm15,%xmm15
5258  DB  196,67,5,24,255,1                   ; vinsertf128   $0x1,%xmm15,%ymm15,%ymm15
5259  DB  196,65,20,89,235                    ; vmulps        %ymm11,%ymm13,%ymm13
5260  DB  196,65,20,88,239                    ; vaddps        %ymm15,%ymm13,%ymm13
5261  DB  196,65,12,89,242                    ; vmulps        %ymm10,%ymm14,%ymm14
5262  DB  196,65,12,88,237                    ; vaddps        %ymm13,%ymm14,%ymm13
5263  DB  196,65,52,93,237                    ; vminps        %ymm13,%ymm9,%ymm13
5264  DB  184,4,231,140,59                    ; mov           $0x3b8ce704,%eax
5265  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
5266  DB  196,67,121,4,246,0                  ; vpermilps     $0x0,%xmm14,%xmm14
5267  DB  196,67,13,24,246,1                  ; vinsertf128   $0x1,%xmm14,%ymm14,%ymm14
5268  DB  196,193,124,194,198,1               ; vcmpltps      %ymm14,%ymm0,%ymm0
5269  DB  196,195,21,74,196,0                 ; vblendvps     %ymm0,%ymm12,%ymm13,%ymm0
5270  DB  197,124,82,225                      ; vrsqrtps      %ymm1,%ymm12
5271  DB  196,65,124,83,236                   ; vrcpps        %ymm12,%ymm13
5272  DB  196,65,124,82,228                   ; vrsqrtps      %ymm12,%ymm12
5273  DB  196,65,36,89,237                    ; vmulps        %ymm13,%ymm11,%ymm13
5274  DB  196,65,4,88,237                     ; vaddps        %ymm13,%ymm15,%ymm13
5275  DB  196,65,44,89,228                    ; vmulps        %ymm12,%ymm10,%ymm12
5276  DB  196,65,28,88,229                    ; vaddps        %ymm13,%ymm12,%ymm12
5277  DB  197,60,89,233                       ; vmulps        %ymm1,%ymm8,%ymm13
5278  DB  196,65,52,93,228                    ; vminps        %ymm12,%ymm9,%ymm12
5279  DB  196,193,116,194,206,1               ; vcmpltps      %ymm14,%ymm1,%ymm1
5280  DB  196,195,29,74,205,16                ; vblendvps     %ymm1,%ymm13,%ymm12,%ymm1
5281  DB  197,124,82,226                      ; vrsqrtps      %ymm2,%ymm12
5282  DB  196,65,124,83,236                   ; vrcpps        %ymm12,%ymm13
5283  DB  196,65,36,89,221                    ; vmulps        %ymm13,%ymm11,%ymm11
5284  DB  196,65,4,88,219                     ; vaddps        %ymm11,%ymm15,%ymm11
5285  DB  196,65,124,82,228                   ; vrsqrtps      %ymm12,%ymm12
5286  DB  196,65,44,89,212                    ; vmulps        %ymm12,%ymm10,%ymm10
5287  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
5288  DB  196,65,52,93,202                    ; vminps        %ymm10,%ymm9,%ymm9
5289  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
5290  DB  196,193,108,194,214,1               ; vcmpltps      %ymm14,%ymm2,%ymm2
5291  DB  196,195,53,74,208,32                ; vblendvps     %ymm2,%ymm8,%ymm9,%ymm2
5292  DB  72,173                              ; lods          %ds:(%rsi),%rax
5293  DB  255,224                             ; jmpq          *%rax
5294
5295PUBLIC _sk_rgb_to_hsl_avx
5296_sk_rgb_to_hsl_avx LABEL PROC
5297  DB  197,124,95,193                      ; vmaxps        %ymm1,%ymm0,%ymm8
5298  DB  197,60,95,194                       ; vmaxps        %ymm2,%ymm8,%ymm8
5299  DB  197,124,93,201                      ; vminps        %ymm1,%ymm0,%ymm9
5300  DB  197,52,93,202                       ; vminps        %ymm2,%ymm9,%ymm9
5301  DB  196,65,60,92,209                    ; vsubps        %ymm9,%ymm8,%ymm10
5302  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5303  DB  197,121,110,216                     ; vmovd         %eax,%xmm11
5304  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
5305  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
5306  DB  196,65,36,94,218                    ; vdivps        %ymm10,%ymm11,%ymm11
5307  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
5308  DB  197,116,92,226                      ; vsubps        %ymm2,%ymm1,%ymm12
5309  DB  196,65,28,89,227                    ; vmulps        %ymm11,%ymm12,%ymm12
5310  DB  65,185,0,0,192,64                   ; mov           $0x40c00000,%r9d
5311  DB  197,108,92,232                      ; vsubps        %ymm0,%ymm2,%ymm13
5312  DB  196,65,20,89,235                    ; vmulps        %ymm11,%ymm13,%ymm13
5313  DB  65,186,0,0,0,64                     ; mov           $0x40000000,%r10d
5314  DB  197,124,92,241                      ; vsubps        %ymm1,%ymm0,%ymm14
5315  DB  196,65,12,89,219                    ; vmulps        %ymm11,%ymm14,%ymm11
5316  DB  184,0,0,128,64                      ; mov           $0x40800000,%eax
5317  DB  197,121,110,240                     ; vmovd         %eax,%xmm14
5318  DB  196,67,121,4,246,0                  ; vpermilps     $0x0,%xmm14,%xmm14
5319  DB  196,67,13,24,246,1                  ; vinsertf128   $0x1,%xmm14,%ymm14,%ymm14
5320  DB  196,65,36,88,222                    ; vaddps        %ymm14,%ymm11,%ymm11
5321  DB  196,65,121,110,242                  ; vmovd         %r10d,%xmm14
5322  DB  197,244,194,210,1                   ; vcmpltps      %ymm2,%ymm1,%ymm2
5323  DB  197,188,194,201,0                   ; vcmpeqps      %ymm1,%ymm8,%ymm1
5324  DB  196,67,121,4,246,0                  ; vpermilps     $0x0,%xmm14,%xmm14
5325  DB  196,67,13,24,246,1                  ; vinsertf128   $0x1,%xmm14,%ymm14,%ymm14
5326  DB  196,65,20,88,238                    ; vaddps        %ymm14,%ymm13,%ymm13
5327  DB  196,67,37,74,221,16                 ; vblendvps     %ymm1,%ymm13,%ymm11,%ymm11
5328  DB  196,193,121,110,201                 ; vmovd         %r9d,%xmm1
5329  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
5330  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
5331  DB  196,65,20,87,237                    ; vxorps        %ymm13,%ymm13,%ymm13
5332  DB  196,227,21,74,201,32                ; vblendvps     %ymm2,%ymm1,%ymm13,%ymm1
5333  DB  196,193,116,88,204                  ; vaddps        %ymm12,%ymm1,%ymm1
5334  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
5335  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
5336  DB  197,188,194,192,0                   ; vcmpeqps      %ymm0,%ymm8,%ymm0
5337  DB  196,227,37,74,193,0                 ; vblendvps     %ymm0,%ymm1,%ymm11,%ymm0
5338  DB  196,193,60,88,201                   ; vaddps        %ymm9,%ymm8,%ymm1
5339  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
5340  DB  196,99,109,24,218,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm11
5341  DB  196,193,116,89,211                  ; vmulps        %ymm11,%ymm1,%ymm2
5342  DB  197,36,194,218,1                    ; vcmpltps      %ymm2,%ymm11,%ymm11
5343  DB  196,65,12,92,224                    ; vsubps        %ymm8,%ymm14,%ymm12
5344  DB  196,65,28,92,225                    ; vsubps        %ymm9,%ymm12,%ymm12
5345  DB  196,195,117,74,204,176              ; vblendvps     %ymm11,%ymm12,%ymm1,%ymm1
5346  DB  196,65,60,194,193,0                 ; vcmpeqps      %ymm9,%ymm8,%ymm8
5347  DB  197,172,94,201                      ; vdivps        %ymm1,%ymm10,%ymm1
5348  DB  196,67,125,74,205,128               ; vblendvps     %ymm8,%ymm13,%ymm0,%ymm9
5349  DB  196,195,117,74,205,128              ; vblendvps     %ymm8,%ymm13,%ymm1,%ymm1
5350  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
5351  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5352  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5353  DB  196,193,124,89,193                  ; vmulps        %ymm9,%ymm0,%ymm0
5354  DB  72,173                              ; lods          %ds:(%rsi),%rax
5355  DB  255,224                             ; jmpq          *%rax
5356
5357PUBLIC _sk_hsl_to_rgb_avx
5358_sk_hsl_to_rgb_avx LABEL PROC
5359  DB  72,129,236,184,0,0,0                ; sub           $0xb8,%rsp
5360  DB  197,252,17,188,36,128,0,0,0         ; vmovups       %ymm7,0x80(%rsp)
5361  DB  197,252,17,116,36,96                ; vmovups       %ymm6,0x60(%rsp)
5362  DB  197,252,17,108,36,64                ; vmovups       %ymm5,0x40(%rsp)
5363  DB  197,252,17,100,36,32                ; vmovups       %ymm4,0x20(%rsp)
5364  DB  197,252,17,28,36                    ; vmovups       %ymm3,(%rsp)
5365  DB  197,252,40,226                      ; vmovaps       %ymm2,%ymm4
5366  DB  197,252,40,233                      ; vmovaps       %ymm1,%ymm5
5367  DB  197,252,40,216                      ; vmovaps       %ymm0,%ymm3
5368  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
5369  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5370  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5371  DB  196,99,125,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm8
5372  DB  196,193,92,194,192,1                ; vcmpltps      %ymm8,%ymm4,%ymm0
5373  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5374  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
5375  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
5376  DB  196,99,109,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm10
5377  DB  197,172,88,213                      ; vaddps        %ymm5,%ymm10,%ymm2
5378  DB  197,236,89,212                      ; vmulps        %ymm4,%ymm2,%ymm2
5379  DB  197,84,88,204                       ; vaddps        %ymm4,%ymm5,%ymm9
5380  DB  197,84,89,220                       ; vmulps        %ymm4,%ymm5,%ymm11
5381  DB  196,65,52,92,203                    ; vsubps        %ymm11,%ymm9,%ymm9
5382  DB  196,99,53,74,202,0                  ; vblendvps     %ymm0,%ymm2,%ymm9,%ymm9
5383  DB  65,184,0,0,0,64                     ; mov           $0x40000000,%r8d
5384  DB  184,171,170,170,62                  ; mov           $0x3eaaaaab,%eax
5385  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5386  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5387  DB  196,99,125,24,224,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm12
5388  DB  197,28,88,251                       ; vaddps        %ymm3,%ymm12,%ymm15
5389  DB  184,0,0,0,0                         ; mov           $0x0,%eax
5390  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5391  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5392  DB  196,99,125,24,232,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm13
5393  DB  196,193,44,194,199,1                ; vcmpltps      %ymm15,%ymm10,%ymm0
5394  DB  196,193,4,92,210                    ; vsubps        %ymm10,%ymm15,%ymm2
5395  DB  196,227,5,74,194,0                  ; vblendvps     %ymm0,%ymm2,%ymm15,%ymm0
5396  DB  196,193,4,194,213,1                 ; vcmpltps      %ymm13,%ymm15,%ymm2
5397  DB  196,65,44,88,223                    ; vaddps        %ymm15,%ymm10,%ymm11
5398  DB  196,195,125,74,203,32               ; vblendvps     %ymm2,%ymm11,%ymm0,%ymm1
5399  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
5400  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5401  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5402  DB  197,252,89,196                      ; vmulps        %ymm4,%ymm0,%ymm0
5403  DB  196,65,124,92,217                   ; vsubps        %ymm9,%ymm0,%ymm11
5404  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
5405  DB  184,0,0,192,64                      ; mov           $0x40c00000,%eax
5406  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5407  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5408  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5409  DB  196,193,52,92,211                   ; vsubps        %ymm11,%ymm9,%ymm2
5410  DB  197,108,89,240                      ; vmulps        %ymm0,%ymm2,%ymm14
5411  DB  184,171,170,42,63                   ; mov           $0x3f2aaaab,%eax
5412  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
5413  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
5414  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5415  DB  197,252,92,209                      ; vsubps        %ymm1,%ymm0,%ymm2
5416  DB  197,140,89,210                      ; vmulps        %ymm2,%ymm14,%ymm2
5417  DB  197,164,88,210                      ; vaddps        %ymm2,%ymm11,%ymm2
5418  DB  197,244,194,248,1                   ; vcmpltps      %ymm0,%ymm1,%ymm7
5419  DB  196,227,37,74,210,112               ; vblendvps     %ymm7,%ymm2,%ymm11,%ymm2
5420  DB  196,193,116,194,248,1               ; vcmpltps      %ymm8,%ymm1,%ymm7
5421  DB  196,195,109,74,249,112              ; vblendvps     %ymm7,%ymm9,%ymm2,%ymm7
5422  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
5423  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
5424  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
5425  DB  197,244,194,202,1                   ; vcmpltps      %ymm2,%ymm1,%ymm1
5426  DB  196,65,4,89,254                     ; vmulps        %ymm14,%ymm15,%ymm15
5427  DB  196,65,36,88,255                    ; vaddps        %ymm15,%ymm11,%ymm15
5428  DB  196,67,69,74,255,16                 ; vblendvps     %ymm1,%ymm15,%ymm7,%ymm15
5429  DB  197,172,194,203,1                   ; vcmpltps      %ymm3,%ymm10,%ymm1
5430  DB  196,193,100,92,250                  ; vsubps        %ymm10,%ymm3,%ymm7
5431  DB  196,227,101,74,207,16               ; vblendvps     %ymm1,%ymm7,%ymm3,%ymm1
5432  DB  196,193,100,194,253,1               ; vcmpltps      %ymm13,%ymm3,%ymm7
5433  DB  197,172,88,243                      ; vaddps        %ymm3,%ymm10,%ymm6
5434  DB  196,227,117,74,206,112              ; vblendvps     %ymm7,%ymm6,%ymm1,%ymm1
5435  DB  197,252,92,241                      ; vsubps        %ymm1,%ymm0,%ymm6
5436  DB  197,140,89,246                      ; vmulps        %ymm6,%ymm14,%ymm6
5437  DB  197,164,88,246                      ; vaddps        %ymm6,%ymm11,%ymm6
5438  DB  197,244,194,248,1                   ; vcmpltps      %ymm0,%ymm1,%ymm7
5439  DB  196,227,37,74,246,112               ; vblendvps     %ymm7,%ymm6,%ymm11,%ymm6
5440  DB  196,193,116,194,248,1               ; vcmpltps      %ymm8,%ymm1,%ymm7
5441  DB  196,195,77,74,241,112               ; vblendvps     %ymm7,%ymm9,%ymm6,%ymm6
5442  DB  197,244,194,202,1                   ; vcmpltps      %ymm2,%ymm1,%ymm1
5443  DB  197,140,89,251                      ; vmulps        %ymm3,%ymm14,%ymm7
5444  DB  197,164,88,255                      ; vaddps        %ymm7,%ymm11,%ymm7
5445  DB  196,227,77,74,207,16                ; vblendvps     %ymm1,%ymm7,%ymm6,%ymm1
5446  DB  196,193,100,92,220                  ; vsubps        %ymm12,%ymm3,%ymm3
5447  DB  197,172,194,243,1                   ; vcmpltps      %ymm3,%ymm10,%ymm6
5448  DB  196,193,100,92,250                  ; vsubps        %ymm10,%ymm3,%ymm7
5449  DB  196,227,101,74,247,96               ; vblendvps     %ymm6,%ymm7,%ymm3,%ymm6
5450  DB  196,193,100,194,253,1               ; vcmpltps      %ymm13,%ymm3,%ymm7
5451  DB  197,44,88,211                       ; vaddps        %ymm3,%ymm10,%ymm10
5452  DB  196,195,77,74,242,112               ; vblendvps     %ymm7,%ymm10,%ymm6,%ymm6
5453  DB  197,204,194,248,1                   ; vcmpltps      %ymm0,%ymm6,%ymm7
5454  DB  197,252,92,198                      ; vsubps        %ymm6,%ymm0,%ymm0
5455  DB  197,140,89,192                      ; vmulps        %ymm0,%ymm14,%ymm0
5456  DB  197,164,88,192                      ; vaddps        %ymm0,%ymm11,%ymm0
5457  DB  196,227,37,74,192,112               ; vblendvps     %ymm7,%ymm0,%ymm11,%ymm0
5458  DB  196,193,76,194,248,1                ; vcmpltps      %ymm8,%ymm6,%ymm7
5459  DB  196,195,125,74,193,112              ; vblendvps     %ymm7,%ymm9,%ymm0,%ymm0
5460  DB  197,204,194,210,1                   ; vcmpltps      %ymm2,%ymm6,%ymm2
5461  DB  196,193,100,89,222                  ; vmulps        %ymm14,%ymm3,%ymm3
5462  DB  197,164,88,219                      ; vaddps        %ymm3,%ymm11,%ymm3
5463  DB  196,227,125,74,211,32               ; vblendvps     %ymm2,%ymm3,%ymm0,%ymm2
5464  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
5465  DB  197,212,194,216,0                   ; vcmpeqps      %ymm0,%ymm5,%ymm3
5466  DB  196,227,5,74,196,48                 ; vblendvps     %ymm3,%ymm4,%ymm15,%ymm0
5467  DB  196,227,117,74,204,48               ; vblendvps     %ymm3,%ymm4,%ymm1,%ymm1
5468  DB  196,227,109,74,212,48               ; vblendvps     %ymm3,%ymm4,%ymm2,%ymm2
5469  DB  72,173                              ; lods          %ds:(%rsi),%rax
5470  DB  197,252,16,28,36                    ; vmovups       (%rsp),%ymm3
5471  DB  197,252,16,100,36,32                ; vmovups       0x20(%rsp),%ymm4
5472  DB  197,252,16,108,36,64                ; vmovups       0x40(%rsp),%ymm5
5473  DB  197,252,16,116,36,96                ; vmovups       0x60(%rsp),%ymm6
5474  DB  197,252,16,188,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm7
5475  DB  72,129,196,184,0,0,0                ; add           $0xb8,%rsp
5476  DB  255,224                             ; jmpq          *%rax
5477
5478PUBLIC _sk_scale_1_float_avx
5479_sk_scale_1_float_avx LABEL PROC
5480  DB  72,173                              ; lods          %ds:(%rsi),%rax
5481  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
5482  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
5483  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
5484  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
5485  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
5486  DB  72,173                              ; lods          %ds:(%rsi),%rax
5487  DB  255,224                             ; jmpq          *%rax
5488
5489PUBLIC _sk_scale_u8_avx
5490_sk_scale_u8_avx LABEL PROC
5491  DB  73,137,200                          ; mov           %rcx,%r8
5492  DB  72,173                              ; lods          %ds:(%rsi),%rax
5493  DB  72,139,0                            ; mov           (%rax),%rax
5494  DB  72,1,248                            ; add           %rdi,%rax
5495  DB  77,133,192                          ; test          %r8,%r8
5496  DB  117,80                              ; jne           138f <_sk_scale_u8_avx+0x60>
5497  DB  197,122,126,0                       ; vmovq         (%rax),%xmm8
5498  DB  196,66,121,49,200                   ; vpmovzxbd     %xmm8,%xmm9
5499  DB  196,67,121,4,192,229                ; vpermilps     $0xe5,%xmm8,%xmm8
5500  DB  196,66,121,49,192                   ; vpmovzxbd     %xmm8,%xmm8
5501  DB  196,67,53,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm9,%ymm8
5502  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
5503  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
5504  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
5505  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
5506  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
5507  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
5508  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
5509  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
5510  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
5511  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
5512  DB  72,173                              ; lods          %ds:(%rsi),%rax
5513  DB  76,137,193                          ; mov           %r8,%rcx
5514  DB  255,224                             ; jmpq          *%rax
5515  DB  49,201                              ; xor           %ecx,%ecx
5516  DB  77,137,194                          ; mov           %r8,%r10
5517  DB  69,49,201                           ; xor           %r9d,%r9d
5518  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
5519  DB  72,255,192                          ; inc           %rax
5520  DB  73,211,227                          ; shl           %cl,%r11
5521  DB  77,9,217                            ; or            %r11,%r9
5522  DB  72,131,193,8                        ; add           $0x8,%rcx
5523  DB  73,255,202                          ; dec           %r10
5524  DB  117,234                             ; jne           1397 <_sk_scale_u8_avx+0x68>
5525  DB  196,65,249,110,193                  ; vmovq         %r9,%xmm8
5526  DB  235,143                             ; jmp           1343 <_sk_scale_u8_avx+0x14>
5527
5528PUBLIC _sk_lerp_1_float_avx
5529_sk_lerp_1_float_avx LABEL PROC
5530  DB  72,173                              ; lods          %ds:(%rsi),%rax
5531  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
5532  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
5533  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
5534  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
5535  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
5536  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
5537  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
5538  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
5539  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
5540  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
5541  DB  197,228,92,223                      ; vsubps        %ymm7,%ymm3,%ymm3
5542  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
5543  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
5544  DB  72,173                              ; lods          %ds:(%rsi),%rax
5545  DB  255,224                             ; jmpq          *%rax
5546
5547PUBLIC _sk_lerp_u8_avx
5548_sk_lerp_u8_avx LABEL PROC
5549  DB  73,137,200                          ; mov           %rcx,%r8
5550  DB  72,173                              ; lods          %ds:(%rsi),%rax
5551  DB  72,139,0                            ; mov           (%rax),%rax
5552  DB  72,1,248                            ; add           %rdi,%rax
5553  DB  77,133,192                          ; test          %r8,%r8
5554  DB  117,116                             ; jne           1477 <_sk_lerp_u8_avx+0x84>
5555  DB  197,122,126,0                       ; vmovq         (%rax),%xmm8
5556  DB  196,66,121,49,200                   ; vpmovzxbd     %xmm8,%xmm9
5557  DB  196,67,121,4,192,229                ; vpermilps     $0xe5,%xmm8,%xmm8
5558  DB  196,66,121,49,192                   ; vpmovzxbd     %xmm8,%xmm8
5559  DB  196,67,53,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm9,%ymm8
5560  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
5561  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
5562  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
5563  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
5564  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
5565  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
5566  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
5567  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
5568  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
5569  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
5570  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
5571  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
5572  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
5573  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
5574  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
5575  DB  197,228,92,223                      ; vsubps        %ymm7,%ymm3,%ymm3
5576  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
5577  DB  197,228,88,223                      ; vaddps        %ymm7,%ymm3,%ymm3
5578  DB  72,173                              ; lods          %ds:(%rsi),%rax
5579  DB  76,137,193                          ; mov           %r8,%rcx
5580  DB  255,224                             ; jmpq          *%rax
5581  DB  49,201                              ; xor           %ecx,%ecx
5582  DB  77,137,194                          ; mov           %r8,%r10
5583  DB  69,49,201                           ; xor           %r9d,%r9d
5584  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
5585  DB  72,255,192                          ; inc           %rax
5586  DB  73,211,227                          ; shl           %cl,%r11
5587  DB  77,9,217                            ; or            %r11,%r9
5588  DB  72,131,193,8                        ; add           $0x8,%rcx
5589  DB  73,255,202                          ; dec           %r10
5590  DB  117,234                             ; jne           147f <_sk_lerp_u8_avx+0x8c>
5591  DB  196,65,249,110,193                  ; vmovq         %r9,%xmm8
5592  DB  233,104,255,255,255                 ; jmpq          1407 <_sk_lerp_u8_avx+0x14>
5593
5594PUBLIC _sk_lerp_565_avx
5595_sk_lerp_565_avx LABEL PROC
5596  DB  72,173                              ; lods          %ds:(%rsi),%rax
5597  DB  76,139,16                           ; mov           (%rax),%r10
5598  DB  72,133,201                          ; test          %rcx,%rcx
5599  DB  15,133,250,0,0,0                    ; jne           15a7 <_sk_lerp_565_avx+0x108>
5600  DB  196,65,122,111,4,122                ; vmovdqu       (%r10,%rdi,2),%xmm8
5601  DB  197,225,239,219                     ; vpxor         %xmm3,%xmm3,%xmm3
5602  DB  197,185,105,219                     ; vpunpckhwd    %xmm3,%xmm8,%xmm3
5603  DB  196,66,121,51,192                   ; vpmovzxwd     %xmm8,%xmm8
5604  DB  196,99,61,24,195,1                  ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm8
5605  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
5606  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5607  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
5608  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5609  DB  196,193,100,84,216                  ; vandps        %ymm8,%ymm3,%ymm3
5610  DB  197,124,91,203                      ; vcvtdq2ps     %ymm3,%ymm9
5611  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
5612  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5613  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5614  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5615  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
5616  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
5617  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5618  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
5619  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5620  DB  196,193,100,84,216                  ; vandps        %ymm8,%ymm3,%ymm3
5621  DB  197,124,91,211                      ; vcvtdq2ps     %ymm3,%ymm10
5622  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
5623  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5624  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5625  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5626  DB  197,44,89,211                       ; vmulps        %ymm3,%ymm10,%ymm10
5627  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
5628  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5629  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
5630  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5631  DB  196,193,100,84,216                  ; vandps        %ymm8,%ymm3,%ymm3
5632  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
5633  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
5634  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5635  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5636  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5637  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
5638  DB  197,252,92,196                      ; vsubps        %ymm4,%ymm0,%ymm0
5639  DB  196,193,124,89,193                  ; vmulps        %ymm9,%ymm0,%ymm0
5640  DB  197,252,88,196                      ; vaddps        %ymm4,%ymm0,%ymm0
5641  DB  197,244,92,205                      ; vsubps        %ymm5,%ymm1,%ymm1
5642  DB  196,193,116,89,202                  ; vmulps        %ymm10,%ymm1,%ymm1
5643  DB  197,244,88,205                      ; vaddps        %ymm5,%ymm1,%ymm1
5644  DB  197,236,92,214                      ; vsubps        %ymm6,%ymm2,%ymm2
5645  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
5646  DB  197,236,88,214                      ; vaddps        %ymm6,%ymm2,%ymm2
5647  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
5648  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5649  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5650  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5651  DB  72,173                              ; lods          %ds:(%rsi),%rax
5652  DB  255,224                             ; jmpq          *%rax
5653  DB  65,137,200                          ; mov           %ecx,%r8d
5654  DB  65,128,224,7                        ; and           $0x7,%r8b
5655  DB  196,65,57,239,192                   ; vpxor         %xmm8,%xmm8,%xmm8
5656  DB  65,254,200                          ; dec           %r8b
5657  DB  65,128,248,6                        ; cmp           $0x6,%r8b
5658  DB  15,135,243,254,255,255              ; ja            14b3 <_sk_lerp_565_avx+0x14>
5659  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
5660  DB  76,141,13,73,0,0,0                  ; lea           0x49(%rip),%r9        # 1614 <_sk_lerp_565_avx+0x175>
5661  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
5662  DB  76,1,200                            ; add           %r9,%rax
5663  DB  255,224                             ; jmpq          *%rax
5664  DB  197,225,239,219                     ; vpxor         %xmm3,%xmm3,%xmm3
5665  DB  196,65,97,196,68,122,12,6           ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm3,%xmm8
5666  DB  196,65,57,196,68,122,10,5           ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm8,%xmm8
5667  DB  196,65,57,196,68,122,8,4            ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm8,%xmm8
5668  DB  196,65,57,196,68,122,6,3            ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm8,%xmm8
5669  DB  196,65,57,196,68,122,4,2            ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm8,%xmm8
5670  DB  196,65,57,196,68,122,2,1            ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm8,%xmm8
5671  DB  196,65,57,196,4,122,0               ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm8,%xmm8
5672  DB  233,159,254,255,255                 ; jmpq          14b3 <_sk_lerp_565_avx+0x14>
5673  DB  244                                 ; hlt
5674  DB  255                                 ; (bad)
5675  DB  255                                 ; (bad)
5676  DB  255                                 ; (bad)
5677  DB  236                                 ; in            (%dx),%al
5678  DB  255                                 ; (bad)
5679  DB  255                                 ; (bad)
5680  DB  255,228                             ; jmpq          *%rsp
5681  DB  255                                 ; (bad)
5682  DB  255                                 ; (bad)
5683  DB  255                                 ; (bad)
5684  DB  220,255                             ; fdivr         %st,%st(7)
5685  DB  255                                 ; (bad)
5686  DB  255,212                             ; callq         *%rsp
5687  DB  255                                 ; (bad)
5688  DB  255                                 ; (bad)
5689  DB  255,204                             ; dec           %esp
5690  DB  255                                 ; (bad)
5691  DB  255                                 ; (bad)
5692  DB  255,192                             ; inc           %eax
5693  DB  255                                 ; (bad)
5694  DB  255                                 ; (bad)
5695  DB  255                                 ; .byte         0xff
5696
5697PUBLIC _sk_load_tables_avx
5698_sk_load_tables_avx LABEL PROC
5699  DB  85                                  ; push          %rbp
5700  DB  65,87                               ; push          %r15
5701  DB  65,86                               ; push          %r14
5702  DB  65,85                               ; push          %r13
5703  DB  65,84                               ; push          %r12
5704  DB  83                                  ; push          %rbx
5705  DB  72,173                              ; lods          %ds:(%rsi),%rax
5706  DB  76,139,0                            ; mov           (%rax),%r8
5707  DB  72,133,201                          ; test          %rcx,%rcx
5708  DB  15,133,56,2,0,0                     ; jne           1880 <_sk_load_tables_avx+0x250>
5709  DB  196,65,124,16,4,184                 ; vmovups       (%r8,%rdi,4),%ymm8
5710  DB  187,255,0,0,0                       ; mov           $0xff,%ebx
5711  DB  197,249,110,195                     ; vmovd         %ebx,%xmm0
5712  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
5713  DB  196,99,125,24,200,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm9
5714  DB  196,193,52,84,192                   ; vandps        %ymm8,%ymm9,%ymm0
5715  DB  196,193,249,126,193                 ; vmovq         %xmm0,%r9
5716  DB  69,137,203                          ; mov           %r9d,%r11d
5717  DB  196,195,249,22,194,1                ; vpextrq       $0x1,%xmm0,%r10
5718  DB  69,137,214                          ; mov           %r10d,%r14d
5719  DB  73,193,234,32                       ; shr           $0x20,%r10
5720  DB  73,193,233,32                       ; shr           $0x20,%r9
5721  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
5722  DB  196,193,249,126,196                 ; vmovq         %xmm0,%r12
5723  DB  69,137,231                          ; mov           %r12d,%r15d
5724  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
5725  DB  65,137,221                          ; mov           %ebx,%r13d
5726  DB  72,193,235,32                       ; shr           $0x20,%rbx
5727  DB  73,193,236,32                       ; shr           $0x20,%r12
5728  DB  72,139,104,8                        ; mov           0x8(%rax),%rbp
5729  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
5730  DB  196,161,122,16,68,189,0             ; vmovss        0x0(%rbp,%r15,4),%xmm0
5731  DB  196,163,121,33,68,165,0,16          ; vinsertps     $0x10,0x0(%rbp,%r12,4),%xmm0,%xmm0
5732  DB  196,161,122,16,76,173,0             ; vmovss        0x0(%rbp,%r13,4),%xmm1
5733  DB  196,227,121,33,193,32               ; vinsertps     $0x20,%xmm1,%xmm0,%xmm0
5734  DB  197,250,16,76,157,0                 ; vmovss        0x0(%rbp,%rbx,4),%xmm1
5735  DB  196,227,121,33,193,48               ; vinsertps     $0x30,%xmm1,%xmm0,%xmm0
5736  DB  196,161,122,16,76,157,0             ; vmovss        0x0(%rbp,%r11,4),%xmm1
5737  DB  196,163,113,33,76,141,0,16          ; vinsertps     $0x10,0x0(%rbp,%r9,4),%xmm1,%xmm1
5738  DB  196,161,122,16,92,181,0             ; vmovss        0x0(%rbp,%r14,4),%xmm3
5739  DB  196,227,113,33,203,32               ; vinsertps     $0x20,%xmm3,%xmm1,%xmm1
5740  DB  196,161,122,16,92,149,0             ; vmovss        0x0(%rbp,%r10,4),%xmm3
5741  DB  196,227,113,33,203,48               ; vinsertps     $0x30,%xmm3,%xmm1,%xmm1
5742  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
5743  DB  196,193,113,114,208,8               ; vpsrld        $0x8,%xmm8,%xmm1
5744  DB  196,67,125,25,194,1                 ; vextractf128  $0x1,%ymm8,%xmm10
5745  DB  196,193,105,114,210,8               ; vpsrld        $0x8,%xmm10,%xmm2
5746  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
5747  DB  197,180,84,201                      ; vandps        %ymm1,%ymm9,%ymm1
5748  DB  196,193,249,126,201                 ; vmovq         %xmm1,%r9
5749  DB  69,137,203                          ; mov           %r9d,%r11d
5750  DB  196,195,249,22,202,1                ; vpextrq       $0x1,%xmm1,%r10
5751  DB  69,137,214                          ; mov           %r10d,%r14d
5752  DB  73,193,234,32                       ; shr           $0x20,%r10
5753  DB  73,193,233,32                       ; shr           $0x20,%r9
5754  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
5755  DB  196,225,249,126,205                 ; vmovq         %xmm1,%rbp
5756  DB  65,137,239                          ; mov           %ebp,%r15d
5757  DB  196,227,249,22,203,1                ; vpextrq       $0x1,%xmm1,%rbx
5758  DB  65,137,220                          ; mov           %ebx,%r12d
5759  DB  72,193,235,32                       ; shr           $0x20,%rbx
5760  DB  72,193,237,32                       ; shr           $0x20,%rbp
5761  DB  196,129,122,16,12,184               ; vmovss        (%r8,%r15,4),%xmm1
5762  DB  196,195,113,33,12,168,16            ; vinsertps     $0x10,(%r8,%rbp,4),%xmm1,%xmm1
5763  DB  196,129,122,16,20,160               ; vmovss        (%r8,%r12,4),%xmm2
5764  DB  196,227,113,33,202,32               ; vinsertps     $0x20,%xmm2,%xmm1,%xmm1
5765  DB  196,193,122,16,20,152               ; vmovss        (%r8,%rbx,4),%xmm2
5766  DB  196,227,113,33,202,48               ; vinsertps     $0x30,%xmm2,%xmm1,%xmm1
5767  DB  196,129,122,16,20,152               ; vmovss        (%r8,%r11,4),%xmm2
5768  DB  196,131,105,33,20,136,16            ; vinsertps     $0x10,(%r8,%r9,4),%xmm2,%xmm2
5769  DB  196,129,122,16,28,176               ; vmovss        (%r8,%r14,4),%xmm3
5770  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
5771  DB  196,129,122,16,28,144               ; vmovss        (%r8,%r10,4),%xmm3
5772  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
5773  DB  196,227,109,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm2,%ymm1
5774  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
5775  DB  196,193,105,114,208,16              ; vpsrld        $0x10,%xmm8,%xmm2
5776  DB  196,193,97,114,210,16               ; vpsrld        $0x10,%xmm10,%xmm3
5777  DB  196,227,109,24,211,1                ; vinsertf128   $0x1,%xmm3,%ymm2,%ymm2
5778  DB  197,180,84,210                      ; vandps        %ymm2,%ymm9,%ymm2
5779  DB  196,193,249,126,208                 ; vmovq         %xmm2,%r8
5780  DB  69,137,194                          ; mov           %r8d,%r10d
5781  DB  196,195,249,22,209,1                ; vpextrq       $0x1,%xmm2,%r9
5782  DB  69,137,203                          ; mov           %r9d,%r11d
5783  DB  73,193,233,32                       ; shr           $0x20,%r9
5784  DB  73,193,232,32                       ; shr           $0x20,%r8
5785  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
5786  DB  196,225,249,126,213                 ; vmovq         %xmm2,%rbp
5787  DB  65,137,238                          ; mov           %ebp,%r14d
5788  DB  196,227,249,22,211,1                ; vpextrq       $0x1,%xmm2,%rbx
5789  DB  65,137,223                          ; mov           %ebx,%r15d
5790  DB  72,193,235,32                       ; shr           $0x20,%rbx
5791  DB  72,193,237,32                       ; shr           $0x20,%rbp
5792  DB  196,161,122,16,20,176               ; vmovss        (%rax,%r14,4),%xmm2
5793  DB  196,227,105,33,20,168,16            ; vinsertps     $0x10,(%rax,%rbp,4),%xmm2,%xmm2
5794  DB  196,161,122,16,28,184               ; vmovss        (%rax,%r15,4),%xmm3
5795  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
5796  DB  197,250,16,28,152                   ; vmovss        (%rax,%rbx,4),%xmm3
5797  DB  196,99,105,33,203,48                ; vinsertps     $0x30,%xmm3,%xmm2,%xmm9
5798  DB  196,161,122,16,28,144               ; vmovss        (%rax,%r10,4),%xmm3
5799  DB  196,163,97,33,28,128,16             ; vinsertps     $0x10,(%rax,%r8,4),%xmm3,%xmm3
5800  DB  196,161,122,16,20,152               ; vmovss        (%rax,%r11,4),%xmm2
5801  DB  196,227,97,33,210,32                ; vinsertps     $0x20,%xmm2,%xmm3,%xmm2
5802  DB  196,161,122,16,28,136               ; vmovss        (%rax,%r9,4),%xmm3
5803  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
5804  DB  196,195,109,24,209,1                ; vinsertf128   $0x1,%xmm9,%ymm2,%ymm2
5805  DB  196,193,57,114,208,24               ; vpsrld        $0x18,%xmm8,%xmm8
5806  DB  196,193,97,114,210,24               ; vpsrld        $0x18,%xmm10,%xmm3
5807  DB  196,227,61,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm3
5808  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
5809  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
5810  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
5811  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
5812  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
5813  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
5814  DB  72,173                              ; lods          %ds:(%rsi),%rax
5815  DB  91                                  ; pop           %rbx
5816  DB  65,92                               ; pop           %r12
5817  DB  65,93                               ; pop           %r13
5818  DB  65,94                               ; pop           %r14
5819  DB  65,95                               ; pop           %r15
5820  DB  93                                  ; pop           %rbp
5821  DB  255,224                             ; jmpq          *%rax
5822  DB  137,203                             ; mov           %ecx,%ebx
5823  DB  128,227,7                           ; and           $0x7,%bl
5824  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
5825  DB  254,203                             ; dec           %bl
5826  DB  128,251,6                           ; cmp           $0x6,%bl
5827  DB  15,135,185,253,255,255              ; ja            164e <_sk_load_tables_avx+0x1e>
5828  DB  15,182,219                          ; movzbl        %bl,%ebx
5829  DB  76,141,13,137,0,0,0                 ; lea           0x89(%rip),%r9        # 1928 <_sk_load_tables_avx+0x2f8>
5830  DB  73,99,28,153                        ; movslq        (%r9,%rbx,4),%rbx
5831  DB  76,1,203                            ; add           %r9,%rbx
5832  DB  255,227                             ; jmpq          *%rbx
5833  DB  196,193,121,110,68,184,24           ; vmovd         0x18(%r8,%rdi,4),%xmm0
5834  DB  197,249,112,192,68                  ; vpshufd       $0x44,%xmm0,%xmm0
5835  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
5836  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
5837  DB  196,99,117,12,192,64                ; vblendps      $0x40,%ymm0,%ymm1,%ymm8
5838  DB  196,99,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm0
5839  DB  196,195,121,34,68,184,20,1          ; vpinsrd       $0x1,0x14(%r8,%rdi,4),%xmm0,%xmm0
5840  DB  196,99,61,24,192,1                  ; vinsertf128   $0x1,%xmm0,%ymm8,%ymm8
5841  DB  196,99,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm0
5842  DB  196,195,121,34,68,184,16,0          ; vpinsrd       $0x0,0x10(%r8,%rdi,4),%xmm0,%xmm0
5843  DB  196,99,61,24,192,1                  ; vinsertf128   $0x1,%xmm0,%ymm8,%ymm8
5844  DB  196,195,57,34,68,184,12,3           ; vpinsrd       $0x3,0xc(%r8,%rdi,4),%xmm8,%xmm0
5845  DB  196,99,61,12,192,15                 ; vblendps      $0xf,%ymm0,%ymm8,%ymm8
5846  DB  196,195,57,34,68,184,8,2            ; vpinsrd       $0x2,0x8(%r8,%rdi,4),%xmm8,%xmm0
5847  DB  196,99,61,12,192,15                 ; vblendps      $0xf,%ymm0,%ymm8,%ymm8
5848  DB  196,195,57,34,68,184,4,1            ; vpinsrd       $0x1,0x4(%r8,%rdi,4),%xmm8,%xmm0
5849  DB  196,99,61,12,192,15                 ; vblendps      $0xf,%ymm0,%ymm8,%ymm8
5850  DB  196,195,57,34,4,184,0               ; vpinsrd       $0x0,(%r8,%rdi,4),%xmm8,%xmm0
5851  DB  196,99,61,12,192,15                 ; vblendps      $0xf,%ymm0,%ymm8,%ymm8
5852  DB  233,38,253,255,255                  ; jmpq          164e <_sk_load_tables_avx+0x1e>
5853  DB  238                                 ; out           %al,(%dx)
5854  DB  255                                 ; (bad)
5855  DB  255                                 ; (bad)
5856  DB  255,224                             ; jmpq          *%rax
5857  DB  255                                 ; (bad)
5858  DB  255                                 ; (bad)
5859  DB  255,210                             ; callq         *%rdx
5860  DB  255                                 ; (bad)
5861  DB  255                                 ; (bad)
5862  DB  255,196                             ; inc           %esp
5863  DB  255                                 ; (bad)
5864  DB  255                                 ; (bad)
5865  DB  255,176,255,255,255,156             ; pushq         -0x63000001(%rax)
5866  DB  255                                 ; (bad)
5867  DB  255                                 ; (bad)
5868  DB  255                                 ; .byte         0xff
5869  DB  128,255,255                         ; cmp           $0xff,%bh
5870  DB  255                                 ; .byte         0xff
5871
5872PUBLIC _sk_load_tables_u16_be_avx
5873_sk_load_tables_u16_be_avx LABEL PROC
5874  DB  72,173                              ; lods          %ds:(%rsi),%rax
5875  DB  76,139,0                            ; mov           (%rax),%r8
5876  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
5877  DB  72,133,201                          ; test          %rcx,%rcx
5878  DB  15,133,165,2,0,0                    ; jne           1bff <_sk_load_tables_u16_be_avx+0x2bb>
5879  DB  196,1,121,16,4,72                   ; vmovupd       (%r8,%r9,2),%xmm8
5880  DB  196,129,121,16,84,72,16             ; vmovupd       0x10(%r8,%r9,2),%xmm2
5881  DB  196,129,121,16,92,72,32             ; vmovupd       0x20(%r8,%r9,2),%xmm3
5882  DB  196,1,122,111,76,72,48              ; vmovdqu       0x30(%r8,%r9,2),%xmm9
5883  DB  85                                  ; push          %rbp
5884  DB  65,87                               ; push          %r15
5885  DB  65,86                               ; push          %r14
5886  DB  65,85                               ; push          %r13
5887  DB  65,84                               ; push          %r12
5888  DB  83                                  ; push          %rbx
5889  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
5890  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
5891  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
5892  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
5893  DB  197,121,97,218                      ; vpunpcklwd    %xmm2,%xmm0,%xmm11
5894  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
5895  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
5896  DB  197,113,105,211                     ; vpunpckhwd    %xmm3,%xmm1,%xmm10
5897  DB  197,161,108,194                     ; vpunpcklqdq   %xmm2,%xmm11,%xmm0
5898  DB  196,65,57,239,192                   ; vpxor         %xmm8,%xmm8,%xmm8
5899  DB  196,193,121,105,200                 ; vpunpckhwd    %xmm8,%xmm0,%xmm1
5900  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
5901  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
5902  DB  187,255,0,0,0                       ; mov           $0xff,%ebx
5903  DB  197,249,110,203                     ; vmovd         %ebx,%xmm1
5904  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
5905  DB  196,99,117,24,225,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm12
5906  DB  196,193,124,84,196                  ; vandps        %ymm12,%ymm0,%ymm0
5907  DB  196,193,249,126,193                 ; vmovq         %xmm0,%r9
5908  DB  69,137,203                          ; mov           %r9d,%r11d
5909  DB  196,195,249,22,194,1                ; vpextrq       $0x1,%xmm0,%r10
5910  DB  69,137,214                          ; mov           %r10d,%r14d
5911  DB  73,193,234,32                       ; shr           $0x20,%r10
5912  DB  73,193,233,32                       ; shr           $0x20,%r9
5913  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
5914  DB  196,193,249,126,196                 ; vmovq         %xmm0,%r12
5915  DB  69,137,231                          ; mov           %r12d,%r15d
5916  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
5917  DB  65,137,221                          ; mov           %ebx,%r13d
5918  DB  72,193,235,32                       ; shr           $0x20,%rbx
5919  DB  73,193,236,32                       ; shr           $0x20,%r12
5920  DB  72,139,104,8                        ; mov           0x8(%rax),%rbp
5921  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
5922  DB  196,161,122,16,68,189,0             ; vmovss        0x0(%rbp,%r15,4),%xmm0
5923  DB  196,163,121,33,68,165,0,16          ; vinsertps     $0x10,0x0(%rbp,%r12,4),%xmm0,%xmm0
5924  DB  196,161,122,16,76,173,0             ; vmovss        0x0(%rbp,%r13,4),%xmm1
5925  DB  196,227,121,33,193,32               ; vinsertps     $0x20,%xmm1,%xmm0,%xmm0
5926  DB  197,250,16,76,157,0                 ; vmovss        0x0(%rbp,%rbx,4),%xmm1
5927  DB  196,227,121,33,193,48               ; vinsertps     $0x30,%xmm1,%xmm0,%xmm0
5928  DB  196,161,122,16,76,157,0             ; vmovss        0x0(%rbp,%r11,4),%xmm1
5929  DB  196,163,113,33,76,141,0,16          ; vinsertps     $0x10,0x0(%rbp,%r9,4),%xmm1,%xmm1
5930  DB  196,161,122,16,92,181,0             ; vmovss        0x0(%rbp,%r14,4),%xmm3
5931  DB  196,227,113,33,203,32               ; vinsertps     $0x20,%xmm3,%xmm1,%xmm1
5932  DB  196,161,122,16,92,149,0             ; vmovss        0x0(%rbp,%r10,4),%xmm3
5933  DB  196,227,113,33,203,48               ; vinsertps     $0x30,%xmm3,%xmm1,%xmm1
5934  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
5935  DB  197,161,109,202                     ; vpunpckhqdq   %xmm2,%xmm11,%xmm1
5936  DB  196,193,113,105,208                 ; vpunpckhwd    %xmm8,%xmm1,%xmm2
5937  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
5938  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
5939  DB  196,193,116,84,204                  ; vandps        %ymm12,%ymm1,%ymm1
5940  DB  196,193,249,126,201                 ; vmovq         %xmm1,%r9
5941  DB  69,137,203                          ; mov           %r9d,%r11d
5942  DB  196,195,249,22,202,1                ; vpextrq       $0x1,%xmm1,%r10
5943  DB  69,137,214                          ; mov           %r10d,%r14d
5944  DB  73,193,234,32                       ; shr           $0x20,%r10
5945  DB  73,193,233,32                       ; shr           $0x20,%r9
5946  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
5947  DB  196,225,249,126,205                 ; vmovq         %xmm1,%rbp
5948  DB  65,137,239                          ; mov           %ebp,%r15d
5949  DB  196,227,249,22,203,1                ; vpextrq       $0x1,%xmm1,%rbx
5950  DB  65,137,220                          ; mov           %ebx,%r12d
5951  DB  72,193,235,32                       ; shr           $0x20,%rbx
5952  DB  72,193,237,32                       ; shr           $0x20,%rbp
5953  DB  196,129,122,16,12,184               ; vmovss        (%r8,%r15,4),%xmm1
5954  DB  196,195,113,33,12,168,16            ; vinsertps     $0x10,(%r8,%rbp,4),%xmm1,%xmm1
5955  DB  196,129,122,16,20,160               ; vmovss        (%r8,%r12,4),%xmm2
5956  DB  196,227,113,33,202,32               ; vinsertps     $0x20,%xmm2,%xmm1,%xmm1
5957  DB  196,193,122,16,20,152               ; vmovss        (%r8,%rbx,4),%xmm2
5958  DB  196,227,113,33,202,48               ; vinsertps     $0x30,%xmm2,%xmm1,%xmm1
5959  DB  196,129,122,16,20,152               ; vmovss        (%r8,%r11,4),%xmm2
5960  DB  196,131,105,33,20,136,16            ; vinsertps     $0x10,(%r8,%r9,4),%xmm2,%xmm2
5961  DB  196,129,122,16,28,176               ; vmovss        (%r8,%r14,4),%xmm3
5962  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
5963  DB  196,129,122,16,28,144               ; vmovss        (%r8,%r10,4),%xmm3
5964  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
5965  DB  196,227,109,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm2,%ymm1
5966  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
5967  DB  196,193,49,108,210                  ; vpunpcklqdq   %xmm10,%xmm9,%xmm2
5968  DB  196,193,105,105,216                 ; vpunpckhwd    %xmm8,%xmm2,%xmm3
5969  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
5970  DB  196,227,109,24,211,1                ; vinsertf128   $0x1,%xmm3,%ymm2,%ymm2
5971  DB  196,193,108,84,212                  ; vandps        %ymm12,%ymm2,%ymm2
5972  DB  196,193,249,126,208                 ; vmovq         %xmm2,%r8
5973  DB  69,137,194                          ; mov           %r8d,%r10d
5974  DB  196,195,249,22,209,1                ; vpextrq       $0x1,%xmm2,%r9
5975  DB  69,137,203                          ; mov           %r9d,%r11d
5976  DB  73,193,233,32                       ; shr           $0x20,%r9
5977  DB  73,193,232,32                       ; shr           $0x20,%r8
5978  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
5979  DB  196,225,249,126,213                 ; vmovq         %xmm2,%rbp
5980  DB  65,137,238                          ; mov           %ebp,%r14d
5981  DB  196,227,249,22,211,1                ; vpextrq       $0x1,%xmm2,%rbx
5982  DB  65,137,223                          ; mov           %ebx,%r15d
5983  DB  72,193,235,32                       ; shr           $0x20,%rbx
5984  DB  72,193,237,32                       ; shr           $0x20,%rbp
5985  DB  196,161,122,16,20,176               ; vmovss        (%rax,%r14,4),%xmm2
5986  DB  196,227,105,33,20,168,16            ; vinsertps     $0x10,(%rax,%rbp,4),%xmm2,%xmm2
5987  DB  196,161,122,16,28,184               ; vmovss        (%rax,%r15,4),%xmm3
5988  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
5989  DB  197,250,16,28,152                   ; vmovss        (%rax,%rbx,4),%xmm3
5990  DB  196,99,105,33,219,48                ; vinsertps     $0x30,%xmm3,%xmm2,%xmm11
5991  DB  196,161,122,16,28,144               ; vmovss        (%rax,%r10,4),%xmm3
5992  DB  196,163,97,33,28,128,16             ; vinsertps     $0x10,(%rax,%r8,4),%xmm3,%xmm3
5993  DB  196,161,122,16,20,152               ; vmovss        (%rax,%r11,4),%xmm2
5994  DB  196,227,97,33,210,32                ; vinsertps     $0x20,%xmm2,%xmm3,%xmm2
5995  DB  196,161,122,16,28,136               ; vmovss        (%rax,%r9,4),%xmm3
5996  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
5997  DB  196,195,109,24,211,1                ; vinsertf128   $0x1,%xmm11,%ymm2,%ymm2
5998  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
5999  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
6000  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
6001  DB  196,99,101,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm11
6002  DB  196,193,49,109,218                  ; vpunpckhqdq   %xmm10,%xmm9,%xmm3
6003  DB  197,177,113,243,8                   ; vpsllw        $0x8,%xmm3,%xmm9
6004  DB  197,225,113,211,8                   ; vpsrlw        $0x8,%xmm3,%xmm3
6005  DB  197,177,235,219                     ; vpor          %xmm3,%xmm9,%xmm3
6006  DB  196,65,97,105,192                   ; vpunpckhwd    %xmm8,%xmm3,%xmm8
6007  DB  196,226,121,51,219                  ; vpmovzxwd     %xmm3,%xmm3
6008  DB  196,195,101,24,216,1                ; vinsertf128   $0x1,%xmm8,%ymm3,%ymm3
6009  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
6010  DB  196,193,100,89,219                  ; vmulps        %ymm11,%ymm3,%ymm3
6011  DB  72,173                              ; lods          %ds:(%rsi),%rax
6012  DB  91                                  ; pop           %rbx
6013  DB  65,92                               ; pop           %r12
6014  DB  65,93                               ; pop           %r13
6015  DB  65,94                               ; pop           %r14
6016  DB  65,95                               ; pop           %r15
6017  DB  93                                  ; pop           %rbp
6018  DB  255,224                             ; jmpq          *%rax
6019  DB  196,1,123,16,4,72                   ; vmovsd        (%r8,%r9,2),%xmm8
6020  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
6021  DB  72,131,249,1                        ; cmp           $0x1,%rcx
6022  DB  116,85                              ; je            1c65 <_sk_load_tables_u16_be_avx+0x321>
6023  DB  196,1,57,22,68,72,8                 ; vmovhpd       0x8(%r8,%r9,2),%xmm8,%xmm8
6024  DB  72,131,249,3                        ; cmp           $0x3,%rcx
6025  DB  114,72                              ; jb            1c65 <_sk_load_tables_u16_be_avx+0x321>
6026  DB  196,129,123,16,84,72,16             ; vmovsd        0x10(%r8,%r9,2),%xmm2
6027  DB  72,131,249,3                        ; cmp           $0x3,%rcx
6028  DB  116,72                              ; je            1c72 <_sk_load_tables_u16_be_avx+0x32e>
6029  DB  196,129,105,22,84,72,24             ; vmovhpd       0x18(%r8,%r9,2),%xmm2,%xmm2
6030  DB  72,131,249,5                        ; cmp           $0x5,%rcx
6031  DB  114,59                              ; jb            1c72 <_sk_load_tables_u16_be_avx+0x32e>
6032  DB  196,129,123,16,92,72,32             ; vmovsd        0x20(%r8,%r9,2),%xmm3
6033  DB  72,131,249,5                        ; cmp           $0x5,%rcx
6034  DB  15,132,45,253,255,255               ; je            1975 <_sk_load_tables_u16_be_avx+0x31>
6035  DB  196,129,97,22,92,72,40              ; vmovhpd       0x28(%r8,%r9,2),%xmm3,%xmm3
6036  DB  72,131,249,7                        ; cmp           $0x7,%rcx
6037  DB  15,130,28,253,255,255               ; jb            1975 <_sk_load_tables_u16_be_avx+0x31>
6038  DB  196,1,122,126,76,72,48              ; vmovq         0x30(%r8,%r9,2),%xmm9
6039  DB  233,16,253,255,255                  ; jmpq          1975 <_sk_load_tables_u16_be_avx+0x31>
6040  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
6041  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
6042  DB  233,3,253,255,255                   ; jmpq          1975 <_sk_load_tables_u16_be_avx+0x31>
6043  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
6044  DB  233,250,252,255,255                 ; jmpq          1975 <_sk_load_tables_u16_be_avx+0x31>
6045
6046PUBLIC _sk_load_tables_rgb_u16_be_avx
6047_sk_load_tables_rgb_u16_be_avx LABEL PROC
6048  DB  72,173                              ; lods          %ds:(%rsi),%rax
6049  DB  76,139,0                            ; mov           (%rax),%r8
6050  DB  76,141,12,127                       ; lea           (%rdi,%rdi,2),%r9
6051  DB  72,133,201                          ; test          %rcx,%rcx
6052  DB  15,133,146,2,0,0                    ; jne           1f1f <_sk_load_tables_rgb_u16_be_avx+0x2a4>
6053  DB  196,129,122,111,4,72                ; vmovdqu       (%r8,%r9,2),%xmm0
6054  DB  196,129,122,111,84,72,12            ; vmovdqu       0xc(%r8,%r9,2),%xmm2
6055  DB  196,129,122,111,76,72,24            ; vmovdqu       0x18(%r8,%r9,2),%xmm1
6056  DB  196,129,122,111,92,72,32            ; vmovdqu       0x20(%r8,%r9,2),%xmm3
6057  DB  197,225,115,219,4                   ; vpsrldq       $0x4,%xmm3,%xmm3
6058  DB  197,185,115,216,6                   ; vpsrldq       $0x6,%xmm0,%xmm8
6059  DB  197,177,115,218,6                   ; vpsrldq       $0x6,%xmm2,%xmm9
6060  DB  197,161,115,217,6                   ; vpsrldq       $0x6,%xmm1,%xmm11
6061  DB  197,169,115,219,6                   ; vpsrldq       $0x6,%xmm3,%xmm10
6062  DB  85                                  ; push          %rbp
6063  DB  65,87                               ; push          %r15
6064  DB  65,86                               ; push          %r14
6065  DB  65,85                               ; push          %r13
6066  DB  65,84                               ; push          %r12
6067  DB  83                                  ; push          %rbx
6068  DB  197,249,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm0
6069  DB  196,193,57,97,209                   ; vpunpcklwd    %xmm9,%xmm8,%xmm2
6070  DB  197,241,97,203                      ; vpunpcklwd    %xmm3,%xmm1,%xmm1
6071  DB  196,193,33,97,218                   ; vpunpcklwd    %xmm10,%xmm11,%xmm3
6072  DB  197,121,97,218                      ; vpunpcklwd    %xmm2,%xmm0,%xmm11
6073  DB  197,121,105,194                     ; vpunpckhwd    %xmm2,%xmm0,%xmm8
6074  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
6075  DB  197,113,105,211                     ; vpunpckhwd    %xmm3,%xmm1,%xmm10
6076  DB  197,161,108,194                     ; vpunpcklqdq   %xmm2,%xmm11,%xmm0
6077  DB  196,65,25,239,228                   ; vpxor         %xmm12,%xmm12,%xmm12
6078  DB  196,193,121,105,204                 ; vpunpckhwd    %xmm12,%xmm0,%xmm1
6079  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
6080  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
6081  DB  187,255,0,0,0                       ; mov           $0xff,%ebx
6082  DB  197,249,110,203                     ; vmovd         %ebx,%xmm1
6083  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
6084  DB  196,99,117,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm9
6085  DB  196,193,124,84,193                  ; vandps        %ymm9,%ymm0,%ymm0
6086  DB  196,193,249,126,193                 ; vmovq         %xmm0,%r9
6087  DB  69,137,203                          ; mov           %r9d,%r11d
6088  DB  196,195,249,22,194,1                ; vpextrq       $0x1,%xmm0,%r10
6089  DB  69,137,214                          ; mov           %r10d,%r14d
6090  DB  73,193,234,32                       ; shr           $0x20,%r10
6091  DB  73,193,233,32                       ; shr           $0x20,%r9
6092  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
6093  DB  196,193,249,126,196                 ; vmovq         %xmm0,%r12
6094  DB  69,137,231                          ; mov           %r12d,%r15d
6095  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
6096  DB  65,137,221                          ; mov           %ebx,%r13d
6097  DB  72,193,235,32                       ; shr           $0x20,%rbx
6098  DB  73,193,236,32                       ; shr           $0x20,%r12
6099  DB  72,139,104,8                        ; mov           0x8(%rax),%rbp
6100  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
6101  DB  196,161,122,16,68,189,0             ; vmovss        0x0(%rbp,%r15,4),%xmm0
6102  DB  196,163,121,33,68,165,0,16          ; vinsertps     $0x10,0x0(%rbp,%r12,4),%xmm0,%xmm0
6103  DB  196,161,122,16,76,173,0             ; vmovss        0x0(%rbp,%r13,4),%xmm1
6104  DB  196,227,121,33,193,32               ; vinsertps     $0x20,%xmm1,%xmm0,%xmm0
6105  DB  197,250,16,76,157,0                 ; vmovss        0x0(%rbp,%rbx,4),%xmm1
6106  DB  196,227,121,33,193,48               ; vinsertps     $0x30,%xmm1,%xmm0,%xmm0
6107  DB  196,161,122,16,76,157,0             ; vmovss        0x0(%rbp,%r11,4),%xmm1
6108  DB  196,163,113,33,76,141,0,16          ; vinsertps     $0x10,0x0(%rbp,%r9,4),%xmm1,%xmm1
6109  DB  196,161,122,16,92,181,0             ; vmovss        0x0(%rbp,%r14,4),%xmm3
6110  DB  196,227,113,33,203,32               ; vinsertps     $0x20,%xmm3,%xmm1,%xmm1
6111  DB  196,161,122,16,92,149,0             ; vmovss        0x0(%rbp,%r10,4),%xmm3
6112  DB  196,227,113,33,203,48               ; vinsertps     $0x30,%xmm3,%xmm1,%xmm1
6113  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
6114  DB  197,161,109,202                     ; vpunpckhqdq   %xmm2,%xmm11,%xmm1
6115  DB  196,193,113,105,212                 ; vpunpckhwd    %xmm12,%xmm1,%xmm2
6116  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
6117  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
6118  DB  196,193,116,84,201                  ; vandps        %ymm9,%ymm1,%ymm1
6119  DB  196,193,249,126,201                 ; vmovq         %xmm1,%r9
6120  DB  69,137,203                          ; mov           %r9d,%r11d
6121  DB  196,195,249,22,202,1                ; vpextrq       $0x1,%xmm1,%r10
6122  DB  69,137,214                          ; mov           %r10d,%r14d
6123  DB  73,193,234,32                       ; shr           $0x20,%r10
6124  DB  73,193,233,32                       ; shr           $0x20,%r9
6125  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6126  DB  196,225,249,126,205                 ; vmovq         %xmm1,%rbp
6127  DB  65,137,239                          ; mov           %ebp,%r15d
6128  DB  196,227,249,22,203,1                ; vpextrq       $0x1,%xmm1,%rbx
6129  DB  65,137,220                          ; mov           %ebx,%r12d
6130  DB  72,193,235,32                       ; shr           $0x20,%rbx
6131  DB  72,193,237,32                       ; shr           $0x20,%rbp
6132  DB  196,129,122,16,12,184               ; vmovss        (%r8,%r15,4),%xmm1
6133  DB  196,195,113,33,12,168,16            ; vinsertps     $0x10,(%r8,%rbp,4),%xmm1,%xmm1
6134  DB  196,129,122,16,20,160               ; vmovss        (%r8,%r12,4),%xmm2
6135  DB  196,227,113,33,202,32               ; vinsertps     $0x20,%xmm2,%xmm1,%xmm1
6136  DB  196,193,122,16,20,152               ; vmovss        (%r8,%rbx,4),%xmm2
6137  DB  196,227,113,33,202,48               ; vinsertps     $0x30,%xmm2,%xmm1,%xmm1
6138  DB  196,129,122,16,20,152               ; vmovss        (%r8,%r11,4),%xmm2
6139  DB  196,131,105,33,20,136,16            ; vinsertps     $0x10,(%r8,%r9,4),%xmm2,%xmm2
6140  DB  196,129,122,16,28,176               ; vmovss        (%r8,%r14,4),%xmm3
6141  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
6142  DB  196,129,122,16,28,144               ; vmovss        (%r8,%r10,4),%xmm3
6143  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
6144  DB  196,227,109,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm2,%ymm1
6145  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
6146  DB  196,193,57,108,210                  ; vpunpcklqdq   %xmm10,%xmm8,%xmm2
6147  DB  196,193,105,105,220                 ; vpunpckhwd    %xmm12,%xmm2,%xmm3
6148  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
6149  DB  196,227,109,24,211,1                ; vinsertf128   $0x1,%xmm3,%ymm2,%ymm2
6150  DB  196,193,108,84,209                  ; vandps        %ymm9,%ymm2,%ymm2
6151  DB  196,193,249,126,208                 ; vmovq         %xmm2,%r8
6152  DB  69,137,194                          ; mov           %r8d,%r10d
6153  DB  196,195,249,22,209,1                ; vpextrq       $0x1,%xmm2,%r9
6154  DB  69,137,203                          ; mov           %r9d,%r11d
6155  DB  73,193,233,32                       ; shr           $0x20,%r9
6156  DB  73,193,232,32                       ; shr           $0x20,%r8
6157  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6158  DB  196,225,249,126,213                 ; vmovq         %xmm2,%rbp
6159  DB  65,137,238                          ; mov           %ebp,%r14d
6160  DB  196,227,249,22,211,1                ; vpextrq       $0x1,%xmm2,%rbx
6161  DB  65,137,223                          ; mov           %ebx,%r15d
6162  DB  72,193,235,32                       ; shr           $0x20,%rbx
6163  DB  72,193,237,32                       ; shr           $0x20,%rbp
6164  DB  196,161,122,16,20,176               ; vmovss        (%rax,%r14,4),%xmm2
6165  DB  196,227,105,33,20,168,16            ; vinsertps     $0x10,(%rax,%rbp,4),%xmm2,%xmm2
6166  DB  196,161,122,16,28,184               ; vmovss        (%rax,%r15,4),%xmm3
6167  DB  196,227,105,33,211,32               ; vinsertps     $0x20,%xmm3,%xmm2,%xmm2
6168  DB  197,250,16,28,152                   ; vmovss        (%rax,%rbx,4),%xmm3
6169  DB  196,99,105,33,195,48                ; vinsertps     $0x30,%xmm3,%xmm2,%xmm8
6170  DB  196,161,122,16,28,144               ; vmovss        (%rax,%r10,4),%xmm3
6171  DB  196,163,97,33,28,128,16             ; vinsertps     $0x10,(%rax,%r8,4),%xmm3,%xmm3
6172  DB  196,161,122,16,20,152               ; vmovss        (%rax,%r11,4),%xmm2
6173  DB  196,227,97,33,210,32                ; vinsertps     $0x20,%xmm2,%xmm3,%xmm2
6174  DB  196,161,122,16,28,136               ; vmovss        (%rax,%r9,4),%xmm3
6175  DB  196,227,105,33,211,48               ; vinsertps     $0x30,%xmm3,%xmm2,%xmm2
6176  DB  196,195,109,24,208,1                ; vinsertf128   $0x1,%xmm8,%ymm2,%ymm2
6177  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
6178  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
6179  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
6180  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
6181  DB  72,173                              ; lods          %ds:(%rsi),%rax
6182  DB  91                                  ; pop           %rbx
6183  DB  65,92                               ; pop           %r12
6184  DB  65,93                               ; pop           %r13
6185  DB  65,94                               ; pop           %r14
6186  DB  65,95                               ; pop           %r15
6187  DB  93                                  ; pop           %rbp
6188  DB  255,224                             ; jmpq          *%rax
6189  DB  196,129,121,110,4,72                ; vmovd         (%r8,%r9,2),%xmm0
6190  DB  196,129,121,196,68,72,4,2           ; vpinsrw       $0x2,0x4(%r8,%r9,2),%xmm0,%xmm0
6191  DB  72,131,249,1                        ; cmp           $0x1,%rcx
6192  DB  117,5                               ; jne           1f38 <_sk_load_tables_rgb_u16_be_avx+0x2bd>
6193  DB  233,137,253,255,255                 ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6194  DB  196,129,121,110,76,72,6             ; vmovd         0x6(%r8,%r9,2),%xmm1
6195  DB  196,1,113,196,68,72,10,2            ; vpinsrw       $0x2,0xa(%r8,%r9,2),%xmm1,%xmm8
6196  DB  72,131,249,3                        ; cmp           $0x3,%rcx
6197  DB  114,26                              ; jb            1f67 <_sk_load_tables_rgb_u16_be_avx+0x2ec>
6198  DB  196,129,121,110,76,72,12            ; vmovd         0xc(%r8,%r9,2),%xmm1
6199  DB  196,129,113,196,84,72,16,2          ; vpinsrw       $0x2,0x10(%r8,%r9,2),%xmm1,%xmm2
6200  DB  72,131,249,3                        ; cmp           $0x3,%rcx
6201  DB  117,10                              ; jne           1f6c <_sk_load_tables_rgb_u16_be_avx+0x2f1>
6202  DB  233,90,253,255,255                  ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6203  DB  233,85,253,255,255                  ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6204  DB  196,129,121,110,76,72,18            ; vmovd         0x12(%r8,%r9,2),%xmm1
6205  DB  196,1,113,196,76,72,22,2            ; vpinsrw       $0x2,0x16(%r8,%r9,2),%xmm1,%xmm9
6206  DB  72,131,249,5                        ; cmp           $0x5,%rcx
6207  DB  114,26                              ; jb            1f9b <_sk_load_tables_rgb_u16_be_avx+0x320>
6208  DB  196,129,121,110,76,72,24            ; vmovd         0x18(%r8,%r9,2),%xmm1
6209  DB  196,129,113,196,76,72,28,2          ; vpinsrw       $0x2,0x1c(%r8,%r9,2),%xmm1,%xmm1
6210  DB  72,131,249,5                        ; cmp           $0x5,%rcx
6211  DB  117,10                              ; jne           1fa0 <_sk_load_tables_rgb_u16_be_avx+0x325>
6212  DB  233,38,253,255,255                  ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6213  DB  233,33,253,255,255                  ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6214  DB  196,129,121,110,92,72,30            ; vmovd         0x1e(%r8,%r9,2),%xmm3
6215  DB  196,1,97,196,92,72,34,2             ; vpinsrw       $0x2,0x22(%r8,%r9,2),%xmm3,%xmm11
6216  DB  72,131,249,7                        ; cmp           $0x7,%rcx
6217  DB  114,20                              ; jb            1fc9 <_sk_load_tables_rgb_u16_be_avx+0x34e>
6218  DB  196,129,121,110,92,72,36            ; vmovd         0x24(%r8,%r9,2),%xmm3
6219  DB  196,129,97,196,92,72,40,2           ; vpinsrw       $0x2,0x28(%r8,%r9,2),%xmm3,%xmm3
6220  DB  233,248,252,255,255                 ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6221  DB  233,243,252,255,255                 ; jmpq          1cc1 <_sk_load_tables_rgb_u16_be_avx+0x46>
6222
6223PUBLIC _sk_byte_tables_avx
6224_sk_byte_tables_avx LABEL PROC
6225  DB  85                                  ; push          %rbp
6226  DB  65,87                               ; push          %r15
6227  DB  65,86                               ; push          %r14
6228  DB  65,85                               ; push          %r13
6229  DB  65,84                               ; push          %r12
6230  DB  83                                  ; push          %rbx
6231  DB  72,173                              ; lods          %ds:(%rsi),%rax
6232  DB  65,184,0,0,127,67                   ; mov           $0x437f0000,%r8d
6233  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
6234  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
6235  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6236  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
6237  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
6238  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
6239  DB  68,137,197                          ; mov           %r8d,%ebp
6240  DB  77,137,194                          ; mov           %r8,%r10
6241  DB  73,193,234,32                       ; shr           $0x20,%r10
6242  DB  196,193,249,126,192                 ; vmovq         %xmm0,%r8
6243  DB  69,137,195                          ; mov           %r8d,%r11d
6244  DB  77,137,199                          ; mov           %r8,%r15
6245  DB  73,193,239,32                       ; shr           $0x20,%r15
6246  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
6247  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
6248  DB  69,137,198                          ; mov           %r8d,%r14d
6249  DB  77,137,196                          ; mov           %r8,%r12
6250  DB  73,193,236,32                       ; shr           $0x20,%r12
6251  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
6252  DB  65,137,221                          ; mov           %ebx,%r13d
6253  DB  72,193,235,32                       ; shr           $0x20,%rbx
6254  DB  76,139,8                            ; mov           (%rax),%r9
6255  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
6256  DB  196,131,121,32,4,25,0               ; vpinsrb       $0x0,(%r9,%r11,1),%xmm0,%xmm0
6257  DB  196,131,121,32,4,57,1               ; vpinsrb       $0x1,(%r9,%r15,1),%xmm0,%xmm0
6258  DB  65,15,182,44,41                     ; movzbl        (%r9,%rbp,1),%ebp
6259  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
6260  DB  67,15,182,44,17                     ; movzbl        (%r9,%r10,1),%ebp
6261  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
6262  DB  196,98,121,49,200                   ; vpmovzxbd     %xmm0,%xmm9
6263  DB  196,131,121,32,4,41,0               ; vpinsrb       $0x0,(%r9,%r13,1),%xmm0,%xmm0
6264  DB  196,195,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%rbx,1),%xmm0,%xmm0
6265  DB  67,15,182,44,49                     ; movzbl        (%r9,%r14,1),%ebp
6266  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
6267  DB  67,15,182,44,33                     ; movzbl        (%r9,%r12,1),%ebp
6268  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
6269  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
6270  DB  196,227,53,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm0
6271  DB  197,124,91,208                      ; vcvtdq2ps     %ymm0,%ymm10
6272  DB  189,129,128,128,59                  ; mov           $0x3b808081,%ebp
6273  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
6274  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6275  DB  196,99,125,24,200,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm9
6276  DB  196,193,44,89,193                   ; vmulps        %ymm9,%ymm10,%ymm0
6277  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
6278  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
6279  DB  196,227,249,22,205,1                ; vpextrq       $0x1,%xmm1,%rbp
6280  DB  65,137,233                          ; mov           %ebp,%r9d
6281  DB  72,193,237,32                       ; shr           $0x20,%rbp
6282  DB  196,225,249,126,203                 ; vmovq         %xmm1,%rbx
6283  DB  65,137,218                          ; mov           %ebx,%r10d
6284  DB  72,193,235,32                       ; shr           $0x20,%rbx
6285  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6286  DB  196,195,249,22,203,1                ; vpextrq       $0x1,%xmm1,%r11
6287  DB  69,137,222                          ; mov           %r11d,%r14d
6288  DB  73,193,235,32                       ; shr           $0x20,%r11
6289  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
6290  DB  69,137,252                          ; mov           %r15d,%r12d
6291  DB  73,193,239,32                       ; shr           $0x20,%r15
6292  DB  196,131,121,32,12,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm1
6293  DB  196,195,113,32,12,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm1,%xmm1
6294  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
6295  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
6296  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
6297  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
6298  DB  196,98,121,49,209                   ; vpmovzxbd     %xmm1,%xmm10
6299  DB  196,131,121,32,12,32,0              ; vpinsrb       $0x0,(%r8,%r12,1),%xmm0,%xmm1
6300  DB  196,131,113,32,12,56,1              ; vpinsrb       $0x1,(%r8,%r15,1),%xmm1,%xmm1
6301  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
6302  DB  196,227,113,32,205,2                ; vpinsrb       $0x2,%ebp,%xmm1,%xmm1
6303  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
6304  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
6305  DB  196,226,121,49,201                  ; vpmovzxbd     %xmm1,%xmm1
6306  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
6307  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
6308  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
6309  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
6310  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
6311  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
6312  DB  196,227,249,22,213,1                ; vpextrq       $0x1,%xmm2,%rbp
6313  DB  65,137,233                          ; mov           %ebp,%r9d
6314  DB  72,193,237,32                       ; shr           $0x20,%rbp
6315  DB  196,225,249,126,211                 ; vmovq         %xmm2,%rbx
6316  DB  65,137,218                          ; mov           %ebx,%r10d
6317  DB  72,193,235,32                       ; shr           $0x20,%rbx
6318  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6319  DB  196,195,249,22,211,1                ; vpextrq       $0x1,%xmm2,%r11
6320  DB  69,137,222                          ; mov           %r11d,%r14d
6321  DB  73,193,235,32                       ; shr           $0x20,%r11
6322  DB  196,193,249,126,215                 ; vmovq         %xmm2,%r15
6323  DB  69,137,252                          ; mov           %r15d,%r12d
6324  DB  73,193,239,32                       ; shr           $0x20,%r15
6325  DB  196,131,121,32,20,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm2
6326  DB  196,195,105,32,20,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm2,%xmm2
6327  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
6328  DB  196,227,105,32,211,2                ; vpinsrb       $0x2,%ebx,%xmm2,%xmm2
6329  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
6330  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
6331  DB  196,98,121,49,210                   ; vpmovzxbd     %xmm2,%xmm10
6332  DB  196,131,121,32,20,32,0              ; vpinsrb       $0x0,(%r8,%r12,1),%xmm0,%xmm2
6333  DB  196,131,105,32,20,56,1              ; vpinsrb       $0x1,(%r8,%r15,1),%xmm2,%xmm2
6334  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
6335  DB  196,227,105,32,213,2                ; vpinsrb       $0x2,%ebp,%xmm2,%xmm2
6336  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
6337  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
6338  DB  196,226,121,49,210                  ; vpmovzxbd     %xmm2,%xmm2
6339  DB  196,227,45,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm10,%ymm2
6340  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
6341  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
6342  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
6343  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
6344  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
6345  DB  196,227,249,22,221,1                ; vpextrq       $0x1,%xmm3,%rbp
6346  DB  65,137,232                          ; mov           %ebp,%r8d
6347  DB  72,193,237,32                       ; shr           $0x20,%rbp
6348  DB  196,225,249,126,219                 ; vmovq         %xmm3,%rbx
6349  DB  65,137,217                          ; mov           %ebx,%r9d
6350  DB  72,193,235,32                       ; shr           $0x20,%rbx
6351  DB  196,227,125,25,219,1                ; vextractf128  $0x1,%ymm3,%xmm3
6352  DB  196,195,249,22,218,1                ; vpextrq       $0x1,%xmm3,%r10
6353  DB  69,137,211                          ; mov           %r10d,%r11d
6354  DB  73,193,234,32                       ; shr           $0x20,%r10
6355  DB  196,193,249,126,222                 ; vmovq         %xmm3,%r14
6356  DB  69,137,247                          ; mov           %r14d,%r15d
6357  DB  73,193,238,32                       ; shr           $0x20,%r14
6358  DB  196,163,121,32,28,8,0               ; vpinsrb       $0x0,(%rax,%r9,1),%xmm0,%xmm3
6359  DB  196,227,97,32,28,24,1               ; vpinsrb       $0x1,(%rax,%rbx,1),%xmm3,%xmm3
6360  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
6361  DB  196,227,97,32,219,2                 ; vpinsrb       $0x2,%ebx,%xmm3,%xmm3
6362  DB  15,182,44,40                        ; movzbl        (%rax,%rbp,1),%ebp
6363  DB  196,227,97,32,221,3                 ; vpinsrb       $0x3,%ebp,%xmm3,%xmm3
6364  DB  196,98,121,49,195                   ; vpmovzxbd     %xmm3,%xmm8
6365  DB  196,163,121,32,28,56,0              ; vpinsrb       $0x0,(%rax,%r15,1),%xmm0,%xmm3
6366  DB  196,163,97,32,28,48,1               ; vpinsrb       $0x1,(%rax,%r14,1),%xmm3,%xmm3
6367  DB  66,15,182,44,24                     ; movzbl        (%rax,%r11,1),%ebp
6368  DB  196,227,97,32,221,2                 ; vpinsrb       $0x2,%ebp,%xmm3,%xmm3
6369  DB  66,15,182,4,16                      ; movzbl        (%rax,%r10,1),%eax
6370  DB  196,227,97,32,216,3                 ; vpinsrb       $0x3,%eax,%xmm3,%xmm3
6371  DB  196,226,121,49,219                  ; vpmovzxbd     %xmm3,%xmm3
6372  DB  196,227,61,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm3
6373  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
6374  DB  197,180,89,219                      ; vmulps        %ymm3,%ymm9,%ymm3
6375  DB  72,173                              ; lods          %ds:(%rsi),%rax
6376  DB  91                                  ; pop           %rbx
6377  DB  65,92                               ; pop           %r12
6378  DB  65,93                               ; pop           %r13
6379  DB  65,94                               ; pop           %r14
6380  DB  65,95                               ; pop           %r15
6381  DB  93                                  ; pop           %rbp
6382  DB  255,224                             ; jmpq          *%rax
6383
6384PUBLIC _sk_byte_tables_rgb_avx
6385_sk_byte_tables_rgb_avx LABEL PROC
6386  DB  85                                  ; push          %rbp
6387  DB  65,87                               ; push          %r15
6388  DB  65,86                               ; push          %r14
6389  DB  65,85                               ; push          %r13
6390  DB  65,84                               ; push          %r12
6391  DB  83                                  ; push          %rbx
6392  DB  72,173                              ; lods          %ds:(%rsi),%rax
6393  DB  68,139,64,24                        ; mov           0x18(%rax),%r8d
6394  DB  65,255,200                          ; dec           %r8d
6395  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
6396  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6397  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6398  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6399  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
6400  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
6401  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
6402  DB  68,137,197                          ; mov           %r8d,%ebp
6403  DB  77,137,194                          ; mov           %r8,%r10
6404  DB  73,193,234,32                       ; shr           $0x20,%r10
6405  DB  196,193,249,126,192                 ; vmovq         %xmm0,%r8
6406  DB  69,137,195                          ; mov           %r8d,%r11d
6407  DB  77,137,199                          ; mov           %r8,%r15
6408  DB  73,193,239,32                       ; shr           $0x20,%r15
6409  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
6410  DB  196,195,249,22,192,1                ; vpextrq       $0x1,%xmm0,%r8
6411  DB  69,137,198                          ; mov           %r8d,%r14d
6412  DB  77,137,196                          ; mov           %r8,%r12
6413  DB  73,193,236,32                       ; shr           $0x20,%r12
6414  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
6415  DB  65,137,221                          ; mov           %ebx,%r13d
6416  DB  72,193,235,32                       ; shr           $0x20,%rbx
6417  DB  76,139,8                            ; mov           (%rax),%r9
6418  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
6419  DB  196,131,121,32,4,25,0               ; vpinsrb       $0x0,(%r9,%r11,1),%xmm0,%xmm0
6420  DB  196,131,121,32,4,57,1               ; vpinsrb       $0x1,(%r9,%r15,1),%xmm0,%xmm0
6421  DB  65,15,182,44,41                     ; movzbl        (%r9,%rbp,1),%ebp
6422  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
6423  DB  67,15,182,44,17                     ; movzbl        (%r9,%r10,1),%ebp
6424  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
6425  DB  196,98,121,49,200                   ; vpmovzxbd     %xmm0,%xmm9
6426  DB  196,131,121,32,4,41,0               ; vpinsrb       $0x0,(%r9,%r13,1),%xmm0,%xmm0
6427  DB  196,195,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%rbx,1),%xmm0,%xmm0
6428  DB  67,15,182,44,49                     ; movzbl        (%r9,%r14,1),%ebp
6429  DB  196,227,121,32,197,2                ; vpinsrb       $0x2,%ebp,%xmm0,%xmm0
6430  DB  67,15,182,44,33                     ; movzbl        (%r9,%r12,1),%ebp
6431  DB  196,227,121,32,197,3                ; vpinsrb       $0x3,%ebp,%xmm0,%xmm0
6432  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
6433  DB  196,227,53,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm0
6434  DB  197,124,91,208                      ; vcvtdq2ps     %ymm0,%ymm10
6435  DB  189,129,128,128,59                  ; mov           $0x3b808081,%ebp
6436  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
6437  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6438  DB  196,99,125,24,200,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm9
6439  DB  196,193,44,89,193                   ; vmulps        %ymm9,%ymm10,%ymm0
6440  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
6441  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
6442  DB  196,227,249,22,205,1                ; vpextrq       $0x1,%xmm1,%rbp
6443  DB  65,137,233                          ; mov           %ebp,%r9d
6444  DB  72,193,237,32                       ; shr           $0x20,%rbp
6445  DB  196,225,249,126,203                 ; vmovq         %xmm1,%rbx
6446  DB  65,137,218                          ; mov           %ebx,%r10d
6447  DB  72,193,235,32                       ; shr           $0x20,%rbx
6448  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6449  DB  196,195,249,22,203,1                ; vpextrq       $0x1,%xmm1,%r11
6450  DB  69,137,222                          ; mov           %r11d,%r14d
6451  DB  73,193,235,32                       ; shr           $0x20,%r11
6452  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
6453  DB  69,137,252                          ; mov           %r15d,%r12d
6454  DB  73,193,239,32                       ; shr           $0x20,%r15
6455  DB  196,131,121,32,12,16,0              ; vpinsrb       $0x0,(%r8,%r10,1),%xmm0,%xmm1
6456  DB  196,195,113,32,12,24,1              ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm1,%xmm1
6457  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
6458  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
6459  DB  65,15,182,44,40                     ; movzbl        (%r8,%rbp,1),%ebp
6460  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
6461  DB  196,98,121,49,209                   ; vpmovzxbd     %xmm1,%xmm10
6462  DB  196,131,121,32,12,32,0              ; vpinsrb       $0x0,(%r8,%r12,1),%xmm0,%xmm1
6463  DB  196,131,113,32,12,56,1              ; vpinsrb       $0x1,(%r8,%r15,1),%xmm1,%xmm1
6464  DB  67,15,182,44,48                     ; movzbl        (%r8,%r14,1),%ebp
6465  DB  196,227,113,32,205,2                ; vpinsrb       $0x2,%ebp,%xmm1,%xmm1
6466  DB  67,15,182,44,24                     ; movzbl        (%r8,%r11,1),%ebp
6467  DB  196,227,113,32,205,3                ; vpinsrb       $0x3,%ebp,%xmm1,%xmm1
6468  DB  196,226,121,49,201                  ; vpmovzxbd     %xmm1,%xmm1
6469  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
6470  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
6471  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
6472  DB  72,139,64,16                        ; mov           0x10(%rax),%rax
6473  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
6474  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
6475  DB  196,227,249,22,213,1                ; vpextrq       $0x1,%xmm2,%rbp
6476  DB  65,137,232                          ; mov           %ebp,%r8d
6477  DB  72,193,237,32                       ; shr           $0x20,%rbp
6478  DB  196,225,249,126,211                 ; vmovq         %xmm2,%rbx
6479  DB  65,137,217                          ; mov           %ebx,%r9d
6480  DB  72,193,235,32                       ; shr           $0x20,%rbx
6481  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6482  DB  196,195,249,22,210,1                ; vpextrq       $0x1,%xmm2,%r10
6483  DB  69,137,211                          ; mov           %r10d,%r11d
6484  DB  73,193,234,32                       ; shr           $0x20,%r10
6485  DB  196,193,249,126,214                 ; vmovq         %xmm2,%r14
6486  DB  69,137,247                          ; mov           %r14d,%r15d
6487  DB  73,193,238,32                       ; shr           $0x20,%r14
6488  DB  196,163,121,32,20,8,0               ; vpinsrb       $0x0,(%rax,%r9,1),%xmm0,%xmm2
6489  DB  196,227,105,32,20,24,1              ; vpinsrb       $0x1,(%rax,%rbx,1),%xmm2,%xmm2
6490  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
6491  DB  196,227,105,32,211,2                ; vpinsrb       $0x2,%ebx,%xmm2,%xmm2
6492  DB  15,182,44,40                        ; movzbl        (%rax,%rbp,1),%ebp
6493  DB  196,227,105,32,213,3                ; vpinsrb       $0x3,%ebp,%xmm2,%xmm2
6494  DB  196,98,121,49,194                   ; vpmovzxbd     %xmm2,%xmm8
6495  DB  196,163,121,32,20,56,0              ; vpinsrb       $0x0,(%rax,%r15,1),%xmm0,%xmm2
6496  DB  196,163,105,32,20,48,1              ; vpinsrb       $0x1,(%rax,%r14,1),%xmm2,%xmm2
6497  DB  66,15,182,44,24                     ; movzbl        (%rax,%r11,1),%ebp
6498  DB  196,227,105,32,213,2                ; vpinsrb       $0x2,%ebp,%xmm2,%xmm2
6499  DB  66,15,182,4,16                      ; movzbl        (%rax,%r10,1),%eax
6500  DB  196,227,105,32,208,3                ; vpinsrb       $0x3,%eax,%xmm2,%xmm2
6501  DB  196,226,121,49,210                  ; vpmovzxbd     %xmm2,%xmm2
6502  DB  196,227,61,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm8,%ymm2
6503  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
6504  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
6505  DB  72,173                              ; lods          %ds:(%rsi),%rax
6506  DB  91                                  ; pop           %rbx
6507  DB  65,92                               ; pop           %r12
6508  DB  65,93                               ; pop           %r13
6509  DB  65,94                               ; pop           %r14
6510  DB  65,95                               ; pop           %r15
6511  DB  93                                  ; pop           %rbp
6512  DB  255,224                             ; jmpq          *%rax
6513
6514PUBLIC _sk_table_r_avx
6515_sk_table_r_avx LABEL PROC
6516  DB  65,87                               ; push          %r15
6517  DB  65,86                               ; push          %r14
6518  DB  65,84                               ; push          %r12
6519  DB  83                                  ; push          %rbx
6520  DB  72,173                              ; lods          %ds:(%rsi),%rax
6521  DB  76,139,0                            ; mov           (%rax),%r8
6522  DB  139,64,8                            ; mov           0x8(%rax),%eax
6523  DB  255,200                             ; dec           %eax
6524  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6525  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6526  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6527  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6528  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
6529  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
6530  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
6531  DB  65,137,193                          ; mov           %eax,%r9d
6532  DB  72,193,232,32                       ; shr           $0x20,%rax
6533  DB  196,193,249,126,194                 ; vmovq         %xmm0,%r10
6534  DB  69,137,211                          ; mov           %r10d,%r11d
6535  DB  73,193,234,32                       ; shr           $0x20,%r10
6536  DB  196,227,125,25,192,1                ; vextractf128  $0x1,%ymm0,%xmm0
6537  DB  196,227,249,22,195,1                ; vpextrq       $0x1,%xmm0,%rbx
6538  DB  65,137,222                          ; mov           %ebx,%r14d
6539  DB  72,193,235,32                       ; shr           $0x20,%rbx
6540  DB  196,193,249,126,199                 ; vmovq         %xmm0,%r15
6541  DB  69,137,252                          ; mov           %r15d,%r12d
6542  DB  73,193,239,32                       ; shr           $0x20,%r15
6543  DB  196,129,122,16,4,160                ; vmovss        (%r8,%r12,4),%xmm0
6544  DB  196,3,121,33,4,184,16               ; vinsertps     $0x10,(%r8,%r15,4),%xmm0,%xmm8
6545  DB  196,129,122,16,4,176                ; vmovss        (%r8,%r14,4),%xmm0
6546  DB  196,99,57,33,192,32                 ; vinsertps     $0x20,%xmm0,%xmm8,%xmm8
6547  DB  196,193,122,16,4,152                ; vmovss        (%r8,%rbx,4),%xmm0
6548  DB  196,99,57,33,192,48                 ; vinsertps     $0x30,%xmm0,%xmm8,%xmm8
6549  DB  196,129,122,16,4,152                ; vmovss        (%r8,%r11,4),%xmm0
6550  DB  196,3,121,33,12,144,16              ; vinsertps     $0x10,(%r8,%r10,4),%xmm0,%xmm9
6551  DB  196,129,122,16,4,136                ; vmovss        (%r8,%r9,4),%xmm0
6552  DB  196,99,49,33,200,32                 ; vinsertps     $0x20,%xmm0,%xmm9,%xmm9
6553  DB  196,193,122,16,4,128                ; vmovss        (%r8,%rax,4),%xmm0
6554  DB  196,227,49,33,192,48                ; vinsertps     $0x30,%xmm0,%xmm9,%xmm0
6555  DB  196,195,125,24,192,1                ; vinsertf128   $0x1,%xmm8,%ymm0,%ymm0
6556  DB  72,173                              ; lods          %ds:(%rsi),%rax
6557  DB  91                                  ; pop           %rbx
6558  DB  65,92                               ; pop           %r12
6559  DB  65,94                               ; pop           %r14
6560  DB  65,95                               ; pop           %r15
6561  DB  255,224                             ; jmpq          *%rax
6562
6563PUBLIC _sk_table_g_avx
6564_sk_table_g_avx LABEL PROC
6565  DB  65,87                               ; push          %r15
6566  DB  65,86                               ; push          %r14
6567  DB  65,84                               ; push          %r12
6568  DB  83                                  ; push          %rbx
6569  DB  72,173                              ; lods          %ds:(%rsi),%rax
6570  DB  76,139,0                            ; mov           (%rax),%r8
6571  DB  139,64,8                            ; mov           0x8(%rax),%eax
6572  DB  255,200                             ; dec           %eax
6573  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6574  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6575  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6576  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6577  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
6578  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
6579  DB  196,227,249,22,200,1                ; vpextrq       $0x1,%xmm1,%rax
6580  DB  65,137,193                          ; mov           %eax,%r9d
6581  DB  72,193,232,32                       ; shr           $0x20,%rax
6582  DB  196,193,249,126,202                 ; vmovq         %xmm1,%r10
6583  DB  69,137,211                          ; mov           %r10d,%r11d
6584  DB  73,193,234,32                       ; shr           $0x20,%r10
6585  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
6586  DB  196,227,249,22,203,1                ; vpextrq       $0x1,%xmm1,%rbx
6587  DB  65,137,222                          ; mov           %ebx,%r14d
6588  DB  72,193,235,32                       ; shr           $0x20,%rbx
6589  DB  196,193,249,126,207                 ; vmovq         %xmm1,%r15
6590  DB  69,137,252                          ; mov           %r15d,%r12d
6591  DB  73,193,239,32                       ; shr           $0x20,%r15
6592  DB  196,129,122,16,12,160               ; vmovss        (%r8,%r12,4),%xmm1
6593  DB  196,3,113,33,4,184,16               ; vinsertps     $0x10,(%r8,%r15,4),%xmm1,%xmm8
6594  DB  196,129,122,16,12,176               ; vmovss        (%r8,%r14,4),%xmm1
6595  DB  196,99,57,33,193,32                 ; vinsertps     $0x20,%xmm1,%xmm8,%xmm8
6596  DB  196,193,122,16,12,152               ; vmovss        (%r8,%rbx,4),%xmm1
6597  DB  196,99,57,33,193,48                 ; vinsertps     $0x30,%xmm1,%xmm8,%xmm8
6598  DB  196,129,122,16,12,152               ; vmovss        (%r8,%r11,4),%xmm1
6599  DB  196,3,113,33,12,144,16              ; vinsertps     $0x10,(%r8,%r10,4),%xmm1,%xmm9
6600  DB  196,129,122,16,12,136               ; vmovss        (%r8,%r9,4),%xmm1
6601  DB  196,99,49,33,201,32                 ; vinsertps     $0x20,%xmm1,%xmm9,%xmm9
6602  DB  196,193,122,16,12,128               ; vmovss        (%r8,%rax,4),%xmm1
6603  DB  196,227,49,33,201,48                ; vinsertps     $0x30,%xmm1,%xmm9,%xmm1
6604  DB  196,195,117,24,200,1                ; vinsertf128   $0x1,%xmm8,%ymm1,%ymm1
6605  DB  72,173                              ; lods          %ds:(%rsi),%rax
6606  DB  91                                  ; pop           %rbx
6607  DB  65,92                               ; pop           %r12
6608  DB  65,94                               ; pop           %r14
6609  DB  65,95                               ; pop           %r15
6610  DB  255,224                             ; jmpq          *%rax
6611
6612PUBLIC _sk_table_b_avx
6613_sk_table_b_avx LABEL PROC
6614  DB  65,87                               ; push          %r15
6615  DB  65,86                               ; push          %r14
6616  DB  65,84                               ; push          %r12
6617  DB  83                                  ; push          %rbx
6618  DB  72,173                              ; lods          %ds:(%rsi),%rax
6619  DB  76,139,0                            ; mov           (%rax),%r8
6620  DB  139,64,8                            ; mov           0x8(%rax),%eax
6621  DB  255,200                             ; dec           %eax
6622  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6623  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6624  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6625  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6626  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
6627  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
6628  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
6629  DB  65,137,193                          ; mov           %eax,%r9d
6630  DB  72,193,232,32                       ; shr           $0x20,%rax
6631  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
6632  DB  69,137,211                          ; mov           %r10d,%r11d
6633  DB  73,193,234,32                       ; shr           $0x20,%r10
6634  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
6635  DB  196,227,249,22,211,1                ; vpextrq       $0x1,%xmm2,%rbx
6636  DB  65,137,222                          ; mov           %ebx,%r14d
6637  DB  72,193,235,32                       ; shr           $0x20,%rbx
6638  DB  196,193,249,126,215                 ; vmovq         %xmm2,%r15
6639  DB  69,137,252                          ; mov           %r15d,%r12d
6640  DB  73,193,239,32                       ; shr           $0x20,%r15
6641  DB  196,129,122,16,20,160               ; vmovss        (%r8,%r12,4),%xmm2
6642  DB  196,3,105,33,4,184,16               ; vinsertps     $0x10,(%r8,%r15,4),%xmm2,%xmm8
6643  DB  196,129,122,16,20,176               ; vmovss        (%r8,%r14,4),%xmm2
6644  DB  196,99,57,33,194,32                 ; vinsertps     $0x20,%xmm2,%xmm8,%xmm8
6645  DB  196,193,122,16,20,152               ; vmovss        (%r8,%rbx,4),%xmm2
6646  DB  196,99,57,33,194,48                 ; vinsertps     $0x30,%xmm2,%xmm8,%xmm8
6647  DB  196,129,122,16,20,152               ; vmovss        (%r8,%r11,4),%xmm2
6648  DB  196,3,105,33,12,144,16              ; vinsertps     $0x10,(%r8,%r10,4),%xmm2,%xmm9
6649  DB  196,129,122,16,20,136               ; vmovss        (%r8,%r9,4),%xmm2
6650  DB  196,99,49,33,202,32                 ; vinsertps     $0x20,%xmm2,%xmm9,%xmm9
6651  DB  196,193,122,16,20,128               ; vmovss        (%r8,%rax,4),%xmm2
6652  DB  196,227,49,33,210,48                ; vinsertps     $0x30,%xmm2,%xmm9,%xmm2
6653  DB  196,195,109,24,208,1                ; vinsertf128   $0x1,%xmm8,%ymm2,%ymm2
6654  DB  72,173                              ; lods          %ds:(%rsi),%rax
6655  DB  91                                  ; pop           %rbx
6656  DB  65,92                               ; pop           %r12
6657  DB  65,94                               ; pop           %r14
6658  DB  65,95                               ; pop           %r15
6659  DB  255,224                             ; jmpq          *%rax
6660
6661PUBLIC _sk_table_a_avx
6662_sk_table_a_avx LABEL PROC
6663  DB  65,87                               ; push          %r15
6664  DB  65,86                               ; push          %r14
6665  DB  65,84                               ; push          %r12
6666  DB  83                                  ; push          %rbx
6667  DB  72,173                              ; lods          %ds:(%rsi),%rax
6668  DB  76,139,0                            ; mov           (%rax),%r8
6669  DB  139,64,8                            ; mov           0x8(%rax),%eax
6670  DB  255,200                             ; dec           %eax
6671  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
6672  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
6673  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
6674  DB  196,65,124,91,192                   ; vcvtdq2ps     %ymm8,%ymm8
6675  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
6676  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
6677  DB  196,227,249,22,216,1                ; vpextrq       $0x1,%xmm3,%rax
6678  DB  65,137,193                          ; mov           %eax,%r9d
6679  DB  72,193,232,32                       ; shr           $0x20,%rax
6680  DB  196,193,249,126,218                 ; vmovq         %xmm3,%r10
6681  DB  69,137,211                          ; mov           %r10d,%r11d
6682  DB  73,193,234,32                       ; shr           $0x20,%r10
6683  DB  196,227,125,25,219,1                ; vextractf128  $0x1,%ymm3,%xmm3
6684  DB  196,227,249,22,219,1                ; vpextrq       $0x1,%xmm3,%rbx
6685  DB  65,137,222                          ; mov           %ebx,%r14d
6686  DB  72,193,235,32                       ; shr           $0x20,%rbx
6687  DB  196,193,249,126,223                 ; vmovq         %xmm3,%r15
6688  DB  69,137,252                          ; mov           %r15d,%r12d
6689  DB  73,193,239,32                       ; shr           $0x20,%r15
6690  DB  196,129,122,16,28,160               ; vmovss        (%r8,%r12,4),%xmm3
6691  DB  196,3,97,33,4,184,16                ; vinsertps     $0x10,(%r8,%r15,4),%xmm3,%xmm8
6692  DB  196,129,122,16,28,176               ; vmovss        (%r8,%r14,4),%xmm3
6693  DB  196,99,57,33,195,32                 ; vinsertps     $0x20,%xmm3,%xmm8,%xmm8
6694  DB  196,193,122,16,28,152               ; vmovss        (%r8,%rbx,4),%xmm3
6695  DB  196,99,57,33,195,48                 ; vinsertps     $0x30,%xmm3,%xmm8,%xmm8
6696  DB  196,129,122,16,28,152               ; vmovss        (%r8,%r11,4),%xmm3
6697  DB  196,3,97,33,12,144,16               ; vinsertps     $0x10,(%r8,%r10,4),%xmm3,%xmm9
6698  DB  196,129,122,16,28,136               ; vmovss        (%r8,%r9,4),%xmm3
6699  DB  196,99,49,33,203,32                 ; vinsertps     $0x20,%xmm3,%xmm9,%xmm9
6700  DB  196,193,122,16,28,128               ; vmovss        (%r8,%rax,4),%xmm3
6701  DB  196,227,49,33,219,48                ; vinsertps     $0x30,%xmm3,%xmm9,%xmm3
6702  DB  196,195,101,24,216,1                ; vinsertf128   $0x1,%xmm8,%ymm3,%ymm3
6703  DB  72,173                              ; lods          %ds:(%rsi),%rax
6704  DB  91                                  ; pop           %rbx
6705  DB  65,92                               ; pop           %r12
6706  DB  65,94                               ; pop           %r14
6707  DB  65,95                               ; pop           %r15
6708  DB  255,224                             ; jmpq          *%rax
6709
6710PUBLIC _sk_parametric_r_avx
6711_sk_parametric_r_avx LABEL PROC
6712  DB  72,173                              ; lods          %ds:(%rsi),%rax
6713  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
6714  DB  196,65,124,194,192,2                ; vcmpleps      %ymm8,%ymm0,%ymm8
6715  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
6716  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
6717  DB  197,52,89,200                       ; vmulps        %ymm0,%ymm9,%ymm9
6718  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
6719  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
6720  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
6721  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
6722  DB  196,65,124,88,211                   ; vaddps        %ymm11,%ymm0,%ymm10
6723  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
6724  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
6725  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
6726  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6727  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6728  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6729  DB  197,36,89,216                       ; vmulps        %ymm0,%ymm11,%ymm11
6730  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
6731  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6732  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
6733  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6734  DB  196,65,124,84,210                   ; vandps        %ymm10,%ymm0,%ymm10
6735  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
6736  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6737  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
6738  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6739  DB  197,44,86,208                       ; vorps         %ymm0,%ymm10,%ymm10
6740  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
6741  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6742  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6743  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6744  DB  197,36,92,216                       ; vsubps        %ymm0,%ymm11,%ymm11
6745  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
6746  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6747  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6748  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6749  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
6750  DB  197,36,92,216                       ; vsubps        %ymm0,%ymm11,%ymm11
6751  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
6752  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6753  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6754  DB  196,99,125,24,232,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm13
6755  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
6756  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6757  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6758  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6759  DB  197,172,88,192                      ; vaddps        %ymm0,%ymm10,%ymm0
6760  DB  197,148,94,192                      ; vdivps        %ymm0,%ymm13,%ymm0
6761  DB  197,164,92,192                      ; vsubps        %ymm0,%ymm11,%ymm0
6762  DB  197,28,89,216                       ; vmulps        %ymm0,%ymm12,%ymm11
6763  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
6764  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
6765  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
6766  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6767  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6768  DB  196,99,125,24,224,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm12
6769  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
6770  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6771  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6772  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6773  DB  196,65,124,88,219                   ; vaddps        %ymm11,%ymm0,%ymm11
6774  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
6775  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6776  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6777  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6778  DB  196,193,124,89,194                  ; vmulps        %ymm10,%ymm0,%ymm0
6779  DB  197,36,92,216                       ; vsubps        %ymm0,%ymm11,%ymm11
6780  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
6781  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6782  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6783  DB  196,99,125,24,232,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm13
6784  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
6785  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
6786  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6787  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6788  DB  196,193,124,92,194                  ; vsubps        %ymm10,%ymm0,%ymm0
6789  DB  197,148,94,192                      ; vdivps        %ymm0,%ymm13,%ymm0
6790  DB  197,164,88,192                      ; vaddps        %ymm0,%ymm11,%ymm0
6791  DB  197,156,89,192                      ; vmulps        %ymm0,%ymm12,%ymm0
6792  DB  197,253,91,192                      ; vcvtps2dq     %ymm0,%ymm0
6793  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
6794  DB  196,193,124,88,194                  ; vaddps        %ymm10,%ymm0,%ymm0
6795  DB  196,195,125,74,193,128              ; vblendvps     %ymm8,%ymm9,%ymm0,%ymm0
6796  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
6797  DB  196,65,124,95,192                   ; vmaxps        %ymm8,%ymm0,%ymm8
6798  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
6799  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
6800  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
6801  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
6802  DB  197,188,93,192                      ; vminps        %ymm0,%ymm8,%ymm0
6803  DB  72,173                              ; lods          %ds:(%rsi),%rax
6804  DB  255,224                             ; jmpq          *%rax
6805
6806PUBLIC _sk_parametric_g_avx
6807_sk_parametric_g_avx LABEL PROC
6808  DB  72,173                              ; lods          %ds:(%rsi),%rax
6809  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
6810  DB  196,65,116,194,192,2                ; vcmpleps      %ymm8,%ymm1,%ymm8
6811  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
6812  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
6813  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
6814  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
6815  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
6816  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
6817  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
6818  DB  196,65,116,88,211                   ; vaddps        %ymm11,%ymm1,%ymm10
6819  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
6820  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
6821  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
6822  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6823  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6824  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6825  DB  197,36,89,217                       ; vmulps        %ymm1,%ymm11,%ymm11
6826  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
6827  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6828  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
6829  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6830  DB  196,65,116,84,210                   ; vandps        %ymm10,%ymm1,%ymm10
6831  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
6832  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6833  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
6834  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6835  DB  197,44,86,209                       ; vorps         %ymm1,%ymm10,%ymm10
6836  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
6837  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6838  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6839  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6840  DB  197,36,92,217                       ; vsubps        %ymm1,%ymm11,%ymm11
6841  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
6842  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6843  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6844  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6845  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
6846  DB  197,36,92,217                       ; vsubps        %ymm1,%ymm11,%ymm11
6847  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
6848  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6849  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6850  DB  196,99,117,24,233,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm13
6851  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
6852  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6853  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6854  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6855  DB  197,172,88,201                      ; vaddps        %ymm1,%ymm10,%ymm1
6856  DB  197,148,94,201                      ; vdivps        %ymm1,%ymm13,%ymm1
6857  DB  197,164,92,201                      ; vsubps        %ymm1,%ymm11,%ymm1
6858  DB  197,28,89,217                       ; vmulps        %ymm1,%ymm12,%ymm11
6859  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
6860  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
6861  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
6862  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6863  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6864  DB  196,99,117,24,225,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm12
6865  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
6866  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6867  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6868  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6869  DB  196,65,116,88,219                   ; vaddps        %ymm11,%ymm1,%ymm11
6870  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
6871  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6872  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6873  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6874  DB  196,193,116,89,202                  ; vmulps        %ymm10,%ymm1,%ymm1
6875  DB  197,36,92,217                       ; vsubps        %ymm1,%ymm11,%ymm11
6876  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
6877  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6878  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6879  DB  196,99,117,24,233,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm13
6880  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
6881  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
6882  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6883  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6884  DB  196,193,116,92,202                  ; vsubps        %ymm10,%ymm1,%ymm1
6885  DB  197,148,94,201                      ; vdivps        %ymm1,%ymm13,%ymm1
6886  DB  197,164,88,201                      ; vaddps        %ymm1,%ymm11,%ymm1
6887  DB  197,156,89,201                      ; vmulps        %ymm1,%ymm12,%ymm1
6888  DB  197,253,91,201                      ; vcvtps2dq     %ymm1,%ymm1
6889  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
6890  DB  196,193,116,88,202                  ; vaddps        %ymm10,%ymm1,%ymm1
6891  DB  196,195,117,74,201,128              ; vblendvps     %ymm8,%ymm9,%ymm1,%ymm1
6892  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
6893  DB  196,65,116,95,192                   ; vmaxps        %ymm8,%ymm1,%ymm8
6894  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
6895  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
6896  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
6897  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
6898  DB  197,188,93,201                      ; vminps        %ymm1,%ymm8,%ymm1
6899  DB  72,173                              ; lods          %ds:(%rsi),%rax
6900  DB  255,224                             ; jmpq          *%rax
6901
6902PUBLIC _sk_parametric_b_avx
6903_sk_parametric_b_avx LABEL PROC
6904  DB  72,173                              ; lods          %ds:(%rsi),%rax
6905  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
6906  DB  196,65,108,194,192,2                ; vcmpleps      %ymm8,%ymm2,%ymm8
6907  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
6908  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
6909  DB  197,52,89,202                       ; vmulps        %ymm2,%ymm9,%ymm9
6910  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
6911  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
6912  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
6913  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
6914  DB  196,65,108,88,211                   ; vaddps        %ymm11,%ymm2,%ymm10
6915  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
6916  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
6917  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
6918  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6919  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6920  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6921  DB  197,36,89,218                       ; vmulps        %ymm2,%ymm11,%ymm11
6922  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
6923  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6924  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
6925  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6926  DB  196,65,108,84,210                   ; vandps        %ymm10,%ymm2,%ymm10
6927  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
6928  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6929  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
6930  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6931  DB  197,44,86,210                       ; vorps         %ymm2,%ymm10,%ymm10
6932  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
6933  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6934  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6935  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6936  DB  197,36,92,218                       ; vsubps        %ymm2,%ymm11,%ymm11
6937  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
6938  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6939  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6940  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6941  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
6942  DB  197,36,92,218                       ; vsubps        %ymm2,%ymm11,%ymm11
6943  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
6944  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6945  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6946  DB  196,99,109,24,234,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm13
6947  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
6948  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6949  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6950  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6951  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
6952  DB  197,148,94,210                      ; vdivps        %ymm2,%ymm13,%ymm2
6953  DB  197,164,92,210                      ; vsubps        %ymm2,%ymm11,%ymm2
6954  DB  197,28,89,218                       ; vmulps        %ymm2,%ymm12,%ymm11
6955  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
6956  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
6957  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
6958  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6959  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6960  DB  196,99,109,24,226,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm12
6961  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
6962  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6963  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6964  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6965  DB  196,65,108,88,219                   ; vaddps        %ymm11,%ymm2,%ymm11
6966  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
6967  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6968  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6969  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6970  DB  196,193,108,89,210                  ; vmulps        %ymm10,%ymm2,%ymm2
6971  DB  197,36,92,218                       ; vsubps        %ymm2,%ymm11,%ymm11
6972  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
6973  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6974  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6975  DB  196,99,109,24,234,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm13
6976  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
6977  DB  196,193,121,110,208                 ; vmovd         %r8d,%xmm2
6978  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6979  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6980  DB  196,193,108,92,210                  ; vsubps        %ymm10,%ymm2,%ymm2
6981  DB  197,148,94,210                      ; vdivps        %ymm2,%ymm13,%ymm2
6982  DB  197,164,88,210                      ; vaddps        %ymm2,%ymm11,%ymm2
6983  DB  197,156,89,210                      ; vmulps        %ymm2,%ymm12,%ymm2
6984  DB  197,253,91,210                      ; vcvtps2dq     %ymm2,%ymm2
6985  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
6986  DB  196,193,108,88,210                  ; vaddps        %ymm10,%ymm2,%ymm2
6987  DB  196,195,109,74,209,128              ; vblendvps     %ymm8,%ymm9,%ymm2,%ymm2
6988  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
6989  DB  196,65,108,95,192                   ; vmaxps        %ymm8,%ymm2,%ymm8
6990  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
6991  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
6992  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
6993  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
6994  DB  197,188,93,210                      ; vminps        %ymm2,%ymm8,%ymm2
6995  DB  72,173                              ; lods          %ds:(%rsi),%rax
6996  DB  255,224                             ; jmpq          *%rax
6997
6998PUBLIC _sk_parametric_a_avx
6999_sk_parametric_a_avx LABEL PROC
7000  DB  72,173                              ; lods          %ds:(%rsi),%rax
7001  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
7002  DB  196,65,100,194,192,2                ; vcmpleps      %ymm8,%ymm3,%ymm8
7003  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
7004  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
7005  DB  197,52,89,203                       ; vmulps        %ymm3,%ymm9,%ymm9
7006  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
7007  DB  196,98,125,24,80,4                  ; vbroadcastss  0x4(%rax),%ymm10
7008  DB  196,98,125,24,88,8                  ; vbroadcastss  0x8(%rax),%ymm11
7009  DB  197,172,89,219                      ; vmulps        %ymm3,%ymm10,%ymm3
7010  DB  196,65,100,88,211                   ; vaddps        %ymm11,%ymm3,%ymm10
7011  DB  196,98,125,24,32                    ; vbroadcastss  (%rax),%ymm12
7012  DB  196,65,124,91,218                   ; vcvtdq2ps     %ymm10,%ymm11
7013  DB  65,184,0,0,0,52                     ; mov           $0x34000000,%r8d
7014  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7015  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7016  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7017  DB  197,36,89,219                       ; vmulps        %ymm3,%ymm11,%ymm11
7018  DB  65,184,255,255,127,0                ; mov           $0x7fffff,%r8d
7019  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7020  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7021  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7022  DB  196,65,100,84,210                   ; vandps        %ymm10,%ymm3,%ymm10
7023  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
7024  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7025  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7026  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7027  DB  197,44,86,211                       ; vorps         %ymm3,%ymm10,%ymm10
7028  DB  65,184,119,115,248,66               ; mov           $0x42f87377,%r8d
7029  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7030  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7031  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7032  DB  197,36,92,219                       ; vsubps        %ymm3,%ymm11,%ymm11
7033  DB  65,184,117,191,191,63               ; mov           $0x3fbfbf75,%r8d
7034  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7035  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7036  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7037  DB  197,172,89,219                      ; vmulps        %ymm3,%ymm10,%ymm3
7038  DB  197,36,92,219                       ; vsubps        %ymm3,%ymm11,%ymm11
7039  DB  65,184,163,233,220,63               ; mov           $0x3fdce9a3,%r8d
7040  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7041  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7042  DB  196,99,101,24,235,1                 ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm13
7043  DB  65,184,249,68,180,62                ; mov           $0x3eb444f9,%r8d
7044  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7045  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7046  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7047  DB  197,172,88,219                      ; vaddps        %ymm3,%ymm10,%ymm3
7048  DB  197,148,94,219                      ; vdivps        %ymm3,%ymm13,%ymm3
7049  DB  197,164,92,219                      ; vsubps        %ymm3,%ymm11,%ymm3
7050  DB  197,28,89,219                       ; vmulps        %ymm3,%ymm12,%ymm11
7051  DB  196,67,125,8,211,1                  ; vroundps      $0x1,%ymm11,%ymm10
7052  DB  196,65,36,92,210                    ; vsubps        %ymm10,%ymm11,%ymm10
7053  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
7054  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7055  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7056  DB  196,99,101,24,227,1                 ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm12
7057  DB  65,184,81,140,242,66                ; mov           $0x42f28c51,%r8d
7058  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7059  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7060  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7061  DB  196,65,100,88,219                   ; vaddps        %ymm11,%ymm3,%ymm11
7062  DB  65,184,141,188,190,63               ; mov           $0x3fbebc8d,%r8d
7063  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7064  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7065  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7066  DB  196,193,100,89,218                  ; vmulps        %ymm10,%ymm3,%ymm3
7067  DB  197,36,92,219                       ; vsubps        %ymm3,%ymm11,%ymm11
7068  DB  65,184,254,210,221,65               ; mov           $0x41ddd2fe,%r8d
7069  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7070  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7071  DB  196,99,101,24,235,1                 ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm13
7072  DB  65,184,248,245,154,64               ; mov           $0x409af5f8,%r8d
7073  DB  196,193,121,110,216                 ; vmovd         %r8d,%xmm3
7074  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7075  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7076  DB  196,193,100,92,218                  ; vsubps        %ymm10,%ymm3,%ymm3
7077  DB  197,148,94,219                      ; vdivps        %ymm3,%ymm13,%ymm3
7078  DB  197,164,88,219                      ; vaddps        %ymm3,%ymm11,%ymm3
7079  DB  197,156,89,219                      ; vmulps        %ymm3,%ymm12,%ymm3
7080  DB  197,253,91,219                      ; vcvtps2dq     %ymm3,%ymm3
7081  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
7082  DB  196,193,100,88,218                  ; vaddps        %ymm10,%ymm3,%ymm3
7083  DB  196,195,101,74,217,128              ; vblendvps     %ymm8,%ymm9,%ymm3,%ymm3
7084  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
7085  DB  196,65,100,95,192                   ; vmaxps        %ymm8,%ymm3,%ymm8
7086  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7087  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7088  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7089  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7090  DB  197,188,93,219                      ; vminps        %ymm3,%ymm8,%ymm3
7091  DB  72,173                              ; lods          %ds:(%rsi),%rax
7092  DB  255,224                             ; jmpq          *%rax
7093
7094PUBLIC _sk_lab_to_xyz_avx
7095_sk_lab_to_xyz_avx LABEL PROC
7096  DB  184,0,0,200,66                      ; mov           $0x42c80000,%eax
7097  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
7098  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
7099  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
7100  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
7101  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
7102  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7103  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
7104  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7105  DB  197,124,89,201                      ; vmulps        %ymm1,%ymm0,%ymm9
7106  DB  184,0,0,0,67                        ; mov           $0x43000000,%eax
7107  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7108  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7109  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7110  DB  197,52,92,201                       ; vsubps        %ymm1,%ymm9,%ymm9
7111  DB  197,252,89,194                      ; vmulps        %ymm2,%ymm0,%ymm0
7112  DB  197,124,92,209                      ; vsubps        %ymm1,%ymm0,%ymm10
7113  DB  184,0,0,128,65                      ; mov           $0x41800000,%eax
7114  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7115  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
7116  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7117  DB  197,188,88,192                      ; vaddps        %ymm0,%ymm8,%ymm0
7118  DB  184,203,61,13,60                    ; mov           $0x3c0d3dcb,%eax
7119  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7120  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7121  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7122  DB  197,252,89,194                      ; vmulps        %ymm2,%ymm0,%ymm0
7123  DB  184,111,18,3,59                     ; mov           $0x3b03126f,%eax
7124  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7125  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7126  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7127  DB  197,180,89,210                      ; vmulps        %ymm2,%ymm9,%ymm2
7128  DB  197,252,88,210                      ; vaddps        %ymm2,%ymm0,%ymm2
7129  DB  184,10,215,163,59                   ; mov           $0x3ba3d70a,%eax
7130  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7131  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7132  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7133  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
7134  DB  197,124,92,193                      ; vsubps        %ymm1,%ymm0,%ymm8
7135  DB  197,236,89,202                      ; vmulps        %ymm2,%ymm2,%ymm1
7136  DB  197,108,89,201                      ; vmulps        %ymm1,%ymm2,%ymm9
7137  DB  184,194,24,17,60                    ; mov           $0x3c1118c2,%eax
7138  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7139  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7140  DB  196,99,117,24,209,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm10
7141  DB  196,65,44,194,217,1                 ; vcmpltps      %ymm9,%ymm10,%ymm11
7142  DB  184,203,61,13,62                    ; mov           $0x3e0d3dcb,%eax
7143  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7144  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7145  DB  196,99,117,24,225,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm12
7146  DB  196,193,108,92,204                  ; vsubps        %ymm12,%ymm2,%ymm1
7147  DB  184,80,128,3,62                     ; mov           $0x3e038050,%eax
7148  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7149  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7150  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7151  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
7152  DB  196,67,117,74,201,176               ; vblendvps     %ymm11,%ymm9,%ymm1,%ymm9
7153  DB  197,252,89,200                      ; vmulps        %ymm0,%ymm0,%ymm1
7154  DB  197,252,89,201                      ; vmulps        %ymm1,%ymm0,%ymm1
7155  DB  197,44,194,217,1                    ; vcmpltps      %ymm1,%ymm10,%ymm11
7156  DB  196,193,124,92,196                  ; vsubps        %ymm12,%ymm0,%ymm0
7157  DB  197,252,89,194                      ; vmulps        %ymm2,%ymm0,%ymm0
7158  DB  196,227,125,74,201,176              ; vblendvps     %ymm11,%ymm1,%ymm0,%ymm1
7159  DB  196,193,60,89,192                   ; vmulps        %ymm8,%ymm8,%ymm0
7160  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
7161  DB  197,44,194,208,1                    ; vcmpltps      %ymm0,%ymm10,%ymm10
7162  DB  196,65,60,92,196                    ; vsubps        %ymm12,%ymm8,%ymm8
7163  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
7164  DB  196,99,109,74,192,160               ; vblendvps     %ymm10,%ymm0,%ymm2,%ymm8
7165  DB  184,31,215,118,63                   ; mov           $0x3f76d71f,%eax
7166  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7167  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
7168  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7169  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
7170  DB  184,246,64,83,63                    ; mov           $0x3f5340f6,%eax
7171  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7172  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7173  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7174  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
7175  DB  72,173                              ; lods          %ds:(%rsi),%rax
7176  DB  255,224                             ; jmpq          *%rax
7177
7178PUBLIC _sk_load_a8_avx
7179_sk_load_a8_avx LABEL PROC
7180  DB  73,137,200                          ; mov           %rcx,%r8
7181  DB  72,173                              ; lods          %ds:(%rsi),%rax
7182  DB  72,139,0                            ; mov           (%rax),%rax
7183  DB  72,1,248                            ; add           %rdi,%rax
7184  DB  77,133,192                          ; test          %r8,%r8
7185  DB  117,74                              ; jne           3160 <_sk_load_a8_avx+0x5a>
7186  DB  197,250,126,0                       ; vmovq         (%rax),%xmm0
7187  DB  196,226,121,49,200                  ; vpmovzxbd     %xmm0,%xmm1
7188  DB  196,227,121,4,192,229               ; vpermilps     $0xe5,%xmm0,%xmm0
7189  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7190  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
7191  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7192  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7193  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7194  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7195  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7196  DB  197,252,89,217                      ; vmulps        %ymm1,%ymm0,%ymm3
7197  DB  72,173                              ; lods          %ds:(%rsi),%rax
7198  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
7199  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
7200  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
7201  DB  76,137,193                          ; mov           %r8,%rcx
7202  DB  255,224                             ; jmpq          *%rax
7203  DB  49,201                              ; xor           %ecx,%ecx
7204  DB  77,137,194                          ; mov           %r8,%r10
7205  DB  69,49,201                           ; xor           %r9d,%r9d
7206  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
7207  DB  72,255,192                          ; inc           %rax
7208  DB  73,211,227                          ; shl           %cl,%r11
7209  DB  77,9,217                            ; or            %r11,%r9
7210  DB  72,131,193,8                        ; add           $0x8,%rcx
7211  DB  73,255,202                          ; dec           %r10
7212  DB  117,234                             ; jne           3168 <_sk_load_a8_avx+0x62>
7213  DB  196,193,249,110,193                 ; vmovq         %r9,%xmm0
7214  DB  235,149                             ; jmp           311a <_sk_load_a8_avx+0x14>
7215
7216PUBLIC _sk_gather_a8_avx
7217_sk_gather_a8_avx LABEL PROC
7218  DB  65,87                               ; push          %r15
7219  DB  65,86                               ; push          %r14
7220  DB  65,84                               ; push          %r12
7221  DB  83                                  ; push          %rbx
7222  DB  72,173                              ; lods          %ds:(%rsi),%rax
7223  DB  76,139,0                            ; mov           (%rax),%r8
7224  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7225  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7226  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7227  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7228  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7229  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7230  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7231  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7232  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7233  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7234  DB  65,137,193                          ; mov           %eax,%r9d
7235  DB  72,193,232,32                       ; shr           $0x20,%rax
7236  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
7237  DB  69,137,211                          ; mov           %r10d,%r11d
7238  DB  73,193,234,32                       ; shr           $0x20,%r10
7239  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7240  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7241  DB  65,137,222                          ; mov           %ebx,%r14d
7242  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
7243  DB  69,137,252                          ; mov           %r15d,%r12d
7244  DB  73,193,239,32                       ; shr           $0x20,%r15
7245  DB  72,193,235,32                       ; shr           $0x20,%rbx
7246  DB  196,131,121,32,4,48,0               ; vpinsrb       $0x0,(%r8,%r14,1),%xmm0,%xmm0
7247  DB  196,195,121,32,4,24,1               ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm0,%xmm0
7248  DB  67,15,182,28,32                     ; movzbl        (%r8,%r12,1),%ebx
7249  DB  196,227,121,32,195,2                ; vpinsrb       $0x2,%ebx,%xmm0,%xmm0
7250  DB  67,15,182,28,56                     ; movzbl        (%r8,%r15,1),%ebx
7251  DB  196,227,121,32,195,3                ; vpinsrb       $0x3,%ebx,%xmm0,%xmm0
7252  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7253  DB  196,131,121,32,12,24,0              ; vpinsrb       $0x0,(%r8,%r11,1),%xmm0,%xmm1
7254  DB  196,131,113,32,12,16,1              ; vpinsrb       $0x1,(%r8,%r10,1),%xmm1,%xmm1
7255  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
7256  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
7257  DB  65,15,182,4,0                       ; movzbl        (%r8,%rax,1),%eax
7258  DB  196,227,113,32,200,3                ; vpinsrb       $0x3,%eax,%xmm1,%xmm1
7259  DB  196,226,121,49,201                  ; vpmovzxbd     %xmm1,%xmm1
7260  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
7261  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7262  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7263  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7264  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7265  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7266  DB  197,252,89,217                      ; vmulps        %ymm1,%ymm0,%ymm3
7267  DB  72,173                              ; lods          %ds:(%rsi),%rax
7268  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
7269  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
7270  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
7271  DB  91                                  ; pop           %rbx
7272  DB  65,92                               ; pop           %r12
7273  DB  65,94                               ; pop           %r14
7274  DB  65,95                               ; pop           %r15
7275  DB  255,224                             ; jmpq          *%rax
7276
7277PUBLIC _sk_store_a8_avx
7278_sk_store_a8_avx LABEL PROC
7279  DB  72,173                              ; lods          %ds:(%rsi),%rax
7280  DB  76,139,8                            ; mov           (%rax),%r9
7281  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
7282  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
7283  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
7284  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
7285  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
7286  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
7287  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
7288  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
7289  DB  196,65,57,103,192                   ; vpackuswb     %xmm8,%xmm8,%xmm8
7290  DB  72,133,201                          ; test          %rcx,%rcx
7291  DB  117,10                              ; jne           32c1 <_sk_store_a8_avx+0x42>
7292  DB  196,65,123,17,4,57                  ; vmovsd        %xmm8,(%r9,%rdi,1)
7293  DB  72,173                              ; lods          %ds:(%rsi),%rax
7294  DB  255,224                             ; jmpq          *%rax
7295  DB  65,137,200                          ; mov           %ecx,%r8d
7296  DB  65,128,224,7                        ; and           $0x7,%r8b
7297  DB  65,254,200                          ; dec           %r8b
7298  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7299  DB  119,236                             ; ja            32bd <_sk_store_a8_avx+0x3e>
7300  DB  196,66,121,48,192                   ; vpmovzxbw     %xmm8,%xmm8
7301  DB  65,15,182,192                       ; movzbl        %r8b,%eax
7302  DB  76,141,5,67,0,0,0                   ; lea           0x43(%rip),%r8        # 3324 <_sk_store_a8_avx+0xa5>
7303  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
7304  DB  76,1,192                            ; add           %r8,%rax
7305  DB  255,224                             ; jmpq          *%rax
7306  DB  196,67,121,20,68,57,6,12            ; vpextrb       $0xc,%xmm8,0x6(%r9,%rdi,1)
7307  DB  196,67,121,20,68,57,5,10            ; vpextrb       $0xa,%xmm8,0x5(%r9,%rdi,1)
7308  DB  196,67,121,20,68,57,4,8             ; vpextrb       $0x8,%xmm8,0x4(%r9,%rdi,1)
7309  DB  196,67,121,20,68,57,3,6             ; vpextrb       $0x6,%xmm8,0x3(%r9,%rdi,1)
7310  DB  196,67,121,20,68,57,2,4             ; vpextrb       $0x4,%xmm8,0x2(%r9,%rdi,1)
7311  DB  196,67,121,20,68,57,1,2             ; vpextrb       $0x2,%xmm8,0x1(%r9,%rdi,1)
7312  DB  196,67,121,20,4,57,0                ; vpextrb       $0x0,%xmm8,(%r9,%rdi,1)
7313  DB  235,154                             ; jmp           32bd <_sk_store_a8_avx+0x3e>
7314  DB  144                                 ; nop
7315  DB  246,255                             ; idiv          %bh
7316  DB  255                                 ; (bad)
7317  DB  255                                 ; (bad)
7318  DB  238                                 ; out           %al,(%dx)
7319  DB  255                                 ; (bad)
7320  DB  255                                 ; (bad)
7321  DB  255,230                             ; jmpq          *%rsi
7322  DB  255                                 ; (bad)
7323  DB  255                                 ; (bad)
7324  DB  255                                 ; (bad)
7325  DB  222,255                             ; fdivrp        %st,%st(7)
7326  DB  255                                 ; (bad)
7327  DB  255,214                             ; callq         *%rsi
7328  DB  255                                 ; (bad)
7329  DB  255                                 ; (bad)
7330  DB  255,206                             ; dec           %esi
7331  DB  255                                 ; (bad)
7332  DB  255                                 ; (bad)
7333  DB  255,198                             ; inc           %esi
7334  DB  255                                 ; (bad)
7335  DB  255                                 ; (bad)
7336  DB  255                                 ; .byte         0xff
7337
7338PUBLIC _sk_load_g8_avx
7339_sk_load_g8_avx LABEL PROC
7340  DB  73,137,200                          ; mov           %rcx,%r8
7341  DB  72,173                              ; lods          %ds:(%rsi),%rax
7342  DB  72,139,0                            ; mov           (%rax),%rax
7343  DB  72,1,248                            ; add           %rdi,%rax
7344  DB  77,133,192                          ; test          %r8,%r8
7345  DB  117,91                              ; jne           33ab <_sk_load_g8_avx+0x6b>
7346  DB  197,250,126,0                       ; vmovq         (%rax),%xmm0
7347  DB  196,226,121,49,200                  ; vpmovzxbd     %xmm0,%xmm1
7348  DB  196,227,121,4,192,229               ; vpermilps     $0xe5,%xmm0,%xmm0
7349  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7350  DB  196,227,117,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm1,%ymm0
7351  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7352  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7353  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7354  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7355  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7356  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7357  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7358  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7359  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7360  DB  196,227,117,24,217,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm3
7361  DB  72,173                              ; lods          %ds:(%rsi),%rax
7362  DB  76,137,193                          ; mov           %r8,%rcx
7363  DB  197,252,40,200                      ; vmovaps       %ymm0,%ymm1
7364  DB  197,252,40,208                      ; vmovaps       %ymm0,%ymm2
7365  DB  255,224                             ; jmpq          *%rax
7366  DB  49,201                              ; xor           %ecx,%ecx
7367  DB  77,137,194                          ; mov           %r8,%r10
7368  DB  69,49,201                           ; xor           %r9d,%r9d
7369  DB  68,15,182,24                        ; movzbl        (%rax),%r11d
7370  DB  72,255,192                          ; inc           %rax
7371  DB  73,211,227                          ; shl           %cl,%r11
7372  DB  77,9,217                            ; or            %r11,%r9
7373  DB  72,131,193,8                        ; add           $0x8,%rcx
7374  DB  73,255,202                          ; dec           %r10
7375  DB  117,234                             ; jne           33b3 <_sk_load_g8_avx+0x73>
7376  DB  196,193,249,110,193                 ; vmovq         %r9,%xmm0
7377  DB  235,132                             ; jmp           3354 <_sk_load_g8_avx+0x14>
7378
7379PUBLIC _sk_gather_g8_avx
7380_sk_gather_g8_avx LABEL PROC
7381  DB  65,87                               ; push          %r15
7382  DB  65,86                               ; push          %r14
7383  DB  65,84                               ; push          %r12
7384  DB  83                                  ; push          %rbx
7385  DB  72,173                              ; lods          %ds:(%rsi),%rax
7386  DB  76,139,0                            ; mov           (%rax),%r8
7387  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7388  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7389  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7390  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7391  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7392  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7393  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7394  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7395  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7396  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7397  DB  65,137,193                          ; mov           %eax,%r9d
7398  DB  72,193,232,32                       ; shr           $0x20,%rax
7399  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
7400  DB  69,137,211                          ; mov           %r10d,%r11d
7401  DB  73,193,234,32                       ; shr           $0x20,%r10
7402  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7403  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7404  DB  65,137,222                          ; mov           %ebx,%r14d
7405  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
7406  DB  69,137,252                          ; mov           %r15d,%r12d
7407  DB  73,193,239,32                       ; shr           $0x20,%r15
7408  DB  72,193,235,32                       ; shr           $0x20,%rbx
7409  DB  196,131,121,32,4,48,0               ; vpinsrb       $0x0,(%r8,%r14,1),%xmm0,%xmm0
7410  DB  196,195,121,32,4,24,1               ; vpinsrb       $0x1,(%r8,%rbx,1),%xmm0,%xmm0
7411  DB  67,15,182,28,32                     ; movzbl        (%r8,%r12,1),%ebx
7412  DB  196,227,121,32,195,2                ; vpinsrb       $0x2,%ebx,%xmm0,%xmm0
7413  DB  67,15,182,28,56                     ; movzbl        (%r8,%r15,1),%ebx
7414  DB  196,227,121,32,195,3                ; vpinsrb       $0x3,%ebx,%xmm0,%xmm0
7415  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7416  DB  196,131,121,32,12,24,0              ; vpinsrb       $0x0,(%r8,%r11,1),%xmm0,%xmm1
7417  DB  196,131,113,32,12,16,1              ; vpinsrb       $0x1,(%r8,%r10,1),%xmm1,%xmm1
7418  DB  67,15,182,28,8                      ; movzbl        (%r8,%r9,1),%ebx
7419  DB  196,227,113,32,203,2                ; vpinsrb       $0x2,%ebx,%xmm1,%xmm1
7420  DB  65,15,182,4,0                       ; movzbl        (%r8,%rax,1),%eax
7421  DB  196,227,113,32,200,3                ; vpinsrb       $0x3,%eax,%xmm1,%xmm1
7422  DB  196,226,121,49,201                  ; vpmovzxbd     %xmm1,%xmm1
7423  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
7424  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7425  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7426  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7427  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7428  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7429  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7430  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7431  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7432  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7433  DB  196,227,117,24,217,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm3
7434  DB  72,173                              ; lods          %ds:(%rsi),%rax
7435  DB  197,252,40,200                      ; vmovaps       %ymm0,%ymm1
7436  DB  197,252,40,208                      ; vmovaps       %ymm0,%ymm2
7437  DB  91                                  ; pop           %rbx
7438  DB  65,92                               ; pop           %r12
7439  DB  65,94                               ; pop           %r14
7440  DB  65,95                               ; pop           %r15
7441  DB  255,224                             ; jmpq          *%rax
7442
7443PUBLIC _sk_gather_i8_avx
7444_sk_gather_i8_avx LABEL PROC
7445  DB  72,173                              ; lods          %ds:(%rsi),%rax
7446  DB  73,137,192                          ; mov           %rax,%r8
7447  DB  77,133,192                          ; test          %r8,%r8
7448  DB  116,5                               ; je            34ea <_sk_gather_i8_avx+0xf>
7449  DB  76,137,192                          ; mov           %r8,%rax
7450  DB  235,2                               ; jmp           34ec <_sk_gather_i8_avx+0x11>
7451  DB  72,173                              ; lods          %ds:(%rsi),%rax
7452  DB  65,87                               ; push          %r15
7453  DB  65,86                               ; push          %r14
7454  DB  65,85                               ; push          %r13
7455  DB  65,84                               ; push          %r12
7456  DB  83                                  ; push          %rbx
7457  DB  76,139,8                            ; mov           (%rax),%r9
7458  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7459  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7460  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7461  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7462  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7463  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7464  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7465  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7466  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7467  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7468  DB  65,137,194                          ; mov           %eax,%r10d
7469  DB  72,193,232,32                       ; shr           $0x20,%rax
7470  DB  196,193,249,126,211                 ; vmovq         %xmm2,%r11
7471  DB  69,137,222                          ; mov           %r11d,%r14d
7472  DB  73,193,235,32                       ; shr           $0x20,%r11
7473  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7474  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7475  DB  65,137,223                          ; mov           %ebx,%r15d
7476  DB  196,195,249,22,196,1                ; vpextrq       $0x1,%xmm0,%r12
7477  DB  69,137,229                          ; mov           %r12d,%r13d
7478  DB  73,193,236,32                       ; shr           $0x20,%r12
7479  DB  72,193,235,32                       ; shr           $0x20,%rbx
7480  DB  196,131,121,32,4,49,0               ; vpinsrb       $0x0,(%r9,%r14,1),%xmm0,%xmm0
7481  DB  196,131,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%r11,1),%xmm0,%xmm0
7482  DB  196,131,121,32,4,17,2               ; vpinsrb       $0x2,(%r9,%r10,1),%xmm0,%xmm0
7483  DB  196,195,121,32,4,1,3                ; vpinsrb       $0x3,(%r9,%rax,1),%xmm0,%xmm0
7484  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7485  DB  196,195,249,22,194,1                ; vpextrq       $0x1,%xmm0,%r10
7486  DB  196,193,249,126,195                 ; vmovq         %xmm0,%r11
7487  DB  196,131,121,32,4,57,0               ; vpinsrb       $0x0,(%r9,%r15,1),%xmm0,%xmm0
7488  DB  196,195,121,32,4,25,1               ; vpinsrb       $0x1,(%r9,%rbx,1),%xmm0,%xmm0
7489  DB  196,131,121,32,4,41,2               ; vpinsrb       $0x2,(%r9,%r13,1),%xmm0,%xmm0
7490  DB  196,131,121,32,4,33,3               ; vpinsrb       $0x3,(%r9,%r12,1),%xmm0,%xmm0
7491  DB  196,226,121,49,192                  ; vpmovzxbd     %xmm0,%xmm0
7492  DB  73,139,88,8                         ; mov           0x8(%r8),%rbx
7493  DB  196,193,249,126,193                 ; vmovq         %xmm0,%r9
7494  DB  69,137,200                          ; mov           %r9d,%r8d
7495  DB  73,193,233,30                       ; shr           $0x1e,%r9
7496  DB  196,227,249,22,192,1                ; vpextrq       $0x1,%xmm0,%rax
7497  DB  65,137,198                          ; mov           %eax,%r14d
7498  DB  72,193,232,30                       ; shr           $0x1e,%rax
7499  DB  69,137,223                          ; mov           %r11d,%r15d
7500  DB  73,193,235,30                       ; shr           $0x1e,%r11
7501  DB  69,137,212                          ; mov           %r10d,%r12d
7502  DB  73,193,234,30                       ; shr           $0x1e,%r10
7503  DB  196,161,121,110,4,131               ; vmovd         (%rbx,%r8,4),%xmm0
7504  DB  196,163,121,34,4,11,1               ; vpinsrd       $0x1,(%rbx,%r9,1),%xmm0,%xmm0
7505  DB  196,163,121,34,4,179,2              ; vpinsrd       $0x2,(%rbx,%r14,4),%xmm0,%xmm0
7506  DB  196,99,121,34,4,3,3                 ; vpinsrd       $0x3,(%rbx,%rax,1),%xmm0,%xmm8
7507  DB  196,161,121,110,4,187               ; vmovd         (%rbx,%r15,4),%xmm0
7508  DB  196,163,121,34,4,27,1               ; vpinsrd       $0x1,(%rbx,%r11,1),%xmm0,%xmm0
7509  DB  196,163,121,34,4,163,2              ; vpinsrd       $0x2,(%rbx,%r12,4),%xmm0,%xmm0
7510  DB  196,163,121,34,28,19,3              ; vpinsrd       $0x3,(%rbx,%r10,1),%xmm0,%xmm3
7511  DB  196,227,61,24,195,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm0
7512  DB  184,255,0,0,0                       ; mov           $0xff,%eax
7513  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7514  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7515  DB  196,99,117,24,217,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm11
7516  DB  197,164,84,192                      ; vandps        %ymm0,%ymm11,%ymm0
7517  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7518  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
7519  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7520  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7521  DB  196,99,117,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm9
7522  DB  196,193,124,89,193                  ; vmulps        %ymm9,%ymm0,%ymm0
7523  DB  196,193,41,114,208,8                ; vpsrld        $0x8,%xmm8,%xmm10
7524  DB  197,241,114,211,8                   ; vpsrld        $0x8,%xmm3,%xmm1
7525  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
7526  DB  197,164,84,201                      ; vandps        %ymm1,%ymm11,%ymm1
7527  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7528  DB  196,193,116,89,201                  ; vmulps        %ymm9,%ymm1,%ymm1
7529  DB  196,193,41,114,208,16               ; vpsrld        $0x10,%xmm8,%xmm10
7530  DB  197,233,114,211,16                  ; vpsrld        $0x10,%xmm3,%xmm2
7531  DB  196,227,45,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm10,%ymm2
7532  DB  197,164,84,210                      ; vandps        %ymm2,%ymm11,%ymm2
7533  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
7534  DB  196,193,108,89,209                  ; vmulps        %ymm9,%ymm2,%ymm2
7535  DB  196,193,57,114,208,24               ; vpsrld        $0x18,%xmm8,%xmm8
7536  DB  197,225,114,211,24                  ; vpsrld        $0x18,%xmm3,%xmm3
7537  DB  196,227,61,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm3
7538  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
7539  DB  196,193,100,89,217                  ; vmulps        %ymm9,%ymm3,%ymm3
7540  DB  72,173                              ; lods          %ds:(%rsi),%rax
7541  DB  91                                  ; pop           %rbx
7542  DB  65,92                               ; pop           %r12
7543  DB  65,93                               ; pop           %r13
7544  DB  65,94                               ; pop           %r14
7545  DB  65,95                               ; pop           %r15
7546  DB  255,224                             ; jmpq          *%rax
7547
7548PUBLIC _sk_load_565_avx
7549_sk_load_565_avx LABEL PROC
7550  DB  72,173                              ; lods          %ds:(%rsi),%rax
7551  DB  76,139,16                           ; mov           (%rax),%r10
7552  DB  72,133,201                          ; test          %rcx,%rcx
7553  DB  15,133,209,0,0,0                    ; jne           3786 <_sk_load_565_avx+0xdf>
7554  DB  196,193,122,111,4,122               ; vmovdqu       (%r10,%rdi,2),%xmm0
7555  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
7556  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
7557  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
7558  DB  196,227,125,24,209,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm2
7559  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
7560  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7561  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7562  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7563  DB  197,252,84,194                      ; vandps        %ymm2,%ymm0,%ymm0
7564  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7565  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
7566  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7567  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7568  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7569  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7570  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
7571  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7572  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7573  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7574  DB  197,244,84,202                      ; vandps        %ymm2,%ymm1,%ymm1
7575  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7576  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
7577  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7578  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7579  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7580  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
7581  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
7582  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7583  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7584  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7585  DB  197,228,84,210                      ; vandps        %ymm2,%ymm3,%ymm2
7586  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
7587  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
7588  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7589  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7590  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7591  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
7592  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7593  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7594  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7595  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7596  DB  72,173                              ; lods          %ds:(%rsi),%rax
7597  DB  255,224                             ; jmpq          *%rax
7598  DB  65,137,200                          ; mov           %ecx,%r8d
7599  DB  65,128,224,7                        ; and           $0x7,%r8b
7600  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
7601  DB  65,254,200                          ; dec           %r8b
7602  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7603  DB  15,135,29,255,255,255               ; ja            36bb <_sk_load_565_avx+0x14>
7604  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
7605  DB  76,141,13,75,0,0,0                  ; lea           0x4b(%rip),%r9        # 37f4 <_sk_load_565_avx+0x14d>
7606  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
7607  DB  76,1,200                            ; add           %r9,%rax
7608  DB  255,224                             ; jmpq          *%rax
7609  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
7610  DB  196,193,121,196,68,122,12,6         ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm0,%xmm0
7611  DB  196,193,121,196,68,122,10,5         ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm0,%xmm0
7612  DB  196,193,121,196,68,122,8,4          ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm0,%xmm0
7613  DB  196,193,121,196,68,122,6,3          ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm0,%xmm0
7614  DB  196,193,121,196,68,122,4,2          ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0
7615  DB  196,193,121,196,68,122,2,1          ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0
7616  DB  196,193,121,196,4,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm0,%xmm0
7617  DB  233,201,254,255,255                 ; jmpq          36bb <_sk_load_565_avx+0x14>
7618  DB  102,144                             ; xchg          %ax,%ax
7619  DB  242,255                             ; repnz         (bad)
7620  DB  255                                 ; (bad)
7621  DB  255                                 ; (bad)
7622  DB  234                                 ; (bad)
7623  DB  255                                 ; (bad)
7624  DB  255                                 ; (bad)
7625  DB  255,226                             ; jmpq          *%rdx
7626  DB  255                                 ; (bad)
7627  DB  255                                 ; (bad)
7628  DB  255                                 ; (bad)
7629  DB  218,255                             ; (bad)
7630  DB  255                                 ; (bad)
7631  DB  255,210                             ; callq         *%rdx
7632  DB  255                                 ; (bad)
7633  DB  255                                 ; (bad)
7634  DB  255,202                             ; dec           %edx
7635  DB  255                                 ; (bad)
7636  DB  255                                 ; (bad)
7637  DB  255                                 ; (bad)
7638  DB  190                                 ; .byte         0xbe
7639  DB  255                                 ; (bad)
7640  DB  255                                 ; (bad)
7641  DB  255                                 ; .byte         0xff
7642
7643PUBLIC _sk_gather_565_avx
7644_sk_gather_565_avx LABEL PROC
7645  DB  85                                  ; push          %rbp
7646  DB  65,87                               ; push          %r15
7647  DB  65,86                               ; push          %r14
7648  DB  65,84                               ; push          %r12
7649  DB  83                                  ; push          %rbx
7650  DB  72,173                              ; lods          %ds:(%rsi),%rax
7651  DB  76,139,0                            ; mov           (%rax),%r8
7652  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7653  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7654  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7655  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7656  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7657  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7658  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7659  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7660  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7661  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7662  DB  65,137,193                          ; mov           %eax,%r9d
7663  DB  72,193,232,32                       ; shr           $0x20,%rax
7664  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
7665  DB  69,137,211                          ; mov           %r10d,%r11d
7666  DB  73,193,234,32                       ; shr           $0x20,%r10
7667  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7668  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7669  DB  65,137,222                          ; mov           %ebx,%r14d
7670  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
7671  DB  69,137,252                          ; mov           %r15d,%r12d
7672  DB  73,193,239,32                       ; shr           $0x20,%r15
7673  DB  72,193,235,32                       ; shr           $0x20,%rbx
7674  DB  65,15,183,28,88                     ; movzwl        (%r8,%rbx,2),%ebx
7675  DB  67,15,183,44,112                    ; movzwl        (%r8,%r14,2),%ebp
7676  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
7677  DB  197,249,196,195,1                   ; vpinsrw       $0x1,%ebx,%xmm0,%xmm0
7678  DB  67,15,183,28,96                     ; movzwl        (%r8,%r12,2),%ebx
7679  DB  197,249,196,195,2                   ; vpinsrw       $0x2,%ebx,%xmm0,%xmm0
7680  DB  67,15,183,28,120                    ; movzwl        (%r8,%r15,2),%ebx
7681  DB  197,249,196,195,3                   ; vpinsrw       $0x3,%ebx,%xmm0,%xmm0
7682  DB  67,15,183,44,88                     ; movzwl        (%r8,%r11,2),%ebp
7683  DB  197,249,196,197,4                   ; vpinsrw       $0x4,%ebp,%xmm0,%xmm0
7684  DB  67,15,183,44,80                     ; movzwl        (%r8,%r10,2),%ebp
7685  DB  197,249,196,197,5                   ; vpinsrw       $0x5,%ebp,%xmm0,%xmm0
7686  DB  67,15,183,44,72                     ; movzwl        (%r8,%r9,2),%ebp
7687  DB  197,249,196,197,6                   ; vpinsrw       $0x6,%ebp,%xmm0,%xmm0
7688  DB  65,15,183,4,64                      ; movzwl        (%r8,%rax,2),%eax
7689  DB  197,249,196,192,7                   ; vpinsrw       $0x7,%eax,%xmm0,%xmm0
7690  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
7691  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
7692  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
7693  DB  196,227,125,24,209,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm2
7694  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
7695  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7696  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7697  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7698  DB  197,252,84,194                      ; vandps        %ymm2,%ymm0,%ymm0
7699  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7700  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
7701  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7702  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7703  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7704  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7705  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
7706  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7707  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7708  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7709  DB  197,244,84,202                      ; vandps        %ymm2,%ymm1,%ymm1
7710  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7711  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
7712  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7713  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7714  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7715  DB  197,244,89,203                      ; vmulps        %ymm3,%ymm1,%ymm1
7716  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
7717  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7718  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7719  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7720  DB  197,228,84,210                      ; vandps        %ymm2,%ymm3,%ymm2
7721  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
7722  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
7723  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7724  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7725  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7726  DB  197,236,89,211                      ; vmulps        %ymm3,%ymm2,%ymm2
7727  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
7728  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7729  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7730  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7731  DB  72,173                              ; lods          %ds:(%rsi),%rax
7732  DB  91                                  ; pop           %rbx
7733  DB  65,92                               ; pop           %r12
7734  DB  65,94                               ; pop           %r14
7735  DB  65,95                               ; pop           %r15
7736  DB  93                                  ; pop           %rbp
7737  DB  255,224                             ; jmpq          *%rax
7738
7739PUBLIC _sk_store_565_avx
7740_sk_store_565_avx LABEL PROC
7741  DB  72,173                              ; lods          %ds:(%rsi),%rax
7742  DB  76,139,8                            ; mov           (%rax),%r9
7743  DB  184,0,0,248,65                      ; mov           $0x41f80000,%eax
7744  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
7745  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
7746  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
7747  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
7748  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
7749  DB  196,193,41,114,241,11               ; vpslld        $0xb,%xmm9,%xmm10
7750  DB  196,67,125,25,201,1                 ; vextractf128  $0x1,%ymm9,%xmm9
7751  DB  196,193,49,114,241,11               ; vpslld        $0xb,%xmm9,%xmm9
7752  DB  196,67,45,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm9
7753  DB  184,0,0,124,66                      ; mov           $0x427c0000,%eax
7754  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
7755  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
7756  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
7757  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
7758  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
7759  DB  196,193,33,114,242,5                ; vpslld        $0x5,%xmm10,%xmm11
7760  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
7761  DB  196,193,41,114,242,5                ; vpslld        $0x5,%xmm10,%xmm10
7762  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
7763  DB  196,65,45,86,201                    ; vorpd         %ymm9,%ymm10,%ymm9
7764  DB  197,60,89,194                       ; vmulps        %ymm2,%ymm8,%ymm8
7765  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
7766  DB  196,65,53,86,192                    ; vorpd         %ymm8,%ymm9,%ymm8
7767  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
7768  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
7769  DB  72,133,201                          ; test          %rcx,%rcx
7770  DB  117,10                              ; jne           3a3f <_sk_store_565_avx+0x9e>
7771  DB  196,65,122,127,4,121                ; vmovdqu       %xmm8,(%r9,%rdi,2)
7772  DB  72,173                              ; lods          %ds:(%rsi),%rax
7773  DB  255,224                             ; jmpq          *%rax
7774  DB  65,137,200                          ; mov           %ecx,%r8d
7775  DB  65,128,224,7                        ; and           $0x7,%r8b
7776  DB  65,254,200                          ; dec           %r8b
7777  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7778  DB  119,236                             ; ja            3a3b <_sk_store_565_avx+0x9a>
7779  DB  65,15,182,192                       ; movzbl        %r8b,%eax
7780  DB  76,141,5,66,0,0,0                   ; lea           0x42(%rip),%r8        # 3a9c <_sk_store_565_avx+0xfb>
7781  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
7782  DB  76,1,192                            ; add           %r8,%rax
7783  DB  255,224                             ; jmpq          *%rax
7784  DB  196,67,121,21,68,121,12,6           ; vpextrw       $0x6,%xmm8,0xc(%r9,%rdi,2)
7785  DB  196,67,121,21,68,121,10,5           ; vpextrw       $0x5,%xmm8,0xa(%r9,%rdi,2)
7786  DB  196,67,121,21,68,121,8,4            ; vpextrw       $0x4,%xmm8,0x8(%r9,%rdi,2)
7787  DB  196,67,121,21,68,121,6,3            ; vpextrw       $0x3,%xmm8,0x6(%r9,%rdi,2)
7788  DB  196,67,121,21,68,121,4,2            ; vpextrw       $0x2,%xmm8,0x4(%r9,%rdi,2)
7789  DB  196,67,121,21,68,121,2,1            ; vpextrw       $0x1,%xmm8,0x2(%r9,%rdi,2)
7790  DB  196,67,121,21,4,121,0               ; vpextrw       $0x0,%xmm8,(%r9,%rdi,2)
7791  DB  235,159                             ; jmp           3a3b <_sk_store_565_avx+0x9a>
7792  DB  247,255                             ; idiv          %edi
7793  DB  255                                 ; (bad)
7794  DB  255                                 ; (bad)
7795  DB  239                                 ; out           %eax,(%dx)
7796  DB  255                                 ; (bad)
7797  DB  255                                 ; (bad)
7798  DB  255,231                             ; jmpq          *%rdi
7799  DB  255                                 ; (bad)
7800  DB  255                                 ; (bad)
7801  DB  255                                 ; (bad)
7802  DB  223,255                             ; (bad)
7803  DB  255                                 ; (bad)
7804  DB  255,215                             ; callq         *%rdi
7805  DB  255                                 ; (bad)
7806  DB  255                                 ; (bad)
7807  DB  255,207                             ; dec           %edi
7808  DB  255                                 ; (bad)
7809  DB  255                                 ; (bad)
7810  DB  255,199                             ; inc           %edi
7811  DB  255                                 ; (bad)
7812  DB  255                                 ; (bad)
7813  DB  255                                 ; .byte         0xff
7814
7815PUBLIC _sk_load_4444_avx
7816_sk_load_4444_avx LABEL PROC
7817  DB  72,173                              ; lods          %ds:(%rsi),%rax
7818  DB  76,139,16                           ; mov           (%rax),%r10
7819  DB  72,133,201                          ; test          %rcx,%rcx
7820  DB  15,133,245,0,0,0                    ; jne           3bbb <_sk_load_4444_avx+0x103>
7821  DB  196,193,122,111,4,122               ; vmovdqu       (%r10,%rdi,2),%xmm0
7822  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
7823  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
7824  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
7825  DB  196,99,125,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm9
7826  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
7827  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7828  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7829  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7830  DB  196,193,124,84,193                  ; vandps        %ymm9,%ymm0,%ymm0
7831  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7832  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
7833  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7834  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7835  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7836  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7837  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
7838  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7839  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7840  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7841  DB  196,193,116,84,201                  ; vandps        %ymm9,%ymm1,%ymm1
7842  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7843  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
7844  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7845  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7846  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7847  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
7848  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
7849  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7850  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
7851  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7852  DB  196,193,108,84,209                  ; vandps        %ymm9,%ymm2,%ymm2
7853  DB  197,124,91,194                      ; vcvtdq2ps     %ymm2,%ymm8
7854  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
7855  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7856  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7857  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7858  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
7859  DB  184,15,0,0,0                        ; mov           $0xf,%eax
7860  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7861  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
7862  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7863  DB  196,193,100,84,217                  ; vandps        %ymm9,%ymm3,%ymm3
7864  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
7865  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
7866  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
7867  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
7868  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
7869  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
7870  DB  72,173                              ; lods          %ds:(%rsi),%rax
7871  DB  255,224                             ; jmpq          *%rax
7872  DB  65,137,200                          ; mov           %ecx,%r8d
7873  DB  65,128,224,7                        ; and           $0x7,%r8b
7874  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
7875  DB  65,254,200                          ; dec           %r8b
7876  DB  65,128,248,6                        ; cmp           $0x6,%r8b
7877  DB  15,135,249,254,255,255              ; ja            3acc <_sk_load_4444_avx+0x14>
7878  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
7879  DB  76,141,13,74,0,0,0                  ; lea           0x4a(%rip),%r9        # 3c28 <_sk_load_4444_avx+0x170>
7880  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
7881  DB  76,1,200                            ; add           %r9,%rax
7882  DB  255,224                             ; jmpq          *%rax
7883  DB  197,249,239,192                     ; vpxor         %xmm0,%xmm0,%xmm0
7884  DB  196,193,121,196,68,122,12,6         ; vpinsrw       $0x6,0xc(%r10,%rdi,2),%xmm0,%xmm0
7885  DB  196,193,121,196,68,122,10,5         ; vpinsrw       $0x5,0xa(%r10,%rdi,2),%xmm0,%xmm0
7886  DB  196,193,121,196,68,122,8,4          ; vpinsrw       $0x4,0x8(%r10,%rdi,2),%xmm0,%xmm0
7887  DB  196,193,121,196,68,122,6,3          ; vpinsrw       $0x3,0x6(%r10,%rdi,2),%xmm0,%xmm0
7888  DB  196,193,121,196,68,122,4,2          ; vpinsrw       $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0
7889  DB  196,193,121,196,68,122,2,1          ; vpinsrw       $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0
7890  DB  196,193,121,196,4,122,0             ; vpinsrw       $0x0,(%r10,%rdi,2),%xmm0,%xmm0
7891  DB  233,165,254,255,255                 ; jmpq          3acc <_sk_load_4444_avx+0x14>
7892  DB  144                                 ; nop
7893  DB  243,255                             ; repz          (bad)
7894  DB  255                                 ; (bad)
7895  DB  255                                 ; (bad)
7896  DB  235,255                             ; jmp           3c2d <_sk_load_4444_avx+0x175>
7897  DB  255                                 ; (bad)
7898  DB  255,227                             ; jmpq          *%rbx
7899  DB  255                                 ; (bad)
7900  DB  255                                 ; (bad)
7901  DB  255                                 ; (bad)
7902  DB  219,255                             ; (bad)
7903  DB  255                                 ; (bad)
7904  DB  255,211                             ; callq         *%rbx
7905  DB  255                                 ; (bad)
7906  DB  255                                 ; (bad)
7907  DB  255,203                             ; dec           %ebx
7908  DB  255                                 ; (bad)
7909  DB  255                                 ; (bad)
7910  DB  255                                 ; (bad)
7911  DB  191                                 ; .byte         0xbf
7912  DB  255                                 ; (bad)
7913  DB  255                                 ; (bad)
7914  DB  255                                 ; .byte         0xff
7915
7916PUBLIC _sk_gather_4444_avx
7917_sk_gather_4444_avx LABEL PROC
7918  DB  85                                  ; push          %rbp
7919  DB  65,87                               ; push          %r15
7920  DB  65,86                               ; push          %r14
7921  DB  65,84                               ; push          %r12
7922  DB  83                                  ; push          %rbx
7923  DB  72,173                              ; lods          %ds:(%rsi),%rax
7924  DB  76,139,0                            ; mov           (%rax),%r8
7925  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
7926  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
7927  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
7928  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
7929  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
7930  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
7931  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
7932  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
7933  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
7934  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
7935  DB  65,137,193                          ; mov           %eax,%r9d
7936  DB  72,193,232,32                       ; shr           $0x20,%rax
7937  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
7938  DB  69,137,211                          ; mov           %r10d,%r11d
7939  DB  73,193,234,32                       ; shr           $0x20,%r10
7940  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
7941  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
7942  DB  65,137,222                          ; mov           %ebx,%r14d
7943  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
7944  DB  69,137,252                          ; mov           %r15d,%r12d
7945  DB  73,193,239,32                       ; shr           $0x20,%r15
7946  DB  72,193,235,32                       ; shr           $0x20,%rbx
7947  DB  65,15,183,28,88                     ; movzwl        (%r8,%rbx,2),%ebx
7948  DB  67,15,183,44,112                    ; movzwl        (%r8,%r14,2),%ebp
7949  DB  197,249,110,197                     ; vmovd         %ebp,%xmm0
7950  DB  197,249,196,195,1                   ; vpinsrw       $0x1,%ebx,%xmm0,%xmm0
7951  DB  67,15,183,28,96                     ; movzwl        (%r8,%r12,2),%ebx
7952  DB  197,249,196,195,2                   ; vpinsrw       $0x2,%ebx,%xmm0,%xmm0
7953  DB  67,15,183,28,120                    ; movzwl        (%r8,%r15,2),%ebx
7954  DB  197,249,196,195,3                   ; vpinsrw       $0x3,%ebx,%xmm0,%xmm0
7955  DB  67,15,183,44,88                     ; movzwl        (%r8,%r11,2),%ebp
7956  DB  197,249,196,197,4                   ; vpinsrw       $0x4,%ebp,%xmm0,%xmm0
7957  DB  67,15,183,44,80                     ; movzwl        (%r8,%r10,2),%ebp
7958  DB  197,249,196,197,5                   ; vpinsrw       $0x5,%ebp,%xmm0,%xmm0
7959  DB  67,15,183,44,72                     ; movzwl        (%r8,%r9,2),%ebp
7960  DB  197,249,196,197,6                   ; vpinsrw       $0x6,%ebp,%xmm0,%xmm0
7961  DB  65,15,183,4,64                      ; movzwl        (%r8,%rax,2),%eax
7962  DB  197,249,196,192,7                   ; vpinsrw       $0x7,%eax,%xmm0,%xmm0
7963  DB  197,241,239,201                     ; vpxor         %xmm1,%xmm1,%xmm1
7964  DB  197,249,105,201                     ; vpunpckhwd    %xmm1,%xmm0,%xmm1
7965  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
7966  DB  196,99,125,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm9
7967  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
7968  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
7969  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
7970  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
7971  DB  196,193,124,84,193                  ; vandps        %ymm9,%ymm0,%ymm0
7972  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
7973  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
7974  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7975  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
7976  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7977  DB  197,252,89,193                      ; vmulps        %ymm1,%ymm0,%ymm0
7978  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
7979  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
7980  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
7981  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
7982  DB  196,193,116,84,201                  ; vandps        %ymm9,%ymm1,%ymm1
7983  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
7984  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
7985  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7986  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7987  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7988  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
7989  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
7990  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7991  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
7992  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7993  DB  196,193,108,84,209                  ; vandps        %ymm9,%ymm2,%ymm2
7994  DB  197,124,91,194                      ; vcvtdq2ps     %ymm2,%ymm8
7995  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
7996  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
7997  DB  196,227,121,4,210,0                 ; vpermilps     $0x0,%xmm2,%xmm2
7998  DB  196,227,109,24,210,1                ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm2
7999  DB  197,188,89,210                      ; vmulps        %ymm2,%ymm8,%ymm2
8000  DB  184,15,0,0,0                        ; mov           $0xf,%eax
8001  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
8002  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
8003  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
8004  DB  196,193,100,84,217                  ; vandps        %ymm9,%ymm3,%ymm3
8005  DB  197,124,91,195                      ; vcvtdq2ps     %ymm3,%ymm8
8006  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
8007  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
8008  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
8009  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
8010  DB  197,188,89,219                      ; vmulps        %ymm3,%ymm8,%ymm3
8011  DB  72,173                              ; lods          %ds:(%rsi),%rax
8012  DB  91                                  ; pop           %rbx
8013  DB  65,92                               ; pop           %r12
8014  DB  65,94                               ; pop           %r14
8015  DB  65,95                               ; pop           %r15
8016  DB  93                                  ; pop           %rbp
8017  DB  255,224                             ; jmpq          *%rax
8018
8019PUBLIC _sk_store_4444_avx
8020_sk_store_4444_avx LABEL PROC
8021  DB  72,173                              ; lods          %ds:(%rsi),%rax
8022  DB  76,139,8                            ; mov           (%rax),%r9
8023  DB  184,0,0,112,65                      ; mov           $0x41700000,%eax
8024  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
8025  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
8026  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
8027  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
8028  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
8029  DB  196,193,41,114,241,12               ; vpslld        $0xc,%xmm9,%xmm10
8030  DB  196,67,125,25,201,1                 ; vextractf128  $0x1,%ymm9,%xmm9
8031  DB  196,193,49,114,241,12               ; vpslld        $0xc,%xmm9,%xmm9
8032  DB  196,67,45,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm9
8033  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
8034  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
8035  DB  196,193,33,114,242,8                ; vpslld        $0x8,%xmm10,%xmm11
8036  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
8037  DB  196,193,41,114,242,8                ; vpslld        $0x8,%xmm10,%xmm10
8038  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
8039  DB  196,65,45,86,201                    ; vorpd         %ymm9,%ymm10,%ymm9
8040  DB  197,60,89,210                       ; vmulps        %ymm2,%ymm8,%ymm10
8041  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
8042  DB  196,193,33,114,242,4                ; vpslld        $0x4,%xmm10,%xmm11
8043  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
8044  DB  196,193,41,114,242,4                ; vpslld        $0x4,%xmm10,%xmm10
8045  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
8046  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
8047  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
8048  DB  196,65,45,86,192                    ; vorpd         %ymm8,%ymm10,%ymm8
8049  DB  196,65,53,86,192                    ; vorpd         %ymm8,%ymm9,%ymm8
8050  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
8051  DB  196,66,57,43,193                    ; vpackusdw     %xmm9,%xmm8,%xmm8
8052  DB  72,133,201                          ; test          %rcx,%rcx
8053  DB  117,10                              ; jne           3ea8 <_sk_store_4444_avx+0xaf>
8054  DB  196,65,122,127,4,121                ; vmovdqu       %xmm8,(%r9,%rdi,2)
8055  DB  72,173                              ; lods          %ds:(%rsi),%rax
8056  DB  255,224                             ; jmpq          *%rax
8057  DB  65,137,200                          ; mov           %ecx,%r8d
8058  DB  65,128,224,7                        ; and           $0x7,%r8b
8059  DB  65,254,200                          ; dec           %r8b
8060  DB  65,128,248,6                        ; cmp           $0x6,%r8b
8061  DB  119,236                             ; ja            3ea4 <_sk_store_4444_avx+0xab>
8062  DB  65,15,182,192                       ; movzbl        %r8b,%eax
8063  DB  76,141,5,69,0,0,0                   ; lea           0x45(%rip),%r8        # 3f08 <_sk_store_4444_avx+0x10f>
8064  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
8065  DB  76,1,192                            ; add           %r8,%rax
8066  DB  255,224                             ; jmpq          *%rax
8067  DB  196,67,121,21,68,121,12,6           ; vpextrw       $0x6,%xmm8,0xc(%r9,%rdi,2)
8068  DB  196,67,121,21,68,121,10,5           ; vpextrw       $0x5,%xmm8,0xa(%r9,%rdi,2)
8069  DB  196,67,121,21,68,121,8,4            ; vpextrw       $0x4,%xmm8,0x8(%r9,%rdi,2)
8070  DB  196,67,121,21,68,121,6,3            ; vpextrw       $0x3,%xmm8,0x6(%r9,%rdi,2)
8071  DB  196,67,121,21,68,121,4,2            ; vpextrw       $0x2,%xmm8,0x4(%r9,%rdi,2)
8072  DB  196,67,121,21,68,121,2,1            ; vpextrw       $0x1,%xmm8,0x2(%r9,%rdi,2)
8073  DB  196,67,121,21,4,121,0               ; vpextrw       $0x0,%xmm8,(%r9,%rdi,2)
8074  DB  235,159                             ; jmp           3ea4 <_sk_store_4444_avx+0xab>
8075  DB  15,31,0                             ; nopl          (%rax)
8076  DB  244                                 ; hlt
8077  DB  255                                 ; (bad)
8078  DB  255                                 ; (bad)
8079  DB  255                                 ; (bad)
8080  DB  236                                 ; in            (%dx),%al
8081  DB  255                                 ; (bad)
8082  DB  255                                 ; (bad)
8083  DB  255,228                             ; jmpq          *%rsp
8084  DB  255                                 ; (bad)
8085  DB  255                                 ; (bad)
8086  DB  255                                 ; (bad)
8087  DB  220,255                             ; fdivr         %st,%st(7)
8088  DB  255                                 ; (bad)
8089  DB  255,212                             ; callq         *%rsp
8090  DB  255                                 ; (bad)
8091  DB  255                                 ; (bad)
8092  DB  255,204                             ; dec           %esp
8093  DB  255                                 ; (bad)
8094  DB  255                                 ; (bad)
8095  DB  255,196                             ; inc           %esp
8096  DB  255                                 ; (bad)
8097  DB  255                                 ; (bad)
8098  DB  255                                 ; .byte         0xff
8099
8100PUBLIC _sk_load_8888_avx
8101_sk_load_8888_avx LABEL PROC
8102  DB  72,173                              ; lods          %ds:(%rsi),%rax
8103  DB  76,139,16                           ; mov           (%rax),%r10
8104  DB  72,133,201                          ; test          %rcx,%rcx
8105  DB  15,133,157,0,0,0                    ; jne           3fcf <_sk_load_8888_avx+0xab>
8106  DB  196,65,124,16,12,186                ; vmovups       (%r10,%rdi,4),%ymm9
8107  DB  184,255,0,0,0                       ; mov           $0xff,%eax
8108  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
8109  DB  197,249,112,192,0                   ; vpshufd       $0x0,%xmm0,%xmm0
8110  DB  196,99,125,24,216,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm11
8111  DB  196,193,36,84,193                   ; vandps        %ymm9,%ymm11,%ymm0
8112  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
8113  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
8114  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
8115  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
8116  DB  196,99,117,24,193,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm8
8117  DB  196,193,124,89,192                  ; vmulps        %ymm8,%ymm0,%ymm0
8118  DB  196,193,41,114,209,8                ; vpsrld        $0x8,%xmm9,%xmm10
8119  DB  196,99,125,25,203,1                 ; vextractf128  $0x1,%ymm9,%xmm3
8120  DB  197,241,114,211,8                   ; vpsrld        $0x8,%xmm3,%xmm1
8121  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
8122  DB  197,164,84,201                      ; vandps        %ymm1,%ymm11,%ymm1
8123  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
8124  DB  196,193,116,89,200                  ; vmulps        %ymm8,%ymm1,%ymm1
8125  DB  196,193,41,114,209,16               ; vpsrld        $0x10,%xmm9,%xmm10
8126  DB  197,233,114,211,16                  ; vpsrld        $0x10,%xmm3,%xmm2
8127  DB  196,227,45,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm10,%ymm2
8128  DB  197,164,84,210                      ; vandps        %ymm2,%ymm11,%ymm2
8129  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
8130  DB  196,193,108,89,208                  ; vmulps        %ymm8,%ymm2,%ymm2
8131  DB  196,193,49,114,209,24               ; vpsrld        $0x18,%xmm9,%xmm9
8132  DB  197,225,114,211,24                  ; vpsrld        $0x18,%xmm3,%xmm3
8133  DB  196,227,53,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm9,%ymm3
8134  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
8135  DB  196,193,100,89,216                  ; vmulps        %ymm8,%ymm3,%ymm3
8136  DB  72,173                              ; lods          %ds:(%rsi),%rax
8137  DB  255,224                             ; jmpq          *%rax
8138  DB  65,137,200                          ; mov           %ecx,%r8d
8139  DB  65,128,224,7                        ; and           $0x7,%r8b
8140  DB  196,65,52,87,201                    ; vxorps        %ymm9,%ymm9,%ymm9
8141  DB  65,254,200                          ; dec           %r8b
8142  DB  65,128,248,6                        ; cmp           $0x6,%r8b
8143  DB  15,135,80,255,255,255               ; ja            3f38 <_sk_load_8888_avx+0x14>
8144  DB  69,15,182,192                       ; movzbl        %r8b,%r8d
8145  DB  76,141,13,137,0,0,0                 ; lea           0x89(%rip),%r9        # 407c <_sk_load_8888_avx+0x158>
8146  DB  75,99,4,129                         ; movslq        (%r9,%r8,4),%rax
8147  DB  76,1,200                            ; add           %r9,%rax
8148  DB  255,224                             ; jmpq          *%rax
8149  DB  196,193,121,110,68,186,24           ; vmovd         0x18(%r10,%rdi,4),%xmm0
8150  DB  197,249,112,192,68                  ; vpshufd       $0x44,%xmm0,%xmm0
8151  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
8152  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
8153  DB  196,99,117,12,200,64                ; vblendps      $0x40,%ymm0,%ymm1,%ymm9
8154  DB  196,99,125,25,200,1                 ; vextractf128  $0x1,%ymm9,%xmm0
8155  DB  196,195,121,34,68,186,20,1          ; vpinsrd       $0x1,0x14(%r10,%rdi,4),%xmm0,%xmm0
8156  DB  196,99,53,24,200,1                  ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm9
8157  DB  196,99,125,25,200,1                 ; vextractf128  $0x1,%ymm9,%xmm0
8158  DB  196,195,121,34,68,186,16,0          ; vpinsrd       $0x0,0x10(%r10,%rdi,4),%xmm0,%xmm0
8159  DB  196,99,53,24,200,1                  ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm9
8160  DB  196,195,49,34,68,186,12,3           ; vpinsrd       $0x3,0xc(%r10,%rdi,4),%xmm9,%xmm0
8161  DB  196,99,53,12,200,15                 ; vblendps      $0xf,%ymm0,%ymm9,%ymm9
8162  DB  196,195,49,34,68,186,8,2            ; vpinsrd       $0x2,0x8(%r10,%rdi,4),%xmm9,%xmm0
8163  DB  196,99,53,12,200,15                 ; vblendps      $0xf,%ymm0,%ymm9,%ymm9
8164  DB  196,195,49,34,68,186,4,1            ; vpinsrd       $0x1,0x4(%r10,%rdi,4),%xmm9,%xmm0
8165  DB  196,99,53,12,200,15                 ; vblendps      $0xf,%ymm0,%ymm9,%ymm9
8166  DB  196,195,49,34,4,186,0               ; vpinsrd       $0x0,(%r10,%rdi,4),%xmm9,%xmm0
8167  DB  196,99,53,12,200,15                 ; vblendps      $0xf,%ymm0,%ymm9,%ymm9
8168  DB  233,188,254,255,255                 ; jmpq          3f38 <_sk_load_8888_avx+0x14>
8169  DB  238                                 ; out           %al,(%dx)
8170  DB  255                                 ; (bad)
8171  DB  255                                 ; (bad)
8172  DB  255,224                             ; jmpq          *%rax
8173  DB  255                                 ; (bad)
8174  DB  255                                 ; (bad)
8175  DB  255,210                             ; callq         *%rdx
8176  DB  255                                 ; (bad)
8177  DB  255                                 ; (bad)
8178  DB  255,196                             ; inc           %esp
8179  DB  255                                 ; (bad)
8180  DB  255                                 ; (bad)
8181  DB  255,176,255,255,255,156             ; pushq         -0x63000001(%rax)
8182  DB  255                                 ; (bad)
8183  DB  255                                 ; (bad)
8184  DB  255                                 ; .byte         0xff
8185  DB  128,255,255                         ; cmp           $0xff,%bh
8186  DB  255                                 ; .byte         0xff
8187
8188PUBLIC _sk_gather_8888_avx
8189_sk_gather_8888_avx LABEL PROC
8190  DB  65,87                               ; push          %r15
8191  DB  65,86                               ; push          %r14
8192  DB  65,84                               ; push          %r12
8193  DB  83                                  ; push          %rbx
8194  DB  72,173                              ; lods          %ds:(%rsi),%rax
8195  DB  76,139,0                            ; mov           (%rax),%r8
8196  DB  197,254,91,201                      ; vcvttps2dq    %ymm1,%ymm1
8197  DB  197,249,110,80,16                   ; vmovd         0x10(%rax),%xmm2
8198  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
8199  DB  196,226,105,64,217                  ; vpmulld       %xmm1,%xmm2,%xmm3
8200  DB  196,227,125,25,201,1                ; vextractf128  $0x1,%ymm1,%xmm1
8201  DB  196,226,105,64,201                  ; vpmulld       %xmm1,%xmm2,%xmm1
8202  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
8203  DB  196,227,125,25,194,1                ; vextractf128  $0x1,%ymm0,%xmm2
8204  DB  197,241,254,202                     ; vpaddd        %xmm2,%xmm1,%xmm1
8205  DB  196,225,249,126,200                 ; vmovq         %xmm1,%rax
8206  DB  65,137,193                          ; mov           %eax,%r9d
8207  DB  72,193,232,32                       ; shr           $0x20,%rax
8208  DB  196,195,249,22,202,1                ; vpextrq       $0x1,%xmm1,%r10
8209  DB  69,137,211                          ; mov           %r10d,%r11d
8210  DB  73,193,234,32                       ; shr           $0x20,%r10
8211  DB  197,225,254,192                     ; vpaddd        %xmm0,%xmm3,%xmm0
8212  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
8213  DB  65,137,222                          ; mov           %ebx,%r14d
8214  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
8215  DB  69,137,252                          ; mov           %r15d,%r12d
8216  DB  72,193,235,32                       ; shr           $0x20,%rbx
8217  DB  73,193,239,32                       ; shr           $0x20,%r15
8218  DB  196,129,121,110,4,176               ; vmovd         (%r8,%r14,4),%xmm0
8219  DB  196,195,121,34,4,152,1              ; vpinsrd       $0x1,(%r8,%rbx,4),%xmm0,%xmm0
8220  DB  196,131,121,34,4,160,2              ; vpinsrd       $0x2,(%r8,%r12,4),%xmm0,%xmm0
8221  DB  196,3,121,34,4,184,3                ; vpinsrd       $0x3,(%r8,%r15,4),%xmm0,%xmm8
8222  DB  196,129,121,110,4,136               ; vmovd         (%r8,%r9,4),%xmm0
8223  DB  196,195,121,34,4,128,1              ; vpinsrd       $0x1,(%r8,%rax,4),%xmm0,%xmm0
8224  DB  196,131,121,34,4,152,2              ; vpinsrd       $0x2,(%r8,%r11,4),%xmm0,%xmm0
8225  DB  196,131,121,34,28,144,3             ; vpinsrd       $0x3,(%r8,%r10,4),%xmm0,%xmm3
8226  DB  196,227,61,24,195,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm0
8227  DB  184,255,0,0,0                       ; mov           $0xff,%eax
8228  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
8229  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
8230  DB  196,99,117,24,217,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm11
8231  DB  197,164,84,192                      ; vandps        %ymm0,%ymm11,%ymm0
8232  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
8233  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
8234  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
8235  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
8236  DB  196,99,117,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm9
8237  DB  196,193,124,89,193                  ; vmulps        %ymm9,%ymm0,%ymm0
8238  DB  196,193,41,114,208,8                ; vpsrld        $0x8,%xmm8,%xmm10
8239  DB  197,241,114,211,8                   ; vpsrld        $0x8,%xmm3,%xmm1
8240  DB  196,227,45,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm10,%ymm1
8241  DB  197,164,84,201                      ; vandps        %ymm1,%ymm11,%ymm1
8242  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
8243  DB  196,193,116,89,201                  ; vmulps        %ymm9,%ymm1,%ymm1
8244  DB  196,193,41,114,208,16               ; vpsrld        $0x10,%xmm8,%xmm10
8245  DB  197,233,114,211,16                  ; vpsrld        $0x10,%xmm3,%xmm2
8246  DB  196,227,45,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm10,%ymm2
8247  DB  197,164,84,210                      ; vandps        %ymm2,%ymm11,%ymm2
8248  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
8249  DB  196,193,108,89,209                  ; vmulps        %ymm9,%ymm2,%ymm2
8250  DB  196,193,57,114,208,24               ; vpsrld        $0x18,%xmm8,%xmm8
8251  DB  197,225,114,211,24                  ; vpsrld        $0x18,%xmm3,%xmm3
8252  DB  196,227,61,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm8,%ymm3
8253  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
8254  DB  196,193,100,89,217                  ; vmulps        %ymm9,%ymm3,%ymm3
8255  DB  72,173                              ; lods          %ds:(%rsi),%rax
8256  DB  91                                  ; pop           %rbx
8257  DB  65,92                               ; pop           %r12
8258  DB  65,94                               ; pop           %r14
8259  DB  65,95                               ; pop           %r15
8260  DB  255,224                             ; jmpq          *%rax
8261
8262PUBLIC _sk_store_8888_avx
8263_sk_store_8888_avx LABEL PROC
8264  DB  72,173                              ; lods          %ds:(%rsi),%rax
8265  DB  76,139,8                            ; mov           (%rax),%r9
8266  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
8267  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
8268  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
8269  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
8270  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
8271  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
8272  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
8273  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
8274  DB  196,193,33,114,242,8                ; vpslld        $0x8,%xmm10,%xmm11
8275  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
8276  DB  196,193,41,114,242,8                ; vpslld        $0x8,%xmm10,%xmm10
8277  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
8278  DB  196,65,45,86,201                    ; vorpd         %ymm9,%ymm10,%ymm9
8279  DB  197,60,89,210                       ; vmulps        %ymm2,%ymm8,%ymm10
8280  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
8281  DB  196,193,33,114,242,16               ; vpslld        $0x10,%xmm10,%xmm11
8282  DB  196,67,125,25,210,1                 ; vextractf128  $0x1,%ymm10,%xmm10
8283  DB  196,193,41,114,242,16               ; vpslld        $0x10,%xmm10,%xmm10
8284  DB  196,67,37,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm11,%ymm10
8285  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
8286  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
8287  DB  196,193,33,114,240,24               ; vpslld        $0x18,%xmm8,%xmm11
8288  DB  196,67,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm8
8289  DB  196,193,57,114,240,24               ; vpslld        $0x18,%xmm8,%xmm8
8290  DB  196,67,37,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm11,%ymm8
8291  DB  196,65,45,86,192                    ; vorpd         %ymm8,%ymm10,%ymm8
8292  DB  196,65,53,86,192                    ; vorpd         %ymm8,%ymm9,%ymm8
8293  DB  72,133,201                          ; test          %rcx,%rcx
8294  DB  117,10                              ; jne           427d <_sk_store_8888_avx+0xa4>
8295  DB  196,65,124,17,4,185                 ; vmovups       %ymm8,(%r9,%rdi,4)
8296  DB  72,173                              ; lods          %ds:(%rsi),%rax
8297  DB  255,224                             ; jmpq          *%rax
8298  DB  65,137,200                          ; mov           %ecx,%r8d
8299  DB  65,128,224,7                        ; and           $0x7,%r8b
8300  DB  65,254,200                          ; dec           %r8b
8301  DB  65,128,248,6                        ; cmp           $0x6,%r8b
8302  DB  119,236                             ; ja            4279 <_sk_store_8888_avx+0xa0>
8303  DB  65,15,182,192                       ; movzbl        %r8b,%eax
8304  DB  76,141,5,84,0,0,0                   ; lea           0x54(%rip),%r8        # 42ec <_sk_store_8888_avx+0x113>
8305  DB  73,99,4,128                         ; movslq        (%r8,%rax,4),%rax
8306  DB  76,1,192                            ; add           %r8,%rax
8307  DB  255,224                             ; jmpq          *%rax
8308  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
8309  DB  196,67,121,22,76,185,24,2           ; vpextrd       $0x2,%xmm9,0x18(%r9,%rdi,4)
8310  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
8311  DB  196,67,121,22,76,185,20,1           ; vpextrd       $0x1,%xmm9,0x14(%r9,%rdi,4)
8312  DB  196,67,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm9
8313  DB  196,65,122,17,76,185,16             ; vmovss        %xmm9,0x10(%r9,%rdi,4)
8314  DB  196,67,121,22,68,185,12,3           ; vpextrd       $0x3,%xmm8,0xc(%r9,%rdi,4)
8315  DB  196,67,121,22,68,185,8,2            ; vpextrd       $0x2,%xmm8,0x8(%r9,%rdi,4)
8316  DB  196,67,121,22,68,185,4,1            ; vpextrd       $0x1,%xmm8,0x4(%r9,%rdi,4)
8317  DB  196,65,121,126,4,185                ; vmovd         %xmm8,(%r9,%rdi,4)
8318  DB  235,143                             ; jmp           4279 <_sk_store_8888_avx+0xa0>
8319  DB  102,144                             ; xchg          %ax,%ax
8320  DB  246,255                             ; idiv          %bh
8321  DB  255                                 ; (bad)
8322  DB  255                                 ; (bad)
8323  DB  238                                 ; out           %al,(%dx)
8324  DB  255                                 ; (bad)
8325  DB  255                                 ; (bad)
8326  DB  255,230                             ; jmpq          *%rsi
8327  DB  255                                 ; (bad)
8328  DB  255                                 ; (bad)
8329  DB  255                                 ; (bad)
8330  DB  222,255                             ; fdivrp        %st,%st(7)
8331  DB  255                                 ; (bad)
8332  DB  255,209                             ; callq         *%rcx
8333  DB  255                                 ; (bad)
8334  DB  255                                 ; (bad)
8335  DB  255,195                             ; inc           %ebx
8336  DB  255                                 ; (bad)
8337  DB  255                                 ; (bad)
8338  DB  255                                 ; .byte         0xff
8339  DB  181,255                             ; mov           $0xff,%ch
8340  DB  255                                 ; (bad)
8341  DB  255                                 ; .byte         0xff
8342
8343PUBLIC _sk_load_f16_avx
8344_sk_load_f16_avx LABEL PROC
8345  DB  72,131,236,120                      ; sub           $0x78,%rsp
8346  DB  72,173                              ; lods          %ds:(%rsi),%rax
8347  DB  72,139,0                            ; mov           (%rax),%rax
8348  DB  72,133,201                          ; test          %rcx,%rcx
8349  DB  197,252,17,124,36,64                ; vmovups       %ymm7,0x40(%rsp)
8350  DB  197,252,17,116,36,32                ; vmovups       %ymm6,0x20(%rsp)
8351  DB  197,252,17,44,36                    ; vmovups       %ymm5,(%rsp)
8352  DB  15,133,49,2,0,0                     ; jne           455c <_sk_load_f16_avx+0x254>
8353  DB  197,121,16,4,248                    ; vmovupd       (%rax,%rdi,8),%xmm8
8354  DB  197,249,16,84,248,16                ; vmovupd       0x10(%rax,%rdi,8),%xmm2
8355  DB  197,249,16,76,248,32                ; vmovupd       0x20(%rax,%rdi,8),%xmm1
8356  DB  197,122,111,76,248,48               ; vmovdqu       0x30(%rax,%rdi,8),%xmm9
8357  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
8358  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
8359  DB  196,193,113,97,217                  ; vpunpcklwd    %xmm9,%xmm1,%xmm3
8360  DB  196,193,113,105,201                 ; vpunpckhwd    %xmm9,%xmm1,%xmm1
8361  DB  197,121,97,242                      ; vpunpcklwd    %xmm2,%xmm0,%xmm14
8362  DB  197,121,105,194                     ; vpunpckhwd    %xmm2,%xmm0,%xmm8
8363  DB  197,97,97,249                       ; vpunpcklwd    %xmm1,%xmm3,%xmm15
8364  DB  197,97,105,217                      ; vpunpckhwd    %xmm1,%xmm3,%xmm11
8365  DB  196,193,9,108,199                   ; vpunpcklqdq   %xmm15,%xmm14,%xmm0
8366  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
8367  DB  196,193,121,105,201                 ; vpunpckhwd    %xmm9,%xmm0,%xmm1
8368  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
8369  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
8370  DB  184,0,128,0,0                       ; mov           $0x8000,%eax
8371  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
8372  DB  197,249,112,201,0                   ; vpshufd       $0x0,%xmm1,%xmm1
8373  DB  196,99,117,24,209,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm10
8374  DB  196,193,124,84,202                  ; vandps        %ymm10,%ymm0,%ymm1
8375  DB  197,252,87,193                      ; vxorps        %ymm1,%ymm0,%ymm0
8376  DB  184,0,4,0,0                         ; mov           $0x400,%eax
8377  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
8378  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
8379  DB  197,121,112,226,0                   ; vpshufd       $0x0,%xmm2,%xmm12
8380  DB  197,153,102,211                     ; vpcmpgtd      %xmm3,%xmm12,%xmm2
8381  DB  197,25,102,232                      ; vpcmpgtd      %xmm0,%xmm12,%xmm13
8382  DB  196,227,21,24,242,1                 ; vinsertf128   $0x1,%xmm2,%ymm13,%ymm6
8383  DB  196,227,125,25,202,1                ; vextractf128  $0x1,%ymm1,%xmm2
8384  DB  197,145,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm13
8385  DB  197,233,114,243,13                  ; vpslld        $0xd,%xmm3,%xmm2
8386  DB  184,0,0,0,56                        ; mov           $0x38000000,%eax
8387  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
8388  DB  197,249,112,235,0                   ; vpshufd       $0x0,%xmm3,%xmm5
8389  DB  197,145,254,253                     ; vpaddd        %xmm5,%xmm13,%xmm7
8390  DB  197,193,254,210                     ; vpaddd        %xmm2,%xmm7,%xmm2
8391  DB  197,241,114,241,16                  ; vpslld        $0x10,%xmm1,%xmm1
8392  DB  197,249,114,240,13                  ; vpslld        $0xd,%xmm0,%xmm0
8393  DB  197,241,254,205                     ; vpaddd        %xmm5,%xmm1,%xmm1
8394  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
8395  DB  196,227,125,24,194,1                ; vinsertf128   $0x1,%xmm2,%ymm0,%ymm0
8396  DB  196,65,20,87,237                    ; vxorps        %ymm13,%ymm13,%ymm13
8397  DB  196,195,125,74,197,96               ; vblendvps     %ymm6,%ymm13,%ymm0,%ymm0
8398  DB  196,193,9,109,207                   ; vpunpckhqdq   %xmm15,%xmm14,%xmm1
8399  DB  196,193,113,105,209                 ; vpunpckhwd    %xmm9,%xmm1,%xmm2
8400  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
8401  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8402  DB  196,193,116,84,210                  ; vandps        %ymm10,%ymm1,%ymm2
8403  DB  197,244,87,202                      ; vxorps        %ymm2,%ymm1,%ymm1
8404  DB  196,227,125,25,206,1                ; vextractf128  $0x1,%ymm1,%xmm6
8405  DB  197,153,102,254                     ; vpcmpgtd      %xmm6,%xmm12,%xmm7
8406  DB  197,25,102,241                      ; vpcmpgtd      %xmm1,%xmm12,%xmm14
8407  DB  196,99,13,24,247,1                  ; vinsertf128   $0x1,%xmm7,%ymm14,%ymm14
8408  DB  196,227,125,25,215,1                ; vextractf128  $0x1,%ymm2,%xmm7
8409  DB  197,193,114,247,16                  ; vpslld        $0x10,%xmm7,%xmm7
8410  DB  197,201,114,246,13                  ; vpslld        $0xd,%xmm6,%xmm6
8411  DB  197,193,254,253                     ; vpaddd        %xmm5,%xmm7,%xmm7
8412  DB  197,193,254,246                     ; vpaddd        %xmm6,%xmm7,%xmm6
8413  DB  197,233,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm2
8414  DB  197,241,114,241,13                  ; vpslld        $0xd,%xmm1,%xmm1
8415  DB  197,233,254,213                     ; vpaddd        %xmm5,%xmm2,%xmm2
8416  DB  197,233,254,201                     ; vpaddd        %xmm1,%xmm2,%xmm1
8417  DB  196,227,117,24,206,1                ; vinsertf128   $0x1,%xmm6,%ymm1,%ymm1
8418  DB  196,195,117,74,205,224              ; vblendvps     %ymm14,%ymm13,%ymm1,%ymm1
8419  DB  196,193,57,108,211                  ; vpunpcklqdq   %xmm11,%xmm8,%xmm2
8420  DB  196,193,105,105,241                 ; vpunpckhwd    %xmm9,%xmm2,%xmm6
8421  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
8422  DB  196,227,109,24,214,1                ; vinsertf128   $0x1,%xmm6,%ymm2,%ymm2
8423  DB  196,193,108,84,242                  ; vandps        %ymm10,%ymm2,%ymm6
8424  DB  197,236,87,214                      ; vxorps        %ymm6,%ymm2,%ymm2
8425  DB  196,195,125,25,214,1                ; vextractf128  $0x1,%ymm2,%xmm14
8426  DB  196,193,25,102,254                  ; vpcmpgtd      %xmm14,%xmm12,%xmm7
8427  DB  197,25,102,250                      ; vpcmpgtd      %xmm2,%xmm12,%xmm15
8428  DB  196,99,5,24,255,1                   ; vinsertf128   $0x1,%xmm7,%ymm15,%ymm15
8429  DB  196,227,125,25,247,1                ; vextractf128  $0x1,%ymm6,%xmm7
8430  DB  197,193,114,247,16                  ; vpslld        $0x10,%xmm7,%xmm7
8431  DB  196,193,9,114,246,13                ; vpslld        $0xd,%xmm14,%xmm14
8432  DB  197,193,254,253                     ; vpaddd        %xmm5,%xmm7,%xmm7
8433  DB  196,193,65,254,254                  ; vpaddd        %xmm14,%xmm7,%xmm7
8434  DB  197,201,114,246,16                  ; vpslld        $0x10,%xmm6,%xmm6
8435  DB  197,233,114,242,13                  ; vpslld        $0xd,%xmm2,%xmm2
8436  DB  197,201,254,245                     ; vpaddd        %xmm5,%xmm6,%xmm6
8437  DB  197,201,254,210                     ; vpaddd        %xmm2,%xmm6,%xmm2
8438  DB  196,227,109,24,215,1                ; vinsertf128   $0x1,%xmm7,%ymm2,%ymm2
8439  DB  196,195,109,74,213,240              ; vblendvps     %ymm15,%ymm13,%ymm2,%ymm2
8440  DB  196,193,57,109,243                  ; vpunpckhqdq   %xmm11,%xmm8,%xmm6
8441  DB  196,193,73,105,249                  ; vpunpckhwd    %xmm9,%xmm6,%xmm7
8442  DB  196,226,121,51,246                  ; vpmovzxwd     %xmm6,%xmm6
8443  DB  196,227,77,24,247,1                 ; vinsertf128   $0x1,%xmm7,%ymm6,%ymm6
8444  DB  196,193,76,84,250                   ; vandps        %ymm10,%ymm6,%ymm7
8445  DB  197,204,87,247                      ; vxorps        %ymm7,%ymm6,%ymm6
8446  DB  196,195,125,25,240,1                ; vextractf128  $0x1,%ymm6,%xmm8
8447  DB  196,65,25,102,200                   ; vpcmpgtd      %xmm8,%xmm12,%xmm9
8448  DB  197,25,102,214                      ; vpcmpgtd      %xmm6,%xmm12,%xmm10
8449  DB  196,67,45,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm9
8450  DB  196,227,125,25,251,1                ; vextractf128  $0x1,%ymm7,%xmm3
8451  DB  197,225,114,243,16                  ; vpslld        $0x10,%xmm3,%xmm3
8452  DB  197,193,114,247,16                  ; vpslld        $0x10,%xmm7,%xmm7
8453  DB  197,193,254,253                     ; vpaddd        %xmm5,%xmm7,%xmm7
8454  DB  197,225,254,221                     ; vpaddd        %xmm5,%xmm3,%xmm3
8455  DB  196,193,81,114,240,13               ; vpslld        $0xd,%xmm8,%xmm5
8456  DB  197,225,254,221                     ; vpaddd        %xmm5,%xmm3,%xmm3
8457  DB  197,209,114,246,13                  ; vpslld        $0xd,%xmm6,%xmm5
8458  DB  197,193,254,237                     ; vpaddd        %xmm5,%xmm7,%xmm5
8459  DB  196,227,85,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm5,%ymm3
8460  DB  196,195,101,74,221,144              ; vblendvps     %ymm9,%ymm13,%ymm3,%ymm3
8461  DB  72,173                              ; lods          %ds:(%rsi),%rax
8462  DB  197,252,16,44,36                    ; vmovups       (%rsp),%ymm5
8463  DB  197,252,16,116,36,32                ; vmovups       0x20(%rsp),%ymm6
8464  DB  197,252,16,124,36,64                ; vmovups       0x40(%rsp),%ymm7
8465  DB  72,131,196,120                      ; add           $0x78,%rsp
8466  DB  255,224                             ; jmpq          *%rax
8467  DB  197,123,16,4,248                    ; vmovsd        (%rax,%rdi,8),%xmm8
8468  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
8469  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8470  DB  116,79                              ; je            45bb <_sk_load_f16_avx+0x2b3>
8471  DB  197,57,22,68,248,8                  ; vmovhpd       0x8(%rax,%rdi,8),%xmm8,%xmm8
8472  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8473  DB  114,67                              ; jb            45bb <_sk_load_f16_avx+0x2b3>
8474  DB  197,251,16,84,248,16                ; vmovsd        0x10(%rax,%rdi,8),%xmm2
8475  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8476  DB  116,68                              ; je            45c8 <_sk_load_f16_avx+0x2c0>
8477  DB  197,233,22,84,248,24                ; vmovhpd       0x18(%rax,%rdi,8),%xmm2,%xmm2
8478  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8479  DB  114,56                              ; jb            45c8 <_sk_load_f16_avx+0x2c0>
8480  DB  197,251,16,76,248,32                ; vmovsd        0x20(%rax,%rdi,8),%xmm1
8481  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8482  DB  15,132,162,253,255,255              ; je            4342 <_sk_load_f16_avx+0x3a>
8483  DB  197,241,22,76,248,40                ; vmovhpd       0x28(%rax,%rdi,8),%xmm1,%xmm1
8484  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8485  DB  15,130,146,253,255,255              ; jb            4342 <_sk_load_f16_avx+0x3a>
8486  DB  197,122,126,76,248,48               ; vmovq         0x30(%rax,%rdi,8),%xmm9
8487  DB  233,135,253,255,255                 ; jmpq          4342 <_sk_load_f16_avx+0x3a>
8488  DB  197,241,87,201                      ; vxorpd        %xmm1,%xmm1,%xmm1
8489  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
8490  DB  233,122,253,255,255                 ; jmpq          4342 <_sk_load_f16_avx+0x3a>
8491  DB  197,241,87,201                      ; vxorpd        %xmm1,%xmm1,%xmm1
8492  DB  233,113,253,255,255                 ; jmpq          4342 <_sk_load_f16_avx+0x3a>
8493
8494PUBLIC _sk_gather_f16_avx
8495_sk_gather_f16_avx LABEL PROC
8496  DB  65,87                               ; push          %r15
8497  DB  65,86                               ; push          %r14
8498  DB  65,84                               ; push          %r12
8499  DB  83                                  ; push          %rbx
8500  DB  72,129,236,152,0,0,0                ; sub           $0x98,%rsp
8501  DB  197,252,17,124,36,96                ; vmovups       %ymm7,0x60(%rsp)
8502  DB  197,252,17,116,36,64                ; vmovups       %ymm6,0x40(%rsp)
8503  DB  197,252,17,108,36,32                ; vmovups       %ymm5,0x20(%rsp)
8504  DB  197,252,17,36,36                    ; vmovups       %ymm4,(%rsp)
8505  DB  72,173                              ; lods          %ds:(%rsi),%rax
8506  DB  76,139,0                            ; mov           (%rax),%r8
8507  DB  197,254,91,209                      ; vcvttps2dq    %ymm1,%ymm2
8508  DB  197,249,110,72,16                   ; vmovd         0x10(%rax),%xmm1
8509  DB  197,249,112,217,0                   ; vpshufd       $0x0,%xmm1,%xmm3
8510  DB  196,226,97,64,202                   ; vpmulld       %xmm2,%xmm3,%xmm1
8511  DB  196,227,125,25,210,1                ; vextractf128  $0x1,%ymm2,%xmm2
8512  DB  196,226,97,64,210                   ; vpmulld       %xmm2,%xmm3,%xmm2
8513  DB  197,254,91,192                      ; vcvttps2dq    %ymm0,%ymm0
8514  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
8515  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
8516  DB  196,227,249,22,208,1                ; vpextrq       $0x1,%xmm2,%rax
8517  DB  65,137,193                          ; mov           %eax,%r9d
8518  DB  72,193,232,32                       ; shr           $0x20,%rax
8519  DB  196,193,249,126,210                 ; vmovq         %xmm2,%r10
8520  DB  69,137,211                          ; mov           %r10d,%r11d
8521  DB  73,193,234,32                       ; shr           $0x20,%r10
8522  DB  197,241,254,192                     ; vpaddd        %xmm0,%xmm1,%xmm0
8523  DB  196,225,249,126,195                 ; vmovq         %xmm0,%rbx
8524  DB  65,137,222                          ; mov           %ebx,%r14d
8525  DB  196,195,249,22,199,1                ; vpextrq       $0x1,%xmm0,%r15
8526  DB  69,137,252                          ; mov           %r15d,%r12d
8527  DB  73,193,239,32                       ; shr           $0x20,%r15
8528  DB  72,193,235,32                       ; shr           $0x20,%rbx
8529  DB  196,193,122,126,4,216               ; vmovq         (%r8,%rbx,8),%xmm0
8530  DB  196,129,122,126,12,240              ; vmovq         (%r8,%r14,8),%xmm1
8531  DB  197,113,108,200                     ; vpunpcklqdq   %xmm0,%xmm1,%xmm9
8532  DB  196,129,122,126,12,248              ; vmovq         (%r8,%r15,8),%xmm1
8533  DB  196,129,122,126,20,224              ; vmovq         (%r8,%r12,8),%xmm2
8534  DB  197,233,108,201                     ; vpunpcklqdq   %xmm1,%xmm2,%xmm1
8535  DB  196,129,122,126,20,208              ; vmovq         (%r8,%r10,8),%xmm2
8536  DB  196,129,122,126,28,216              ; vmovq         (%r8,%r11,8),%xmm3
8537  DB  197,97,108,210                      ; vpunpcklqdq   %xmm2,%xmm3,%xmm10
8538  DB  196,65,122,126,4,192                ; vmovq         (%r8,%rax,8),%xmm8
8539  DB  196,129,122,126,28,200              ; vmovq         (%r8,%r9,8),%xmm3
8540  DB  196,193,97,108,216                  ; vpunpcklqdq   %xmm8,%xmm3,%xmm3
8541  DB  197,177,97,193                      ; vpunpcklwd    %xmm1,%xmm9,%xmm0
8542  DB  197,177,105,201                     ; vpunpckhwd    %xmm1,%xmm9,%xmm1
8543  DB  197,169,97,211                      ; vpunpcklwd    %xmm3,%xmm10,%xmm2
8544  DB  197,169,105,219                     ; vpunpckhwd    %xmm3,%xmm10,%xmm3
8545  DB  197,121,97,241                      ; vpunpcklwd    %xmm1,%xmm0,%xmm14
8546  DB  197,121,105,193                     ; vpunpckhwd    %xmm1,%xmm0,%xmm8
8547  DB  197,105,97,251                      ; vpunpcklwd    %xmm3,%xmm2,%xmm15
8548  DB  197,105,105,219                     ; vpunpckhwd    %xmm3,%xmm2,%xmm11
8549  DB  196,193,9,108,199                   ; vpunpcklqdq   %xmm15,%xmm14,%xmm0
8550  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
8551  DB  196,193,121,105,209                 ; vpunpckhwd    %xmm9,%xmm0,%xmm2
8552  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
8553  DB  196,227,125,24,194,1                ; vinsertf128   $0x1,%xmm2,%ymm0,%ymm0
8554  DB  184,0,128,0,0                       ; mov           $0x8000,%eax
8555  DB  197,249,110,208                     ; vmovd         %eax,%xmm2
8556  DB  197,249,112,210,0                   ; vpshufd       $0x0,%xmm2,%xmm2
8557  DB  196,99,109,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm2,%ymm10
8558  DB  196,193,124,84,210                  ; vandps        %ymm10,%ymm0,%ymm2
8559  DB  197,252,87,194                      ; vxorps        %ymm2,%ymm0,%ymm0
8560  DB  184,0,4,0,0                         ; mov           $0x400,%eax
8561  DB  196,227,125,25,195,1                ; vextractf128  $0x1,%ymm0,%xmm3
8562  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
8563  DB  197,121,112,225,0                   ; vpshufd       $0x0,%xmm1,%xmm12
8564  DB  197,153,102,203                     ; vpcmpgtd      %xmm3,%xmm12,%xmm1
8565  DB  197,25,102,232                      ; vpcmpgtd      %xmm0,%xmm12,%xmm13
8566  DB  196,227,21,24,225,1                 ; vinsertf128   $0x1,%xmm1,%ymm13,%ymm4
8567  DB  196,227,125,25,209,1                ; vextractf128  $0x1,%ymm2,%xmm1
8568  DB  197,145,114,241,16                  ; vpslld        $0x10,%xmm1,%xmm13
8569  DB  197,241,114,243,13                  ; vpslld        $0xd,%xmm3,%xmm1
8570  DB  184,0,0,0,56                        ; mov           $0x38000000,%eax
8571  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
8572  DB  197,249,112,219,0                   ; vpshufd       $0x0,%xmm3,%xmm3
8573  DB  197,145,254,251                     ; vpaddd        %xmm3,%xmm13,%xmm7
8574  DB  197,193,254,201                     ; vpaddd        %xmm1,%xmm7,%xmm1
8575  DB  197,233,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm2
8576  DB  197,249,114,240,13                  ; vpslld        $0xd,%xmm0,%xmm0
8577  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
8578  DB  197,233,254,192                     ; vpaddd        %xmm0,%xmm2,%xmm0
8579  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
8580  DB  196,65,20,87,237                    ; vxorps        %ymm13,%ymm13,%ymm13
8581  DB  196,195,125,74,197,64               ; vblendvps     %ymm4,%ymm13,%ymm0,%ymm0
8582  DB  196,193,9,109,207                   ; vpunpckhqdq   %xmm15,%xmm14,%xmm1
8583  DB  196,193,113,105,209                 ; vpunpckhwd    %xmm9,%xmm1,%xmm2
8584  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
8585  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8586  DB  196,193,116,84,210                  ; vandps        %ymm10,%ymm1,%ymm2
8587  DB  197,244,87,202                      ; vxorps        %ymm2,%ymm1,%ymm1
8588  DB  196,227,125,25,204,1                ; vextractf128  $0x1,%ymm1,%xmm4
8589  DB  197,153,102,252                     ; vpcmpgtd      %xmm4,%xmm12,%xmm7
8590  DB  197,25,102,241                      ; vpcmpgtd      %xmm1,%xmm12,%xmm14
8591  DB  196,227,13,24,255,1                 ; vinsertf128   $0x1,%xmm7,%ymm14,%ymm7
8592  DB  196,227,125,25,214,1                ; vextractf128  $0x1,%ymm2,%xmm6
8593  DB  197,201,114,246,16                  ; vpslld        $0x10,%xmm6,%xmm6
8594  DB  197,217,114,244,13                  ; vpslld        $0xd,%xmm4,%xmm4
8595  DB  197,201,254,243                     ; vpaddd        %xmm3,%xmm6,%xmm6
8596  DB  197,201,254,228                     ; vpaddd        %xmm4,%xmm6,%xmm4
8597  DB  197,233,114,242,16                  ; vpslld        $0x10,%xmm2,%xmm2
8598  DB  197,241,114,241,13                  ; vpslld        $0xd,%xmm1,%xmm1
8599  DB  197,233,254,211                     ; vpaddd        %xmm3,%xmm2,%xmm2
8600  DB  197,233,254,201                     ; vpaddd        %xmm1,%xmm2,%xmm1
8601  DB  196,227,117,24,204,1                ; vinsertf128   $0x1,%xmm4,%ymm1,%ymm1
8602  DB  196,195,117,74,205,112              ; vblendvps     %ymm7,%ymm13,%ymm1,%ymm1
8603  DB  196,193,57,108,211                  ; vpunpcklqdq   %xmm11,%xmm8,%xmm2
8604  DB  196,193,105,105,225                 ; vpunpckhwd    %xmm9,%xmm2,%xmm4
8605  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
8606  DB  196,227,109,24,212,1                ; vinsertf128   $0x1,%xmm4,%ymm2,%ymm2
8607  DB  196,193,108,84,226                  ; vandps        %ymm10,%ymm2,%ymm4
8608  DB  197,236,87,212                      ; vxorps        %ymm4,%ymm2,%ymm2
8609  DB  196,227,125,25,214,1                ; vextractf128  $0x1,%ymm2,%xmm6
8610  DB  197,153,102,254                     ; vpcmpgtd      %xmm6,%xmm12,%xmm7
8611  DB  197,25,102,242                      ; vpcmpgtd      %xmm2,%xmm12,%xmm14
8612  DB  196,227,13,24,255,1                 ; vinsertf128   $0x1,%xmm7,%ymm14,%ymm7
8613  DB  196,227,125,25,229,1                ; vextractf128  $0x1,%ymm4,%xmm5
8614  DB  197,209,114,245,16                  ; vpslld        $0x10,%xmm5,%xmm5
8615  DB  197,201,114,246,13                  ; vpslld        $0xd,%xmm6,%xmm6
8616  DB  197,209,254,235                     ; vpaddd        %xmm3,%xmm5,%xmm5
8617  DB  197,209,254,238                     ; vpaddd        %xmm6,%xmm5,%xmm5
8618  DB  197,217,114,244,16                  ; vpslld        $0x10,%xmm4,%xmm4
8619  DB  197,233,114,242,13                  ; vpslld        $0xd,%xmm2,%xmm2
8620  DB  197,217,254,227                     ; vpaddd        %xmm3,%xmm4,%xmm4
8621  DB  197,217,254,210                     ; vpaddd        %xmm2,%xmm4,%xmm2
8622  DB  196,227,109,24,213,1                ; vinsertf128   $0x1,%xmm5,%ymm2,%ymm2
8623  DB  196,195,109,74,213,112              ; vblendvps     %ymm7,%ymm13,%ymm2,%ymm2
8624  DB  196,193,57,109,227                  ; vpunpckhqdq   %xmm11,%xmm8,%xmm4
8625  DB  196,193,89,105,233                  ; vpunpckhwd    %xmm9,%xmm4,%xmm5
8626  DB  196,226,121,51,228                  ; vpmovzxwd     %xmm4,%xmm4
8627  DB  196,227,93,24,229,1                 ; vinsertf128   $0x1,%xmm5,%ymm4,%ymm4
8628  DB  196,193,92,84,234                   ; vandps        %ymm10,%ymm4,%ymm5
8629  DB  197,220,87,229                      ; vxorps        %ymm5,%ymm4,%ymm4
8630  DB  196,227,125,25,230,1                ; vextractf128  $0x1,%ymm4,%xmm6
8631  DB  197,153,102,254                     ; vpcmpgtd      %xmm6,%xmm12,%xmm7
8632  DB  197,25,102,196                      ; vpcmpgtd      %xmm4,%xmm12,%xmm8
8633  DB  196,99,61,24,199,1                  ; vinsertf128   $0x1,%xmm7,%ymm8,%ymm8
8634  DB  196,227,125,25,239,1                ; vextractf128  $0x1,%ymm5,%xmm7
8635  DB  197,193,114,247,16                  ; vpslld        $0x10,%xmm7,%xmm7
8636  DB  197,209,114,245,16                  ; vpslld        $0x10,%xmm5,%xmm5
8637  DB  197,209,254,235                     ; vpaddd        %xmm3,%xmm5,%xmm5
8638  DB  197,193,254,219                     ; vpaddd        %xmm3,%xmm7,%xmm3
8639  DB  197,201,114,246,13                  ; vpslld        $0xd,%xmm6,%xmm6
8640  DB  197,225,254,222                     ; vpaddd        %xmm6,%xmm3,%xmm3
8641  DB  197,217,114,244,13                  ; vpslld        $0xd,%xmm4,%xmm4
8642  DB  197,209,254,228                     ; vpaddd        %xmm4,%xmm5,%xmm4
8643  DB  196,227,93,24,219,1                 ; vinsertf128   $0x1,%xmm3,%ymm4,%ymm3
8644  DB  196,195,101,74,221,128              ; vblendvps     %ymm8,%ymm13,%ymm3,%ymm3
8645  DB  72,173                              ; lods          %ds:(%rsi),%rax
8646  DB  197,252,16,36,36                    ; vmovups       (%rsp),%ymm4
8647  DB  197,252,16,108,36,32                ; vmovups       0x20(%rsp),%ymm5
8648  DB  197,252,16,116,36,64                ; vmovups       0x40(%rsp),%ymm6
8649  DB  197,252,16,124,36,96                ; vmovups       0x60(%rsp),%ymm7
8650  DB  72,129,196,152,0,0,0                ; add           $0x98,%rsp
8651  DB  91                                  ; pop           %rbx
8652  DB  65,92                               ; pop           %r12
8653  DB  65,94                               ; pop           %r14
8654  DB  65,95                               ; pop           %r15
8655  DB  255,224                             ; jmpq          *%rax
8656
8657PUBLIC _sk_store_f16_avx
8658_sk_store_f16_avx LABEL PROC
8659  DB  72,129,236,216,0,0,0                ; sub           $0xd8,%rsp
8660  DB  197,252,17,188,36,160,0,0,0         ; vmovups       %ymm7,0xa0(%rsp)
8661  DB  197,252,17,180,36,128,0,0,0         ; vmovups       %ymm6,0x80(%rsp)
8662  DB  197,252,17,108,36,96                ; vmovups       %ymm5,0x60(%rsp)
8663  DB  197,252,17,100,36,64                ; vmovups       %ymm4,0x40(%rsp)
8664  DB  197,252,40,225                      ; vmovaps       %ymm1,%ymm4
8665  DB  72,173                              ; lods          %ds:(%rsi),%rax
8666  DB  76,139,0                            ; mov           (%rax),%r8
8667  DB  184,0,0,0,128                       ; mov           $0x80000000,%eax
8668  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
8669  DB  196,65,121,112,192,0                ; vpshufd       $0x0,%xmm8,%xmm8
8670  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
8671  DB  197,60,84,208                       ; vandps        %ymm0,%ymm8,%ymm10
8672  DB  196,65,124,87,218                   ; vxorps        %ymm10,%ymm0,%ymm11
8673  DB  184,0,0,128,56                      ; mov           $0x38800000,%eax
8674  DB  196,67,125,25,220,1                 ; vextractf128  $0x1,%ymm11,%xmm12
8675  DB  197,121,110,200                     ; vmovd         %eax,%xmm9
8676  DB  196,65,121,112,201,0                ; vpshufd       $0x0,%xmm9,%xmm9
8677  DB  196,65,49,102,236                   ; vpcmpgtd      %xmm12,%xmm9,%xmm13
8678  DB  196,65,49,102,243                   ; vpcmpgtd      %xmm11,%xmm9,%xmm14
8679  DB  196,67,13,24,237,1                  ; vinsertf128   $0x1,%xmm13,%ymm14,%ymm13
8680  DB  196,67,125,25,214,1                 ; vextractf128  $0x1,%ymm10,%xmm14
8681  DB  196,193,9,114,214,16                ; vpsrld        $0x10,%xmm14,%xmm14
8682  DB  196,193,1,114,210,16                ; vpsrld        $0x10,%xmm10,%xmm15
8683  DB  196,193,33,114,211,13               ; vpsrld        $0xd,%xmm11,%xmm11
8684  DB  196,193,25,114,212,13               ; vpsrld        $0xd,%xmm12,%xmm12
8685  DB  184,0,192,1,0                       ; mov           $0x1c000,%eax
8686  DB  197,121,110,208                     ; vmovd         %eax,%xmm10
8687  DB  196,65,121,112,210,0                ; vpshufd       $0x0,%xmm10,%xmm10
8688  DB  196,65,1,250,250                    ; vpsubd        %xmm10,%xmm15,%xmm15
8689  DB  196,65,9,250,242                    ; vpsubd        %xmm10,%xmm14,%xmm14
8690  DB  196,65,9,254,228                    ; vpaddd        %xmm12,%xmm14,%xmm12
8691  DB  196,65,1,254,219                    ; vpaddd        %xmm11,%xmm15,%xmm11
8692  DB  196,67,37,24,228,1                  ; vinsertf128   $0x1,%xmm12,%ymm11,%ymm12
8693  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
8694  DB  196,99,29,74,225,208                ; vblendvps     %ymm13,%ymm1,%ymm12,%ymm12
8695  DB  197,60,84,236                       ; vandps        %ymm4,%ymm8,%ymm13
8696  DB  197,252,17,36,36                    ; vmovups       %ymm4,(%rsp)
8697  DB  196,65,92,87,245                    ; vxorps        %ymm13,%ymm4,%ymm14
8698  DB  196,67,125,25,247,1                 ; vextractf128  $0x1,%ymm14,%xmm15
8699  DB  196,193,49,102,255                  ; vpcmpgtd      %xmm15,%xmm9,%xmm7
8700  DB  196,65,49,102,222                   ; vpcmpgtd      %xmm14,%xmm9,%xmm11
8701  DB  196,99,37,24,223,1                  ; vinsertf128   $0x1,%xmm7,%ymm11,%ymm11
8702  DB  196,99,125,25,238,1                 ; vextractf128  $0x1,%ymm13,%xmm6
8703  DB  197,201,114,214,16                  ; vpsrld        $0x10,%xmm6,%xmm6
8704  DB  196,193,65,114,215,13               ; vpsrld        $0xd,%xmm15,%xmm7
8705  DB  196,193,73,250,242                  ; vpsubd        %xmm10,%xmm6,%xmm6
8706  DB  197,73,254,255                      ; vpaddd        %xmm7,%xmm6,%xmm15
8707  DB  196,193,65,114,213,16               ; vpsrld        $0x10,%xmm13,%xmm7
8708  DB  196,193,73,114,214,13               ; vpsrld        $0xd,%xmm14,%xmm6
8709  DB  196,193,65,250,250                  ; vpsubd        %xmm10,%xmm7,%xmm7
8710  DB  197,193,254,246                     ; vpaddd        %xmm6,%xmm7,%xmm6
8711  DB  196,195,77,24,247,1                 ; vinsertf128   $0x1,%xmm15,%ymm6,%ymm6
8712  DB  196,99,77,74,233,176                ; vblendvps     %ymm11,%ymm1,%ymm6,%ymm13
8713  DB  197,188,84,242                      ; vandps        %ymm2,%ymm8,%ymm6
8714  DB  197,252,17,84,36,32                 ; vmovups       %ymm2,0x20(%rsp)
8715  DB  197,236,87,254                      ; vxorps        %ymm6,%ymm2,%ymm7
8716  DB  196,195,125,25,251,1                ; vextractf128  $0x1,%ymm7,%xmm11
8717  DB  196,65,49,102,243                   ; vpcmpgtd      %xmm11,%xmm9,%xmm14
8718  DB  197,49,102,255                      ; vpcmpgtd      %xmm7,%xmm9,%xmm15
8719  DB  196,67,5,24,246,1                   ; vinsertf128   $0x1,%xmm14,%ymm15,%ymm14
8720  DB  196,227,125,25,245,1                ; vextractf128  $0x1,%ymm6,%xmm5
8721  DB  197,129,114,213,16                  ; vpsrld        $0x10,%xmm5,%xmm15
8722  DB  196,193,81,114,211,13               ; vpsrld        $0xd,%xmm11,%xmm5
8723  DB  196,193,1,250,226                   ; vpsubd        %xmm10,%xmm15,%xmm4
8724  DB  197,217,254,229                     ; vpaddd        %xmm5,%xmm4,%xmm4
8725  DB  197,209,114,214,16                  ; vpsrld        $0x10,%xmm6,%xmm5
8726  DB  197,201,114,215,13                  ; vpsrld        $0xd,%xmm7,%xmm6
8727  DB  196,193,81,250,234                  ; vpsubd        %xmm10,%xmm5,%xmm5
8728  DB  197,209,254,238                     ; vpaddd        %xmm6,%xmm5,%xmm5
8729  DB  196,227,85,24,228,1                 ; vinsertf128   $0x1,%xmm4,%ymm5,%ymm4
8730  DB  196,99,93,74,217,224                ; vblendvps     %ymm14,%ymm1,%ymm4,%ymm11
8731  DB  197,188,84,235                      ; vandps        %ymm3,%ymm8,%ymm5
8732  DB  197,228,87,245                      ; vxorps        %ymm5,%ymm3,%ymm6
8733  DB  196,227,125,25,247,1                ; vextractf128  $0x1,%ymm6,%xmm7
8734  DB  197,177,102,231                     ; vpcmpgtd      %xmm7,%xmm9,%xmm4
8735  DB  197,49,102,198                      ; vpcmpgtd      %xmm6,%xmm9,%xmm8
8736  DB  196,227,61,24,228,1                 ; vinsertf128   $0x1,%xmm4,%ymm8,%ymm4
8737  DB  196,227,125,25,234,1                ; vextractf128  $0x1,%ymm5,%xmm2
8738  DB  197,233,114,210,16                  ; vpsrld        $0x10,%xmm2,%xmm2
8739  DB  197,209,114,213,16                  ; vpsrld        $0x10,%xmm5,%xmm5
8740  DB  196,193,81,250,234                  ; vpsubd        %xmm10,%xmm5,%xmm5
8741  DB  196,193,105,250,210                 ; vpsubd        %xmm10,%xmm2,%xmm2
8742  DB  197,193,114,215,13                  ; vpsrld        $0xd,%xmm7,%xmm7
8743  DB  197,233,254,215                     ; vpaddd        %xmm7,%xmm2,%xmm2
8744  DB  197,201,114,214,13                  ; vpsrld        $0xd,%xmm6,%xmm6
8745  DB  197,209,254,238                     ; vpaddd        %xmm6,%xmm5,%xmm5
8746  DB  196,227,85,24,210,1                 ; vinsertf128   $0x1,%xmm2,%ymm5,%ymm2
8747  DB  196,227,109,74,209,64               ; vblendvps     %ymm4,%ymm1,%ymm2,%ymm2
8748  DB  196,99,125,25,225,1                 ; vextractf128  $0x1,%ymm12,%xmm1
8749  DB  196,226,25,43,201                   ; vpackusdw     %xmm1,%xmm12,%xmm1
8750  DB  196,99,125,25,236,1                 ; vextractf128  $0x1,%ymm13,%xmm4
8751  DB  196,226,17,43,228                   ; vpackusdw     %xmm4,%xmm13,%xmm4
8752  DB  196,99,125,25,221,1                 ; vextractf128  $0x1,%ymm11,%xmm5
8753  DB  196,226,33,43,237                   ; vpackusdw     %xmm5,%xmm11,%xmm5
8754  DB  196,227,125,25,214,1                ; vextractf128  $0x1,%ymm2,%xmm6
8755  DB  196,226,105,43,214                  ; vpackusdw     %xmm6,%xmm2,%xmm2
8756  DB  197,241,97,244                      ; vpunpcklwd    %xmm4,%xmm1,%xmm6
8757  DB  197,241,105,204                     ; vpunpckhwd    %xmm4,%xmm1,%xmm1
8758  DB  197,209,97,226                      ; vpunpcklwd    %xmm2,%xmm5,%xmm4
8759  DB  197,209,105,210                     ; vpunpckhwd    %xmm2,%xmm5,%xmm2
8760  DB  197,73,98,220                       ; vpunpckldq    %xmm4,%xmm6,%xmm11
8761  DB  197,73,106,212                      ; vpunpckhdq    %xmm4,%xmm6,%xmm10
8762  DB  197,113,98,202                      ; vpunpckldq    %xmm2,%xmm1,%xmm9
8763  DB  197,113,106,194                     ; vpunpckhdq    %xmm2,%xmm1,%xmm8
8764  DB  72,133,201                          ; test          %rcx,%rcx
8765  DB  117,79                              ; jne           4b32 <_sk_store_f16_avx+0x271>
8766  DB  196,65,120,17,28,248                ; vmovups       %xmm11,(%r8,%rdi,8)
8767  DB  196,65,120,17,84,248,16             ; vmovups       %xmm10,0x10(%r8,%rdi,8)
8768  DB  196,65,120,17,76,248,32             ; vmovups       %xmm9,0x20(%r8,%rdi,8)
8769  DB  196,65,122,127,68,248,48            ; vmovdqu       %xmm8,0x30(%r8,%rdi,8)
8770  DB  72,173                              ; lods          %ds:(%rsi),%rax
8771  DB  197,252,16,12,36                    ; vmovups       (%rsp),%ymm1
8772  DB  197,252,16,84,36,32                 ; vmovups       0x20(%rsp),%ymm2
8773  DB  197,252,16,100,36,64                ; vmovups       0x40(%rsp),%ymm4
8774  DB  197,252,16,108,36,96                ; vmovups       0x60(%rsp),%ymm5
8775  DB  197,252,16,180,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm6
8776  DB  197,252,16,188,36,160,0,0,0         ; vmovups       0xa0(%rsp),%ymm7
8777  DB  72,129,196,216,0,0,0                ; add           $0xd8,%rsp
8778  DB  255,224                             ; jmpq          *%rax
8779  DB  196,65,121,214,28,248               ; vmovq         %xmm11,(%r8,%rdi,8)
8780  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8781  DB  116,192                             ; je            4afe <_sk_store_f16_avx+0x23d>
8782  DB  196,65,121,23,92,248,8              ; vmovhpd       %xmm11,0x8(%r8,%rdi,8)
8783  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8784  DB  114,179                             ; jb            4afe <_sk_store_f16_avx+0x23d>
8785  DB  196,65,121,214,84,248,16            ; vmovq         %xmm10,0x10(%r8,%rdi,8)
8786  DB  116,170                             ; je            4afe <_sk_store_f16_avx+0x23d>
8787  DB  196,65,121,23,84,248,24             ; vmovhpd       %xmm10,0x18(%r8,%rdi,8)
8788  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8789  DB  114,157                             ; jb            4afe <_sk_store_f16_avx+0x23d>
8790  DB  196,65,121,214,76,248,32            ; vmovq         %xmm9,0x20(%r8,%rdi,8)
8791  DB  116,148                             ; je            4afe <_sk_store_f16_avx+0x23d>
8792  DB  196,65,121,23,76,248,40             ; vmovhpd       %xmm9,0x28(%r8,%rdi,8)
8793  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8794  DB  114,135                             ; jb            4afe <_sk_store_f16_avx+0x23d>
8795  DB  196,65,121,214,68,248,48            ; vmovq         %xmm8,0x30(%r8,%rdi,8)
8796  DB  233,123,255,255,255                 ; jmpq          4afe <_sk_store_f16_avx+0x23d>
8797
8798PUBLIC _sk_load_u16_be_avx
8799_sk_load_u16_be_avx LABEL PROC
8800  DB  72,173                              ; lods          %ds:(%rsi),%rax
8801  DB  76,139,0                            ; mov           (%rax),%r8
8802  DB  72,141,4,189,0,0,0,0                ; lea           0x0(,%rdi,4),%rax
8803  DB  72,133,201                          ; test          %rcx,%rcx
8804  DB  15,133,5,1,0,0                      ; jne           4c9e <_sk_load_u16_be_avx+0x11b>
8805  DB  196,65,121,16,4,64                  ; vmovupd       (%r8,%rax,2),%xmm8
8806  DB  196,193,121,16,84,64,16             ; vmovupd       0x10(%r8,%rax,2),%xmm2
8807  DB  196,193,121,16,92,64,32             ; vmovupd       0x20(%r8,%rax,2),%xmm3
8808  DB  196,65,122,111,76,64,48             ; vmovdqu       0x30(%r8,%rax,2),%xmm9
8809  DB  197,185,97,194                      ; vpunpcklwd    %xmm2,%xmm8,%xmm0
8810  DB  197,185,105,210                     ; vpunpckhwd    %xmm2,%xmm8,%xmm2
8811  DB  196,193,97,97,201                   ; vpunpcklwd    %xmm9,%xmm3,%xmm1
8812  DB  196,193,97,105,217                  ; vpunpckhwd    %xmm9,%xmm3,%xmm3
8813  DB  197,121,97,210                      ; vpunpcklwd    %xmm2,%xmm0,%xmm10
8814  DB  197,121,105,194                     ; vpunpckhwd    %xmm2,%xmm0,%xmm8
8815  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
8816  DB  197,113,105,203                     ; vpunpckhwd    %xmm3,%xmm1,%xmm9
8817  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
8818  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
8819  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
8820  DB  196,99,125,24,224,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm12
8821  DB  197,169,108,194                     ; vpunpcklqdq   %xmm2,%xmm10,%xmm0
8822  DB  197,241,113,240,8                   ; vpsllw        $0x8,%xmm0,%xmm1
8823  DB  197,249,113,208,8                   ; vpsrlw        $0x8,%xmm0,%xmm0
8824  DB  197,241,235,192                     ; vpor          %xmm0,%xmm1,%xmm0
8825  DB  196,65,33,239,219                   ; vpxor         %xmm11,%xmm11,%xmm11
8826  DB  196,193,121,105,203                 ; vpunpckhwd    %xmm11,%xmm0,%xmm1
8827  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
8828  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
8829  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
8830  DB  197,156,89,192                      ; vmulps        %ymm0,%ymm12,%ymm0
8831  DB  197,169,109,202                     ; vpunpckhqdq   %xmm2,%xmm10,%xmm1
8832  DB  197,233,113,241,8                   ; vpsllw        $0x8,%xmm1,%xmm2
8833  DB  197,241,113,209,8                   ; vpsrlw        $0x8,%xmm1,%xmm1
8834  DB  197,233,235,201                     ; vpor          %xmm1,%xmm2,%xmm1
8835  DB  196,193,113,105,211                 ; vpunpckhwd    %xmm11,%xmm1,%xmm2
8836  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
8837  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8838  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
8839  DB  197,156,89,201                      ; vmulps        %ymm1,%ymm12,%ymm1
8840  DB  196,193,57,108,209                  ; vpunpcklqdq   %xmm9,%xmm8,%xmm2
8841  DB  197,169,113,242,8                   ; vpsllw        $0x8,%xmm2,%xmm10
8842  DB  197,233,113,210,8                   ; vpsrlw        $0x8,%xmm2,%xmm2
8843  DB  197,169,235,210                     ; vpor          %xmm2,%xmm10,%xmm2
8844  DB  196,65,105,105,211                  ; vpunpckhwd    %xmm11,%xmm2,%xmm10
8845  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
8846  DB  196,195,109,24,210,1                ; vinsertf128   $0x1,%xmm10,%ymm2,%ymm2
8847  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
8848  DB  197,156,89,210                      ; vmulps        %ymm2,%ymm12,%ymm2
8849  DB  196,193,57,109,217                  ; vpunpckhqdq   %xmm9,%xmm8,%xmm3
8850  DB  197,185,113,243,8                   ; vpsllw        $0x8,%xmm3,%xmm8
8851  DB  197,225,113,211,8                   ; vpsrlw        $0x8,%xmm3,%xmm3
8852  DB  197,185,235,219                     ; vpor          %xmm3,%xmm8,%xmm3
8853  DB  196,65,97,105,195                   ; vpunpckhwd    %xmm11,%xmm3,%xmm8
8854  DB  196,226,121,51,219                  ; vpmovzxwd     %xmm3,%xmm3
8855  DB  196,195,101,24,216,1                ; vinsertf128   $0x1,%xmm8,%ymm3,%ymm3
8856  DB  197,252,91,219                      ; vcvtdq2ps     %ymm3,%ymm3
8857  DB  197,156,89,219                      ; vmulps        %ymm3,%ymm12,%ymm3
8858  DB  72,173                              ; lods          %ds:(%rsi),%rax
8859  DB  255,224                             ; jmpq          *%rax
8860  DB  196,65,123,16,4,64                  ; vmovsd        (%r8,%rax,2),%xmm8
8861  DB  196,65,49,239,201                   ; vpxor         %xmm9,%xmm9,%xmm9
8862  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8863  DB  116,85                              ; je            4d04 <_sk_load_u16_be_avx+0x181>
8864  DB  196,65,57,22,68,64,8                ; vmovhpd       0x8(%r8,%rax,2),%xmm8,%xmm8
8865  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8866  DB  114,72                              ; jb            4d04 <_sk_load_u16_be_avx+0x181>
8867  DB  196,193,123,16,84,64,16             ; vmovsd        0x10(%r8,%rax,2),%xmm2
8868  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8869  DB  116,72                              ; je            4d11 <_sk_load_u16_be_avx+0x18e>
8870  DB  196,193,105,22,84,64,24             ; vmovhpd       0x18(%r8,%rax,2),%xmm2,%xmm2
8871  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8872  DB  114,59                              ; jb            4d11 <_sk_load_u16_be_avx+0x18e>
8873  DB  196,193,123,16,92,64,32             ; vmovsd        0x20(%r8,%rax,2),%xmm3
8874  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8875  DB  15,132,205,254,255,255              ; je            4bb4 <_sk_load_u16_be_avx+0x31>
8876  DB  196,193,97,22,92,64,40              ; vmovhpd       0x28(%r8,%rax,2),%xmm3,%xmm3
8877  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8878  DB  15,130,188,254,255,255              ; jb            4bb4 <_sk_load_u16_be_avx+0x31>
8879  DB  196,65,122,126,76,64,48             ; vmovq         0x30(%r8,%rax,2),%xmm9
8880  DB  233,176,254,255,255                 ; jmpq          4bb4 <_sk_load_u16_be_avx+0x31>
8881  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
8882  DB  197,233,87,210                      ; vxorpd        %xmm2,%xmm2,%xmm2
8883  DB  233,163,254,255,255                 ; jmpq          4bb4 <_sk_load_u16_be_avx+0x31>
8884  DB  197,225,87,219                      ; vxorpd        %xmm3,%xmm3,%xmm3
8885  DB  233,154,254,255,255                 ; jmpq          4bb4 <_sk_load_u16_be_avx+0x31>
8886
8887PUBLIC _sk_load_rgb_u16_be_avx
8888_sk_load_rgb_u16_be_avx LABEL PROC
8889  DB  72,173                              ; lods          %ds:(%rsi),%rax
8890  DB  76,139,0                            ; mov           (%rax),%r8
8891  DB  72,141,4,127                        ; lea           (%rdi,%rdi,2),%rax
8892  DB  72,133,201                          ; test          %rcx,%rcx
8893  DB  15,133,8,1,0,0                      ; jne           4e34 <_sk_load_rgb_u16_be_avx+0x11a>
8894  DB  196,193,122,111,4,64                ; vmovdqu       (%r8,%rax,2),%xmm0
8895  DB  196,193,122,111,84,64,12            ; vmovdqu       0xc(%r8,%rax,2),%xmm2
8896  DB  196,193,122,111,76,64,24            ; vmovdqu       0x18(%r8,%rax,2),%xmm1
8897  DB  196,193,122,111,92,64,32            ; vmovdqu       0x20(%r8,%rax,2),%xmm3
8898  DB  197,225,115,219,4                   ; vpsrldq       $0x4,%xmm3,%xmm3
8899  DB  197,185,115,216,6                   ; vpsrldq       $0x6,%xmm0,%xmm8
8900  DB  197,177,115,218,6                   ; vpsrldq       $0x6,%xmm2,%xmm9
8901  DB  197,161,115,217,6                   ; vpsrldq       $0x6,%xmm1,%xmm11
8902  DB  197,169,115,219,6                   ; vpsrldq       $0x6,%xmm3,%xmm10
8903  DB  197,249,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm0
8904  DB  196,193,57,97,209                   ; vpunpcklwd    %xmm9,%xmm8,%xmm2
8905  DB  197,241,97,203                      ; vpunpcklwd    %xmm3,%xmm1,%xmm1
8906  DB  196,193,33,97,218                   ; vpunpcklwd    %xmm10,%xmm11,%xmm3
8907  DB  197,121,97,194                      ; vpunpcklwd    %xmm2,%xmm0,%xmm8
8908  DB  197,121,105,202                     ; vpunpckhwd    %xmm2,%xmm0,%xmm9
8909  DB  197,241,97,211                      ; vpunpcklwd    %xmm3,%xmm1,%xmm2
8910  DB  197,113,105,219                     ; vpunpckhwd    %xmm3,%xmm1,%xmm11
8911  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
8912  DB  197,249,110,192                     ; vmovd         %eax,%xmm0
8913  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
8914  DB  196,99,125,24,208,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm10
8915  DB  197,185,108,194                     ; vpunpcklqdq   %xmm2,%xmm8,%xmm0
8916  DB  197,241,113,240,8                   ; vpsllw        $0x8,%xmm0,%xmm1
8917  DB  197,249,113,208,8                   ; vpsrlw        $0x8,%xmm0,%xmm0
8918  DB  197,241,235,192                     ; vpor          %xmm0,%xmm1,%xmm0
8919  DB  196,65,25,239,228                   ; vpxor         %xmm12,%xmm12,%xmm12
8920  DB  196,193,121,105,204                 ; vpunpckhwd    %xmm12,%xmm0,%xmm1
8921  DB  196,226,121,51,192                  ; vpmovzxwd     %xmm0,%xmm0
8922  DB  196,227,125,24,193,1                ; vinsertf128   $0x1,%xmm1,%ymm0,%ymm0
8923  DB  197,252,91,192                      ; vcvtdq2ps     %ymm0,%ymm0
8924  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
8925  DB  197,185,109,202                     ; vpunpckhqdq   %xmm2,%xmm8,%xmm1
8926  DB  197,233,113,241,8                   ; vpsllw        $0x8,%xmm1,%xmm2
8927  DB  197,241,113,209,8                   ; vpsrlw        $0x8,%xmm1,%xmm1
8928  DB  197,233,235,201                     ; vpor          %xmm1,%xmm2,%xmm1
8929  DB  196,193,113,105,212                 ; vpunpckhwd    %xmm12,%xmm1,%xmm2
8930  DB  196,226,121,51,201                  ; vpmovzxwd     %xmm1,%xmm1
8931  DB  196,227,117,24,202,1                ; vinsertf128   $0x1,%xmm2,%ymm1,%ymm1
8932  DB  197,252,91,201                      ; vcvtdq2ps     %ymm1,%ymm1
8933  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
8934  DB  196,193,49,108,211                  ; vpunpcklqdq   %xmm11,%xmm9,%xmm2
8935  DB  197,225,113,242,8                   ; vpsllw        $0x8,%xmm2,%xmm3
8936  DB  197,233,113,210,8                   ; vpsrlw        $0x8,%xmm2,%xmm2
8937  DB  197,225,235,210                     ; vpor          %xmm2,%xmm3,%xmm2
8938  DB  196,193,105,105,220                 ; vpunpckhwd    %xmm12,%xmm2,%xmm3
8939  DB  196,226,121,51,210                  ; vpmovzxwd     %xmm2,%xmm2
8940  DB  196,227,109,24,211,1                ; vinsertf128   $0x1,%xmm3,%ymm2,%ymm2
8941  DB  197,252,91,210                      ; vcvtdq2ps     %ymm2,%ymm2
8942  DB  197,172,89,210                      ; vmulps        %ymm2,%ymm10,%ymm2
8943  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
8944  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
8945  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
8946  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
8947  DB  72,173                              ; lods          %ds:(%rsi),%rax
8948  DB  255,224                             ; jmpq          *%rax
8949  DB  196,193,121,110,4,64                ; vmovd         (%r8,%rax,2),%xmm0
8950  DB  196,193,121,196,68,64,4,2           ; vpinsrw       $0x2,0x4(%r8,%rax,2),%xmm0,%xmm0
8951  DB  72,131,249,1                        ; cmp           $0x1,%rcx
8952  DB  117,5                               ; jne           4e4d <_sk_load_rgb_u16_be_avx+0x133>
8953  DB  233,19,255,255,255                  ; jmpq          4d60 <_sk_load_rgb_u16_be_avx+0x46>
8954  DB  196,193,121,110,76,64,6             ; vmovd         0x6(%r8,%rax,2),%xmm1
8955  DB  196,65,113,196,68,64,10,2           ; vpinsrw       $0x2,0xa(%r8,%rax,2),%xmm1,%xmm8
8956  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8957  DB  114,26                              ; jb            4e7c <_sk_load_rgb_u16_be_avx+0x162>
8958  DB  196,193,121,110,76,64,12            ; vmovd         0xc(%r8,%rax,2),%xmm1
8959  DB  196,193,113,196,84,64,16,2          ; vpinsrw       $0x2,0x10(%r8,%rax,2),%xmm1,%xmm2
8960  DB  72,131,249,3                        ; cmp           $0x3,%rcx
8961  DB  117,10                              ; jne           4e81 <_sk_load_rgb_u16_be_avx+0x167>
8962  DB  233,228,254,255,255                 ; jmpq          4d60 <_sk_load_rgb_u16_be_avx+0x46>
8963  DB  233,223,254,255,255                 ; jmpq          4d60 <_sk_load_rgb_u16_be_avx+0x46>
8964  DB  196,193,121,110,76,64,18            ; vmovd         0x12(%r8,%rax,2),%xmm1
8965  DB  196,65,113,196,76,64,22,2           ; vpinsrw       $0x2,0x16(%r8,%rax,2),%xmm1,%xmm9
8966  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8967  DB  114,26                              ; jb            4eb0 <_sk_load_rgb_u16_be_avx+0x196>
8968  DB  196,193,121,110,76,64,24            ; vmovd         0x18(%r8,%rax,2),%xmm1
8969  DB  196,193,113,196,76,64,28,2          ; vpinsrw       $0x2,0x1c(%r8,%rax,2),%xmm1,%xmm1
8970  DB  72,131,249,5                        ; cmp           $0x5,%rcx
8971  DB  117,10                              ; jne           4eb5 <_sk_load_rgb_u16_be_avx+0x19b>
8972  DB  233,176,254,255,255                 ; jmpq          4d60 <_sk_load_rgb_u16_be_avx+0x46>
8973  DB  233,171,254,255,255                 ; jmpq          4d60 <_sk_load_rgb_u16_be_avx+0x46>
8974  DB  196,193,121,110,92,64,30            ; vmovd         0x1e(%r8,%rax,2),%xmm3
8975  DB  196,65,97,196,92,64,34,2            ; vpinsrw       $0x2,0x22(%r8,%rax,2),%xmm3,%xmm11
8976  DB  72,131,249,7                        ; cmp           $0x7,%rcx
8977  DB  114,20                              ; jb            4ede <_sk_load_rgb_u16_be_avx+0x1c4>
8978  DB  196,193,121,110,92,64,36            ; vmovd         0x24(%r8,%rax,2),%xmm3
8979  DB  196,193,97,196,92,64,40,2           ; vpinsrw       $0x2,0x28(%r8,%rax,2),%xmm3,%xmm3
8980  DB  233,130,254,255,255                 ; jmpq          4d60 <_sk_load_rgb_u16_be_avx+0x46>
8981  DB  233,125,254,255,255                 ; jmpq          4d60 <_sk_load_rgb_u16_be_avx+0x46>
8982
8983PUBLIC _sk_store_u16_be_avx
8984_sk_store_u16_be_avx LABEL PROC
8985  DB  72,173                              ; lods          %ds:(%rsi),%rax
8986  DB  76,139,0                            ; mov           (%rax),%r8
8987  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
8988  DB  184,0,255,127,71                    ; mov           $0x477fff00,%eax
8989  DB  197,121,110,192                     ; vmovd         %eax,%xmm8
8990  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
8991  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
8992  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
8993  DB  196,65,125,91,201                   ; vcvtps2dq     %ymm9,%ymm9
8994  DB  196,67,125,25,202,1                 ; vextractf128  $0x1,%ymm9,%xmm10
8995  DB  196,66,49,43,202                    ; vpackusdw     %xmm10,%xmm9,%xmm9
8996  DB  196,193,41,113,241,8                ; vpsllw        $0x8,%xmm9,%xmm10
8997  DB  196,193,49,113,209,8                ; vpsrlw        $0x8,%xmm9,%xmm9
8998  DB  196,65,41,235,201                   ; vpor          %xmm9,%xmm10,%xmm9
8999  DB  197,60,89,209                       ; vmulps        %ymm1,%ymm8,%ymm10
9000  DB  196,65,125,91,210                   ; vcvtps2dq     %ymm10,%ymm10
9001  DB  196,67,125,25,211,1                 ; vextractf128  $0x1,%ymm10,%xmm11
9002  DB  196,66,41,43,211                    ; vpackusdw     %xmm11,%xmm10,%xmm10
9003  DB  196,193,33,113,242,8                ; vpsllw        $0x8,%xmm10,%xmm11
9004  DB  196,193,41,113,210,8                ; vpsrlw        $0x8,%xmm10,%xmm10
9005  DB  196,65,33,235,210                   ; vpor          %xmm10,%xmm11,%xmm10
9006  DB  197,60,89,218                       ; vmulps        %ymm2,%ymm8,%ymm11
9007  DB  196,65,125,91,219                   ; vcvtps2dq     %ymm11,%ymm11
9008  DB  196,67,125,25,220,1                 ; vextractf128  $0x1,%ymm11,%xmm12
9009  DB  196,66,33,43,220                    ; vpackusdw     %xmm12,%xmm11,%xmm11
9010  DB  196,193,25,113,243,8                ; vpsllw        $0x8,%xmm11,%xmm12
9011  DB  196,193,33,113,211,8                ; vpsrlw        $0x8,%xmm11,%xmm11
9012  DB  196,65,25,235,219                   ; vpor          %xmm11,%xmm12,%xmm11
9013  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
9014  DB  196,65,125,91,192                   ; vcvtps2dq     %ymm8,%ymm8
9015  DB  196,67,125,25,196,1                 ; vextractf128  $0x1,%ymm8,%xmm12
9016  DB  196,66,57,43,196                    ; vpackusdw     %xmm12,%xmm8,%xmm8
9017  DB  196,193,25,113,240,8                ; vpsllw        $0x8,%xmm8,%xmm12
9018  DB  196,193,57,113,208,8                ; vpsrlw        $0x8,%xmm8,%xmm8
9019  DB  196,65,25,235,192                   ; vpor          %xmm8,%xmm12,%xmm8
9020  DB  196,65,49,97,226                    ; vpunpcklwd    %xmm10,%xmm9,%xmm12
9021  DB  196,65,49,105,234                   ; vpunpckhwd    %xmm10,%xmm9,%xmm13
9022  DB  196,65,33,97,200                    ; vpunpcklwd    %xmm8,%xmm11,%xmm9
9023  DB  196,65,33,105,192                   ; vpunpckhwd    %xmm8,%xmm11,%xmm8
9024  DB  196,65,25,98,217                    ; vpunpckldq    %xmm9,%xmm12,%xmm11
9025  DB  196,65,25,106,209                   ; vpunpckhdq    %xmm9,%xmm12,%xmm10
9026  DB  196,65,17,98,200                    ; vpunpckldq    %xmm8,%xmm13,%xmm9
9027  DB  196,65,17,106,192                   ; vpunpckhdq    %xmm8,%xmm13,%xmm8
9028  DB  72,133,201                          ; test          %rcx,%rcx
9029  DB  117,31                              ; jne           4fe5 <_sk_store_u16_be_avx+0x102>
9030  DB  196,1,120,17,28,72                  ; vmovups       %xmm11,(%r8,%r9,2)
9031  DB  196,1,120,17,84,72,16               ; vmovups       %xmm10,0x10(%r8,%r9,2)
9032  DB  196,1,120,17,76,72,32               ; vmovups       %xmm9,0x20(%r8,%r9,2)
9033  DB  196,1,122,127,68,72,48              ; vmovdqu       %xmm8,0x30(%r8,%r9,2)
9034  DB  72,173                              ; lods          %ds:(%rsi),%rax
9035  DB  255,224                             ; jmpq          *%rax
9036  DB  196,1,121,214,28,72                 ; vmovq         %xmm11,(%r8,%r9,2)
9037  DB  72,131,249,1                        ; cmp           $0x1,%rcx
9038  DB  116,240                             ; je            4fe1 <_sk_store_u16_be_avx+0xfe>
9039  DB  196,1,121,23,92,72,8                ; vmovhpd       %xmm11,0x8(%r8,%r9,2)
9040  DB  72,131,249,3                        ; cmp           $0x3,%rcx
9041  DB  114,227                             ; jb            4fe1 <_sk_store_u16_be_avx+0xfe>
9042  DB  196,1,121,214,84,72,16              ; vmovq         %xmm10,0x10(%r8,%r9,2)
9043  DB  116,218                             ; je            4fe1 <_sk_store_u16_be_avx+0xfe>
9044  DB  196,1,121,23,84,72,24               ; vmovhpd       %xmm10,0x18(%r8,%r9,2)
9045  DB  72,131,249,5                        ; cmp           $0x5,%rcx
9046  DB  114,205                             ; jb            4fe1 <_sk_store_u16_be_avx+0xfe>
9047  DB  196,1,121,214,76,72,32              ; vmovq         %xmm9,0x20(%r8,%r9,2)
9048  DB  116,196                             ; je            4fe1 <_sk_store_u16_be_avx+0xfe>
9049  DB  196,1,121,23,76,72,40               ; vmovhpd       %xmm9,0x28(%r8,%r9,2)
9050  DB  72,131,249,7                        ; cmp           $0x7,%rcx
9051  DB  114,183                             ; jb            4fe1 <_sk_store_u16_be_avx+0xfe>
9052  DB  196,1,121,214,68,72,48              ; vmovq         %xmm8,0x30(%r8,%r9,2)
9053  DB  235,174                             ; jmp           4fe1 <_sk_store_u16_be_avx+0xfe>
9054
9055PUBLIC _sk_load_f32_avx
9056_sk_load_f32_avx LABEL PROC
9057  DB  72,173                              ; lods          %ds:(%rsi),%rax
9058  DB  72,131,249,7                        ; cmp           $0x7,%rcx
9059  DB  119,110                             ; ja            50a9 <_sk_load_f32_avx+0x76>
9060  DB  76,139,0                            ; mov           (%rax),%r8
9061  DB  76,141,12,189,0,0,0,0               ; lea           0x0(,%rdi,4),%r9
9062  DB  76,141,21,135,0,0,0                 ; lea           0x87(%rip),%r10        # 50d4 <_sk_load_f32_avx+0xa1>
9063  DB  73,99,4,138                         ; movslq        (%r10,%rcx,4),%rax
9064  DB  76,1,208                            ; add           %r10,%rax
9065  DB  255,224                             ; jmpq          *%rax
9066  DB  196,3,125,24,68,136,112,1           ; vinsertf128   $0x1,0x70(%r8,%r9,4),%ymm0,%ymm8
9067  DB  196,131,125,24,92,136,96,1          ; vinsertf128   $0x1,0x60(%r8,%r9,4),%ymm0,%ymm3
9068  DB  196,131,125,24,76,136,80,1          ; vinsertf128   $0x1,0x50(%r8,%r9,4),%ymm0,%ymm1
9069  DB  196,131,125,24,84,136,64,1          ; vinsertf128   $0x1,0x40(%r8,%r9,4),%ymm0,%ymm2
9070  DB  196,129,121,16,68,136,48            ; vmovupd       0x30(%r8,%r9,4),%xmm0
9071  DB  196,195,125,13,192,12               ; vblendpd      $0xc,%ymm8,%ymm0,%ymm0
9072  DB  196,1,121,16,68,136,32              ; vmovupd       0x20(%r8,%r9,4),%xmm8
9073  DB  196,99,61,13,203,12                 ; vblendpd      $0xc,%ymm3,%ymm8,%ymm9
9074  DB  196,129,121,16,92,136,16            ; vmovupd       0x10(%r8,%r9,4),%xmm3
9075  DB  196,99,101,13,209,12                ; vblendpd      $0xc,%ymm1,%ymm3,%ymm10
9076  DB  196,129,121,16,12,136               ; vmovupd       (%r8,%r9,4),%xmm1
9077  DB  196,227,117,13,202,12               ; vblendpd      $0xc,%ymm2,%ymm1,%ymm1
9078  DB  196,193,116,20,210                  ; vunpcklps     %ymm10,%ymm1,%ymm2
9079  DB  196,193,116,21,218                  ; vunpckhps     %ymm10,%ymm1,%ymm3
9080  DB  197,180,20,200                      ; vunpcklps     %ymm0,%ymm9,%ymm1
9081  DB  197,52,21,192                       ; vunpckhps     %ymm0,%ymm9,%ymm8
9082  DB  197,237,20,193                      ; vunpcklpd     %ymm1,%ymm2,%ymm0
9083  DB  197,237,21,201                      ; vunpckhpd     %ymm1,%ymm2,%ymm1
9084  DB  196,193,101,20,208                  ; vunpcklpd     %ymm8,%ymm3,%ymm2
9085  DB  196,193,101,21,216                  ; vunpckhpd     %ymm8,%ymm3,%ymm3
9086  DB  72,173                              ; lods          %ds:(%rsi),%rax
9087  DB  255,224                             ; jmpq          *%rax
9088  DB  15,31,0                             ; nopl          (%rax)
9089  DB  130                                 ; (bad)
9090  DB  255                                 ; (bad)
9091  DB  255                                 ; (bad)
9092  DB  255,201                             ; dec           %ecx
9093  DB  255                                 ; (bad)
9094  DB  255                                 ; (bad)
9095  DB  255                                 ; (bad)
9096  DB  188,255,255,255,175                 ; mov           $0xafffffff,%esp
9097  DB  255                                 ; (bad)
9098  DB  255                                 ; (bad)
9099  DB  255,162,255,255,255,154             ; jmpq          *-0x65000001(%rdx)
9100  DB  255                                 ; (bad)
9101  DB  255                                 ; (bad)
9102  DB  255,146,255,255,255,138             ; callq         *-0x75000001(%rdx)
9103  DB  255                                 ; (bad)
9104  DB  255                                 ; (bad)
9105  DB  255                                 ; .byte         0xff
9106
9107PUBLIC _sk_store_f32_avx
9108_sk_store_f32_avx LABEL PROC
9109  DB  72,173                              ; lods          %ds:(%rsi),%rax
9110  DB  76,139,0                            ; mov           (%rax),%r8
9111  DB  72,141,4,189,0,0,0,0                ; lea           0x0(,%rdi,4),%rax
9112  DB  197,124,20,193                      ; vunpcklps     %ymm1,%ymm0,%ymm8
9113  DB  197,124,21,217                      ; vunpckhps     %ymm1,%ymm0,%ymm11
9114  DB  197,108,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm9
9115  DB  197,108,21,227                      ; vunpckhps     %ymm3,%ymm2,%ymm12
9116  DB  196,65,61,20,209                    ; vunpcklpd     %ymm9,%ymm8,%ymm10
9117  DB  196,65,61,21,201                    ; vunpckhpd     %ymm9,%ymm8,%ymm9
9118  DB  196,65,37,20,196                    ; vunpcklpd     %ymm12,%ymm11,%ymm8
9119  DB  196,65,37,21,220                    ; vunpckhpd     %ymm12,%ymm11,%ymm11
9120  DB  72,133,201                          ; test          %rcx,%rcx
9121  DB  117,55                              ; jne           5161 <_sk_store_f32_avx+0x6d>
9122  DB  196,67,45,24,225,1                  ; vinsertf128   $0x1,%xmm9,%ymm10,%ymm12
9123  DB  196,67,61,24,235,1                  ; vinsertf128   $0x1,%xmm11,%ymm8,%ymm13
9124  DB  196,67,45,6,201,49                  ; vperm2f128    $0x31,%ymm9,%ymm10,%ymm9
9125  DB  196,67,61,6,195,49                  ; vperm2f128    $0x31,%ymm11,%ymm8,%ymm8
9126  DB  196,65,125,17,36,128                ; vmovupd       %ymm12,(%r8,%rax,4)
9127  DB  196,65,125,17,108,128,32            ; vmovupd       %ymm13,0x20(%r8,%rax,4)
9128  DB  196,65,125,17,76,128,64             ; vmovupd       %ymm9,0x40(%r8,%rax,4)
9129  DB  196,65,125,17,68,128,96             ; vmovupd       %ymm8,0x60(%r8,%rax,4)
9130  DB  72,173                              ; lods          %ds:(%rsi),%rax
9131  DB  255,224                             ; jmpq          *%rax
9132  DB  196,65,121,17,20,128                ; vmovupd       %xmm10,(%r8,%rax,4)
9133  DB  72,131,249,1                        ; cmp           $0x1,%rcx
9134  DB  116,240                             ; je            515d <_sk_store_f32_avx+0x69>
9135  DB  196,65,121,17,76,128,16             ; vmovupd       %xmm9,0x10(%r8,%rax,4)
9136  DB  72,131,249,3                        ; cmp           $0x3,%rcx
9137  DB  114,227                             ; jb            515d <_sk_store_f32_avx+0x69>
9138  DB  196,65,121,17,68,128,32             ; vmovupd       %xmm8,0x20(%r8,%rax,4)
9139  DB  116,218                             ; je            515d <_sk_store_f32_avx+0x69>
9140  DB  196,65,121,17,92,128,48             ; vmovupd       %xmm11,0x30(%r8,%rax,4)
9141  DB  72,131,249,5                        ; cmp           $0x5,%rcx
9142  DB  114,205                             ; jb            515d <_sk_store_f32_avx+0x69>
9143  DB  196,67,125,25,84,128,64,1           ; vextractf128  $0x1,%ymm10,0x40(%r8,%rax,4)
9144  DB  116,195                             ; je            515d <_sk_store_f32_avx+0x69>
9145  DB  196,67,125,25,76,128,80,1           ; vextractf128  $0x1,%ymm9,0x50(%r8,%rax,4)
9146  DB  72,131,249,7                        ; cmp           $0x7,%rcx
9147  DB  114,181                             ; jb            515d <_sk_store_f32_avx+0x69>
9148  DB  196,67,125,25,68,128,96,1           ; vextractf128  $0x1,%ymm8,0x60(%r8,%rax,4)
9149  DB  235,171                             ; jmp           515d <_sk_store_f32_avx+0x69>
9150
9151PUBLIC _sk_clamp_x_avx
9152_sk_clamp_x_avx LABEL PROC
9153  DB  72,173                              ; lods          %ds:(%rsi),%rax
9154  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
9155  DB  197,60,95,200                       ; vmaxps        %ymm0,%ymm8,%ymm9
9156  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9157  DB  196,99,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm0
9158  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9159  DB  196,193,121,254,194                 ; vpaddd        %xmm10,%xmm0,%xmm0
9160  DB  196,65,57,254,194                   ; vpaddd        %xmm10,%xmm8,%xmm8
9161  DB  196,227,61,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm8,%ymm0
9162  DB  197,180,93,192                      ; vminps        %ymm0,%ymm9,%ymm0
9163  DB  72,173                              ; lods          %ds:(%rsi),%rax
9164  DB  255,224                             ; jmpq          *%rax
9165
9166PUBLIC _sk_clamp_y_avx
9167_sk_clamp_y_avx LABEL PROC
9168  DB  72,173                              ; lods          %ds:(%rsi),%rax
9169  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
9170  DB  197,60,95,201                       ; vmaxps        %ymm1,%ymm8,%ymm9
9171  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9172  DB  196,99,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm1
9173  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9174  DB  196,193,113,254,202                 ; vpaddd        %xmm10,%xmm1,%xmm1
9175  DB  196,65,57,254,194                   ; vpaddd        %xmm10,%xmm8,%xmm8
9176  DB  196,227,61,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm8,%ymm1
9177  DB  197,180,93,201                      ; vminps        %ymm1,%ymm9,%ymm1
9178  DB  72,173                              ; lods          %ds:(%rsi),%rax
9179  DB  255,224                             ; jmpq          *%rax
9180
9181PUBLIC _sk_repeat_x_avx
9182_sk_repeat_x_avx LABEL PROC
9183  DB  72,173                              ; lods          %ds:(%rsi),%rax
9184  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9185  DB  196,65,124,94,200                   ; vdivps        %ymm8,%ymm0,%ymm9
9186  DB  196,67,125,8,201,1                  ; vroundps      $0x1,%ymm9,%ymm9
9187  DB  196,65,52,89,200                    ; vmulps        %ymm8,%ymm9,%ymm9
9188  DB  196,65,124,92,201                   ; vsubps        %ymm9,%ymm0,%ymm9
9189  DB  196,99,125,25,192,1                 ; vextractf128  $0x1,%ymm8,%xmm0
9190  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9191  DB  196,193,121,254,194                 ; vpaddd        %xmm10,%xmm0,%xmm0
9192  DB  196,65,57,254,194                   ; vpaddd        %xmm10,%xmm8,%xmm8
9193  DB  196,227,61,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm8,%ymm0
9194  DB  197,180,93,192                      ; vminps        %ymm0,%ymm9,%ymm0
9195  DB  72,173                              ; lods          %ds:(%rsi),%rax
9196  DB  255,224                             ; jmpq          *%rax
9197
9198PUBLIC _sk_repeat_y_avx
9199_sk_repeat_y_avx LABEL PROC
9200  DB  72,173                              ; lods          %ds:(%rsi),%rax
9201  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9202  DB  196,65,116,94,200                   ; vdivps        %ymm8,%ymm1,%ymm9
9203  DB  196,67,125,8,201,1                  ; vroundps      $0x1,%ymm9,%ymm9
9204  DB  196,65,52,89,200                    ; vmulps        %ymm8,%ymm9,%ymm9
9205  DB  196,65,116,92,201                   ; vsubps        %ymm9,%ymm1,%ymm9
9206  DB  196,99,125,25,193,1                 ; vextractf128  $0x1,%ymm8,%xmm1
9207  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9208  DB  196,193,113,254,202                 ; vpaddd        %xmm10,%xmm1,%xmm1
9209  DB  196,65,57,254,194                   ; vpaddd        %xmm10,%xmm8,%xmm8
9210  DB  196,227,61,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm8,%ymm1
9211  DB  197,180,93,201                      ; vminps        %ymm1,%ymm9,%ymm1
9212  DB  72,173                              ; lods          %ds:(%rsi),%rax
9213  DB  255,224                             ; jmpq          *%rax
9214
9215PUBLIC _sk_mirror_x_avx
9216_sk_mirror_x_avx LABEL PROC
9217  DB  72,173                              ; lods          %ds:(%rsi),%rax
9218  DB  197,121,110,0                       ; vmovd         (%rax),%xmm8
9219  DB  196,65,121,112,200,0                ; vpshufd       $0x0,%xmm8,%xmm9
9220  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
9221  DB  196,65,124,92,209                   ; vsubps        %ymm9,%ymm0,%ymm10
9222  DB  196,193,58,88,192                   ; vaddss        %xmm8,%xmm8,%xmm0
9223  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9224  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9225  DB  197,44,94,192                       ; vdivps        %ymm0,%ymm10,%ymm8
9226  DB  196,67,125,8,192,1                  ; vroundps      $0x1,%ymm8,%ymm8
9227  DB  197,188,89,192                      ; vmulps        %ymm0,%ymm8,%ymm0
9228  DB  197,172,92,192                      ; vsubps        %ymm0,%ymm10,%ymm0
9229  DB  196,193,124,92,193                  ; vsubps        %ymm9,%ymm0,%ymm0
9230  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
9231  DB  197,60,92,192                       ; vsubps        %ymm0,%ymm8,%ymm8
9232  DB  197,60,84,192                       ; vandps        %ymm0,%ymm8,%ymm8
9233  DB  196,99,125,25,200,1                 ; vextractf128  $0x1,%ymm9,%xmm0
9234  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9235  DB  196,193,121,254,194                 ; vpaddd        %xmm10,%xmm0,%xmm0
9236  DB  196,65,49,254,202                   ; vpaddd        %xmm10,%xmm9,%xmm9
9237  DB  196,227,53,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm9,%ymm0
9238  DB  197,188,93,192                      ; vminps        %ymm0,%ymm8,%ymm0
9239  DB  72,173                              ; lods          %ds:(%rsi),%rax
9240  DB  255,224                             ; jmpq          *%rax
9241
9242PUBLIC _sk_mirror_y_avx
9243_sk_mirror_y_avx LABEL PROC
9244  DB  72,173                              ; lods          %ds:(%rsi),%rax
9245  DB  197,121,110,0                       ; vmovd         (%rax),%xmm8
9246  DB  196,65,121,112,200,0                ; vpshufd       $0x0,%xmm8,%xmm9
9247  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
9248  DB  196,65,116,92,209                   ; vsubps        %ymm9,%ymm1,%ymm10
9249  DB  196,193,58,88,200                   ; vaddss        %xmm8,%xmm8,%xmm1
9250  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9251  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9252  DB  197,44,94,193                       ; vdivps        %ymm1,%ymm10,%ymm8
9253  DB  196,67,125,8,192,1                  ; vroundps      $0x1,%ymm8,%ymm8
9254  DB  197,188,89,201                      ; vmulps        %ymm1,%ymm8,%ymm1
9255  DB  197,172,92,201                      ; vsubps        %ymm1,%ymm10,%ymm1
9256  DB  196,193,116,92,201                  ; vsubps        %ymm9,%ymm1,%ymm1
9257  DB  196,65,60,87,192                    ; vxorps        %ymm8,%ymm8,%ymm8
9258  DB  197,60,92,193                       ; vsubps        %ymm1,%ymm8,%ymm8
9259  DB  197,60,84,193                       ; vandps        %ymm1,%ymm8,%ymm8
9260  DB  196,99,125,25,201,1                 ; vextractf128  $0x1,%ymm9,%xmm1
9261  DB  196,65,41,118,210                   ; vpcmpeqd      %xmm10,%xmm10,%xmm10
9262  DB  196,193,113,254,202                 ; vpaddd        %xmm10,%xmm1,%xmm1
9263  DB  196,65,49,254,202                   ; vpaddd        %xmm10,%xmm9,%xmm9
9264  DB  196,227,53,24,201,1                 ; vinsertf128   $0x1,%xmm1,%ymm9,%ymm1
9265  DB  197,188,93,201                      ; vminps        %ymm1,%ymm8,%ymm1
9266  DB  72,173                              ; lods          %ds:(%rsi),%rax
9267  DB  255,224                             ; jmpq          *%rax
9268
9269PUBLIC _sk_luminance_to_alpha_avx
9270_sk_luminance_to_alpha_avx LABEL PROC
9271  DB  184,208,179,89,62                   ; mov           $0x3e59b3d0,%eax
9272  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
9273  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
9274  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
9275  DB  197,228,89,192                      ; vmulps        %ymm0,%ymm3,%ymm0
9276  DB  184,89,23,55,63                     ; mov           $0x3f371759,%eax
9277  DB  197,249,110,216                     ; vmovd         %eax,%xmm3
9278  DB  196,227,121,4,219,0                 ; vpermilps     $0x0,%xmm3,%xmm3
9279  DB  196,227,101,24,219,1                ; vinsertf128   $0x1,%xmm3,%ymm3,%ymm3
9280  DB  197,228,89,201                      ; vmulps        %ymm1,%ymm3,%ymm1
9281  DB  197,252,88,193                      ; vaddps        %ymm1,%ymm0,%ymm0
9282  DB  184,152,221,147,61                  ; mov           $0x3d93dd98,%eax
9283  DB  197,249,110,200                     ; vmovd         %eax,%xmm1
9284  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9285  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9286  DB  197,244,89,202                      ; vmulps        %ymm2,%ymm1,%ymm1
9287  DB  197,252,88,217                      ; vaddps        %ymm1,%ymm0,%ymm3
9288  DB  72,173                              ; lods          %ds:(%rsi),%rax
9289  DB  197,252,87,192                      ; vxorps        %ymm0,%ymm0,%ymm0
9290  DB  197,244,87,201                      ; vxorps        %ymm1,%ymm1,%ymm1
9291  DB  197,236,87,210                      ; vxorps        %ymm2,%ymm2,%ymm2
9292  DB  255,224                             ; jmpq          *%rax
9293
9294PUBLIC _sk_matrix_2x3_avx
9295_sk_matrix_2x3_avx LABEL PROC
9296  DB  72,173                              ; lods          %ds:(%rsi),%rax
9297  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9298  DB  196,98,125,24,72,8                  ; vbroadcastss  0x8(%rax),%ymm9
9299  DB  196,98,125,24,80,16                 ; vbroadcastss  0x10(%rax),%ymm10
9300  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
9301  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9302  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
9303  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
9304  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
9305  DB  196,98,125,24,80,12                 ; vbroadcastss  0xc(%rax),%ymm10
9306  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
9307  DB  197,172,89,201                      ; vmulps        %ymm1,%ymm10,%ymm1
9308  DB  196,193,116,88,203                  ; vaddps        %ymm11,%ymm1,%ymm1
9309  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
9310  DB  197,252,88,201                      ; vaddps        %ymm1,%ymm0,%ymm1
9311  DB  72,173                              ; lods          %ds:(%rsi),%rax
9312  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9313  DB  255,224                             ; jmpq          *%rax
9314
9315PUBLIC _sk_matrix_3x4_avx
9316_sk_matrix_3x4_avx LABEL PROC
9317  DB  72,173                              ; lods          %ds:(%rsi),%rax
9318  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9319  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
9320  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
9321  DB  196,98,125,24,88,36                 ; vbroadcastss  0x24(%rax),%ymm11
9322  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
9323  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9324  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
9325  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9326  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
9327  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
9328  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
9329  DB  196,98,125,24,80,16                 ; vbroadcastss  0x10(%rax),%ymm10
9330  DB  196,98,125,24,88,28                 ; vbroadcastss  0x1c(%rax),%ymm11
9331  DB  196,98,125,24,96,40                 ; vbroadcastss  0x28(%rax),%ymm12
9332  DB  197,36,89,218                       ; vmulps        %ymm2,%ymm11,%ymm11
9333  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
9334  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
9335  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9336  DB  197,52,89,200                       ; vmulps        %ymm0,%ymm9,%ymm9
9337  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9338  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
9339  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
9340  DB  196,98,125,24,96,32                 ; vbroadcastss  0x20(%rax),%ymm12
9341  DB  196,98,125,24,104,44                ; vbroadcastss  0x2c(%rax),%ymm13
9342  DB  197,156,89,210                      ; vmulps        %ymm2,%ymm12,%ymm2
9343  DB  196,193,108,88,213                  ; vaddps        %ymm13,%ymm2,%ymm2
9344  DB  197,164,89,201                      ; vmulps        %ymm1,%ymm11,%ymm1
9345  DB  197,244,88,202                      ; vaddps        %ymm2,%ymm1,%ymm1
9346  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
9347  DB  197,252,88,209                      ; vaddps        %ymm1,%ymm0,%ymm2
9348  DB  72,173                              ; lods          %ds:(%rsi),%rax
9349  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9350  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
9351  DB  255,224                             ; jmpq          *%rax
9352
9353PUBLIC _sk_matrix_4x5_avx
9354_sk_matrix_4x5_avx LABEL PROC
9355  DB  72,173                              ; lods          %ds:(%rsi),%rax
9356  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9357  DB  196,98,125,24,72,16                 ; vbroadcastss  0x10(%rax),%ymm9
9358  DB  196,98,125,24,80,32                 ; vbroadcastss  0x20(%rax),%ymm10
9359  DB  196,98,125,24,88,48                 ; vbroadcastss  0x30(%rax),%ymm11
9360  DB  196,98,125,24,96,64                 ; vbroadcastss  0x40(%rax),%ymm12
9361  DB  197,36,89,219                       ; vmulps        %ymm3,%ymm11,%ymm11
9362  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
9363  DB  197,44,89,210                       ; vmulps        %ymm2,%ymm10,%ymm10
9364  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9365  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
9366  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9367  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
9368  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
9369  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
9370  DB  196,98,125,24,80,20                 ; vbroadcastss  0x14(%rax),%ymm10
9371  DB  196,98,125,24,88,36                 ; vbroadcastss  0x24(%rax),%ymm11
9372  DB  196,98,125,24,96,52                 ; vbroadcastss  0x34(%rax),%ymm12
9373  DB  196,98,125,24,104,68                ; vbroadcastss  0x44(%rax),%ymm13
9374  DB  197,28,89,227                       ; vmulps        %ymm3,%ymm12,%ymm12
9375  DB  196,65,28,88,229                    ; vaddps        %ymm13,%ymm12,%ymm12
9376  DB  197,36,89,218                       ; vmulps        %ymm2,%ymm11,%ymm11
9377  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
9378  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
9379  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9380  DB  197,52,89,200                       ; vmulps        %ymm0,%ymm9,%ymm9
9381  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9382  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
9383  DB  196,98,125,24,88,24                 ; vbroadcastss  0x18(%rax),%ymm11
9384  DB  196,98,125,24,96,40                 ; vbroadcastss  0x28(%rax),%ymm12
9385  DB  196,98,125,24,104,56                ; vbroadcastss  0x38(%rax),%ymm13
9386  DB  196,98,125,24,112,72                ; vbroadcastss  0x48(%rax),%ymm14
9387  DB  197,20,89,235                       ; vmulps        %ymm3,%ymm13,%ymm13
9388  DB  196,65,20,88,238                    ; vaddps        %ymm14,%ymm13,%ymm13
9389  DB  197,28,89,226                       ; vmulps        %ymm2,%ymm12,%ymm12
9390  DB  196,65,28,88,229                    ; vaddps        %ymm13,%ymm12,%ymm12
9391  DB  197,36,89,217                       ; vmulps        %ymm1,%ymm11,%ymm11
9392  DB  196,65,36,88,220                    ; vaddps        %ymm12,%ymm11,%ymm11
9393  DB  197,44,89,208                       ; vmulps        %ymm0,%ymm10,%ymm10
9394  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9395  DB  196,98,125,24,88,12                 ; vbroadcastss  0xc(%rax),%ymm11
9396  DB  196,98,125,24,96,28                 ; vbroadcastss  0x1c(%rax),%ymm12
9397  DB  196,98,125,24,104,44                ; vbroadcastss  0x2c(%rax),%ymm13
9398  DB  196,98,125,24,112,60                ; vbroadcastss  0x3c(%rax),%ymm14
9399  DB  196,98,125,24,120,76                ; vbroadcastss  0x4c(%rax),%ymm15
9400  DB  197,140,89,219                      ; vmulps        %ymm3,%ymm14,%ymm3
9401  DB  196,193,100,88,223                  ; vaddps        %ymm15,%ymm3,%ymm3
9402  DB  197,148,89,210                      ; vmulps        %ymm2,%ymm13,%ymm2
9403  DB  197,236,88,211                      ; vaddps        %ymm3,%ymm2,%ymm2
9404  DB  197,156,89,201                      ; vmulps        %ymm1,%ymm12,%ymm1
9405  DB  197,244,88,202                      ; vaddps        %ymm2,%ymm1,%ymm1
9406  DB  197,164,89,192                      ; vmulps        %ymm0,%ymm11,%ymm0
9407  DB  197,252,88,217                      ; vaddps        %ymm1,%ymm0,%ymm3
9408  DB  72,173                              ; lods          %ds:(%rsi),%rax
9409  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9410  DB  197,124,41,201                      ; vmovaps       %ymm9,%ymm1
9411  DB  197,124,41,210                      ; vmovaps       %ymm10,%ymm2
9412  DB  255,224                             ; jmpq          *%rax
9413
9414PUBLIC _sk_matrix_perspective_avx
9415_sk_matrix_perspective_avx LABEL PROC
9416  DB  72,173                              ; lods          %ds:(%rsi),%rax
9417  DB  196,98,125,24,0                     ; vbroadcastss  (%rax),%ymm8
9418  DB  196,98,125,24,72,4                  ; vbroadcastss  0x4(%rax),%ymm9
9419  DB  196,98,125,24,80,8                  ; vbroadcastss  0x8(%rax),%ymm10
9420  DB  197,52,89,201                       ; vmulps        %ymm1,%ymm9,%ymm9
9421  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9422  DB  197,60,89,192                       ; vmulps        %ymm0,%ymm8,%ymm8
9423  DB  196,65,60,88,193                    ; vaddps        %ymm9,%ymm8,%ymm8
9424  DB  196,98,125,24,72,12                 ; vbroadcastss  0xc(%rax),%ymm9
9425  DB  196,98,125,24,80,16                 ; vbroadcastss  0x10(%rax),%ymm10
9426  DB  196,98,125,24,88,20                 ; vbroadcastss  0x14(%rax),%ymm11
9427  DB  197,44,89,209                       ; vmulps        %ymm1,%ymm10,%ymm10
9428  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9429  DB  197,52,89,200                       ; vmulps        %ymm0,%ymm9,%ymm9
9430  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9431  DB  196,98,125,24,80,24                 ; vbroadcastss  0x18(%rax),%ymm10
9432  DB  196,98,125,24,88,28                 ; vbroadcastss  0x1c(%rax),%ymm11
9433  DB  196,98,125,24,96,32                 ; vbroadcastss  0x20(%rax),%ymm12
9434  DB  197,164,89,201                      ; vmulps        %ymm1,%ymm11,%ymm1
9435  DB  196,193,116,88,204                  ; vaddps        %ymm12,%ymm1,%ymm1
9436  DB  197,172,89,192                      ; vmulps        %ymm0,%ymm10,%ymm0
9437  DB  197,252,88,193                      ; vaddps        %ymm1,%ymm0,%ymm0
9438  DB  197,252,83,200                      ; vrcpps        %ymm0,%ymm1
9439  DB  197,188,89,193                      ; vmulps        %ymm1,%ymm8,%ymm0
9440  DB  197,180,89,201                      ; vmulps        %ymm1,%ymm9,%ymm1
9441  DB  72,173                              ; lods          %ds:(%rsi),%rax
9442  DB  255,224                             ; jmpq          *%rax
9443
9444PUBLIC _sk_linear_gradient_avx
9445_sk_linear_gradient_avx LABEL PROC
9446  DB  72,173                              ; lods          %ds:(%rsi),%rax
9447  DB  196,98,125,24,64,16                 ; vbroadcastss  0x10(%rax),%ymm8
9448  DB  196,226,125,24,72,20                ; vbroadcastss  0x14(%rax),%ymm1
9449  DB  196,226,125,24,80,24                ; vbroadcastss  0x18(%rax),%ymm2
9450  DB  196,226,125,24,88,28                ; vbroadcastss  0x1c(%rax),%ymm3
9451  DB  76,139,0                            ; mov           (%rax),%r8
9452  DB  77,133,192                          ; test          %r8,%r8
9453  DB  15,132,146,0,0,0                    ; je            5715 <_sk_linear_gradient_avx+0xb8>
9454  DB  72,139,64,8                         ; mov           0x8(%rax),%rax
9455  DB  72,131,192,32                       ; add           $0x20,%rax
9456  DB  196,65,28,87,228                    ; vxorps        %ymm12,%ymm12,%ymm12
9457  DB  196,65,52,87,201                    ; vxorps        %ymm9,%ymm9,%ymm9
9458  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
9459  DB  196,65,36,87,219                    ; vxorps        %ymm11,%ymm11,%ymm11
9460  DB  196,98,125,24,104,224               ; vbroadcastss  -0x20(%rax),%ymm13
9461  DB  196,65,124,194,237,1                ; vcmpltps      %ymm13,%ymm0,%ymm13
9462  DB  196,98,125,24,112,228               ; vbroadcastss  -0x1c(%rax),%ymm14
9463  DB  196,67,13,74,228,208                ; vblendvps     %ymm13,%ymm12,%ymm14,%ymm12
9464  DB  196,98,125,24,112,232               ; vbroadcastss  -0x18(%rax),%ymm14
9465  DB  196,67,13,74,219,208                ; vblendvps     %ymm13,%ymm11,%ymm14,%ymm11
9466  DB  196,98,125,24,112,236               ; vbroadcastss  -0x14(%rax),%ymm14
9467  DB  196,67,13,74,210,208                ; vblendvps     %ymm13,%ymm10,%ymm14,%ymm10
9468  DB  196,98,125,24,112,240               ; vbroadcastss  -0x10(%rax),%ymm14
9469  DB  196,67,13,74,201,208                ; vblendvps     %ymm13,%ymm9,%ymm14,%ymm9
9470  DB  196,98,125,24,112,244               ; vbroadcastss  -0xc(%rax),%ymm14
9471  DB  196,67,13,74,192,208                ; vblendvps     %ymm13,%ymm8,%ymm14,%ymm8
9472  DB  196,98,125,24,112,248               ; vbroadcastss  -0x8(%rax),%ymm14
9473  DB  196,227,13,74,201,208               ; vblendvps     %ymm13,%ymm1,%ymm14,%ymm1
9474  DB  196,98,125,24,112,252               ; vbroadcastss  -0x4(%rax),%ymm14
9475  DB  196,227,13,74,210,208               ; vblendvps     %ymm13,%ymm2,%ymm14,%ymm2
9476  DB  196,98,125,24,48                    ; vbroadcastss  (%rax),%ymm14
9477  DB  196,227,13,74,219,208               ; vblendvps     %ymm13,%ymm3,%ymm14,%ymm3
9478  DB  72,131,192,36                       ; add           $0x24,%rax
9479  DB  73,255,200                          ; dec           %r8
9480  DB  117,140                             ; jne           569f <_sk_linear_gradient_avx+0x42>
9481  DB  235,20                              ; jmp           5729 <_sk_linear_gradient_avx+0xcc>
9482  DB  196,65,36,87,219                    ; vxorps        %ymm11,%ymm11,%ymm11
9483  DB  196,65,44,87,210                    ; vxorps        %ymm10,%ymm10,%ymm10
9484  DB  196,65,52,87,201                    ; vxorps        %ymm9,%ymm9,%ymm9
9485  DB  196,65,28,87,228                    ; vxorps        %ymm12,%ymm12,%ymm12
9486  DB  197,28,89,224                       ; vmulps        %ymm0,%ymm12,%ymm12
9487  DB  196,65,60,88,196                    ; vaddps        %ymm12,%ymm8,%ymm8
9488  DB  197,36,89,216                       ; vmulps        %ymm0,%ymm11,%ymm11
9489  DB  197,164,88,201                      ; vaddps        %ymm1,%ymm11,%ymm1
9490  DB  197,44,89,208                       ; vmulps        %ymm0,%ymm10,%ymm10
9491  DB  197,172,88,210                      ; vaddps        %ymm2,%ymm10,%ymm2
9492  DB  197,180,89,192                      ; vmulps        %ymm0,%ymm9,%ymm0
9493  DB  197,252,88,219                      ; vaddps        %ymm3,%ymm0,%ymm3
9494  DB  72,173                              ; lods          %ds:(%rsi),%rax
9495  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9496  DB  255,224                             ; jmpq          *%rax
9497
9498PUBLIC _sk_linear_gradient_2stops_avx
9499_sk_linear_gradient_2stops_avx LABEL PROC
9500  DB  72,173                              ; lods          %ds:(%rsi),%rax
9501  DB  196,226,125,24,8                    ; vbroadcastss  (%rax),%ymm1
9502  DB  196,226,125,24,80,16                ; vbroadcastss  0x10(%rax),%ymm2
9503  DB  197,244,89,200                      ; vmulps        %ymm0,%ymm1,%ymm1
9504  DB  197,116,88,194                      ; vaddps        %ymm2,%ymm1,%ymm8
9505  DB  196,226,125,24,72,4                 ; vbroadcastss  0x4(%rax),%ymm1
9506  DB  196,226,125,24,80,20                ; vbroadcastss  0x14(%rax),%ymm2
9507  DB  197,244,89,200                      ; vmulps        %ymm0,%ymm1,%ymm1
9508  DB  197,244,88,202                      ; vaddps        %ymm2,%ymm1,%ymm1
9509  DB  196,226,125,24,80,8                 ; vbroadcastss  0x8(%rax),%ymm2
9510  DB  196,226,125,24,88,24                ; vbroadcastss  0x18(%rax),%ymm3
9511  DB  197,236,89,208                      ; vmulps        %ymm0,%ymm2,%ymm2
9512  DB  197,236,88,211                      ; vaddps        %ymm3,%ymm2,%ymm2
9513  DB  196,226,125,24,88,12                ; vbroadcastss  0xc(%rax),%ymm3
9514  DB  196,98,125,24,72,28                 ; vbroadcastss  0x1c(%rax),%ymm9
9515  DB  197,228,89,192                      ; vmulps        %ymm0,%ymm3,%ymm0
9516  DB  196,193,124,88,217                  ; vaddps        %ymm9,%ymm0,%ymm3
9517  DB  72,173                              ; lods          %ds:(%rsi),%rax
9518  DB  197,124,41,192                      ; vmovaps       %ymm8,%ymm0
9519  DB  255,224                             ; jmpq          *%rax
9520
9521PUBLIC _sk_save_xy_avx
9522_sk_save_xy_avx LABEL PROC
9523  DB  72,173                              ; lods          %ds:(%rsi),%rax
9524  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9525  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9526  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9527  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9528  DB  197,60,88,200                       ; vaddps        %ymm0,%ymm8,%ymm9
9529  DB  196,67,125,8,209,1                  ; vroundps      $0x1,%ymm9,%ymm10
9530  DB  196,65,52,92,202                    ; vsubps        %ymm10,%ymm9,%ymm9
9531  DB  197,60,88,193                       ; vaddps        %ymm1,%ymm8,%ymm8
9532  DB  196,67,125,8,208,1                  ; vroundps      $0x1,%ymm8,%ymm10
9533  DB  196,65,60,92,194                    ; vsubps        %ymm10,%ymm8,%ymm8
9534  DB  197,252,17,0                        ; vmovups       %ymm0,(%rax)
9535  DB  197,252,17,72,32                    ; vmovups       %ymm1,0x20(%rax)
9536  DB  197,124,17,72,64                    ; vmovups       %ymm9,0x40(%rax)
9537  DB  197,124,17,64,96                    ; vmovups       %ymm8,0x60(%rax)
9538  DB  72,173                              ; lods          %ds:(%rsi),%rax
9539  DB  255,224                             ; jmpq          *%rax
9540
9541PUBLIC _sk_accumulate_avx
9542_sk_accumulate_avx LABEL PROC
9543  DB  72,173                              ; lods          %ds:(%rsi),%rax
9544  DB  197,124,16,128,128,0,0,0            ; vmovups       0x80(%rax),%ymm8
9545  DB  197,60,89,128,160,0,0,0             ; vmulps        0xa0(%rax),%ymm8,%ymm8
9546  DB  197,60,89,200                       ; vmulps        %ymm0,%ymm8,%ymm9
9547  DB  197,180,88,228                      ; vaddps        %ymm4,%ymm9,%ymm4
9548  DB  197,60,89,201                       ; vmulps        %ymm1,%ymm8,%ymm9
9549  DB  197,180,88,237                      ; vaddps        %ymm5,%ymm9,%ymm5
9550  DB  197,60,89,202                       ; vmulps        %ymm2,%ymm8,%ymm9
9551  DB  197,180,88,246                      ; vaddps        %ymm6,%ymm9,%ymm6
9552  DB  197,60,89,195                       ; vmulps        %ymm3,%ymm8,%ymm8
9553  DB  197,188,88,255                      ; vaddps        %ymm7,%ymm8,%ymm7
9554  DB  72,173                              ; lods          %ds:(%rsi),%rax
9555  DB  255,224                             ; jmpq          *%rax
9556
9557PUBLIC _sk_bilinear_nx_avx
9558_sk_bilinear_nx_avx LABEL PROC
9559  DB  72,173                              ; lods          %ds:(%rsi),%rax
9560  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
9561  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9562  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9563  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9564  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9565  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9566  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9567  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9568  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9569  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
9570  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9571  DB  72,173                              ; lods          %ds:(%rsi),%rax
9572  DB  255,224                             ; jmpq          *%rax
9573
9574PUBLIC _sk_bilinear_px_avx
9575_sk_bilinear_px_avx LABEL PROC
9576  DB  72,173                              ; lods          %ds:(%rsi),%rax
9577  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9578  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9579  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9580  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9581  DB  197,124,16,64,64                    ; vmovups       0x40(%rax),%ymm8
9582  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9583  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9584  DB  72,173                              ; lods          %ds:(%rsi),%rax
9585  DB  255,224                             ; jmpq          *%rax
9586
9587PUBLIC _sk_bilinear_ny_avx
9588_sk_bilinear_ny_avx LABEL PROC
9589  DB  72,173                              ; lods          %ds:(%rsi),%rax
9590  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
9591  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9592  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9593  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9594  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9595  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9596  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9597  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9598  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9599  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
9600  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9601  DB  72,173                              ; lods          %ds:(%rsi),%rax
9602  DB  255,224                             ; jmpq          *%rax
9603
9604PUBLIC _sk_bilinear_py_avx
9605_sk_bilinear_py_avx LABEL PROC
9606  DB  72,173                              ; lods          %ds:(%rsi),%rax
9607  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9608  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9609  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9610  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9611  DB  197,124,16,64,96                    ; vmovups       0x60(%rax),%ymm8
9612  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
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_n3x_avx
9618_sk_bicubic_n3x_avx LABEL PROC
9619  DB  72,173                              ; lods          %ds:(%rsi),%rax
9620  DB  65,184,0,0,192,191                  ; mov           $0xbfc00000,%r8d
9621  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9622  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9623  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9624  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
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,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
9630  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
9631  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
9632  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9633  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9634  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9635  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
9636  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9637  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9638  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9639  DB  196,65,44,89,192                    ; vmulps        %ymm8,%ymm10,%ymm8
9640  DB  196,65,60,88,195                    ; vaddps        %ymm11,%ymm8,%ymm8
9641  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9642  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9643  DB  72,173                              ; lods          %ds:(%rsi),%rax
9644  DB  255,224                             ; jmpq          *%rax
9645
9646PUBLIC _sk_bicubic_n1x_avx
9647_sk_bicubic_n1x_avx LABEL PROC
9648  DB  72,173                              ; lods          %ds:(%rsi),%rax
9649  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
9650  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9651  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9652  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9653  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9654  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9655  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9656  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9657  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9658  DB  197,60,92,64,64                     ; vsubps        0x40(%rax),%ymm8,%ymm8
9659  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
9660  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
9661  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
9662  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
9663  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9664  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9665  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9666  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9667  DB  196,65,52,89,200                    ; vmulps        %ymm8,%ymm9,%ymm9
9668  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9669  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9670  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9671  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9672  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9673  DB  196,65,60,89,201                    ; vmulps        %ymm9,%ymm8,%ymm9
9674  DB  196,65,44,88,201                    ; vaddps        %ymm9,%ymm10,%ymm9
9675  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
9676  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9677  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9678  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9679  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
9680  DB  196,65,44,88,192                    ; vaddps        %ymm8,%ymm10,%ymm8
9681  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9682  DB  72,173                              ; lods          %ds:(%rsi),%rax
9683  DB  255,224                             ; jmpq          *%rax
9684
9685PUBLIC _sk_bicubic_p1x_avx
9686_sk_bicubic_p1x_avx LABEL PROC
9687  DB  72,173                              ; lods          %ds:(%rsi),%rax
9688  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9689  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9690  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9691  DB  196,99,125,24,192,1                 ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm8
9692  DB  197,188,88,0                        ; vaddps        (%rax),%ymm8,%ymm0
9693  DB  197,124,16,72,64                    ; vmovups       0x40(%rax),%ymm9
9694  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
9695  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9696  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9697  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9698  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9699  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9700  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9701  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9702  DB  196,65,52,89,210                    ; vmulps        %ymm10,%ymm9,%ymm10
9703  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9704  DB  196,65,52,89,210                    ; vmulps        %ymm10,%ymm9,%ymm10
9705  DB  196,65,60,88,194                    ; vaddps        %ymm10,%ymm8,%ymm8
9706  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
9707  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9708  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9709  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9710  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9711  DB  196,65,44,88,192                    ; vaddps        %ymm8,%ymm10,%ymm8
9712  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9713  DB  72,173                              ; lods          %ds:(%rsi),%rax
9714  DB  255,224                             ; jmpq          *%rax
9715
9716PUBLIC _sk_bicubic_p3x_avx
9717_sk_bicubic_p3x_avx LABEL PROC
9718  DB  72,173                              ; lods          %ds:(%rsi),%rax
9719  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9720  DB  196,193,121,110,192                 ; vmovd         %r8d,%xmm0
9721  DB  196,227,121,4,192,0                 ; vpermilps     $0x0,%xmm0,%xmm0
9722  DB  196,227,125,24,192,1                ; vinsertf128   $0x1,%xmm0,%ymm0,%ymm0
9723  DB  197,252,88,0                        ; vaddps        (%rax),%ymm0,%ymm0
9724  DB  197,124,16,64,64                    ; vmovups       0x40(%rax),%ymm8
9725  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
9726  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
9727  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9728  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9729  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9730  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
9731  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9732  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9733  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9734  DB  196,65,60,89,194                    ; vmulps        %ymm10,%ymm8,%ymm8
9735  DB  196,65,60,88,195                    ; vaddps        %ymm11,%ymm8,%ymm8
9736  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9737  DB  197,124,17,128,128,0,0,0            ; vmovups       %ymm8,0x80(%rax)
9738  DB  72,173                              ; lods          %ds:(%rsi),%rax
9739  DB  255,224                             ; jmpq          *%rax
9740
9741PUBLIC _sk_bicubic_n3y_avx
9742_sk_bicubic_n3y_avx LABEL PROC
9743  DB  72,173                              ; lods          %ds:(%rsi),%rax
9744  DB  65,184,0,0,192,191                  ; mov           $0xbfc00000,%r8d
9745  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9746  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9747  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9748  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9749  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9750  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9751  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9752  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9753  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
9754  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
9755  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
9756  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9757  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9758  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9759  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
9760  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9761  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9762  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9763  DB  196,65,44,89,192                    ; vmulps        %ymm8,%ymm10,%ymm8
9764  DB  196,65,60,88,195                    ; vaddps        %ymm11,%ymm8,%ymm8
9765  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9766  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9767  DB  72,173                              ; lods          %ds:(%rsi),%rax
9768  DB  255,224                             ; jmpq          *%rax
9769
9770PUBLIC _sk_bicubic_n1y_avx
9771_sk_bicubic_n1y_avx LABEL PROC
9772  DB  72,173                              ; lods          %ds:(%rsi),%rax
9773  DB  65,184,0,0,0,191                    ; mov           $0xbf000000,%r8d
9774  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9775  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9776  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9777  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9778  DB  65,184,0,0,128,63                   ; mov           $0x3f800000,%r8d
9779  DB  196,65,121,110,192                  ; vmovd         %r8d,%xmm8
9780  DB  196,67,121,4,192,0                  ; vpermilps     $0x0,%xmm8,%xmm8
9781  DB  196,67,61,24,192,1                  ; vinsertf128   $0x1,%xmm8,%ymm8,%ymm8
9782  DB  197,60,92,64,96                     ; vsubps        0x60(%rax),%ymm8,%ymm8
9783  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
9784  DB  196,65,121,110,200                  ; vmovd         %r8d,%xmm9
9785  DB  196,67,121,4,201,0                  ; vpermilps     $0x0,%xmm9,%xmm9
9786  DB  196,67,53,24,201,1                  ; vinsertf128   $0x1,%xmm9,%ymm9,%ymm9
9787  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9788  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9789  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9790  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9791  DB  196,65,52,89,200                    ; vmulps        %ymm8,%ymm9,%ymm9
9792  DB  196,65,52,88,202                    ; vaddps        %ymm10,%ymm9,%ymm9
9793  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9794  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9795  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9796  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9797  DB  196,65,60,89,201                    ; vmulps        %ymm9,%ymm8,%ymm9
9798  DB  196,65,44,88,201                    ; vaddps        %ymm9,%ymm10,%ymm9
9799  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
9800  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9801  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9802  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9803  DB  196,65,60,89,193                    ; vmulps        %ymm9,%ymm8,%ymm8
9804  DB  196,65,44,88,192                    ; vaddps        %ymm8,%ymm10,%ymm8
9805  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9806  DB  72,173                              ; lods          %ds:(%rsi),%rax
9807  DB  255,224                             ; jmpq          *%rax
9808
9809PUBLIC _sk_bicubic_p1y_avx
9810_sk_bicubic_p1y_avx LABEL PROC
9811  DB  72,173                              ; lods          %ds:(%rsi),%rax
9812  DB  65,184,0,0,0,63                     ; mov           $0x3f000000,%r8d
9813  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9814  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9815  DB  196,99,117,24,193,1                 ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm8
9816  DB  197,188,88,72,32                    ; vaddps        0x20(%rax),%ymm8,%ymm1
9817  DB  197,124,16,72,96                    ; vmovups       0x60(%rax),%ymm9
9818  DB  65,184,85,85,149,191                ; mov           $0xbf955555,%r8d
9819  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9820  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9821  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9822  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9823  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9824  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9825  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9826  DB  196,65,52,89,210                    ; vmulps        %ymm10,%ymm9,%ymm10
9827  DB  196,65,44,88,211                    ; vaddps        %ymm11,%ymm10,%ymm10
9828  DB  196,65,52,89,210                    ; vmulps        %ymm10,%ymm9,%ymm10
9829  DB  196,65,60,88,194                    ; vaddps        %ymm10,%ymm8,%ymm8
9830  DB  65,184,57,142,99,61                 ; mov           $0x3d638e39,%r8d
9831  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9832  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9833  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9834  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9835  DB  196,65,44,88,192                    ; vaddps        %ymm8,%ymm10,%ymm8
9836  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9837  DB  72,173                              ; lods          %ds:(%rsi),%rax
9838  DB  255,224                             ; jmpq          *%rax
9839
9840PUBLIC _sk_bicubic_p3y_avx
9841_sk_bicubic_p3y_avx LABEL PROC
9842  DB  72,173                              ; lods          %ds:(%rsi),%rax
9843  DB  65,184,0,0,192,63                   ; mov           $0x3fc00000,%r8d
9844  DB  196,193,121,110,200                 ; vmovd         %r8d,%xmm1
9845  DB  196,227,121,4,201,0                 ; vpermilps     $0x0,%xmm1,%xmm1
9846  DB  196,227,117,24,201,1                ; vinsertf128   $0x1,%xmm1,%ymm1,%ymm1
9847  DB  197,244,88,72,32                    ; vaddps        0x20(%rax),%ymm1,%ymm1
9848  DB  197,124,16,64,96                    ; vmovups       0x60(%rax),%ymm8
9849  DB  196,65,60,89,200                    ; vmulps        %ymm8,%ymm8,%ymm9
9850  DB  65,184,114,28,199,62                ; mov           $0x3ec71c72,%r8d
9851  DB  196,65,121,110,208                  ; vmovd         %r8d,%xmm10
9852  DB  196,67,121,4,210,0                  ; vpermilps     $0x0,%xmm10,%xmm10
9853  DB  196,67,45,24,210,1                  ; vinsertf128   $0x1,%xmm10,%ymm10,%ymm10
9854  DB  65,184,171,170,170,190              ; mov           $0xbeaaaaab,%r8d
9855  DB  196,65,121,110,216                  ; vmovd         %r8d,%xmm11
9856  DB  196,67,121,4,219,0                  ; vpermilps     $0x0,%xmm11,%xmm11
9857  DB  196,67,37,24,219,1                  ; vinsertf128   $0x1,%xmm11,%ymm11,%ymm11
9858  DB  196,65,60,89,194                    ; vmulps        %ymm10,%ymm8,%ymm8
9859  DB  196,65,60,88,195                    ; vaddps        %ymm11,%ymm8,%ymm8
9860  DB  196,65,52,89,192                    ; vmulps        %ymm8,%ymm9,%ymm8
9861  DB  197,124,17,128,160,0,0,0            ; vmovups       %ymm8,0xa0(%rax)
9862  DB  72,173                              ; lods          %ds:(%rsi),%rax
9863  DB  255,224                             ; jmpq          *%rax
9864
9865PUBLIC _sk_callback_avx
9866_sk_callback_avx LABEL PROC
9867  DB  65,87                               ; push          %r15
9868  DB  65,86                               ; push          %r14
9869  DB  83                                  ; push          %rbx
9870  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
9871  DB  197,252,17,188,36,128,0,0,0         ; vmovups       %ymm7,0x80(%rsp)
9872  DB  197,252,17,116,36,96                ; vmovups       %ymm6,0x60(%rsp)
9873  DB  197,252,17,108,36,64                ; vmovups       %ymm5,0x40(%rsp)
9874  DB  197,252,17,100,36,32                ; vmovups       %ymm4,0x20(%rsp)
9875  DB  73,137,207                          ; mov           %rcx,%r15
9876  DB  73,137,214                          ; mov           %rdx,%r14
9877  DB  72,173                              ; lods          %ds:(%rsi),%rax
9878  DB  72,137,195                          ; mov           %rax,%rbx
9879  DB  197,252,20,225                      ; vunpcklps     %ymm1,%ymm0,%ymm4
9880  DB  197,252,21,193                      ; vunpckhps     %ymm1,%ymm0,%ymm0
9881  DB  197,236,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm1
9882  DB  197,236,21,211                      ; vunpckhps     %ymm3,%ymm2,%ymm2
9883  DB  197,221,20,217                      ; vunpcklpd     %ymm1,%ymm4,%ymm3
9884  DB  197,221,21,201                      ; vunpckhpd     %ymm1,%ymm4,%ymm1
9885  DB  197,253,20,226                      ; vunpcklpd     %ymm2,%ymm0,%ymm4
9886  DB  197,253,21,194                      ; vunpckhpd     %ymm2,%ymm0,%ymm0
9887  DB  196,227,101,24,209,1                ; vinsertf128   $0x1,%xmm1,%ymm3,%ymm2
9888  DB  196,227,93,24,232,1                 ; vinsertf128   $0x1,%xmm0,%ymm4,%ymm5
9889  DB  196,227,101,6,201,49                ; vperm2f128    $0x31,%ymm1,%ymm3,%ymm1
9890  DB  196,227,93,6,192,49                 ; vperm2f128    $0x31,%ymm0,%ymm4,%ymm0
9891  DB  197,253,17,83,8                     ; vmovupd       %ymm2,0x8(%rbx)
9892  DB  197,253,17,107,40                   ; vmovupd       %ymm5,0x28(%rbx)
9893  DB  197,253,17,75,72                    ; vmovupd       %ymm1,0x48(%rbx)
9894  DB  197,253,17,67,104                   ; vmovupd       %ymm0,0x68(%rbx)
9895  DB  77,133,255                          ; test          %r15,%r15
9896  DB  186,8,0,0,0                         ; mov           $0x8,%edx
9897  DB  65,15,69,215                        ; cmovne        %r15d,%edx
9898  DB  72,137,217                          ; mov           %rbx,%rcx
9899  DB  197,248,119                         ; vzeroupper
9900  DB  255,19                              ; callq         *(%rbx)
9901  DB  72,139,131,136,0,0,0                ; mov           0x88(%rbx),%rax
9902  DB  197,248,16,0                        ; vmovups       (%rax),%xmm0
9903  DB  197,248,16,72,16                    ; vmovups       0x10(%rax),%xmm1
9904  DB  197,248,16,80,32                    ; vmovups       0x20(%rax),%xmm2
9905  DB  197,248,16,88,48                    ; vmovups       0x30(%rax),%xmm3
9906  DB  196,227,101,24,88,112,1             ; vinsertf128   $0x1,0x70(%rax),%ymm3,%ymm3
9907  DB  196,227,109,24,80,96,1              ; vinsertf128   $0x1,0x60(%rax),%ymm2,%ymm2
9908  DB  196,227,117,24,72,80,1              ; vinsertf128   $0x1,0x50(%rax),%ymm1,%ymm1
9909  DB  196,227,125,24,64,64,1              ; vinsertf128   $0x1,0x40(%rax),%ymm0,%ymm0
9910  DB  197,252,20,225                      ; vunpcklps     %ymm1,%ymm0,%ymm4
9911  DB  197,252,21,233                      ; vunpckhps     %ymm1,%ymm0,%ymm5
9912  DB  197,236,20,203                      ; vunpcklps     %ymm3,%ymm2,%ymm1
9913  DB  197,236,21,219                      ; vunpckhps     %ymm3,%ymm2,%ymm3
9914  DB  197,221,20,193                      ; vunpcklpd     %ymm1,%ymm4,%ymm0
9915  DB  197,221,21,201                      ; vunpckhpd     %ymm1,%ymm4,%ymm1
9916  DB  197,213,20,211                      ; vunpcklpd     %ymm3,%ymm5,%ymm2
9917  DB  197,213,21,219                      ; vunpckhpd     %ymm3,%ymm5,%ymm3
9918  DB  72,173                              ; lods          %ds:(%rsi),%rax
9919  DB  76,137,242                          ; mov           %r14,%rdx
9920  DB  76,137,249                          ; mov           %r15,%rcx
9921  DB  197,252,16,100,36,32                ; vmovups       0x20(%rsp),%ymm4
9922  DB  197,252,16,108,36,64                ; vmovups       0x40(%rsp),%ymm5
9923  DB  197,252,16,116,36,96                ; vmovups       0x60(%rsp),%ymm6
9924  DB  197,252,16,188,36,128,0,0,0         ; vmovups       0x80(%rsp),%ymm7
9925  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
9926  DB  91                                  ; pop           %rbx
9927  DB  65,94                               ; pop           %r14
9928  DB  65,95                               ; pop           %r15
9929  DB  255,224                             ; jmpq          *%rax
9930
9931ALIGN 4
9932  DB  0,0                                 ; add           %al,(%rax)
9933  DB  0,63                                ; add           %bh,(%rdi)
9934  DB  0,0                                 ; add           %al,(%rax)
9935  DB  128                                 ; .byte         0x80
9936  DB  63                                  ; (bad)
9937ALIGN 32
9938
9939PUBLIC _sk_start_pipeline_sse41
9940_sk_start_pipeline_sse41 LABEL PROC
9941  DB  65,87                               ; push          %r15
9942  DB  65,86                               ; push          %r14
9943  DB  65,85                               ; push          %r13
9944  DB  65,84                               ; push          %r12
9945  DB  86                                  ; push          %rsi
9946  DB  87                                  ; push          %rdi
9947  DB  83                                  ; push          %rbx
9948  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
9949  DB  68,15,41,188,36,144,0,0,0           ; movaps        %xmm15,0x90(%rsp)
9950  DB  68,15,41,180,36,128,0,0,0           ; movaps        %xmm14,0x80(%rsp)
9951  DB  68,15,41,108,36,112                 ; movaps        %xmm13,0x70(%rsp)
9952  DB  68,15,41,100,36,96                  ; movaps        %xmm12,0x60(%rsp)
9953  DB  68,15,41,92,36,80                   ; movaps        %xmm11,0x50(%rsp)
9954  DB  68,15,41,84,36,64                   ; movaps        %xmm10,0x40(%rsp)
9955  DB  68,15,41,76,36,48                   ; movaps        %xmm9,0x30(%rsp)
9956  DB  68,15,41,68,36,32                   ; movaps        %xmm8,0x20(%rsp)
9957  DB  15,41,124,36,16                     ; movaps        %xmm7,0x10(%rsp)
9958  DB  15,41,52,36                         ; movaps        %xmm6,(%rsp)
9959  DB  77,137,207                          ; mov           %r9,%r15
9960  DB  77,137,198                          ; mov           %r8,%r14
9961  DB  72,137,203                          ; mov           %rcx,%rbx
9962  DB  72,137,214                          ; mov           %rdx,%rsi
9963  DB  72,173                              ; lods          %ds:(%rsi),%rax
9964  DB  73,137,196                          ; mov           %rax,%r12
9965  DB  73,137,245                          ; mov           %rsi,%r13
9966  DB  72,141,67,4                         ; lea           0x4(%rbx),%rax
9967  DB  76,57,248                           ; cmp           %r15,%rax
9968  DB  118,5                               ; jbe           73 <_sk_start_pipeline_sse41+0x73>
9969  DB  72,137,216                          ; mov           %rbx,%rax
9970  DB  235,52                              ; jmp           a7 <_sk_start_pipeline_sse41+0xa7>
9971  DB  15,87,192                           ; xorps         %xmm0,%xmm0
9972  DB  15,87,201                           ; xorps         %xmm1,%xmm1
9973  DB  15,87,210                           ; xorps         %xmm2,%xmm2
9974  DB  15,87,219                           ; xorps         %xmm3,%xmm3
9975  DB  15,87,228                           ; xorps         %xmm4,%xmm4
9976  DB  15,87,237                           ; xorps         %xmm5,%xmm5
9977  DB  15,87,246                           ; xorps         %xmm6,%xmm6
9978  DB  15,87,255                           ; xorps         %xmm7,%xmm7
9979  DB  72,137,223                          ; mov           %rbx,%rdi
9980  DB  76,137,238                          ; mov           %r13,%rsi
9981  DB  76,137,242                          ; mov           %r14,%rdx
9982  DB  65,255,212                          ; callq         *%r12
9983  DB  72,141,67,4                         ; lea           0x4(%rbx),%rax
9984  DB  72,131,195,8                        ; add           $0x8,%rbx
9985  DB  76,57,251                           ; cmp           %r15,%rbx
9986  DB  72,137,195                          ; mov           %rax,%rbx
9987  DB  118,204                             ; jbe           73 <_sk_start_pipeline_sse41+0x73>
9988  DB  15,40,52,36                         ; movaps        (%rsp),%xmm6
9989  DB  15,40,124,36,16                     ; movaps        0x10(%rsp),%xmm7
9990  DB  68,15,40,68,36,32                   ; movaps        0x20(%rsp),%xmm8
9991  DB  68,15,40,76,36,48                   ; movaps        0x30(%rsp),%xmm9
9992  DB  68,15,40,84,36,64                   ; movaps        0x40(%rsp),%xmm10
9993  DB  68,15,40,92,36,80                   ; movaps        0x50(%rsp),%xmm11
9994  DB  68,15,40,100,36,96                  ; movaps        0x60(%rsp),%xmm12
9995  DB  68,15,40,108,36,112                 ; movaps        0x70(%rsp),%xmm13
9996  DB  68,15,40,180,36,128,0,0,0           ; movaps        0x80(%rsp),%xmm14
9997  DB  68,15,40,188,36,144,0,0,0           ; movaps        0x90(%rsp),%xmm15
9998  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
9999  DB  91                                  ; pop           %rbx
10000  DB  95                                  ; pop           %rdi
10001  DB  94                                  ; pop           %rsi
10002  DB  65,92                               ; pop           %r12
10003  DB  65,93                               ; pop           %r13
10004  DB  65,94                               ; pop           %r14
10005  DB  65,95                               ; pop           %r15
10006  DB  195                                 ; retq
10007
10008PUBLIC _sk_just_return_sse41
10009_sk_just_return_sse41 LABEL PROC
10010  DB  195                                 ; retq
10011
10012PUBLIC _sk_seed_shader_sse41
10013_sk_seed_shader_sse41 LABEL PROC
10014  DB  72,173                              ; lods          %ds:(%rsi),%rax
10015  DB  102,15,110,199                      ; movd          %edi,%xmm0
10016  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
10017  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
10018  DB  15,40,21,129,64,0,0                 ; movaps        0x4081(%rip),%xmm2        # 4190 <_sk_callback_sse41+0xb6>
10019  DB  15,88,202                           ; addps         %xmm2,%xmm1
10020  DB  15,16,2                             ; movups        (%rdx),%xmm0
10021  DB  15,88,193                           ; addps         %xmm1,%xmm0
10022  DB  102,15,110,8                        ; movd          (%rax),%xmm1
10023  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
10024  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
10025  DB  15,88,202                           ; addps         %xmm2,%xmm1
10026  DB  72,173                              ; lods          %ds:(%rsi),%rax
10027  DB  15,40,21,112,64,0,0                 ; movaps        0x4070(%rip),%xmm2        # 41a0 <_sk_callback_sse41+0xc6>
10028  DB  15,87,219                           ; xorps         %xmm3,%xmm3
10029  DB  15,87,228                           ; xorps         %xmm4,%xmm4
10030  DB  15,87,237                           ; xorps         %xmm5,%xmm5
10031  DB  15,87,246                           ; xorps         %xmm6,%xmm6
10032  DB  15,87,255                           ; xorps         %xmm7,%xmm7
10033  DB  255,224                             ; jmpq          *%rax
10034
10035PUBLIC _sk_constant_color_sse41
10036_sk_constant_color_sse41 LABEL PROC
10037  DB  72,173                              ; lods          %ds:(%rsi),%rax
10038  DB  243,15,16,0                         ; movss         (%rax),%xmm0
10039  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
10040  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
10041  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
10042  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
10043  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10044  DB  243,15,16,88,12                     ; movss         0xc(%rax),%xmm3
10045  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
10046  DB  72,173                              ; lods          %ds:(%rsi),%rax
10047  DB  255,224                             ; jmpq          *%rax
10048
10049PUBLIC _sk_clear_sse41
10050_sk_clear_sse41 LABEL PROC
10051  DB  72,173                              ; lods          %ds:(%rsi),%rax
10052  DB  15,87,192                           ; xorps         %xmm0,%xmm0
10053  DB  15,87,201                           ; xorps         %xmm1,%xmm1
10054  DB  15,87,210                           ; xorps         %xmm2,%xmm2
10055  DB  15,87,219                           ; xorps         %xmm3,%xmm3
10056  DB  255,224                             ; jmpq          *%rax
10057
10058PUBLIC _sk_srcatop_sse41
10059_sk_srcatop_sse41 LABEL PROC
10060  DB  15,89,199                           ; mulps         %xmm7,%xmm0
10061  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10062  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10063  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10064  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
10065  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10066  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
10067  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
10068  DB  15,89,207                           ; mulps         %xmm7,%xmm1
10069  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10070  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10071  DB  65,15,88,201                        ; addps         %xmm9,%xmm1
10072  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10073  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10074  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10075  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
10076  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10077  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10078  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
10079  DB  72,173                              ; lods          %ds:(%rsi),%rax
10080  DB  255,224                             ; jmpq          *%rax
10081
10082PUBLIC _sk_dstatop_sse41
10083_sk_dstatop_sse41 LABEL PROC
10084  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10085  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
10086  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10087  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
10088  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
10089  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
10090  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
10091  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
10092  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10093  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
10094  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
10095  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
10096  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10097  DB  68,15,89,198                        ; mulps         %xmm6,%xmm8
10098  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
10099  DB  65,15,88,208                        ; addps         %xmm8,%xmm2
10100  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
10101  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10102  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
10103  DB  72,173                              ; lods          %ds:(%rsi),%rax
10104  DB  255,224                             ; jmpq          *%rax
10105
10106PUBLIC _sk_srcin_sse41
10107_sk_srcin_sse41 LABEL PROC
10108  DB  15,89,199                           ; mulps         %xmm7,%xmm0
10109  DB  15,89,207                           ; mulps         %xmm7,%xmm1
10110  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10111  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10112  DB  72,173                              ; lods          %ds:(%rsi),%rax
10113  DB  255,224                             ; jmpq          *%rax
10114
10115PUBLIC _sk_dstin_sse41
10116_sk_dstin_sse41 LABEL PROC
10117  DB  15,40,195                           ; movaps        %xmm3,%xmm0
10118  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10119  DB  15,40,203                           ; movaps        %xmm3,%xmm1
10120  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10121  DB  15,40,211                           ; movaps        %xmm3,%xmm2
10122  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10123  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10124  DB  72,173                              ; lods          %ds:(%rsi),%rax
10125  DB  255,224                             ; jmpq          *%rax
10126
10127PUBLIC _sk_srcout_sse41
10128_sk_srcout_sse41 LABEL PROC
10129  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10130  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10131  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10132  DB  68,15,92,199                        ; subps         %xmm7,%xmm8
10133  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
10134  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
10135  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
10136  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
10137  DB  72,173                              ; lods          %ds:(%rsi),%rax
10138  DB  255,224                             ; jmpq          *%rax
10139
10140PUBLIC _sk_dstout_sse41
10141_sk_dstout_sse41 LABEL PROC
10142  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10143  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10144  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10145  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
10146  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10147  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10148  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10149  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10150  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10151  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10152  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10153  DB  72,173                              ; lods          %ds:(%rsi),%rax
10154  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
10155  DB  255,224                             ; jmpq          *%rax
10156
10157PUBLIC _sk_srcover_sse41
10158_sk_srcover_sse41 LABEL PROC
10159  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10160  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10161  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10162  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
10163  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10164  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
10165  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
10166  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10167  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10168  DB  65,15,88,201                        ; addps         %xmm9,%xmm1
10169  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10170  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10171  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
10172  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10173  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
10174  DB  72,173                              ; lods          %ds:(%rsi),%rax
10175  DB  255,224                             ; jmpq          *%rax
10176
10177PUBLIC _sk_dstover_sse41
10178_sk_dstover_sse41 LABEL PROC
10179  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10180  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10181  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10182  DB  68,15,92,199                        ; subps         %xmm7,%xmm8
10183  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
10184  DB  15,88,196                           ; addps         %xmm4,%xmm0
10185  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
10186  DB  15,88,205                           ; addps         %xmm5,%xmm1
10187  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
10188  DB  15,88,214                           ; addps         %xmm6,%xmm2
10189  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
10190  DB  15,88,223                           ; addps         %xmm7,%xmm3
10191  DB  72,173                              ; lods          %ds:(%rsi),%rax
10192  DB  255,224                             ; jmpq          *%rax
10193
10194PUBLIC _sk_modulate_sse41
10195_sk_modulate_sse41 LABEL PROC
10196  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10197  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10198  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10199  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10200  DB  72,173                              ; lods          %ds:(%rsi),%rax
10201  DB  255,224                             ; jmpq          *%rax
10202
10203PUBLIC _sk_multiply_sse41
10204_sk_multiply_sse41 LABEL PROC
10205  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10206  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10207  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10208  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10209  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
10210  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
10211  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
10212  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
10213  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
10214  DB  68,15,89,220                        ; mulps         %xmm4,%xmm11
10215  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
10216  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10217  DB  65,15,88,195                        ; addps         %xmm11,%xmm0
10218  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
10219  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
10220  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
10221  DB  68,15,89,221                        ; mulps         %xmm5,%xmm11
10222  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
10223  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10224  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
10225  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
10226  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
10227  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
10228  DB  68,15,89,222                        ; mulps         %xmm6,%xmm11
10229  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
10230  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10231  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
10232  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
10233  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10234  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
10235  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10236  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
10237  DB  72,173                              ; lods          %ds:(%rsi),%rax
10238  DB  255,224                             ; jmpq          *%rax
10239
10240PUBLIC _sk_plus__sse41
10241_sk_plus__sse41 LABEL PROC
10242  DB  15,88,196                           ; addps         %xmm4,%xmm0
10243  DB  15,88,205                           ; addps         %xmm5,%xmm1
10244  DB  15,88,214                           ; addps         %xmm6,%xmm2
10245  DB  15,88,223                           ; addps         %xmm7,%xmm3
10246  DB  72,173                              ; lods          %ds:(%rsi),%rax
10247  DB  255,224                             ; jmpq          *%rax
10248
10249PUBLIC _sk_screen_sse41
10250_sk_screen_sse41 LABEL PROC
10251  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
10252  DB  68,15,88,196                        ; addps         %xmm4,%xmm8
10253  DB  15,89,196                           ; mulps         %xmm4,%xmm0
10254  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
10255  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
10256  DB  68,15,88,205                        ; addps         %xmm5,%xmm9
10257  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10258  DB  68,15,92,201                        ; subps         %xmm1,%xmm9
10259  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
10260  DB  68,15,88,214                        ; addps         %xmm6,%xmm10
10261  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10262  DB  68,15,92,210                        ; subps         %xmm2,%xmm10
10263  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
10264  DB  68,15,88,223                        ; addps         %xmm7,%xmm11
10265  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10266  DB  68,15,92,219                        ; subps         %xmm3,%xmm11
10267  DB  72,173                              ; lods          %ds:(%rsi),%rax
10268  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10269  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
10270  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10271  DB  65,15,40,219                        ; movaps        %xmm11,%xmm3
10272  DB  255,224                             ; jmpq          *%rax
10273
10274PUBLIC _sk_xor__sse41
10275_sk_xor__sse41 LABEL PROC
10276  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10277  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10278  DB  102,15,110,216                      ; movd          %eax,%xmm3
10279  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
10280  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10281  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
10282  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
10283  DB  65,15,92,216                        ; subps         %xmm8,%xmm3
10284  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
10285  DB  68,15,89,212                        ; mulps         %xmm4,%xmm10
10286  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
10287  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
10288  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
10289  DB  68,15,89,213                        ; mulps         %xmm5,%xmm10
10290  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
10291  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
10292  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
10293  DB  68,15,89,214                        ; mulps         %xmm6,%xmm10
10294  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
10295  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
10296  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10297  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
10298  DB  72,173                              ; lods          %ds:(%rsi),%rax
10299  DB  255,224                             ; jmpq          *%rax
10300
10301PUBLIC _sk_darken_sse41
10302_sk_darken_sse41 LABEL PROC
10303  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
10304  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10305  DB  15,88,196                           ; addps         %xmm4,%xmm0
10306  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
10307  DB  15,40,203                           ; movaps        %xmm3,%xmm1
10308  DB  15,89,204                           ; mulps         %xmm4,%xmm1
10309  DB  68,15,95,201                        ; maxps         %xmm1,%xmm9
10310  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
10311  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10312  DB  15,88,205                           ; addps         %xmm5,%xmm1
10313  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10314  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10315  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10316  DB  69,15,95,193                        ; maxps         %xmm9,%xmm8
10317  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
10318  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
10319  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
10320  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10321  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10322  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10323  DB  65,15,95,209                        ; maxps         %xmm9,%xmm2
10324  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
10325  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10326  DB  102,15,110,208                      ; movd          %eax,%xmm2
10327  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10328  DB  15,92,211                           ; subps         %xmm3,%xmm2
10329  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10330  DB  15,88,218                           ; addps         %xmm2,%xmm3
10331  DB  72,173                              ; lods          %ds:(%rsi),%rax
10332  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10333  DB  255,224                             ; jmpq          *%rax
10334
10335PUBLIC _sk_lighten_sse41
10336_sk_lighten_sse41 LABEL PROC
10337  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
10338  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10339  DB  15,88,196                           ; addps         %xmm4,%xmm0
10340  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
10341  DB  15,40,203                           ; movaps        %xmm3,%xmm1
10342  DB  15,89,204                           ; mulps         %xmm4,%xmm1
10343  DB  68,15,93,201                        ; minps         %xmm1,%xmm9
10344  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
10345  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10346  DB  15,88,205                           ; addps         %xmm5,%xmm1
10347  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10348  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10349  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10350  DB  69,15,93,193                        ; minps         %xmm9,%xmm8
10351  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
10352  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
10353  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
10354  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10355  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10356  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10357  DB  65,15,93,209                        ; minps         %xmm9,%xmm2
10358  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
10359  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10360  DB  102,15,110,208                      ; movd          %eax,%xmm2
10361  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10362  DB  15,92,211                           ; subps         %xmm3,%xmm2
10363  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10364  DB  15,88,218                           ; addps         %xmm2,%xmm3
10365  DB  72,173                              ; lods          %ds:(%rsi),%rax
10366  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10367  DB  255,224                             ; jmpq          *%rax
10368
10369PUBLIC _sk_difference_sse41
10370_sk_difference_sse41 LABEL PROC
10371  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
10372  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10373  DB  15,88,196                           ; addps         %xmm4,%xmm0
10374  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
10375  DB  15,40,203                           ; movaps        %xmm3,%xmm1
10376  DB  15,89,204                           ; mulps         %xmm4,%xmm1
10377  DB  68,15,93,201                        ; minps         %xmm1,%xmm9
10378  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
10379  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
10380  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10381  DB  15,88,205                           ; addps         %xmm5,%xmm1
10382  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
10383  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10384  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10385  DB  69,15,93,193                        ; minps         %xmm9,%xmm8
10386  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
10387  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
10388  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
10389  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
10390  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10391  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10392  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10393  DB  65,15,93,209                        ; minps         %xmm9,%xmm2
10394  DB  15,88,210                           ; addps         %xmm2,%xmm2
10395  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
10396  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10397  DB  102,15,110,208                      ; movd          %eax,%xmm2
10398  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10399  DB  15,92,211                           ; subps         %xmm3,%xmm2
10400  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10401  DB  15,88,218                           ; addps         %xmm2,%xmm3
10402  DB  72,173                              ; lods          %ds:(%rsi),%rax
10403  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10404  DB  255,224                             ; jmpq          *%rax
10405
10406PUBLIC _sk_exclusion_sse41
10407_sk_exclusion_sse41 LABEL PROC
10408  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
10409  DB  15,40,200                           ; movaps        %xmm0,%xmm1
10410  DB  15,88,196                           ; addps         %xmm4,%xmm0
10411  DB  15,89,204                           ; mulps         %xmm4,%xmm1
10412  DB  15,88,201                           ; addps         %xmm1,%xmm1
10413  DB  15,92,193                           ; subps         %xmm1,%xmm0
10414  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
10415  DB  15,88,205                           ; addps         %xmm5,%xmm1
10416  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
10417  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
10418  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
10419  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
10420  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
10421  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10422  DB  15,88,210                           ; addps         %xmm2,%xmm2
10423  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
10424  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10425  DB  102,15,110,208                      ; movd          %eax,%xmm2
10426  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10427  DB  15,92,211                           ; subps         %xmm3,%xmm2
10428  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10429  DB  15,88,218                           ; addps         %xmm2,%xmm3
10430  DB  72,173                              ; lods          %ds:(%rsi),%rax
10431  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10432  DB  255,224                             ; jmpq          *%rax
10433
10434PUBLIC _sk_colorburn_sse41
10435_sk_colorburn_sse41 LABEL PROC
10436  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10437  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10438  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
10439  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
10440  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
10441  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
10442  DB  69,15,40,227                        ; movaps        %xmm11,%xmm12
10443  DB  69,15,89,225                        ; mulps         %xmm9,%xmm12
10444  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
10445  DB  15,40,199                           ; movaps        %xmm7,%xmm0
10446  DB  15,92,196                           ; subps         %xmm4,%xmm0
10447  DB  15,89,195                           ; mulps         %xmm3,%xmm0
10448  DB  65,15,94,193                        ; divps         %xmm9,%xmm0
10449  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10450  DB  68,15,93,232                        ; minps         %xmm0,%xmm13
10451  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10452  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
10453  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10454  DB  65,15,194,192,0                     ; cmpeqps       %xmm8,%xmm0
10455  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
10456  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
10457  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
10458  DB  102,69,15,56,20,241                 ; blendvps      %xmm0,%xmm9,%xmm14
10459  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
10460  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
10461  DB  68,15,88,228                        ; addps         %xmm4,%xmm12
10462  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10463  DB  15,194,199,0                        ; cmpeqps       %xmm7,%xmm0
10464  DB  69,15,88,206                        ; addps         %xmm14,%xmm9
10465  DB  102,69,15,56,20,204                 ; blendvps      %xmm0,%xmm12,%xmm9
10466  DB  69,15,40,227                        ; movaps        %xmm11,%xmm12
10467  DB  68,15,89,225                        ; mulps         %xmm1,%xmm12
10468  DB  15,40,199                           ; movaps        %xmm7,%xmm0
10469  DB  15,92,197                           ; subps         %xmm5,%xmm0
10470  DB  15,89,195                           ; mulps         %xmm3,%xmm0
10471  DB  15,94,193                           ; divps         %xmm1,%xmm0
10472  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10473  DB  68,15,93,232                        ; minps         %xmm0,%xmm13
10474  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10475  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
10476  DB  15,40,193                           ; movaps        %xmm1,%xmm0
10477  DB  65,15,194,192,0                     ; cmpeqps       %xmm8,%xmm0
10478  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
10479  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
10480  DB  102,68,15,56,20,241                 ; blendvps      %xmm0,%xmm1,%xmm14
10481  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
10482  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10483  DB  68,15,88,229                        ; addps         %xmm5,%xmm12
10484  DB  65,15,88,206                        ; addps         %xmm14,%xmm1
10485  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10486  DB  15,194,199,0                        ; cmpeqps       %xmm7,%xmm0
10487  DB  102,65,15,56,20,204                 ; blendvps      %xmm0,%xmm12,%xmm1
10488  DB  15,40,199                           ; movaps        %xmm7,%xmm0
10489  DB  15,92,198                           ; subps         %xmm6,%xmm0
10490  DB  15,89,195                           ; mulps         %xmm3,%xmm0
10491  DB  15,94,194                           ; divps         %xmm2,%xmm0
10492  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
10493  DB  68,15,93,224                        ; minps         %xmm0,%xmm12
10494  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10495  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
10496  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
10497  DB  68,15,194,194,0                     ; cmpeqps       %xmm2,%xmm8
10498  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
10499  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
10500  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10501  DB  102,68,15,56,20,234                 ; blendvps      %xmm0,%xmm2,%xmm13
10502  DB  68,15,88,222                        ; addps         %xmm6,%xmm11
10503  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10504  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10505  DB  65,15,88,213                        ; addps         %xmm13,%xmm2
10506  DB  15,40,198                           ; movaps        %xmm6,%xmm0
10507  DB  15,194,199,0                        ; cmpeqps       %xmm7,%xmm0
10508  DB  102,65,15,56,20,211                 ; blendvps      %xmm0,%xmm11,%xmm2
10509  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10510  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
10511  DB  72,173                              ; lods          %ds:(%rsi),%rax
10512  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10513  DB  255,224                             ; jmpq          *%rax
10514
10515PUBLIC _sk_colordodge_sse41
10516_sk_colordodge_sse41 LABEL PROC
10517  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
10518  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10519  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
10520  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
10521  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
10522  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
10523  DB  69,15,40,227                        ; movaps        %xmm11,%xmm12
10524  DB  69,15,89,224                        ; mulps         %xmm8,%xmm12
10525  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
10526  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
10527  DB  15,40,195                           ; movaps        %xmm3,%xmm0
10528  DB  65,15,92,192                        ; subps         %xmm8,%xmm0
10529  DB  68,15,94,200                        ; divps         %xmm0,%xmm9
10530  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10531  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10532  DB  69,15,93,241                        ; minps         %xmm9,%xmm14
10533  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10534  DB  15,194,195,0                        ; cmpeqps       %xmm3,%xmm0
10535  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
10536  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
10537  DB  102,69,15,56,20,240                 ; blendvps      %xmm0,%xmm8,%xmm14
10538  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
10539  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
10540  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
10541  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
10542  DB  68,15,88,228                        ; addps         %xmm4,%xmm12
10543  DB  69,15,88,198                        ; addps         %xmm14,%xmm8
10544  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10545  DB  65,15,194,193,0                     ; cmpeqps       %xmm9,%xmm0
10546  DB  102,69,15,56,20,196                 ; blendvps      %xmm0,%xmm12,%xmm8
10547  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
10548  DB  68,15,89,229                        ; mulps         %xmm5,%xmm12
10549  DB  15,40,195                           ; movaps        %xmm3,%xmm0
10550  DB  15,92,193                           ; subps         %xmm1,%xmm0
10551  DB  68,15,94,224                        ; divps         %xmm0,%xmm12
10552  DB  69,15,40,243                        ; movaps        %xmm11,%xmm14
10553  DB  68,15,89,241                        ; mulps         %xmm1,%xmm14
10554  DB  69,15,93,236                        ; minps         %xmm12,%xmm13
10555  DB  15,40,193                           ; movaps        %xmm1,%xmm0
10556  DB  15,194,195,0                        ; cmpeqps       %xmm3,%xmm0
10557  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
10558  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
10559  DB  102,68,15,56,20,233                 ; blendvps      %xmm0,%xmm1,%xmm13
10560  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
10561  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10562  DB  68,15,88,245                        ; addps         %xmm5,%xmm14
10563  DB  65,15,88,205                        ; addps         %xmm13,%xmm1
10564  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10565  DB  65,15,194,193,0                     ; cmpeqps       %xmm9,%xmm0
10566  DB  102,65,15,56,20,206                 ; blendvps      %xmm0,%xmm14,%xmm1
10567  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
10568  DB  68,15,89,230                        ; mulps         %xmm6,%xmm12
10569  DB  15,40,195                           ; movaps        %xmm3,%xmm0
10570  DB  15,92,194                           ; subps         %xmm2,%xmm0
10571  DB  68,15,94,224                        ; divps         %xmm0,%xmm12
10572  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10573  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
10574  DB  69,15,93,236                        ; minps         %xmm12,%xmm13
10575  DB  15,40,194                           ; movaps        %xmm2,%xmm0
10576  DB  15,194,195,0                        ; cmpeqps       %xmm3,%xmm0
10577  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
10578  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
10579  DB  102,68,15,56,20,234                 ; blendvps      %xmm0,%xmm2,%xmm13
10580  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10581  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10582  DB  65,15,88,213                        ; addps         %xmm13,%xmm2
10583  DB  68,15,194,206,0                     ; cmpeqps       %xmm6,%xmm9
10584  DB  68,15,88,222                        ; addps         %xmm6,%xmm11
10585  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10586  DB  102,65,15,56,20,211                 ; blendvps      %xmm0,%xmm11,%xmm2
10587  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10588  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
10589  DB  72,173                              ; lods          %ds:(%rsi),%rax
10590  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10591  DB  255,224                             ; jmpq          *%rax
10592
10593PUBLIC _sk_hardlight_sse41
10594_sk_hardlight_sse41 LABEL PROC
10595  DB  72,131,236,24                       ; sub           $0x18,%rsp
10596  DB  15,41,52,36                         ; movaps        %xmm6,(%rsp)
10597  DB  68,15,40,229                        ; movaps        %xmm5,%xmm12
10598  DB  15,40,244                           ; movaps        %xmm4,%xmm6
10599  DB  15,40,227                           ; movaps        %xmm3,%xmm4
10600  DB  15,40,234                           ; movaps        %xmm2,%xmm5
10601  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
10602  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10603  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
10604  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
10605  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10606  DB  15,92,215                           ; subps         %xmm7,%xmm2
10607  DB  15,40,194                           ; movaps        %xmm2,%xmm0
10608  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
10609  DB  68,15,92,212                        ; subps         %xmm4,%xmm10
10610  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
10611  DB  68,15,89,198                        ; mulps         %xmm6,%xmm8
10612  DB  68,15,88,192                        ; addps         %xmm0,%xmm8
10613  DB  68,15,40,252                        ; movaps        %xmm4,%xmm15
10614  DB  69,15,92,249                        ; subps         %xmm9,%xmm15
10615  DB  15,89,223                           ; mulps         %xmm7,%xmm3
10616  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10617  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10618  DB  15,40,199                           ; movaps        %xmm7,%xmm0
10619  DB  15,92,198                           ; subps         %xmm6,%xmm0
10620  DB  65,15,89,199                        ; mulps         %xmm15,%xmm0
10621  DB  15,88,192                           ; addps         %xmm0,%xmm0
10622  DB  68,15,40,251                        ; movaps        %xmm3,%xmm15
10623  DB  68,15,92,248                        ; subps         %xmm0,%xmm15
10624  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10625  DB  15,88,192                           ; addps         %xmm0,%xmm0
10626  DB  15,194,196,2                        ; cmpleps       %xmm4,%xmm0
10627  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10628  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
10629  DB  102,69,15,56,20,249                 ; blendvps      %xmm0,%xmm9,%xmm15
10630  DB  68,15,40,218                        ; movaps        %xmm2,%xmm11
10631  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
10632  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10633  DB  15,92,193                           ; subps         %xmm1,%xmm0
10634  DB  69,15,40,204                        ; movaps        %xmm12,%xmm9
10635  DB  69,15,92,233                        ; subps         %xmm9,%xmm13
10636  DB  68,15,89,232                        ; mulps         %xmm0,%xmm13
10637  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
10638  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
10639  DB  69,15,92,229                        ; subps         %xmm13,%xmm12
10640  DB  15,40,193                           ; movaps        %xmm1,%xmm0
10641  DB  15,88,192                           ; addps         %xmm0,%xmm0
10642  DB  15,194,196,2                        ; cmpleps       %xmm4,%xmm0
10643  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
10644  DB  69,15,40,233                        ; movaps        %xmm9,%xmm13
10645  DB  15,88,201                           ; addps         %xmm1,%xmm1
10646  DB  102,68,15,56,20,225                 ; blendvps      %xmm0,%xmm1,%xmm12
10647  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
10648  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
10649  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10650  DB  69,15,88,199                        ; addps         %xmm15,%xmm8
10651  DB  65,15,89,205                        ; mulps         %xmm13,%xmm1
10652  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
10653  DB  65,15,88,204                        ; addps         %xmm12,%xmm1
10654  DB  15,89,213                           ; mulps         %xmm5,%xmm2
10655  DB  68,15,40,28,36                      ; movaps        (%rsp),%xmm11
10656  DB  69,15,89,203                        ; mulps         %xmm11,%xmm9
10657  DB  68,15,88,202                        ; addps         %xmm2,%xmm9
10658  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10659  DB  15,88,192                           ; addps         %xmm0,%xmm0
10660  DB  15,194,196,2                        ; cmpleps       %xmm4,%xmm0
10661  DB  15,40,212                           ; movaps        %xmm4,%xmm2
10662  DB  15,92,213                           ; subps         %xmm5,%xmm2
10663  DB  65,15,89,235                        ; mulps         %xmm11,%xmm5
10664  DB  15,88,237                           ; addps         %xmm5,%xmm5
10665  DB  69,15,92,243                        ; subps         %xmm11,%xmm14
10666  DB  68,15,89,242                        ; mulps         %xmm2,%xmm14
10667  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
10668  DB  65,15,92,222                        ; subps         %xmm14,%xmm3
10669  DB  102,15,56,20,221                    ; blendvps      %xmm0,%xmm5,%xmm3
10670  DB  68,15,88,203                        ; addps         %xmm3,%xmm9
10671  DB  65,15,88,226                        ; addps         %xmm10,%xmm4
10672  DB  72,173                              ; lods          %ds:(%rsi),%rax
10673  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10674  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
10675  DB  15,40,220                           ; movaps        %xmm4,%xmm3
10676  DB  15,40,230                           ; movaps        %xmm6,%xmm4
10677  DB  65,15,40,237                        ; movaps        %xmm13,%xmm5
10678  DB  65,15,40,243                        ; movaps        %xmm11,%xmm6
10679  DB  72,131,196,24                       ; add           $0x18,%rsp
10680  DB  255,224                             ; jmpq          *%rax
10681
10682PUBLIC _sk_overlay_sse41
10683_sk_overlay_sse41 LABEL PROC
10684  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
10685  DB  68,15,40,240                        ; movaps        %xmm0,%xmm14
10686  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10687  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
10688  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
10689  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
10690  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
10691  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
10692  DB  65,15,89,198                        ; mulps         %xmm14,%xmm0
10693  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
10694  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
10695  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
10696  DB  68,15,88,192                        ; addps         %xmm0,%xmm8
10697  DB  68,15,40,235                        ; movaps        %xmm3,%xmm13
10698  DB  69,15,92,238                        ; subps         %xmm14,%xmm13
10699  DB  68,15,89,244                        ; mulps         %xmm4,%xmm14
10700  DB  15,40,207                           ; movaps        %xmm7,%xmm1
10701  DB  15,92,204                           ; subps         %xmm4,%xmm1
10702  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10703  DB  15,88,192                           ; addps         %xmm0,%xmm0
10704  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10705  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
10706  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
10707  DB  68,15,89,231                        ; mulps         %xmm7,%xmm12
10708  DB  65,15,89,205                        ; mulps         %xmm13,%xmm1
10709  DB  15,88,201                           ; addps         %xmm1,%xmm1
10710  DB  69,15,40,236                        ; movaps        %xmm12,%xmm13
10711  DB  68,15,92,233                        ; subps         %xmm1,%xmm13
10712  DB  102,69,15,56,20,238                 ; blendvps      %xmm0,%xmm14,%xmm13
10713  DB  69,15,88,197                        ; addps         %xmm13,%xmm8
10714  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
10715  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
10716  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
10717  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10718  DB  15,88,200                           ; addps         %xmm0,%xmm1
10719  DB  68,15,40,235                        ; movaps        %xmm3,%xmm13
10720  DB  69,15,92,233                        ; subps         %xmm9,%xmm13
10721  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10722  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
10723  DB  68,15,92,245                        ; subps         %xmm5,%xmm14
10724  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10725  DB  15,88,192                           ; addps         %xmm0,%xmm0
10726  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10727  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
10728  DB  69,15,89,245                        ; mulps         %xmm13,%xmm14
10729  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
10730  DB  69,15,40,236                        ; movaps        %xmm12,%xmm13
10731  DB  69,15,92,238                        ; subps         %xmm14,%xmm13
10732  DB  102,69,15,56,20,233                 ; blendvps      %xmm0,%xmm9,%xmm13
10733  DB  65,15,88,205                        ; addps         %xmm13,%xmm1
10734  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
10735  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
10736  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
10737  DB  69,15,88,203                        ; addps         %xmm11,%xmm9
10738  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
10739  DB  68,15,92,218                        ; subps         %xmm2,%xmm11
10740  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10741  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
10742  DB  68,15,92,238                        ; subps         %xmm6,%xmm13
10743  DB  15,40,198                           ; movaps        %xmm6,%xmm0
10744  DB  15,88,192                           ; addps         %xmm0,%xmm0
10745  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10746  DB  15,88,210                           ; addps         %xmm2,%xmm2
10747  DB  69,15,89,235                        ; mulps         %xmm11,%xmm13
10748  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
10749  DB  69,15,92,229                        ; subps         %xmm13,%xmm12
10750  DB  102,68,15,56,20,226                 ; blendvps      %xmm0,%xmm2,%xmm12
10751  DB  69,15,88,204                        ; addps         %xmm12,%xmm9
10752  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10753  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
10754  DB  72,173                              ; lods          %ds:(%rsi),%rax
10755  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10756  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
10757  DB  255,224                             ; jmpq          *%rax
10758
10759PUBLIC _sk_softlight_sse41
10760_sk_softlight_sse41 LABEL PROC
10761  DB  72,131,236,56                       ; sub           $0x38,%rsp
10762  DB  15,41,116,36,16                     ; movaps        %xmm6,0x10(%rsp)
10763  DB  15,40,244                           ; movaps        %xmm4,%xmm6
10764  DB  15,41,84,36,32                      ; movaps        %xmm2,0x20(%rsp)
10765  DB  68,15,40,225                        ; movaps        %xmm1,%xmm12
10766  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
10767  DB  15,87,228                           ; xorps         %xmm4,%xmm4
10768  DB  15,194,231,1                        ; cmpltps       %xmm7,%xmm4
10769  DB  15,40,198                           ; movaps        %xmm6,%xmm0
10770  DB  15,94,199                           ; divps         %xmm7,%xmm0
10771  DB  15,84,196                           ; andps         %xmm4,%xmm0
10772  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10773  DB  102,15,110,200                      ; movd          %eax,%xmm1
10774  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
10775  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
10776  DB  68,15,92,208                        ; subps         %xmm0,%xmm10
10777  DB  68,15,40,240                        ; movaps        %xmm0,%xmm14
10778  DB  68,15,40,248                        ; movaps        %xmm0,%xmm15
10779  DB  15,82,208                           ; rsqrtps       %xmm0,%xmm2
10780  DB  68,15,83,218                        ; rcpps         %xmm2,%xmm11
10781  DB  68,15,92,216                        ; subps         %xmm0,%xmm11
10782  DB  15,88,192                           ; addps         %xmm0,%xmm0
10783  DB  15,88,192                           ; addps         %xmm0,%xmm0
10784  DB  15,40,208                           ; movaps        %xmm0,%xmm2
10785  DB  15,89,210                           ; mulps         %xmm2,%xmm2
10786  DB  15,88,208                           ; addps         %xmm0,%xmm2
10787  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
10788  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
10789  DB  68,15,92,241                        ; subps         %xmm1,%xmm14
10790  DB  68,15,89,242                        ; mulps         %xmm2,%xmm14
10791  DB  184,0,0,224,64                      ; mov           $0x40e00000,%eax
10792  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
10793  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
10794  DB  69,15,89,253                        ; mulps         %xmm13,%xmm15
10795  DB  69,15,88,254                        ; addps         %xmm14,%xmm15
10796  DB  15,40,198                           ; movaps        %xmm6,%xmm0
10797  DB  15,88,192                           ; addps         %xmm0,%xmm0
10798  DB  15,88,192                           ; addps         %xmm0,%xmm0
10799  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10800  DB  102,69,15,56,20,223                 ; blendvps      %xmm0,%xmm15,%xmm11
10801  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10802  DB  15,92,195                           ; subps         %xmm3,%xmm0
10803  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
10804  DB  68,15,88,211                        ; addps         %xmm3,%xmm10
10805  DB  68,15,89,214                        ; mulps         %xmm6,%xmm10
10806  DB  15,40,211                           ; movaps        %xmm3,%xmm2
10807  DB  15,89,214                           ; mulps         %xmm6,%xmm2
10808  DB  15,89,199                           ; mulps         %xmm7,%xmm0
10809  DB  68,15,89,216                        ; mulps         %xmm0,%xmm11
10810  DB  68,15,88,218                        ; addps         %xmm2,%xmm11
10811  DB  68,15,194,203,2                     ; cmpleps       %xmm3,%xmm9
10812  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
10813  DB  102,69,15,56,20,218                 ; blendvps      %xmm0,%xmm10,%xmm11
10814  DB  68,15,40,213                        ; movaps        %xmm5,%xmm10
10815  DB  68,15,94,215                        ; divps         %xmm7,%xmm10
10816  DB  68,15,84,212                        ; andps         %xmm4,%xmm10
10817  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
10818  DB  69,15,92,202                        ; subps         %xmm10,%xmm9
10819  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10820  DB  15,88,210                           ; addps         %xmm2,%xmm2
10821  DB  15,88,210                           ; addps         %xmm2,%xmm2
10822  DB  15,40,194                           ; movaps        %xmm2,%xmm0
10823  DB  15,89,192                           ; mulps         %xmm0,%xmm0
10824  DB  15,88,194                           ; addps         %xmm2,%xmm0
10825  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
10826  DB  15,92,209                           ; subps         %xmm1,%xmm2
10827  DB  15,89,208                           ; mulps         %xmm0,%xmm2
10828  DB  65,15,82,194                        ; rsqrtps       %xmm10,%xmm0
10829  DB  68,15,83,240                        ; rcpps         %xmm0,%xmm14
10830  DB  69,15,92,242                        ; subps         %xmm10,%xmm14
10831  DB  69,15,89,213                        ; mulps         %xmm13,%xmm10
10832  DB  68,15,88,210                        ; addps         %xmm2,%xmm10
10833  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10834  DB  15,88,192                           ; addps         %xmm0,%xmm0
10835  DB  15,88,192                           ; addps         %xmm0,%xmm0
10836  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10837  DB  102,69,15,56,20,242                 ; blendvps      %xmm0,%xmm10,%xmm14
10838  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
10839  DB  15,88,192                           ; addps         %xmm0,%xmm0
10840  DB  15,40,208                           ; movaps        %xmm0,%xmm2
10841  DB  15,92,211                           ; subps         %xmm3,%xmm2
10842  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
10843  DB  68,15,88,203                        ; addps         %xmm3,%xmm9
10844  DB  15,41,44,36                         ; movaps        %xmm5,(%rsp)
10845  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
10846  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10847  DB  68,15,89,242                        ; mulps         %xmm2,%xmm14
10848  DB  15,40,211                           ; movaps        %xmm3,%xmm2
10849  DB  15,89,213                           ; mulps         %xmm5,%xmm2
10850  DB  68,15,88,242                        ; addps         %xmm2,%xmm14
10851  DB  68,15,40,249                        ; movaps        %xmm1,%xmm15
10852  DB  15,194,195,2                        ; cmpleps       %xmm3,%xmm0
10853  DB  102,69,15,56,20,241                 ; blendvps      %xmm0,%xmm9,%xmm14
10854  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
10855  DB  15,40,108,36,16                     ; movaps        0x10(%rsp),%xmm5
10856  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10857  DB  15,94,199                           ; divps         %xmm7,%xmm0
10858  DB  15,84,196                           ; andps         %xmm4,%xmm0
10859  DB  15,40,208                           ; movaps        %xmm0,%xmm2
10860  DB  15,92,209                           ; subps         %xmm1,%xmm2
10861  DB  15,92,200                           ; subps         %xmm0,%xmm1
10862  DB  68,15,89,232                        ; mulps         %xmm0,%xmm13
10863  DB  15,82,224                           ; rsqrtps       %xmm0,%xmm4
10864  DB  68,15,83,204                        ; rcpps         %xmm4,%xmm9
10865  DB  68,15,92,200                        ; subps         %xmm0,%xmm9
10866  DB  15,88,192                           ; addps         %xmm0,%xmm0
10867  DB  15,88,192                           ; addps         %xmm0,%xmm0
10868  DB  15,40,224                           ; movaps        %xmm0,%xmm4
10869  DB  15,89,228                           ; mulps         %xmm4,%xmm4
10870  DB  15,88,224                           ; addps         %xmm0,%xmm4
10871  DB  15,89,226                           ; mulps         %xmm2,%xmm4
10872  DB  68,15,88,236                        ; addps         %xmm4,%xmm13
10873  DB  15,40,197                           ; movaps        %xmm5,%xmm0
10874  DB  15,88,192                           ; addps         %xmm0,%xmm0
10875  DB  15,88,192                           ; addps         %xmm0,%xmm0
10876  DB  15,194,199,2                        ; cmpleps       %xmm7,%xmm0
10877  DB  102,69,15,56,20,205                 ; blendvps      %xmm0,%xmm13,%xmm9
10878  DB  68,15,40,108,36,32                  ; movaps        0x20(%rsp),%xmm13
10879  DB  65,15,40,197                        ; movaps        %xmm13,%xmm0
10880  DB  15,88,192                           ; addps         %xmm0,%xmm0
10881  DB  15,40,208                           ; movaps        %xmm0,%xmm2
10882  DB  15,92,211                           ; subps         %xmm3,%xmm2
10883  DB  15,89,202                           ; mulps         %xmm2,%xmm1
10884  DB  15,89,215                           ; mulps         %xmm7,%xmm2
10885  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
10886  DB  15,40,211                           ; movaps        %xmm3,%xmm2
10887  DB  15,89,213                           ; mulps         %xmm5,%xmm2
10888  DB  68,15,88,202                        ; addps         %xmm2,%xmm9
10889  DB  15,88,203                           ; addps         %xmm3,%xmm1
10890  DB  15,89,205                           ; mulps         %xmm5,%xmm1
10891  DB  15,40,213                           ; movaps        %xmm5,%xmm2
10892  DB  15,194,195,2                        ; cmpleps       %xmm3,%xmm0
10893  DB  102,68,15,56,20,201                 ; blendvps      %xmm0,%xmm1,%xmm9
10894  DB  68,15,92,255                        ; subps         %xmm7,%xmm15
10895  DB  69,15,89,199                        ; mulps         %xmm15,%xmm8
10896  DB  69,15,89,231                        ; mulps         %xmm15,%xmm12
10897  DB  69,15,89,253                        ; mulps         %xmm13,%xmm15
10898  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
10899  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
10900  DB  15,89,198                           ; mulps         %xmm6,%xmm0
10901  DB  68,15,88,192                        ; addps         %xmm0,%xmm8
10902  DB  69,15,88,195                        ; addps         %xmm11,%xmm8
10903  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
10904  DB  15,40,44,36                         ; movaps        (%rsp),%xmm5
10905  DB  15,89,197                           ; mulps         %xmm5,%xmm0
10906  DB  68,15,88,224                        ; addps         %xmm0,%xmm12
10907  DB  69,15,88,230                        ; addps         %xmm14,%xmm12
10908  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
10909  DB  15,89,194                           ; mulps         %xmm2,%xmm0
10910  DB  65,15,88,199                        ; addps         %xmm15,%xmm0
10911  DB  68,15,88,200                        ; addps         %xmm0,%xmm9
10912  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
10913  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
10914  DB  72,173                              ; lods          %ds:(%rsi),%rax
10915  DB  15,40,230                           ; movaps        %xmm6,%xmm4
10916  DB  15,40,242                           ; movaps        %xmm2,%xmm6
10917  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
10918  DB  65,15,40,204                        ; movaps        %xmm12,%xmm1
10919  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
10920  DB  72,131,196,56                       ; add           $0x38,%rsp
10921  DB  255,224                             ; jmpq          *%rax
10922
10923PUBLIC _sk_clamp_0_sse41
10924_sk_clamp_0_sse41 LABEL PROC
10925  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
10926  DB  65,15,95,192                        ; maxps         %xmm8,%xmm0
10927  DB  65,15,95,200                        ; maxps         %xmm8,%xmm1
10928  DB  65,15,95,208                        ; maxps         %xmm8,%xmm2
10929  DB  65,15,95,216                        ; maxps         %xmm8,%xmm3
10930  DB  72,173                              ; lods          %ds:(%rsi),%rax
10931  DB  255,224                             ; jmpq          *%rax
10932
10933PUBLIC _sk_clamp_1_sse41
10934_sk_clamp_1_sse41 LABEL PROC
10935  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10936  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10937  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10938  DB  65,15,93,192                        ; minps         %xmm8,%xmm0
10939  DB  65,15,93,200                        ; minps         %xmm8,%xmm1
10940  DB  65,15,93,208                        ; minps         %xmm8,%xmm2
10941  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
10942  DB  72,173                              ; lods          %ds:(%rsi),%rax
10943  DB  255,224                             ; jmpq          *%rax
10944
10945PUBLIC _sk_clamp_a_sse41
10946_sk_clamp_a_sse41 LABEL PROC
10947  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
10948  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
10949  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
10950  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
10951  DB  15,93,195                           ; minps         %xmm3,%xmm0
10952  DB  15,93,203                           ; minps         %xmm3,%xmm1
10953  DB  15,93,211                           ; minps         %xmm3,%xmm2
10954  DB  72,173                              ; lods          %ds:(%rsi),%rax
10955  DB  255,224                             ; jmpq          *%rax
10956
10957PUBLIC _sk_set_rgb_sse41
10958_sk_set_rgb_sse41 LABEL PROC
10959  DB  72,173                              ; lods          %ds:(%rsi),%rax
10960  DB  243,15,16,0                         ; movss         (%rax),%xmm0
10961  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
10962  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
10963  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
10964  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
10965  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
10966  DB  72,173                              ; lods          %ds:(%rsi),%rax
10967  DB  255,224                             ; jmpq          *%rax
10968
10969PUBLIC _sk_swap_rb_sse41
10970_sk_swap_rb_sse41 LABEL PROC
10971  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
10972  DB  72,173                              ; lods          %ds:(%rsi),%rax
10973  DB  15,40,194                           ; movaps        %xmm2,%xmm0
10974  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
10975  DB  255,224                             ; jmpq          *%rax
10976
10977PUBLIC _sk_swap_sse41
10978_sk_swap_sse41 LABEL PROC
10979  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
10980  DB  68,15,40,202                        ; movaps        %xmm2,%xmm9
10981  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
10982  DB  68,15,40,216                        ; movaps        %xmm0,%xmm11
10983  DB  72,173                              ; lods          %ds:(%rsi),%rax
10984  DB  15,40,196                           ; movaps        %xmm4,%xmm0
10985  DB  15,40,205                           ; movaps        %xmm5,%xmm1
10986  DB  15,40,214                           ; movaps        %xmm6,%xmm2
10987  DB  15,40,223                           ; movaps        %xmm7,%xmm3
10988  DB  65,15,40,227                        ; movaps        %xmm11,%xmm4
10989  DB  65,15,40,234                        ; movaps        %xmm10,%xmm5
10990  DB  65,15,40,241                        ; movaps        %xmm9,%xmm6
10991  DB  65,15,40,248                        ; movaps        %xmm8,%xmm7
10992  DB  255,224                             ; jmpq          *%rax
10993
10994PUBLIC _sk_move_src_dst_sse41
10995_sk_move_src_dst_sse41 LABEL PROC
10996  DB  72,173                              ; lods          %ds:(%rsi),%rax
10997  DB  15,40,224                           ; movaps        %xmm0,%xmm4
10998  DB  15,40,233                           ; movaps        %xmm1,%xmm5
10999  DB  15,40,242                           ; movaps        %xmm2,%xmm6
11000  DB  15,40,251                           ; movaps        %xmm3,%xmm7
11001  DB  255,224                             ; jmpq          *%rax
11002
11003PUBLIC _sk_move_dst_src_sse41
11004_sk_move_dst_src_sse41 LABEL PROC
11005  DB  72,173                              ; lods          %ds:(%rsi),%rax
11006  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11007  DB  15,40,205                           ; movaps        %xmm5,%xmm1
11008  DB  15,40,214                           ; movaps        %xmm6,%xmm2
11009  DB  15,40,223                           ; movaps        %xmm7,%xmm3
11010  DB  255,224                             ; jmpq          *%rax
11011
11012PUBLIC _sk_premul_sse41
11013_sk_premul_sse41 LABEL PROC
11014  DB  15,89,195                           ; mulps         %xmm3,%xmm0
11015  DB  15,89,203                           ; mulps         %xmm3,%xmm1
11016  DB  15,89,211                           ; mulps         %xmm3,%xmm2
11017  DB  72,173                              ; lods          %ds:(%rsi),%rax
11018  DB  255,224                             ; jmpq          *%rax
11019
11020PUBLIC _sk_unpremul_sse41
11021_sk_unpremul_sse41 LABEL PROC
11022  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
11023  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11024  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
11025  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11026  DB  68,15,94,203                        ; divps         %xmm3,%xmm9
11027  DB  68,15,194,195,4                     ; cmpneqps      %xmm3,%xmm8
11028  DB  69,15,84,193                        ; andps         %xmm9,%xmm8
11029  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11030  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11031  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11032  DB  72,173                              ; lods          %ds:(%rsi),%rax
11033  DB  255,224                             ; jmpq          *%rax
11034
11035PUBLIC _sk_from_srgb_sse41
11036_sk_from_srgb_sse41 LABEL PROC
11037  DB  184,145,131,158,61                  ; mov           $0x3d9e8391,%eax
11038  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
11039  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
11040  DB  69,15,40,211                        ; movaps        %xmm11,%xmm10
11041  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
11042  DB  68,15,40,240                        ; movaps        %xmm0,%xmm14
11043  DB  69,15,89,246                        ; mulps         %xmm14,%xmm14
11044  DB  184,154,153,153,62                  ; mov           $0x3e99999a,%eax
11045  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11046  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11047  DB  184,92,143,50,63                    ; mov           $0x3f328f5c,%eax
11048  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
11049  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
11050  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
11051  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
11052  DB  69,15,88,204                        ; addps         %xmm12,%xmm9
11053  DB  184,10,215,35,59                    ; mov           $0x3b23d70a,%eax
11054  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
11055  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
11056  DB  69,15,89,206                        ; mulps         %xmm14,%xmm9
11057  DB  69,15,88,205                        ; addps         %xmm13,%xmm9
11058  DB  184,174,71,97,61                    ; mov           $0x3d6147ae,%eax
11059  DB  102,68,15,110,240                   ; movd          %eax,%xmm14
11060  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
11061  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
11062  DB  102,69,15,56,20,202                 ; blendvps      %xmm0,%xmm10,%xmm9
11063  DB  69,15,40,251                        ; movaps        %xmm11,%xmm15
11064  DB  68,15,89,249                        ; mulps         %xmm1,%xmm15
11065  DB  15,40,193                           ; movaps        %xmm1,%xmm0
11066  DB  15,89,192                           ; mulps         %xmm0,%xmm0
11067  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
11068  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
11069  DB  69,15,88,212                        ; addps         %xmm12,%xmm10
11070  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
11071  DB  69,15,88,213                        ; addps         %xmm13,%xmm10
11072  DB  65,15,194,206,1                     ; cmpltps       %xmm14,%xmm1
11073  DB  15,40,193                           ; movaps        %xmm1,%xmm0
11074  DB  102,69,15,56,20,215                 ; blendvps      %xmm0,%xmm15,%xmm10
11075  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
11076  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11077  DB  15,89,192                           ; mulps         %xmm0,%xmm0
11078  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
11079  DB  69,15,88,196                        ; addps         %xmm12,%xmm8
11080  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
11081  DB  69,15,88,197                        ; addps         %xmm13,%xmm8
11082  DB  65,15,194,214,1                     ; cmpltps       %xmm14,%xmm2
11083  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11084  DB  102,69,15,56,20,195                 ; blendvps      %xmm0,%xmm11,%xmm8
11085  DB  72,173                              ; lods          %ds:(%rsi),%rax
11086  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
11087  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
11088  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
11089  DB  255,224                             ; jmpq          *%rax
11090
11091PUBLIC _sk_to_srgb_sse41
11092_sk_to_srgb_sse41 LABEL PROC
11093  DB  72,131,236,24                       ; sub           $0x18,%rsp
11094  DB  15,41,60,36                         ; movaps        %xmm7,(%rsp)
11095  DB  15,40,254                           ; movaps        %xmm6,%xmm7
11096  DB  15,40,245                           ; movaps        %xmm5,%xmm6
11097  DB  15,40,236                           ; movaps        %xmm4,%xmm5
11098  DB  15,40,227                           ; movaps        %xmm3,%xmm4
11099  DB  15,40,218                           ; movaps        %xmm2,%xmm3
11100  DB  15,40,209                           ; movaps        %xmm1,%xmm2
11101  DB  68,15,82,192                        ; rsqrtps       %xmm0,%xmm8
11102  DB  69,15,83,200                        ; rcpps         %xmm8,%xmm9
11103  DB  69,15,82,248                        ; rsqrtps       %xmm8,%xmm15
11104  DB  184,41,92,71,65                     ; mov           $0x41475c29,%eax
11105  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
11106  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
11107  DB  69,15,40,211                        ; movaps        %xmm11,%xmm10
11108  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
11109  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11110  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11111  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11112  DB  184,194,135,210,62                  ; mov           $0x3ed287c2,%eax
11113  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
11114  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
11115  DB  184,206,111,48,63                   ; mov           $0x3f306fce,%eax
11116  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
11117  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
11118  DB  184,168,87,202,61                   ; mov           $0x3dca57a8,%eax
11119  DB  53,0,0,0,128                        ; xor           $0x80000000,%eax
11120  DB  102,68,15,110,240                   ; movd          %eax,%xmm14
11121  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
11122  DB  69,15,89,205                        ; mulps         %xmm13,%xmm9
11123  DB  69,15,88,206                        ; addps         %xmm14,%xmm9
11124  DB  69,15,89,252                        ; mulps         %xmm12,%xmm15
11125  DB  69,15,88,249                        ; addps         %xmm9,%xmm15
11126  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
11127  DB  69,15,93,207                        ; minps         %xmm15,%xmm9
11128  DB  184,4,231,140,59                    ; mov           $0x3b8ce704,%eax
11129  DB  102,68,15,110,248                   ; movd          %eax,%xmm15
11130  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
11131  DB  65,15,194,199,1                     ; cmpltps       %xmm15,%xmm0
11132  DB  102,69,15,56,20,202                 ; blendvps      %xmm0,%xmm10,%xmm9
11133  DB  68,15,82,210                        ; rsqrtps       %xmm2,%xmm10
11134  DB  65,15,83,194                        ; rcpps         %xmm10,%xmm0
11135  DB  69,15,82,210                        ; rsqrtps       %xmm10,%xmm10
11136  DB  65,15,89,197                        ; mulps         %xmm13,%xmm0
11137  DB  65,15,88,198                        ; addps         %xmm14,%xmm0
11138  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
11139  DB  68,15,88,208                        ; addps         %xmm0,%xmm10
11140  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
11141  DB  65,15,93,202                        ; minps         %xmm10,%xmm1
11142  DB  69,15,40,211                        ; movaps        %xmm11,%xmm10
11143  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
11144  DB  65,15,194,215,1                     ; cmpltps       %xmm15,%xmm2
11145  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11146  DB  102,65,15,56,20,202                 ; blendvps      %xmm0,%xmm10,%xmm1
11147  DB  15,82,195                           ; rsqrtps       %xmm3,%xmm0
11148  DB  15,83,208                           ; rcpps         %xmm0,%xmm2
11149  DB  65,15,89,213                        ; mulps         %xmm13,%xmm2
11150  DB  65,15,88,214                        ; addps         %xmm14,%xmm2
11151  DB  15,82,192                           ; rsqrtps       %xmm0,%xmm0
11152  DB  65,15,89,196                        ; mulps         %xmm12,%xmm0
11153  DB  15,88,194                           ; addps         %xmm2,%xmm0
11154  DB  68,15,93,192                        ; minps         %xmm0,%xmm8
11155  DB  68,15,89,219                        ; mulps         %xmm3,%xmm11
11156  DB  65,15,194,223,1                     ; cmpltps       %xmm15,%xmm3
11157  DB  15,40,195                           ; movaps        %xmm3,%xmm0
11158  DB  102,69,15,56,20,195                 ; blendvps      %xmm0,%xmm11,%xmm8
11159  DB  72,173                              ; lods          %ds:(%rsi),%rax
11160  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
11161  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
11162  DB  15,40,220                           ; movaps        %xmm4,%xmm3
11163  DB  15,40,229                           ; movaps        %xmm5,%xmm4
11164  DB  15,40,238                           ; movaps        %xmm6,%xmm5
11165  DB  15,40,247                           ; movaps        %xmm7,%xmm6
11166  DB  15,40,60,36                         ; movaps        (%rsp),%xmm7
11167  DB  72,131,196,24                       ; add           $0x18,%rsp
11168  DB  255,224                             ; jmpq          *%rax
11169
11170PUBLIC _sk_rgb_to_hsl_sse41
11171_sk_rgb_to_hsl_sse41 LABEL PROC
11172  DB  72,131,236,24                       ; sub           $0x18,%rsp
11173  DB  15,41,60,36                         ; movaps        %xmm7,(%rsp)
11174  DB  15,40,254                           ; movaps        %xmm6,%xmm7
11175  DB  15,40,245                           ; movaps        %xmm5,%xmm6
11176  DB  15,40,236                           ; movaps        %xmm4,%xmm5
11177  DB  15,40,227                           ; movaps        %xmm3,%xmm4
11178  DB  15,40,218                           ; movaps        %xmm2,%xmm3
11179  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11180  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
11181  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
11182  DB  65,185,0,0,192,64                   ; mov           $0x40c00000,%r9d
11183  DB  184,0,0,0,64                        ; mov           $0x40000000,%eax
11184  DB  185,0,0,128,64                      ; mov           $0x40800000,%ecx
11185  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
11186  DB  68,15,40,224                        ; movaps        %xmm0,%xmm12
11187  DB  68,15,95,225                        ; maxps         %xmm1,%xmm12
11188  DB  68,15,95,227                        ; maxps         %xmm3,%xmm12
11189  DB  68,15,40,232                        ; movaps        %xmm0,%xmm13
11190  DB  68,15,93,233                        ; minps         %xmm1,%xmm13
11191  DB  68,15,93,235                        ; minps         %xmm3,%xmm13
11192  DB  69,15,40,204                        ; movaps        %xmm12,%xmm9
11193  DB  68,15,194,200,0                     ; cmpeqps       %xmm0,%xmm9
11194  DB  68,15,40,241                        ; movaps        %xmm1,%xmm14
11195  DB  68,15,92,243                        ; subps         %xmm3,%xmm14
11196  DB  68,15,40,249                        ; movaps        %xmm1,%xmm15
11197  DB  68,15,194,251,1                     ; cmpltps       %xmm3,%xmm15
11198  DB  69,15,40,212                        ; movaps        %xmm12,%xmm10
11199  DB  68,15,194,209,0                     ; cmpeqps       %xmm1,%xmm10
11200  DB  15,92,216                           ; subps         %xmm0,%xmm3
11201  DB  15,92,193                           ; subps         %xmm1,%xmm0
11202  DB  65,15,40,212                        ; movaps        %xmm12,%xmm2
11203  DB  65,15,92,213                        ; subps         %xmm13,%xmm2
11204  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
11205  DB  68,15,94,218                        ; divps         %xmm2,%xmm11
11206  DB  65,15,89,195                        ; mulps         %xmm11,%xmm0
11207  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11208  DB  68,15,88,192                        ; addps         %xmm0,%xmm8
11209  DB  102,15,110,200                      ; movd          %eax,%xmm1
11210  DB  65,15,89,219                        ; mulps         %xmm11,%xmm3
11211  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
11212  DB  15,88,217                           ; addps         %xmm1,%xmm3
11213  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
11214  DB  102,68,15,56,20,195                 ; blendvps      %xmm0,%xmm3,%xmm8
11215  DB  69,15,89,243                        ; mulps         %xmm11,%xmm14
11216  DB  102,65,15,110,217                   ; movd          %r9d,%xmm3
11217  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11218  DB  65,15,84,223                        ; andps         %xmm15,%xmm3
11219  DB  65,15,88,222                        ; addps         %xmm14,%xmm3
11220  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
11221  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
11222  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
11223  DB  102,68,15,56,20,195                 ; blendvps      %xmm0,%xmm3,%xmm8
11224  DB  65,15,40,220                        ; movaps        %xmm12,%xmm3
11225  DB  65,15,92,204                        ; subps         %xmm12,%xmm1
11226  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
11227  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
11228  DB  69,15,40,204                        ; movaps        %xmm12,%xmm9
11229  DB  69,15,89,202                        ; mulps         %xmm10,%xmm9
11230  DB  69,15,194,209,1                     ; cmpltps       %xmm9,%xmm10
11231  DB  65,15,92,205                        ; subps         %xmm13,%xmm1
11232  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
11233  DB  102,68,15,56,20,225                 ; blendvps      %xmm0,%xmm1,%xmm12
11234  DB  65,15,194,221,4                     ; cmpneqps      %xmm13,%xmm3
11235  DB  102,65,15,110,192                   ; movd          %r8d,%xmm0
11236  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
11237  DB  68,15,84,195                        ; andps         %xmm3,%xmm8
11238  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
11239  DB  65,15,94,212                        ; divps         %xmm12,%xmm2
11240  DB  15,84,211                           ; andps         %xmm3,%xmm2
11241  DB  72,173                              ; lods          %ds:(%rsi),%rax
11242  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11243  DB  15,40,202                           ; movaps        %xmm2,%xmm1
11244  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
11245  DB  15,40,220                           ; movaps        %xmm4,%xmm3
11246  DB  15,40,229                           ; movaps        %xmm5,%xmm4
11247  DB  15,40,238                           ; movaps        %xmm6,%xmm5
11248  DB  15,40,247                           ; movaps        %xmm7,%xmm6
11249  DB  15,40,60,36                         ; movaps        (%rsp),%xmm7
11250  DB  72,131,196,24                       ; add           $0x18,%rsp
11251  DB  255,224                             ; jmpq          *%rax
11252
11253PUBLIC _sk_hsl_to_rgb_sse41
11254_sk_hsl_to_rgb_sse41 LABEL PROC
11255  DB  72,129,236,152,0,0,0                ; sub           $0x98,%rsp
11256  DB  15,41,188,36,128,0,0,0              ; movaps        %xmm7,0x80(%rsp)
11257  DB  15,41,116,36,112                    ; movaps        %xmm6,0x70(%rsp)
11258  DB  15,41,108,36,96                     ; movaps        %xmm5,0x60(%rsp)
11259  DB  15,41,100,36,80                     ; movaps        %xmm4,0x50(%rsp)
11260  DB  15,41,92,36,64                      ; movaps        %xmm3,0x40(%rsp)
11261  DB  68,15,40,208                        ; movaps        %xmm0,%xmm10
11262  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
11263  DB  102,15,110,216                      ; movd          %eax,%xmm3
11264  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11265  DB  15,41,28,36                         ; movaps        %xmm3,(%rsp)
11266  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11267  DB  15,194,195,1                        ; cmpltps       %xmm3,%xmm0
11268  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11269  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11270  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11271  DB  65,15,40,224                        ; movaps        %xmm8,%xmm4
11272  DB  15,88,225                           ; addps         %xmm1,%xmm4
11273  DB  15,89,226                           ; mulps         %xmm2,%xmm4
11274  DB  15,40,217                           ; movaps        %xmm1,%xmm3
11275  DB  15,40,249                           ; movaps        %xmm1,%xmm7
11276  DB  15,88,250                           ; addps         %xmm2,%xmm7
11277  DB  15,89,218                           ; mulps         %xmm2,%xmm3
11278  DB  15,40,234                           ; movaps        %xmm2,%xmm5
11279  DB  15,92,251                           ; subps         %xmm3,%xmm7
11280  DB  102,15,56,20,252                    ; blendvps      %xmm0,%xmm4,%xmm7
11281  DB  184,0,0,0,64                        ; mov           $0x40000000,%eax
11282  DB  185,171,170,170,62                  ; mov           $0x3eaaaaab,%ecx
11283  DB  102,15,110,209                      ; movd          %ecx,%xmm2
11284  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
11285  DB  15,41,84,36,48                      ; movaps        %xmm2,0x30(%rsp)
11286  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
11287  DB  185,0,0,0,0                         ; mov           $0x0,%ecx
11288  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11289  DB  15,194,194,1                        ; cmpltps       %xmm2,%xmm0
11290  DB  15,40,218                           ; movaps        %xmm2,%xmm3
11291  DB  65,15,92,216                        ; subps         %xmm8,%xmm3
11292  DB  68,15,40,226                        ; movaps        %xmm2,%xmm12
11293  DB  102,68,15,56,20,227                 ; blendvps      %xmm0,%xmm3,%xmm12
11294  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
11295  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
11296  DB  15,40,194                           ; movaps        %xmm2,%xmm0
11297  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
11298  DB  68,15,41,116,36,32                  ; movaps        %xmm14,0x20(%rsp)
11299  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
11300  DB  15,88,218                           ; addps         %xmm2,%xmm3
11301  DB  102,68,15,56,20,227                 ; blendvps      %xmm0,%xmm3,%xmm12
11302  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
11303  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11304  DB  15,40,229                           ; movaps        %xmm5,%xmm4
11305  DB  15,41,100,36,16                     ; movaps        %xmm4,0x10(%rsp)
11306  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
11307  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
11308  DB  184,171,170,42,62                   ; mov           $0x3e2aaaab,%eax
11309  DB  15,40,199                           ; movaps        %xmm7,%xmm0
11310  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
11311  DB  185,0,0,192,64                      ; mov           $0x40c00000,%ecx
11312  DB  102,15,110,241                      ; movd          %ecx,%xmm6
11313  DB  15,198,246,0                        ; shufps        $0x0,%xmm6,%xmm6
11314  DB  15,89,240                           ; mulps         %xmm0,%xmm6
11315  DB  185,171,170,42,63                   ; mov           $0x3f2aaaab,%ecx
11316  DB  102,15,110,217                      ; movd          %ecx,%xmm3
11317  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11318  DB  15,40,235                           ; movaps        %xmm3,%xmm5
11319  DB  65,15,92,236                        ; subps         %xmm12,%xmm5
11320  DB  69,15,40,236                        ; movaps        %xmm12,%xmm13
11321  DB  69,15,40,252                        ; movaps        %xmm12,%xmm15
11322  DB  68,15,194,227,1                     ; cmpltps       %xmm3,%xmm12
11323  DB  15,89,238                           ; mulps         %xmm6,%xmm5
11324  DB  65,15,88,233                        ; addps         %xmm9,%xmm5
11325  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
11326  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
11327  DB  102,68,15,56,20,221                 ; blendvps      %xmm0,%xmm5,%xmm11
11328  DB  68,15,194,60,36,1                   ; cmpltps       (%rsp),%xmm15
11329  DB  65,15,40,199                        ; movaps        %xmm15,%xmm0
11330  DB  102,68,15,56,20,223                 ; blendvps      %xmm0,%xmm7,%xmm11
11331  DB  102,15,110,232                      ; movd          %eax,%xmm5
11332  DB  15,198,237,0                        ; shufps        $0x0,%xmm5,%xmm5
11333  DB  68,15,194,237,1                     ; cmpltps       %xmm5,%xmm13
11334  DB  15,89,214                           ; mulps         %xmm6,%xmm2
11335  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
11336  DB  65,15,40,197                        ; movaps        %xmm13,%xmm0
11337  DB  102,68,15,56,20,218                 ; blendvps      %xmm0,%xmm2,%xmm11
11338  DB  69,15,87,228                        ; xorps         %xmm12,%xmm12
11339  DB  68,15,194,225,0                     ; cmpeqps       %xmm1,%xmm12
11340  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
11341  DB  102,68,15,56,20,220                 ; blendvps      %xmm0,%xmm4,%xmm11
11342  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11343  DB  65,15,194,194,1                     ; cmpltps       %xmm10,%xmm0
11344  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
11345  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
11346  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
11347  DB  102,68,15,56,20,233                 ; blendvps      %xmm0,%xmm1,%xmm13
11348  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
11349  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
11350  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
11351  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
11352  DB  102,68,15,56,20,233                 ; blendvps      %xmm0,%xmm1,%xmm13
11353  DB  68,15,40,243                        ; movaps        %xmm3,%xmm14
11354  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
11355  DB  65,15,40,229                        ; movaps        %xmm13,%xmm4
11356  DB  69,15,40,253                        ; movaps        %xmm13,%xmm15
11357  DB  68,15,194,235,1                     ; cmpltps       %xmm3,%xmm13
11358  DB  68,15,89,246                        ; mulps         %xmm6,%xmm14
11359  DB  69,15,88,241                        ; addps         %xmm9,%xmm14
11360  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
11361  DB  65,15,40,197                        ; movaps        %xmm13,%xmm0
11362  DB  102,65,15,56,20,206                 ; blendvps      %xmm0,%xmm14,%xmm1
11363  DB  68,15,40,52,36                      ; movaps        (%rsp),%xmm14
11364  DB  69,15,194,254,1                     ; cmpltps       %xmm14,%xmm15
11365  DB  65,15,40,199                        ; movaps        %xmm15,%xmm0
11366  DB  102,15,56,20,207                    ; blendvps      %xmm0,%xmm7,%xmm1
11367  DB  15,194,229,1                        ; cmpltps       %xmm5,%xmm4
11368  DB  15,40,214                           ; movaps        %xmm6,%xmm2
11369  DB  65,15,89,210                        ; mulps         %xmm10,%xmm2
11370  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
11371  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11372  DB  102,15,56,20,202                    ; blendvps      %xmm0,%xmm2,%xmm1
11373  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
11374  DB  68,15,40,124,36,16                  ; movaps        0x10(%rsp),%xmm15
11375  DB  102,65,15,56,20,207                 ; blendvps      %xmm0,%xmm15,%xmm1
11376  DB  68,15,92,84,36,48                   ; subps         0x30(%rsp),%xmm10
11377  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
11378  DB  65,15,92,208                        ; subps         %xmm8,%xmm2
11379  DB  69,15,40,232                        ; movaps        %xmm8,%xmm13
11380  DB  69,15,194,194,1                     ; cmpltps       %xmm10,%xmm8
11381  DB  65,15,40,226                        ; movaps        %xmm10,%xmm4
11382  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
11383  DB  102,15,56,20,226                    ; blendvps      %xmm0,%xmm2,%xmm4
11384  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
11385  DB  15,194,68,36,32,1                   ; cmpltps       0x20(%rsp),%xmm0
11386  DB  69,15,88,234                        ; addps         %xmm10,%xmm13
11387  DB  102,65,15,56,20,229                 ; blendvps      %xmm0,%xmm13,%xmm4
11388  DB  68,15,89,214                        ; mulps         %xmm6,%xmm10
11389  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11390  DB  15,194,195,1                        ; cmpltps       %xmm3,%xmm0
11391  DB  15,92,220                           ; subps         %xmm4,%xmm3
11392  DB  15,89,222                           ; mulps         %xmm6,%xmm3
11393  DB  69,15,88,209                        ; addps         %xmm9,%xmm10
11394  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
11395  DB  102,68,15,56,20,203                 ; blendvps      %xmm0,%xmm3,%xmm9
11396  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11397  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
11398  DB  102,68,15,56,20,207                 ; blendvps      %xmm0,%xmm7,%xmm9
11399  DB  15,40,196                           ; movaps        %xmm4,%xmm0
11400  DB  15,194,197,1                        ; cmpltps       %xmm5,%xmm0
11401  DB  102,69,15,56,20,202                 ; blendvps      %xmm0,%xmm10,%xmm9
11402  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
11403  DB  102,69,15,56,20,207                 ; blendvps      %xmm0,%xmm15,%xmm9
11404  DB  72,173                              ; lods          %ds:(%rsi),%rax
11405  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
11406  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
11407  DB  15,40,92,36,64                      ; movaps        0x40(%rsp),%xmm3
11408  DB  15,40,100,36,80                     ; movaps        0x50(%rsp),%xmm4
11409  DB  15,40,108,36,96                     ; movaps        0x60(%rsp),%xmm5
11410  DB  15,40,116,36,112                    ; movaps        0x70(%rsp),%xmm6
11411  DB  15,40,188,36,128,0,0,0              ; movaps        0x80(%rsp),%xmm7
11412  DB  72,129,196,152,0,0,0                ; add           $0x98,%rsp
11413  DB  255,224                             ; jmpq          *%rax
11414
11415PUBLIC _sk_scale_1_float_sse41
11416_sk_scale_1_float_sse41 LABEL PROC
11417  DB  72,173                              ; lods          %ds:(%rsi),%rax
11418  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
11419  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11420  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11421  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11422  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11423  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11424  DB  72,173                              ; lods          %ds:(%rsi),%rax
11425  DB  255,224                             ; jmpq          *%rax
11426
11427PUBLIC _sk_scale_u8_sse41
11428_sk_scale_u8_sse41 LABEL PROC
11429  DB  72,173                              ; lods          %ds:(%rsi),%rax
11430  DB  72,139,0                            ; mov           (%rax),%rax
11431  DB  102,68,15,56,49,4,56                ; pmovzxbd      (%rax,%rdi,1),%xmm8
11432  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11433  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
11434  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
11435  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11436  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
11437  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11438  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11439  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11440  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
11441  DB  72,173                              ; lods          %ds:(%rsi),%rax
11442  DB  255,224                             ; jmpq          *%rax
11443
11444PUBLIC _sk_lerp_1_float_sse41
11445_sk_lerp_1_float_sse41 LABEL PROC
11446  DB  72,173                              ; lods          %ds:(%rsi),%rax
11447  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
11448  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11449  DB  15,92,196                           ; subps         %xmm4,%xmm0
11450  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11451  DB  15,88,196                           ; addps         %xmm4,%xmm0
11452  DB  15,92,205                           ; subps         %xmm5,%xmm1
11453  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11454  DB  15,88,205                           ; addps         %xmm5,%xmm1
11455  DB  15,92,214                           ; subps         %xmm6,%xmm2
11456  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11457  DB  15,88,214                           ; addps         %xmm6,%xmm2
11458  DB  15,92,223                           ; subps         %xmm7,%xmm3
11459  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11460  DB  15,88,223                           ; addps         %xmm7,%xmm3
11461  DB  72,173                              ; lods          %ds:(%rsi),%rax
11462  DB  255,224                             ; jmpq          *%rax
11463
11464PUBLIC _sk_lerp_u8_sse41
11465_sk_lerp_u8_sse41 LABEL PROC
11466  DB  72,173                              ; lods          %ds:(%rsi),%rax
11467  DB  72,139,0                            ; mov           (%rax),%rax
11468  DB  102,68,15,56,49,4,56                ; pmovzxbd      (%rax,%rdi,1),%xmm8
11469  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11470  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
11471  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
11472  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11473  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
11474  DB  15,92,196                           ; subps         %xmm4,%xmm0
11475  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11476  DB  15,88,196                           ; addps         %xmm4,%xmm0
11477  DB  15,92,205                           ; subps         %xmm5,%xmm1
11478  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11479  DB  15,88,205                           ; addps         %xmm5,%xmm1
11480  DB  15,92,214                           ; subps         %xmm6,%xmm2
11481  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11482  DB  15,88,214                           ; addps         %xmm6,%xmm2
11483  DB  15,92,223                           ; subps         %xmm7,%xmm3
11484  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
11485  DB  15,88,223                           ; addps         %xmm7,%xmm3
11486  DB  72,173                              ; lods          %ds:(%rsi),%rax
11487  DB  255,224                             ; jmpq          *%rax
11488
11489PUBLIC _sk_lerp_565_sse41
11490_sk_lerp_565_sse41 LABEL PROC
11491  DB  72,173                              ; lods          %ds:(%rsi),%rax
11492  DB  72,139,0                            ; mov           (%rax),%rax
11493  DB  102,68,15,56,51,4,120               ; pmovzxwd      (%rax,%rdi,2),%xmm8
11494  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
11495  DB  102,15,110,216                      ; movd          %eax,%xmm3
11496  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
11497  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
11498  DB  68,15,91,203                        ; cvtdq2ps      %xmm3,%xmm9
11499  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
11500  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
11501  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
11502  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
11503  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
11504  DB  102,15,110,216                      ; movd          %eax,%xmm3
11505  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
11506  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
11507  DB  68,15,91,203                        ; cvtdq2ps      %xmm3,%xmm9
11508  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
11509  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
11510  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
11511  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
11512  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
11513  DB  102,15,110,216                      ; movd          %eax,%xmm3
11514  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
11515  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
11516  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
11517  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
11518  DB  102,15,110,216                      ; movd          %eax,%xmm3
11519  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11520  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11521  DB  15,92,196                           ; subps         %xmm4,%xmm0
11522  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
11523  DB  15,88,196                           ; addps         %xmm4,%xmm0
11524  DB  15,92,205                           ; subps         %xmm5,%xmm1
11525  DB  65,15,89,203                        ; mulps         %xmm11,%xmm1
11526  DB  15,88,205                           ; addps         %xmm5,%xmm1
11527  DB  15,92,214                           ; subps         %xmm6,%xmm2
11528  DB  15,89,211                           ; mulps         %xmm3,%xmm2
11529  DB  15,88,214                           ; addps         %xmm6,%xmm2
11530  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11531  DB  102,15,110,216                      ; movd          %eax,%xmm3
11532  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11533  DB  72,173                              ; lods          %ds:(%rsi),%rax
11534  DB  255,224                             ; jmpq          *%rax
11535
11536PUBLIC _sk_load_tables_sse41
11537_sk_load_tables_sse41 LABEL PROC
11538  DB  72,173                              ; lods          %ds:(%rsi),%rax
11539  DB  72,139,8                            ; mov           (%rax),%rcx
11540  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
11541  DB  243,68,15,111,4,185                 ; movdqu        (%rcx,%rdi,4),%xmm8
11542  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
11543  DB  102,15,110,193                      ; movd          %ecx,%xmm0
11544  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
11545  DB  102,65,15,111,200                   ; movdqa        %xmm8,%xmm1
11546  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
11547  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
11548  DB  102,65,15,111,208                   ; movdqa        %xmm8,%xmm2
11549  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
11550  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
11551  DB  102,65,15,219,192                   ; pand          %xmm8,%xmm0
11552  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
11553  DB  65,137,201                          ; mov           %ecx,%r9d
11554  DB  72,193,233,32                       ; shr           $0x20,%rcx
11555  DB  102,73,15,126,194                   ; movq          %xmm0,%r10
11556  DB  69,137,211                          ; mov           %r10d,%r11d
11557  DB  73,193,234,32                       ; shr           $0x20,%r10
11558  DB  243,67,15,16,4,152                  ; movss         (%r8,%r11,4),%xmm0
11559  DB  102,67,15,58,33,4,144,16            ; insertps      $0x10,(%r8,%r10,4),%xmm0
11560  DB  102,67,15,58,33,4,136,32            ; insertps      $0x20,(%r8,%r9,4),%xmm0
11561  DB  102,65,15,58,33,4,136,48            ; insertps      $0x30,(%r8,%rcx,4),%xmm0
11562  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
11563  DB  102,73,15,58,22,202,1               ; pextrq        $0x1,%xmm1,%r10
11564  DB  77,137,209                          ; mov           %r10,%r9
11565  DB  73,193,233,32                       ; shr           $0x20,%r9
11566  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
11567  DB  65,137,203                          ; mov           %ecx,%r11d
11568  DB  65,129,227,255,255,255,0            ; and           $0xffffff,%r11d
11569  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11570  DB  65,129,226,255,255,255,0            ; and           $0xffffff,%r10d
11571  DB  243,67,15,16,12,152                 ; movss         (%r8,%r11,4),%xmm1
11572  DB  102,65,15,58,33,12,8,16             ; insertps      $0x10,(%r8,%rcx,1),%xmm1
11573  DB  243,67,15,16,28,144                 ; movss         (%r8,%r10,4),%xmm3
11574  DB  102,15,58,33,203,32                 ; insertps      $0x20,%xmm3,%xmm1
11575  DB  243,67,15,16,28,136                 ; movss         (%r8,%r9,4),%xmm3
11576  DB  102,15,58,33,203,48                 ; insertps      $0x30,%xmm3,%xmm1
11577  DB  76,139,72,24                        ; mov           0x18(%rax),%r9
11578  DB  102,72,15,58,22,209,1               ; pextrq        $0x1,%xmm2,%rcx
11579  DB  68,15,183,193                       ; movzwl        %cx,%r8d
11580  DB  72,193,233,32                       ; shr           $0x20,%rcx
11581  DB  102,72,15,126,208                   ; movq          %xmm2,%rax
11582  DB  68,15,183,208                       ; movzwl        %ax,%r10d
11583  DB  72,193,232,30                       ; shr           $0x1e,%rax
11584  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
11585  DB  102,65,15,58,33,20,1,16             ; insertps      $0x10,(%r9,%rax,1),%xmm2
11586  DB  243,67,15,16,28,129                 ; movss         (%r9,%r8,4),%xmm3
11587  DB  102,15,58,33,211,32                 ; insertps      $0x20,%xmm3,%xmm2
11588  DB  243,65,15,16,28,137                 ; movss         (%r9,%rcx,4),%xmm3
11589  DB  102,15,58,33,211,48                 ; insertps      $0x30,%xmm3,%xmm2
11590  DB  102,65,15,114,208,24                ; psrld         $0x18,%xmm8
11591  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11592  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
11593  DB  102,15,110,216                      ; movd          %eax,%xmm3
11594  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11595  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11596  DB  72,173                              ; lods          %ds:(%rsi),%rax
11597  DB  255,224                             ; jmpq          *%rax
11598
11599PUBLIC _sk_load_tables_u16_be_sse41
11600_sk_load_tables_u16_be_sse41 LABEL PROC
11601  DB  72,173                              ; lods          %ds:(%rsi),%rax
11602  DB  72,139,8                            ; mov           (%rax),%rcx
11603  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
11604  DB  243,15,111,4,249                    ; movdqu        (%rcx,%rdi,8),%xmm0
11605  DB  243,15,111,76,249,16                ; movdqu        0x10(%rcx,%rdi,8),%xmm1
11606  DB  102,15,111,216                      ; movdqa        %xmm0,%xmm3
11607  DB  102,15,97,217                       ; punpcklwd     %xmm1,%xmm3
11608  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
11609  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
11610  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
11611  DB  102,15,105,216                      ; punpckhwd     %xmm0,%xmm3
11612  DB  102,15,56,51,193                    ; pmovzxwd      %xmm1,%xmm0
11613  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
11614  DB  102,15,110,209                      ; movd          %ecx,%xmm2
11615  DB  102,68,15,112,194,0                 ; pshufd        $0x0,%xmm2,%xmm8
11616  DB  102,65,15,219,192                   ; pand          %xmm8,%xmm0
11617  DB  102,73,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%r9
11618  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
11619  DB  65,137,202                          ; mov           %ecx,%r10d
11620  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11621  DB  69,137,203                          ; mov           %r9d,%r11d
11622  DB  73,193,233,30                       ; shr           $0x1e,%r9
11623  DB  243,67,15,16,4,144                  ; movss         (%r8,%r10,4),%xmm0
11624  DB  102,65,15,58,33,4,8,16              ; insertps      $0x10,(%r8,%rcx,1),%xmm0
11625  DB  102,67,15,58,33,4,152,32            ; insertps      $0x20,(%r8,%r11,4),%xmm0
11626  DB  102,67,15,58,33,4,8,48              ; insertps      $0x30,(%r8,%r9,1),%xmm0
11627  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
11628  DB  102,15,115,217,8                    ; psrldq        $0x8,%xmm1
11629  DB  102,15,56,51,201                    ; pmovzxwd      %xmm1,%xmm1
11630  DB  102,65,15,219,200                   ; pand          %xmm8,%xmm1
11631  DB  102,73,15,58,22,201,1               ; pextrq        $0x1,%xmm1,%r9
11632  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
11633  DB  65,137,202                          ; mov           %ecx,%r10d
11634  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11635  DB  69,137,203                          ; mov           %r9d,%r11d
11636  DB  73,193,233,30                       ; shr           $0x1e,%r9
11637  DB  243,67,15,16,12,144                 ; movss         (%r8,%r10,4),%xmm1
11638  DB  102,65,15,58,33,12,8,16             ; insertps      $0x10,(%r8,%rcx,1),%xmm1
11639  DB  243,67,15,16,20,152                 ; movss         (%r8,%r11,4),%xmm2
11640  DB  102,15,58,33,202,32                 ; insertps      $0x20,%xmm2,%xmm1
11641  DB  243,67,15,16,20,8                   ; movss         (%r8,%r9,1),%xmm2
11642  DB  102,15,58,33,202,48                 ; insertps      $0x30,%xmm2,%xmm1
11643  DB  76,139,64,24                        ; mov           0x18(%rax),%r8
11644  DB  102,15,56,51,211                    ; pmovzxwd      %xmm3,%xmm2
11645  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
11646  DB  102,72,15,58,22,209,1               ; pextrq        $0x1,%xmm2,%rcx
11647  DB  102,72,15,126,208                   ; movq          %xmm2,%rax
11648  DB  65,137,193                          ; mov           %eax,%r9d
11649  DB  72,193,232,30                       ; shr           $0x1e,%rax
11650  DB  65,137,202                          ; mov           %ecx,%r10d
11651  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11652  DB  243,67,15,16,20,136                 ; movss         (%r8,%r9,4),%xmm2
11653  DB  102,65,15,58,33,20,0,16             ; insertps      $0x10,(%r8,%rax,1),%xmm2
11654  DB  102,67,15,58,33,20,144,32           ; insertps      $0x20,(%r8,%r10,4),%xmm2
11655  DB  102,65,15,58,33,20,8,48             ; insertps      $0x30,(%r8,%rcx,1),%xmm2
11656  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
11657  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11658  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11659  DB  102,15,112,219,78                   ; pshufd        $0x4e,%xmm3,%xmm3
11660  DB  102,68,15,111,203                   ; movdqa        %xmm3,%xmm9
11661  DB  102,65,15,113,241,8                 ; psllw         $0x8,%xmm9
11662  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
11663  DB  102,65,15,235,217                   ; por           %xmm9,%xmm3
11664  DB  102,15,56,51,219                    ; pmovzxwd      %xmm3,%xmm3
11665  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
11666  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
11667  DB  72,173                              ; lods          %ds:(%rsi),%rax
11668  DB  255,224                             ; jmpq          *%rax
11669
11670PUBLIC _sk_load_tables_rgb_u16_be_sse41
11671_sk_load_tables_rgb_u16_be_sse41 LABEL PROC
11672  DB  72,173                              ; lods          %ds:(%rsi),%rax
11673  DB  76,141,12,127                       ; lea           (%rdi,%rdi,2),%r9
11674  DB  72,139,8                            ; mov           (%rax),%rcx
11675  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
11676  DB  243,66,15,111,20,73                 ; movdqu        (%rcx,%r9,2),%xmm2
11677  DB  243,66,15,111,68,73,8               ; movdqu        0x8(%rcx,%r9,2),%xmm0
11678  DB  102,15,115,216,4                    ; psrldq        $0x4,%xmm0
11679  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
11680  DB  102,15,115,217,6                    ; psrldq        $0x6,%xmm1
11681  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
11682  DB  102,15,115,216,6                    ; psrldq        $0x6,%xmm0
11683  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
11684  DB  102,15,111,194                      ; movdqa        %xmm2,%xmm0
11685  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
11686  DB  102,68,15,112,192,78                ; pshufd        $0x4e,%xmm0,%xmm8
11687  DB  102,15,105,209                      ; punpckhwd     %xmm1,%xmm2
11688  DB  102,15,56,51,192                    ; pmovzxwd      %xmm0,%xmm0
11689  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
11690  DB  102,15,110,201                      ; movd          %ecx,%xmm1
11691  DB  102,68,15,112,201,0                 ; pshufd        $0x0,%xmm1,%xmm9
11692  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
11693  DB  102,73,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%r9
11694  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
11695  DB  65,137,202                          ; mov           %ecx,%r10d
11696  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11697  DB  69,137,203                          ; mov           %r9d,%r11d
11698  DB  73,193,233,30                       ; shr           $0x1e,%r9
11699  DB  243,67,15,16,4,144                  ; movss         (%r8,%r10,4),%xmm0
11700  DB  102,65,15,58,33,4,8,16              ; insertps      $0x10,(%r8,%rcx,1),%xmm0
11701  DB  102,67,15,58,33,4,152,32            ; insertps      $0x20,(%r8,%r11,4),%xmm0
11702  DB  102,67,15,58,33,4,8,48              ; insertps      $0x30,(%r8,%r9,1),%xmm0
11703  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
11704  DB  102,65,15,56,51,200                 ; pmovzxwd      %xmm8,%xmm1
11705  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
11706  DB  102,73,15,58,22,201,1               ; pextrq        $0x1,%xmm1,%r9
11707  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
11708  DB  65,137,202                          ; mov           %ecx,%r10d
11709  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11710  DB  69,137,203                          ; mov           %r9d,%r11d
11711  DB  73,193,233,30                       ; shr           $0x1e,%r9
11712  DB  243,67,15,16,12,144                 ; movss         (%r8,%r10,4),%xmm1
11713  DB  102,65,15,58,33,12,8,16             ; insertps      $0x10,(%r8,%rcx,1),%xmm1
11714  DB  243,67,15,16,28,152                 ; movss         (%r8,%r11,4),%xmm3
11715  DB  102,15,58,33,203,32                 ; insertps      $0x20,%xmm3,%xmm1
11716  DB  243,67,15,16,28,8                   ; movss         (%r8,%r9,1),%xmm3
11717  DB  102,15,58,33,203,48                 ; insertps      $0x30,%xmm3,%xmm1
11718  DB  76,139,64,24                        ; mov           0x18(%rax),%r8
11719  DB  102,15,56,51,210                    ; pmovzxwd      %xmm2,%xmm2
11720  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
11721  DB  102,72,15,58,22,209,1               ; pextrq        $0x1,%xmm2,%rcx
11722  DB  102,72,15,126,208                   ; movq          %xmm2,%rax
11723  DB  65,137,193                          ; mov           %eax,%r9d
11724  DB  72,193,232,30                       ; shr           $0x1e,%rax
11725  DB  65,137,202                          ; mov           %ecx,%r10d
11726  DB  72,193,233,30                       ; shr           $0x1e,%rcx
11727  DB  243,67,15,16,20,136                 ; movss         (%r8,%r9,4),%xmm2
11728  DB  102,65,15,58,33,20,0,16             ; insertps      $0x10,(%r8,%rax,1),%xmm2
11729  DB  102,67,15,58,33,20,144,32           ; insertps      $0x20,(%r8,%r10,4),%xmm2
11730  DB  102,65,15,58,33,20,8,48             ; insertps      $0x30,(%r8,%rcx,1),%xmm2
11731  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
11732  DB  102,15,110,216                      ; movd          %eax,%xmm3
11733  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
11734  DB  72,173                              ; lods          %ds:(%rsi),%rax
11735  DB  255,224                             ; jmpq          *%rax
11736
11737PUBLIC _sk_byte_tables_sse41
11738_sk_byte_tables_sse41 LABEL PROC
11739  DB  65,86                               ; push          %r14
11740  DB  83                                  ; push          %rbx
11741  DB  72,173                              ; lods          %ds:(%rsi),%rax
11742  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
11743  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
11744  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
11745  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11746  DB  102,15,91,192                       ; cvtps2dq      %xmm0,%xmm0
11747  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
11748  DB  65,137,200                          ; mov           %ecx,%r8d
11749  DB  72,193,233,32                       ; shr           $0x20,%rcx
11750  DB  102,73,15,126,193                   ; movq          %xmm0,%r9
11751  DB  69,137,202                          ; mov           %r9d,%r10d
11752  DB  77,137,203                          ; mov           %r9,%r11
11753  DB  73,193,235,32                       ; shr           $0x20,%r11
11754  DB  76,139,48                           ; mov           (%rax),%r14
11755  DB  76,139,72,8                         ; mov           0x8(%rax),%r9
11756  DB  102,67,15,58,32,4,22,0              ; pinsrb        $0x0,(%r14,%r10,1),%xmm0
11757  DB  102,67,15,58,32,4,30,1              ; pinsrb        $0x1,(%r14,%r11,1),%xmm0
11758  DB  67,15,182,28,6                      ; movzbl        (%r14,%r8,1),%ebx
11759  DB  102,15,58,32,195,2                  ; pinsrb        $0x2,%ebx,%xmm0
11760  DB  65,15,182,12,14                     ; movzbl        (%r14,%rcx,1),%ecx
11761  DB  102,15,58,32,193,3                  ; pinsrb        $0x3,%ecx,%xmm0
11762  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
11763  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
11764  DB  185,129,128,128,59                  ; mov           $0x3b808081,%ecx
11765  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
11766  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11767  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11768  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11769  DB  102,15,91,201                       ; cvtps2dq      %xmm1,%xmm1
11770  DB  102,72,15,58,22,201,1               ; pextrq        $0x1,%xmm1,%rcx
11771  DB  65,137,200                          ; mov           %ecx,%r8d
11772  DB  72,193,233,32                       ; shr           $0x20,%rcx
11773  DB  102,72,15,126,203                   ; movq          %xmm1,%rbx
11774  DB  65,137,218                          ; mov           %ebx,%r10d
11775  DB  72,193,235,32                       ; shr           $0x20,%rbx
11776  DB  102,67,15,58,32,12,17,0             ; pinsrb        $0x0,(%r9,%r10,1),%xmm1
11777  DB  102,65,15,58,32,12,25,1             ; pinsrb        $0x1,(%r9,%rbx,1),%xmm1
11778  DB  67,15,182,28,1                      ; movzbl        (%r9,%r8,1),%ebx
11779  DB  102,15,58,32,203,2                  ; pinsrb        $0x2,%ebx,%xmm1
11780  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
11781  DB  102,15,58,32,201,3                  ; pinsrb        $0x3,%ecx,%xmm1
11782  DB  102,15,56,49,201                    ; pmovzxbd      %xmm1,%xmm1
11783  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
11784  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11785  DB  76,139,72,16                        ; mov           0x10(%rax),%r9
11786  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11787  DB  102,15,91,210                       ; cvtps2dq      %xmm2,%xmm2
11788  DB  102,72,15,58,22,211,1               ; pextrq        $0x1,%xmm2,%rbx
11789  DB  65,137,216                          ; mov           %ebx,%r8d
11790  DB  72,193,235,32                       ; shr           $0x20,%rbx
11791  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
11792  DB  65,137,202                          ; mov           %ecx,%r10d
11793  DB  72,193,233,32                       ; shr           $0x20,%rcx
11794  DB  102,67,15,58,32,20,17,0             ; pinsrb        $0x0,(%r9,%r10,1),%xmm2
11795  DB  102,65,15,58,32,20,9,1              ; pinsrb        $0x1,(%r9,%rcx,1),%xmm2
11796  DB  67,15,182,12,1                      ; movzbl        (%r9,%r8,1),%ecx
11797  DB  102,15,58,32,209,2                  ; pinsrb        $0x2,%ecx,%xmm2
11798  DB  65,15,182,12,25                     ; movzbl        (%r9,%rbx,1),%ecx
11799  DB  102,15,58,32,209,3                  ; pinsrb        $0x3,%ecx,%xmm2
11800  DB  102,15,56,49,210                    ; pmovzxbd      %xmm2,%xmm2
11801  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
11802  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11803  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
11804  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
11805  DB  102,65,15,91,216                    ; cvtps2dq      %xmm8,%xmm3
11806  DB  102,72,15,58,22,217,1               ; pextrq        $0x1,%xmm3,%rcx
11807  DB  65,137,200                          ; mov           %ecx,%r8d
11808  DB  72,193,233,32                       ; shr           $0x20,%rcx
11809  DB  102,72,15,126,219                   ; movq          %xmm3,%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,28,8,0              ; pinsrb        $0x0,(%rax,%r9,1),%xmm3
11813  DB  102,15,58,32,28,24,1                ; pinsrb        $0x1,(%rax,%rbx,1),%xmm3
11814  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
11815  DB  102,15,58,32,219,2                  ; pinsrb        $0x2,%ebx,%xmm3
11816  DB  15,182,4,8                          ; movzbl        (%rax,%rcx,1),%eax
11817  DB  102,15,58,32,216,3                  ; pinsrb        $0x3,%eax,%xmm3
11818  DB  102,15,56,49,219                    ; pmovzxbd      %xmm3,%xmm3
11819  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
11820  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
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_byte_tables_rgb_sse41
11827_sk_byte_tables_rgb_sse41 LABEL PROC
11828  DB  65,86                               ; push          %r14
11829  DB  83                                  ; push          %rbx
11830  DB  72,173                              ; lods          %ds:(%rsi),%rax
11831  DB  139,72,24                           ; mov           0x18(%rax),%ecx
11832  DB  255,201                             ; dec           %ecx
11833  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
11834  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11835  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11836  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
11837  DB  102,15,91,192                       ; cvtps2dq      %xmm0,%xmm0
11838  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
11839  DB  65,137,200                          ; mov           %ecx,%r8d
11840  DB  72,193,233,32                       ; shr           $0x20,%rcx
11841  DB  102,73,15,126,193                   ; movq          %xmm0,%r9
11842  DB  69,137,202                          ; mov           %r9d,%r10d
11843  DB  77,137,203                          ; mov           %r9,%r11
11844  DB  73,193,235,32                       ; shr           $0x20,%r11
11845  DB  76,139,48                           ; mov           (%rax),%r14
11846  DB  76,139,72,8                         ; mov           0x8(%rax),%r9
11847  DB  102,67,15,58,32,4,22,0              ; pinsrb        $0x0,(%r14,%r10,1),%xmm0
11848  DB  102,67,15,58,32,4,30,1              ; pinsrb        $0x1,(%r14,%r11,1),%xmm0
11849  DB  67,15,182,28,6                      ; movzbl        (%r14,%r8,1),%ebx
11850  DB  102,15,58,32,195,2                  ; pinsrb        $0x2,%ebx,%xmm0
11851  DB  65,15,182,12,14                     ; movzbl        (%r14,%rcx,1),%ecx
11852  DB  102,15,58,32,193,3                  ; pinsrb        $0x3,%ecx,%xmm0
11853  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
11854  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
11855  DB  185,129,128,128,59                  ; mov           $0x3b808081,%ecx
11856  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
11857  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
11858  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
11859  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
11860  DB  102,15,91,201                       ; cvtps2dq      %xmm1,%xmm1
11861  DB  102,72,15,58,22,201,1               ; pextrq        $0x1,%xmm1,%rcx
11862  DB  65,137,200                          ; mov           %ecx,%r8d
11863  DB  72,193,233,32                       ; shr           $0x20,%rcx
11864  DB  102,72,15,126,203                   ; movq          %xmm1,%rbx
11865  DB  65,137,218                          ; mov           %ebx,%r10d
11866  DB  72,193,235,32                       ; shr           $0x20,%rbx
11867  DB  102,67,15,58,32,12,17,0             ; pinsrb        $0x0,(%r9,%r10,1),%xmm1
11868  DB  102,65,15,58,32,12,25,1             ; pinsrb        $0x1,(%r9,%rbx,1),%xmm1
11869  DB  67,15,182,28,1                      ; movzbl        (%r9,%r8,1),%ebx
11870  DB  102,15,58,32,203,2                  ; pinsrb        $0x2,%ebx,%xmm1
11871  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
11872  DB  102,15,58,32,201,3                  ; pinsrb        $0x3,%ecx,%xmm1
11873  DB  102,15,56,49,201                    ; pmovzxbd      %xmm1,%xmm1
11874  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
11875  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
11876  DB  72,139,64,16                        ; mov           0x10(%rax),%rax
11877  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
11878  DB  102,15,91,210                       ; cvtps2dq      %xmm2,%xmm2
11879  DB  102,72,15,58,22,209,1               ; pextrq        $0x1,%xmm2,%rcx
11880  DB  65,137,200                          ; mov           %ecx,%r8d
11881  DB  72,193,233,32                       ; shr           $0x20,%rcx
11882  DB  102,72,15,126,211                   ; movq          %xmm2,%rbx
11883  DB  65,137,217                          ; mov           %ebx,%r9d
11884  DB  72,193,235,32                       ; shr           $0x20,%rbx
11885  DB  102,66,15,58,32,20,8,0              ; pinsrb        $0x0,(%rax,%r9,1),%xmm2
11886  DB  102,15,58,32,20,24,1                ; pinsrb        $0x1,(%rax,%rbx,1),%xmm2
11887  DB  66,15,182,28,0                      ; movzbl        (%rax,%r8,1),%ebx
11888  DB  102,15,58,32,211,2                  ; pinsrb        $0x2,%ebx,%xmm2
11889  DB  15,182,4,8                          ; movzbl        (%rax,%rcx,1),%eax
11890  DB  102,15,58,32,208,3                  ; pinsrb        $0x3,%eax,%xmm2
11891  DB  102,15,56,49,210                    ; pmovzxbd      %xmm2,%xmm2
11892  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
11893  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
11894  DB  72,173                              ; lods          %ds:(%rsi),%rax
11895  DB  91                                  ; pop           %rbx
11896  DB  65,94                               ; pop           %r14
11897  DB  255,224                             ; jmpq          *%rax
11898
11899PUBLIC _sk_table_r_sse41
11900_sk_table_r_sse41 LABEL PROC
11901  DB  72,173                              ; lods          %ds:(%rsi),%rax
11902  DB  76,139,8                            ; mov           (%rax),%r9
11903  DB  139,64,8                            ; mov           0x8(%rax),%eax
11904  DB  255,200                             ; dec           %eax
11905  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11906  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11907  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11908  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
11909  DB  102,65,15,91,192                    ; cvtps2dq      %xmm8,%xmm0
11910  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
11911  DB  65,137,192                          ; mov           %eax,%r8d
11912  DB  72,193,232,32                       ; shr           $0x20,%rax
11913  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
11914  DB  65,137,202                          ; mov           %ecx,%r10d
11915  DB  72,193,233,32                       ; shr           $0x20,%rcx
11916  DB  243,67,15,16,4,145                  ; movss         (%r9,%r10,4),%xmm0
11917  DB  102,65,15,58,33,4,137,16            ; insertps      $0x10,(%r9,%rcx,4),%xmm0
11918  DB  243,71,15,16,4,129                  ; movss         (%r9,%r8,4),%xmm8
11919  DB  102,65,15,58,33,192,32              ; insertps      $0x20,%xmm8,%xmm0
11920  DB  243,69,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm8
11921  DB  102,65,15,58,33,192,48              ; insertps      $0x30,%xmm8,%xmm0
11922  DB  72,173                              ; lods          %ds:(%rsi),%rax
11923  DB  255,224                             ; jmpq          *%rax
11924
11925PUBLIC _sk_table_g_sse41
11926_sk_table_g_sse41 LABEL PROC
11927  DB  72,173                              ; lods          %ds:(%rsi),%rax
11928  DB  76,139,8                            ; mov           (%rax),%r9
11929  DB  139,64,8                            ; mov           0x8(%rax),%eax
11930  DB  255,200                             ; dec           %eax
11931  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11932  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11933  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11934  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
11935  DB  102,65,15,91,200                    ; cvtps2dq      %xmm8,%xmm1
11936  DB  102,72,15,58,22,200,1               ; pextrq        $0x1,%xmm1,%rax
11937  DB  65,137,192                          ; mov           %eax,%r8d
11938  DB  72,193,232,32                       ; shr           $0x20,%rax
11939  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
11940  DB  65,137,202                          ; mov           %ecx,%r10d
11941  DB  72,193,233,32                       ; shr           $0x20,%rcx
11942  DB  243,67,15,16,12,145                 ; movss         (%r9,%r10,4),%xmm1
11943  DB  102,65,15,58,33,12,137,16           ; insertps      $0x10,(%r9,%rcx,4),%xmm1
11944  DB  243,71,15,16,4,129                  ; movss         (%r9,%r8,4),%xmm8
11945  DB  102,65,15,58,33,200,32              ; insertps      $0x20,%xmm8,%xmm1
11946  DB  243,69,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm8
11947  DB  102,65,15,58,33,200,48              ; insertps      $0x30,%xmm8,%xmm1
11948  DB  72,173                              ; lods          %ds:(%rsi),%rax
11949  DB  255,224                             ; jmpq          *%rax
11950
11951PUBLIC _sk_table_b_sse41
11952_sk_table_b_sse41 LABEL PROC
11953  DB  72,173                              ; lods          %ds:(%rsi),%rax
11954  DB  76,139,8                            ; mov           (%rax),%r9
11955  DB  139,64,8                            ; mov           0x8(%rax),%eax
11956  DB  255,200                             ; dec           %eax
11957  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11958  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11959  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11960  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
11961  DB  102,65,15,91,208                    ; cvtps2dq      %xmm8,%xmm2
11962  DB  102,72,15,58,22,208,1               ; pextrq        $0x1,%xmm2,%rax
11963  DB  65,137,192                          ; mov           %eax,%r8d
11964  DB  72,193,232,32                       ; shr           $0x20,%rax
11965  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
11966  DB  65,137,202                          ; mov           %ecx,%r10d
11967  DB  72,193,233,32                       ; shr           $0x20,%rcx
11968  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
11969  DB  102,65,15,58,33,20,137,16           ; insertps      $0x10,(%r9,%rcx,4),%xmm2
11970  DB  243,71,15,16,4,129                  ; movss         (%r9,%r8,4),%xmm8
11971  DB  102,65,15,58,33,208,32              ; insertps      $0x20,%xmm8,%xmm2
11972  DB  243,69,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm8
11973  DB  102,65,15,58,33,208,48              ; insertps      $0x30,%xmm8,%xmm2
11974  DB  72,173                              ; lods          %ds:(%rsi),%rax
11975  DB  255,224                             ; jmpq          *%rax
11976
11977PUBLIC _sk_table_a_sse41
11978_sk_table_a_sse41 LABEL PROC
11979  DB  72,173                              ; lods          %ds:(%rsi),%rax
11980  DB  76,139,8                            ; mov           (%rax),%r9
11981  DB  139,64,8                            ; mov           0x8(%rax),%eax
11982  DB  255,200                             ; dec           %eax
11983  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
11984  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
11985  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
11986  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
11987  DB  102,65,15,91,216                    ; cvtps2dq      %xmm8,%xmm3
11988  DB  102,72,15,58,22,216,1               ; pextrq        $0x1,%xmm3,%rax
11989  DB  65,137,192                          ; mov           %eax,%r8d
11990  DB  72,193,232,32                       ; shr           $0x20,%rax
11991  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
11992  DB  65,137,202                          ; mov           %ecx,%r10d
11993  DB  72,193,233,32                       ; shr           $0x20,%rcx
11994  DB  243,67,15,16,28,145                 ; movss         (%r9,%r10,4),%xmm3
11995  DB  102,65,15,58,33,28,137,16           ; insertps      $0x10,(%r9,%rcx,4),%xmm3
11996  DB  243,71,15,16,4,129                  ; movss         (%r9,%r8,4),%xmm8
11997  DB  102,65,15,58,33,216,32              ; insertps      $0x20,%xmm8,%xmm3
11998  DB  243,69,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm8
11999  DB  102,65,15,58,33,216,48              ; insertps      $0x30,%xmm8,%xmm3
12000  DB  72,173                              ; lods          %ds:(%rsi),%rax
12001  DB  255,224                             ; jmpq          *%rax
12002
12003PUBLIC _sk_parametric_r_sse41
12004_sk_parametric_r_sse41 LABEL PROC
12005  DB  72,173                              ; lods          %ds:(%rsi),%rax
12006  DB  243,68,15,16,64,16                  ; movss         0x10(%rax),%xmm8
12007  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12008  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
12009  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
12010  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12011  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
12012  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12013  DB  68,15,89,216                        ; mulps         %xmm0,%xmm11
12014  DB  65,15,194,192,2                     ; cmpleps       %xmm8,%xmm0
12015  DB  243,68,15,16,64,24                  ; movss         0x18(%rax),%xmm8
12016  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12017  DB  69,15,88,200                        ; addps         %xmm8,%xmm9
12018  DB  243,68,15,16,16                     ; movss         (%rax),%xmm10
12019  DB  243,68,15,16,64,8                   ; movss         0x8(%rax),%xmm8
12020  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12021  DB  69,15,88,216                        ; addps         %xmm8,%xmm11
12022  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12023  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
12024  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
12025  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12026  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12027  DB  69,15,89,196                        ; mulps         %xmm12,%xmm8
12028  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
12029  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12030  DB  102,69,15,112,228,0                 ; pshufd        $0x0,%xmm12,%xmm12
12031  DB  102,69,15,219,227                   ; pand          %xmm11,%xmm12
12032  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
12033  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
12034  DB  102,69,15,112,219,0                 ; pshufd        $0x0,%xmm11,%xmm11
12035  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
12036  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
12037  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12038  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12039  DB  69,15,92,196                        ; subps         %xmm12,%xmm8
12040  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
12041  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12042  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12043  DB  69,15,89,227                        ; mulps         %xmm11,%xmm12
12044  DB  69,15,92,196                        ; subps         %xmm12,%xmm8
12045  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
12046  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12047  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12048  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
12049  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
12050  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
12051  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
12052  DB  69,15,94,229                        ; divps         %xmm13,%xmm12
12053  DB  69,15,92,196                        ; subps         %xmm12,%xmm8
12054  DB  69,15,89,194                        ; mulps         %xmm10,%xmm8
12055  DB  102,69,15,58,8,216,1                ; roundps       $0x1,%xmm8,%xmm11
12056  DB  185,0,0,0,75                        ; mov           $0x4b000000,%ecx
12057  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
12058  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12059  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
12060  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12061  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12062  DB  69,15,88,224                        ; addps         %xmm8,%xmm12
12063  DB  69,15,92,195                        ; subps         %xmm11,%xmm8
12064  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
12065  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
12066  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12067  DB  69,15,89,216                        ; mulps         %xmm8,%xmm11
12068  DB  69,15,92,227                        ; subps         %xmm11,%xmm12
12069  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
12070  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
12071  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12072  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
12073  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
12074  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
12075  DB  69,15,92,232                        ; subps         %xmm8,%xmm13
12076  DB  69,15,94,221                        ; divps         %xmm13,%xmm11
12077  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
12078  DB  69,15,89,218                        ; mulps         %xmm10,%xmm11
12079  DB  102,69,15,91,211                    ; cvtps2dq      %xmm11,%xmm10
12080  DB  243,68,15,16,64,20                  ; movss         0x14(%rax),%xmm8
12081  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12082  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
12083  DB  102,69,15,56,20,193                 ; blendvps      %xmm0,%xmm9,%xmm8
12084  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12085  DB  68,15,95,192                        ; maxps         %xmm0,%xmm8
12086  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12087  DB  102,15,110,192                      ; movd          %eax,%xmm0
12088  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12089  DB  68,15,93,192                        ; minps         %xmm0,%xmm8
12090  DB  72,173                              ; lods          %ds:(%rsi),%rax
12091  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12092  DB  255,224                             ; jmpq          *%rax
12093
12094PUBLIC _sk_parametric_g_sse41
12095_sk_parametric_g_sse41 LABEL PROC
12096  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
12097  DB  72,173                              ; lods          %ds:(%rsi),%rax
12098  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
12099  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12100  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
12101  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
12102  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
12103  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
12104  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12105  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
12106  DB  15,40,193                           ; movaps        %xmm1,%xmm0
12107  DB  65,15,194,194,2                     ; cmpleps       %xmm10,%xmm0
12108  DB  243,15,16,72,24                     ; movss         0x18(%rax),%xmm1
12109  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12110  DB  68,15,88,201                        ; addps         %xmm1,%xmm9
12111  DB  243,68,15,16,16                     ; movss         (%rax),%xmm10
12112  DB  243,15,16,72,8                      ; movss         0x8(%rax),%xmm1
12113  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12114  DB  68,15,88,217                        ; addps         %xmm1,%xmm11
12115  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12116  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
12117  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
12118  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
12119  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
12120  DB  69,15,89,236                        ; mulps         %xmm12,%xmm13
12121  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
12122  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12123  DB  102,68,15,112,225,0                 ; pshufd        $0x0,%xmm1,%xmm12
12124  DB  102,69,15,219,227                   ; pand          %xmm11,%xmm12
12125  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
12126  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12127  DB  102,68,15,112,217,0                 ; pshufd        $0x0,%xmm1,%xmm11
12128  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
12129  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
12130  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12131  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12132  DB  68,15,92,233                        ; subps         %xmm1,%xmm13
12133  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
12134  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12135  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12136  DB  65,15,89,203                        ; mulps         %xmm11,%xmm1
12137  DB  68,15,92,233                        ; subps         %xmm1,%xmm13
12138  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
12139  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12140  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12141  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
12142  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12143  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12144  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
12145  DB  68,15,94,225                        ; divps         %xmm1,%xmm12
12146  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
12147  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
12148  DB  102,69,15,58,8,221,1                ; roundps       $0x1,%xmm13,%xmm11
12149  DB  185,0,0,0,75                        ; mov           $0x4b000000,%ecx
12150  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
12151  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12152  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
12153  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12154  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12155  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
12156  DB  69,15,92,235                        ; subps         %xmm11,%xmm13
12157  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
12158  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12159  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12160  DB  65,15,89,205                        ; mulps         %xmm13,%xmm1
12161  DB  68,15,92,225                        ; subps         %xmm1,%xmm12
12162  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
12163  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
12164  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12165  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
12166  DB  102,15,110,201                      ; movd          %ecx,%xmm1
12167  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12168  DB  65,15,92,205                        ; subps         %xmm13,%xmm1
12169  DB  68,15,94,217                        ; divps         %xmm1,%xmm11
12170  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
12171  DB  69,15,89,218                        ; mulps         %xmm10,%xmm11
12172  DB  102,69,15,91,211                    ; cvtps2dq      %xmm11,%xmm10
12173  DB  243,15,16,72,20                     ; movss         0x14(%rax),%xmm1
12174  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12175  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
12176  DB  102,65,15,56,20,201                 ; blendvps      %xmm0,%xmm9,%xmm1
12177  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12178  DB  15,95,200                           ; maxps         %xmm0,%xmm1
12179  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12180  DB  102,15,110,192                      ; movd          %eax,%xmm0
12181  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12182  DB  15,93,200                           ; minps         %xmm0,%xmm1
12183  DB  72,173                              ; lods          %ds:(%rsi),%rax
12184  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12185  DB  255,224                             ; jmpq          *%rax
12186
12187PUBLIC _sk_parametric_b_sse41
12188_sk_parametric_b_sse41 LABEL PROC
12189  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
12190  DB  72,173                              ; lods          %ds:(%rsi),%rax
12191  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
12192  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12193  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
12194  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
12195  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
12196  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
12197  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12198  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
12199  DB  15,40,194                           ; movaps        %xmm2,%xmm0
12200  DB  65,15,194,194,2                     ; cmpleps       %xmm10,%xmm0
12201  DB  243,15,16,80,24                     ; movss         0x18(%rax),%xmm2
12202  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12203  DB  68,15,88,202                        ; addps         %xmm2,%xmm9
12204  DB  243,68,15,16,16                     ; movss         (%rax),%xmm10
12205  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
12206  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12207  DB  68,15,88,218                        ; addps         %xmm2,%xmm11
12208  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12209  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
12210  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
12211  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
12212  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
12213  DB  69,15,89,236                        ; mulps         %xmm12,%xmm13
12214  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
12215  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12216  DB  102,68,15,112,226,0                 ; pshufd        $0x0,%xmm2,%xmm12
12217  DB  102,69,15,219,227                   ; pand          %xmm11,%xmm12
12218  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
12219  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12220  DB  102,68,15,112,218,0                 ; pshufd        $0x0,%xmm2,%xmm11
12221  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
12222  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
12223  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12224  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12225  DB  68,15,92,234                        ; subps         %xmm2,%xmm13
12226  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
12227  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12228  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12229  DB  65,15,89,211                        ; mulps         %xmm11,%xmm2
12230  DB  68,15,92,234                        ; subps         %xmm2,%xmm13
12231  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
12232  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12233  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12234  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
12235  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12236  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12237  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
12238  DB  68,15,94,226                        ; divps         %xmm2,%xmm12
12239  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
12240  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
12241  DB  102,69,15,58,8,221,1                ; roundps       $0x1,%xmm13,%xmm11
12242  DB  185,0,0,0,75                        ; mov           $0x4b000000,%ecx
12243  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
12244  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12245  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
12246  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12247  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12248  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
12249  DB  69,15,92,235                        ; subps         %xmm11,%xmm13
12250  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
12251  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12252  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12253  DB  65,15,89,213                        ; mulps         %xmm13,%xmm2
12254  DB  68,15,92,226                        ; subps         %xmm2,%xmm12
12255  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
12256  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
12257  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12258  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
12259  DB  102,15,110,209                      ; movd          %ecx,%xmm2
12260  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12261  DB  65,15,92,213                        ; subps         %xmm13,%xmm2
12262  DB  68,15,94,218                        ; divps         %xmm2,%xmm11
12263  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
12264  DB  69,15,89,218                        ; mulps         %xmm10,%xmm11
12265  DB  102,69,15,91,211                    ; cvtps2dq      %xmm11,%xmm10
12266  DB  243,15,16,80,20                     ; movss         0x14(%rax),%xmm2
12267  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12268  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
12269  DB  102,65,15,56,20,209                 ; blendvps      %xmm0,%xmm9,%xmm2
12270  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12271  DB  15,95,208                           ; maxps         %xmm0,%xmm2
12272  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12273  DB  102,15,110,192                      ; movd          %eax,%xmm0
12274  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12275  DB  15,93,208                           ; minps         %xmm0,%xmm2
12276  DB  72,173                              ; lods          %ds:(%rsi),%rax
12277  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12278  DB  255,224                             ; jmpq          *%rax
12279
12280PUBLIC _sk_parametric_a_sse41
12281_sk_parametric_a_sse41 LABEL PROC
12282  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
12283  DB  72,173                              ; lods          %ds:(%rsi),%rax
12284  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
12285  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12286  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
12287  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
12288  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
12289  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
12290  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12291  DB  68,15,89,219                        ; mulps         %xmm3,%xmm11
12292  DB  15,40,195                           ; movaps        %xmm3,%xmm0
12293  DB  65,15,194,194,2                     ; cmpleps       %xmm10,%xmm0
12294  DB  243,15,16,88,24                     ; movss         0x18(%rax),%xmm3
12295  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12296  DB  68,15,88,203                        ; addps         %xmm3,%xmm9
12297  DB  243,68,15,16,16                     ; movss         (%rax),%xmm10
12298  DB  243,15,16,88,8                      ; movss         0x8(%rax),%xmm3
12299  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12300  DB  68,15,88,219                        ; addps         %xmm3,%xmm11
12301  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12302  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
12303  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
12304  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
12305  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
12306  DB  69,15,89,236                        ; mulps         %xmm12,%xmm13
12307  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
12308  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12309  DB  102,68,15,112,227,0                 ; pshufd        $0x0,%xmm3,%xmm12
12310  DB  102,69,15,219,227                   ; pand          %xmm11,%xmm12
12311  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
12312  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12313  DB  102,68,15,112,219,0                 ; pshufd        $0x0,%xmm3,%xmm11
12314  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
12315  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
12316  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12317  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12318  DB  68,15,92,235                        ; subps         %xmm3,%xmm13
12319  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
12320  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12321  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12322  DB  65,15,89,219                        ; mulps         %xmm11,%xmm3
12323  DB  68,15,92,235                        ; subps         %xmm3,%xmm13
12324  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
12325  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12326  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12327  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
12328  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12329  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12330  DB  65,15,88,219                        ; addps         %xmm11,%xmm3
12331  DB  68,15,94,227                        ; divps         %xmm3,%xmm12
12332  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
12333  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
12334  DB  102,69,15,58,8,221,1                ; roundps       $0x1,%xmm13,%xmm11
12335  DB  185,0,0,0,75                        ; mov           $0x4b000000,%ecx
12336  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
12337  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12338  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
12339  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
12340  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12341  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
12342  DB  69,15,92,235                        ; subps         %xmm11,%xmm13
12343  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
12344  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12345  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12346  DB  65,15,89,221                        ; mulps         %xmm13,%xmm3
12347  DB  68,15,92,227                        ; subps         %xmm3,%xmm12
12348  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
12349  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
12350  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
12351  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
12352  DB  102,15,110,217                      ; movd          %ecx,%xmm3
12353  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12354  DB  65,15,92,221                        ; subps         %xmm13,%xmm3
12355  DB  68,15,94,219                        ; divps         %xmm3,%xmm11
12356  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
12357  DB  69,15,89,218                        ; mulps         %xmm10,%xmm11
12358  DB  102,69,15,91,211                    ; cvtps2dq      %xmm11,%xmm10
12359  DB  243,15,16,88,20                     ; movss         0x14(%rax),%xmm3
12360  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12361  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
12362  DB  102,65,15,56,20,217                 ; blendvps      %xmm0,%xmm9,%xmm3
12363  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12364  DB  15,95,216                           ; maxps         %xmm0,%xmm3
12365  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12366  DB  102,15,110,192                      ; movd          %eax,%xmm0
12367  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12368  DB  15,93,216                           ; minps         %xmm0,%xmm3
12369  DB  72,173                              ; lods          %ds:(%rsi),%rax
12370  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12371  DB  255,224                             ; jmpq          *%rax
12372
12373PUBLIC _sk_lab_to_xyz_sse41
12374_sk_lab_to_xyz_sse41 LABEL PROC
12375  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
12376  DB  184,0,0,200,66                      ; mov           $0x42c80000,%eax
12377  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
12378  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
12379  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12380  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
12381  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
12382  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12383  DB  69,15,89,194                        ; mulps         %xmm10,%xmm8
12384  DB  184,0,0,0,67                        ; mov           $0x43000000,%eax
12385  DB  102,15,110,200                      ; movd          %eax,%xmm1
12386  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12387  DB  68,15,92,193                        ; subps         %xmm1,%xmm8
12388  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
12389  DB  68,15,92,209                        ; subps         %xmm1,%xmm10
12390  DB  184,0,0,128,65                      ; mov           $0x41800000,%eax
12391  DB  102,15,110,208                      ; movd          %eax,%xmm2
12392  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12393  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
12394  DB  184,203,61,13,60                    ; mov           $0x3c0d3dcb,%eax
12395  DB  102,15,110,200                      ; movd          %eax,%xmm1
12396  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12397  DB  15,89,202                           ; mulps         %xmm2,%xmm1
12398  DB  184,111,18,3,59                     ; mov           $0x3b03126f,%eax
12399  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
12400  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
12401  DB  69,15,89,232                        ; mulps         %xmm8,%xmm13
12402  DB  68,15,88,233                        ; addps         %xmm1,%xmm13
12403  DB  184,10,215,163,59                   ; mov           $0x3ba3d70a,%eax
12404  DB  102,15,110,192                      ; movd          %eax,%xmm0
12405  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12406  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
12407  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
12408  DB  68,15,92,200                        ; subps         %xmm0,%xmm9
12409  DB  69,15,40,221                        ; movaps        %xmm13,%xmm11
12410  DB  69,15,89,219                        ; mulps         %xmm11,%xmm11
12411  DB  69,15,89,221                        ; mulps         %xmm13,%xmm11
12412  DB  184,194,24,17,60                    ; mov           $0x3c1118c2,%eax
12413  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
12414  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12415  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12416  DB  65,15,194,195,1                     ; cmpltps       %xmm11,%xmm0
12417  DB  184,203,61,13,62                    ; mov           $0x3e0d3dcb,%eax
12418  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
12419  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12420  DB  69,15,92,234                        ; subps         %xmm10,%xmm13
12421  DB  184,80,128,3,62                     ; mov           $0x3e038050,%eax
12422  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
12423  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
12424  DB  69,15,89,236                        ; mulps         %xmm12,%xmm13
12425  DB  102,69,15,56,20,235                 ; blendvps      %xmm0,%xmm11,%xmm13
12426  DB  15,40,209                           ; movaps        %xmm1,%xmm2
12427  DB  15,89,210                           ; mulps         %xmm2,%xmm2
12428  DB  15,89,209                           ; mulps         %xmm1,%xmm2
12429  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12430  DB  15,194,194,1                        ; cmpltps       %xmm2,%xmm0
12431  DB  65,15,92,202                        ; subps         %xmm10,%xmm1
12432  DB  65,15,89,204                        ; mulps         %xmm12,%xmm1
12433  DB  102,15,56,20,202                    ; blendvps      %xmm0,%xmm2,%xmm1
12434  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
12435  DB  15,89,210                           ; mulps         %xmm2,%xmm2
12436  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
12437  DB  68,15,194,194,1                     ; cmpltps       %xmm2,%xmm8
12438  DB  69,15,92,202                        ; subps         %xmm10,%xmm9
12439  DB  69,15,89,204                        ; mulps         %xmm12,%xmm9
12440  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
12441  DB  102,68,15,56,20,202                 ; blendvps      %xmm0,%xmm2,%xmm9
12442  DB  184,31,215,118,63                   ; mov           $0x3f76d71f,%eax
12443  DB  102,15,110,192                      ; movd          %eax,%xmm0
12444  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12445  DB  65,15,89,197                        ; mulps         %xmm13,%xmm0
12446  DB  184,246,64,83,63                    ; mov           $0x3f5340f6,%eax
12447  DB  102,15,110,208                      ; movd          %eax,%xmm2
12448  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12449  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
12450  DB  72,173                              ; lods          %ds:(%rsi),%rax
12451  DB  255,224                             ; jmpq          *%rax
12452
12453PUBLIC _sk_load_a8_sse41
12454_sk_load_a8_sse41 LABEL PROC
12455  DB  72,173                              ; lods          %ds:(%rsi),%rax
12456  DB  72,139,0                            ; mov           (%rax),%rax
12457  DB  102,15,56,49,4,56                   ; pmovzxbd      (%rax,%rdi,1),%xmm0
12458  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12459  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12460  DB  102,15,110,216                      ; movd          %eax,%xmm3
12461  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12462  DB  15,89,216                           ; mulps         %xmm0,%xmm3
12463  DB  72,173                              ; lods          %ds:(%rsi),%rax
12464  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12465  DB  15,87,201                           ; xorps         %xmm1,%xmm1
12466  DB  15,87,210                           ; xorps         %xmm2,%xmm2
12467  DB  255,224                             ; jmpq          *%rax
12468
12469PUBLIC _sk_gather_a8_sse41
12470_sk_gather_a8_sse41 LABEL PROC
12471  DB  72,173                              ; lods          %ds:(%rsi),%rax
12472  DB  76,139,8                            ; mov           (%rax),%r9
12473  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12474  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12475  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12476  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12477  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12478  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12479  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12480  DB  65,137,192                          ; mov           %eax,%r8d
12481  DB  72,193,232,32                       ; shr           $0x20,%rax
12482  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12483  DB  65,137,202                          ; mov           %ecx,%r10d
12484  DB  72,193,233,32                       ; shr           $0x20,%rcx
12485  DB  102,67,15,58,32,4,17,0              ; pinsrb        $0x0,(%r9,%r10,1),%xmm0
12486  DB  102,65,15,58,32,4,9,1               ; pinsrb        $0x1,(%r9,%rcx,1),%xmm0
12487  DB  67,15,182,12,1                      ; movzbl        (%r9,%r8,1),%ecx
12488  DB  102,15,58,32,193,2                  ; pinsrb        $0x2,%ecx,%xmm0
12489  DB  65,15,182,4,1                       ; movzbl        (%r9,%rax,1),%eax
12490  DB  102,15,58,32,192,3                  ; pinsrb        $0x3,%eax,%xmm0
12491  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
12492  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12493  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12494  DB  102,15,110,216                      ; movd          %eax,%xmm3
12495  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12496  DB  15,89,216                           ; mulps         %xmm0,%xmm3
12497  DB  72,173                              ; lods          %ds:(%rsi),%rax
12498  DB  15,87,192                           ; xorps         %xmm0,%xmm0
12499  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
12500  DB  102,15,239,210                      ; pxor          %xmm2,%xmm2
12501  DB  255,224                             ; jmpq          *%rax
12502
12503PUBLIC _sk_store_a8_sse41
12504_sk_store_a8_sse41 LABEL PROC
12505  DB  72,173                              ; lods          %ds:(%rsi),%rax
12506  DB  72,139,0                            ; mov           (%rax),%rax
12507  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
12508  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12509  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12510  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
12511  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
12512  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
12513  DB  102,69,15,103,192                   ; packuswb      %xmm8,%xmm8
12514  DB  102,68,15,126,4,56                  ; movd          %xmm8,(%rax,%rdi,1)
12515  DB  72,173                              ; lods          %ds:(%rsi),%rax
12516  DB  255,224                             ; jmpq          *%rax
12517
12518PUBLIC _sk_load_g8_sse41
12519_sk_load_g8_sse41 LABEL PROC
12520  DB  72,173                              ; lods          %ds:(%rsi),%rax
12521  DB  72,139,0                            ; mov           (%rax),%rax
12522  DB  102,15,56,49,4,56                   ; pmovzxbd      (%rax,%rdi,1),%xmm0
12523  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12524  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12525  DB  102,15,110,192                      ; movd          %eax,%xmm0
12526  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12527  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12528  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12529  DB  102,15,110,216                      ; movd          %eax,%xmm3
12530  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12531  DB  72,173                              ; lods          %ds:(%rsi),%rax
12532  DB  15,40,200                           ; movaps        %xmm0,%xmm1
12533  DB  15,40,208                           ; movaps        %xmm0,%xmm2
12534  DB  255,224                             ; jmpq          *%rax
12535
12536PUBLIC _sk_gather_g8_sse41
12537_sk_gather_g8_sse41 LABEL PROC
12538  DB  72,173                              ; lods          %ds:(%rsi),%rax
12539  DB  76,139,8                            ; mov           (%rax),%r9
12540  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12541  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12542  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12543  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12544  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12545  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12546  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12547  DB  65,137,192                          ; mov           %eax,%r8d
12548  DB  72,193,232,32                       ; shr           $0x20,%rax
12549  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12550  DB  65,137,202                          ; mov           %ecx,%r10d
12551  DB  72,193,233,32                       ; shr           $0x20,%rcx
12552  DB  102,67,15,58,32,4,17,0              ; pinsrb        $0x0,(%r9,%r10,1),%xmm0
12553  DB  102,65,15,58,32,4,9,1               ; pinsrb        $0x1,(%r9,%rcx,1),%xmm0
12554  DB  67,15,182,12,1                      ; movzbl        (%r9,%r8,1),%ecx
12555  DB  102,15,58,32,193,2                  ; pinsrb        $0x2,%ecx,%xmm0
12556  DB  65,15,182,4,1                       ; movzbl        (%r9,%rax,1),%eax
12557  DB  102,15,58,32,192,3                  ; pinsrb        $0x3,%eax,%xmm0
12558  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
12559  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12560  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12561  DB  102,15,110,192                      ; movd          %eax,%xmm0
12562  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12563  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12564  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12565  DB  102,15,110,216                      ; movd          %eax,%xmm3
12566  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12567  DB  72,173                              ; lods          %ds:(%rsi),%rax
12568  DB  15,40,200                           ; movaps        %xmm0,%xmm1
12569  DB  15,40,208                           ; movaps        %xmm0,%xmm2
12570  DB  255,224                             ; jmpq          *%rax
12571
12572PUBLIC _sk_gather_i8_sse41
12573_sk_gather_i8_sse41 LABEL PROC
12574  DB  72,173                              ; lods          %ds:(%rsi),%rax
12575  DB  73,137,192                          ; mov           %rax,%r8
12576  DB  77,133,192                          ; test          %r8,%r8
12577  DB  116,5                               ; je            276b <_sk_gather_i8_sse41+0xf>
12578  DB  76,137,192                          ; mov           %r8,%rax
12579  DB  235,2                               ; jmp           276d <_sk_gather_i8_sse41+0x11>
12580  DB  72,173                              ; lods          %ds:(%rsi),%rax
12581  DB  76,139,16                           ; mov           (%rax),%r10
12582  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12583  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12584  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12585  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12586  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12587  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12588  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12589  DB  65,137,193                          ; mov           %eax,%r9d
12590  DB  72,193,232,32                       ; shr           $0x20,%rax
12591  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12592  DB  65,137,203                          ; mov           %ecx,%r11d
12593  DB  72,193,233,32                       ; shr           $0x20,%rcx
12594  DB  102,67,15,58,32,4,26,0              ; pinsrb        $0x0,(%r10,%r11,1),%xmm0
12595  DB  102,65,15,58,32,4,10,1              ; pinsrb        $0x1,(%r10,%rcx,1),%xmm0
12596  DB  102,67,15,58,32,4,10,2              ; pinsrb        $0x2,(%r10,%r9,1),%xmm0
12597  DB  102,65,15,58,32,4,2,3               ; pinsrb        $0x3,(%r10,%rax,1),%xmm0
12598  DB  102,15,56,49,192                    ; pmovzxbd      %xmm0,%xmm0
12599  DB  102,73,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%r9
12600  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12601  DB  73,139,64,8                         ; mov           0x8(%r8),%rax
12602  DB  65,137,200                          ; mov           %ecx,%r8d
12603  DB  72,193,233,30                       ; shr           $0x1e,%rcx
12604  DB  69,137,202                          ; mov           %r9d,%r10d
12605  DB  73,193,233,30                       ; shr           $0x1e,%r9
12606  DB  102,66,15,110,28,128                ; movd          (%rax,%r8,4),%xmm3
12607  DB  102,15,58,34,28,8,1                 ; pinsrd        $0x1,(%rax,%rcx,1),%xmm3
12608  DB  102,66,15,58,34,28,144,2            ; pinsrd        $0x2,(%rax,%r10,4),%xmm3
12609  DB  102,66,15,58,34,28,8,3              ; pinsrd        $0x3,(%rax,%r9,1),%xmm3
12610  DB  184,255,0,0,0                       ; mov           $0xff,%eax
12611  DB  102,15,110,192                      ; movd          %eax,%xmm0
12612  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12613  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
12614  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
12615  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
12616  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
12617  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
12618  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
12619  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
12620  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12621  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12622  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
12623  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12624  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
12625  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
12626  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
12627  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
12628  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12629  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
12630  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12631  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12632  DB  72,173                              ; lods          %ds:(%rsi),%rax
12633  DB  255,224                             ; jmpq          *%rax
12634
12635PUBLIC _sk_load_565_sse41
12636_sk_load_565_sse41 LABEL PROC
12637  DB  72,173                              ; lods          %ds:(%rsi),%rax
12638  DB  72,139,0                            ; mov           (%rax),%rax
12639  DB  102,15,56,51,20,120                 ; pmovzxwd      (%rax,%rdi,2),%xmm2
12640  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
12641  DB  102,15,110,192                      ; movd          %eax,%xmm0
12642  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12643  DB  102,15,219,194                      ; pand          %xmm2,%xmm0
12644  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12645  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
12646  DB  102,15,110,192                      ; movd          %eax,%xmm0
12647  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12648  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12649  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
12650  DB  102,15,110,200                      ; movd          %eax,%xmm1
12651  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
12652  DB  102,15,219,202                      ; pand          %xmm2,%xmm1
12653  DB  15,91,217                           ; cvtdq2ps      %xmm1,%xmm3
12654  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
12655  DB  102,15,110,200                      ; movd          %eax,%xmm1
12656  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12657  DB  15,89,203                           ; mulps         %xmm3,%xmm1
12658  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
12659  DB  102,15,110,216                      ; movd          %eax,%xmm3
12660  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
12661  DB  102,15,219,218                      ; pand          %xmm2,%xmm3
12662  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12663  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
12664  DB  102,15,110,208                      ; movd          %eax,%xmm2
12665  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12666  DB  15,89,211                           ; mulps         %xmm3,%xmm2
12667  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12668  DB  102,15,110,216                      ; movd          %eax,%xmm3
12669  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12670  DB  72,173                              ; lods          %ds:(%rsi),%rax
12671  DB  255,224                             ; jmpq          *%rax
12672
12673PUBLIC _sk_gather_565_sse41
12674_sk_gather_565_sse41 LABEL PROC
12675  DB  72,173                              ; lods          %ds:(%rsi),%rax
12676  DB  76,139,8                            ; mov           (%rax),%r9
12677  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12678  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12679  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12680  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12681  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12682  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12683  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12684  DB  65,137,192                          ; mov           %eax,%r8d
12685  DB  72,193,232,32                       ; shr           $0x20,%rax
12686  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12687  DB  65,137,202                          ; mov           %ecx,%r10d
12688  DB  72,193,233,32                       ; shr           $0x20,%rcx
12689  DB  102,67,15,196,4,81,0                ; pinsrw        $0x0,(%r9,%r10,2),%xmm0
12690  DB  102,65,15,196,4,73,1                ; pinsrw        $0x1,(%r9,%rcx,2),%xmm0
12691  DB  67,15,183,12,65                     ; movzwl        (%r9,%r8,2),%ecx
12692  DB  102,15,196,193,2                    ; pinsrw        $0x2,%ecx,%xmm0
12693  DB  65,15,183,4,65                      ; movzwl        (%r9,%rax,2),%eax
12694  DB  102,15,196,192,3                    ; pinsrw        $0x3,%eax,%xmm0
12695  DB  102,15,56,51,208                    ; pmovzxwd      %xmm0,%xmm2
12696  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
12697  DB  102,15,110,192                      ; movd          %eax,%xmm0
12698  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12699  DB  102,15,219,194                      ; pand          %xmm2,%xmm0
12700  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12701  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
12702  DB  102,15,110,192                      ; movd          %eax,%xmm0
12703  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12704  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12705  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
12706  DB  102,15,110,200                      ; movd          %eax,%xmm1
12707  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
12708  DB  102,15,219,202                      ; pand          %xmm2,%xmm1
12709  DB  15,91,217                           ; cvtdq2ps      %xmm1,%xmm3
12710  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
12711  DB  102,15,110,200                      ; movd          %eax,%xmm1
12712  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12713  DB  15,89,203                           ; mulps         %xmm3,%xmm1
12714  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
12715  DB  102,15,110,216                      ; movd          %eax,%xmm3
12716  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
12717  DB  102,15,219,218                      ; pand          %xmm2,%xmm3
12718  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12719  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
12720  DB  102,15,110,208                      ; movd          %eax,%xmm2
12721  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12722  DB  15,89,211                           ; mulps         %xmm3,%xmm2
12723  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
12724  DB  102,15,110,216                      ; movd          %eax,%xmm3
12725  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12726  DB  72,173                              ; lods          %ds:(%rsi),%rax
12727  DB  255,224                             ; jmpq          *%rax
12728
12729PUBLIC _sk_store_565_sse41
12730_sk_store_565_sse41 LABEL PROC
12731  DB  72,173                              ; lods          %ds:(%rsi),%rax
12732  DB  72,139,0                            ; mov           (%rax),%rax
12733  DB  185,0,0,248,65                      ; mov           $0x41f80000,%ecx
12734  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12735  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12736  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12737  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12738  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12739  DB  102,65,15,114,241,11                ; pslld         $0xb,%xmm9
12740  DB  185,0,0,124,66                      ; mov           $0x427c0000,%ecx
12741  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
12742  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
12743  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
12744  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
12745  DB  102,65,15,114,242,5                 ; pslld         $0x5,%xmm10
12746  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
12747  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
12748  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
12749  DB  102,69,15,86,194                    ; orpd          %xmm10,%xmm8
12750  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
12751  DB  102,68,15,214,4,120                 ; movq          %xmm8,(%rax,%rdi,2)
12752  DB  72,173                              ; lods          %ds:(%rsi),%rax
12753  DB  255,224                             ; jmpq          *%rax
12754
12755PUBLIC _sk_load_4444_sse41
12756_sk_load_4444_sse41 LABEL PROC
12757  DB  72,173                              ; lods          %ds:(%rsi),%rax
12758  DB  72,139,0                            ; mov           (%rax),%rax
12759  DB  102,68,15,56,51,12,120              ; pmovzxwd      (%rax,%rdi,2),%xmm9
12760  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
12761  DB  102,15,110,192                      ; movd          %eax,%xmm0
12762  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12763  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
12764  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12765  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
12766  DB  102,15,110,192                      ; movd          %eax,%xmm0
12767  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12768  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12769  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
12770  DB  102,15,110,200                      ; movd          %eax,%xmm1
12771  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
12772  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
12773  DB  15,91,209                           ; cvtdq2ps      %xmm1,%xmm2
12774  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
12775  DB  102,15,110,200                      ; movd          %eax,%xmm1
12776  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12777  DB  15,89,202                           ; mulps         %xmm2,%xmm1
12778  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
12779  DB  102,15,110,208                      ; movd          %eax,%xmm2
12780  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12781  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
12782  DB  68,15,91,194                        ; cvtdq2ps      %xmm2,%xmm8
12783  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
12784  DB  102,15,110,208                      ; movd          %eax,%xmm2
12785  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12786  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12787  DB  184,15,0,0,0                        ; mov           $0xf,%eax
12788  DB  102,15,110,216                      ; movd          %eax,%xmm3
12789  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
12790  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
12791  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
12792  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
12793  DB  102,15,110,216                      ; movd          %eax,%xmm3
12794  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12795  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12796  DB  72,173                              ; lods          %ds:(%rsi),%rax
12797  DB  255,224                             ; jmpq          *%rax
12798
12799PUBLIC _sk_gather_4444_sse41
12800_sk_gather_4444_sse41 LABEL PROC
12801  DB  72,173                              ; lods          %ds:(%rsi),%rax
12802  DB  76,139,8                            ; mov           (%rax),%r9
12803  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12804  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12805  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12806  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12807  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12808  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12809  DB  102,72,15,58,22,192,1               ; pextrq        $0x1,%xmm0,%rax
12810  DB  65,137,192                          ; mov           %eax,%r8d
12811  DB  72,193,232,32                       ; shr           $0x20,%rax
12812  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
12813  DB  65,137,202                          ; mov           %ecx,%r10d
12814  DB  72,193,233,32                       ; shr           $0x20,%rcx
12815  DB  102,67,15,196,4,81,0                ; pinsrw        $0x0,(%r9,%r10,2),%xmm0
12816  DB  102,65,15,196,4,73,1                ; pinsrw        $0x1,(%r9,%rcx,2),%xmm0
12817  DB  67,15,183,12,65                     ; movzwl        (%r9,%r8,2),%ecx
12818  DB  102,15,196,193,2                    ; pinsrw        $0x2,%ecx,%xmm0
12819  DB  65,15,183,4,65                      ; movzwl        (%r9,%rax,2),%eax
12820  DB  102,15,196,192,3                    ; pinsrw        $0x3,%eax,%xmm0
12821  DB  102,68,15,56,51,200                 ; pmovzxwd      %xmm0,%xmm9
12822  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
12823  DB  102,15,110,192                      ; movd          %eax,%xmm0
12824  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12825  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
12826  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
12827  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
12828  DB  102,15,110,192                      ; movd          %eax,%xmm0
12829  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
12830  DB  15,89,193                           ; mulps         %xmm1,%xmm0
12831  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
12832  DB  102,15,110,200                      ; movd          %eax,%xmm1
12833  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
12834  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
12835  DB  15,91,209                           ; cvtdq2ps      %xmm1,%xmm2
12836  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
12837  DB  102,15,110,200                      ; movd          %eax,%xmm1
12838  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
12839  DB  15,89,202                           ; mulps         %xmm2,%xmm1
12840  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
12841  DB  102,15,110,208                      ; movd          %eax,%xmm2
12842  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12843  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
12844  DB  68,15,91,194                        ; cvtdq2ps      %xmm2,%xmm8
12845  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
12846  DB  102,15,110,208                      ; movd          %eax,%xmm2
12847  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
12848  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12849  DB  184,15,0,0,0                        ; mov           $0xf,%eax
12850  DB  102,15,110,216                      ; movd          %eax,%xmm3
12851  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
12852  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
12853  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
12854  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
12855  DB  102,15,110,216                      ; movd          %eax,%xmm3
12856  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
12857  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12858  DB  72,173                              ; lods          %ds:(%rsi),%rax
12859  DB  255,224                             ; jmpq          *%rax
12860
12861PUBLIC _sk_store_4444_sse41
12862_sk_store_4444_sse41 LABEL PROC
12863  DB  72,173                              ; lods          %ds:(%rsi),%rax
12864  DB  72,139,0                            ; mov           (%rax),%rax
12865  DB  185,0,0,112,65                      ; mov           $0x41700000,%ecx
12866  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12867  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12868  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12869  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12870  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12871  DB  102,65,15,114,241,12                ; pslld         $0xc,%xmm9
12872  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
12873  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
12874  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
12875  DB  102,65,15,114,242,8                 ; pslld         $0x8,%xmm10
12876  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
12877  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12878  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
12879  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12880  DB  102,65,15,114,241,4                 ; pslld         $0x4,%xmm9
12881  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
12882  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
12883  DB  102,69,15,86,193                    ; orpd          %xmm9,%xmm8
12884  DB  102,69,15,86,194                    ; orpd          %xmm10,%xmm8
12885  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
12886  DB  102,68,15,214,4,120                 ; movq          %xmm8,(%rax,%rdi,2)
12887  DB  72,173                              ; lods          %ds:(%rsi),%rax
12888  DB  255,224                             ; jmpq          *%rax
12889
12890PUBLIC _sk_load_8888_sse41
12891_sk_load_8888_sse41 LABEL PROC
12892  DB  72,173                              ; lods          %ds:(%rsi),%rax
12893  DB  72,139,0                            ; mov           (%rax),%rax
12894  DB  243,15,111,28,184                   ; movdqu        (%rax,%rdi,4),%xmm3
12895  DB  184,255,0,0,0                       ; mov           $0xff,%eax
12896  DB  102,15,110,192                      ; movd          %eax,%xmm0
12897  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12898  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
12899  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
12900  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
12901  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
12902  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
12903  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
12904  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
12905  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12906  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12907  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
12908  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12909  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
12910  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
12911  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
12912  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
12913  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12914  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
12915  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12916  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12917  DB  72,173                              ; lods          %ds:(%rsi),%rax
12918  DB  255,224                             ; jmpq          *%rax
12919
12920PUBLIC _sk_gather_8888_sse41
12921_sk_gather_8888_sse41 LABEL PROC
12922  DB  72,173                              ; lods          %ds:(%rsi),%rax
12923  DB  76,139,8                            ; mov           (%rax),%r9
12924  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
12925  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
12926  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
12927  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
12928  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
12929  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
12930  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
12931  DB  65,137,192                          ; mov           %eax,%r8d
12932  DB  72,193,232,32                       ; shr           $0x20,%rax
12933  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
12934  DB  65,137,202                          ; mov           %ecx,%r10d
12935  DB  72,193,233,32                       ; shr           $0x20,%rcx
12936  DB  102,67,15,110,28,129                ; movd          (%r9,%r8,4),%xmm3
12937  DB  102,65,15,58,34,28,129,1            ; pinsrd        $0x1,(%r9,%rax,4),%xmm3
12938  DB  102,67,15,58,34,28,145,2            ; pinsrd        $0x2,(%r9,%r10,4),%xmm3
12939  DB  102,65,15,58,34,28,137,3            ; pinsrd        $0x3,(%r9,%rcx,4),%xmm3
12940  DB  184,255,0,0,0                       ; mov           $0xff,%eax
12941  DB  102,15,110,192                      ; movd          %eax,%xmm0
12942  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
12943  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
12944  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
12945  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
12946  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
12947  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
12948  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
12949  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
12950  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
12951  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
12952  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
12953  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12954  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
12955  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
12956  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
12957  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
12958  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
12959  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
12960  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
12961  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
12962  DB  72,173                              ; lods          %ds:(%rsi),%rax
12963  DB  255,224                             ; jmpq          *%rax
12964
12965PUBLIC _sk_store_8888_sse41
12966_sk_store_8888_sse41 LABEL PROC
12967  DB  72,173                              ; lods          %ds:(%rsi),%rax
12968  DB  72,139,0                            ; mov           (%rax),%rax
12969  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
12970  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
12971  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
12972  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12973  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
12974  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12975  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
12976  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
12977  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
12978  DB  102,65,15,114,242,8                 ; pslld         $0x8,%xmm10
12979  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
12980  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
12981  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
12982  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
12983  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
12984  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
12985  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
12986  DB  102,65,15,114,240,24                ; pslld         $0x18,%xmm8
12987  DB  102,69,15,235,193                   ; por           %xmm9,%xmm8
12988  DB  102,69,15,235,194                   ; por           %xmm10,%xmm8
12989  DB  243,68,15,127,4,184                 ; movdqu        %xmm8,(%rax,%rdi,4)
12990  DB  72,173                              ; lods          %ds:(%rsi),%rax
12991  DB  255,224                             ; jmpq          *%rax
12992
12993PUBLIC _sk_load_f16_sse41
12994_sk_load_f16_sse41 LABEL PROC
12995  DB  72,173                              ; lods          %ds:(%rsi),%rax
12996  DB  72,139,0                            ; mov           (%rax),%rax
12997  DB  243,15,111,4,248                    ; movdqu        (%rax,%rdi,8),%xmm0
12998  DB  243,15,111,76,248,16                ; movdqu        0x10(%rax,%rdi,8),%xmm1
12999  DB  102,68,15,111,200                   ; movdqa        %xmm0,%xmm9
13000  DB  102,68,15,97,201                    ; punpcklwd     %xmm1,%xmm9
13001  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
13002  DB  102,69,15,111,217                   ; movdqa        %xmm9,%xmm11
13003  DB  102,68,15,97,216                    ; punpcklwd     %xmm0,%xmm11
13004  DB  102,68,15,105,200                   ; punpckhwd     %xmm0,%xmm9
13005  DB  102,69,15,56,51,227                 ; pmovzxwd      %xmm11,%xmm12
13006  DB  184,0,128,0,0                       ; mov           $0x8000,%eax
13007  DB  102,15,110,192                      ; movd          %eax,%xmm0
13008  DB  102,68,15,112,192,0                 ; pshufd        $0x0,%xmm0,%xmm8
13009  DB  102,65,15,111,212                   ; movdqa        %xmm12,%xmm2
13010  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
13011  DB  102,68,15,239,226                   ; pxor          %xmm2,%xmm12
13012  DB  184,0,4,0,0                         ; mov           $0x400,%eax
13013  DB  102,15,110,192                      ; movd          %eax,%xmm0
13014  DB  102,15,112,216,0                    ; pshufd        $0x0,%xmm0,%xmm3
13015  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
13016  DB  102,15,111,195                      ; movdqa        %xmm3,%xmm0
13017  DB  102,65,15,102,196                   ; pcmpgtd       %xmm12,%xmm0
13018  DB  102,65,15,114,244,13                ; pslld         $0xd,%xmm12
13019  DB  184,0,0,0,56                        ; mov           $0x38000000,%eax
13020  DB  102,15,110,200                      ; movd          %eax,%xmm1
13021  DB  102,68,15,112,209,0                 ; pshufd        $0x0,%xmm1,%xmm10
13022  DB  102,65,15,254,210                   ; paddd         %xmm10,%xmm2
13023  DB  102,65,15,254,212                   ; paddd         %xmm12,%xmm2
13024  DB  102,15,223,194                      ; pandn         %xmm2,%xmm0
13025  DB  102,65,15,115,219,8                 ; psrldq        $0x8,%xmm11
13026  DB  102,69,15,56,51,219                 ; pmovzxwd      %xmm11,%xmm11
13027  DB  102,65,15,111,211                   ; movdqa        %xmm11,%xmm2
13028  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
13029  DB  102,68,15,239,218                   ; pxor          %xmm2,%xmm11
13030  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
13031  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
13032  DB  102,65,15,102,203                   ; pcmpgtd       %xmm11,%xmm1
13033  DB  102,65,15,114,243,13                ; pslld         $0xd,%xmm11
13034  DB  102,65,15,254,210                   ; paddd         %xmm10,%xmm2
13035  DB  102,65,15,254,211                   ; paddd         %xmm11,%xmm2
13036  DB  102,15,223,202                      ; pandn         %xmm2,%xmm1
13037  DB  102,69,15,56,51,217                 ; pmovzxwd      %xmm9,%xmm11
13038  DB  102,69,15,111,227                   ; movdqa        %xmm11,%xmm12
13039  DB  102,69,15,219,224                   ; pand          %xmm8,%xmm12
13040  DB  102,69,15,239,220                   ; pxor          %xmm12,%xmm11
13041  DB  102,65,15,114,244,16                ; pslld         $0x10,%xmm12
13042  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
13043  DB  102,65,15,102,211                   ; pcmpgtd       %xmm11,%xmm2
13044  DB  102,65,15,114,243,13                ; pslld         $0xd,%xmm11
13045  DB  102,69,15,254,226                   ; paddd         %xmm10,%xmm12
13046  DB  102,69,15,254,227                   ; paddd         %xmm11,%xmm12
13047  DB  102,65,15,223,212                   ; pandn         %xmm12,%xmm2
13048  DB  102,65,15,115,217,8                 ; psrldq        $0x8,%xmm9
13049  DB  102,69,15,56,51,201                 ; pmovzxwd      %xmm9,%xmm9
13050  DB  102,69,15,219,193                   ; pand          %xmm9,%xmm8
13051  DB  102,69,15,239,200                   ; pxor          %xmm8,%xmm9
13052  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
13053  DB  102,65,15,102,217                   ; pcmpgtd       %xmm9,%xmm3
13054  DB  102,65,15,114,241,13                ; pslld         $0xd,%xmm9
13055  DB  102,69,15,254,194                   ; paddd         %xmm10,%xmm8
13056  DB  102,69,15,254,193                   ; paddd         %xmm9,%xmm8
13057  DB  102,65,15,223,216                   ; pandn         %xmm8,%xmm3
13058  DB  72,173                              ; lods          %ds:(%rsi),%rax
13059  DB  255,224                             ; jmpq          *%rax
13060
13061PUBLIC _sk_gather_f16_sse41
13062_sk_gather_f16_sse41 LABEL PROC
13063  DB  72,173                              ; lods          %ds:(%rsi),%rax
13064  DB  76,139,8                            ; mov           (%rax),%r9
13065  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
13066  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
13067  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
13068  DB  102,15,56,64,209                    ; pmulld        %xmm1,%xmm2
13069  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
13070  DB  102,15,254,194                      ; paddd         %xmm2,%xmm0
13071  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
13072  DB  65,137,192                          ; mov           %eax,%r8d
13073  DB  72,193,232,32                       ; shr           $0x20,%rax
13074  DB  102,72,15,58,22,193,1               ; pextrq        $0x1,%xmm0,%rcx
13075  DB  65,137,202                          ; mov           %ecx,%r10d
13076  DB  72,193,233,32                       ; shr           $0x20,%rcx
13077  DB  243,65,15,126,4,201                 ; movq          (%r9,%rcx,8),%xmm0
13078  DB  243,67,15,126,12,209                ; movq          (%r9,%r10,8),%xmm1
13079  DB  102,15,108,200                      ; punpcklqdq    %xmm0,%xmm1
13080  DB  243,65,15,126,4,193                 ; movq          (%r9,%rax,8),%xmm0
13081  DB  243,67,15,126,20,193                ; movq          (%r9,%r8,8),%xmm2
13082  DB  102,15,108,208                      ; punpcklqdq    %xmm0,%xmm2
13083  DB  102,68,15,111,202                   ; movdqa        %xmm2,%xmm9
13084  DB  102,68,15,97,201                    ; punpcklwd     %xmm1,%xmm9
13085  DB  102,15,105,209                      ; punpckhwd     %xmm1,%xmm2
13086  DB  102,69,15,111,217                   ; movdqa        %xmm9,%xmm11
13087  DB  102,68,15,97,218                    ; punpcklwd     %xmm2,%xmm11
13088  DB  102,68,15,105,202                   ; punpckhwd     %xmm2,%xmm9
13089  DB  102,69,15,56,51,227                 ; pmovzxwd      %xmm11,%xmm12
13090  DB  184,0,128,0,0                       ; mov           $0x8000,%eax
13091  DB  102,15,110,192                      ; movd          %eax,%xmm0
13092  DB  102,68,15,112,192,0                 ; pshufd        $0x0,%xmm0,%xmm8
13093  DB  102,65,15,111,212                   ; movdqa        %xmm12,%xmm2
13094  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
13095  DB  102,68,15,239,226                   ; pxor          %xmm2,%xmm12
13096  DB  184,0,4,0,0                         ; mov           $0x400,%eax
13097  DB  102,15,110,192                      ; movd          %eax,%xmm0
13098  DB  102,15,112,216,0                    ; pshufd        $0x0,%xmm0,%xmm3
13099  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
13100  DB  102,15,111,195                      ; movdqa        %xmm3,%xmm0
13101  DB  102,65,15,102,196                   ; pcmpgtd       %xmm12,%xmm0
13102  DB  102,65,15,114,244,13                ; pslld         $0xd,%xmm12
13103  DB  184,0,0,0,56                        ; mov           $0x38000000,%eax
13104  DB  102,15,110,200                      ; movd          %eax,%xmm1
13105  DB  102,68,15,112,209,0                 ; pshufd        $0x0,%xmm1,%xmm10
13106  DB  102,65,15,254,210                   ; paddd         %xmm10,%xmm2
13107  DB  102,65,15,254,212                   ; paddd         %xmm12,%xmm2
13108  DB  102,15,223,194                      ; pandn         %xmm2,%xmm0
13109  DB  102,65,15,115,219,8                 ; psrldq        $0x8,%xmm11
13110  DB  102,69,15,56,51,219                 ; pmovzxwd      %xmm11,%xmm11
13111  DB  102,65,15,111,211                   ; movdqa        %xmm11,%xmm2
13112  DB  102,65,15,219,208                   ; pand          %xmm8,%xmm2
13113  DB  102,68,15,239,218                   ; pxor          %xmm2,%xmm11
13114  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
13115  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
13116  DB  102,65,15,102,203                   ; pcmpgtd       %xmm11,%xmm1
13117  DB  102,65,15,114,243,13                ; pslld         $0xd,%xmm11
13118  DB  102,65,15,254,210                   ; paddd         %xmm10,%xmm2
13119  DB  102,65,15,254,211                   ; paddd         %xmm11,%xmm2
13120  DB  102,15,223,202                      ; pandn         %xmm2,%xmm1
13121  DB  102,69,15,56,51,217                 ; pmovzxwd      %xmm9,%xmm11
13122  DB  102,69,15,111,227                   ; movdqa        %xmm11,%xmm12
13123  DB  102,69,15,219,224                   ; pand          %xmm8,%xmm12
13124  DB  102,69,15,239,220                   ; pxor          %xmm12,%xmm11
13125  DB  102,65,15,114,244,16                ; pslld         $0x10,%xmm12
13126  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
13127  DB  102,65,15,102,211                   ; pcmpgtd       %xmm11,%xmm2
13128  DB  102,65,15,114,243,13                ; pslld         $0xd,%xmm11
13129  DB  102,69,15,254,226                   ; paddd         %xmm10,%xmm12
13130  DB  102,69,15,254,227                   ; paddd         %xmm11,%xmm12
13131  DB  102,65,15,223,212                   ; pandn         %xmm12,%xmm2
13132  DB  102,65,15,115,217,8                 ; psrldq        $0x8,%xmm9
13133  DB  102,69,15,56,51,201                 ; pmovzxwd      %xmm9,%xmm9
13134  DB  102,69,15,219,193                   ; pand          %xmm9,%xmm8
13135  DB  102,69,15,239,200                   ; pxor          %xmm8,%xmm9
13136  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
13137  DB  102,65,15,102,217                   ; pcmpgtd       %xmm9,%xmm3
13138  DB  102,65,15,114,241,13                ; pslld         $0xd,%xmm9
13139  DB  102,69,15,254,194                   ; paddd         %xmm10,%xmm8
13140  DB  102,69,15,254,193                   ; paddd         %xmm9,%xmm8
13141  DB  102,65,15,223,216                   ; pandn         %xmm8,%xmm3
13142  DB  72,173                              ; lods          %ds:(%rsi),%rax
13143  DB  255,224                             ; jmpq          *%rax
13144
13145PUBLIC _sk_store_f16_sse41
13146_sk_store_f16_sse41 LABEL PROC
13147  DB  72,173                              ; lods          %ds:(%rsi),%rax
13148  DB  72,139,0                            ; mov           (%rax),%rax
13149  DB  185,0,0,0,128                       ; mov           $0x80000000,%ecx
13150  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13151  DB  102,69,15,112,200,0                 ; pshufd        $0x0,%xmm8,%xmm9
13152  DB  102,69,15,111,225                   ; movdqa        %xmm9,%xmm12
13153  DB  102,68,15,219,224                   ; pand          %xmm0,%xmm12
13154  DB  102,68,15,111,232                   ; movdqa        %xmm0,%xmm13
13155  DB  102,69,15,239,236                   ; pxor          %xmm12,%xmm13
13156  DB  185,0,0,128,56                      ; mov           $0x38800000,%ecx
13157  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13158  DB  102,69,15,112,208,0                 ; pshufd        $0x0,%xmm8,%xmm10
13159  DB  102,65,15,114,212,16                ; psrld         $0x10,%xmm12
13160  DB  102,69,15,111,194                   ; movdqa        %xmm10,%xmm8
13161  DB  102,69,15,102,197                   ; pcmpgtd       %xmm13,%xmm8
13162  DB  102,65,15,114,213,13                ; psrld         $0xd,%xmm13
13163  DB  185,0,192,1,0                       ; mov           $0x1c000,%ecx
13164  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
13165  DB  102,69,15,112,219,0                 ; pshufd        $0x0,%xmm11,%xmm11
13166  DB  102,69,15,250,227                   ; psubd         %xmm11,%xmm12
13167  DB  102,69,15,254,229                   ; paddd         %xmm13,%xmm12
13168  DB  102,69,15,223,196                   ; pandn         %xmm12,%xmm8
13169  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
13170  DB  102,69,15,111,233                   ; movdqa        %xmm9,%xmm13
13171  DB  102,68,15,219,233                   ; pand          %xmm1,%xmm13
13172  DB  102,68,15,111,241                   ; movdqa        %xmm1,%xmm14
13173  DB  102,69,15,239,245                   ; pxor          %xmm13,%xmm14
13174  DB  102,65,15,114,213,16                ; psrld         $0x10,%xmm13
13175  DB  102,69,15,111,226                   ; movdqa        %xmm10,%xmm12
13176  DB  102,69,15,102,230                   ; pcmpgtd       %xmm14,%xmm12
13177  DB  102,65,15,114,214,13                ; psrld         $0xd,%xmm14
13178  DB  102,69,15,250,235                   ; psubd         %xmm11,%xmm13
13179  DB  102,69,15,254,238                   ; paddd         %xmm14,%xmm13
13180  DB  102,69,15,223,229                   ; pandn         %xmm13,%xmm12
13181  DB  102,69,15,56,43,228                 ; packusdw      %xmm12,%xmm12
13182  DB  102,69,15,111,241                   ; movdqa        %xmm9,%xmm14
13183  DB  102,68,15,219,242                   ; pand          %xmm2,%xmm14
13184  DB  102,68,15,111,250                   ; movdqa        %xmm2,%xmm15
13185  DB  102,69,15,239,254                   ; pxor          %xmm14,%xmm15
13186  DB  102,65,15,114,214,16                ; psrld         $0x10,%xmm14
13187  DB  102,69,15,111,234                   ; movdqa        %xmm10,%xmm13
13188  DB  102,69,15,102,239                   ; pcmpgtd       %xmm15,%xmm13
13189  DB  102,65,15,114,215,13                ; psrld         $0xd,%xmm15
13190  DB  102,69,15,250,243                   ; psubd         %xmm11,%xmm14
13191  DB  102,69,15,254,247                   ; paddd         %xmm15,%xmm14
13192  DB  102,69,15,223,238                   ; pandn         %xmm14,%xmm13
13193  DB  102,69,15,56,43,237                 ; packusdw      %xmm13,%xmm13
13194  DB  102,68,15,219,203                   ; pand          %xmm3,%xmm9
13195  DB  102,68,15,111,243                   ; movdqa        %xmm3,%xmm14
13196  DB  102,69,15,239,241                   ; pxor          %xmm9,%xmm14
13197  DB  102,65,15,114,209,16                ; psrld         $0x10,%xmm9
13198  DB  102,69,15,102,214                   ; pcmpgtd       %xmm14,%xmm10
13199  DB  102,65,15,114,214,13                ; psrld         $0xd,%xmm14
13200  DB  102,69,15,250,203                   ; psubd         %xmm11,%xmm9
13201  DB  102,69,15,254,206                   ; paddd         %xmm14,%xmm9
13202  DB  102,69,15,223,209                   ; pandn         %xmm9,%xmm10
13203  DB  102,69,15,56,43,210                 ; packusdw      %xmm10,%xmm10
13204  DB  102,69,15,97,196                    ; punpcklwd     %xmm12,%xmm8
13205  DB  102,69,15,97,234                    ; punpcklwd     %xmm10,%xmm13
13206  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
13207  DB  102,69,15,98,205                    ; punpckldq     %xmm13,%xmm9
13208  DB  243,68,15,127,12,248                ; movdqu        %xmm9,(%rax,%rdi,8)
13209  DB  102,69,15,106,197                   ; punpckhdq     %xmm13,%xmm8
13210  DB  243,68,15,127,68,248,16             ; movdqu        %xmm8,0x10(%rax,%rdi,8)
13211  DB  72,173                              ; lods          %ds:(%rsi),%rax
13212  DB  255,224                             ; jmpq          *%rax
13213
13214PUBLIC _sk_load_u16_be_sse41
13215_sk_load_u16_be_sse41 LABEL PROC
13216  DB  72,173                              ; lods          %ds:(%rsi),%rax
13217  DB  72,139,0                            ; mov           (%rax),%rax
13218  DB  243,15,111,4,248                    ; movdqu        (%rax,%rdi,8),%xmm0
13219  DB  243,15,111,76,248,16                ; movdqu        0x10(%rax,%rdi,8),%xmm1
13220  DB  102,15,111,208                      ; movdqa        %xmm0,%xmm2
13221  DB  102,15,97,209                       ; punpcklwd     %xmm1,%xmm2
13222  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
13223  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
13224  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
13225  DB  102,15,105,208                      ; punpckhwd     %xmm0,%xmm2
13226  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
13227  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
13228  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13229  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
13230  DB  102,15,113,240,8                    ; psllw         $0x8,%xmm0
13231  DB  102,15,112,217,78                   ; pshufd        $0x4e,%xmm1,%xmm3
13232  DB  102,15,113,209,8                    ; psrlw         $0x8,%xmm1
13233  DB  102,15,235,200                      ; por           %xmm0,%xmm1
13234  DB  102,15,56,51,193                    ; pmovzxwd      %xmm1,%xmm0
13235  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
13236  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13237  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
13238  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
13239  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
13240  DB  102,15,235,217                      ; por           %xmm1,%xmm3
13241  DB  102,15,56,51,203                    ; pmovzxwd      %xmm3,%xmm1
13242  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
13243  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13244  DB  102,68,15,111,202                   ; movdqa        %xmm2,%xmm9
13245  DB  102,65,15,113,241,8                 ; psllw         $0x8,%xmm9
13246  DB  102,15,112,218,78                   ; pshufd        $0x4e,%xmm2,%xmm3
13247  DB  102,15,113,210,8                    ; psrlw         $0x8,%xmm2
13248  DB  102,65,15,235,209                   ; por           %xmm9,%xmm2
13249  DB  102,15,56,51,210                    ; pmovzxwd      %xmm2,%xmm2
13250  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
13251  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
13252  DB  102,68,15,111,203                   ; movdqa        %xmm3,%xmm9
13253  DB  102,65,15,113,241,8                 ; psllw         $0x8,%xmm9
13254  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
13255  DB  102,65,15,235,217                   ; por           %xmm9,%xmm3
13256  DB  102,15,56,51,219                    ; pmovzxwd      %xmm3,%xmm3
13257  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
13258  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
13259  DB  72,173                              ; lods          %ds:(%rsi),%rax
13260  DB  255,224                             ; jmpq          *%rax
13261
13262PUBLIC _sk_load_rgb_u16_be_sse41
13263_sk_load_rgb_u16_be_sse41 LABEL PROC
13264  DB  72,173                              ; lods          %ds:(%rsi),%rax
13265  DB  72,139,0                            ; mov           (%rax),%rax
13266  DB  72,141,12,127                       ; lea           (%rdi,%rdi,2),%rcx
13267  DB  243,15,111,20,72                    ; movdqu        (%rax,%rcx,2),%xmm2
13268  DB  243,15,111,68,72,8                  ; movdqu        0x8(%rax,%rcx,2),%xmm0
13269  DB  102,15,115,216,4                    ; psrldq        $0x4,%xmm0
13270  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
13271  DB  102,15,115,217,6                    ; psrldq        $0x6,%xmm1
13272  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
13273  DB  102,15,115,216,6                    ; psrldq        $0x6,%xmm0
13274  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
13275  DB  102,15,111,194                      ; movdqa        %xmm2,%xmm0
13276  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
13277  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
13278  DB  102,15,105,209                      ; punpckhwd     %xmm1,%xmm2
13279  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
13280  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
13281  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13282  DB  102,15,111,200                      ; movdqa        %xmm0,%xmm1
13283  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
13284  DB  102,15,113,208,8                    ; psrlw         $0x8,%xmm0
13285  DB  102,15,235,193                      ; por           %xmm1,%xmm0
13286  DB  102,15,56,51,192                    ; pmovzxwd      %xmm0,%xmm0
13287  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
13288  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13289  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
13290  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
13291  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
13292  DB  102,15,235,217                      ; por           %xmm1,%xmm3
13293  DB  102,15,56,51,203                    ; pmovzxwd      %xmm3,%xmm1
13294  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
13295  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13296  DB  102,15,111,218                      ; movdqa        %xmm2,%xmm3
13297  DB  102,15,113,243,8                    ; psllw         $0x8,%xmm3
13298  DB  102,15,113,210,8                    ; psrlw         $0x8,%xmm2
13299  DB  102,15,235,211                      ; por           %xmm3,%xmm2
13300  DB  102,15,56,51,210                    ; pmovzxwd      %xmm2,%xmm2
13301  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
13302  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
13303  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
13304  DB  102,15,110,216                      ; movd          %eax,%xmm3
13305  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13306  DB  72,173                              ; lods          %ds:(%rsi),%rax
13307  DB  255,224                             ; jmpq          *%rax
13308
13309PUBLIC _sk_store_u16_be_sse41
13310_sk_store_u16_be_sse41 LABEL PROC
13311  DB  72,173                              ; lods          %ds:(%rsi),%rax
13312  DB  72,139,0                            ; mov           (%rax),%rax
13313  DB  185,0,255,127,71                    ; mov           $0x477fff00,%ecx
13314  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
13315  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13316  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
13317  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
13318  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
13319  DB  102,69,15,56,43,192                 ; packusdw      %xmm8,%xmm8
13320  DB  102,69,15,111,208                   ; movdqa        %xmm8,%xmm10
13321  DB  102,65,15,113,242,8                 ; psllw         $0x8,%xmm10
13322  DB  102,65,15,113,208,8                 ; psrlw         $0x8,%xmm8
13323  DB  102,69,15,235,194                   ; por           %xmm10,%xmm8
13324  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
13325  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
13326  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
13327  DB  102,69,15,56,43,210                 ; packusdw      %xmm10,%xmm10
13328  DB  102,69,15,111,218                   ; movdqa        %xmm10,%xmm11
13329  DB  102,65,15,113,243,8                 ; psllw         $0x8,%xmm11
13330  DB  102,65,15,113,210,8                 ; psrlw         $0x8,%xmm10
13331  DB  102,69,15,235,211                   ; por           %xmm11,%xmm10
13332  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
13333  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13334  DB  102,69,15,91,219                    ; cvtps2dq      %xmm11,%xmm11
13335  DB  102,69,15,56,43,219                 ; packusdw      %xmm11,%xmm11
13336  DB  102,69,15,111,227                   ; movdqa        %xmm11,%xmm12
13337  DB  102,65,15,113,244,8                 ; psllw         $0x8,%xmm12
13338  DB  102,65,15,113,211,8                 ; psrlw         $0x8,%xmm11
13339  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
13340  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
13341  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
13342  DB  102,69,15,56,43,201                 ; packusdw      %xmm9,%xmm9
13343  DB  102,69,15,111,225                   ; movdqa        %xmm9,%xmm12
13344  DB  102,65,15,113,244,8                 ; psllw         $0x8,%xmm12
13345  DB  102,65,15,113,209,8                 ; psrlw         $0x8,%xmm9
13346  DB  102,69,15,235,204                   ; por           %xmm12,%xmm9
13347  DB  102,69,15,97,194                    ; punpcklwd     %xmm10,%xmm8
13348  DB  102,69,15,97,217                    ; punpcklwd     %xmm9,%xmm11
13349  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
13350  DB  102,69,15,98,203                    ; punpckldq     %xmm11,%xmm9
13351  DB  243,68,15,127,12,248                ; movdqu        %xmm9,(%rax,%rdi,8)
13352  DB  102,69,15,106,195                   ; punpckhdq     %xmm11,%xmm8
13353  DB  243,68,15,127,68,248,16             ; movdqu        %xmm8,0x10(%rax,%rdi,8)
13354  DB  72,173                              ; lods          %ds:(%rsi),%rax
13355  DB  255,224                             ; jmpq          *%rax
13356
13357PUBLIC _sk_load_f32_sse41
13358_sk_load_f32_sse41 LABEL PROC
13359  DB  72,173                              ; lods          %ds:(%rsi),%rax
13360  DB  72,139,0                            ; mov           (%rax),%rax
13361  DB  72,137,249                          ; mov           %rdi,%rcx
13362  DB  72,193,225,4                        ; shl           $0x4,%rcx
13363  DB  68,15,16,4,8                        ; movups        (%rax,%rcx,1),%xmm8
13364  DB  15,16,68,8,16                       ; movups        0x10(%rax,%rcx,1),%xmm0
13365  DB  15,16,92,8,32                       ; movups        0x20(%rax,%rcx,1),%xmm3
13366  DB  68,15,16,76,8,48                    ; movups        0x30(%rax,%rcx,1),%xmm9
13367  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
13368  DB  15,20,208                           ; unpcklps      %xmm0,%xmm2
13369  DB  15,40,203                           ; movaps        %xmm3,%xmm1
13370  DB  65,15,20,201                        ; unpcklps      %xmm9,%xmm1
13371  DB  68,15,21,192                        ; unpckhps      %xmm0,%xmm8
13372  DB  65,15,21,217                        ; unpckhps      %xmm9,%xmm3
13373  DB  15,40,194                           ; movaps        %xmm2,%xmm0
13374  DB  102,15,20,193                       ; unpcklpd      %xmm1,%xmm0
13375  DB  15,18,202                           ; movhlps       %xmm2,%xmm1
13376  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
13377  DB  102,15,20,211                       ; unpcklpd      %xmm3,%xmm2
13378  DB  65,15,18,216                        ; movhlps       %xmm8,%xmm3
13379  DB  72,173                              ; lods          %ds:(%rsi),%rax
13380  DB  255,224                             ; jmpq          *%rax
13381
13382PUBLIC _sk_store_f32_sse41
13383_sk_store_f32_sse41 LABEL PROC
13384  DB  72,173                              ; lods          %ds:(%rsi),%rax
13385  DB  72,139,0                            ; mov           (%rax),%rax
13386  DB  72,137,249                          ; mov           %rdi,%rcx
13387  DB  72,193,225,4                        ; shl           $0x4,%rcx
13388  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13389  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
13390  DB  68,15,20,201                        ; unpcklps      %xmm1,%xmm9
13391  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
13392  DB  68,15,40,218                        ; movaps        %xmm2,%xmm11
13393  DB  68,15,20,219                        ; unpcklps      %xmm3,%xmm11
13394  DB  68,15,21,193                        ; unpckhps      %xmm1,%xmm8
13395  DB  68,15,21,211                        ; unpckhps      %xmm3,%xmm10
13396  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
13397  DB  102,69,15,20,227                    ; unpcklpd      %xmm11,%xmm12
13398  DB  69,15,18,217                        ; movhlps       %xmm9,%xmm11
13399  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
13400  DB  102,69,15,20,202                    ; unpcklpd      %xmm10,%xmm9
13401  DB  69,15,18,208                        ; movhlps       %xmm8,%xmm10
13402  DB  102,68,15,17,36,8                   ; movupd        %xmm12,(%rax,%rcx,1)
13403  DB  68,15,17,92,8,16                    ; movups        %xmm11,0x10(%rax,%rcx,1)
13404  DB  102,68,15,17,76,8,32                ; movupd        %xmm9,0x20(%rax,%rcx,1)
13405  DB  68,15,17,84,8,48                    ; movups        %xmm10,0x30(%rax,%rcx,1)
13406  DB  72,173                              ; lods          %ds:(%rsi),%rax
13407  DB  255,224                             ; jmpq          *%rax
13408
13409PUBLIC _sk_clamp_x_sse41
13410_sk_clamp_x_sse41 LABEL PROC
13411  DB  72,173                              ; lods          %ds:(%rsi),%rax
13412  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
13413  DB  68,15,95,192                        ; maxps         %xmm0,%xmm8
13414  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
13415  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13416  DB  102,15,118,192                      ; pcmpeqd       %xmm0,%xmm0
13417  DB  102,65,15,254,193                   ; paddd         %xmm9,%xmm0
13418  DB  68,15,93,192                        ; minps         %xmm0,%xmm8
13419  DB  72,173                              ; lods          %ds:(%rsi),%rax
13420  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
13421  DB  255,224                             ; jmpq          *%rax
13422
13423PUBLIC _sk_clamp_y_sse41
13424_sk_clamp_y_sse41 LABEL PROC
13425  DB  72,173                              ; lods          %ds:(%rsi),%rax
13426  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
13427  DB  68,15,95,193                        ; maxps         %xmm1,%xmm8
13428  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
13429  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13430  DB  102,15,118,201                      ; pcmpeqd       %xmm1,%xmm1
13431  DB  102,65,15,254,201                   ; paddd         %xmm9,%xmm1
13432  DB  68,15,93,193                        ; minps         %xmm1,%xmm8
13433  DB  72,173                              ; lods          %ds:(%rsi),%rax
13434  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
13435  DB  255,224                             ; jmpq          *%rax
13436
13437PUBLIC _sk_repeat_x_sse41
13438_sk_repeat_x_sse41 LABEL PROC
13439  DB  72,173                              ; lods          %ds:(%rsi),%rax
13440  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
13441  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13442  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
13443  DB  69,15,94,200                        ; divps         %xmm8,%xmm9
13444  DB  102,69,15,58,8,201,1                ; roundps       $0x1,%xmm9,%xmm9
13445  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13446  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
13447  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
13448  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
13449  DB  65,15,93,193                        ; minps         %xmm9,%xmm0
13450  DB  72,173                              ; lods          %ds:(%rsi),%rax
13451  DB  255,224                             ; jmpq          *%rax
13452
13453PUBLIC _sk_repeat_y_sse41
13454_sk_repeat_y_sse41 LABEL PROC
13455  DB  72,173                              ; lods          %ds:(%rsi),%rax
13456  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
13457  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13458  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
13459  DB  69,15,94,200                        ; divps         %xmm8,%xmm9
13460  DB  102,69,15,58,8,201,1                ; roundps       $0x1,%xmm9,%xmm9
13461  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13462  DB  65,15,92,201                        ; subps         %xmm9,%xmm1
13463  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
13464  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
13465  DB  65,15,93,201                        ; minps         %xmm9,%xmm1
13466  DB  72,173                              ; lods          %ds:(%rsi),%rax
13467  DB  255,224                             ; jmpq          *%rax
13468
13469PUBLIC _sk_mirror_x_sse41
13470_sk_mirror_x_sse41 LABEL PROC
13471  DB  72,173                              ; lods          %ds:(%rsi),%rax
13472  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
13473  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
13474  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13475  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
13476  DB  243,69,15,88,192                    ; addss         %xmm8,%xmm8
13477  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13478  DB  68,15,40,208                        ; movaps        %xmm0,%xmm10
13479  DB  69,15,94,208                        ; divps         %xmm8,%xmm10
13480  DB  102,69,15,58,8,210,1                ; roundps       $0x1,%xmm10,%xmm10
13481  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13482  DB  65,15,92,194                        ; subps         %xmm10,%xmm0
13483  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
13484  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
13485  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
13486  DB  65,15,84,192                        ; andps         %xmm8,%xmm0
13487  DB  102,69,15,118,192                   ; pcmpeqd       %xmm8,%xmm8
13488  DB  102,69,15,254,193                   ; paddd         %xmm9,%xmm8
13489  DB  65,15,93,192                        ; minps         %xmm8,%xmm0
13490  DB  72,173                              ; lods          %ds:(%rsi),%rax
13491  DB  255,224                             ; jmpq          *%rax
13492
13493PUBLIC _sk_mirror_y_sse41
13494_sk_mirror_y_sse41 LABEL PROC
13495  DB  72,173                              ; lods          %ds:(%rsi),%rax
13496  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
13497  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
13498  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13499  DB  65,15,92,201                        ; subps         %xmm9,%xmm1
13500  DB  243,69,15,88,192                    ; addss         %xmm8,%xmm8
13501  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13502  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
13503  DB  69,15,94,208                        ; divps         %xmm8,%xmm10
13504  DB  102,69,15,58,8,210,1                ; roundps       $0x1,%xmm10,%xmm10
13505  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13506  DB  65,15,92,202                        ; subps         %xmm10,%xmm1
13507  DB  65,15,92,201                        ; subps         %xmm9,%xmm1
13508  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
13509  DB  68,15,92,193                        ; subps         %xmm1,%xmm8
13510  DB  65,15,84,200                        ; andps         %xmm8,%xmm1
13511  DB  102,69,15,118,192                   ; pcmpeqd       %xmm8,%xmm8
13512  DB  102,69,15,254,193                   ; paddd         %xmm9,%xmm8
13513  DB  65,15,93,200                        ; minps         %xmm8,%xmm1
13514  DB  72,173                              ; lods          %ds:(%rsi),%rax
13515  DB  255,224                             ; jmpq          *%rax
13516
13517PUBLIC _sk_luminance_to_alpha_sse41
13518_sk_luminance_to_alpha_sse41 LABEL PROC
13519  DB  184,208,179,89,62                   ; mov           $0x3e59b3d0,%eax
13520  DB  102,15,110,216                      ; movd          %eax,%xmm3
13521  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13522  DB  15,89,216                           ; mulps         %xmm0,%xmm3
13523  DB  184,89,23,55,63                     ; mov           $0x3f371759,%eax
13524  DB  102,15,110,192                      ; movd          %eax,%xmm0
13525  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13526  DB  15,89,193                           ; mulps         %xmm1,%xmm0
13527  DB  15,88,195                           ; addps         %xmm3,%xmm0
13528  DB  184,152,221,147,61                  ; mov           $0x3d93dd98,%eax
13529  DB  102,15,110,216                      ; movd          %eax,%xmm3
13530  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13531  DB  15,89,218                           ; mulps         %xmm2,%xmm3
13532  DB  15,88,216                           ; addps         %xmm0,%xmm3
13533  DB  72,173                              ; lods          %ds:(%rsi),%rax
13534  DB  15,87,192                           ; xorps         %xmm0,%xmm0
13535  DB  15,87,201                           ; xorps         %xmm1,%xmm1
13536  DB  15,87,210                           ; xorps         %xmm2,%xmm2
13537  DB  255,224                             ; jmpq          *%rax
13538
13539PUBLIC _sk_matrix_2x3_sse41
13540_sk_matrix_2x3_sse41 LABEL PROC
13541  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
13542  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13543  DB  72,173                              ; lods          %ds:(%rsi),%rax
13544  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13545  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
13546  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13547  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
13548  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13549  DB  243,68,15,16,88,16                  ; movss         0x10(%rax),%xmm11
13550  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13551  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13552  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13553  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13554  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
13555  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13556  DB  243,68,15,16,80,12                  ; movss         0xc(%rax),%xmm10
13557  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13558  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
13559  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13560  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13561  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13562  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13563  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
13564  DB  72,173                              ; lods          %ds:(%rsi),%rax
13565  DB  255,224                             ; jmpq          *%rax
13566
13567PUBLIC _sk_matrix_3x4_sse41
13568_sk_matrix_3x4_sse41 LABEL PROC
13569  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
13570  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13571  DB  72,173                              ; lods          %ds:(%rsi),%rax
13572  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13573  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
13574  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13575  DB  243,68,15,16,80,12                  ; movss         0xc(%rax),%xmm10
13576  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13577  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
13578  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13579  DB  243,68,15,16,96,36                  ; movss         0x24(%rax),%xmm12
13580  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13581  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13582  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13583  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13584  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13585  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13586  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
13587  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13588  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
13589  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13590  DB  243,68,15,16,88,28                  ; movss         0x1c(%rax),%xmm11
13591  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13592  DB  243,68,15,16,96,40                  ; movss         0x28(%rax),%xmm12
13593  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13594  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13595  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13596  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13597  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13598  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13599  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
13600  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
13601  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13602  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
13603  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13604  DB  243,68,15,16,96,32                  ; movss         0x20(%rax),%xmm12
13605  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13606  DB  243,68,15,16,104,44                 ; movss         0x2c(%rax),%xmm13
13607  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13608  DB  68,15,89,226                        ; mulps         %xmm2,%xmm12
13609  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13610  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
13611  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13612  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13613  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13614  DB  72,173                              ; lods          %ds:(%rsi),%rax
13615  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
13616  DB  255,224                             ; jmpq          *%rax
13617
13618PUBLIC _sk_matrix_4x5_sse41
13619_sk_matrix_4x5_sse41 LABEL PROC
13620  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
13621  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13622  DB  72,173                              ; lods          %ds:(%rsi),%rax
13623  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13624  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
13625  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13626  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
13627  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13628  DB  243,68,15,16,88,32                  ; movss         0x20(%rax),%xmm11
13629  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13630  DB  243,68,15,16,96,48                  ; movss         0x30(%rax),%xmm12
13631  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13632  DB  243,68,15,16,104,64                 ; movss         0x40(%rax),%xmm13
13633  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13634  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
13635  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13636  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13637  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13638  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13639  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13640  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13641  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
13642  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13643  DB  243,68,15,16,80,20                  ; movss         0x14(%rax),%xmm10
13644  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13645  DB  243,68,15,16,88,36                  ; movss         0x24(%rax),%xmm11
13646  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13647  DB  243,68,15,16,96,52                  ; movss         0x34(%rax),%xmm12
13648  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13649  DB  243,68,15,16,104,68                 ; movss         0x44(%rax),%xmm13
13650  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13651  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
13652  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13653  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
13654  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13655  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
13656  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13657  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13658  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
13659  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
13660  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13661  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
13662  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13663  DB  243,68,15,16,96,40                  ; movss         0x28(%rax),%xmm12
13664  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13665  DB  243,68,15,16,104,56                 ; movss         0x38(%rax),%xmm13
13666  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13667  DB  243,68,15,16,112,72                 ; movss         0x48(%rax),%xmm14
13668  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
13669  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
13670  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
13671  DB  68,15,89,226                        ; mulps         %xmm2,%xmm12
13672  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13673  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
13674  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13675  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13676  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13677  DB  243,68,15,16,88,12                  ; movss         0xc(%rax),%xmm11
13678  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13679  DB  243,68,15,16,96,28                  ; movss         0x1c(%rax),%xmm12
13680  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13681  DB  243,68,15,16,104,44                 ; movss         0x2c(%rax),%xmm13
13682  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13683  DB  243,68,15,16,112,60                 ; movss         0x3c(%rax),%xmm14
13684  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
13685  DB  243,68,15,16,120,76                 ; movss         0x4c(%rax),%xmm15
13686  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
13687  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
13688  DB  69,15,88,247                        ; addps         %xmm15,%xmm14
13689  DB  68,15,89,234                        ; mulps         %xmm2,%xmm13
13690  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
13691  DB  69,15,89,225                        ; mulps         %xmm9,%xmm12
13692  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
13693  DB  69,15,89,216                        ; mulps         %xmm8,%xmm11
13694  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13695  DB  72,173                              ; lods          %ds:(%rsi),%rax
13696  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
13697  DB  65,15,40,219                        ; movaps        %xmm11,%xmm3
13698  DB  255,224                             ; jmpq          *%rax
13699
13700PUBLIC _sk_matrix_perspective_sse41
13701_sk_matrix_perspective_sse41 LABEL PROC
13702  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13703  DB  72,173                              ; lods          %ds:(%rsi),%rax
13704  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13705  DB  243,68,15,16,72,4                   ; movss         0x4(%rax),%xmm9
13706  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13707  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13708  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
13709  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13710  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
13711  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13712  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13713  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
13714  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
13715  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13716  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
13717  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13718  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
13719  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13720  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
13721  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13722  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13723  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13724  DB  243,68,15,16,80,24                  ; movss         0x18(%rax),%xmm10
13725  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13726  DB  243,68,15,16,88,28                  ; movss         0x1c(%rax),%xmm11
13727  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13728  DB  243,68,15,16,96,32                  ; movss         0x20(%rax),%xmm12
13729  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13730  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
13731  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
13732  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
13733  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
13734  DB  65,15,83,202                        ; rcpps         %xmm10,%xmm1
13735  DB  15,89,193                           ; mulps         %xmm1,%xmm0
13736  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
13737  DB  72,173                              ; lods          %ds:(%rsi),%rax
13738  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
13739  DB  255,224                             ; jmpq          *%rax
13740
13741PUBLIC _sk_linear_gradient_sse41
13742_sk_linear_gradient_sse41 LABEL PROC
13743  DB  72,173                              ; lods          %ds:(%rsi),%rax
13744  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
13745  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13746  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
13747  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13748  DB  243,68,15,16,96,24                  ; movss         0x18(%rax),%xmm12
13749  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13750  DB  243,68,15,16,104,28                 ; movss         0x1c(%rax),%xmm13
13751  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13752  DB  72,139,8                            ; mov           (%rax),%rcx
13753  DB  72,133,201                          ; test          %rcx,%rcx
13754  DB  15,132,4,1,0,0                      ; je            3b5c <_sk_linear_gradient_sse41+0x13e>
13755  DB  72,131,236,88                       ; sub           $0x58,%rsp
13756  DB  15,41,36,36                         ; movaps        %xmm4,(%rsp)
13757  DB  15,41,108,36,16                     ; movaps        %xmm5,0x10(%rsp)
13758  DB  15,41,116,36,32                     ; movaps        %xmm6,0x20(%rsp)
13759  DB  15,41,124,36,48                     ; movaps        %xmm7,0x30(%rsp)
13760  DB  72,139,64,8                         ; mov           0x8(%rax),%rax
13761  DB  72,131,192,32                       ; add           $0x20,%rax
13762  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
13763  DB  15,87,219                           ; xorps         %xmm3,%xmm3
13764  DB  15,87,210                           ; xorps         %xmm2,%xmm2
13765  DB  15,87,201                           ; xorps         %xmm1,%xmm1
13766  DB  15,40,233                           ; movaps        %xmm1,%xmm5
13767  DB  15,40,242                           ; movaps        %xmm2,%xmm6
13768  DB  15,40,251                           ; movaps        %xmm3,%xmm7
13769  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
13770  DB  69,15,40,243                        ; movaps        %xmm11,%xmm14
13771  DB  69,15,40,252                        ; movaps        %xmm12,%xmm15
13772  DB  68,15,41,108,36,64                  ; movaps        %xmm13,0x40(%rsp)
13773  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
13774  DB  243,15,16,80,224                    ; movss         -0x20(%rax),%xmm2
13775  DB  243,68,15,16,72,228                 ; movss         -0x1c(%rax),%xmm9
13776  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13777  DB  15,40,224                           ; movaps        %xmm0,%xmm4
13778  DB  15,194,194,1                        ; cmpltps       %xmm2,%xmm0
13779  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13780  DB  102,68,15,56,20,201                 ; blendvps      %xmm0,%xmm1,%xmm9
13781  DB  243,15,16,72,232                    ; movss         -0x18(%rax),%xmm1
13782  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13783  DB  102,15,56,20,205                    ; blendvps      %xmm0,%xmm5,%xmm1
13784  DB  243,15,16,80,236                    ; movss         -0x14(%rax),%xmm2
13785  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13786  DB  102,15,56,20,214                    ; blendvps      %xmm0,%xmm6,%xmm2
13787  DB  243,15,16,88,240                    ; movss         -0x10(%rax),%xmm3
13788  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13789  DB  102,15,56,20,223                    ; blendvps      %xmm0,%xmm7,%xmm3
13790  DB  243,68,15,16,80,244                 ; movss         -0xc(%rax),%xmm10
13791  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13792  DB  102,69,15,56,20,208                 ; blendvps      %xmm0,%xmm8,%xmm10
13793  DB  243,68,15,16,88,248                 ; movss         -0x8(%rax),%xmm11
13794  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
13795  DB  102,69,15,56,20,222                 ; blendvps      %xmm0,%xmm14,%xmm11
13796  DB  243,68,15,16,96,252                 ; movss         -0x4(%rax),%xmm12
13797  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
13798  DB  102,69,15,56,20,231                 ; blendvps      %xmm0,%xmm15,%xmm12
13799  DB  243,68,15,16,40                     ; movss         (%rax),%xmm13
13800  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
13801  DB  102,68,15,56,20,108,36,64           ; blendvps      %xmm0,0x40(%rsp),%xmm13
13802  DB  15,40,196                           ; movaps        %xmm4,%xmm0
13803  DB  72,131,192,36                       ; add           $0x24,%rax
13804  DB  72,255,201                          ; dec           %rcx
13805  DB  15,133,65,255,255,255               ; jne           3a84 <_sk_linear_gradient_sse41+0x66>
13806  DB  15,40,124,36,48                     ; movaps        0x30(%rsp),%xmm7
13807  DB  15,40,116,36,32                     ; movaps        0x20(%rsp),%xmm6
13808  DB  15,40,108,36,16                     ; movaps        0x10(%rsp),%xmm5
13809  DB  15,40,36,36                         ; movaps        (%rsp),%xmm4
13810  DB  72,131,196,88                       ; add           $0x58,%rsp
13811  DB  235,13                              ; jmp           3b69 <_sk_linear_gradient_sse41+0x14b>
13812  DB  15,87,201                           ; xorps         %xmm1,%xmm1
13813  DB  15,87,210                           ; xorps         %xmm2,%xmm2
13814  DB  15,87,219                           ; xorps         %xmm3,%xmm3
13815  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
13816  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
13817  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13818  DB  15,89,200                           ; mulps         %xmm0,%xmm1
13819  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
13820  DB  15,89,208                           ; mulps         %xmm0,%xmm2
13821  DB  65,15,88,212                        ; addps         %xmm12,%xmm2
13822  DB  15,89,216                           ; mulps         %xmm0,%xmm3
13823  DB  65,15,88,221                        ; addps         %xmm13,%xmm3
13824  DB  72,173                              ; lods          %ds:(%rsi),%rax
13825  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
13826  DB  255,224                             ; jmpq          *%rax
13827
13828PUBLIC _sk_linear_gradient_2stops_sse41
13829_sk_linear_gradient_2stops_sse41 LABEL PROC
13830  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
13831  DB  72,173                              ; lods          %ds:(%rsi),%rax
13832  DB  243,15,16,0                         ; movss         (%rax),%xmm0
13833  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
13834  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
13835  DB  243,15,16,80,16                     ; movss         0x10(%rax),%xmm2
13836  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13837  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
13838  DB  15,88,194                           ; addps         %xmm2,%xmm0
13839  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
13840  DB  243,15,16,80,20                     ; movss         0x14(%rax),%xmm2
13841  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13842  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
13843  DB  15,88,202                           ; addps         %xmm2,%xmm1
13844  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
13845  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
13846  DB  243,15,16,88,24                     ; movss         0x18(%rax),%xmm3
13847  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13848  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
13849  DB  15,88,211                           ; addps         %xmm3,%xmm2
13850  DB  243,15,16,88,12                     ; movss         0xc(%rax),%xmm3
13851  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
13852  DB  243,68,15,16,72,28                  ; movss         0x1c(%rax),%xmm9
13853  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13854  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
13855  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
13856  DB  72,173                              ; lods          %ds:(%rsi),%rax
13857  DB  255,224                             ; jmpq          *%rax
13858
13859PUBLIC _sk_save_xy_sse41
13860_sk_save_xy_sse41 LABEL PROC
13861  DB  72,173                              ; lods          %ds:(%rsi),%rax
13862  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13863  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13864  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13865  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
13866  DB  68,15,88,200                        ; addps         %xmm0,%xmm9
13867  DB  102,69,15,58,8,209,1                ; roundps       $0x1,%xmm9,%xmm10
13868  DB  69,15,92,202                        ; subps         %xmm10,%xmm9
13869  DB  68,15,88,193                        ; addps         %xmm1,%xmm8
13870  DB  102,69,15,58,8,208,1                ; roundps       $0x1,%xmm8,%xmm10
13871  DB  69,15,92,194                        ; subps         %xmm10,%xmm8
13872  DB  15,17,0                             ; movups        %xmm0,(%rax)
13873  DB  15,17,72,32                         ; movups        %xmm1,0x20(%rax)
13874  DB  68,15,17,72,64                      ; movups        %xmm9,0x40(%rax)
13875  DB  68,15,17,64,96                      ; movups        %xmm8,0x60(%rax)
13876  DB  72,173                              ; lods          %ds:(%rsi),%rax
13877  DB  255,224                             ; jmpq          *%rax
13878
13879PUBLIC _sk_accumulate_sse41
13880_sk_accumulate_sse41 LABEL PROC
13881  DB  72,173                              ; lods          %ds:(%rsi),%rax
13882  DB  68,15,16,128,128,0,0,0              ; movups        0x80(%rax),%xmm8
13883  DB  68,15,16,136,160,0,0,0              ; movups        0xa0(%rax),%xmm9
13884  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13885  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
13886  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
13887  DB  65,15,88,224                        ; addps         %xmm8,%xmm4
13888  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
13889  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
13890  DB  65,15,88,232                        ; addps         %xmm8,%xmm5
13891  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
13892  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
13893  DB  65,15,88,240                        ; addps         %xmm8,%xmm6
13894  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
13895  DB  65,15,88,249                        ; addps         %xmm9,%xmm7
13896  DB  72,173                              ; lods          %ds:(%rsi),%rax
13897  DB  255,224                             ; jmpq          *%rax
13898
13899PUBLIC _sk_bilinear_nx_sse41
13900_sk_bilinear_nx_sse41 LABEL PROC
13901  DB  72,173                              ; lods          %ds:(%rsi),%rax
13902  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
13903  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13904  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13905  DB  15,16,0                             ; movups        (%rax),%xmm0
13906  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13907  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13908  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13909  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13910  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13911  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13912  DB  68,15,17,128,128,0,0,0              ; movups        %xmm8,0x80(%rax)
13913  DB  72,173                              ; lods          %ds:(%rsi),%rax
13914  DB  255,224                             ; jmpq          *%rax
13915
13916PUBLIC _sk_bilinear_px_sse41
13917_sk_bilinear_px_sse41 LABEL PROC
13918  DB  72,173                              ; lods          %ds:(%rsi),%rax
13919  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13920  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13921  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13922  DB  15,16,0                             ; movups        (%rax),%xmm0
13923  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13924  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13925  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
13926  DB  72,173                              ; lods          %ds:(%rsi),%rax
13927  DB  255,224                             ; jmpq          *%rax
13928
13929PUBLIC _sk_bilinear_ny_sse41
13930_sk_bilinear_ny_sse41 LABEL PROC
13931  DB  72,173                              ; lods          %ds:(%rsi),%rax
13932  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
13933  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13934  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13935  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
13936  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
13937  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
13938  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13939  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13940  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13941  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13942  DB  68,15,17,128,160,0,0,0              ; movups        %xmm8,0xa0(%rax)
13943  DB  72,173                              ; lods          %ds:(%rsi),%rax
13944  DB  255,224                             ; jmpq          *%rax
13945
13946PUBLIC _sk_bilinear_py_sse41
13947_sk_bilinear_py_sse41 LABEL PROC
13948  DB  72,173                              ; lods          %ds:(%rsi),%rax
13949  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
13950  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13951  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13952  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
13953  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
13954  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
13955  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
13956  DB  72,173                              ; lods          %ds:(%rsi),%rax
13957  DB  255,224                             ; jmpq          *%rax
13958
13959PUBLIC _sk_bicubic_n3x_sse41
13960_sk_bicubic_n3x_sse41 LABEL PROC
13961  DB  72,173                              ; lods          %ds:(%rsi),%rax
13962  DB  185,0,0,192,191                     ; mov           $0xbfc00000,%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,0                             ; movups        (%rax),%xmm0
13966  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13967  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13968  DB  185,0,0,128,63                      ; mov           $0x3f800000,%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,92,193                        ; subps         %xmm9,%xmm8
13972  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
13973  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
13974  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
13975  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
13976  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
13977  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
13978  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13979  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
13980  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
13981  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
13982  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
13983  DB  72,173                              ; lods          %ds:(%rsi),%rax
13984  DB  255,224                             ; jmpq          *%rax
13985
13986PUBLIC _sk_bicubic_n1x_sse41
13987_sk_bicubic_n1x_sse41 LABEL PROC
13988  DB  72,173                              ; lods          %ds:(%rsi),%rax
13989  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
13990  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13991  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13992  DB  15,16,0                             ; movups        (%rax),%xmm0
13993  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
13994  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
13995  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
13996  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
13997  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
13998  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
13999  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
14000  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
14001  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
14002  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
14003  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14004  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14005  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14006  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
14007  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
14008  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14009  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14010  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14011  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
14012  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
14013  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14014  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14015  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14016  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
14017  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
14018  DB  72,173                              ; lods          %ds:(%rsi),%rax
14019  DB  255,224                             ; jmpq          *%rax
14020
14021PUBLIC _sk_bicubic_p1x_sse41
14022_sk_bicubic_p1x_sse41 LABEL PROC
14023  DB  72,173                              ; lods          %ds:(%rsi),%rax
14024  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
14025  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14026  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14027  DB  15,16,0                             ; movups        (%rax),%xmm0
14028  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
14029  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
14030  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
14031  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14032  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14033  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
14034  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
14035  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
14036  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
14037  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
14038  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
14039  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
14040  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
14041  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14042  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14043  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
14044  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
14045  DB  68,15,17,144,128,0,0,0              ; movups        %xmm10,0x80(%rax)
14046  DB  72,173                              ; lods          %ds:(%rsi),%rax
14047  DB  255,224                             ; jmpq          *%rax
14048
14049PUBLIC _sk_bicubic_p3x_sse41
14050_sk_bicubic_p3x_sse41 LABEL PROC
14051  DB  72,173                              ; lods          %ds:(%rsi),%rax
14052  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
14053  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14054  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14055  DB  15,16,0                             ; movups        (%rax),%xmm0
14056  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
14057  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
14058  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
14059  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14060  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14061  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
14062  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
14063  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
14064  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14065  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14066  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
14067  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
14068  DB  68,15,17,128,128,0,0,0              ; movups        %xmm8,0x80(%rax)
14069  DB  72,173                              ; lods          %ds:(%rsi),%rax
14070  DB  255,224                             ; jmpq          *%rax
14071
14072PUBLIC _sk_bicubic_n3y_sse41
14073_sk_bicubic_n3y_sse41 LABEL PROC
14074  DB  72,173                              ; lods          %ds:(%rsi),%rax
14075  DB  185,0,0,192,191                     ; mov           $0xbfc00000,%ecx
14076  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14077  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14078  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
14079  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
14080  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
14081  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
14082  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14083  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14084  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
14085  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
14086  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
14087  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
14088  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
14089  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14090  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14091  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14092  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
14093  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
14094  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14095  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
14096  DB  72,173                              ; lods          %ds:(%rsi),%rax
14097  DB  255,224                             ; jmpq          *%rax
14098
14099PUBLIC _sk_bicubic_n1y_sse41
14100_sk_bicubic_n1y_sse41 LABEL PROC
14101  DB  72,173                              ; lods          %ds:(%rsi),%rax
14102  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
14103  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14104  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14105  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
14106  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
14107  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
14108  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
14109  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14110  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14111  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
14112  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
14113  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
14114  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
14115  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
14116  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14117  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14118  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14119  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
14120  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
14121  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14122  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14123  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14124  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
14125  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
14126  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14127  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14128  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14129  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
14130  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
14131  DB  72,173                              ; lods          %ds:(%rsi),%rax
14132  DB  255,224                             ; jmpq          *%rax
14133
14134PUBLIC _sk_bicubic_p1y_sse41
14135_sk_bicubic_p1y_sse41 LABEL PROC
14136  DB  72,173                              ; lods          %ds:(%rsi),%rax
14137  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
14138  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14139  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14140  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
14141  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
14142  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
14143  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
14144  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14145  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14146  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
14147  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
14148  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
14149  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
14150  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
14151  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
14152  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
14153  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
14154  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14155  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14156  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
14157  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
14158  DB  68,15,17,144,160,0,0,0              ; movups        %xmm10,0xa0(%rax)
14159  DB  72,173                              ; lods          %ds:(%rsi),%rax
14160  DB  255,224                             ; jmpq          *%rax
14161
14162PUBLIC _sk_bicubic_p3y_sse41
14163_sk_bicubic_p3y_sse41 LABEL PROC
14164  DB  72,173                              ; lods          %ds:(%rsi),%rax
14165  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
14166  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14167  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14168  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
14169  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
14170  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
14171  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
14172  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
14173  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14174  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
14175  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
14176  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
14177  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
14178  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14179  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
14180  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
14181  DB  68,15,17,128,160,0,0,0              ; movups        %xmm8,0xa0(%rax)
14182  DB  72,173                              ; lods          %ds:(%rsi),%rax
14183  DB  255,224                             ; jmpq          *%rax
14184
14185PUBLIC _sk_callback_sse41
14186_sk_callback_sse41 LABEL PROC
14187  DB  65,86                               ; push          %r14
14188  DB  83                                  ; push          %rbx
14189  DB  72,131,236,40                       ; sub           $0x28,%rsp
14190  DB  68,15,40,197                        ; movaps        %xmm5,%xmm8
14191  DB  68,15,40,204                        ; movaps        %xmm4,%xmm9
14192  DB  73,137,214                          ; mov           %rdx,%r14
14193  DB  72,173                              ; lods          %ds:(%rsi),%rax
14194  DB  72,137,195                          ; mov           %rax,%rbx
14195  DB  15,40,224                           ; movaps        %xmm0,%xmm4
14196  DB  15,20,225                           ; unpcklps      %xmm1,%xmm4
14197  DB  15,40,234                           ; movaps        %xmm2,%xmm5
14198  DB  15,20,235                           ; unpcklps      %xmm3,%xmm5
14199  DB  15,21,193                           ; unpckhps      %xmm1,%xmm0
14200  DB  15,21,211                           ; unpckhps      %xmm3,%xmm2
14201  DB  15,40,204                           ; movaps        %xmm4,%xmm1
14202  DB  102,15,20,205                       ; unpcklpd      %xmm5,%xmm1
14203  DB  15,18,236                           ; movhlps       %xmm4,%xmm5
14204  DB  15,40,216                           ; movaps        %xmm0,%xmm3
14205  DB  102,15,20,218                       ; unpcklpd      %xmm2,%xmm3
14206  DB  15,18,208                           ; movhlps       %xmm0,%xmm2
14207  DB  102,15,17,75,8                      ; movupd        %xmm1,0x8(%rbx)
14208  DB  15,17,107,24                        ; movups        %xmm5,0x18(%rbx)
14209  DB  102,15,17,91,40                     ; movupd        %xmm3,0x28(%rbx)
14210  DB  15,17,83,56                         ; movups        %xmm2,0x38(%rbx)
14211  DB  186,4,0,0,0                         ; mov           $0x4,%edx
14212  DB  72,137,217                          ; mov           %rbx,%rcx
14213  DB  255,19                              ; callq         *(%rbx)
14214  DB  72,139,131,136,0,0,0                ; mov           0x88(%rbx),%rax
14215  DB  15,16,32                            ; movups        (%rax),%xmm4
14216  DB  15,16,64,16                         ; movups        0x10(%rax),%xmm0
14217  DB  15,16,88,32                         ; movups        0x20(%rax),%xmm3
14218  DB  15,16,80,48                         ; movups        0x30(%rax),%xmm2
14219  DB  15,40,236                           ; movaps        %xmm4,%xmm5
14220  DB  15,20,232                           ; unpcklps      %xmm0,%xmm5
14221  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14222  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
14223  DB  15,21,224                           ; unpckhps      %xmm0,%xmm4
14224  DB  15,21,218                           ; unpckhps      %xmm2,%xmm3
14225  DB  15,40,197                           ; movaps        %xmm5,%xmm0
14226  DB  102,15,20,193                       ; unpcklpd      %xmm1,%xmm0
14227  DB  15,18,205                           ; movhlps       %xmm5,%xmm1
14228  DB  15,40,212                           ; movaps        %xmm4,%xmm2
14229  DB  102,15,20,211                       ; unpcklpd      %xmm3,%xmm2
14230  DB  15,18,220                           ; movhlps       %xmm4,%xmm3
14231  DB  72,173                              ; lods          %ds:(%rsi),%rax
14232  DB  76,137,242                          ; mov           %r14,%rdx
14233  DB  65,15,40,225                        ; movaps        %xmm9,%xmm4
14234  DB  65,15,40,232                        ; movaps        %xmm8,%xmm5
14235  DB  72,131,196,40                       ; add           $0x28,%rsp
14236  DB  91                                  ; pop           %rbx
14237  DB  65,94                               ; pop           %r14
14238  DB  255,224                             ; jmpq          *%rax
14239
14240ALIGN 16
14241  DB  0,0                                 ; add           %al,(%rax)
14242  DB  0,63                                ; add           %bh,(%rdi)
14243  DB  0,0                                 ; add           %al,(%rax)
14244  DB  0,63                                ; add           %bh,(%rdi)
14245  DB  0,0                                 ; add           %al,(%rax)
14246  DB  0,63                                ; add           %bh,(%rdi)
14247  DB  0,0                                 ; add           %al,(%rax)
14248  DB  0,63                                ; add           %bh,(%rdi)
14249  DB  0,0                                 ; add           %al,(%rax)
14250  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
14251  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
14252  DB  63                                  ; (bad)
14253  DB  0,0                                 ; add           %al,(%rax)
14254  DB  128                                 ; .byte         0x80
14255  DB  63                                  ; (bad)
14256ALIGN 32
14257
14258PUBLIC _sk_start_pipeline_sse2
14259_sk_start_pipeline_sse2 LABEL PROC
14260  DB  65,87                               ; push          %r15
14261  DB  65,86                               ; push          %r14
14262  DB  65,85                               ; push          %r13
14263  DB  65,84                               ; push          %r12
14264  DB  86                                  ; push          %rsi
14265  DB  87                                  ; push          %rdi
14266  DB  83                                  ; push          %rbx
14267  DB  72,129,236,160,0,0,0                ; sub           $0xa0,%rsp
14268  DB  68,15,41,188,36,144,0,0,0           ; movaps        %xmm15,0x90(%rsp)
14269  DB  68,15,41,180,36,128,0,0,0           ; movaps        %xmm14,0x80(%rsp)
14270  DB  68,15,41,108,36,112                 ; movaps        %xmm13,0x70(%rsp)
14271  DB  68,15,41,100,36,96                  ; movaps        %xmm12,0x60(%rsp)
14272  DB  68,15,41,92,36,80                   ; movaps        %xmm11,0x50(%rsp)
14273  DB  68,15,41,84,36,64                   ; movaps        %xmm10,0x40(%rsp)
14274  DB  68,15,41,76,36,48                   ; movaps        %xmm9,0x30(%rsp)
14275  DB  68,15,41,68,36,32                   ; movaps        %xmm8,0x20(%rsp)
14276  DB  15,41,124,36,16                     ; movaps        %xmm7,0x10(%rsp)
14277  DB  15,41,52,36                         ; movaps        %xmm6,(%rsp)
14278  DB  77,137,207                          ; mov           %r9,%r15
14279  DB  77,137,198                          ; mov           %r8,%r14
14280  DB  72,137,203                          ; mov           %rcx,%rbx
14281  DB  72,137,214                          ; mov           %rdx,%rsi
14282  DB  72,173                              ; lods          %ds:(%rsi),%rax
14283  DB  73,137,196                          ; mov           %rax,%r12
14284  DB  73,137,245                          ; mov           %rsi,%r13
14285  DB  72,141,67,4                         ; lea           0x4(%rbx),%rax
14286  DB  76,57,248                           ; cmp           %r15,%rax
14287  DB  118,5                               ; jbe           73 <_sk_start_pipeline_sse2+0x73>
14288  DB  72,137,216                          ; mov           %rbx,%rax
14289  DB  235,52                              ; jmp           a7 <_sk_start_pipeline_sse2+0xa7>
14290  DB  15,87,192                           ; xorps         %xmm0,%xmm0
14291  DB  15,87,201                           ; xorps         %xmm1,%xmm1
14292  DB  15,87,210                           ; xorps         %xmm2,%xmm2
14293  DB  15,87,219                           ; xorps         %xmm3,%xmm3
14294  DB  15,87,228                           ; xorps         %xmm4,%xmm4
14295  DB  15,87,237                           ; xorps         %xmm5,%xmm5
14296  DB  15,87,246                           ; xorps         %xmm6,%xmm6
14297  DB  15,87,255                           ; xorps         %xmm7,%xmm7
14298  DB  72,137,223                          ; mov           %rbx,%rdi
14299  DB  76,137,238                          ; mov           %r13,%rsi
14300  DB  76,137,242                          ; mov           %r14,%rdx
14301  DB  65,255,212                          ; callq         *%r12
14302  DB  72,141,67,4                         ; lea           0x4(%rbx),%rax
14303  DB  72,131,195,8                        ; add           $0x8,%rbx
14304  DB  76,57,251                           ; cmp           %r15,%rbx
14305  DB  72,137,195                          ; mov           %rax,%rbx
14306  DB  118,204                             ; jbe           73 <_sk_start_pipeline_sse2+0x73>
14307  DB  15,40,52,36                         ; movaps        (%rsp),%xmm6
14308  DB  15,40,124,36,16                     ; movaps        0x10(%rsp),%xmm7
14309  DB  68,15,40,68,36,32                   ; movaps        0x20(%rsp),%xmm8
14310  DB  68,15,40,76,36,48                   ; movaps        0x30(%rsp),%xmm9
14311  DB  68,15,40,84,36,64                   ; movaps        0x40(%rsp),%xmm10
14312  DB  68,15,40,92,36,80                   ; movaps        0x50(%rsp),%xmm11
14313  DB  68,15,40,100,36,96                  ; movaps        0x60(%rsp),%xmm12
14314  DB  68,15,40,108,36,112                 ; movaps        0x70(%rsp),%xmm13
14315  DB  68,15,40,180,36,128,0,0,0           ; movaps        0x80(%rsp),%xmm14
14316  DB  68,15,40,188,36,144,0,0,0           ; movaps        0x90(%rsp),%xmm15
14317  DB  72,129,196,160,0,0,0                ; add           $0xa0,%rsp
14318  DB  91                                  ; pop           %rbx
14319  DB  95                                  ; pop           %rdi
14320  DB  94                                  ; pop           %rsi
14321  DB  65,92                               ; pop           %r12
14322  DB  65,93                               ; pop           %r13
14323  DB  65,94                               ; pop           %r14
14324  DB  65,95                               ; pop           %r15
14325  DB  195                                 ; retq
14326
14327PUBLIC _sk_just_return_sse2
14328_sk_just_return_sse2 LABEL PROC
14329  DB  195                                 ; retq
14330
14331PUBLIC _sk_seed_shader_sse2
14332_sk_seed_shader_sse2 LABEL PROC
14333  DB  72,173                              ; lods          %ds:(%rsi),%rax
14334  DB  102,15,110,199                      ; movd          %edi,%xmm0
14335  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
14336  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
14337  DB  15,40,21,129,68,0,0                 ; movaps        0x4481(%rip),%xmm2        # 4590 <_sk_callback_sse2+0xb3>
14338  DB  15,88,202                           ; addps         %xmm2,%xmm1
14339  DB  15,16,2                             ; movups        (%rdx),%xmm0
14340  DB  15,88,193                           ; addps         %xmm1,%xmm0
14341  DB  102,15,110,8                        ; movd          (%rax),%xmm1
14342  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
14343  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
14344  DB  15,88,202                           ; addps         %xmm2,%xmm1
14345  DB  72,173                              ; lods          %ds:(%rsi),%rax
14346  DB  15,40,21,112,68,0,0                 ; movaps        0x4470(%rip),%xmm2        # 45a0 <_sk_callback_sse2+0xc3>
14347  DB  15,87,219                           ; xorps         %xmm3,%xmm3
14348  DB  15,87,228                           ; xorps         %xmm4,%xmm4
14349  DB  15,87,237                           ; xorps         %xmm5,%xmm5
14350  DB  15,87,246                           ; xorps         %xmm6,%xmm6
14351  DB  15,87,255                           ; xorps         %xmm7,%xmm7
14352  DB  255,224                             ; jmpq          *%rax
14353
14354PUBLIC _sk_constant_color_sse2
14355_sk_constant_color_sse2 LABEL PROC
14356  DB  72,173                              ; lods          %ds:(%rsi),%rax
14357  DB  243,15,16,0                         ; movss         (%rax),%xmm0
14358  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
14359  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
14360  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
14361  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
14362  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14363  DB  243,15,16,88,12                     ; movss         0xc(%rax),%xmm3
14364  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
14365  DB  72,173                              ; lods          %ds:(%rsi),%rax
14366  DB  255,224                             ; jmpq          *%rax
14367
14368PUBLIC _sk_clear_sse2
14369_sk_clear_sse2 LABEL PROC
14370  DB  72,173                              ; lods          %ds:(%rsi),%rax
14371  DB  15,87,192                           ; xorps         %xmm0,%xmm0
14372  DB  15,87,201                           ; xorps         %xmm1,%xmm1
14373  DB  15,87,210                           ; xorps         %xmm2,%xmm2
14374  DB  15,87,219                           ; xorps         %xmm3,%xmm3
14375  DB  255,224                             ; jmpq          *%rax
14376
14377PUBLIC _sk_srcatop_sse2
14378_sk_srcatop_sse2 LABEL PROC
14379  DB  15,89,199                           ; mulps         %xmm7,%xmm0
14380  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14381  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14382  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14383  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14384  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14385  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
14386  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
14387  DB  15,89,207                           ; mulps         %xmm7,%xmm1
14388  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14389  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14390  DB  65,15,88,201                        ; addps         %xmm9,%xmm1
14391  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14392  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14393  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14394  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
14395  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14396  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14397  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
14398  DB  72,173                              ; lods          %ds:(%rsi),%rax
14399  DB  255,224                             ; jmpq          *%rax
14400
14401PUBLIC _sk_dstatop_sse2
14402_sk_dstatop_sse2 LABEL PROC
14403  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14404  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
14405  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14406  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
14407  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
14408  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
14409  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
14410  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
14411  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14412  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
14413  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
14414  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
14415  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14416  DB  68,15,89,198                        ; mulps         %xmm6,%xmm8
14417  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
14418  DB  65,15,88,208                        ; addps         %xmm8,%xmm2
14419  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
14420  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14421  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
14422  DB  72,173                              ; lods          %ds:(%rsi),%rax
14423  DB  255,224                             ; jmpq          *%rax
14424
14425PUBLIC _sk_srcin_sse2
14426_sk_srcin_sse2 LABEL PROC
14427  DB  15,89,199                           ; mulps         %xmm7,%xmm0
14428  DB  15,89,207                           ; mulps         %xmm7,%xmm1
14429  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14430  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14431  DB  72,173                              ; lods          %ds:(%rsi),%rax
14432  DB  255,224                             ; jmpq          *%rax
14433
14434PUBLIC _sk_dstin_sse2
14435_sk_dstin_sse2 LABEL PROC
14436  DB  15,40,195                           ; movaps        %xmm3,%xmm0
14437  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14438  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14439  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14440  DB  15,40,211                           ; movaps        %xmm3,%xmm2
14441  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14442  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14443  DB  72,173                              ; lods          %ds:(%rsi),%rax
14444  DB  255,224                             ; jmpq          *%rax
14445
14446PUBLIC _sk_srcout_sse2
14447_sk_srcout_sse2 LABEL PROC
14448  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14449  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14450  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14451  DB  68,15,92,199                        ; subps         %xmm7,%xmm8
14452  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
14453  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
14454  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
14455  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
14456  DB  72,173                              ; lods          %ds:(%rsi),%rax
14457  DB  255,224                             ; jmpq          *%rax
14458
14459PUBLIC _sk_dstout_sse2
14460_sk_dstout_sse2 LABEL PROC
14461  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14462  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14463  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14464  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14465  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
14466  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14467  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14468  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14469  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14470  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14471  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14472  DB  72,173                              ; lods          %ds:(%rsi),%rax
14473  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
14474  DB  255,224                             ; jmpq          *%rax
14475
14476PUBLIC _sk_srcover_sse2
14477_sk_srcover_sse2 LABEL PROC
14478  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14479  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14480  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14481  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14482  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14483  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
14484  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
14485  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14486  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14487  DB  65,15,88,201                        ; addps         %xmm9,%xmm1
14488  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14489  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14490  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
14491  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14492  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
14493  DB  72,173                              ; lods          %ds:(%rsi),%rax
14494  DB  255,224                             ; jmpq          *%rax
14495
14496PUBLIC _sk_dstover_sse2
14497_sk_dstover_sse2 LABEL PROC
14498  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14499  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14500  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14501  DB  68,15,92,199                        ; subps         %xmm7,%xmm8
14502  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
14503  DB  15,88,196                           ; addps         %xmm4,%xmm0
14504  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
14505  DB  15,88,205                           ; addps         %xmm5,%xmm1
14506  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
14507  DB  15,88,214                           ; addps         %xmm6,%xmm2
14508  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
14509  DB  15,88,223                           ; addps         %xmm7,%xmm3
14510  DB  72,173                              ; lods          %ds:(%rsi),%rax
14511  DB  255,224                             ; jmpq          *%rax
14512
14513PUBLIC _sk_modulate_sse2
14514_sk_modulate_sse2 LABEL PROC
14515  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14516  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14517  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14518  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14519  DB  72,173                              ; lods          %ds:(%rsi),%rax
14520  DB  255,224                             ; jmpq          *%rax
14521
14522PUBLIC _sk_multiply_sse2
14523_sk_multiply_sse2 LABEL PROC
14524  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14525  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
14526  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
14527  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
14528  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
14529  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
14530  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
14531  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
14532  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
14533  DB  68,15,89,220                        ; mulps         %xmm4,%xmm11
14534  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
14535  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14536  DB  65,15,88,195                        ; addps         %xmm11,%xmm0
14537  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
14538  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
14539  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
14540  DB  68,15,89,221                        ; mulps         %xmm5,%xmm11
14541  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
14542  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14543  DB  65,15,88,203                        ; addps         %xmm11,%xmm1
14544  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
14545  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
14546  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
14547  DB  68,15,89,222                        ; mulps         %xmm6,%xmm11
14548  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
14549  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14550  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
14551  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
14552  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14553  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
14554  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14555  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
14556  DB  72,173                              ; lods          %ds:(%rsi),%rax
14557  DB  255,224                             ; jmpq          *%rax
14558
14559PUBLIC _sk_plus__sse2
14560_sk_plus__sse2 LABEL PROC
14561  DB  15,88,196                           ; addps         %xmm4,%xmm0
14562  DB  15,88,205                           ; addps         %xmm5,%xmm1
14563  DB  15,88,214                           ; addps         %xmm6,%xmm2
14564  DB  15,88,223                           ; addps         %xmm7,%xmm3
14565  DB  72,173                              ; lods          %ds:(%rsi),%rax
14566  DB  255,224                             ; jmpq          *%rax
14567
14568PUBLIC _sk_screen_sse2
14569_sk_screen_sse2 LABEL PROC
14570  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
14571  DB  68,15,88,196                        ; addps         %xmm4,%xmm8
14572  DB  15,89,196                           ; mulps         %xmm4,%xmm0
14573  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
14574  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
14575  DB  68,15,88,205                        ; addps         %xmm5,%xmm9
14576  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14577  DB  68,15,92,201                        ; subps         %xmm1,%xmm9
14578  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
14579  DB  68,15,88,214                        ; addps         %xmm6,%xmm10
14580  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14581  DB  68,15,92,210                        ; subps         %xmm2,%xmm10
14582  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
14583  DB  68,15,88,223                        ; addps         %xmm7,%xmm11
14584  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14585  DB  68,15,92,219                        ; subps         %xmm3,%xmm11
14586  DB  72,173                              ; lods          %ds:(%rsi),%rax
14587  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
14588  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
14589  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
14590  DB  65,15,40,219                        ; movaps        %xmm11,%xmm3
14591  DB  255,224                             ; jmpq          *%rax
14592
14593PUBLIC _sk_xor__sse2
14594_sk_xor__sse2 LABEL PROC
14595  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14596  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14597  DB  102,15,110,216                      ; movd          %eax,%xmm3
14598  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
14599  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14600  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
14601  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
14602  DB  65,15,92,216                        ; subps         %xmm8,%xmm3
14603  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
14604  DB  68,15,89,212                        ; mulps         %xmm4,%xmm10
14605  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
14606  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
14607  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
14608  DB  68,15,89,213                        ; mulps         %xmm5,%xmm10
14609  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
14610  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
14611  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
14612  DB  68,15,89,214                        ; mulps         %xmm6,%xmm10
14613  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
14614  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
14615  DB  15,89,223                           ; mulps         %xmm7,%xmm3
14616  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
14617  DB  72,173                              ; lods          %ds:(%rsi),%rax
14618  DB  255,224                             ; jmpq          *%rax
14619
14620PUBLIC _sk_darken_sse2
14621_sk_darken_sse2 LABEL PROC
14622  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14623  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
14624  DB  15,88,196                           ; addps         %xmm4,%xmm0
14625  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
14626  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14627  DB  15,89,204                           ; mulps         %xmm4,%xmm1
14628  DB  68,15,95,201                        ; maxps         %xmm1,%xmm9
14629  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
14630  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14631  DB  15,88,205                           ; addps         %xmm5,%xmm1
14632  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14633  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14634  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14635  DB  69,15,95,193                        ; maxps         %xmm9,%xmm8
14636  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
14637  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
14638  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14639  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14640  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14641  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14642  DB  65,15,95,209                        ; maxps         %xmm9,%xmm2
14643  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
14644  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14645  DB  102,15,110,208                      ; movd          %eax,%xmm2
14646  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14647  DB  15,92,211                           ; subps         %xmm3,%xmm2
14648  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14649  DB  15,88,218                           ; addps         %xmm2,%xmm3
14650  DB  72,173                              ; lods          %ds:(%rsi),%rax
14651  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14652  DB  255,224                             ; jmpq          *%rax
14653
14654PUBLIC _sk_lighten_sse2
14655_sk_lighten_sse2 LABEL PROC
14656  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14657  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
14658  DB  15,88,196                           ; addps         %xmm4,%xmm0
14659  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
14660  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14661  DB  15,89,204                           ; mulps         %xmm4,%xmm1
14662  DB  68,15,93,201                        ; minps         %xmm1,%xmm9
14663  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
14664  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14665  DB  15,88,205                           ; addps         %xmm5,%xmm1
14666  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14667  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14668  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14669  DB  69,15,93,193                        ; minps         %xmm9,%xmm8
14670  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
14671  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
14672  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14673  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14674  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14675  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14676  DB  65,15,93,209                        ; minps         %xmm9,%xmm2
14677  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
14678  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14679  DB  102,15,110,208                      ; movd          %eax,%xmm2
14680  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14681  DB  15,92,211                           ; subps         %xmm3,%xmm2
14682  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14683  DB  15,88,218                           ; addps         %xmm2,%xmm3
14684  DB  72,173                              ; lods          %ds:(%rsi),%rax
14685  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14686  DB  255,224                             ; jmpq          *%rax
14687
14688PUBLIC _sk_difference_sse2
14689_sk_difference_sse2 LABEL PROC
14690  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14691  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
14692  DB  15,88,196                           ; addps         %xmm4,%xmm0
14693  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
14694  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14695  DB  15,89,204                           ; mulps         %xmm4,%xmm1
14696  DB  68,15,93,201                        ; minps         %xmm1,%xmm9
14697  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
14698  DB  65,15,92,193                        ; subps         %xmm9,%xmm0
14699  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14700  DB  15,88,205                           ; addps         %xmm5,%xmm1
14701  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
14702  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14703  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14704  DB  69,15,93,193                        ; minps         %xmm9,%xmm8
14705  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
14706  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
14707  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
14708  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14709  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14710  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14711  DB  68,15,89,206                        ; mulps         %xmm6,%xmm9
14712  DB  65,15,93,209                        ; minps         %xmm9,%xmm2
14713  DB  15,88,210                           ; addps         %xmm2,%xmm2
14714  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
14715  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14716  DB  102,15,110,208                      ; movd          %eax,%xmm2
14717  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14718  DB  15,92,211                           ; subps         %xmm3,%xmm2
14719  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14720  DB  15,88,218                           ; addps         %xmm2,%xmm3
14721  DB  72,173                              ; lods          %ds:(%rsi),%rax
14722  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14723  DB  255,224                             ; jmpq          *%rax
14724
14725PUBLIC _sk_exclusion_sse2
14726_sk_exclusion_sse2 LABEL PROC
14727  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14728  DB  15,40,200                           ; movaps        %xmm0,%xmm1
14729  DB  15,88,196                           ; addps         %xmm4,%xmm0
14730  DB  15,89,204                           ; mulps         %xmm4,%xmm1
14731  DB  15,88,201                           ; addps         %xmm1,%xmm1
14732  DB  15,92,193                           ; subps         %xmm1,%xmm0
14733  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
14734  DB  15,88,205                           ; addps         %xmm5,%xmm1
14735  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
14736  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
14737  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
14738  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
14739  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14740  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14741  DB  15,88,210                           ; addps         %xmm2,%xmm2
14742  DB  68,15,92,194                        ; subps         %xmm2,%xmm8
14743  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14744  DB  102,15,110,208                      ; movd          %eax,%xmm2
14745  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
14746  DB  15,92,211                           ; subps         %xmm3,%xmm2
14747  DB  15,89,215                           ; mulps         %xmm7,%xmm2
14748  DB  15,88,218                           ; addps         %xmm2,%xmm3
14749  DB  72,173                              ; lods          %ds:(%rsi),%rax
14750  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14751  DB  255,224                             ; jmpq          *%rax
14752
14753PUBLIC _sk_colorburn_sse2
14754_sk_colorburn_sse2 LABEL PROC
14755  DB  68,15,40,193                        ; movaps        %xmm1,%xmm8
14756  DB  68,15,40,224                        ; movaps        %xmm0,%xmm12
14757  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14758  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
14759  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
14760  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
14761  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
14762  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
14763  DB  65,15,89,196                        ; mulps         %xmm12,%xmm0
14764  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
14765  DB  15,40,207                           ; movaps        %xmm7,%xmm1
14766  DB  15,92,204                           ; subps         %xmm4,%xmm1
14767  DB  15,89,203                           ; mulps         %xmm3,%xmm1
14768  DB  65,15,94,204                        ; divps         %xmm12,%xmm1
14769  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14770  DB  68,15,93,233                        ; minps         %xmm1,%xmm13
14771  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
14772  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
14773  DB  65,15,40,204                        ; movaps        %xmm12,%xmm1
14774  DB  65,15,194,202,0                     ; cmpeqps       %xmm10,%xmm1
14775  DB  68,15,92,203                        ; subps         %xmm3,%xmm9
14776  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
14777  DB  68,15,88,240                        ; addps         %xmm0,%xmm14
14778  DB  68,15,84,225                        ; andps         %xmm1,%xmm12
14779  DB  65,15,85,206                        ; andnps        %xmm14,%xmm1
14780  DB  69,15,40,233                        ; movaps        %xmm9,%xmm13
14781  DB  68,15,89,236                        ; mulps         %xmm4,%xmm13
14782  DB  15,88,196                           ; addps         %xmm4,%xmm0
14783  DB  65,15,86,204                        ; orps          %xmm12,%xmm1
14784  DB  68,15,40,228                        ; movaps        %xmm4,%xmm12
14785  DB  68,15,194,231,0                     ; cmpeqps       %xmm7,%xmm12
14786  DB  65,15,88,205                        ; addps         %xmm13,%xmm1
14787  DB  65,15,84,196                        ; andps         %xmm12,%xmm0
14788  DB  68,15,85,225                        ; andnps        %xmm1,%xmm12
14789  DB  65,15,86,196                        ; orps          %xmm12,%xmm0
14790  DB  65,15,40,203                        ; movaps        %xmm11,%xmm1
14791  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
14792  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
14793  DB  68,15,92,229                        ; subps         %xmm5,%xmm12
14794  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
14795  DB  69,15,94,224                        ; divps         %xmm8,%xmm12
14796  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14797  DB  69,15,93,236                        ; minps         %xmm12,%xmm13
14798  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
14799  DB  69,15,92,229                        ; subps         %xmm13,%xmm12
14800  DB  69,15,40,232                        ; movaps        %xmm8,%xmm13
14801  DB  69,15,194,234,0                     ; cmpeqps       %xmm10,%xmm13
14802  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
14803  DB  68,15,88,225                        ; addps         %xmm1,%xmm12
14804  DB  69,15,84,197                        ; andps         %xmm13,%xmm8
14805  DB  69,15,85,236                        ; andnps        %xmm12,%xmm13
14806  DB  69,15,86,232                        ; orps          %xmm8,%xmm13
14807  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
14808  DB  68,15,89,197                        ; mulps         %xmm5,%xmm8
14809  DB  15,88,205                           ; addps         %xmm5,%xmm1
14810  DB  69,15,88,232                        ; addps         %xmm8,%xmm13
14811  DB  68,15,40,197                        ; movaps        %xmm5,%xmm8
14812  DB  68,15,194,199,0                     ; cmpeqps       %xmm7,%xmm8
14813  DB  65,15,84,200                        ; andps         %xmm8,%xmm1
14814  DB  69,15,85,197                        ; andnps        %xmm13,%xmm8
14815  DB  65,15,86,200                        ; orps          %xmm8,%xmm1
14816  DB  68,15,40,199                        ; movaps        %xmm7,%xmm8
14817  DB  68,15,92,198                        ; subps         %xmm6,%xmm8
14818  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
14819  DB  68,15,94,194                        ; divps         %xmm2,%xmm8
14820  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
14821  DB  69,15,93,224                        ; minps         %xmm8,%xmm12
14822  DB  68,15,40,199                        ; movaps        %xmm7,%xmm8
14823  DB  69,15,92,196                        ; subps         %xmm12,%xmm8
14824  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
14825  DB  68,15,194,210,0                     ; cmpeqps       %xmm2,%xmm10
14826  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
14827  DB  69,15,88,195                        ; addps         %xmm11,%xmm8
14828  DB  65,15,84,210                        ; andps         %xmm10,%xmm2
14829  DB  69,15,85,208                        ; andnps        %xmm8,%xmm10
14830  DB  69,15,40,195                        ; movaps        %xmm11,%xmm8
14831  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
14832  DB  68,15,86,210                        ; orps          %xmm2,%xmm10
14833  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
14834  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14835  DB  68,15,88,210                        ; addps         %xmm2,%xmm10
14836  DB  15,40,214                           ; movaps        %xmm6,%xmm2
14837  DB  15,194,215,0                        ; cmpeqps       %xmm7,%xmm2
14838  DB  68,15,84,194                        ; andps         %xmm2,%xmm8
14839  DB  65,15,85,210                        ; andnps        %xmm10,%xmm2
14840  DB  68,15,86,194                        ; orps          %xmm2,%xmm8
14841  DB  68,15,89,207                        ; mulps         %xmm7,%xmm9
14842  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
14843  DB  72,173                              ; lods          %ds:(%rsi),%rax
14844  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14845  DB  255,224                             ; jmpq          *%rax
14846
14847PUBLIC _sk_colordodge_sse2
14848_sk_colordodge_sse2 LABEL PROC
14849  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
14850  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14851  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
14852  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
14853  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
14854  DB  68,15,92,223                        ; subps         %xmm7,%xmm11
14855  DB  65,15,40,195                        ; movaps        %xmm11,%xmm0
14856  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
14857  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14858  DB  68,15,89,196                        ; mulps         %xmm4,%xmm8
14859  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
14860  DB  69,15,92,225                        ; subps         %xmm9,%xmm12
14861  DB  69,15,94,196                        ; divps         %xmm12,%xmm8
14862  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
14863  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14864  DB  69,15,93,232                        ; minps         %xmm8,%xmm13
14865  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
14866  DB  68,15,194,243,0                     ; cmpeqps       %xmm3,%xmm14
14867  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
14868  DB  68,15,88,232                        ; addps         %xmm0,%xmm13
14869  DB  69,15,84,206                        ; andps         %xmm14,%xmm9
14870  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
14871  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
14872  DB  68,15,92,211                        ; subps         %xmm3,%xmm10
14873  DB  69,15,86,241                        ; orps          %xmm9,%xmm14
14874  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
14875  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
14876  DB  15,88,196                           ; addps         %xmm4,%xmm0
14877  DB  69,15,88,241                        ; addps         %xmm9,%xmm14
14878  DB  68,15,40,204                        ; movaps        %xmm4,%xmm9
14879  DB  69,15,194,200,0                     ; cmpeqps       %xmm8,%xmm9
14880  DB  65,15,84,193                        ; andps         %xmm9,%xmm0
14881  DB  69,15,85,206                        ; andnps        %xmm14,%xmm9
14882  DB  65,15,86,193                        ; orps          %xmm9,%xmm0
14883  DB  68,15,40,235                        ; movaps        %xmm3,%xmm13
14884  DB  68,15,89,237                        ; mulps         %xmm5,%xmm13
14885  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
14886  DB  68,15,92,201                        ; subps         %xmm1,%xmm9
14887  DB  69,15,94,233                        ; divps         %xmm9,%xmm13
14888  DB  69,15,40,203                        ; movaps        %xmm11,%xmm9
14889  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
14890  DB  69,15,93,229                        ; minps         %xmm13,%xmm12
14891  DB  68,15,40,233                        ; movaps        %xmm1,%xmm13
14892  DB  68,15,194,235,0                     ; cmpeqps       %xmm3,%xmm13
14893  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
14894  DB  69,15,88,225                        ; addps         %xmm9,%xmm12
14895  DB  65,15,84,205                        ; andps         %xmm13,%xmm1
14896  DB  69,15,85,236                        ; andnps        %xmm12,%xmm13
14897  DB  68,15,86,233                        ; orps          %xmm1,%xmm13
14898  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
14899  DB  15,89,205                           ; mulps         %xmm5,%xmm1
14900  DB  68,15,88,205                        ; addps         %xmm5,%xmm9
14901  DB  68,15,88,233                        ; addps         %xmm1,%xmm13
14902  DB  15,40,205                           ; movaps        %xmm5,%xmm1
14903  DB  65,15,194,200,0                     ; cmpeqps       %xmm8,%xmm1
14904  DB  68,15,84,201                        ; andps         %xmm1,%xmm9
14905  DB  65,15,85,205                        ; andnps        %xmm13,%xmm1
14906  DB  68,15,86,201                        ; orps          %xmm1,%xmm9
14907  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
14908  DB  68,15,89,230                        ; mulps         %xmm6,%xmm12
14909  DB  15,40,203                           ; movaps        %xmm3,%xmm1
14910  DB  15,92,202                           ; subps         %xmm2,%xmm1
14911  DB  68,15,94,225                        ; divps         %xmm1,%xmm12
14912  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14913  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
14914  DB  69,15,93,236                        ; minps         %xmm12,%xmm13
14915  DB  15,40,202                           ; movaps        %xmm2,%xmm1
14916  DB  15,194,203,0                        ; cmpeqps       %xmm3,%xmm1
14917  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
14918  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
14919  DB  15,84,209                           ; andps         %xmm1,%xmm2
14920  DB  65,15,85,205                        ; andnps        %xmm13,%xmm1
14921  DB  15,86,202                           ; orps          %xmm2,%xmm1
14922  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
14923  DB  15,89,214                           ; mulps         %xmm6,%xmm2
14924  DB  15,88,202                           ; addps         %xmm2,%xmm1
14925  DB  68,15,194,198,0                     ; cmpeqps       %xmm6,%xmm8
14926  DB  68,15,88,222                        ; addps         %xmm6,%xmm11
14927  DB  69,15,84,216                        ; andps         %xmm8,%xmm11
14928  DB  68,15,85,193                        ; andnps        %xmm1,%xmm8
14929  DB  69,15,86,195                        ; orps          %xmm11,%xmm8
14930  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
14931  DB  65,15,88,218                        ; addps         %xmm10,%xmm3
14932  DB  72,173                              ; lods          %ds:(%rsi),%rax
14933  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
14934  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
14935  DB  255,224                             ; jmpq          *%rax
14936
14937PUBLIC _sk_hardlight_sse2
14938_sk_hardlight_sse2 LABEL PROC
14939  DB  72,131,236,24                       ; sub           $0x18,%rsp
14940  DB  15,41,52,36                         ; movaps        %xmm6,(%rsp)
14941  DB  15,40,245                           ; movaps        %xmm5,%xmm6
14942  DB  15,40,236                           ; movaps        %xmm4,%xmm5
14943  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
14944  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
14945  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
14946  DB  69,15,40,211                        ; movaps        %xmm11,%xmm10
14947  DB  68,15,92,215                        ; subps         %xmm7,%xmm10
14948  DB  69,15,40,194                        ; movaps        %xmm10,%xmm8
14949  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
14950  DB  68,15,92,219                        ; subps         %xmm3,%xmm11
14951  DB  69,15,40,203                        ; movaps        %xmm11,%xmm9
14952  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
14953  DB  69,15,88,200                        ; addps         %xmm8,%xmm9
14954  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
14955  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
14956  DB  15,40,227                           ; movaps        %xmm3,%xmm4
14957  DB  15,89,231                           ; mulps         %xmm7,%xmm4
14958  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
14959  DB  68,15,40,247                        ; movaps        %xmm7,%xmm14
14960  DB  68,15,40,255                        ; movaps        %xmm7,%xmm15
14961  DB  68,15,92,253                        ; subps         %xmm5,%xmm15
14962  DB  69,15,89,248                        ; mulps         %xmm8,%xmm15
14963  DB  69,15,88,255                        ; addps         %xmm15,%xmm15
14964  DB  68,15,40,228                        ; movaps        %xmm4,%xmm12
14965  DB  69,15,92,231                        ; subps         %xmm15,%xmm12
14966  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
14967  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
14968  DB  68,15,194,195,2                     ; cmpleps       %xmm3,%xmm8
14969  DB  15,89,197                           ; mulps         %xmm5,%xmm0
14970  DB  15,88,192                           ; addps         %xmm0,%xmm0
14971  DB  65,15,84,192                        ; andps         %xmm8,%xmm0
14972  DB  69,15,85,196                        ; andnps        %xmm12,%xmm8
14973  DB  68,15,86,192                        ; orps          %xmm0,%xmm8
14974  DB  69,15,40,251                        ; movaps        %xmm11,%xmm15
14975  DB  69,15,40,227                        ; movaps        %xmm11,%xmm12
14976  DB  68,15,89,223                        ; mulps         %xmm7,%xmm11
14977  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
14978  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
14979  DB  15,89,193                           ; mulps         %xmm1,%xmm0
14980  DB  68,15,89,254                        ; mulps         %xmm6,%xmm15
14981  DB  68,15,88,248                        ; addps         %xmm0,%xmm15
14982  DB  15,40,195                           ; movaps        %xmm3,%xmm0
14983  DB  15,92,193                           ; subps         %xmm1,%xmm0
14984  DB  68,15,92,238                        ; subps         %xmm6,%xmm13
14985  DB  68,15,89,232                        ; mulps         %xmm0,%xmm13
14986  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
14987  DB  15,40,196                           ; movaps        %xmm4,%xmm0
14988  DB  65,15,92,197                        ; subps         %xmm13,%xmm0
14989  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
14990  DB  69,15,88,201                        ; addps         %xmm9,%xmm9
14991  DB  68,15,194,203,2                     ; cmpleps       %xmm3,%xmm9
14992  DB  15,89,206                           ; mulps         %xmm6,%xmm1
14993  DB  15,88,201                           ; addps         %xmm1,%xmm1
14994  DB  65,15,84,201                        ; andps         %xmm9,%xmm1
14995  DB  68,15,85,200                        ; andnps        %xmm0,%xmm9
14996  DB  68,15,86,201                        ; orps          %xmm1,%xmm9
14997  DB  69,15,88,207                        ; addps         %xmm15,%xmm9
14998  DB  68,15,89,210                        ; mulps         %xmm2,%xmm10
14999  DB  68,15,40,44,36                      ; movaps        (%rsp),%xmm13
15000  DB  69,15,89,229                        ; mulps         %xmm13,%xmm12
15001  DB  69,15,88,226                        ; addps         %xmm10,%xmm12
15002  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
15003  DB  69,15,88,210                        ; addps         %xmm10,%xmm10
15004  DB  68,15,194,211,2                     ; cmpleps       %xmm3,%xmm10
15005  DB  15,40,195                           ; movaps        %xmm3,%xmm0
15006  DB  15,92,194                           ; subps         %xmm2,%xmm0
15007  DB  65,15,89,213                        ; mulps         %xmm13,%xmm2
15008  DB  15,88,210                           ; addps         %xmm2,%xmm2
15009  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
15010  DB  68,15,89,240                        ; mulps         %xmm0,%xmm14
15011  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
15012  DB  65,15,92,230                        ; subps         %xmm14,%xmm4
15013  DB  65,15,84,210                        ; andps         %xmm10,%xmm2
15014  DB  68,15,85,212                        ; andnps        %xmm4,%xmm10
15015  DB  68,15,86,210                        ; orps          %xmm2,%xmm10
15016  DB  69,15,88,212                        ; addps         %xmm12,%xmm10
15017  DB  65,15,88,219                        ; addps         %xmm11,%xmm3
15018  DB  72,173                              ; lods          %ds:(%rsi),%rax
15019  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
15020  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
15021  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
15022  DB  15,40,229                           ; movaps        %xmm5,%xmm4
15023  DB  15,40,238                           ; movaps        %xmm6,%xmm5
15024  DB  65,15,40,245                        ; movaps        %xmm13,%xmm6
15025  DB  72,131,196,24                       ; add           $0x18,%rsp
15026  DB  255,224                             ; jmpq          *%rax
15027
15028PUBLIC _sk_overlay_sse2
15029_sk_overlay_sse2 LABEL PROC
15030  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15031  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15032  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15033  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
15034  DB  68,15,92,207                        ; subps         %xmm7,%xmm9
15035  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
15036  DB  68,15,89,208                        ; mulps         %xmm0,%xmm10
15037  DB  68,15,92,195                        ; subps         %xmm3,%xmm8
15038  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
15039  DB  68,15,89,220                        ; mulps         %xmm4,%xmm11
15040  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
15041  DB  68,15,40,227                        ; movaps        %xmm3,%xmm12
15042  DB  68,15,92,224                        ; subps         %xmm0,%xmm12
15043  DB  15,89,196                           ; mulps         %xmm4,%xmm0
15044  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
15045  DB  68,15,92,236                        ; subps         %xmm4,%xmm13
15046  DB  68,15,40,244                        ; movaps        %xmm4,%xmm14
15047  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
15048  DB  68,15,194,247,2                     ; cmpleps       %xmm7,%xmm14
15049  DB  15,88,192                           ; addps         %xmm0,%xmm0
15050  DB  68,15,40,211                        ; movaps        %xmm3,%xmm10
15051  DB  68,15,89,215                        ; mulps         %xmm7,%xmm10
15052  DB  69,15,89,236                        ; mulps         %xmm12,%xmm13
15053  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
15054  DB  69,15,40,226                        ; movaps        %xmm10,%xmm12
15055  DB  69,15,92,229                        ; subps         %xmm13,%xmm12
15056  DB  65,15,84,198                        ; andps         %xmm14,%xmm0
15057  DB  69,15,85,244                        ; andnps        %xmm12,%xmm14
15058  DB  65,15,86,198                        ; orps          %xmm14,%xmm0
15059  DB  65,15,88,195                        ; addps         %xmm11,%xmm0
15060  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
15061  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
15062  DB  69,15,40,224                        ; movaps        %xmm8,%xmm12
15063  DB  68,15,89,229                        ; mulps         %xmm5,%xmm12
15064  DB  69,15,88,227                        ; addps         %xmm11,%xmm12
15065  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
15066  DB  68,15,92,217                        ; subps         %xmm1,%xmm11
15067  DB  15,89,205                           ; mulps         %xmm5,%xmm1
15068  DB  68,15,40,239                        ; movaps        %xmm7,%xmm13
15069  DB  68,15,92,237                        ; subps         %xmm5,%xmm13
15070  DB  68,15,40,245                        ; movaps        %xmm5,%xmm14
15071  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
15072  DB  68,15,194,247,2                     ; cmpleps       %xmm7,%xmm14
15073  DB  15,88,201                           ; addps         %xmm1,%xmm1
15074  DB  69,15,89,235                        ; mulps         %xmm11,%xmm13
15075  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
15076  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
15077  DB  69,15,92,221                        ; subps         %xmm13,%xmm11
15078  DB  65,15,84,206                        ; andps         %xmm14,%xmm1
15079  DB  69,15,85,243                        ; andnps        %xmm11,%xmm14
15080  DB  65,15,86,206                        ; orps          %xmm14,%xmm1
15081  DB  65,15,88,204                        ; addps         %xmm12,%xmm1
15082  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
15083  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
15084  DB  68,15,89,222                        ; mulps         %xmm6,%xmm11
15085  DB  69,15,88,217                        ; addps         %xmm9,%xmm11
15086  DB  68,15,40,203                        ; movaps        %xmm3,%xmm9
15087  DB  68,15,92,202                        ; subps         %xmm2,%xmm9
15088  DB  15,89,214                           ; mulps         %xmm6,%xmm2
15089  DB  68,15,40,231                        ; movaps        %xmm7,%xmm12
15090  DB  68,15,92,230                        ; subps         %xmm6,%xmm12
15091  DB  68,15,40,238                        ; movaps        %xmm6,%xmm13
15092  DB  69,15,88,237                        ; addps         %xmm13,%xmm13
15093  DB  68,15,194,239,2                     ; cmpleps       %xmm7,%xmm13
15094  DB  15,88,210                           ; addps         %xmm2,%xmm2
15095  DB  69,15,89,225                        ; mulps         %xmm9,%xmm12
15096  DB  69,15,88,228                        ; addps         %xmm12,%xmm12
15097  DB  69,15,92,212                        ; subps         %xmm12,%xmm10
15098  DB  65,15,84,213                        ; andps         %xmm13,%xmm2
15099  DB  69,15,85,234                        ; andnps        %xmm10,%xmm13
15100  DB  65,15,86,213                        ; orps          %xmm13,%xmm2
15101  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
15102  DB  68,15,89,199                        ; mulps         %xmm7,%xmm8
15103  DB  65,15,88,216                        ; addps         %xmm8,%xmm3
15104  DB  72,173                              ; lods          %ds:(%rsi),%rax
15105  DB  255,224                             ; jmpq          *%rax
15106
15107PUBLIC _sk_softlight_sse2
15108_sk_softlight_sse2 LABEL PROC
15109  DB  72,131,236,56                       ; sub           $0x38,%rsp
15110  DB  15,41,84,36,32                      ; movaps        %xmm2,0x20(%rsp)
15111  DB  15,40,209                           ; movaps        %xmm1,%xmm2
15112  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
15113  DB  69,15,87,228                        ; xorps         %xmm12,%xmm12
15114  DB  68,15,194,231,1                     ; cmpltps       %xmm7,%xmm12
15115  DB  68,15,40,212                        ; movaps        %xmm4,%xmm10
15116  DB  68,15,94,215                        ; divps         %xmm7,%xmm10
15117  DB  69,15,84,212                        ; andps         %xmm12,%xmm10
15118  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15119  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15120  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15121  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15122  DB  69,15,92,242                        ; subps         %xmm10,%xmm14
15123  DB  69,15,40,218                        ; movaps        %xmm10,%xmm11
15124  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
15125  DB  65,15,82,194                        ; rsqrtps       %xmm10,%xmm0
15126  DB  68,15,83,248                        ; rcpps         %xmm0,%xmm15
15127  DB  69,15,92,250                        ; subps         %xmm10,%xmm15
15128  DB  69,15,88,210                        ; addps         %xmm10,%xmm10
15129  DB  69,15,88,210                        ; addps         %xmm10,%xmm10
15130  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
15131  DB  15,89,192                           ; mulps         %xmm0,%xmm0
15132  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
15133  DB  69,15,92,217                        ; subps         %xmm9,%xmm11
15134  DB  68,15,89,216                        ; mulps         %xmm0,%xmm11
15135  DB  184,0,0,224,64                      ; mov           $0x40e00000,%eax
15136  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
15137  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
15138  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
15139  DB  69,15,88,235                        ; addps         %xmm11,%xmm13
15140  DB  68,15,40,219                        ; movaps        %xmm3,%xmm11
15141  DB  15,40,204                           ; movaps        %xmm4,%xmm1
15142  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
15143  DB  15,88,228                           ; addps         %xmm4,%xmm4
15144  DB  15,88,228                           ; addps         %xmm4,%xmm4
15145  DB  15,194,231,2                        ; cmpleps       %xmm7,%xmm4
15146  DB  68,15,84,236                        ; andps         %xmm4,%xmm13
15147  DB  65,15,85,231                        ; andnps        %xmm15,%xmm4
15148  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
15149  DB  15,88,192                           ; addps         %xmm0,%xmm0
15150  DB  65,15,86,229                        ; orps          %xmm13,%xmm4
15151  DB  68,15,40,232                        ; movaps        %xmm0,%xmm13
15152  DB  68,15,92,235                        ; subps         %xmm3,%xmm13
15153  DB  69,15,89,245                        ; mulps         %xmm13,%xmm14
15154  DB  68,15,89,239                        ; mulps         %xmm7,%xmm13
15155  DB  65,15,89,229                        ; mulps         %xmm13,%xmm4
15156  DB  65,15,88,227                        ; addps         %xmm11,%xmm4
15157  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
15158  DB  68,15,92,219                        ; subps         %xmm3,%xmm11
15159  DB  69,15,40,251                        ; movaps        %xmm11,%xmm15
15160  DB  15,41,76,36,16                      ; movaps        %xmm1,0x10(%rsp)
15161  DB  68,15,89,249                        ; mulps         %xmm1,%xmm15
15162  DB  69,15,40,233                        ; movaps        %xmm9,%xmm13
15163  DB  68,15,92,239                        ; subps         %xmm7,%xmm13
15164  DB  69,15,89,197                        ; mulps         %xmm13,%xmm8
15165  DB  69,15,88,199                        ; addps         %xmm15,%xmm8
15166  DB  68,15,88,243                        ; addps         %xmm3,%xmm14
15167  DB  68,15,89,241                        ; mulps         %xmm1,%xmm14
15168  DB  15,194,195,2                        ; cmpleps       %xmm3,%xmm0
15169  DB  68,15,84,240                        ; andps         %xmm0,%xmm14
15170  DB  15,85,196                           ; andnps        %xmm4,%xmm0
15171  DB  65,15,86,198                        ; orps          %xmm14,%xmm0
15172  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
15173  DB  15,41,44,36                         ; movaps        %xmm5,(%rsp)
15174  DB  68,15,40,197                        ; movaps        %xmm5,%xmm8
15175  DB  68,15,94,199                        ; divps         %xmm7,%xmm8
15176  DB  69,15,84,196                        ; andps         %xmm12,%xmm8
15177  DB  69,15,40,240                        ; movaps        %xmm8,%xmm14
15178  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
15179  DB  69,15,88,246                        ; addps         %xmm14,%xmm14
15180  DB  65,15,40,230                        ; movaps        %xmm14,%xmm4
15181  DB  15,89,228                           ; mulps         %xmm4,%xmm4
15182  DB  65,15,88,230                        ; addps         %xmm14,%xmm4
15183  DB  69,15,40,248                        ; movaps        %xmm8,%xmm15
15184  DB  69,15,92,249                        ; subps         %xmm9,%xmm15
15185  DB  68,15,89,252                        ; mulps         %xmm4,%xmm15
15186  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15187  DB  69,15,92,240                        ; subps         %xmm8,%xmm14
15188  DB  65,15,82,224                        ; rsqrtps       %xmm8,%xmm4
15189  DB  15,83,228                           ; rcpps         %xmm4,%xmm4
15190  DB  65,15,92,224                        ; subps         %xmm8,%xmm4
15191  DB  69,15,89,194                        ; mulps         %xmm10,%xmm8
15192  DB  69,15,88,199                        ; addps         %xmm15,%xmm8
15193  DB  68,15,40,253                        ; movaps        %xmm5,%xmm15
15194  DB  69,15,88,255                        ; addps         %xmm15,%xmm15
15195  DB  69,15,88,255                        ; addps         %xmm15,%xmm15
15196  DB  68,15,194,255,2                     ; cmpleps       %xmm7,%xmm15
15197  DB  69,15,84,199                        ; andps         %xmm15,%xmm8
15198  DB  68,15,85,252                        ; andnps        %xmm4,%xmm15
15199  DB  69,15,86,248                        ; orps          %xmm8,%xmm15
15200  DB  68,15,40,194                        ; movaps        %xmm2,%xmm8
15201  DB  69,15,88,192                        ; addps         %xmm8,%xmm8
15202  DB  65,15,40,224                        ; movaps        %xmm8,%xmm4
15203  DB  15,92,227                           ; subps         %xmm3,%xmm4
15204  DB  68,15,89,244                        ; mulps         %xmm4,%xmm14
15205  DB  15,89,231                           ; mulps         %xmm7,%xmm4
15206  DB  68,15,89,252                        ; mulps         %xmm4,%xmm15
15207  DB  15,40,227                           ; movaps        %xmm3,%xmm4
15208  DB  15,89,229                           ; mulps         %xmm5,%xmm4
15209  DB  68,15,88,252                        ; addps         %xmm4,%xmm15
15210  DB  65,15,40,227                        ; movaps        %xmm11,%xmm4
15211  DB  15,89,229                           ; mulps         %xmm5,%xmm4
15212  DB  65,15,89,213                        ; mulps         %xmm13,%xmm2
15213  DB  15,88,212                           ; addps         %xmm4,%xmm2
15214  DB  68,15,88,243                        ; addps         %xmm3,%xmm14
15215  DB  68,15,89,245                        ; mulps         %xmm5,%xmm14
15216  DB  68,15,194,195,2                     ; cmpleps       %xmm3,%xmm8
15217  DB  69,15,84,240                        ; andps         %xmm8,%xmm14
15218  DB  69,15,85,199                        ; andnps        %xmm15,%xmm8
15219  DB  69,15,86,198                        ; orps          %xmm14,%xmm8
15220  DB  68,15,88,194                        ; addps         %xmm2,%xmm8
15221  DB  68,15,40,246                        ; movaps        %xmm6,%xmm14
15222  DB  65,15,40,206                        ; movaps        %xmm14,%xmm1
15223  DB  15,94,207                           ; divps         %xmm7,%xmm1
15224  DB  65,15,84,204                        ; andps         %xmm12,%xmm1
15225  DB  15,40,225                           ; movaps        %xmm1,%xmm4
15226  DB  65,15,92,225                        ; subps         %xmm9,%xmm4
15227  DB  68,15,92,201                        ; subps         %xmm1,%xmm9
15228  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
15229  DB  15,82,241                           ; rsqrtps       %xmm1,%xmm6
15230  DB  15,83,246                           ; rcpps         %xmm6,%xmm6
15231  DB  15,92,241                           ; subps         %xmm1,%xmm6
15232  DB  15,88,201                           ; addps         %xmm1,%xmm1
15233  DB  15,88,201                           ; addps         %xmm1,%xmm1
15234  DB  15,40,233                           ; movaps        %xmm1,%xmm5
15235  DB  15,89,237                           ; mulps         %xmm5,%xmm5
15236  DB  15,88,233                           ; addps         %xmm1,%xmm5
15237  DB  15,89,236                           ; mulps         %xmm4,%xmm5
15238  DB  68,15,88,213                        ; addps         %xmm5,%xmm10
15239  DB  65,15,40,238                        ; movaps        %xmm14,%xmm5
15240  DB  15,40,205                           ; movaps        %xmm5,%xmm1
15241  DB  15,88,201                           ; addps         %xmm1,%xmm1
15242  DB  15,88,201                           ; addps         %xmm1,%xmm1
15243  DB  15,194,207,2                        ; cmpleps       %xmm7,%xmm1
15244  DB  68,15,84,209                        ; andps         %xmm1,%xmm10
15245  DB  15,85,206                           ; andnps        %xmm6,%xmm1
15246  DB  15,40,84,36,32                      ; movaps        0x20(%rsp),%xmm2
15247  DB  68,15,89,234                        ; mulps         %xmm2,%xmm13
15248  DB  15,88,210                           ; addps         %xmm2,%xmm2
15249  DB  65,15,86,202                        ; orps          %xmm10,%xmm1
15250  DB  15,40,226                           ; movaps        %xmm2,%xmm4
15251  DB  15,92,227                           ; subps         %xmm3,%xmm4
15252  DB  68,15,89,204                        ; mulps         %xmm4,%xmm9
15253  DB  15,89,231                           ; mulps         %xmm7,%xmm4
15254  DB  15,89,204                           ; mulps         %xmm4,%xmm1
15255  DB  15,40,227                           ; movaps        %xmm3,%xmm4
15256  DB  15,89,229                           ; mulps         %xmm5,%xmm4
15257  DB  15,88,204                           ; addps         %xmm4,%xmm1
15258  DB  65,15,40,227                        ; movaps        %xmm11,%xmm4
15259  DB  15,89,229                           ; mulps         %xmm5,%xmm4
15260  DB  65,15,88,229                        ; addps         %xmm13,%xmm4
15261  DB  68,15,88,203                        ; addps         %xmm3,%xmm9
15262  DB  68,15,89,205                        ; mulps         %xmm5,%xmm9
15263  DB  15,40,245                           ; movaps        %xmm5,%xmm6
15264  DB  15,194,211,2                        ; cmpleps       %xmm3,%xmm2
15265  DB  68,15,84,202                        ; andps         %xmm2,%xmm9
15266  DB  15,85,209                           ; andnps        %xmm1,%xmm2
15267  DB  65,15,86,209                        ; orps          %xmm9,%xmm2
15268  DB  15,88,212                           ; addps         %xmm4,%xmm2
15269  DB  68,15,89,223                        ; mulps         %xmm7,%xmm11
15270  DB  65,15,88,219                        ; addps         %xmm11,%xmm3
15271  DB  72,173                              ; lods          %ds:(%rsi),%rax
15272  DB  15,40,100,36,16                     ; movaps        0x10(%rsp),%xmm4
15273  DB  15,40,44,36                         ; movaps        (%rsp),%xmm5
15274  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
15275  DB  72,131,196,56                       ; add           $0x38,%rsp
15276  DB  255,224                             ; jmpq          *%rax
15277
15278PUBLIC _sk_clamp_0_sse2
15279_sk_clamp_0_sse2 LABEL PROC
15280  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
15281  DB  65,15,95,192                        ; maxps         %xmm8,%xmm0
15282  DB  65,15,95,200                        ; maxps         %xmm8,%xmm1
15283  DB  65,15,95,208                        ; maxps         %xmm8,%xmm2
15284  DB  65,15,95,216                        ; maxps         %xmm8,%xmm3
15285  DB  72,173                              ; lods          %ds:(%rsi),%rax
15286  DB  255,224                             ; jmpq          *%rax
15287
15288PUBLIC _sk_clamp_1_sse2
15289_sk_clamp_1_sse2 LABEL PROC
15290  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15291  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15292  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15293  DB  65,15,93,192                        ; minps         %xmm8,%xmm0
15294  DB  65,15,93,200                        ; minps         %xmm8,%xmm1
15295  DB  65,15,93,208                        ; minps         %xmm8,%xmm2
15296  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
15297  DB  72,173                              ; lods          %ds:(%rsi),%rax
15298  DB  255,224                             ; jmpq          *%rax
15299
15300PUBLIC _sk_clamp_a_sse2
15301_sk_clamp_a_sse2 LABEL PROC
15302  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15303  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15304  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15305  DB  65,15,93,216                        ; minps         %xmm8,%xmm3
15306  DB  15,93,195                           ; minps         %xmm3,%xmm0
15307  DB  15,93,203                           ; minps         %xmm3,%xmm1
15308  DB  15,93,211                           ; minps         %xmm3,%xmm2
15309  DB  72,173                              ; lods          %ds:(%rsi),%rax
15310  DB  255,224                             ; jmpq          *%rax
15311
15312PUBLIC _sk_set_rgb_sse2
15313_sk_set_rgb_sse2 LABEL PROC
15314  DB  72,173                              ; lods          %ds:(%rsi),%rax
15315  DB  243,15,16,0                         ; movss         (%rax),%xmm0
15316  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
15317  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
15318  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
15319  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
15320  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
15321  DB  72,173                              ; lods          %ds:(%rsi),%rax
15322  DB  255,224                             ; jmpq          *%rax
15323
15324PUBLIC _sk_swap_rb_sse2
15325_sk_swap_rb_sse2 LABEL PROC
15326  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
15327  DB  72,173                              ; lods          %ds:(%rsi),%rax
15328  DB  15,40,194                           ; movaps        %xmm2,%xmm0
15329  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
15330  DB  255,224                             ; jmpq          *%rax
15331
15332PUBLIC _sk_swap_sse2
15333_sk_swap_sse2 LABEL PROC
15334  DB  68,15,40,195                        ; movaps        %xmm3,%xmm8
15335  DB  68,15,40,202                        ; movaps        %xmm2,%xmm9
15336  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
15337  DB  68,15,40,216                        ; movaps        %xmm0,%xmm11
15338  DB  72,173                              ; lods          %ds:(%rsi),%rax
15339  DB  15,40,196                           ; movaps        %xmm4,%xmm0
15340  DB  15,40,205                           ; movaps        %xmm5,%xmm1
15341  DB  15,40,214                           ; movaps        %xmm6,%xmm2
15342  DB  15,40,223                           ; movaps        %xmm7,%xmm3
15343  DB  65,15,40,227                        ; movaps        %xmm11,%xmm4
15344  DB  65,15,40,234                        ; movaps        %xmm10,%xmm5
15345  DB  65,15,40,241                        ; movaps        %xmm9,%xmm6
15346  DB  65,15,40,248                        ; movaps        %xmm8,%xmm7
15347  DB  255,224                             ; jmpq          *%rax
15348
15349PUBLIC _sk_move_src_dst_sse2
15350_sk_move_src_dst_sse2 LABEL PROC
15351  DB  72,173                              ; lods          %ds:(%rsi),%rax
15352  DB  15,40,224                           ; movaps        %xmm0,%xmm4
15353  DB  15,40,233                           ; movaps        %xmm1,%xmm5
15354  DB  15,40,242                           ; movaps        %xmm2,%xmm6
15355  DB  15,40,251                           ; movaps        %xmm3,%xmm7
15356  DB  255,224                             ; jmpq          *%rax
15357
15358PUBLIC _sk_move_dst_src_sse2
15359_sk_move_dst_src_sse2 LABEL PROC
15360  DB  72,173                              ; lods          %ds:(%rsi),%rax
15361  DB  15,40,196                           ; movaps        %xmm4,%xmm0
15362  DB  15,40,205                           ; movaps        %xmm5,%xmm1
15363  DB  15,40,214                           ; movaps        %xmm6,%xmm2
15364  DB  15,40,223                           ; movaps        %xmm7,%xmm3
15365  DB  255,224                             ; jmpq          *%rax
15366
15367PUBLIC _sk_premul_sse2
15368_sk_premul_sse2 LABEL PROC
15369  DB  15,89,195                           ; mulps         %xmm3,%xmm0
15370  DB  15,89,203                           ; mulps         %xmm3,%xmm1
15371  DB  15,89,211                           ; mulps         %xmm3,%xmm2
15372  DB  72,173                              ; lods          %ds:(%rsi),%rax
15373  DB  255,224                             ; jmpq          *%rax
15374
15375PUBLIC _sk_unpremul_sse2
15376_sk_unpremul_sse2 LABEL PROC
15377  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
15378  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15379  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15380  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15381  DB  68,15,94,203                        ; divps         %xmm3,%xmm9
15382  DB  68,15,194,195,4                     ; cmpneqps      %xmm3,%xmm8
15383  DB  69,15,84,193                        ; andps         %xmm9,%xmm8
15384  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
15385  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
15386  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
15387  DB  72,173                              ; lods          %ds:(%rsi),%rax
15388  DB  255,224                             ; jmpq          *%rax
15389
15390PUBLIC _sk_from_srgb_sse2
15391_sk_from_srgb_sse2 LABEL PROC
15392  DB  184,145,131,158,61                  ; mov           $0x3d9e8391,%eax
15393  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15394  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15395  DB  69,15,40,232                        ; movaps        %xmm8,%xmm13
15396  DB  68,15,89,232                        ; mulps         %xmm0,%xmm13
15397  DB  68,15,40,224                        ; movaps        %xmm0,%xmm12
15398  DB  69,15,89,228                        ; mulps         %xmm12,%xmm12
15399  DB  184,154,153,153,62                  ; mov           $0x3e99999a,%eax
15400  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15401  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15402  DB  184,92,143,50,63                    ; mov           $0x3f328f5c,%eax
15403  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
15404  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
15405  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15406  DB  68,15,89,240                        ; mulps         %xmm0,%xmm14
15407  DB  69,15,88,242                        ; addps         %xmm10,%xmm14
15408  DB  184,10,215,35,59                    ; mov           $0x3b23d70a,%eax
15409  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
15410  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
15411  DB  69,15,89,244                        ; mulps         %xmm12,%xmm14
15412  DB  69,15,88,243                        ; addps         %xmm11,%xmm14
15413  DB  184,174,71,97,61                    ; mov           $0x3d6147ae,%eax
15414  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15415  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15416  DB  65,15,194,196,1                     ; cmpltps       %xmm12,%xmm0
15417  DB  68,15,84,232                        ; andps         %xmm0,%xmm13
15418  DB  65,15,85,198                        ; andnps        %xmm14,%xmm0
15419  DB  65,15,86,197                        ; orps          %xmm13,%xmm0
15420  DB  69,15,40,232                        ; movaps        %xmm8,%xmm13
15421  DB  68,15,89,233                        ; mulps         %xmm1,%xmm13
15422  DB  68,15,40,241                        ; movaps        %xmm1,%xmm14
15423  DB  69,15,89,246                        ; mulps         %xmm14,%xmm14
15424  DB  69,15,40,249                        ; movaps        %xmm9,%xmm15
15425  DB  68,15,89,249                        ; mulps         %xmm1,%xmm15
15426  DB  69,15,88,250                        ; addps         %xmm10,%xmm15
15427  DB  69,15,89,254                        ; mulps         %xmm14,%xmm15
15428  DB  69,15,88,251                        ; addps         %xmm11,%xmm15
15429  DB  65,15,194,204,1                     ; cmpltps       %xmm12,%xmm1
15430  DB  68,15,84,233                        ; andps         %xmm1,%xmm13
15431  DB  65,15,85,207                        ; andnps        %xmm15,%xmm1
15432  DB  65,15,86,205                        ; orps          %xmm13,%xmm1
15433  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
15434  DB  68,15,40,234                        ; movaps        %xmm2,%xmm13
15435  DB  69,15,89,237                        ; mulps         %xmm13,%xmm13
15436  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
15437  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
15438  DB  69,15,89,205                        ; mulps         %xmm13,%xmm9
15439  DB  69,15,88,203                        ; addps         %xmm11,%xmm9
15440  DB  65,15,194,212,1                     ; cmpltps       %xmm12,%xmm2
15441  DB  68,15,84,194                        ; andps         %xmm2,%xmm8
15442  DB  65,15,85,209                        ; andnps        %xmm9,%xmm2
15443  DB  65,15,86,208                        ; orps          %xmm8,%xmm2
15444  DB  72,173                              ; lods          %ds:(%rsi),%rax
15445  DB  255,224                             ; jmpq          *%rax
15446
15447PUBLIC _sk_to_srgb_sse2
15448_sk_to_srgb_sse2 LABEL PROC
15449  DB  68,15,82,192                        ; rsqrtps       %xmm0,%xmm8
15450  DB  69,15,83,248                        ; rcpps         %xmm8,%xmm15
15451  DB  69,15,82,232                        ; rsqrtps       %xmm8,%xmm13
15452  DB  184,41,92,71,65                     ; mov           $0x41475c29,%eax
15453  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
15454  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15455  DB  69,15,40,240                        ; movaps        %xmm8,%xmm14
15456  DB  68,15,89,240                        ; mulps         %xmm0,%xmm14
15457  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15458  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15459  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15460  DB  184,194,135,210,62                  ; mov           $0x3ed287c2,%eax
15461  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
15462  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
15463  DB  184,206,111,48,63                   ; mov           $0x3f306fce,%eax
15464  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
15465  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
15466  DB  184,168,87,202,61                   ; mov           $0x3dca57a8,%eax
15467  DB  53,0,0,0,128                        ; xor           $0x80000000,%eax
15468  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15469  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15470  DB  69,15,89,251                        ; mulps         %xmm11,%xmm15
15471  DB  69,15,88,252                        ; addps         %xmm12,%xmm15
15472  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
15473  DB  69,15,88,239                        ; addps         %xmm15,%xmm13
15474  DB  69,15,40,249                        ; movaps        %xmm9,%xmm15
15475  DB  69,15,93,253                        ; minps         %xmm13,%xmm15
15476  DB  184,4,231,140,59                    ; mov           $0x3b8ce704,%eax
15477  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
15478  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
15479  DB  65,15,194,197,1                     ; cmpltps       %xmm13,%xmm0
15480  DB  68,15,84,240                        ; andps         %xmm0,%xmm14
15481  DB  65,15,85,199                        ; andnps        %xmm15,%xmm0
15482  DB  65,15,86,198                        ; orps          %xmm14,%xmm0
15483  DB  68,15,82,241                        ; rsqrtps       %xmm1,%xmm14
15484  DB  69,15,83,254                        ; rcpps         %xmm14,%xmm15
15485  DB  69,15,82,246                        ; rsqrtps       %xmm14,%xmm14
15486  DB  69,15,89,251                        ; mulps         %xmm11,%xmm15
15487  DB  69,15,88,252                        ; addps         %xmm12,%xmm15
15488  DB  69,15,89,242                        ; mulps         %xmm10,%xmm14
15489  DB  69,15,88,247                        ; addps         %xmm15,%xmm14
15490  DB  69,15,40,249                        ; movaps        %xmm9,%xmm15
15491  DB  69,15,93,254                        ; minps         %xmm14,%xmm15
15492  DB  69,15,40,240                        ; movaps        %xmm8,%xmm14
15493  DB  68,15,89,241                        ; mulps         %xmm1,%xmm14
15494  DB  65,15,194,205,1                     ; cmpltps       %xmm13,%xmm1
15495  DB  68,15,84,241                        ; andps         %xmm1,%xmm14
15496  DB  65,15,85,207                        ; andnps        %xmm15,%xmm1
15497  DB  65,15,86,206                        ; orps          %xmm14,%xmm1
15498  DB  68,15,82,242                        ; rsqrtps       %xmm2,%xmm14
15499  DB  69,15,83,254                        ; rcpps         %xmm14,%xmm15
15500  DB  69,15,89,251                        ; mulps         %xmm11,%xmm15
15501  DB  69,15,88,252                        ; addps         %xmm12,%xmm15
15502  DB  69,15,82,222                        ; rsqrtps       %xmm14,%xmm11
15503  DB  69,15,89,218                        ; mulps         %xmm10,%xmm11
15504  DB  69,15,88,223                        ; addps         %xmm15,%xmm11
15505  DB  69,15,93,203                        ; minps         %xmm11,%xmm9
15506  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
15507  DB  65,15,194,213,1                     ; cmpltps       %xmm13,%xmm2
15508  DB  68,15,84,194                        ; andps         %xmm2,%xmm8
15509  DB  65,15,85,209                        ; andnps        %xmm9,%xmm2
15510  DB  65,15,86,208                        ; orps          %xmm8,%xmm2
15511  DB  72,173                              ; lods          %ds:(%rsi),%rax
15512  DB  255,224                             ; jmpq          *%rax
15513
15514PUBLIC _sk_rgb_to_hsl_sse2
15515_sk_rgb_to_hsl_sse2 LABEL PROC
15516  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
15517  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
15518  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
15519  DB  69,15,95,209                        ; maxps         %xmm9,%xmm10
15520  DB  68,15,95,210                        ; maxps         %xmm2,%xmm10
15521  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
15522  DB  69,15,93,217                        ; minps         %xmm9,%xmm11
15523  DB  68,15,93,218                        ; minps         %xmm2,%xmm11
15524  DB  65,15,40,202                        ; movaps        %xmm10,%xmm1
15525  DB  65,15,92,203                        ; subps         %xmm11,%xmm1
15526  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15527  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15528  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15529  DB  68,15,94,225                        ; divps         %xmm1,%xmm12
15530  DB  65,184,171,170,42,62                ; mov           $0x3e2aaaab,%r8d
15531  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
15532  DB  65,15,194,192,0                     ; cmpeqps       %xmm8,%xmm0
15533  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15534  DB  68,15,194,242,1                     ; cmpltps       %xmm2,%xmm14
15535  DB  185,0,0,192,64                      ; mov           $0x40c00000,%ecx
15536  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
15537  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
15538  DB  69,15,84,238                        ; andps         %xmm14,%xmm13
15539  DB  69,15,40,241                        ; movaps        %xmm9,%xmm14
15540  DB  68,15,92,242                        ; subps         %xmm2,%xmm14
15541  DB  69,15,89,244                        ; mulps         %xmm12,%xmm14
15542  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
15543  DB  69,15,40,242                        ; movaps        %xmm10,%xmm14
15544  DB  69,15,194,241,0                     ; cmpeqps       %xmm9,%xmm14
15545  DB  65,15,92,208                        ; subps         %xmm8,%xmm2
15546  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
15547  DB  65,15,89,212                        ; mulps         %xmm12,%xmm2
15548  DB  185,0,0,0,64                        ; mov           $0x40000000,%ecx
15549  DB  69,15,89,196                        ; mulps         %xmm12,%xmm8
15550  DB  184,0,0,128,64                      ; mov           $0x40800000,%eax
15551  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15552  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15553  DB  69,15,88,200                        ; addps         %xmm8,%xmm9
15554  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
15555  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15556  DB  65,15,88,208                        ; addps         %xmm8,%xmm2
15557  DB  65,15,84,214                        ; andps         %xmm14,%xmm2
15558  DB  69,15,85,241                        ; andnps        %xmm9,%xmm14
15559  DB  68,15,86,242                        ; orps          %xmm2,%xmm14
15560  DB  68,15,84,232                        ; andps         %xmm0,%xmm13
15561  DB  65,15,85,198                        ; andnps        %xmm14,%xmm0
15562  DB  102,65,15,110,208                   ; movd          %r8d,%xmm2
15563  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
15564  DB  65,15,86,197                        ; orps          %xmm13,%xmm0
15565  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
15566  DB  69,15,194,203,4                     ; cmpneqps      %xmm11,%xmm9
15567  DB  65,15,84,193                        ; andps         %xmm9,%xmm0
15568  DB  15,89,194                           ; mulps         %xmm2,%xmm0
15569  DB  69,15,92,194                        ; subps         %xmm10,%xmm8
15570  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
15571  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
15572  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15573  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15574  DB  69,15,92,195                        ; subps         %xmm11,%xmm8
15575  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
15576  DB  65,15,89,212                        ; mulps         %xmm12,%xmm2
15577  DB  68,15,194,226,1                     ; cmpltps       %xmm2,%xmm12
15578  DB  69,15,84,196                        ; andps         %xmm12,%xmm8
15579  DB  69,15,85,226                        ; andnps        %xmm10,%xmm12
15580  DB  69,15,86,224                        ; orps          %xmm8,%xmm12
15581  DB  65,15,94,204                        ; divps         %xmm12,%xmm1
15582  DB  65,15,84,201                        ; andps         %xmm9,%xmm1
15583  DB  72,173                              ; lods          %ds:(%rsi),%rax
15584  DB  255,224                             ; jmpq          *%rax
15585
15586PUBLIC _sk_hsl_to_rgb_sse2
15587_sk_hsl_to_rgb_sse2 LABEL PROC
15588  DB  72,131,236,104                      ; sub           $0x68,%rsp
15589  DB  15,41,124,36,80                     ; movaps        %xmm7,0x50(%rsp)
15590  DB  15,41,116,36,64                     ; movaps        %xmm6,0x40(%rsp)
15591  DB  15,41,108,36,48                     ; movaps        %xmm5,0x30(%rsp)
15592  DB  15,41,100,36,32                     ; movaps        %xmm4,0x20(%rsp)
15593  DB  15,41,92,36,16                      ; movaps        %xmm3,0x10(%rsp)
15594  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
15595  DB  15,40,209                           ; movaps        %xmm1,%xmm2
15596  DB  15,40,240                           ; movaps        %xmm0,%xmm6
15597  DB  184,0,0,0,63                        ; mov           $0x3f000000,%eax
15598  DB  102,68,15,110,240                   ; movd          %eax,%xmm14
15599  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
15600  DB  69,15,40,202                        ; movaps        %xmm10,%xmm9
15601  DB  69,15,194,206,1                     ; cmpltps       %xmm14,%xmm9
15602  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15603  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
15604  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
15605  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
15606  DB  15,88,194                           ; addps         %xmm2,%xmm0
15607  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
15608  DB  15,40,218                           ; movaps        %xmm2,%xmm3
15609  DB  69,15,87,219                        ; xorps         %xmm11,%xmm11
15610  DB  68,15,194,218,0                     ; cmpeqps       %xmm2,%xmm11
15611  DB  65,15,88,210                        ; addps         %xmm10,%xmm2
15612  DB  65,15,89,218                        ; mulps         %xmm10,%xmm3
15613  DB  15,92,211                           ; subps         %xmm3,%xmm2
15614  DB  65,15,84,193                        ; andps         %xmm9,%xmm0
15615  DB  68,15,85,202                        ; andnps        %xmm2,%xmm9
15616  DB  68,15,86,200                        ; orps          %xmm0,%xmm9
15617  DB  184,0,0,0,64                        ; mov           $0x40000000,%eax
15618  DB  185,171,170,170,62                  ; mov           $0x3eaaaaab,%ecx
15619  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
15620  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15621  DB  68,15,41,4,36                       ; movaps        %xmm8,(%rsp)
15622  DB  68,15,88,198                        ; addps         %xmm6,%xmm8
15623  DB  185,0,0,0,0                         ; mov           $0x0,%ecx
15624  DB  102,15,110,233                      ; movd          %ecx,%xmm5
15625  DB  15,198,237,0                        ; shufps        $0x0,%xmm5,%xmm5
15626  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
15627  DB  65,15,194,192,1                     ; cmpltps       %xmm8,%xmm0
15628  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
15629  DB  65,15,92,220                        ; subps         %xmm12,%xmm3
15630  DB  15,84,216                           ; andps         %xmm0,%xmm3
15631  DB  65,15,85,192                        ; andnps        %xmm8,%xmm0
15632  DB  15,86,195                           ; orps          %xmm3,%xmm0
15633  DB  65,15,40,216                        ; movaps        %xmm8,%xmm3
15634  DB  15,194,221,1                        ; cmpltps       %xmm5,%xmm3
15635  DB  65,15,40,212                        ; movaps        %xmm12,%xmm2
15636  DB  65,15,88,208                        ; addps         %xmm8,%xmm2
15637  DB  15,84,211                           ; andps         %xmm3,%xmm2
15638  DB  15,85,216                           ; andnps        %xmm0,%xmm3
15639  DB  15,86,218                           ; orps          %xmm2,%xmm3
15640  DB  102,68,15,110,232                   ; movd          %eax,%xmm13
15641  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
15642  DB  69,15,89,234                        ; mulps         %xmm10,%xmm13
15643  DB  69,15,92,233                        ; subps         %xmm9,%xmm13
15644  DB  184,171,170,42,62                   ; mov           $0x3e2aaaab,%eax
15645  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
15646  DB  65,15,92,197                        ; subps         %xmm13,%xmm0
15647  DB  185,0,0,192,64                      ; mov           $0x40c00000,%ecx
15648  DB  102,68,15,110,249                   ; movd          %ecx,%xmm15
15649  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
15650  DB  68,15,89,248                        ; mulps         %xmm0,%xmm15
15651  DB  185,171,170,42,63                   ; mov           $0x3f2aaaab,%ecx
15652  DB  102,15,110,225                      ; movd          %ecx,%xmm4
15653  DB  15,198,228,0                        ; shufps        $0x0,%xmm4,%xmm4
15654  DB  15,40,212                           ; movaps        %xmm4,%xmm2
15655  DB  15,92,211                           ; subps         %xmm3,%xmm2
15656  DB  15,40,203                           ; movaps        %xmm3,%xmm1
15657  DB  15,40,195                           ; movaps        %xmm3,%xmm0
15658  DB  15,194,220,1                        ; cmpltps       %xmm4,%xmm3
15659  DB  65,15,89,215                        ; mulps         %xmm15,%xmm2
15660  DB  65,15,88,213                        ; addps         %xmm13,%xmm2
15661  DB  15,84,211                           ; andps         %xmm3,%xmm2
15662  DB  65,15,85,221                        ; andnps        %xmm13,%xmm3
15663  DB  15,86,218                           ; orps          %xmm2,%xmm3
15664  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
15665  DB  65,15,40,209                        ; movaps        %xmm9,%xmm2
15666  DB  15,84,208                           ; andps         %xmm0,%xmm2
15667  DB  15,85,195                           ; andnps        %xmm3,%xmm0
15668  DB  15,86,194                           ; orps          %xmm2,%xmm0
15669  DB  102,15,110,248                      ; movd          %eax,%xmm7
15670  DB  15,198,255,0                        ; shufps        $0x0,%xmm7,%xmm7
15671  DB  15,194,207,1                        ; cmpltps       %xmm7,%xmm1
15672  DB  69,15,89,199                        ; mulps         %xmm15,%xmm8
15673  DB  69,15,88,197                        ; addps         %xmm13,%xmm8
15674  DB  68,15,84,193                        ; andps         %xmm1,%xmm8
15675  DB  15,85,200                           ; andnps        %xmm0,%xmm1
15676  DB  65,15,86,200                        ; orps          %xmm8,%xmm1
15677  DB  69,15,40,195                        ; movaps        %xmm11,%xmm8
15678  DB  68,15,85,193                        ; andnps        %xmm1,%xmm8
15679  DB  65,15,40,196                        ; movaps        %xmm12,%xmm0
15680  DB  15,194,198,1                        ; cmpltps       %xmm6,%xmm0
15681  DB  15,40,206                           ; movaps        %xmm6,%xmm1
15682  DB  65,15,92,204                        ; subps         %xmm12,%xmm1
15683  DB  15,84,200                           ; andps         %xmm0,%xmm1
15684  DB  15,85,198                           ; andnps        %xmm6,%xmm0
15685  DB  15,86,193                           ; orps          %xmm1,%xmm0
15686  DB  15,40,206                           ; movaps        %xmm6,%xmm1
15687  DB  15,194,205,1                        ; cmpltps       %xmm5,%xmm1
15688  DB  65,15,40,212                        ; movaps        %xmm12,%xmm2
15689  DB  15,88,214                           ; addps         %xmm6,%xmm2
15690  DB  15,84,209                           ; andps         %xmm1,%xmm2
15691  DB  15,85,200                           ; andnps        %xmm0,%xmm1
15692  DB  15,86,202                           ; orps          %xmm2,%xmm1
15693  DB  15,40,196                           ; movaps        %xmm4,%xmm0
15694  DB  15,92,193                           ; subps         %xmm1,%xmm0
15695  DB  15,40,217                           ; movaps        %xmm1,%xmm3
15696  DB  15,40,209                           ; movaps        %xmm1,%xmm2
15697  DB  15,194,204,1                        ; cmpltps       %xmm4,%xmm1
15698  DB  65,15,89,199                        ; mulps         %xmm15,%xmm0
15699  DB  65,15,88,197                        ; addps         %xmm13,%xmm0
15700  DB  15,84,193                           ; andps         %xmm1,%xmm0
15701  DB  65,15,85,205                        ; andnps        %xmm13,%xmm1
15702  DB  15,86,200                           ; orps          %xmm0,%xmm1
15703  DB  65,15,194,214,1                     ; cmpltps       %xmm14,%xmm2
15704  DB  65,15,40,193                        ; movaps        %xmm9,%xmm0
15705  DB  15,84,194                           ; andps         %xmm2,%xmm0
15706  DB  15,85,209                           ; andnps        %xmm1,%xmm2
15707  DB  15,86,208                           ; orps          %xmm0,%xmm2
15708  DB  15,194,223,1                        ; cmpltps       %xmm7,%xmm3
15709  DB  65,15,40,199                        ; movaps        %xmm15,%xmm0
15710  DB  15,89,198                           ; mulps         %xmm6,%xmm0
15711  DB  65,15,88,197                        ; addps         %xmm13,%xmm0
15712  DB  15,84,195                           ; andps         %xmm3,%xmm0
15713  DB  15,85,218                           ; andnps        %xmm2,%xmm3
15714  DB  15,86,216                           ; orps          %xmm0,%xmm3
15715  DB  65,15,40,203                        ; movaps        %xmm11,%xmm1
15716  DB  15,85,203                           ; andnps        %xmm3,%xmm1
15717  DB  15,92,52,36                         ; subps         (%rsp),%xmm6
15718  DB  15,40,198                           ; movaps        %xmm6,%xmm0
15719  DB  15,194,197,1                        ; cmpltps       %xmm5,%xmm0
15720  DB  15,40,214                           ; movaps        %xmm6,%xmm2
15721  DB  65,15,92,212                        ; subps         %xmm12,%xmm2
15722  DB  65,15,40,220                        ; movaps        %xmm12,%xmm3
15723  DB  68,15,194,230,1                     ; cmpltps       %xmm6,%xmm12
15724  DB  65,15,84,212                        ; andps         %xmm12,%xmm2
15725  DB  68,15,85,230                        ; andnps        %xmm6,%xmm12
15726  DB  68,15,86,226                        ; orps          %xmm2,%xmm12
15727  DB  15,88,222                           ; addps         %xmm6,%xmm3
15728  DB  15,84,216                           ; andps         %xmm0,%xmm3
15729  DB  65,15,85,196                        ; andnps        %xmm12,%xmm0
15730  DB  15,86,195                           ; orps          %xmm3,%xmm0
15731  DB  15,40,232                           ; movaps        %xmm0,%xmm5
15732  DB  15,194,239,1                        ; cmpltps       %xmm7,%xmm5
15733  DB  15,40,208                           ; movaps        %xmm0,%xmm2
15734  DB  15,194,212,1                        ; cmpltps       %xmm4,%xmm2
15735  DB  15,92,224                           ; subps         %xmm0,%xmm4
15736  DB  65,15,194,198,1                     ; cmpltps       %xmm14,%xmm0
15737  DB  65,15,89,247                        ; mulps         %xmm15,%xmm6
15738  DB  65,15,89,231                        ; mulps         %xmm15,%xmm4
15739  DB  65,15,88,245                        ; addps         %xmm13,%xmm6
15740  DB  65,15,88,229                        ; addps         %xmm13,%xmm4
15741  DB  15,84,226                           ; andps         %xmm2,%xmm4
15742  DB  65,15,85,213                        ; andnps        %xmm13,%xmm2
15743  DB  15,86,212                           ; orps          %xmm4,%xmm2
15744  DB  68,15,84,200                        ; andps         %xmm0,%xmm9
15745  DB  15,85,194                           ; andnps        %xmm2,%xmm0
15746  DB  65,15,86,193                        ; orps          %xmm9,%xmm0
15747  DB  15,84,245                           ; andps         %xmm5,%xmm6
15748  DB  15,85,232                           ; andnps        %xmm0,%xmm5
15749  DB  15,86,238                           ; orps          %xmm6,%xmm5
15750  DB  69,15,84,211                        ; andps         %xmm11,%xmm10
15751  DB  68,15,85,221                        ; andnps        %xmm5,%xmm11
15752  DB  69,15,86,194                        ; orps          %xmm10,%xmm8
15753  DB  65,15,86,202                        ; orps          %xmm10,%xmm1
15754  DB  69,15,86,211                        ; orps          %xmm11,%xmm10
15755  DB  72,173                              ; lods          %ds:(%rsi),%rax
15756  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
15757  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
15758  DB  15,40,92,36,16                      ; movaps        0x10(%rsp),%xmm3
15759  DB  15,40,100,36,32                     ; movaps        0x20(%rsp),%xmm4
15760  DB  15,40,108,36,48                     ; movaps        0x30(%rsp),%xmm5
15761  DB  15,40,116,36,64                     ; movaps        0x40(%rsp),%xmm6
15762  DB  15,40,124,36,80                     ; movaps        0x50(%rsp),%xmm7
15763  DB  72,131,196,104                      ; add           $0x68,%rsp
15764  DB  255,224                             ; jmpq          *%rax
15765
15766PUBLIC _sk_scale_1_float_sse2
15767_sk_scale_1_float_sse2 LABEL PROC
15768  DB  72,173                              ; lods          %ds:(%rsi),%rax
15769  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
15770  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15771  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
15772  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
15773  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
15774  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
15775  DB  72,173                              ; lods          %ds:(%rsi),%rax
15776  DB  255,224                             ; jmpq          *%rax
15777
15778PUBLIC _sk_scale_u8_sse2
15779_sk_scale_u8_sse2 LABEL PROC
15780  DB  72,173                              ; lods          %ds:(%rsi),%rax
15781  DB  72,139,0                            ; mov           (%rax),%rax
15782  DB  102,68,15,110,4,56                  ; movd          (%rax,%rdi,1),%xmm8
15783  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
15784  DB  102,69,15,96,193                    ; punpcklbw     %xmm9,%xmm8
15785  DB  102,69,15,97,193                    ; punpcklwd     %xmm9,%xmm8
15786  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
15787  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
15788  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15789  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15790  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
15791  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
15792  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
15793  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
15794  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
15795  DB  72,173                              ; lods          %ds:(%rsi),%rax
15796  DB  255,224                             ; jmpq          *%rax
15797
15798PUBLIC _sk_lerp_1_float_sse2
15799_sk_lerp_1_float_sse2 LABEL PROC
15800  DB  72,173                              ; lods          %ds:(%rsi),%rax
15801  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
15802  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
15803  DB  15,92,196                           ; subps         %xmm4,%xmm0
15804  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
15805  DB  15,88,196                           ; addps         %xmm4,%xmm0
15806  DB  15,92,205                           ; subps         %xmm5,%xmm1
15807  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
15808  DB  15,88,205                           ; addps         %xmm5,%xmm1
15809  DB  15,92,214                           ; subps         %xmm6,%xmm2
15810  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
15811  DB  15,88,214                           ; addps         %xmm6,%xmm2
15812  DB  15,92,223                           ; subps         %xmm7,%xmm3
15813  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
15814  DB  15,88,223                           ; addps         %xmm7,%xmm3
15815  DB  72,173                              ; lods          %ds:(%rsi),%rax
15816  DB  255,224                             ; jmpq          *%rax
15817
15818PUBLIC _sk_lerp_u8_sse2
15819_sk_lerp_u8_sse2 LABEL PROC
15820  DB  72,173                              ; lods          %ds:(%rsi),%rax
15821  DB  72,139,0                            ; mov           (%rax),%rax
15822  DB  102,68,15,110,4,56                  ; movd          (%rax,%rdi,1),%xmm8
15823  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
15824  DB  102,69,15,96,193                    ; punpcklbw     %xmm9,%xmm8
15825  DB  102,69,15,97,193                    ; punpcklwd     %xmm9,%xmm8
15826  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
15827  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
15828  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
15829  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
15830  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
15831  DB  15,92,196                           ; subps         %xmm4,%xmm0
15832  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
15833  DB  15,88,196                           ; addps         %xmm4,%xmm0
15834  DB  15,92,205                           ; subps         %xmm5,%xmm1
15835  DB  65,15,89,201                        ; mulps         %xmm9,%xmm1
15836  DB  15,88,205                           ; addps         %xmm5,%xmm1
15837  DB  15,92,214                           ; subps         %xmm6,%xmm2
15838  DB  65,15,89,209                        ; mulps         %xmm9,%xmm2
15839  DB  15,88,214                           ; addps         %xmm6,%xmm2
15840  DB  15,92,223                           ; subps         %xmm7,%xmm3
15841  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
15842  DB  15,88,223                           ; addps         %xmm7,%xmm3
15843  DB  72,173                              ; lods          %ds:(%rsi),%rax
15844  DB  255,224                             ; jmpq          *%rax
15845
15846PUBLIC _sk_lerp_565_sse2
15847_sk_lerp_565_sse2 LABEL PROC
15848  DB  72,173                              ; lods          %ds:(%rsi),%rax
15849  DB  72,139,0                            ; mov           (%rax),%rax
15850  DB  243,68,15,126,4,120                 ; movq          (%rax,%rdi,2),%xmm8
15851  DB  102,15,239,219                      ; pxor          %xmm3,%xmm3
15852  DB  102,68,15,97,195                    ; punpcklwd     %xmm3,%xmm8
15853  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
15854  DB  102,15,110,216                      ; movd          %eax,%xmm3
15855  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
15856  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
15857  DB  68,15,91,203                        ; cvtdq2ps      %xmm3,%xmm9
15858  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
15859  DB  102,68,15,110,208                   ; movd          %eax,%xmm10
15860  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
15861  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
15862  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
15863  DB  102,15,110,216                      ; movd          %eax,%xmm3
15864  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
15865  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
15866  DB  68,15,91,203                        ; cvtdq2ps      %xmm3,%xmm9
15867  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
15868  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
15869  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
15870  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
15871  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
15872  DB  102,15,110,216                      ; movd          %eax,%xmm3
15873  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
15874  DB  102,65,15,219,216                   ; pand          %xmm8,%xmm3
15875  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
15876  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
15877  DB  102,15,110,216                      ; movd          %eax,%xmm3
15878  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
15879  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
15880  DB  15,92,196                           ; subps         %xmm4,%xmm0
15881  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
15882  DB  15,88,196                           ; addps         %xmm4,%xmm0
15883  DB  15,92,205                           ; subps         %xmm5,%xmm1
15884  DB  65,15,89,203                        ; mulps         %xmm11,%xmm1
15885  DB  15,88,205                           ; addps         %xmm5,%xmm1
15886  DB  15,92,214                           ; subps         %xmm6,%xmm2
15887  DB  15,89,211                           ; mulps         %xmm3,%xmm2
15888  DB  15,88,214                           ; addps         %xmm6,%xmm2
15889  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
15890  DB  102,15,110,216                      ; movd          %eax,%xmm3
15891  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
15892  DB  72,173                              ; lods          %ds:(%rsi),%rax
15893  DB  255,224                             ; jmpq          *%rax
15894
15895PUBLIC _sk_load_tables_sse2
15896_sk_load_tables_sse2 LABEL PROC
15897  DB  72,173                              ; lods          %ds:(%rsi),%rax
15898  DB  72,139,8                            ; mov           (%rax),%rcx
15899  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
15900  DB  243,68,15,111,4,185                 ; movdqu        (%rcx,%rdi,4),%xmm8
15901  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
15902  DB  102,15,110,193                      ; movd          %ecx,%xmm0
15903  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
15904  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
15905  DB  102,65,15,114,209,8                 ; psrld         $0x8,%xmm9
15906  DB  102,68,15,219,200                   ; pand          %xmm0,%xmm9
15907  DB  102,69,15,111,208                   ; movdqa        %xmm8,%xmm10
15908  DB  102,65,15,114,210,16                ; psrld         $0x10,%xmm10
15909  DB  102,68,15,219,208                   ; pand          %xmm0,%xmm10
15910  DB  102,65,15,219,192                   ; pand          %xmm8,%xmm0
15911  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
15912  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
15913  DB  65,137,201                          ; mov           %ecx,%r9d
15914  DB  72,193,233,32                       ; shr           $0x20,%rcx
15915  DB  102,73,15,126,194                   ; movq          %xmm0,%r10
15916  DB  69,137,211                          ; mov           %r10d,%r11d
15917  DB  73,193,234,32                       ; shr           $0x20,%r10
15918  DB  243,67,15,16,28,144                 ; movss         (%r8,%r10,4),%xmm3
15919  DB  243,65,15,16,4,136                  ; movss         (%r8,%rcx,4),%xmm0
15920  DB  15,20,216                           ; unpcklps      %xmm0,%xmm3
15921  DB  243,67,15,16,4,152                  ; movss         (%r8,%r11,4),%xmm0
15922  DB  243,67,15,16,12,136                 ; movss         (%r8,%r9,4),%xmm1
15923  DB  15,20,193                           ; unpcklps      %xmm1,%xmm0
15924  DB  15,20,195                           ; unpcklps      %xmm3,%xmm0
15925  DB  76,139,64,16                        ; mov           0x10(%rax),%r8
15926  DB  102,65,15,112,201,78                ; pshufd        $0x4e,%xmm9,%xmm1
15927  DB  102,73,15,126,202                   ; movq          %xmm1,%r10
15928  DB  77,137,209                          ; mov           %r10,%r9
15929  DB  73,193,233,32                       ; shr           $0x20,%r9
15930  DB  102,76,15,126,201                   ; movq          %xmm9,%rcx
15931  DB  65,137,203                          ; mov           %ecx,%r11d
15932  DB  65,129,227,255,255,255,0            ; and           $0xffffff,%r11d
15933  DB  72,193,233,30                       ; shr           $0x1e,%rcx
15934  DB  65,129,226,255,255,255,0            ; and           $0xffffff,%r10d
15935  DB  243,65,15,16,28,8                   ; movss         (%r8,%rcx,1),%xmm3
15936  DB  243,67,15,16,12,136                 ; movss         (%r8,%r9,4),%xmm1
15937  DB  15,20,217                           ; unpcklps      %xmm1,%xmm3
15938  DB  243,67,15,16,12,152                 ; movss         (%r8,%r11,4),%xmm1
15939  DB  243,67,15,16,20,144                 ; movss         (%r8,%r10,4),%xmm2
15940  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
15941  DB  15,20,203                           ; unpcklps      %xmm3,%xmm1
15942  DB  76,139,72,24                        ; mov           0x18(%rax),%r9
15943  DB  102,65,15,112,210,78                ; pshufd        $0x4e,%xmm10,%xmm2
15944  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
15945  DB  68,15,183,193                       ; movzwl        %cx,%r8d
15946  DB  72,193,233,32                       ; shr           $0x20,%rcx
15947  DB  102,76,15,126,208                   ; movq          %xmm10,%rax
15948  DB  68,15,183,208                       ; movzwl        %ax,%r10d
15949  DB  72,193,232,30                       ; shr           $0x1e,%rax
15950  DB  243,69,15,16,12,1                   ; movss         (%r9,%rax,1),%xmm9
15951  DB  243,65,15,16,20,137                 ; movss         (%r9,%rcx,4),%xmm2
15952  DB  68,15,20,202                        ; unpcklps      %xmm2,%xmm9
15953  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
15954  DB  243,67,15,16,28,129                 ; movss         (%r9,%r8,4),%xmm3
15955  DB  15,20,211                           ; unpcklps      %xmm3,%xmm2
15956  DB  65,15,20,209                        ; unpcklps      %xmm9,%xmm2
15957  DB  102,65,15,114,208,24                ; psrld         $0x18,%xmm8
15958  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
15959  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
15960  DB  102,15,110,216                      ; movd          %eax,%xmm3
15961  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
15962  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
15963  DB  72,173                              ; lods          %ds:(%rsi),%rax
15964  DB  255,224                             ; jmpq          *%rax
15965
15966PUBLIC _sk_load_tables_u16_be_sse2
15967_sk_load_tables_u16_be_sse2 LABEL PROC
15968  DB  72,173                              ; lods          %ds:(%rsi),%rax
15969  DB  72,139,8                            ; mov           (%rax),%rcx
15970  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
15971  DB  243,15,111,4,249                    ; movdqu        (%rcx,%rdi,8),%xmm0
15972  DB  243,15,111,76,249,16                ; movdqu        0x10(%rcx,%rdi,8),%xmm1
15973  DB  102,68,15,111,208                   ; movdqa        %xmm0,%xmm10
15974  DB  102,68,15,97,209                    ; punpcklwd     %xmm1,%xmm10
15975  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
15976  DB  102,65,15,111,202                   ; movdqa        %xmm10,%xmm1
15977  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
15978  DB  102,68,15,105,208                   ; punpckhwd     %xmm0,%xmm10
15979  DB  102,69,15,239,192                   ; pxor          %xmm8,%xmm8
15980  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
15981  DB  102,65,15,97,192                    ; punpcklwd     %xmm8,%xmm0
15982  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
15983  DB  102,15,110,217                      ; movd          %ecx,%xmm3
15984  DB  102,68,15,112,203,0                 ; pshufd        $0x0,%xmm3,%xmm9
15985  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
15986  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
15987  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
15988  DB  68,15,183,201                       ; movzwl        %cx,%r9d
15989  DB  72,193,233,32                       ; shr           $0x20,%rcx
15990  DB  102,73,15,126,194                   ; movq          %xmm0,%r10
15991  DB  69,15,183,218                       ; movzwl        %r10w,%r11d
15992  DB  73,193,234,30                       ; shr           $0x1e,%r10
15993  DB  243,67,15,16,28,16                  ; movss         (%r8,%r10,1),%xmm3
15994  DB  243,65,15,16,4,136                  ; movss         (%r8,%rcx,4),%xmm0
15995  DB  15,20,216                           ; unpcklps      %xmm0,%xmm3
15996  DB  243,67,15,16,4,152                  ; movss         (%r8,%r11,4),%xmm0
15997  DB  243,67,15,16,20,136                 ; movss         (%r8,%r9,4),%xmm2
15998  DB  15,20,194                           ; unpcklps      %xmm2,%xmm0
15999  DB  15,20,195                           ; unpcklps      %xmm3,%xmm0
16000  DB  76,139,80,16                        ; mov           0x10(%rax),%r10
16001  DB  102,15,115,217,8                    ; psrldq        $0x8,%xmm1
16002  DB  102,65,15,97,200                    ; punpcklwd     %xmm8,%xmm1
16003  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
16004  DB  102,15,112,209,78                   ; pshufd        $0x4e,%xmm1,%xmm2
16005  DB  102,73,15,126,208                   ; movq          %xmm2,%r8
16006  DB  69,15,183,200                       ; movzwl        %r8w,%r9d
16007  DB  73,193,232,32                       ; shr           $0x20,%r8
16008  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
16009  DB  68,15,183,217                       ; movzwl        %cx,%r11d
16010  DB  72,193,233,30                       ; shr           $0x1e,%rcx
16011  DB  243,65,15,16,20,10                  ; movss         (%r10,%rcx,1),%xmm2
16012  DB  243,67,15,16,12,130                 ; movss         (%r10,%r8,4),%xmm1
16013  DB  15,20,209                           ; unpcklps      %xmm1,%xmm2
16014  DB  243,67,15,16,12,154                 ; movss         (%r10,%r11,4),%xmm1
16015  DB  243,67,15,16,28,138                 ; movss         (%r10,%r9,4),%xmm3
16016  DB  15,20,203                           ; unpcklps      %xmm3,%xmm1
16017  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
16018  DB  76,139,72,24                        ; mov           0x18(%rax),%r9
16019  DB  102,69,15,112,218,78                ; pshufd        $0x4e,%xmm10,%xmm11
16020  DB  102,69,15,97,208                    ; punpcklwd     %xmm8,%xmm10
16021  DB  102,69,15,219,209                   ; pand          %xmm9,%xmm10
16022  DB  102,65,15,112,210,78                ; pshufd        $0x4e,%xmm10,%xmm2
16023  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16024  DB  68,15,183,193                       ; movzwl        %cx,%r8d
16025  DB  72,193,233,32                       ; shr           $0x20,%rcx
16026  DB  102,76,15,126,208                   ; movq          %xmm10,%rax
16027  DB  68,15,183,208                       ; movzwl        %ax,%r10d
16028  DB  72,193,232,30                       ; shr           $0x1e,%rax
16029  DB  243,69,15,16,12,1                   ; movss         (%r9,%rax,1),%xmm9
16030  DB  243,65,15,16,20,137                 ; movss         (%r9,%rcx,4),%xmm2
16031  DB  68,15,20,202                        ; unpcklps      %xmm2,%xmm9
16032  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
16033  DB  243,67,15,16,28,129                 ; movss         (%r9,%r8,4),%xmm3
16034  DB  15,20,211                           ; unpcklps      %xmm3,%xmm2
16035  DB  65,15,20,209                        ; unpcklps      %xmm9,%xmm2
16036  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
16037  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
16038  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16039  DB  102,65,15,111,219                   ; movdqa        %xmm11,%xmm3
16040  DB  102,15,113,243,8                    ; psllw         $0x8,%xmm3
16041  DB  102,65,15,113,211,8                 ; psrlw         $0x8,%xmm11
16042  DB  102,68,15,235,219                   ; por           %xmm3,%xmm11
16043  DB  102,69,15,97,216                    ; punpcklwd     %xmm8,%xmm11
16044  DB  65,15,91,219                        ; cvtdq2ps      %xmm11,%xmm3
16045  DB  65,15,89,217                        ; mulps         %xmm9,%xmm3
16046  DB  72,173                              ; lods          %ds:(%rsi),%rax
16047  DB  255,224                             ; jmpq          *%rax
16048
16049PUBLIC _sk_load_tables_rgb_u16_be_sse2
16050_sk_load_tables_rgb_u16_be_sse2 LABEL PROC
16051  DB  72,173                              ; lods          %ds:(%rsi),%rax
16052  DB  76,141,12,127                       ; lea           (%rdi,%rdi,2),%r9
16053  DB  72,139,8                            ; mov           (%rax),%rcx
16054  DB  76,139,64,8                         ; mov           0x8(%rax),%r8
16055  DB  243,70,15,111,28,73                 ; movdqu        (%rcx,%r9,2),%xmm11
16056  DB  243,66,15,111,68,73,8               ; movdqu        0x8(%rcx,%r9,2),%xmm0
16057  DB  102,15,115,216,4                    ; psrldq        $0x4,%xmm0
16058  DB  102,65,15,111,219                   ; movdqa        %xmm11,%xmm3
16059  DB  102,15,115,219,6                    ; psrldq        $0x6,%xmm3
16060  DB  102,68,15,97,216                    ; punpcklwd     %xmm0,%xmm11
16061  DB  102,15,115,216,6                    ; psrldq        $0x6,%xmm0
16062  DB  102,15,97,216                       ; punpcklwd     %xmm0,%xmm3
16063  DB  102,65,15,111,195                   ; movdqa        %xmm11,%xmm0
16064  DB  102,15,97,195                       ; punpcklwd     %xmm3,%xmm0
16065  DB  102,68,15,112,208,78                ; pshufd        $0x4e,%xmm0,%xmm10
16066  DB  102,68,15,105,219                   ; punpckhwd     %xmm3,%xmm11
16067  DB  102,69,15,239,192                   ; pxor          %xmm8,%xmm8
16068  DB  102,65,15,97,192                    ; punpcklwd     %xmm8,%xmm0
16069  DB  185,255,0,0,0                       ; mov           $0xff,%ecx
16070  DB  102,15,110,217                      ; movd          %ecx,%xmm3
16071  DB  102,68,15,112,203,0                 ; pshufd        $0x0,%xmm3,%xmm9
16072  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
16073  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
16074  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
16075  DB  68,15,183,201                       ; movzwl        %cx,%r9d
16076  DB  72,193,233,32                       ; shr           $0x20,%rcx
16077  DB  102,73,15,126,194                   ; movq          %xmm0,%r10
16078  DB  69,15,183,218                       ; movzwl        %r10w,%r11d
16079  DB  73,193,234,30                       ; shr           $0x1e,%r10
16080  DB  243,67,15,16,28,16                  ; movss         (%r8,%r10,1),%xmm3
16081  DB  243,65,15,16,4,136                  ; movss         (%r8,%rcx,4),%xmm0
16082  DB  15,20,216                           ; unpcklps      %xmm0,%xmm3
16083  DB  243,67,15,16,4,152                  ; movss         (%r8,%r11,4),%xmm0
16084  DB  243,67,15,16,12,136                 ; movss         (%r8,%r9,4),%xmm1
16085  DB  15,20,193                           ; unpcklps      %xmm1,%xmm0
16086  DB  15,20,195                           ; unpcklps      %xmm3,%xmm0
16087  DB  76,139,80,16                        ; mov           0x10(%rax),%r10
16088  DB  102,69,15,97,208                    ; punpcklwd     %xmm8,%xmm10
16089  DB  102,69,15,219,209                   ; pand          %xmm9,%xmm10
16090  DB  102,65,15,112,202,78                ; pshufd        $0x4e,%xmm10,%xmm1
16091  DB  102,73,15,126,200                   ; movq          %xmm1,%r8
16092  DB  69,15,183,200                       ; movzwl        %r8w,%r9d
16093  DB  73,193,232,32                       ; shr           $0x20,%r8
16094  DB  102,76,15,126,209                   ; movq          %xmm10,%rcx
16095  DB  68,15,183,217                       ; movzwl        %cx,%r11d
16096  DB  72,193,233,30                       ; shr           $0x1e,%rcx
16097  DB  243,65,15,16,28,10                  ; movss         (%r10,%rcx,1),%xmm3
16098  DB  243,67,15,16,12,130                 ; movss         (%r10,%r8,4),%xmm1
16099  DB  15,20,217                           ; unpcklps      %xmm1,%xmm3
16100  DB  243,67,15,16,12,154                 ; movss         (%r10,%r11,4),%xmm1
16101  DB  243,67,15,16,20,138                 ; movss         (%r10,%r9,4),%xmm2
16102  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
16103  DB  15,20,203                           ; unpcklps      %xmm3,%xmm1
16104  DB  76,139,72,24                        ; mov           0x18(%rax),%r9
16105  DB  102,69,15,97,216                    ; punpcklwd     %xmm8,%xmm11
16106  DB  102,69,15,219,217                   ; pand          %xmm9,%xmm11
16107  DB  102,65,15,112,211,78                ; pshufd        $0x4e,%xmm11,%xmm2
16108  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16109  DB  68,15,183,193                       ; movzwl        %cx,%r8d
16110  DB  72,193,233,32                       ; shr           $0x20,%rcx
16111  DB  102,76,15,126,216                   ; movq          %xmm11,%rax
16112  DB  68,15,183,208                       ; movzwl        %ax,%r10d
16113  DB  72,193,232,30                       ; shr           $0x1e,%rax
16114  DB  243,69,15,16,4,1                    ; movss         (%r9,%rax,1),%xmm8
16115  DB  243,65,15,16,20,137                 ; movss         (%r9,%rcx,4),%xmm2
16116  DB  68,15,20,194                        ; unpcklps      %xmm2,%xmm8
16117  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
16118  DB  243,67,15,16,28,129                 ; movss         (%r9,%r8,4),%xmm3
16119  DB  15,20,211                           ; unpcklps      %xmm3,%xmm2
16120  DB  65,15,20,208                        ; unpcklps      %xmm8,%xmm2
16121  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
16122  DB  102,15,110,216                      ; movd          %eax,%xmm3
16123  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
16124  DB  72,173                              ; lods          %ds:(%rsi),%rax
16125  DB  255,224                             ; jmpq          *%rax
16126
16127PUBLIC _sk_byte_tables_sse2
16128_sk_byte_tables_sse2 LABEL PROC
16129  DB  65,86                               ; push          %r14
16130  DB  83                                  ; push          %rbx
16131  DB  72,173                              ; lods          %ds:(%rsi),%rax
16132  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
16133  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
16134  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16135  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
16136  DB  102,15,91,192                       ; cvtps2dq      %xmm0,%xmm0
16137  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
16138  DB  65,137,200                          ; mov           %ecx,%r8d
16139  DB  72,193,233,32                       ; shr           $0x20,%rcx
16140  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
16141  DB  102,73,15,126,193                   ; movq          %xmm0,%r9
16142  DB  69,137,202                          ; mov           %r9d,%r10d
16143  DB  77,137,203                          ; mov           %r9,%r11
16144  DB  73,193,235,32                       ; shr           $0x20,%r11
16145  DB  76,139,48                           ; mov           (%rax),%r14
16146  DB  76,139,72,8                         ; mov           0x8(%rax),%r9
16147  DB  71,15,182,20,22                     ; movzbl        (%r14,%r10,1),%r10d
16148  DB  67,15,182,28,30                     ; movzbl        (%r14,%r11,1),%ebx
16149  DB  193,227,8                           ; shl           $0x8,%ebx
16150  DB  68,9,211                            ; or            %r10d,%ebx
16151  DB  71,15,182,4,6                       ; movzbl        (%r14,%r8,1),%r8d
16152  DB  65,15,182,12,14                     ; movzbl        (%r14,%rcx,1),%ecx
16153  DB  193,225,8                           ; shl           $0x8,%ecx
16154  DB  68,9,193                            ; or            %r8d,%ecx
16155  DB  102,15,196,193,0                    ; pinsrw        $0x0,%ecx,%xmm0
16156  DB  102,15,196,195,1                    ; pinsrw        $0x1,%ebx,%xmm0
16157  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
16158  DB  102,65,15,96,193                    ; punpcklbw     %xmm9,%xmm0
16159  DB  102,65,15,97,193                    ; punpcklwd     %xmm9,%xmm0
16160  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
16161  DB  185,129,128,128,59                  ; mov           $0x3b808081,%ecx
16162  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16163  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16164  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
16165  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
16166  DB  102,15,91,201                       ; cvtps2dq      %xmm1,%xmm1
16167  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
16168  DB  65,137,200                          ; mov           %ecx,%r8d
16169  DB  72,193,233,32                       ; shr           $0x20,%rcx
16170  DB  102,15,112,201,78                   ; pshufd        $0x4e,%xmm1,%xmm1
16171  DB  102,72,15,126,203                   ; movq          %xmm1,%rbx
16172  DB  65,137,218                          ; mov           %ebx,%r10d
16173  DB  72,193,235,32                       ; shr           $0x20,%rbx
16174  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
16175  DB  65,15,182,28,25                     ; movzbl        (%r9,%rbx,1),%ebx
16176  DB  193,227,8                           ; shl           $0x8,%ebx
16177  DB  68,9,211                            ; or            %r10d,%ebx
16178  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
16179  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
16180  DB  193,225,8                           ; shl           $0x8,%ecx
16181  DB  68,9,193                            ; or            %r8d,%ecx
16182  DB  102,15,196,201,0                    ; pinsrw        $0x0,%ecx,%xmm1
16183  DB  102,15,196,203,1                    ; pinsrw        $0x1,%ebx,%xmm1
16184  DB  102,65,15,96,201                    ; punpcklbw     %xmm9,%xmm1
16185  DB  102,65,15,97,201                    ; punpcklwd     %xmm9,%xmm1
16186  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
16187  DB  65,15,89,202                        ; mulps         %xmm10,%xmm1
16188  DB  76,139,72,16                        ; mov           0x10(%rax),%r9
16189  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
16190  DB  102,15,91,210                       ; cvtps2dq      %xmm2,%xmm2
16191  DB  102,72,15,126,211                   ; movq          %xmm2,%rbx
16192  DB  65,137,216                          ; mov           %ebx,%r8d
16193  DB  72,193,235,32                       ; shr           $0x20,%rbx
16194  DB  102,15,112,210,78                   ; pshufd        $0x4e,%xmm2,%xmm2
16195  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16196  DB  65,137,202                          ; mov           %ecx,%r10d
16197  DB  72,193,233,32                       ; shr           $0x20,%rcx
16198  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
16199  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
16200  DB  193,225,8                           ; shl           $0x8,%ecx
16201  DB  68,9,209                            ; or            %r10d,%ecx
16202  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
16203  DB  65,15,182,28,25                     ; movzbl        (%r9,%rbx,1),%ebx
16204  DB  193,227,8                           ; shl           $0x8,%ebx
16205  DB  68,9,195                            ; or            %r8d,%ebx
16206  DB  102,15,196,211,0                    ; pinsrw        $0x0,%ebx,%xmm2
16207  DB  102,15,196,209,1                    ; pinsrw        $0x1,%ecx,%xmm2
16208  DB  102,65,15,96,209                    ; punpcklbw     %xmm9,%xmm2
16209  DB  102,65,15,97,209                    ; punpcklwd     %xmm9,%xmm2
16210  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
16211  DB  65,15,89,210                        ; mulps         %xmm10,%xmm2
16212  DB  72,139,64,24                        ; mov           0x18(%rax),%rax
16213  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
16214  DB  102,65,15,91,216                    ; cvtps2dq      %xmm8,%xmm3
16215  DB  102,72,15,126,217                   ; movq          %xmm3,%rcx
16216  DB  65,137,200                          ; mov           %ecx,%r8d
16217  DB  72,193,233,32                       ; shr           $0x20,%rcx
16218  DB  102,15,112,219,78                   ; pshufd        $0x4e,%xmm3,%xmm3
16219  DB  102,72,15,126,219                   ; movq          %xmm3,%rbx
16220  DB  65,137,217                          ; mov           %ebx,%r9d
16221  DB  72,193,235,32                       ; shr           $0x20,%rbx
16222  DB  70,15,182,12,8                      ; movzbl        (%rax,%r9,1),%r9d
16223  DB  15,182,28,24                        ; movzbl        (%rax,%rbx,1),%ebx
16224  DB  193,227,8                           ; shl           $0x8,%ebx
16225  DB  68,9,203                            ; or            %r9d,%ebx
16226  DB  70,15,182,4,0                       ; movzbl        (%rax,%r8,1),%r8d
16227  DB  15,182,4,8                          ; movzbl        (%rax,%rcx,1),%eax
16228  DB  193,224,8                           ; shl           $0x8,%eax
16229  DB  68,9,192                            ; or            %r8d,%eax
16230  DB  102,15,196,216,0                    ; pinsrw        $0x0,%eax,%xmm3
16231  DB  102,15,196,219,1                    ; pinsrw        $0x1,%ebx,%xmm3
16232  DB  102,65,15,96,217                    ; punpcklbw     %xmm9,%xmm3
16233  DB  102,65,15,97,217                    ; punpcklwd     %xmm9,%xmm3
16234  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
16235  DB  65,15,89,218                        ; mulps         %xmm10,%xmm3
16236  DB  72,173                              ; lods          %ds:(%rsi),%rax
16237  DB  91                                  ; pop           %rbx
16238  DB  65,94                               ; pop           %r14
16239  DB  255,224                             ; jmpq          *%rax
16240
16241PUBLIC _sk_byte_tables_rgb_sse2
16242_sk_byte_tables_rgb_sse2 LABEL PROC
16243  DB  65,86                               ; push          %r14
16244  DB  83                                  ; push          %rbx
16245  DB  72,173                              ; lods          %ds:(%rsi),%rax
16246  DB  139,72,24                           ; mov           0x18(%rax),%ecx
16247  DB  255,201                             ; dec           %ecx
16248  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
16249  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16250  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16251  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
16252  DB  102,15,91,192                       ; cvtps2dq      %xmm0,%xmm0
16253  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
16254  DB  65,137,200                          ; mov           %ecx,%r8d
16255  DB  72,193,233,32                       ; shr           $0x20,%rcx
16256  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
16257  DB  102,73,15,126,193                   ; movq          %xmm0,%r9
16258  DB  69,137,202                          ; mov           %r9d,%r10d
16259  DB  77,137,203                          ; mov           %r9,%r11
16260  DB  73,193,235,32                       ; shr           $0x20,%r11
16261  DB  76,139,48                           ; mov           (%rax),%r14
16262  DB  76,139,72,8                         ; mov           0x8(%rax),%r9
16263  DB  71,15,182,20,22                     ; movzbl        (%r14,%r10,1),%r10d
16264  DB  67,15,182,28,30                     ; movzbl        (%r14,%r11,1),%ebx
16265  DB  193,227,8                           ; shl           $0x8,%ebx
16266  DB  68,9,211                            ; or            %r10d,%ebx
16267  DB  71,15,182,4,6                       ; movzbl        (%r14,%r8,1),%r8d
16268  DB  65,15,182,12,14                     ; movzbl        (%r14,%rcx,1),%ecx
16269  DB  193,225,8                           ; shl           $0x8,%ecx
16270  DB  68,9,193                            ; or            %r8d,%ecx
16271  DB  102,15,196,193,0                    ; pinsrw        $0x0,%ecx,%xmm0
16272  DB  102,15,196,195,1                    ; pinsrw        $0x1,%ebx,%xmm0
16273  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
16274  DB  102,65,15,96,193                    ; punpcklbw     %xmm9,%xmm0
16275  DB  102,65,15,97,193                    ; punpcklwd     %xmm9,%xmm0
16276  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
16277  DB  185,129,128,128,59                  ; mov           $0x3b808081,%ecx
16278  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16279  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16280  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
16281  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
16282  DB  102,15,91,201                       ; cvtps2dq      %xmm1,%xmm1
16283  DB  102,72,15,126,201                   ; movq          %xmm1,%rcx
16284  DB  65,137,200                          ; mov           %ecx,%r8d
16285  DB  72,193,233,32                       ; shr           $0x20,%rcx
16286  DB  102,15,112,201,78                   ; pshufd        $0x4e,%xmm1,%xmm1
16287  DB  102,72,15,126,203                   ; movq          %xmm1,%rbx
16288  DB  65,137,218                          ; mov           %ebx,%r10d
16289  DB  72,193,235,32                       ; shr           $0x20,%rbx
16290  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
16291  DB  65,15,182,28,25                     ; movzbl        (%r9,%rbx,1),%ebx
16292  DB  193,227,8                           ; shl           $0x8,%ebx
16293  DB  68,9,211                            ; or            %r10d,%ebx
16294  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
16295  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
16296  DB  193,225,8                           ; shl           $0x8,%ecx
16297  DB  68,9,193                            ; or            %r8d,%ecx
16298  DB  102,15,196,201,0                    ; pinsrw        $0x0,%ecx,%xmm1
16299  DB  102,15,196,203,1                    ; pinsrw        $0x1,%ebx,%xmm1
16300  DB  102,65,15,96,201                    ; punpcklbw     %xmm9,%xmm1
16301  DB  102,65,15,97,201                    ; punpcklwd     %xmm9,%xmm1
16302  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
16303  DB  65,15,89,202                        ; mulps         %xmm10,%xmm1
16304  DB  72,139,64,16                        ; mov           0x10(%rax),%rax
16305  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
16306  DB  102,15,91,210                       ; cvtps2dq      %xmm2,%xmm2
16307  DB  102,72,15,126,209                   ; movq          %xmm2,%rcx
16308  DB  65,137,200                          ; mov           %ecx,%r8d
16309  DB  72,193,233,32                       ; shr           $0x20,%rcx
16310  DB  102,15,112,210,78                   ; pshufd        $0x4e,%xmm2,%xmm2
16311  DB  102,72,15,126,211                   ; movq          %xmm2,%rbx
16312  DB  65,137,217                          ; mov           %ebx,%r9d
16313  DB  72,193,235,32                       ; shr           $0x20,%rbx
16314  DB  70,15,182,12,8                      ; movzbl        (%rax,%r9,1),%r9d
16315  DB  15,182,28,24                        ; movzbl        (%rax,%rbx,1),%ebx
16316  DB  193,227,8                           ; shl           $0x8,%ebx
16317  DB  68,9,203                            ; or            %r9d,%ebx
16318  DB  70,15,182,4,0                       ; movzbl        (%rax,%r8,1),%r8d
16319  DB  15,182,4,8                          ; movzbl        (%rax,%rcx,1),%eax
16320  DB  193,224,8                           ; shl           $0x8,%eax
16321  DB  68,9,192                            ; or            %r8d,%eax
16322  DB  102,15,196,208,0                    ; pinsrw        $0x0,%eax,%xmm2
16323  DB  102,15,196,211,1                    ; pinsrw        $0x1,%ebx,%xmm2
16324  DB  102,65,15,96,209                    ; punpcklbw     %xmm9,%xmm2
16325  DB  102,65,15,97,209                    ; punpcklwd     %xmm9,%xmm2
16326  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
16327  DB  65,15,89,210                        ; mulps         %xmm10,%xmm2
16328  DB  72,173                              ; lods          %ds:(%rsi),%rax
16329  DB  91                                  ; pop           %rbx
16330  DB  65,94                               ; pop           %r14
16331  DB  255,224                             ; jmpq          *%rax
16332
16333PUBLIC _sk_table_r_sse2
16334_sk_table_r_sse2 LABEL PROC
16335  DB  72,173                              ; lods          %ds:(%rsi),%rax
16336  DB  76,139,8                            ; mov           (%rax),%r9
16337  DB  139,64,8                            ; mov           0x8(%rax),%eax
16338  DB  255,200                             ; dec           %eax
16339  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16340  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16341  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16342  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
16343  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16344  DB  102,65,15,112,192,78                ; pshufd        $0x4e,%xmm8,%xmm0
16345  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
16346  DB  65,137,192                          ; mov           %eax,%r8d
16347  DB  72,193,232,32                       ; shr           $0x20,%rax
16348  DB  102,76,15,126,193                   ; movq          %xmm8,%rcx
16349  DB  65,137,202                          ; mov           %ecx,%r10d
16350  DB  72,193,233,32                       ; shr           $0x20,%rcx
16351  DB  243,69,15,16,4,137                  ; movss         (%r9,%rcx,4),%xmm8
16352  DB  243,65,15,16,4,129                  ; movss         (%r9,%rax,4),%xmm0
16353  DB  68,15,20,192                        ; unpcklps      %xmm0,%xmm8
16354  DB  243,67,15,16,4,145                  ; movss         (%r9,%r10,4),%xmm0
16355  DB  243,71,15,16,12,129                 ; movss         (%r9,%r8,4),%xmm9
16356  DB  65,15,20,193                        ; unpcklps      %xmm9,%xmm0
16357  DB  65,15,20,192                        ; unpcklps      %xmm8,%xmm0
16358  DB  72,173                              ; lods          %ds:(%rsi),%rax
16359  DB  255,224                             ; jmpq          *%rax
16360
16361PUBLIC _sk_table_g_sse2
16362_sk_table_g_sse2 LABEL PROC
16363  DB  72,173                              ; lods          %ds:(%rsi),%rax
16364  DB  76,139,8                            ; mov           (%rax),%r9
16365  DB  139,64,8                            ; mov           0x8(%rax),%eax
16366  DB  255,200                             ; dec           %eax
16367  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16368  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16369  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16370  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
16371  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16372  DB  102,65,15,112,200,78                ; pshufd        $0x4e,%xmm8,%xmm1
16373  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
16374  DB  65,137,192                          ; mov           %eax,%r8d
16375  DB  72,193,232,32                       ; shr           $0x20,%rax
16376  DB  102,76,15,126,193                   ; movq          %xmm8,%rcx
16377  DB  65,137,202                          ; mov           %ecx,%r10d
16378  DB  72,193,233,32                       ; shr           $0x20,%rcx
16379  DB  243,69,15,16,4,137                  ; movss         (%r9,%rcx,4),%xmm8
16380  DB  243,65,15,16,12,129                 ; movss         (%r9,%rax,4),%xmm1
16381  DB  68,15,20,193                        ; unpcklps      %xmm1,%xmm8
16382  DB  243,67,15,16,12,145                 ; movss         (%r9,%r10,4),%xmm1
16383  DB  243,71,15,16,12,129                 ; movss         (%r9,%r8,4),%xmm9
16384  DB  65,15,20,201                        ; unpcklps      %xmm9,%xmm1
16385  DB  65,15,20,200                        ; unpcklps      %xmm8,%xmm1
16386  DB  72,173                              ; lods          %ds:(%rsi),%rax
16387  DB  255,224                             ; jmpq          *%rax
16388
16389PUBLIC _sk_table_b_sse2
16390_sk_table_b_sse2 LABEL PROC
16391  DB  72,173                              ; lods          %ds:(%rsi),%rax
16392  DB  76,139,8                            ; mov           (%rax),%r9
16393  DB  139,64,8                            ; mov           0x8(%rax),%eax
16394  DB  255,200                             ; dec           %eax
16395  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16396  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16397  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16398  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
16399  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16400  DB  102,65,15,112,208,78                ; pshufd        $0x4e,%xmm8,%xmm2
16401  DB  102,72,15,126,208                   ; movq          %xmm2,%rax
16402  DB  65,137,192                          ; mov           %eax,%r8d
16403  DB  72,193,232,32                       ; shr           $0x20,%rax
16404  DB  102,76,15,126,193                   ; movq          %xmm8,%rcx
16405  DB  65,137,202                          ; mov           %ecx,%r10d
16406  DB  72,193,233,32                       ; shr           $0x20,%rcx
16407  DB  243,69,15,16,4,137                  ; movss         (%r9,%rcx,4),%xmm8
16408  DB  243,65,15,16,20,129                 ; movss         (%r9,%rax,4),%xmm2
16409  DB  68,15,20,194                        ; unpcklps      %xmm2,%xmm8
16410  DB  243,67,15,16,20,145                 ; movss         (%r9,%r10,4),%xmm2
16411  DB  243,71,15,16,12,129                 ; movss         (%r9,%r8,4),%xmm9
16412  DB  65,15,20,209                        ; unpcklps      %xmm9,%xmm2
16413  DB  65,15,20,208                        ; unpcklps      %xmm8,%xmm2
16414  DB  72,173                              ; lods          %ds:(%rsi),%rax
16415  DB  255,224                             ; jmpq          *%rax
16416
16417PUBLIC _sk_table_a_sse2
16418_sk_table_a_sse2 LABEL PROC
16419  DB  72,173                              ; lods          %ds:(%rsi),%rax
16420  DB  76,139,8                            ; mov           (%rax),%r9
16421  DB  139,64,8                            ; mov           0x8(%rax),%eax
16422  DB  255,200                             ; dec           %eax
16423  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16424  DB  102,69,15,112,192,0                 ; pshufd        $0x0,%xmm8,%xmm8
16425  DB  69,15,91,192                        ; cvtdq2ps      %xmm8,%xmm8
16426  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
16427  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16428  DB  102,65,15,112,216,78                ; pshufd        $0x4e,%xmm8,%xmm3
16429  DB  102,72,15,126,216                   ; movq          %xmm3,%rax
16430  DB  65,137,192                          ; mov           %eax,%r8d
16431  DB  72,193,232,32                       ; shr           $0x20,%rax
16432  DB  102,76,15,126,193                   ; movq          %xmm8,%rcx
16433  DB  65,137,202                          ; mov           %ecx,%r10d
16434  DB  72,193,233,32                       ; shr           $0x20,%rcx
16435  DB  243,69,15,16,4,137                  ; movss         (%r9,%rcx,4),%xmm8
16436  DB  243,65,15,16,28,129                 ; movss         (%r9,%rax,4),%xmm3
16437  DB  68,15,20,195                        ; unpcklps      %xmm3,%xmm8
16438  DB  243,67,15,16,28,145                 ; movss         (%r9,%r10,4),%xmm3
16439  DB  243,71,15,16,12,129                 ; movss         (%r9,%r8,4),%xmm9
16440  DB  65,15,20,217                        ; unpcklps      %xmm9,%xmm3
16441  DB  65,15,20,216                        ; unpcklps      %xmm8,%xmm3
16442  DB  72,173                              ; lods          %ds:(%rsi),%rax
16443  DB  255,224                             ; jmpq          *%rax
16444
16445PUBLIC _sk_parametric_r_sse2
16446_sk_parametric_r_sse2 LABEL PROC
16447  DB  72,173                              ; lods          %ds:(%rsi),%rax
16448  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
16449  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16450  DB  243,68,15,16,64,12                  ; movss         0xc(%rax),%xmm8
16451  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16452  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
16453  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
16454  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16455  DB  68,15,89,216                        ; mulps         %xmm0,%xmm11
16456  DB  65,15,194,193,2                     ; cmpleps       %xmm9,%xmm0
16457  DB  243,68,15,16,72,24                  ; movss         0x18(%rax),%xmm9
16458  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16459  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
16460  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
16461  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
16462  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16463  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
16464  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
16465  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
16466  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16467  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16468  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
16469  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
16470  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16471  DB  102,69,15,112,236,0                 ; pshufd        $0x0,%xmm12,%xmm13
16472  DB  102,69,15,219,235                   ; pand          %xmm11,%xmm13
16473  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
16474  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16475  DB  102,69,15,112,227,0                 ; pshufd        $0x0,%xmm11,%xmm12
16476  DB  102,69,15,235,229                   ; por           %xmm13,%xmm12
16477  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
16478  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16479  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16480  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16481  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
16482  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16483  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16484  DB  69,15,89,220                        ; mulps         %xmm12,%xmm11
16485  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16486  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
16487  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
16488  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
16489  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16490  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
16491  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16492  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
16493  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
16494  DB  102,68,15,110,249                   ; movd          %ecx,%xmm15
16495  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16496  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
16497  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16498  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
16499  DB  69,15,94,238                        ; divps         %xmm14,%xmm13
16500  DB  69,15,92,213                        ; subps         %xmm13,%xmm10
16501  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
16502  DB  243,69,15,91,202                    ; cvttps2dq     %xmm10,%xmm9
16503  DB  69,15,91,225                        ; cvtdq2ps      %xmm9,%xmm12
16504  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
16505  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
16506  DB  69,15,88,250                        ; addps         %xmm10,%xmm15
16507  DB  69,15,194,212,1                     ; cmpltps       %xmm12,%xmm10
16508  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16509  DB  69,15,84,211                        ; andps         %xmm11,%xmm10
16510  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
16511  DB  69,15,92,226                        ; subps         %xmm10,%xmm12
16512  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
16513  DB  102,69,15,110,208                   ; movd          %r8d,%xmm10
16514  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16515  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
16516  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16517  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16518  DB  69,15,89,229                        ; mulps         %xmm13,%xmm12
16519  DB  69,15,92,252                        ; subps         %xmm12,%xmm15
16520  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
16521  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16522  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16523  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
16524  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16525  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16526  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
16527  DB  69,15,94,230                        ; divps         %xmm14,%xmm12
16528  DB  69,15,88,231                        ; addps         %xmm15,%xmm12
16529  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
16530  DB  102,69,15,91,212                    ; cvtps2dq      %xmm12,%xmm10
16531  DB  243,68,15,16,96,20                  ; movss         0x14(%rax),%xmm12
16532  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16533  DB  69,15,88,226                        ; addps         %xmm10,%xmm12
16534  DB  68,15,84,192                        ; andps         %xmm0,%xmm8
16535  DB  65,15,85,196                        ; andnps        %xmm12,%xmm0
16536  DB  65,15,86,192                        ; orps          %xmm8,%xmm0
16537  DB  65,15,95,193                        ; maxps         %xmm9,%xmm0
16538  DB  65,15,93,195                        ; minps         %xmm11,%xmm0
16539  DB  72,173                              ; lods          %ds:(%rsi),%rax
16540  DB  255,224                             ; jmpq          *%rax
16541
16542PUBLIC _sk_parametric_g_sse2
16543_sk_parametric_g_sse2 LABEL PROC
16544  DB  72,173                              ; lods          %ds:(%rsi),%rax
16545  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
16546  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16547  DB  243,68,15,16,64,12                  ; movss         0xc(%rax),%xmm8
16548  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16549  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
16550  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
16551  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16552  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
16553  DB  65,15,194,201,2                     ; cmpleps       %xmm9,%xmm1
16554  DB  243,68,15,16,72,24                  ; movss         0x18(%rax),%xmm9
16555  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16556  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
16557  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
16558  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
16559  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16560  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
16561  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
16562  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
16563  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16564  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16565  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
16566  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
16567  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16568  DB  102,69,15,112,236,0                 ; pshufd        $0x0,%xmm12,%xmm13
16569  DB  102,69,15,219,235                   ; pand          %xmm11,%xmm13
16570  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
16571  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16572  DB  102,69,15,112,227,0                 ; pshufd        $0x0,%xmm11,%xmm12
16573  DB  102,69,15,235,229                   ; por           %xmm13,%xmm12
16574  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
16575  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16576  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16577  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16578  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
16579  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16580  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16581  DB  69,15,89,220                        ; mulps         %xmm12,%xmm11
16582  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16583  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
16584  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
16585  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
16586  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16587  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
16588  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16589  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
16590  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
16591  DB  102,68,15,110,249                   ; movd          %ecx,%xmm15
16592  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16593  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
16594  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16595  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
16596  DB  69,15,94,238                        ; divps         %xmm14,%xmm13
16597  DB  69,15,92,213                        ; subps         %xmm13,%xmm10
16598  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
16599  DB  243,69,15,91,202                    ; cvttps2dq     %xmm10,%xmm9
16600  DB  69,15,91,225                        ; cvtdq2ps      %xmm9,%xmm12
16601  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
16602  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
16603  DB  69,15,88,250                        ; addps         %xmm10,%xmm15
16604  DB  69,15,194,212,1                     ; cmpltps       %xmm12,%xmm10
16605  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16606  DB  69,15,84,211                        ; andps         %xmm11,%xmm10
16607  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
16608  DB  69,15,92,226                        ; subps         %xmm10,%xmm12
16609  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
16610  DB  102,69,15,110,208                   ; movd          %r8d,%xmm10
16611  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16612  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
16613  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16614  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16615  DB  69,15,89,229                        ; mulps         %xmm13,%xmm12
16616  DB  69,15,92,252                        ; subps         %xmm12,%xmm15
16617  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
16618  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16619  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16620  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
16621  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16622  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16623  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
16624  DB  69,15,94,230                        ; divps         %xmm14,%xmm12
16625  DB  69,15,88,231                        ; addps         %xmm15,%xmm12
16626  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
16627  DB  102,69,15,91,212                    ; cvtps2dq      %xmm12,%xmm10
16628  DB  243,68,15,16,96,20                  ; movss         0x14(%rax),%xmm12
16629  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16630  DB  69,15,88,226                        ; addps         %xmm10,%xmm12
16631  DB  68,15,84,193                        ; andps         %xmm1,%xmm8
16632  DB  65,15,85,204                        ; andnps        %xmm12,%xmm1
16633  DB  65,15,86,200                        ; orps          %xmm8,%xmm1
16634  DB  65,15,95,201                        ; maxps         %xmm9,%xmm1
16635  DB  65,15,93,203                        ; minps         %xmm11,%xmm1
16636  DB  72,173                              ; lods          %ds:(%rsi),%rax
16637  DB  255,224                             ; jmpq          *%rax
16638
16639PUBLIC _sk_parametric_b_sse2
16640_sk_parametric_b_sse2 LABEL PROC
16641  DB  72,173                              ; lods          %ds:(%rsi),%rax
16642  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
16643  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16644  DB  243,68,15,16,64,12                  ; movss         0xc(%rax),%xmm8
16645  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16646  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
16647  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
16648  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16649  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
16650  DB  65,15,194,209,2                     ; cmpleps       %xmm9,%xmm2
16651  DB  243,68,15,16,72,24                  ; movss         0x18(%rax),%xmm9
16652  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16653  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
16654  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
16655  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
16656  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16657  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
16658  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
16659  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
16660  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16661  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16662  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
16663  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
16664  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16665  DB  102,69,15,112,236,0                 ; pshufd        $0x0,%xmm12,%xmm13
16666  DB  102,69,15,219,235                   ; pand          %xmm11,%xmm13
16667  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
16668  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16669  DB  102,69,15,112,227,0                 ; pshufd        $0x0,%xmm11,%xmm12
16670  DB  102,69,15,235,229                   ; por           %xmm13,%xmm12
16671  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
16672  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16673  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16674  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16675  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
16676  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16677  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16678  DB  69,15,89,220                        ; mulps         %xmm12,%xmm11
16679  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16680  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
16681  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
16682  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
16683  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16684  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
16685  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16686  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
16687  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
16688  DB  102,68,15,110,249                   ; movd          %ecx,%xmm15
16689  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16690  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
16691  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16692  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
16693  DB  69,15,94,238                        ; divps         %xmm14,%xmm13
16694  DB  69,15,92,213                        ; subps         %xmm13,%xmm10
16695  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
16696  DB  243,69,15,91,202                    ; cvttps2dq     %xmm10,%xmm9
16697  DB  69,15,91,225                        ; cvtdq2ps      %xmm9,%xmm12
16698  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
16699  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
16700  DB  69,15,88,250                        ; addps         %xmm10,%xmm15
16701  DB  69,15,194,212,1                     ; cmpltps       %xmm12,%xmm10
16702  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16703  DB  69,15,84,211                        ; andps         %xmm11,%xmm10
16704  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
16705  DB  69,15,92,226                        ; subps         %xmm10,%xmm12
16706  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
16707  DB  102,69,15,110,208                   ; movd          %r8d,%xmm10
16708  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16709  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
16710  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16711  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16712  DB  69,15,89,229                        ; mulps         %xmm13,%xmm12
16713  DB  69,15,92,252                        ; subps         %xmm12,%xmm15
16714  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
16715  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16716  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16717  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
16718  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16719  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16720  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
16721  DB  69,15,94,230                        ; divps         %xmm14,%xmm12
16722  DB  69,15,88,231                        ; addps         %xmm15,%xmm12
16723  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
16724  DB  102,69,15,91,212                    ; cvtps2dq      %xmm12,%xmm10
16725  DB  243,68,15,16,96,20                  ; movss         0x14(%rax),%xmm12
16726  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16727  DB  69,15,88,226                        ; addps         %xmm10,%xmm12
16728  DB  68,15,84,194                        ; andps         %xmm2,%xmm8
16729  DB  65,15,85,212                        ; andnps        %xmm12,%xmm2
16730  DB  65,15,86,208                        ; orps          %xmm8,%xmm2
16731  DB  65,15,95,209                        ; maxps         %xmm9,%xmm2
16732  DB  65,15,93,211                        ; minps         %xmm11,%xmm2
16733  DB  72,173                              ; lods          %ds:(%rsi),%rax
16734  DB  255,224                             ; jmpq          *%rax
16735
16736PUBLIC _sk_parametric_a_sse2
16737_sk_parametric_a_sse2 LABEL PROC
16738  DB  72,173                              ; lods          %ds:(%rsi),%rax
16739  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
16740  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16741  DB  243,68,15,16,64,12                  ; movss         0xc(%rax),%xmm8
16742  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16743  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
16744  DB  243,68,15,16,88,4                   ; movss         0x4(%rax),%xmm11
16745  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16746  DB  68,15,89,219                        ; mulps         %xmm3,%xmm11
16747  DB  65,15,194,217,2                     ; cmpleps       %xmm9,%xmm3
16748  DB  243,68,15,16,72,24                  ; movss         0x18(%rax),%xmm9
16749  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16750  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
16751  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
16752  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
16753  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16754  DB  69,15,88,218                        ; addps         %xmm10,%xmm11
16755  DB  69,15,91,227                        ; cvtdq2ps      %xmm11,%xmm12
16756  DB  185,0,0,0,52                        ; mov           $0x34000000,%ecx
16757  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
16758  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16759  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
16760  DB  185,255,255,127,0                   ; mov           $0x7fffff,%ecx
16761  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16762  DB  102,69,15,112,236,0                 ; pshufd        $0x0,%xmm12,%xmm13
16763  DB  102,69,15,219,235                   ; pand          %xmm11,%xmm13
16764  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
16765  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16766  DB  102,69,15,112,227,0                 ; pshufd        $0x0,%xmm11,%xmm12
16767  DB  102,69,15,235,229                   ; por           %xmm13,%xmm12
16768  DB  185,119,115,248,66                  ; mov           $0x42f87377,%ecx
16769  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16770  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16771  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16772  DB  185,117,191,191,63                  ; mov           $0x3fbfbf75,%ecx
16773  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16774  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16775  DB  69,15,89,220                        ; mulps         %xmm12,%xmm11
16776  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16777  DB  185,163,233,220,63                  ; mov           $0x3fdce9a3,%ecx
16778  DB  102,68,15,110,233                   ; movd          %ecx,%xmm13
16779  DB  185,249,68,180,62                   ; mov           $0x3eb444f9,%ecx
16780  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16781  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
16782  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
16783  DB  65,184,0,0,0,75                     ; mov           $0x4b000000,%r8d
16784  DB  185,81,140,242,66                   ; mov           $0x42f28c51,%ecx
16785  DB  102,68,15,110,249                   ; movd          %ecx,%xmm15
16786  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16787  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
16788  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16789  DB  69,15,88,244                        ; addps         %xmm12,%xmm14
16790  DB  69,15,94,238                        ; divps         %xmm14,%xmm13
16791  DB  69,15,92,213                        ; subps         %xmm13,%xmm10
16792  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
16793  DB  243,69,15,91,202                    ; cvttps2dq     %xmm10,%xmm9
16794  DB  69,15,91,225                        ; cvtdq2ps      %xmm9,%xmm12
16795  DB  69,15,40,234                        ; movaps        %xmm10,%xmm13
16796  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
16797  DB  69,15,88,250                        ; addps         %xmm10,%xmm15
16798  DB  69,15,194,212,1                     ; cmpltps       %xmm12,%xmm10
16799  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16800  DB  69,15,84,211                        ; andps         %xmm11,%xmm10
16801  DB  69,15,87,201                        ; xorps         %xmm9,%xmm9
16802  DB  69,15,92,226                        ; subps         %xmm10,%xmm12
16803  DB  69,15,92,236                        ; subps         %xmm12,%xmm13
16804  DB  102,69,15,110,208                   ; movd          %r8d,%xmm10
16805  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
16806  DB  185,141,188,190,63                  ; mov           $0x3fbebc8d,%ecx
16807  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16808  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16809  DB  69,15,89,229                        ; mulps         %xmm13,%xmm12
16810  DB  69,15,92,252                        ; subps         %xmm12,%xmm15
16811  DB  185,254,210,221,65                  ; mov           $0x41ddd2fe,%ecx
16812  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
16813  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16814  DB  185,248,245,154,64                  ; mov           $0x409af5f8,%ecx
16815  DB  102,68,15,110,241                   ; movd          %ecx,%xmm14
16816  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
16817  DB  69,15,92,245                        ; subps         %xmm13,%xmm14
16818  DB  69,15,94,230                        ; divps         %xmm14,%xmm12
16819  DB  69,15,88,231                        ; addps         %xmm15,%xmm12
16820  DB  69,15,89,226                        ; mulps         %xmm10,%xmm12
16821  DB  102,69,15,91,212                    ; cvtps2dq      %xmm12,%xmm10
16822  DB  243,68,15,16,96,20                  ; movss         0x14(%rax),%xmm12
16823  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16824  DB  69,15,88,226                        ; addps         %xmm10,%xmm12
16825  DB  68,15,84,195                        ; andps         %xmm3,%xmm8
16826  DB  65,15,85,220                        ; andnps        %xmm12,%xmm3
16827  DB  65,15,86,216                        ; orps          %xmm8,%xmm3
16828  DB  65,15,95,217                        ; maxps         %xmm9,%xmm3
16829  DB  65,15,93,219                        ; minps         %xmm11,%xmm3
16830  DB  72,173                              ; lods          %ds:(%rsi),%rax
16831  DB  255,224                             ; jmpq          *%rax
16832
16833PUBLIC _sk_lab_to_xyz_sse2
16834_sk_lab_to_xyz_sse2 LABEL PROC
16835  DB  184,0,0,200,66                      ; mov           $0x42c80000,%eax
16836  DB  102,68,15,110,200                   ; movd          %eax,%xmm9
16837  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
16838  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
16839  DB  184,0,0,127,67                      ; mov           $0x437f0000,%eax
16840  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16841  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16842  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
16843  DB  184,0,0,0,67                        ; mov           $0x43000000,%eax
16844  DB  102,15,110,192                      ; movd          %eax,%xmm0
16845  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
16846  DB  15,92,200                           ; subps         %xmm0,%xmm1
16847  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
16848  DB  68,15,92,192                        ; subps         %xmm0,%xmm8
16849  DB  184,0,0,128,65                      ; mov           $0x41800000,%eax
16850  DB  102,15,110,208                      ; movd          %eax,%xmm2
16851  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
16852  DB  65,15,88,209                        ; addps         %xmm9,%xmm2
16853  DB  184,203,61,13,60                    ; mov           $0x3c0d3dcb,%eax
16854  DB  102,15,110,192                      ; movd          %eax,%xmm0
16855  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
16856  DB  15,89,194                           ; mulps         %xmm2,%xmm0
16857  DB  184,111,18,3,59                     ; mov           $0x3b03126f,%eax
16858  DB  102,15,110,208                      ; movd          %eax,%xmm2
16859  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
16860  DB  15,89,209                           ; mulps         %xmm1,%xmm2
16861  DB  15,88,208                           ; addps         %xmm0,%xmm2
16862  DB  184,10,215,163,59                   ; mov           $0x3ba3d70a,%eax
16863  DB  102,15,110,200                      ; movd          %eax,%xmm1
16864  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
16865  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
16866  DB  68,15,40,208                        ; movaps        %xmm0,%xmm10
16867  DB  68,15,92,209                        ; subps         %xmm1,%xmm10
16868  DB  15,40,202                           ; movaps        %xmm2,%xmm1
16869  DB  15,89,201                           ; mulps         %xmm1,%xmm1
16870  DB  15,89,202                           ; mulps         %xmm2,%xmm1
16871  DB  184,194,24,17,60                    ; mov           $0x3c1118c2,%eax
16872  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
16873  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16874  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
16875  DB  68,15,194,201,1                     ; cmpltps       %xmm1,%xmm9
16876  DB  184,203,61,13,62                    ; mov           $0x3e0d3dcb,%eax
16877  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
16878  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
16879  DB  65,15,92,211                        ; subps         %xmm11,%xmm2
16880  DB  184,80,128,3,62                     ; mov           $0x3e038050,%eax
16881  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
16882  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
16883  DB  65,15,89,212                        ; mulps         %xmm12,%xmm2
16884  DB  65,15,84,201                        ; andps         %xmm9,%xmm1
16885  DB  68,15,85,202                        ; andnps        %xmm2,%xmm9
16886  DB  68,15,86,201                        ; orps          %xmm1,%xmm9
16887  DB  15,40,208                           ; movaps        %xmm0,%xmm2
16888  DB  15,89,210                           ; mulps         %xmm2,%xmm2
16889  DB  15,89,208                           ; mulps         %xmm0,%xmm2
16890  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
16891  DB  15,194,202,1                        ; cmpltps       %xmm2,%xmm1
16892  DB  65,15,92,195                        ; subps         %xmm11,%xmm0
16893  DB  65,15,89,196                        ; mulps         %xmm12,%xmm0
16894  DB  15,84,209                           ; andps         %xmm1,%xmm2
16895  DB  15,85,200                           ; andnps        %xmm0,%xmm1
16896  DB  15,86,202                           ; orps          %xmm2,%xmm1
16897  DB  65,15,40,194                        ; movaps        %xmm10,%xmm0
16898  DB  15,89,192                           ; mulps         %xmm0,%xmm0
16899  DB  65,15,89,194                        ; mulps         %xmm10,%xmm0
16900  DB  68,15,194,192,1                     ; cmpltps       %xmm0,%xmm8
16901  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
16902  DB  69,15,89,212                        ; mulps         %xmm12,%xmm10
16903  DB  65,15,84,192                        ; andps         %xmm8,%xmm0
16904  DB  69,15,85,194                        ; andnps        %xmm10,%xmm8
16905  DB  68,15,86,192                        ; orps          %xmm0,%xmm8
16906  DB  184,31,215,118,63                   ; mov           $0x3f76d71f,%eax
16907  DB  102,15,110,192                      ; movd          %eax,%xmm0
16908  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
16909  DB  65,15,89,193                        ; mulps         %xmm9,%xmm0
16910  DB  184,246,64,83,63                    ; mov           $0x3f5340f6,%eax
16911  DB  102,15,110,208                      ; movd          %eax,%xmm2
16912  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
16913  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
16914  DB  72,173                              ; lods          %ds:(%rsi),%rax
16915  DB  255,224                             ; jmpq          *%rax
16916
16917PUBLIC _sk_load_a8_sse2
16918_sk_load_a8_sse2 LABEL PROC
16919  DB  72,173                              ; lods          %ds:(%rsi),%rax
16920  DB  72,139,0                            ; mov           (%rax),%rax
16921  DB  102,15,110,4,56                     ; movd          (%rax,%rdi,1),%xmm0
16922  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
16923  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
16924  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
16925  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
16926  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
16927  DB  102,15,110,216                      ; movd          %eax,%xmm3
16928  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
16929  DB  15,89,216                           ; mulps         %xmm0,%xmm3
16930  DB  72,173                              ; lods          %ds:(%rsi),%rax
16931  DB  15,87,192                           ; xorps         %xmm0,%xmm0
16932  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
16933  DB  15,87,210                           ; xorps         %xmm2,%xmm2
16934  DB  255,224                             ; jmpq          *%rax
16935
16936PUBLIC _sk_gather_a8_sse2
16937_sk_gather_a8_sse2 LABEL PROC
16938  DB  72,173                              ; lods          %ds:(%rsi),%rax
16939  DB  76,139,8                            ; mov           (%rax),%r9
16940  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
16941  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
16942  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
16943  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
16944  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
16945  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
16946  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
16947  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
16948  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
16949  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
16950  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
16951  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
16952  DB  65,137,192                          ; mov           %eax,%r8d
16953  DB  72,193,232,32                       ; shr           $0x20,%rax
16954  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
16955  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
16956  DB  65,137,202                          ; mov           %ecx,%r10d
16957  DB  72,193,233,32                       ; shr           $0x20,%rcx
16958  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
16959  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
16960  DB  193,225,8                           ; shl           $0x8,%ecx
16961  DB  68,9,209                            ; or            %r10d,%ecx
16962  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
16963  DB  65,15,182,4,1                       ; movzbl        (%r9,%rax,1),%eax
16964  DB  193,224,8                           ; shl           $0x8,%eax
16965  DB  68,9,192                            ; or            %r8d,%eax
16966  DB  102,15,196,192,0                    ; pinsrw        $0x0,%eax,%xmm0
16967  DB  102,15,196,193,1                    ; pinsrw        $0x1,%ecx,%xmm0
16968  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
16969  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
16970  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
16971  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
16972  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
16973  DB  102,15,110,216                      ; movd          %eax,%xmm3
16974  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
16975  DB  15,89,216                           ; mulps         %xmm0,%xmm3
16976  DB  72,173                              ; lods          %ds:(%rsi),%rax
16977  DB  15,87,192                           ; xorps         %xmm0,%xmm0
16978  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
16979  DB  102,15,239,210                      ; pxor          %xmm2,%xmm2
16980  DB  255,224                             ; jmpq          *%rax
16981
16982PUBLIC _sk_store_a8_sse2
16983_sk_store_a8_sse2 LABEL PROC
16984  DB  72,173                              ; lods          %ds:(%rsi),%rax
16985  DB  72,139,0                            ; mov           (%rax),%rax
16986  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
16987  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
16988  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
16989  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
16990  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
16991  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
16992  DB  102,65,15,114,224,16                ; psrad         $0x10,%xmm8
16993  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
16994  DB  102,69,15,103,192                   ; packuswb      %xmm8,%xmm8
16995  DB  102,68,15,126,4,56                  ; movd          %xmm8,(%rax,%rdi,1)
16996  DB  72,173                              ; lods          %ds:(%rsi),%rax
16997  DB  255,224                             ; jmpq          *%rax
16998
16999PUBLIC _sk_load_g8_sse2
17000_sk_load_g8_sse2 LABEL PROC
17001  DB  72,173                              ; lods          %ds:(%rsi),%rax
17002  DB  72,139,0                            ; mov           (%rax),%rax
17003  DB  102,15,110,4,56                     ; movd          (%rax,%rdi,1),%xmm0
17004  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
17005  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
17006  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
17007  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17008  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17009  DB  102,15,110,192                      ; movd          %eax,%xmm0
17010  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17011  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17012  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17013  DB  102,15,110,216                      ; movd          %eax,%xmm3
17014  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17015  DB  72,173                              ; lods          %ds:(%rsi),%rax
17016  DB  15,40,200                           ; movaps        %xmm0,%xmm1
17017  DB  15,40,208                           ; movaps        %xmm0,%xmm2
17018  DB  255,224                             ; jmpq          *%rax
17019
17020PUBLIC _sk_gather_g8_sse2
17021_sk_gather_g8_sse2 LABEL PROC
17022  DB  72,173                              ; lods          %ds:(%rsi),%rax
17023  DB  76,139,8                            ; mov           (%rax),%r9
17024  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17025  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17026  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17027  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17028  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17029  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17030  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17031  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17032  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17033  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17034  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17035  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
17036  DB  65,137,192                          ; mov           %eax,%r8d
17037  DB  72,193,232,32                       ; shr           $0x20,%rax
17038  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
17039  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17040  DB  65,137,202                          ; mov           %ecx,%r10d
17041  DB  72,193,233,32                       ; shr           $0x20,%rcx
17042  DB  71,15,182,20,17                     ; movzbl        (%r9,%r10,1),%r10d
17043  DB  65,15,182,12,9                      ; movzbl        (%r9,%rcx,1),%ecx
17044  DB  193,225,8                           ; shl           $0x8,%ecx
17045  DB  68,9,209                            ; or            %r10d,%ecx
17046  DB  71,15,182,4,1                       ; movzbl        (%r9,%r8,1),%r8d
17047  DB  65,15,182,4,1                       ; movzbl        (%r9,%rax,1),%eax
17048  DB  193,224,8                           ; shl           $0x8,%eax
17049  DB  68,9,192                            ; or            %r8d,%eax
17050  DB  102,15,196,192,0                    ; pinsrw        $0x0,%eax,%xmm0
17051  DB  102,15,196,193,1                    ; pinsrw        $0x1,%ecx,%xmm0
17052  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
17053  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
17054  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
17055  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17056  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17057  DB  102,15,110,192                      ; movd          %eax,%xmm0
17058  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17059  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17060  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17061  DB  102,15,110,216                      ; movd          %eax,%xmm3
17062  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17063  DB  72,173                              ; lods          %ds:(%rsi),%rax
17064  DB  15,40,200                           ; movaps        %xmm0,%xmm1
17065  DB  15,40,208                           ; movaps        %xmm0,%xmm2
17066  DB  255,224                             ; jmpq          *%rax
17067
17068PUBLIC _sk_gather_i8_sse2
17069_sk_gather_i8_sse2 LABEL PROC
17070  DB  72,173                              ; lods          %ds:(%rsi),%rax
17071  DB  73,137,192                          ; mov           %rax,%r8
17072  DB  77,133,192                          ; test          %r8,%r8
17073  DB  116,5                               ; je            2971 <_sk_gather_i8_sse2+0xf>
17074  DB  76,137,192                          ; mov           %r8,%rax
17075  DB  235,2                               ; jmp           2973 <_sk_gather_i8_sse2+0x11>
17076  DB  72,173                              ; lods          %ds:(%rsi),%rax
17077  DB  76,139,16                           ; mov           (%rax),%r10
17078  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17079  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17080  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17081  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17082  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17083  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17084  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17085  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17086  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17087  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17088  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17089  DB  102,72,15,126,192                   ; movq          %xmm0,%rax
17090  DB  65,137,193                          ; mov           %eax,%r9d
17091  DB  72,193,232,32                       ; shr           $0x20,%rax
17092  DB  102,15,112,192,78                   ; pshufd        $0x4e,%xmm0,%xmm0
17093  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17094  DB  65,137,203                          ; mov           %ecx,%r11d
17095  DB  72,193,233,32                       ; shr           $0x20,%rcx
17096  DB  71,15,182,28,26                     ; movzbl        (%r10,%r11,1),%r11d
17097  DB  65,15,182,12,10                     ; movzbl        (%r10,%rcx,1),%ecx
17098  DB  193,225,8                           ; shl           $0x8,%ecx
17099  DB  68,9,217                            ; or            %r11d,%ecx
17100  DB  71,15,182,12,10                     ; movzbl        (%r10,%r9,1),%r9d
17101  DB  65,15,182,4,2                       ; movzbl        (%r10,%rax,1),%eax
17102  DB  193,224,8                           ; shl           $0x8,%eax
17103  DB  68,9,200                            ; or            %r9d,%eax
17104  DB  102,15,196,192,0                    ; pinsrw        $0x0,%eax,%xmm0
17105  DB  102,15,196,193,1                    ; pinsrw        $0x1,%ecx,%xmm0
17106  DB  102,15,239,201                      ; pxor          %xmm1,%xmm1
17107  DB  102,15,96,193                       ; punpcklbw     %xmm1,%xmm0
17108  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
17109  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17110  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17111  DB  68,15,182,200                       ; movzbl        %al,%r9d
17112  DB  72,193,232,32                       ; shr           $0x20,%rax
17113  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17114  DB  77,139,64,8                         ; mov           0x8(%r8),%r8
17115  DB  68,15,182,209                       ; movzbl        %cl,%r10d
17116  DB  72,193,233,30                       ; shr           $0x1e,%rcx
17117  DB  102,65,15,110,4,8                   ; movd          (%r8,%rcx,1),%xmm0
17118  DB  102,65,15,110,12,128                ; movd          (%r8,%rax,4),%xmm1
17119  DB  102,15,98,193                       ; punpckldq     %xmm1,%xmm0
17120  DB  102,67,15,110,28,144                ; movd          (%r8,%r10,4),%xmm3
17121  DB  102,67,15,110,12,136                ; movd          (%r8,%r9,4),%xmm1
17122  DB  102,15,98,217                       ; punpckldq     %xmm1,%xmm3
17123  DB  102,15,98,216                       ; punpckldq     %xmm0,%xmm3
17124  DB  184,255,0,0,0                       ; mov           $0xff,%eax
17125  DB  102,15,110,192                      ; movd          %eax,%xmm0
17126  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17127  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17128  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
17129  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
17130  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17131  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
17132  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
17133  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
17134  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17135  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17136  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17137  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17138  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17139  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
17140  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17141  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17142  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17143  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
17144  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17145  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17146  DB  72,173                              ; lods          %ds:(%rsi),%rax
17147  DB  255,224                             ; jmpq          *%rax
17148
17149PUBLIC _sk_load_565_sse2
17150_sk_load_565_sse2 LABEL PROC
17151  DB  72,173                              ; lods          %ds:(%rsi),%rax
17152  DB  72,139,0                            ; mov           (%rax),%rax
17153  DB  243,15,126,20,120                   ; movq          (%rax,%rdi,2),%xmm2
17154  DB  102,15,239,192                      ; pxor          %xmm0,%xmm0
17155  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
17156  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
17157  DB  102,15,110,192                      ; movd          %eax,%xmm0
17158  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17159  DB  102,15,219,194                      ; pand          %xmm2,%xmm0
17160  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17161  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
17162  DB  102,15,110,192                      ; movd          %eax,%xmm0
17163  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17164  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17165  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
17166  DB  102,15,110,200                      ; movd          %eax,%xmm1
17167  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
17168  DB  102,15,219,202                      ; pand          %xmm2,%xmm1
17169  DB  15,91,217                           ; cvtdq2ps      %xmm1,%xmm3
17170  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
17171  DB  102,15,110,200                      ; movd          %eax,%xmm1
17172  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
17173  DB  15,89,203                           ; mulps         %xmm3,%xmm1
17174  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
17175  DB  102,15,110,216                      ; movd          %eax,%xmm3
17176  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
17177  DB  102,15,219,218                      ; pand          %xmm2,%xmm3
17178  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17179  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
17180  DB  102,15,110,208                      ; movd          %eax,%xmm2
17181  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17182  DB  15,89,211                           ; mulps         %xmm3,%xmm2
17183  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17184  DB  102,15,110,216                      ; movd          %eax,%xmm3
17185  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17186  DB  72,173                              ; lods          %ds:(%rsi),%rax
17187  DB  255,224                             ; jmpq          *%rax
17188
17189PUBLIC _sk_gather_565_sse2
17190_sk_gather_565_sse2 LABEL PROC
17191  DB  72,173                              ; lods          %ds:(%rsi),%rax
17192  DB  76,139,8                            ; mov           (%rax),%r9
17193  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17194  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17195  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17196  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17197  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17198  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17199  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17200  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17201  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17202  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17203  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17204  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17205  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17206  DB  65,137,192                          ; mov           %eax,%r8d
17207  DB  72,193,232,32                       ; shr           $0x20,%rax
17208  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17209  DB  65,137,202                          ; mov           %ecx,%r10d
17210  DB  72,193,233,32                       ; shr           $0x20,%rcx
17211  DB  102,67,15,196,20,81,0               ; pinsrw        $0x0,(%r9,%r10,2),%xmm2
17212  DB  102,65,15,196,20,73,1               ; pinsrw        $0x1,(%r9,%rcx,2),%xmm2
17213  DB  67,15,183,12,65                     ; movzwl        (%r9,%r8,2),%ecx
17214  DB  102,15,196,209,2                    ; pinsrw        $0x2,%ecx,%xmm2
17215  DB  65,15,183,4,65                      ; movzwl        (%r9,%rax,2),%eax
17216  DB  102,15,196,208,3                    ; pinsrw        $0x3,%eax,%xmm2
17217  DB  102,15,239,192                      ; pxor          %xmm0,%xmm0
17218  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
17219  DB  184,0,248,0,0                       ; mov           $0xf800,%eax
17220  DB  102,15,110,192                      ; movd          %eax,%xmm0
17221  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17222  DB  102,15,219,194                      ; pand          %xmm2,%xmm0
17223  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17224  DB  184,8,33,132,55                     ; mov           $0x37842108,%eax
17225  DB  102,15,110,192                      ; movd          %eax,%xmm0
17226  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17227  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17228  DB  184,224,7,0,0                       ; mov           $0x7e0,%eax
17229  DB  102,15,110,200                      ; movd          %eax,%xmm1
17230  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
17231  DB  102,15,219,202                      ; pand          %xmm2,%xmm1
17232  DB  15,91,217                           ; cvtdq2ps      %xmm1,%xmm3
17233  DB  184,33,8,2,58                       ; mov           $0x3a020821,%eax
17234  DB  102,15,110,200                      ; movd          %eax,%xmm1
17235  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
17236  DB  15,89,203                           ; mulps         %xmm3,%xmm1
17237  DB  184,31,0,0,0                        ; mov           $0x1f,%eax
17238  DB  102,15,110,216                      ; movd          %eax,%xmm3
17239  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
17240  DB  102,15,219,218                      ; pand          %xmm2,%xmm3
17241  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17242  DB  184,8,33,4,61                       ; mov           $0x3d042108,%eax
17243  DB  102,15,110,208                      ; movd          %eax,%xmm2
17244  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17245  DB  15,89,211                           ; mulps         %xmm3,%xmm2
17246  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17247  DB  102,15,110,216                      ; movd          %eax,%xmm3
17248  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17249  DB  72,173                              ; lods          %ds:(%rsi),%rax
17250  DB  255,224                             ; jmpq          *%rax
17251
17252PUBLIC _sk_store_565_sse2
17253_sk_store_565_sse2 LABEL PROC
17254  DB  72,173                              ; lods          %ds:(%rsi),%rax
17255  DB  72,139,0                            ; mov           (%rax),%rax
17256  DB  185,0,0,248,65                      ; mov           $0x41f80000,%ecx
17257  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17258  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17259  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17260  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
17261  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17262  DB  102,65,15,114,241,11                ; pslld         $0xb,%xmm9
17263  DB  185,0,0,124,66                      ; mov           $0x427c0000,%ecx
17264  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
17265  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
17266  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
17267  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
17268  DB  102,65,15,114,242,5                 ; pslld         $0x5,%xmm10
17269  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
17270  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
17271  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17272  DB  102,69,15,86,194                    ; orpd          %xmm10,%xmm8
17273  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
17274  DB  102,65,15,114,224,16                ; psrad         $0x10,%xmm8
17275  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17276  DB  102,68,15,214,4,120                 ; movq          %xmm8,(%rax,%rdi,2)
17277  DB  72,173                              ; lods          %ds:(%rsi),%rax
17278  DB  255,224                             ; jmpq          *%rax
17279
17280PUBLIC _sk_load_4444_sse2
17281_sk_load_4444_sse2 LABEL PROC
17282  DB  72,173                              ; lods          %ds:(%rsi),%rax
17283  DB  72,139,0                            ; mov           (%rax),%rax
17284  DB  243,68,15,126,12,120                ; movq          (%rax,%rdi,2),%xmm9
17285  DB  102,15,239,192                      ; pxor          %xmm0,%xmm0
17286  DB  102,68,15,97,200                    ; punpcklwd     %xmm0,%xmm9
17287  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
17288  DB  102,15,110,192                      ; movd          %eax,%xmm0
17289  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17290  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
17291  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17292  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
17293  DB  102,15,110,192                      ; movd          %eax,%xmm0
17294  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17295  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17296  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
17297  DB  102,15,110,200                      ; movd          %eax,%xmm1
17298  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
17299  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
17300  DB  15,91,209                           ; cvtdq2ps      %xmm1,%xmm2
17301  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
17302  DB  102,15,110,200                      ; movd          %eax,%xmm1
17303  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
17304  DB  15,89,202                           ; mulps         %xmm2,%xmm1
17305  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
17306  DB  102,15,110,208                      ; movd          %eax,%xmm2
17307  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17308  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
17309  DB  68,15,91,194                        ; cvtdq2ps      %xmm2,%xmm8
17310  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
17311  DB  102,15,110,208                      ; movd          %eax,%xmm2
17312  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17313  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17314  DB  184,15,0,0,0                        ; mov           $0xf,%eax
17315  DB  102,15,110,216                      ; movd          %eax,%xmm3
17316  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
17317  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
17318  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
17319  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
17320  DB  102,15,110,216                      ; movd          %eax,%xmm3
17321  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17322  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17323  DB  72,173                              ; lods          %ds:(%rsi),%rax
17324  DB  255,224                             ; jmpq          *%rax
17325
17326PUBLIC _sk_gather_4444_sse2
17327_sk_gather_4444_sse2 LABEL PROC
17328  DB  72,173                              ; lods          %ds:(%rsi),%rax
17329  DB  76,139,8                            ; mov           (%rax),%r9
17330  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17331  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17332  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17333  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17334  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17335  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17336  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17337  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17338  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17339  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17340  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17341  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17342  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17343  DB  65,137,192                          ; mov           %eax,%r8d
17344  DB  72,193,232,32                       ; shr           $0x20,%rax
17345  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17346  DB  65,137,202                          ; mov           %ecx,%r10d
17347  DB  72,193,233,32                       ; shr           $0x20,%rcx
17348  DB  102,71,15,196,12,81,0               ; pinsrw        $0x0,(%r9,%r10,2),%xmm9
17349  DB  102,69,15,196,12,73,1               ; pinsrw        $0x1,(%r9,%rcx,2),%xmm9
17350  DB  67,15,183,12,65                     ; movzwl        (%r9,%r8,2),%ecx
17351  DB  102,68,15,196,201,2                 ; pinsrw        $0x2,%ecx,%xmm9
17352  DB  65,15,183,4,65                      ; movzwl        (%r9,%rax,2),%eax
17353  DB  102,68,15,196,200,3                 ; pinsrw        $0x3,%eax,%xmm9
17354  DB  102,15,239,192                      ; pxor          %xmm0,%xmm0
17355  DB  102,68,15,97,200                    ; punpcklwd     %xmm0,%xmm9
17356  DB  184,0,240,0,0                       ; mov           $0xf000,%eax
17357  DB  102,15,110,192                      ; movd          %eax,%xmm0
17358  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17359  DB  102,65,15,219,193                   ; pand          %xmm9,%xmm0
17360  DB  15,91,200                           ; cvtdq2ps      %xmm0,%xmm1
17361  DB  184,137,136,136,55                  ; mov           $0x37888889,%eax
17362  DB  102,15,110,192                      ; movd          %eax,%xmm0
17363  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
17364  DB  15,89,193                           ; mulps         %xmm1,%xmm0
17365  DB  184,0,15,0,0                        ; mov           $0xf00,%eax
17366  DB  102,15,110,200                      ; movd          %eax,%xmm1
17367  DB  102,15,112,201,0                    ; pshufd        $0x0,%xmm1,%xmm1
17368  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
17369  DB  15,91,209                           ; cvtdq2ps      %xmm1,%xmm2
17370  DB  184,137,136,136,57                  ; mov           $0x39888889,%eax
17371  DB  102,15,110,200                      ; movd          %eax,%xmm1
17372  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
17373  DB  15,89,202                           ; mulps         %xmm2,%xmm1
17374  DB  184,240,0,0,0                       ; mov           $0xf0,%eax
17375  DB  102,15,110,208                      ; movd          %eax,%xmm2
17376  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17377  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
17378  DB  68,15,91,194                        ; cvtdq2ps      %xmm2,%xmm8
17379  DB  184,137,136,136,59                  ; mov           $0x3b888889,%eax
17380  DB  102,15,110,208                      ; movd          %eax,%xmm2
17381  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
17382  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17383  DB  184,15,0,0,0                        ; mov           $0xf,%eax
17384  DB  102,15,110,216                      ; movd          %eax,%xmm3
17385  DB  102,15,112,219,0                    ; pshufd        $0x0,%xmm3,%xmm3
17386  DB  102,65,15,219,217                   ; pand          %xmm9,%xmm3
17387  DB  68,15,91,195                        ; cvtdq2ps      %xmm3,%xmm8
17388  DB  184,137,136,136,61                  ; mov           $0x3d888889,%eax
17389  DB  102,15,110,216                      ; movd          %eax,%xmm3
17390  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17391  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17392  DB  72,173                              ; lods          %ds:(%rsi),%rax
17393  DB  255,224                             ; jmpq          *%rax
17394
17395PUBLIC _sk_store_4444_sse2
17396_sk_store_4444_sse2 LABEL PROC
17397  DB  72,173                              ; lods          %ds:(%rsi),%rax
17398  DB  72,139,0                            ; mov           (%rax),%rax
17399  DB  185,0,0,112,65                      ; mov           $0x41700000,%ecx
17400  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17401  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17402  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17403  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
17404  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17405  DB  102,65,15,114,241,12                ; pslld         $0xc,%xmm9
17406  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
17407  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
17408  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
17409  DB  102,65,15,114,242,8                 ; pslld         $0x8,%xmm10
17410  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
17411  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17412  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
17413  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17414  DB  102,65,15,114,241,4                 ; pslld         $0x4,%xmm9
17415  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
17416  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17417  DB  102,69,15,86,193                    ; orpd          %xmm9,%xmm8
17418  DB  102,69,15,86,194                    ; orpd          %xmm10,%xmm8
17419  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
17420  DB  102,65,15,114,224,16                ; psrad         $0x10,%xmm8
17421  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17422  DB  102,68,15,214,4,120                 ; movq          %xmm8,(%rax,%rdi,2)
17423  DB  72,173                              ; lods          %ds:(%rsi),%rax
17424  DB  255,224                             ; jmpq          *%rax
17425
17426PUBLIC _sk_load_8888_sse2
17427_sk_load_8888_sse2 LABEL PROC
17428  DB  72,173                              ; lods          %ds:(%rsi),%rax
17429  DB  72,139,0                            ; mov           (%rax),%rax
17430  DB  243,15,111,28,184                   ; movdqu        (%rax,%rdi,4),%xmm3
17431  DB  184,255,0,0,0                       ; mov           $0xff,%eax
17432  DB  102,15,110,192                      ; movd          %eax,%xmm0
17433  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17434  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17435  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
17436  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
17437  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17438  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
17439  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
17440  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
17441  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17442  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17443  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17444  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17445  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17446  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
17447  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17448  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17449  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17450  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
17451  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17452  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17453  DB  72,173                              ; lods          %ds:(%rsi),%rax
17454  DB  255,224                             ; jmpq          *%rax
17455
17456PUBLIC _sk_gather_8888_sse2
17457_sk_gather_8888_sse2 LABEL PROC
17458  DB  72,173                              ; lods          %ds:(%rsi),%rax
17459  DB  76,139,8                            ; mov           (%rax),%r9
17460  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17461  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17462  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17463  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17464  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17465  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17466  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17467  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17468  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17469  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17470  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17471  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17472  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17473  DB  65,137,192                          ; mov           %eax,%r8d
17474  DB  72,193,232,32                       ; shr           $0x20,%rax
17475  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17476  DB  65,137,202                          ; mov           %ecx,%r10d
17477  DB  72,193,233,32                       ; shr           $0x20,%rcx
17478  DB  102,65,15,110,4,137                 ; movd          (%r9,%rcx,4),%xmm0
17479  DB  102,65,15,110,12,129                ; movd          (%r9,%rax,4),%xmm1
17480  DB  102,15,98,193                       ; punpckldq     %xmm1,%xmm0
17481  DB  102,67,15,110,28,145                ; movd          (%r9,%r10,4),%xmm3
17482  DB  102,67,15,110,12,129                ; movd          (%r9,%r8,4),%xmm1
17483  DB  102,15,98,217                       ; punpckldq     %xmm1,%xmm3
17484  DB  102,15,98,216                       ; punpckldq     %xmm0,%xmm3
17485  DB  184,255,0,0,0                       ; mov           $0xff,%eax
17486  DB  102,15,110,192                      ; movd          %eax,%xmm0
17487  DB  102,15,112,192,0                    ; pshufd        $0x0,%xmm0,%xmm0
17488  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17489  DB  102,15,114,209,8                    ; psrld         $0x8,%xmm1
17490  DB  102,15,219,200                      ; pand          %xmm0,%xmm1
17491  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17492  DB  102,15,114,210,16                   ; psrld         $0x10,%xmm2
17493  DB  102,15,219,208                      ; pand          %xmm0,%xmm2
17494  DB  102,15,219,195                      ; pand          %xmm3,%xmm0
17495  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17496  DB  184,129,128,128,59                  ; mov           $0x3b808081,%eax
17497  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17498  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17499  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17500  DB  15,91,201                           ; cvtdq2ps      %xmm1,%xmm1
17501  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17502  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17503  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17504  DB  102,15,114,211,24                   ; psrld         $0x18,%xmm3
17505  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17506  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17507  DB  72,173                              ; lods          %ds:(%rsi),%rax
17508  DB  255,224                             ; jmpq          *%rax
17509
17510PUBLIC _sk_store_8888_sse2
17511_sk_store_8888_sse2 LABEL PROC
17512  DB  72,173                              ; lods          %ds:(%rsi),%rax
17513  DB  72,139,0                            ; mov           (%rax),%rax
17514  DB  185,0,0,127,67                      ; mov           $0x437f0000,%ecx
17515  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17516  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17517  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17518  DB  68,15,89,200                        ; mulps         %xmm0,%xmm9
17519  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17520  DB  69,15,40,208                        ; movaps        %xmm8,%xmm10
17521  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
17522  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
17523  DB  102,65,15,114,242,8                 ; pslld         $0x8,%xmm10
17524  DB  102,69,15,235,209                   ; por           %xmm9,%xmm10
17525  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17526  DB  68,15,89,202                        ; mulps         %xmm2,%xmm9
17527  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17528  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
17529  DB  68,15,89,195                        ; mulps         %xmm3,%xmm8
17530  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17531  DB  102,65,15,114,240,24                ; pslld         $0x18,%xmm8
17532  DB  102,69,15,235,193                   ; por           %xmm9,%xmm8
17533  DB  102,69,15,235,194                   ; por           %xmm10,%xmm8
17534  DB  243,68,15,127,4,184                 ; movdqu        %xmm8,(%rax,%rdi,4)
17535  DB  72,173                              ; lods          %ds:(%rsi),%rax
17536  DB  255,224                             ; jmpq          *%rax
17537
17538PUBLIC _sk_load_f16_sse2
17539_sk_load_f16_sse2 LABEL PROC
17540  DB  72,173                              ; lods          %ds:(%rsi),%rax
17541  DB  72,139,0                            ; mov           (%rax),%rax
17542  DB  243,15,111,4,248                    ; movdqu        (%rax,%rdi,8),%xmm0
17543  DB  243,15,111,76,248,16                ; movdqu        0x10(%rax,%rdi,8),%xmm1
17544  DB  102,68,15,111,192                   ; movdqa        %xmm0,%xmm8
17545  DB  102,68,15,97,193                    ; punpcklwd     %xmm1,%xmm8
17546  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
17547  DB  102,69,15,111,224                   ; movdqa        %xmm8,%xmm12
17548  DB  102,68,15,97,224                    ; punpcklwd     %xmm0,%xmm12
17549  DB  102,68,15,105,192                   ; punpckhwd     %xmm0,%xmm8
17550  DB  102,69,15,239,210                   ; pxor          %xmm10,%xmm10
17551  DB  102,69,15,111,236                   ; movdqa        %xmm12,%xmm13
17552  DB  102,69,15,97,234                    ; punpcklwd     %xmm10,%xmm13
17553  DB  184,0,128,0,0                       ; mov           $0x8000,%eax
17554  DB  102,15,110,192                      ; movd          %eax,%xmm0
17555  DB  102,68,15,112,200,0                 ; pshufd        $0x0,%xmm0,%xmm9
17556  DB  102,65,15,111,205                   ; movdqa        %xmm13,%xmm1
17557  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
17558  DB  102,68,15,239,233                   ; pxor          %xmm1,%xmm13
17559  DB  184,0,4,0,0                         ; mov           $0x400,%eax
17560  DB  102,15,110,192                      ; movd          %eax,%xmm0
17561  DB  102,15,112,216,0                    ; pshufd        $0x0,%xmm0,%xmm3
17562  DB  102,15,114,241,16                   ; pslld         $0x10,%xmm1
17563  DB  102,15,111,195                      ; movdqa        %xmm3,%xmm0
17564  DB  102,65,15,102,197                   ; pcmpgtd       %xmm13,%xmm0
17565  DB  102,65,15,114,245,13                ; pslld         $0xd,%xmm13
17566  DB  184,0,0,0,56                        ; mov           $0x38000000,%eax
17567  DB  102,15,110,208                      ; movd          %eax,%xmm2
17568  DB  102,68,15,112,218,0                 ; pshufd        $0x0,%xmm2,%xmm11
17569  DB  102,65,15,254,203                   ; paddd         %xmm11,%xmm1
17570  DB  102,65,15,254,205                   ; paddd         %xmm13,%xmm1
17571  DB  102,15,223,193                      ; pandn         %xmm1,%xmm0
17572  DB  102,65,15,115,220,8                 ; psrldq        $0x8,%xmm12
17573  DB  102,69,15,97,226                    ; punpcklwd     %xmm10,%xmm12
17574  DB  102,65,15,111,212                   ; movdqa        %xmm12,%xmm2
17575  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
17576  DB  102,68,15,239,226                   ; pxor          %xmm2,%xmm12
17577  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
17578  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17579  DB  102,65,15,102,204                   ; pcmpgtd       %xmm12,%xmm1
17580  DB  102,65,15,114,244,13                ; pslld         $0xd,%xmm12
17581  DB  102,65,15,254,211                   ; paddd         %xmm11,%xmm2
17582  DB  102,65,15,254,212                   ; paddd         %xmm12,%xmm2
17583  DB  102,15,223,202                      ; pandn         %xmm2,%xmm1
17584  DB  102,69,15,111,224                   ; movdqa        %xmm8,%xmm12
17585  DB  102,69,15,97,226                    ; punpcklwd     %xmm10,%xmm12
17586  DB  102,69,15,111,236                   ; movdqa        %xmm12,%xmm13
17587  DB  102,69,15,219,233                   ; pand          %xmm9,%xmm13
17588  DB  102,69,15,239,229                   ; pxor          %xmm13,%xmm12
17589  DB  102,65,15,114,245,16                ; pslld         $0x10,%xmm13
17590  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17591  DB  102,65,15,102,212                   ; pcmpgtd       %xmm12,%xmm2
17592  DB  102,65,15,114,244,13                ; pslld         $0xd,%xmm12
17593  DB  102,69,15,254,235                   ; paddd         %xmm11,%xmm13
17594  DB  102,69,15,254,236                   ; paddd         %xmm12,%xmm13
17595  DB  102,65,15,223,213                   ; pandn         %xmm13,%xmm2
17596  DB  102,65,15,115,216,8                 ; psrldq        $0x8,%xmm8
17597  DB  102,69,15,97,194                    ; punpcklwd     %xmm10,%xmm8
17598  DB  102,69,15,219,200                   ; pand          %xmm8,%xmm9
17599  DB  102,69,15,239,193                   ; pxor          %xmm9,%xmm8
17600  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
17601  DB  102,65,15,102,216                   ; pcmpgtd       %xmm8,%xmm3
17602  DB  102,65,15,114,240,13                ; pslld         $0xd,%xmm8
17603  DB  102,69,15,254,203                   ; paddd         %xmm11,%xmm9
17604  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
17605  DB  102,65,15,223,217                   ; pandn         %xmm9,%xmm3
17606  DB  72,173                              ; lods          %ds:(%rsi),%rax
17607  DB  255,224                             ; jmpq          *%rax
17608
17609PUBLIC _sk_gather_f16_sse2
17610_sk_gather_f16_sse2 LABEL PROC
17611  DB  72,173                              ; lods          %ds:(%rsi),%rax
17612  DB  76,139,8                            ; mov           (%rax),%r9
17613  DB  243,15,91,201                       ; cvttps2dq     %xmm1,%xmm1
17614  DB  102,15,110,80,16                    ; movd          0x10(%rax),%xmm2
17615  DB  102,15,112,210,0                    ; pshufd        $0x0,%xmm2,%xmm2
17616  DB  102,15,112,217,245                  ; pshufd        $0xf5,%xmm1,%xmm3
17617  DB  102,15,244,218                      ; pmuludq       %xmm2,%xmm3
17618  DB  102,15,112,219,232                  ; pshufd        $0xe8,%xmm3,%xmm3
17619  DB  102,15,244,209                      ; pmuludq       %xmm1,%xmm2
17620  DB  102,15,112,202,232                  ; pshufd        $0xe8,%xmm2,%xmm1
17621  DB  102,15,98,203                       ; punpckldq     %xmm3,%xmm1
17622  DB  243,15,91,192                       ; cvttps2dq     %xmm0,%xmm0
17623  DB  102,15,254,193                      ; paddd         %xmm1,%xmm0
17624  DB  102,15,112,200,78                   ; pshufd        $0x4e,%xmm0,%xmm1
17625  DB  102,72,15,126,200                   ; movq          %xmm1,%rax
17626  DB  65,137,192                          ; mov           %eax,%r8d
17627  DB  72,193,232,32                       ; shr           $0x20,%rax
17628  DB  102,72,15,126,193                   ; movq          %xmm0,%rcx
17629  DB  65,137,202                          ; mov           %ecx,%r10d
17630  DB  72,193,233,32                       ; shr           $0x20,%rcx
17631  DB  243,65,15,126,4,201                 ; movq          (%r9,%rcx,8),%xmm0
17632  DB  243,67,15,126,12,209                ; movq          (%r9,%r10,8),%xmm1
17633  DB  102,15,108,200                      ; punpcklqdq    %xmm0,%xmm1
17634  DB  243,65,15,126,4,193                 ; movq          (%r9,%rax,8),%xmm0
17635  DB  243,67,15,126,20,193                ; movq          (%r9,%r8,8),%xmm2
17636  DB  102,15,108,208                      ; punpcklqdq    %xmm0,%xmm2
17637  DB  102,68,15,111,193                   ; movdqa        %xmm1,%xmm8
17638  DB  102,68,15,97,194                    ; punpcklwd     %xmm2,%xmm8
17639  DB  102,15,105,202                      ; punpckhwd     %xmm2,%xmm1
17640  DB  102,69,15,111,224                   ; movdqa        %xmm8,%xmm12
17641  DB  102,68,15,97,225                    ; punpcklwd     %xmm1,%xmm12
17642  DB  102,68,15,105,193                   ; punpckhwd     %xmm1,%xmm8
17643  DB  102,69,15,239,210                   ; pxor          %xmm10,%xmm10
17644  DB  102,69,15,111,236                   ; movdqa        %xmm12,%xmm13
17645  DB  102,69,15,97,234                    ; punpcklwd     %xmm10,%xmm13
17646  DB  184,0,128,0,0                       ; mov           $0x8000,%eax
17647  DB  102,15,110,192                      ; movd          %eax,%xmm0
17648  DB  102,68,15,112,200,0                 ; pshufd        $0x0,%xmm0,%xmm9
17649  DB  102,65,15,111,205                   ; movdqa        %xmm13,%xmm1
17650  DB  102,65,15,219,201                   ; pand          %xmm9,%xmm1
17651  DB  102,68,15,239,233                   ; pxor          %xmm1,%xmm13
17652  DB  184,0,4,0,0                         ; mov           $0x400,%eax
17653  DB  102,15,110,192                      ; movd          %eax,%xmm0
17654  DB  102,15,112,216,0                    ; pshufd        $0x0,%xmm0,%xmm3
17655  DB  102,15,114,241,16                   ; pslld         $0x10,%xmm1
17656  DB  102,15,111,195                      ; movdqa        %xmm3,%xmm0
17657  DB  102,65,15,102,197                   ; pcmpgtd       %xmm13,%xmm0
17658  DB  102,65,15,114,245,13                ; pslld         $0xd,%xmm13
17659  DB  184,0,0,0,56                        ; mov           $0x38000000,%eax
17660  DB  102,15,110,208                      ; movd          %eax,%xmm2
17661  DB  102,68,15,112,218,0                 ; pshufd        $0x0,%xmm2,%xmm11
17662  DB  102,65,15,254,203                   ; paddd         %xmm11,%xmm1
17663  DB  102,65,15,254,205                   ; paddd         %xmm13,%xmm1
17664  DB  102,15,223,193                      ; pandn         %xmm1,%xmm0
17665  DB  102,65,15,115,220,8                 ; psrldq        $0x8,%xmm12
17666  DB  102,69,15,97,226                    ; punpcklwd     %xmm10,%xmm12
17667  DB  102,65,15,111,212                   ; movdqa        %xmm12,%xmm2
17668  DB  102,65,15,219,209                   ; pand          %xmm9,%xmm2
17669  DB  102,68,15,239,226                   ; pxor          %xmm2,%xmm12
17670  DB  102,15,114,242,16                   ; pslld         $0x10,%xmm2
17671  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17672  DB  102,65,15,102,204                   ; pcmpgtd       %xmm12,%xmm1
17673  DB  102,65,15,114,244,13                ; pslld         $0xd,%xmm12
17674  DB  102,65,15,254,211                   ; paddd         %xmm11,%xmm2
17675  DB  102,65,15,254,212                   ; paddd         %xmm12,%xmm2
17676  DB  102,15,223,202                      ; pandn         %xmm2,%xmm1
17677  DB  102,69,15,111,224                   ; movdqa        %xmm8,%xmm12
17678  DB  102,69,15,97,226                    ; punpcklwd     %xmm10,%xmm12
17679  DB  102,69,15,111,236                   ; movdqa        %xmm12,%xmm13
17680  DB  102,69,15,219,233                   ; pand          %xmm9,%xmm13
17681  DB  102,69,15,239,229                   ; pxor          %xmm13,%xmm12
17682  DB  102,65,15,114,245,16                ; pslld         $0x10,%xmm13
17683  DB  102,15,111,211                      ; movdqa        %xmm3,%xmm2
17684  DB  102,65,15,102,212                   ; pcmpgtd       %xmm12,%xmm2
17685  DB  102,65,15,114,244,13                ; pslld         $0xd,%xmm12
17686  DB  102,69,15,254,235                   ; paddd         %xmm11,%xmm13
17687  DB  102,69,15,254,236                   ; paddd         %xmm12,%xmm13
17688  DB  102,65,15,223,213                   ; pandn         %xmm13,%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,65,15,102,216                   ; pcmpgtd       %xmm8,%xmm3
17695  DB  102,65,15,114,240,13                ; pslld         $0xd,%xmm8
17696  DB  102,69,15,254,203                   ; paddd         %xmm11,%xmm9
17697  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
17698  DB  102,65,15,223,217                   ; pandn         %xmm9,%xmm3
17699  DB  72,173                              ; lods          %ds:(%rsi),%rax
17700  DB  255,224                             ; jmpq          *%rax
17701
17702PUBLIC _sk_store_f16_sse2
17703_sk_store_f16_sse2 LABEL PROC
17704  DB  72,173                              ; lods          %ds:(%rsi),%rax
17705  DB  72,139,0                            ; mov           (%rax),%rax
17706  DB  185,0,0,0,128                       ; mov           $0x80000000,%ecx
17707  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17708  DB  102,69,15,112,200,0                 ; pshufd        $0x0,%xmm8,%xmm9
17709  DB  102,69,15,111,225                   ; movdqa        %xmm9,%xmm12
17710  DB  102,68,15,219,224                   ; pand          %xmm0,%xmm12
17711  DB  102,68,15,111,232                   ; movdqa        %xmm0,%xmm13
17712  DB  102,69,15,239,236                   ; pxor          %xmm12,%xmm13
17713  DB  185,0,0,128,56                      ; mov           $0x38800000,%ecx
17714  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
17715  DB  102,69,15,112,208,0                 ; pshufd        $0x0,%xmm8,%xmm10
17716  DB  102,65,15,114,212,16                ; psrld         $0x10,%xmm12
17717  DB  102,69,15,111,194                   ; movdqa        %xmm10,%xmm8
17718  DB  102,69,15,102,197                   ; pcmpgtd       %xmm13,%xmm8
17719  DB  102,65,15,114,213,13                ; psrld         $0xd,%xmm13
17720  DB  185,0,192,1,0                       ; mov           $0x1c000,%ecx
17721  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
17722  DB  102,69,15,112,219,0                 ; pshufd        $0x0,%xmm11,%xmm11
17723  DB  102,69,15,250,227                   ; psubd         %xmm11,%xmm12
17724  DB  102,69,15,254,229                   ; paddd         %xmm13,%xmm12
17725  DB  102,65,15,114,244,16                ; pslld         $0x10,%xmm12
17726  DB  102,65,15,114,228,16                ; psrad         $0x10,%xmm12
17727  DB  102,69,15,223,196                   ; pandn         %xmm12,%xmm8
17728  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17729  DB  102,69,15,111,233                   ; movdqa        %xmm9,%xmm13
17730  DB  102,68,15,219,233                   ; pand          %xmm1,%xmm13
17731  DB  102,68,15,111,241                   ; movdqa        %xmm1,%xmm14
17732  DB  102,69,15,239,245                   ; pxor          %xmm13,%xmm14
17733  DB  102,65,15,114,213,16                ; psrld         $0x10,%xmm13
17734  DB  102,69,15,111,226                   ; movdqa        %xmm10,%xmm12
17735  DB  102,69,15,102,230                   ; pcmpgtd       %xmm14,%xmm12
17736  DB  102,65,15,114,214,13                ; psrld         $0xd,%xmm14
17737  DB  102,69,15,250,235                   ; psubd         %xmm11,%xmm13
17738  DB  102,69,15,254,238                   ; paddd         %xmm14,%xmm13
17739  DB  102,65,15,114,245,16                ; pslld         $0x10,%xmm13
17740  DB  102,65,15,114,229,16                ; psrad         $0x10,%xmm13
17741  DB  102,69,15,223,229                   ; pandn         %xmm13,%xmm12
17742  DB  102,69,15,107,228                   ; packssdw      %xmm12,%xmm12
17743  DB  102,69,15,111,241                   ; movdqa        %xmm9,%xmm14
17744  DB  102,68,15,219,242                   ; pand          %xmm2,%xmm14
17745  DB  102,68,15,111,250                   ; movdqa        %xmm2,%xmm15
17746  DB  102,69,15,239,254                   ; pxor          %xmm14,%xmm15
17747  DB  102,65,15,114,214,16                ; psrld         $0x10,%xmm14
17748  DB  102,69,15,111,234                   ; movdqa        %xmm10,%xmm13
17749  DB  102,69,15,102,239                   ; pcmpgtd       %xmm15,%xmm13
17750  DB  102,65,15,114,215,13                ; psrld         $0xd,%xmm15
17751  DB  102,69,15,250,243                   ; psubd         %xmm11,%xmm14
17752  DB  102,69,15,254,247                   ; paddd         %xmm15,%xmm14
17753  DB  102,65,15,114,246,16                ; pslld         $0x10,%xmm14
17754  DB  102,65,15,114,230,16                ; psrad         $0x10,%xmm14
17755  DB  102,69,15,223,238                   ; pandn         %xmm14,%xmm13
17756  DB  102,69,15,107,237                   ; packssdw      %xmm13,%xmm13
17757  DB  102,68,15,219,203                   ; pand          %xmm3,%xmm9
17758  DB  102,68,15,111,243                   ; movdqa        %xmm3,%xmm14
17759  DB  102,69,15,239,241                   ; pxor          %xmm9,%xmm14
17760  DB  102,65,15,114,209,16                ; psrld         $0x10,%xmm9
17761  DB  102,69,15,102,214                   ; pcmpgtd       %xmm14,%xmm10
17762  DB  102,65,15,114,214,13                ; psrld         $0xd,%xmm14
17763  DB  102,69,15,250,203                   ; psubd         %xmm11,%xmm9
17764  DB  102,69,15,254,206                   ; paddd         %xmm14,%xmm9
17765  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
17766  DB  102,65,15,114,225,16                ; psrad         $0x10,%xmm9
17767  DB  102,69,15,223,209                   ; pandn         %xmm9,%xmm10
17768  DB  102,69,15,107,210                   ; packssdw      %xmm10,%xmm10
17769  DB  102,69,15,97,196                    ; punpcklwd     %xmm12,%xmm8
17770  DB  102,69,15,97,234                    ; punpcklwd     %xmm10,%xmm13
17771  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
17772  DB  102,69,15,98,205                    ; punpckldq     %xmm13,%xmm9
17773  DB  243,68,15,127,12,248                ; movdqu        %xmm9,(%rax,%rdi,8)
17774  DB  102,69,15,106,197                   ; punpckhdq     %xmm13,%xmm8
17775  DB  243,68,15,127,68,248,16             ; movdqu        %xmm8,0x10(%rax,%rdi,8)
17776  DB  72,173                              ; lods          %ds:(%rsi),%rax
17777  DB  255,224                             ; jmpq          *%rax
17778
17779PUBLIC _sk_load_u16_be_sse2
17780_sk_load_u16_be_sse2 LABEL PROC
17781  DB  72,173                              ; lods          %ds:(%rsi),%rax
17782  DB  72,139,0                            ; mov           (%rax),%rax
17783  DB  243,15,111,4,248                    ; movdqu        (%rax,%rdi,8),%xmm0
17784  DB  243,15,111,76,248,16                ; movdqu        0x10(%rax,%rdi,8),%xmm1
17785  DB  102,15,111,208                      ; movdqa        %xmm0,%xmm2
17786  DB  102,15,97,209                       ; punpcklwd     %xmm1,%xmm2
17787  DB  102,15,105,193                      ; punpckhwd     %xmm1,%xmm0
17788  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
17789  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
17790  DB  102,15,105,208                      ; punpckhwd     %xmm0,%xmm2
17791  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
17792  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17793  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17794  DB  102,15,111,193                      ; movdqa        %xmm1,%xmm0
17795  DB  102,15,113,240,8                    ; psllw         $0x8,%xmm0
17796  DB  102,15,112,217,78                   ; pshufd        $0x4e,%xmm1,%xmm3
17797  DB  102,15,113,209,8                    ; psrlw         $0x8,%xmm1
17798  DB  102,15,235,200                      ; por           %xmm0,%xmm1
17799  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
17800  DB  102,65,15,97,201                    ; punpcklwd     %xmm9,%xmm1
17801  DB  15,91,193                           ; cvtdq2ps      %xmm1,%xmm0
17802  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17803  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17804  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
17805  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
17806  DB  102,15,235,217                      ; por           %xmm1,%xmm3
17807  DB  102,65,15,97,217                    ; punpcklwd     %xmm9,%xmm3
17808  DB  15,91,203                           ; cvtdq2ps      %xmm3,%xmm1
17809  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17810  DB  102,68,15,111,210                   ; movdqa        %xmm2,%xmm10
17811  DB  102,65,15,113,242,8                 ; psllw         $0x8,%xmm10
17812  DB  102,15,112,218,78                   ; pshufd        $0x4e,%xmm2,%xmm3
17813  DB  102,15,113,210,8                    ; psrlw         $0x8,%xmm2
17814  DB  102,65,15,235,210                   ; por           %xmm10,%xmm2
17815  DB  102,65,15,97,209                    ; punpcklwd     %xmm9,%xmm2
17816  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17817  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17818  DB  102,68,15,111,211                   ; movdqa        %xmm3,%xmm10
17819  DB  102,65,15,113,242,8                 ; psllw         $0x8,%xmm10
17820  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
17821  DB  102,65,15,235,218                   ; por           %xmm10,%xmm3
17822  DB  102,65,15,97,217                    ; punpcklwd     %xmm9,%xmm3
17823  DB  15,91,219                           ; cvtdq2ps      %xmm3,%xmm3
17824  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
17825  DB  72,173                              ; lods          %ds:(%rsi),%rax
17826  DB  255,224                             ; jmpq          *%rax
17827
17828PUBLIC _sk_load_rgb_u16_be_sse2
17829_sk_load_rgb_u16_be_sse2 LABEL PROC
17830  DB  72,173                              ; lods          %ds:(%rsi),%rax
17831  DB  72,139,0                            ; mov           (%rax),%rax
17832  DB  72,141,12,127                       ; lea           (%rdi,%rdi,2),%rcx
17833  DB  243,15,111,20,72                    ; movdqu        (%rax,%rcx,2),%xmm2
17834  DB  243,15,111,68,72,8                  ; movdqu        0x8(%rax,%rcx,2),%xmm0
17835  DB  102,15,115,216,4                    ; psrldq        $0x4,%xmm0
17836  DB  102,15,111,202                      ; movdqa        %xmm2,%xmm1
17837  DB  102,15,115,217,6                    ; psrldq        $0x6,%xmm1
17838  DB  102,15,97,208                       ; punpcklwd     %xmm0,%xmm2
17839  DB  102,15,115,216,6                    ; psrldq        $0x6,%xmm0
17840  DB  102,15,97,200                       ; punpcklwd     %xmm0,%xmm1
17841  DB  102,15,111,194                      ; movdqa        %xmm2,%xmm0
17842  DB  102,15,97,193                       ; punpcklwd     %xmm1,%xmm0
17843  DB  102,15,112,216,78                   ; pshufd        $0x4e,%xmm0,%xmm3
17844  DB  102,15,105,209                      ; punpckhwd     %xmm1,%xmm2
17845  DB  184,128,0,128,55                    ; mov           $0x37800080,%eax
17846  DB  102,68,15,110,192                   ; movd          %eax,%xmm8
17847  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
17848  DB  102,15,111,200                      ; movdqa        %xmm0,%xmm1
17849  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
17850  DB  102,15,113,208,8                    ; psrlw         $0x8,%xmm0
17851  DB  102,15,235,193                      ; por           %xmm1,%xmm0
17852  DB  102,69,15,239,201                   ; pxor          %xmm9,%xmm9
17853  DB  102,65,15,97,193                    ; punpcklwd     %xmm9,%xmm0
17854  DB  15,91,192                           ; cvtdq2ps      %xmm0,%xmm0
17855  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
17856  DB  102,15,111,203                      ; movdqa        %xmm3,%xmm1
17857  DB  102,15,113,241,8                    ; psllw         $0x8,%xmm1
17858  DB  102,15,113,211,8                    ; psrlw         $0x8,%xmm3
17859  DB  102,15,235,217                      ; por           %xmm1,%xmm3
17860  DB  102,65,15,97,217                    ; punpcklwd     %xmm9,%xmm3
17861  DB  15,91,203                           ; cvtdq2ps      %xmm3,%xmm1
17862  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
17863  DB  102,15,111,218                      ; movdqa        %xmm2,%xmm3
17864  DB  102,15,113,243,8                    ; psllw         $0x8,%xmm3
17865  DB  102,15,113,210,8                    ; psrlw         $0x8,%xmm2
17866  DB  102,15,235,211                      ; por           %xmm3,%xmm2
17867  DB  102,65,15,97,209                    ; punpcklwd     %xmm9,%xmm2
17868  DB  15,91,210                           ; cvtdq2ps      %xmm2,%xmm2
17869  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
17870  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
17871  DB  102,15,110,216                      ; movd          %eax,%xmm3
17872  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
17873  DB  72,173                              ; lods          %ds:(%rsi),%rax
17874  DB  255,224                             ; jmpq          *%rax
17875
17876PUBLIC _sk_store_u16_be_sse2
17877_sk_store_u16_be_sse2 LABEL PROC
17878  DB  72,173                              ; lods          %ds:(%rsi),%rax
17879  DB  72,139,0                            ; mov           (%rax),%rax
17880  DB  185,0,255,127,71                    ; mov           $0x477fff00,%ecx
17881  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
17882  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
17883  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
17884  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
17885  DB  102,69,15,91,192                    ; cvtps2dq      %xmm8,%xmm8
17886  DB  102,65,15,114,240,16                ; pslld         $0x10,%xmm8
17887  DB  102,65,15,114,224,16                ; psrad         $0x10,%xmm8
17888  DB  102,69,15,107,192                   ; packssdw      %xmm8,%xmm8
17889  DB  102,69,15,111,208                   ; movdqa        %xmm8,%xmm10
17890  DB  102,65,15,113,242,8                 ; psllw         $0x8,%xmm10
17891  DB  102,65,15,113,208,8                 ; psrlw         $0x8,%xmm8
17892  DB  102,69,15,235,194                   ; por           %xmm10,%xmm8
17893  DB  69,15,40,209                        ; movaps        %xmm9,%xmm10
17894  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
17895  DB  102,69,15,91,210                    ; cvtps2dq      %xmm10,%xmm10
17896  DB  102,65,15,114,242,16                ; pslld         $0x10,%xmm10
17897  DB  102,65,15,114,226,16                ; psrad         $0x10,%xmm10
17898  DB  102,69,15,107,210                   ; packssdw      %xmm10,%xmm10
17899  DB  102,69,15,111,218                   ; movdqa        %xmm10,%xmm11
17900  DB  102,65,15,113,243,8                 ; psllw         $0x8,%xmm11
17901  DB  102,65,15,113,210,8                 ; psrlw         $0x8,%xmm10
17902  DB  102,69,15,235,211                   ; por           %xmm11,%xmm10
17903  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
17904  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
17905  DB  102,69,15,91,219                    ; cvtps2dq      %xmm11,%xmm11
17906  DB  102,65,15,114,243,16                ; pslld         $0x10,%xmm11
17907  DB  102,65,15,114,227,16                ; psrad         $0x10,%xmm11
17908  DB  102,69,15,107,219                   ; packssdw      %xmm11,%xmm11
17909  DB  102,69,15,111,227                   ; movdqa        %xmm11,%xmm12
17910  DB  102,65,15,113,244,8                 ; psllw         $0x8,%xmm12
17911  DB  102,65,15,113,211,8                 ; psrlw         $0x8,%xmm11
17912  DB  102,69,15,235,220                   ; por           %xmm12,%xmm11
17913  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
17914  DB  102,69,15,91,201                    ; cvtps2dq      %xmm9,%xmm9
17915  DB  102,65,15,114,241,16                ; pslld         $0x10,%xmm9
17916  DB  102,65,15,114,225,16                ; psrad         $0x10,%xmm9
17917  DB  102,69,15,107,201                   ; packssdw      %xmm9,%xmm9
17918  DB  102,69,15,111,225                   ; movdqa        %xmm9,%xmm12
17919  DB  102,65,15,113,244,8                 ; psllw         $0x8,%xmm12
17920  DB  102,65,15,113,209,8                 ; psrlw         $0x8,%xmm9
17921  DB  102,69,15,235,204                   ; por           %xmm12,%xmm9
17922  DB  102,69,15,97,194                    ; punpcklwd     %xmm10,%xmm8
17923  DB  102,69,15,97,217                    ; punpcklwd     %xmm9,%xmm11
17924  DB  102,69,15,111,200                   ; movdqa        %xmm8,%xmm9
17925  DB  102,69,15,98,203                    ; punpckldq     %xmm11,%xmm9
17926  DB  243,68,15,127,12,248                ; movdqu        %xmm9,(%rax,%rdi,8)
17927  DB  102,69,15,106,195                   ; punpckhdq     %xmm11,%xmm8
17928  DB  243,68,15,127,68,248,16             ; movdqu        %xmm8,0x10(%rax,%rdi,8)
17929  DB  72,173                              ; lods          %ds:(%rsi),%rax
17930  DB  255,224                             ; jmpq          *%rax
17931
17932PUBLIC _sk_load_f32_sse2
17933_sk_load_f32_sse2 LABEL PROC
17934  DB  72,173                              ; lods          %ds:(%rsi),%rax
17935  DB  72,139,0                            ; mov           (%rax),%rax
17936  DB  72,137,249                          ; mov           %rdi,%rcx
17937  DB  72,193,225,4                        ; shl           $0x4,%rcx
17938  DB  68,15,16,4,8                        ; movups        (%rax,%rcx,1),%xmm8
17939  DB  15,16,68,8,16                       ; movups        0x10(%rax,%rcx,1),%xmm0
17940  DB  15,16,92,8,32                       ; movups        0x20(%rax,%rcx,1),%xmm3
17941  DB  68,15,16,76,8,48                    ; movups        0x30(%rax,%rcx,1),%xmm9
17942  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
17943  DB  15,20,208                           ; unpcklps      %xmm0,%xmm2
17944  DB  15,40,203                           ; movaps        %xmm3,%xmm1
17945  DB  65,15,20,201                        ; unpcklps      %xmm9,%xmm1
17946  DB  68,15,21,192                        ; unpckhps      %xmm0,%xmm8
17947  DB  65,15,21,217                        ; unpckhps      %xmm9,%xmm3
17948  DB  15,40,194                           ; movaps        %xmm2,%xmm0
17949  DB  102,15,20,193                       ; unpcklpd      %xmm1,%xmm0
17950  DB  15,18,202                           ; movhlps       %xmm2,%xmm1
17951  DB  65,15,40,208                        ; movaps        %xmm8,%xmm2
17952  DB  102,15,20,211                       ; unpcklpd      %xmm3,%xmm2
17953  DB  65,15,18,216                        ; movhlps       %xmm8,%xmm3
17954  DB  72,173                              ; lods          %ds:(%rsi),%rax
17955  DB  255,224                             ; jmpq          *%rax
17956
17957PUBLIC _sk_store_f32_sse2
17958_sk_store_f32_sse2 LABEL PROC
17959  DB  72,173                              ; lods          %ds:(%rsi),%rax
17960  DB  72,139,0                            ; mov           (%rax),%rax
17961  DB  72,137,249                          ; mov           %rdi,%rcx
17962  DB  72,193,225,4                        ; shl           $0x4,%rcx
17963  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
17964  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
17965  DB  68,15,20,201                        ; unpcklps      %xmm1,%xmm9
17966  DB  68,15,40,210                        ; movaps        %xmm2,%xmm10
17967  DB  68,15,40,218                        ; movaps        %xmm2,%xmm11
17968  DB  68,15,20,219                        ; unpcklps      %xmm3,%xmm11
17969  DB  68,15,21,193                        ; unpckhps      %xmm1,%xmm8
17970  DB  68,15,21,211                        ; unpckhps      %xmm3,%xmm10
17971  DB  69,15,40,225                        ; movaps        %xmm9,%xmm12
17972  DB  102,69,15,20,227                    ; unpcklpd      %xmm11,%xmm12
17973  DB  69,15,18,217                        ; movhlps       %xmm9,%xmm11
17974  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
17975  DB  102,69,15,20,202                    ; unpcklpd      %xmm10,%xmm9
17976  DB  69,15,18,208                        ; movhlps       %xmm8,%xmm10
17977  DB  102,68,15,17,36,8                   ; movupd        %xmm12,(%rax,%rcx,1)
17978  DB  68,15,17,92,8,16                    ; movups        %xmm11,0x10(%rax,%rcx,1)
17979  DB  102,68,15,17,76,8,32                ; movupd        %xmm9,0x20(%rax,%rcx,1)
17980  DB  68,15,17,84,8,48                    ; movups        %xmm10,0x30(%rax,%rcx,1)
17981  DB  72,173                              ; lods          %ds:(%rsi),%rax
17982  DB  255,224                             ; jmpq          *%rax
17983
17984PUBLIC _sk_clamp_x_sse2
17985_sk_clamp_x_sse2 LABEL PROC
17986  DB  72,173                              ; lods          %ds:(%rsi),%rax
17987  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
17988  DB  68,15,95,192                        ; maxps         %xmm0,%xmm8
17989  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
17990  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
17991  DB  102,15,118,192                      ; pcmpeqd       %xmm0,%xmm0
17992  DB  102,65,15,254,193                   ; paddd         %xmm9,%xmm0
17993  DB  68,15,93,192                        ; minps         %xmm0,%xmm8
17994  DB  72,173                              ; lods          %ds:(%rsi),%rax
17995  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
17996  DB  255,224                             ; jmpq          *%rax
17997
17998PUBLIC _sk_clamp_y_sse2
17999_sk_clamp_y_sse2 LABEL PROC
18000  DB  72,173                              ; lods          %ds:(%rsi),%rax
18001  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
18002  DB  68,15,95,193                        ; maxps         %xmm1,%xmm8
18003  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
18004  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18005  DB  102,15,118,201                      ; pcmpeqd       %xmm1,%xmm1
18006  DB  102,65,15,254,201                   ; paddd         %xmm9,%xmm1
18007  DB  68,15,93,193                        ; minps         %xmm1,%xmm8
18008  DB  72,173                              ; lods          %ds:(%rsi),%rax
18009  DB  65,15,40,200                        ; movaps        %xmm8,%xmm1
18010  DB  255,224                             ; jmpq          *%rax
18011
18012PUBLIC _sk_repeat_x_sse2
18013_sk_repeat_x_sse2 LABEL PROC
18014  DB  72,173                              ; lods          %ds:(%rsi),%rax
18015  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
18016  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18017  DB  68,15,40,200                        ; movaps        %xmm0,%xmm9
18018  DB  69,15,94,200                        ; divps         %xmm8,%xmm9
18019  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
18020  DB  69,15,91,210                        ; cvtdq2ps      %xmm10,%xmm10
18021  DB  69,15,194,202,1                     ; cmpltps       %xmm10,%xmm9
18022  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
18023  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
18024  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18025  DB  69,15,84,217                        ; andps         %xmm9,%xmm11
18026  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
18027  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18028  DB  65,15,92,194                        ; subps         %xmm10,%xmm0
18029  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
18030  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
18031  DB  65,15,93,193                        ; minps         %xmm9,%xmm0
18032  DB  72,173                              ; lods          %ds:(%rsi),%rax
18033  DB  255,224                             ; jmpq          *%rax
18034
18035PUBLIC _sk_repeat_y_sse2
18036_sk_repeat_y_sse2 LABEL PROC
18037  DB  72,173                              ; lods          %ds:(%rsi),%rax
18038  DB  243,68,15,16,0                      ; movss         (%rax),%xmm8
18039  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18040  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
18041  DB  69,15,94,200                        ; divps         %xmm8,%xmm9
18042  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
18043  DB  69,15,91,210                        ; cvtdq2ps      %xmm10,%xmm10
18044  DB  69,15,194,202,1                     ; cmpltps       %xmm10,%xmm9
18045  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
18046  DB  102,68,15,110,216                   ; movd          %eax,%xmm11
18047  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18048  DB  69,15,84,217                        ; andps         %xmm9,%xmm11
18049  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
18050  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18051  DB  65,15,92,202                        ; subps         %xmm10,%xmm1
18052  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
18053  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
18054  DB  65,15,93,201                        ; minps         %xmm9,%xmm1
18055  DB  72,173                              ; lods          %ds:(%rsi),%rax
18056  DB  255,224                             ; jmpq          *%rax
18057
18058PUBLIC _sk_mirror_x_sse2
18059_sk_mirror_x_sse2 LABEL PROC
18060  DB  72,173                              ; lods          %ds:(%rsi),%rax
18061  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
18062  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
18063  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18064  DB  65,15,92,192                        ; subps         %xmm8,%xmm0
18065  DB  243,69,15,88,201                    ; addss         %xmm9,%xmm9
18066  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18067  DB  68,15,40,208                        ; movaps        %xmm0,%xmm10
18068  DB  69,15,94,209                        ; divps         %xmm9,%xmm10
18069  DB  243,69,15,91,218                    ; cvttps2dq     %xmm10,%xmm11
18070  DB  69,15,91,219                        ; cvtdq2ps      %xmm11,%xmm11
18071  DB  69,15,194,211,1                     ; cmpltps       %xmm11,%xmm10
18072  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
18073  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
18074  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18075  DB  69,15,84,226                        ; andps         %xmm10,%xmm12
18076  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
18077  DB  69,15,92,220                        ; subps         %xmm12,%xmm11
18078  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
18079  DB  65,15,92,195                        ; subps         %xmm11,%xmm0
18080  DB  65,15,92,192                        ; subps         %xmm8,%xmm0
18081  DB  68,15,92,208                        ; subps         %xmm0,%xmm10
18082  DB  65,15,84,194                        ; andps         %xmm10,%xmm0
18083  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
18084  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
18085  DB  65,15,93,193                        ; minps         %xmm9,%xmm0
18086  DB  72,173                              ; lods          %ds:(%rsi),%rax
18087  DB  255,224                             ; jmpq          *%rax
18088
18089PUBLIC _sk_mirror_y_sse2
18090_sk_mirror_y_sse2 LABEL PROC
18091  DB  72,173                              ; lods          %ds:(%rsi),%rax
18092  DB  243,68,15,16,8                      ; movss         (%rax),%xmm9
18093  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
18094  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18095  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
18096  DB  243,69,15,88,201                    ; addss         %xmm9,%xmm9
18097  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18098  DB  68,15,40,209                        ; movaps        %xmm1,%xmm10
18099  DB  69,15,94,209                        ; divps         %xmm9,%xmm10
18100  DB  243,69,15,91,218                    ; cvttps2dq     %xmm10,%xmm11
18101  DB  69,15,91,219                        ; cvtdq2ps      %xmm11,%xmm11
18102  DB  69,15,194,211,1                     ; cmpltps       %xmm11,%xmm10
18103  DB  184,0,0,128,63                      ; mov           $0x3f800000,%eax
18104  DB  102,68,15,110,224                   ; movd          %eax,%xmm12
18105  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18106  DB  69,15,84,226                        ; andps         %xmm10,%xmm12
18107  DB  69,15,87,210                        ; xorps         %xmm10,%xmm10
18108  DB  69,15,92,220                        ; subps         %xmm12,%xmm11
18109  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
18110  DB  65,15,92,203                        ; subps         %xmm11,%xmm1
18111  DB  65,15,92,200                        ; subps         %xmm8,%xmm1
18112  DB  68,15,92,209                        ; subps         %xmm1,%xmm10
18113  DB  65,15,84,202                        ; andps         %xmm10,%xmm1
18114  DB  102,69,15,118,201                   ; pcmpeqd       %xmm9,%xmm9
18115  DB  102,69,15,254,200                   ; paddd         %xmm8,%xmm9
18116  DB  65,15,93,201                        ; minps         %xmm9,%xmm1
18117  DB  72,173                              ; lods          %ds:(%rsi),%rax
18118  DB  255,224                             ; jmpq          *%rax
18119
18120PUBLIC _sk_luminance_to_alpha_sse2
18121_sk_luminance_to_alpha_sse2 LABEL PROC
18122  DB  184,208,179,89,62                   ; mov           $0x3e59b3d0,%eax
18123  DB  102,15,110,216                      ; movd          %eax,%xmm3
18124  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
18125  DB  15,89,216                           ; mulps         %xmm0,%xmm3
18126  DB  184,89,23,55,63                     ; mov           $0x3f371759,%eax
18127  DB  102,15,110,192                      ; movd          %eax,%xmm0
18128  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18129  DB  15,89,193                           ; mulps         %xmm1,%xmm0
18130  DB  15,88,195                           ; addps         %xmm3,%xmm0
18131  DB  184,152,221,147,61                  ; mov           $0x3d93dd98,%eax
18132  DB  102,15,110,216                      ; movd          %eax,%xmm3
18133  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
18134  DB  15,89,218                           ; mulps         %xmm2,%xmm3
18135  DB  15,88,216                           ; addps         %xmm0,%xmm3
18136  DB  72,173                              ; lods          %ds:(%rsi),%rax
18137  DB  15,87,192                           ; xorps         %xmm0,%xmm0
18138  DB  15,87,201                           ; xorps         %xmm1,%xmm1
18139  DB  15,87,210                           ; xorps         %xmm2,%xmm2
18140  DB  255,224                             ; jmpq          *%rax
18141
18142PUBLIC _sk_matrix_2x3_sse2
18143_sk_matrix_2x3_sse2 LABEL PROC
18144  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
18145  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18146  DB  72,173                              ; lods          %ds:(%rsi),%rax
18147  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18148  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
18149  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18150  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
18151  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18152  DB  243,68,15,16,88,16                  ; movss         0x10(%rax),%xmm11
18153  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18154  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18155  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18156  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18157  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
18158  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
18159  DB  243,68,15,16,80,12                  ; movss         0xc(%rax),%xmm10
18160  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18161  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
18162  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18163  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18164  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18165  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
18166  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
18167  DB  72,173                              ; lods          %ds:(%rsi),%rax
18168  DB  255,224                             ; jmpq          *%rax
18169
18170PUBLIC _sk_matrix_3x4_sse2
18171_sk_matrix_3x4_sse2 LABEL PROC
18172  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
18173  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18174  DB  72,173                              ; lods          %ds:(%rsi),%rax
18175  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18176  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
18177  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18178  DB  243,68,15,16,80,12                  ; movss         0xc(%rax),%xmm10
18179  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18180  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
18181  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18182  DB  243,68,15,16,96,36                  ; movss         0x24(%rax),%xmm12
18183  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18184  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
18185  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18186  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18187  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18188  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18189  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
18190  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
18191  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
18192  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18193  DB  243,68,15,16,88,28                  ; movss         0x1c(%rax),%xmm11
18194  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18195  DB  243,68,15,16,96,40                  ; movss         0x28(%rax),%xmm12
18196  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18197  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
18198  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18199  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18200  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18201  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
18202  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
18203  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
18204  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18205  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
18206  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18207  DB  243,68,15,16,96,32                  ; movss         0x20(%rax),%xmm12
18208  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18209  DB  243,68,15,16,104,44                 ; movss         0x2c(%rax),%xmm13
18210  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18211  DB  68,15,89,226                        ; mulps         %xmm2,%xmm12
18212  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18213  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
18214  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18215  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18216  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18217  DB  72,173                              ; lods          %ds:(%rsi),%rax
18218  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
18219  DB  255,224                             ; jmpq          *%rax
18220
18221PUBLIC _sk_matrix_4x5_sse2
18222_sk_matrix_4x5_sse2 LABEL PROC
18223  DB  68,15,40,201                        ; movaps        %xmm1,%xmm9
18224  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18225  DB  72,173                              ; lods          %ds:(%rsi),%rax
18226  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18227  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
18228  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18229  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
18230  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18231  DB  243,68,15,16,88,32                  ; movss         0x20(%rax),%xmm11
18232  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18233  DB  243,68,15,16,96,48                  ; movss         0x30(%rax),%xmm12
18234  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18235  DB  243,68,15,16,104,64                 ; movss         0x40(%rax),%xmm13
18236  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18237  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
18238  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18239  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
18240  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18241  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18242  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18243  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18244  DB  65,15,88,194                        ; addps         %xmm10,%xmm0
18245  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
18246  DB  243,68,15,16,80,20                  ; movss         0x14(%rax),%xmm10
18247  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18248  DB  243,68,15,16,88,36                  ; movss         0x24(%rax),%xmm11
18249  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18250  DB  243,68,15,16,96,52                  ; movss         0x34(%rax),%xmm12
18251  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18252  DB  243,68,15,16,104,68                 ; movss         0x44(%rax),%xmm13
18253  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18254  DB  68,15,89,227                        ; mulps         %xmm3,%xmm12
18255  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18256  DB  68,15,89,218                        ; mulps         %xmm2,%xmm11
18257  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18258  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18259  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18260  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
18261  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
18262  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
18263  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18264  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
18265  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18266  DB  243,68,15,16,96,40                  ; movss         0x28(%rax),%xmm12
18267  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18268  DB  243,68,15,16,104,56                 ; movss         0x38(%rax),%xmm13
18269  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18270  DB  243,68,15,16,112,72                 ; movss         0x48(%rax),%xmm14
18271  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
18272  DB  68,15,89,235                        ; mulps         %xmm3,%xmm13
18273  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
18274  DB  68,15,89,226                        ; mulps         %xmm2,%xmm12
18275  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18276  DB  69,15,89,217                        ; mulps         %xmm9,%xmm11
18277  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18278  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18279  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18280  DB  243,68,15,16,88,12                  ; movss         0xc(%rax),%xmm11
18281  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18282  DB  243,68,15,16,96,28                  ; movss         0x1c(%rax),%xmm12
18283  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18284  DB  243,68,15,16,104,44                 ; movss         0x2c(%rax),%xmm13
18285  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18286  DB  243,68,15,16,112,60                 ; movss         0x3c(%rax),%xmm14
18287  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
18288  DB  243,68,15,16,120,76                 ; movss         0x4c(%rax),%xmm15
18289  DB  69,15,198,255,0                     ; shufps        $0x0,%xmm15,%xmm15
18290  DB  68,15,89,243                        ; mulps         %xmm3,%xmm14
18291  DB  69,15,88,247                        ; addps         %xmm15,%xmm14
18292  DB  68,15,89,234                        ; mulps         %xmm2,%xmm13
18293  DB  69,15,88,238                        ; addps         %xmm14,%xmm13
18294  DB  69,15,89,225                        ; mulps         %xmm9,%xmm12
18295  DB  69,15,88,229                        ; addps         %xmm13,%xmm12
18296  DB  69,15,89,216                        ; mulps         %xmm8,%xmm11
18297  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18298  DB  72,173                              ; lods          %ds:(%rsi),%rax
18299  DB  65,15,40,210                        ; movaps        %xmm10,%xmm2
18300  DB  65,15,40,219                        ; movaps        %xmm11,%xmm3
18301  DB  255,224                             ; jmpq          *%rax
18302
18303PUBLIC _sk_matrix_perspective_sse2
18304_sk_matrix_perspective_sse2 LABEL PROC
18305  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18306  DB  72,173                              ; lods          %ds:(%rsi),%rax
18307  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18308  DB  243,68,15,16,72,4                   ; movss         0x4(%rax),%xmm9
18309  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18310  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18311  DB  243,68,15,16,80,8                   ; movss         0x8(%rax),%xmm10
18312  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18313  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
18314  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18315  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18316  DB  65,15,88,193                        ; addps         %xmm9,%xmm0
18317  DB  243,68,15,16,72,12                  ; movss         0xc(%rax),%xmm9
18318  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18319  DB  243,68,15,16,80,16                  ; movss         0x10(%rax),%xmm10
18320  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18321  DB  243,68,15,16,88,20                  ; movss         0x14(%rax),%xmm11
18322  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18323  DB  68,15,89,209                        ; mulps         %xmm1,%xmm10
18324  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18325  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18326  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18327  DB  243,68,15,16,80,24                  ; movss         0x18(%rax),%xmm10
18328  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18329  DB  243,68,15,16,88,28                  ; movss         0x1c(%rax),%xmm11
18330  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18331  DB  243,68,15,16,96,32                  ; movss         0x20(%rax),%xmm12
18332  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18333  DB  68,15,89,217                        ; mulps         %xmm1,%xmm11
18334  DB  69,15,88,220                        ; addps         %xmm12,%xmm11
18335  DB  69,15,89,208                        ; mulps         %xmm8,%xmm10
18336  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18337  DB  65,15,83,202                        ; rcpps         %xmm10,%xmm1
18338  DB  15,89,193                           ; mulps         %xmm1,%xmm0
18339  DB  68,15,89,201                        ; mulps         %xmm1,%xmm9
18340  DB  72,173                              ; lods          %ds:(%rsi),%rax
18341  DB  65,15,40,201                        ; movaps        %xmm9,%xmm1
18342  DB  255,224                             ; jmpq          *%rax
18343
18344PUBLIC _sk_linear_gradient_sse2
18345_sk_linear_gradient_sse2 LABEL PROC
18346  DB  72,173                              ; lods          %ds:(%rsi),%rax
18347  DB  243,68,15,16,72,16                  ; movss         0x10(%rax),%xmm9
18348  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18349  DB  243,68,15,16,80,20                  ; movss         0x14(%rax),%xmm10
18350  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18351  DB  243,68,15,16,88,24                  ; movss         0x18(%rax),%xmm11
18352  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18353  DB  243,68,15,16,96,28                  ; movss         0x1c(%rax),%xmm12
18354  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18355  DB  72,139,8                            ; mov           (%rax),%rcx
18356  DB  72,133,201                          ; test          %rcx,%rcx
18357  DB  15,132,15,1,0,0                     ; je            3f2a <_sk_linear_gradient_sse2+0x149>
18358  DB  72,139,64,8                         ; mov           0x8(%rax),%rax
18359  DB  72,131,192,32                       ; add           $0x20,%rax
18360  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
18361  DB  15,87,219                           ; xorps         %xmm3,%xmm3
18362  DB  15,87,210                           ; xorps         %xmm2,%xmm2
18363  DB  15,87,201                           ; xorps         %xmm1,%xmm1
18364  DB  243,68,15,16,112,224                ; movss         -0x20(%rax),%xmm14
18365  DB  243,68,15,16,104,228                ; movss         -0x1c(%rax),%xmm13
18366  DB  69,15,198,246,0                     ; shufps        $0x0,%xmm14,%xmm14
18367  DB  69,15,40,252                        ; movaps        %xmm12,%xmm15
18368  DB  68,15,40,224                        ; movaps        %xmm0,%xmm12
18369  DB  69,15,194,230,1                     ; cmpltps       %xmm14,%xmm12
18370  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18371  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18372  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18373  DB  69,15,84,196                        ; andps         %xmm12,%xmm8
18374  DB  69,15,86,198                        ; orps          %xmm14,%xmm8
18375  DB  243,68,15,16,104,232                ; movss         -0x18(%rax),%xmm13
18376  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18377  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18378  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18379  DB  65,15,84,204                        ; andps         %xmm12,%xmm1
18380  DB  65,15,86,206                        ; orps          %xmm14,%xmm1
18381  DB  243,68,15,16,104,236                ; movss         -0x14(%rax),%xmm13
18382  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18383  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18384  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18385  DB  65,15,84,212                        ; andps         %xmm12,%xmm2
18386  DB  65,15,86,214                        ; orps          %xmm14,%xmm2
18387  DB  243,68,15,16,104,240                ; movss         -0x10(%rax),%xmm13
18388  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18389  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18390  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18391  DB  65,15,84,220                        ; andps         %xmm12,%xmm3
18392  DB  65,15,86,222                        ; orps          %xmm14,%xmm3
18393  DB  243,68,15,16,104,244                ; movss         -0xc(%rax),%xmm13
18394  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18395  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18396  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18397  DB  69,15,84,204                        ; andps         %xmm12,%xmm9
18398  DB  69,15,86,206                        ; orps          %xmm14,%xmm9
18399  DB  243,68,15,16,104,248                ; movss         -0x8(%rax),%xmm13
18400  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18401  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18402  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18403  DB  69,15,84,212                        ; andps         %xmm12,%xmm10
18404  DB  69,15,86,214                        ; orps          %xmm14,%xmm10
18405  DB  243,68,15,16,104,252                ; movss         -0x4(%rax),%xmm13
18406  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18407  DB  69,15,40,244                        ; movaps        %xmm12,%xmm14
18408  DB  69,15,85,245                        ; andnps        %xmm13,%xmm14
18409  DB  69,15,84,220                        ; andps         %xmm12,%xmm11
18410  DB  69,15,86,222                        ; orps          %xmm14,%xmm11
18411  DB  243,68,15,16,40                     ; movss         (%rax),%xmm13
18412  DB  69,15,198,237,0                     ; shufps        $0x0,%xmm13,%xmm13
18413  DB  69,15,84,252                        ; andps         %xmm12,%xmm15
18414  DB  69,15,85,229                        ; andnps        %xmm13,%xmm12
18415  DB  69,15,86,231                        ; orps          %xmm15,%xmm12
18416  DB  72,131,192,36                       ; add           $0x24,%rax
18417  DB  72,255,201                          ; dec           %rcx
18418  DB  15,133,8,255,255,255                ; jne           3e30 <_sk_linear_gradient_sse2+0x4f>
18419  DB  235,13                              ; jmp           3f37 <_sk_linear_gradient_sse2+0x156>
18420  DB  15,87,201                           ; xorps         %xmm1,%xmm1
18421  DB  15,87,210                           ; xorps         %xmm2,%xmm2
18422  DB  15,87,219                           ; xorps         %xmm3,%xmm3
18423  DB  69,15,87,192                        ; xorps         %xmm8,%xmm8
18424  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
18425  DB  69,15,88,193                        ; addps         %xmm9,%xmm8
18426  DB  15,89,200                           ; mulps         %xmm0,%xmm1
18427  DB  65,15,88,202                        ; addps         %xmm10,%xmm1
18428  DB  15,89,208                           ; mulps         %xmm0,%xmm2
18429  DB  65,15,88,211                        ; addps         %xmm11,%xmm2
18430  DB  15,89,216                           ; mulps         %xmm0,%xmm3
18431  DB  65,15,88,220                        ; addps         %xmm12,%xmm3
18432  DB  72,173                              ; lods          %ds:(%rsi),%rax
18433  DB  65,15,40,192                        ; movaps        %xmm8,%xmm0
18434  DB  255,224                             ; jmpq          *%rax
18435
18436PUBLIC _sk_linear_gradient_2stops_sse2
18437_sk_linear_gradient_2stops_sse2 LABEL PROC
18438  DB  68,15,40,192                        ; movaps        %xmm0,%xmm8
18439  DB  72,173                              ; lods          %ds:(%rsi),%rax
18440  DB  243,15,16,0                         ; movss         (%rax),%xmm0
18441  DB  243,15,16,72,4                      ; movss         0x4(%rax),%xmm1
18442  DB  15,198,192,0                        ; shufps        $0x0,%xmm0,%xmm0
18443  DB  243,15,16,80,16                     ; movss         0x10(%rax),%xmm2
18444  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
18445  DB  65,15,89,192                        ; mulps         %xmm8,%xmm0
18446  DB  15,88,194                           ; addps         %xmm2,%xmm0
18447  DB  15,198,201,0                        ; shufps        $0x0,%xmm1,%xmm1
18448  DB  243,15,16,80,20                     ; movss         0x14(%rax),%xmm2
18449  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
18450  DB  65,15,89,200                        ; mulps         %xmm8,%xmm1
18451  DB  15,88,202                           ; addps         %xmm2,%xmm1
18452  DB  243,15,16,80,8                      ; movss         0x8(%rax),%xmm2
18453  DB  15,198,210,0                        ; shufps        $0x0,%xmm2,%xmm2
18454  DB  243,15,16,88,24                     ; movss         0x18(%rax),%xmm3
18455  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
18456  DB  65,15,89,208                        ; mulps         %xmm8,%xmm2
18457  DB  15,88,211                           ; addps         %xmm3,%xmm2
18458  DB  243,15,16,88,12                     ; movss         0xc(%rax),%xmm3
18459  DB  15,198,219,0                        ; shufps        $0x0,%xmm3,%xmm3
18460  DB  243,68,15,16,72,28                  ; movss         0x1c(%rax),%xmm9
18461  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18462  DB  65,15,89,216                        ; mulps         %xmm8,%xmm3
18463  DB  65,15,88,217                        ; addps         %xmm9,%xmm3
18464  DB  72,173                              ; lods          %ds:(%rsi),%rax
18465  DB  255,224                             ; jmpq          *%rax
18466
18467PUBLIC _sk_save_xy_sse2
18468_sk_save_xy_sse2 LABEL PROC
18469  DB  72,173                              ; lods          %ds:(%rsi),%rax
18470  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18471  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18472  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18473  DB  69,15,40,200                        ; movaps        %xmm8,%xmm9
18474  DB  68,15,88,200                        ; addps         %xmm0,%xmm9
18475  DB  243,69,15,91,209                    ; cvttps2dq     %xmm9,%xmm10
18476  DB  69,15,91,210                        ; cvtdq2ps      %xmm10,%xmm10
18477  DB  69,15,40,217                        ; movaps        %xmm9,%xmm11
18478  DB  69,15,194,218,1                     ; cmpltps       %xmm10,%xmm11
18479  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18480  DB  102,68,15,110,225                   ; movd          %ecx,%xmm12
18481  DB  69,15,198,228,0                     ; shufps        $0x0,%xmm12,%xmm12
18482  DB  69,15,84,220                        ; andps         %xmm12,%xmm11
18483  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
18484  DB  69,15,92,202                        ; subps         %xmm10,%xmm9
18485  DB  68,15,88,193                        ; addps         %xmm1,%xmm8
18486  DB  243,69,15,91,208                    ; cvttps2dq     %xmm8,%xmm10
18487  DB  69,15,91,210                        ; cvtdq2ps      %xmm10,%xmm10
18488  DB  69,15,40,216                        ; movaps        %xmm8,%xmm11
18489  DB  69,15,194,218,1                     ; cmpltps       %xmm10,%xmm11
18490  DB  69,15,84,220                        ; andps         %xmm12,%xmm11
18491  DB  69,15,92,211                        ; subps         %xmm11,%xmm10
18492  DB  69,15,92,194                        ; subps         %xmm10,%xmm8
18493  DB  15,17,0                             ; movups        %xmm0,(%rax)
18494  DB  15,17,72,32                         ; movups        %xmm1,0x20(%rax)
18495  DB  68,15,17,72,64                      ; movups        %xmm9,0x40(%rax)
18496  DB  68,15,17,64,96                      ; movups        %xmm8,0x60(%rax)
18497  DB  72,173                              ; lods          %ds:(%rsi),%rax
18498  DB  255,224                             ; jmpq          *%rax
18499
18500PUBLIC _sk_accumulate_sse2
18501_sk_accumulate_sse2 LABEL PROC
18502  DB  72,173                              ; lods          %ds:(%rsi),%rax
18503  DB  68,15,16,128,128,0,0,0              ; movups        0x80(%rax),%xmm8
18504  DB  68,15,16,136,160,0,0,0              ; movups        0xa0(%rax),%xmm9
18505  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18506  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
18507  DB  68,15,89,192                        ; mulps         %xmm0,%xmm8
18508  DB  65,15,88,224                        ; addps         %xmm8,%xmm4
18509  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
18510  DB  68,15,89,193                        ; mulps         %xmm1,%xmm8
18511  DB  65,15,88,232                        ; addps         %xmm8,%xmm5
18512  DB  69,15,40,193                        ; movaps        %xmm9,%xmm8
18513  DB  68,15,89,194                        ; mulps         %xmm2,%xmm8
18514  DB  65,15,88,240                        ; addps         %xmm8,%xmm6
18515  DB  68,15,89,203                        ; mulps         %xmm3,%xmm9
18516  DB  65,15,88,249                        ; addps         %xmm9,%xmm7
18517  DB  72,173                              ; lods          %ds:(%rsi),%rax
18518  DB  255,224                             ; jmpq          *%rax
18519
18520PUBLIC _sk_bilinear_nx_sse2
18521_sk_bilinear_nx_sse2 LABEL PROC
18522  DB  72,173                              ; lods          %ds:(%rsi),%rax
18523  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
18524  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18525  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18526  DB  15,16,0                             ; movups        (%rax),%xmm0
18527  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18528  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18529  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18530  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18531  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18532  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18533  DB  68,15,17,128,128,0,0,0              ; movups        %xmm8,0x80(%rax)
18534  DB  72,173                              ; lods          %ds:(%rsi),%rax
18535  DB  255,224                             ; jmpq          *%rax
18536
18537PUBLIC _sk_bilinear_px_sse2
18538_sk_bilinear_px_sse2 LABEL PROC
18539  DB  72,173                              ; lods          %ds:(%rsi),%rax
18540  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18541  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18542  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18543  DB  15,16,0                             ; movups        (%rax),%xmm0
18544  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18545  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18546  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
18547  DB  72,173                              ; lods          %ds:(%rsi),%rax
18548  DB  255,224                             ; jmpq          *%rax
18549
18550PUBLIC _sk_bilinear_ny_sse2
18551_sk_bilinear_ny_sse2 LABEL PROC
18552  DB  72,173                              ; lods          %ds:(%rsi),%rax
18553  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
18554  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18555  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18556  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18557  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18558  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18559  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18560  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18561  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18562  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18563  DB  68,15,17,128,160,0,0,0              ; movups        %xmm8,0xa0(%rax)
18564  DB  72,173                              ; lods          %ds:(%rsi),%rax
18565  DB  255,224                             ; jmpq          *%rax
18566
18567PUBLIC _sk_bilinear_py_sse2
18568_sk_bilinear_py_sse2 LABEL PROC
18569  DB  72,173                              ; lods          %ds:(%rsi),%rax
18570  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18571  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18572  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18573  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18574  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18575  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18576  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
18577  DB  72,173                              ; lods          %ds:(%rsi),%rax
18578  DB  255,224                             ; jmpq          *%rax
18579
18580PUBLIC _sk_bicubic_n3x_sse2
18581_sk_bicubic_n3x_sse2 LABEL PROC
18582  DB  72,173                              ; lods          %ds:(%rsi),%rax
18583  DB  185,0,0,192,191                     ; mov           $0xbfc00000,%ecx
18584  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18585  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18586  DB  15,16,0                             ; movups        (%rax),%xmm0
18587  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18588  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18589  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18590  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18591  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18592  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18593  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
18594  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
18595  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18596  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
18597  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18598  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18599  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18600  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
18601  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18602  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18603  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
18604  DB  72,173                              ; lods          %ds:(%rsi),%rax
18605  DB  255,224                             ; jmpq          *%rax
18606
18607PUBLIC _sk_bicubic_n1x_sse2
18608_sk_bicubic_n1x_sse2 LABEL PROC
18609  DB  72,173                              ; lods          %ds:(%rsi),%rax
18610  DB  185,0,0,0,191                       ; mov           $0xbf000000,%ecx
18611  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18612  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18613  DB  15,16,0                             ; movups        (%rax),%xmm0
18614  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18615  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18616  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18617  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18618  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18619  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18620  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
18621  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
18622  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18623  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18624  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18625  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18626  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18627  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18628  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18629  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18630  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18631  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18632  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18633  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
18634  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18635  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18636  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18637  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18638  DB  68,15,17,136,128,0,0,0              ; movups        %xmm9,0x80(%rax)
18639  DB  72,173                              ; lods          %ds:(%rsi),%rax
18640  DB  255,224                             ; jmpq          *%rax
18641
18642PUBLIC _sk_bicubic_p1x_sse2
18643_sk_bicubic_p1x_sse2 LABEL PROC
18644  DB  72,173                              ; lods          %ds:(%rsi),%rax
18645  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18646  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18647  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18648  DB  15,16,0                             ; movups        (%rax),%xmm0
18649  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18650  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18651  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
18652  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18653  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18654  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18655  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
18656  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18657  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18658  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18659  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18660  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
18661  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
18662  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18663  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18664  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18665  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
18666  DB  68,15,17,144,128,0,0,0              ; movups        %xmm10,0x80(%rax)
18667  DB  72,173                              ; lods          %ds:(%rsi),%rax
18668  DB  255,224                             ; jmpq          *%rax
18669
18670PUBLIC _sk_bicubic_p3x_sse2
18671_sk_bicubic_p3x_sse2 LABEL PROC
18672  DB  72,173                              ; lods          %ds:(%rsi),%rax
18673  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18674  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18675  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18676  DB  15,16,0                             ; movups        (%rax),%xmm0
18677  DB  68,15,16,72,64                      ; movups        0x40(%rax),%xmm9
18678  DB  65,15,88,192                        ; addps         %xmm8,%xmm0
18679  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
18680  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18681  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18682  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
18683  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
18684  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
18685  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18686  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18687  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
18688  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
18689  DB  68,15,17,128,128,0,0,0              ; movups        %xmm8,0x80(%rax)
18690  DB  72,173                              ; lods          %ds:(%rsi),%rax
18691  DB  255,224                             ; jmpq          *%rax
18692
18693PUBLIC _sk_bicubic_n3y_sse2
18694_sk_bicubic_n3y_sse2 LABEL PROC
18695  DB  72,173                              ; lods          %ds:(%rsi),%rax
18696  DB  185,0,0,192,191                     ; mov           $0xbfc00000,%ecx
18697  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18698  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18699  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18700  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18701  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18702  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18703  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18704  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18705  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18706  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
18707  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
18708  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18709  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
18710  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18711  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18712  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18713  DB  69,15,89,192                        ; mulps         %xmm8,%xmm8
18714  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18715  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18716  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
18717  DB  72,173                              ; lods          %ds:(%rsi),%rax
18718  DB  255,224                             ; jmpq          *%rax
18719
18720PUBLIC _sk_bicubic_n1y_sse2
18721_sk_bicubic_n1y_sse2 LABEL PROC
18722  DB  72,173                              ; lods          %ds:(%rsi),%rax
18723  DB  185,0,0,0,191                       ; mov           $0xbf000000,%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,72,32                         ; movups        0x20(%rax),%xmm1
18727  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18728  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18729  DB  185,0,0,128,63                      ; mov           $0x3f800000,%ecx
18730  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18731  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18732  DB  69,15,92,193                        ; subps         %xmm9,%xmm8
18733  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
18734  DB  102,68,15,110,201                   ; movd          %ecx,%xmm9
18735  DB  69,15,198,201,0                     ; shufps        $0x0,%xmm9,%xmm9
18736  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18737  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18738  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18739  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18740  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18741  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18742  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18743  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18744  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18745  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18746  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
18747  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18748  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18749  DB  69,15,89,200                        ; mulps         %xmm8,%xmm9
18750  DB  69,15,88,202                        ; addps         %xmm10,%xmm9
18751  DB  68,15,17,136,160,0,0,0              ; movups        %xmm9,0xa0(%rax)
18752  DB  72,173                              ; lods          %ds:(%rsi),%rax
18753  DB  255,224                             ; jmpq          *%rax
18754
18755PUBLIC _sk_bicubic_p1y_sse2
18756_sk_bicubic_p1y_sse2 LABEL PROC
18757  DB  72,173                              ; lods          %ds:(%rsi),%rax
18758  DB  185,0,0,0,63                        ; mov           $0x3f000000,%ecx
18759  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18760  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18761  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18762  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18763  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18764  DB  185,85,85,149,191                   ; mov           $0xbf955555,%ecx
18765  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18766  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18767  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18768  DB  102,68,15,110,217                   ; movd          %ecx,%xmm11
18769  DB  69,15,198,219,0                     ; shufps        $0x0,%xmm11,%xmm11
18770  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18771  DB  69,15,88,211                        ; addps         %xmm11,%xmm10
18772  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18773  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
18774  DB  185,57,142,99,61                    ; mov           $0x3d638e39,%ecx
18775  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18776  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18777  DB  69,15,89,209                        ; mulps         %xmm9,%xmm10
18778  DB  69,15,88,208                        ; addps         %xmm8,%xmm10
18779  DB  68,15,17,144,160,0,0,0              ; movups        %xmm10,0xa0(%rax)
18780  DB  72,173                              ; lods          %ds:(%rsi),%rax
18781  DB  255,224                             ; jmpq          *%rax
18782
18783PUBLIC _sk_bicubic_p3y_sse2
18784_sk_bicubic_p3y_sse2 LABEL PROC
18785  DB  72,173                              ; lods          %ds:(%rsi),%rax
18786  DB  185,0,0,192,63                      ; mov           $0x3fc00000,%ecx
18787  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18788  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18789  DB  15,16,72,32                         ; movups        0x20(%rax),%xmm1
18790  DB  68,15,16,72,96                      ; movups        0x60(%rax),%xmm9
18791  DB  65,15,88,200                        ; addps         %xmm8,%xmm1
18792  DB  185,114,28,199,62                   ; mov           $0x3ec71c72,%ecx
18793  DB  102,68,15,110,193                   ; movd          %ecx,%xmm8
18794  DB  69,15,198,192,0                     ; shufps        $0x0,%xmm8,%xmm8
18795  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
18796  DB  69,15,89,201                        ; mulps         %xmm9,%xmm9
18797  DB  185,171,170,170,190                 ; mov           $0xbeaaaaab,%ecx
18798  DB  102,68,15,110,209                   ; movd          %ecx,%xmm10
18799  DB  69,15,198,210,0                     ; shufps        $0x0,%xmm10,%xmm10
18800  DB  69,15,88,194                        ; addps         %xmm10,%xmm8
18801  DB  69,15,89,193                        ; mulps         %xmm9,%xmm8
18802  DB  68,15,17,128,160,0,0,0              ; movups        %xmm8,0xa0(%rax)
18803  DB  72,173                              ; lods          %ds:(%rsi),%rax
18804  DB  255,224                             ; jmpq          *%rax
18805
18806PUBLIC _sk_callback_sse2
18807_sk_callback_sse2 LABEL PROC
18808  DB  65,86                               ; push          %r14
18809  DB  83                                  ; push          %rbx
18810  DB  72,131,236,40                       ; sub           $0x28,%rsp
18811  DB  68,15,40,197                        ; movaps        %xmm5,%xmm8
18812  DB  68,15,40,204                        ; movaps        %xmm4,%xmm9
18813  DB  73,137,214                          ; mov           %rdx,%r14
18814  DB  72,173                              ; lods          %ds:(%rsi),%rax
18815  DB  72,137,195                          ; mov           %rax,%rbx
18816  DB  15,40,224                           ; movaps        %xmm0,%xmm4
18817  DB  15,20,225                           ; unpcklps      %xmm1,%xmm4
18818  DB  15,40,234                           ; movaps        %xmm2,%xmm5
18819  DB  15,20,235                           ; unpcklps      %xmm3,%xmm5
18820  DB  15,21,193                           ; unpckhps      %xmm1,%xmm0
18821  DB  15,21,211                           ; unpckhps      %xmm3,%xmm2
18822  DB  15,40,204                           ; movaps        %xmm4,%xmm1
18823  DB  102,15,20,205                       ; unpcklpd      %xmm5,%xmm1
18824  DB  15,18,236                           ; movhlps       %xmm4,%xmm5
18825  DB  15,40,216                           ; movaps        %xmm0,%xmm3
18826  DB  102,15,20,218                       ; unpcklpd      %xmm2,%xmm3
18827  DB  15,18,208                           ; movhlps       %xmm0,%xmm2
18828  DB  102,15,17,75,8                      ; movupd        %xmm1,0x8(%rbx)
18829  DB  15,17,107,24                        ; movups        %xmm5,0x18(%rbx)
18830  DB  102,15,17,91,40                     ; movupd        %xmm3,0x28(%rbx)
18831  DB  15,17,83,56                         ; movups        %xmm2,0x38(%rbx)
18832  DB  186,4,0,0,0                         ; mov           $0x4,%edx
18833  DB  72,137,217                          ; mov           %rbx,%rcx
18834  DB  255,19                              ; callq         *(%rbx)
18835  DB  72,139,131,136,0,0,0                ; mov           0x88(%rbx),%rax
18836  DB  15,16,32                            ; movups        (%rax),%xmm4
18837  DB  15,16,64,16                         ; movups        0x10(%rax),%xmm0
18838  DB  15,16,88,32                         ; movups        0x20(%rax),%xmm3
18839  DB  15,16,80,48                         ; movups        0x30(%rax),%xmm2
18840  DB  15,40,236                           ; movaps        %xmm4,%xmm5
18841  DB  15,20,232                           ; unpcklps      %xmm0,%xmm5
18842  DB  15,40,203                           ; movaps        %xmm3,%xmm1
18843  DB  15,20,202                           ; unpcklps      %xmm2,%xmm1
18844  DB  15,21,224                           ; unpckhps      %xmm0,%xmm4
18845  DB  15,21,218                           ; unpckhps      %xmm2,%xmm3
18846  DB  15,40,197                           ; movaps        %xmm5,%xmm0
18847  DB  102,15,20,193                       ; unpcklpd      %xmm1,%xmm0
18848  DB  15,18,205                           ; movhlps       %xmm5,%xmm1
18849  DB  15,40,212                           ; movaps        %xmm4,%xmm2
18850  DB  102,15,20,211                       ; unpcklpd      %xmm3,%xmm2
18851  DB  15,18,220                           ; movhlps       %xmm4,%xmm3
18852  DB  72,173                              ; lods          %ds:(%rsi),%rax
18853  DB  76,137,242                          ; mov           %r14,%rdx
18854  DB  65,15,40,225                        ; movaps        %xmm9,%xmm4
18855  DB  65,15,40,232                        ; movaps        %xmm8,%xmm5
18856  DB  72,131,196,40                       ; add           $0x28,%rsp
18857  DB  91                                  ; pop           %rbx
18858  DB  65,94                               ; pop           %r14
18859  DB  255,224                             ; jmpq          *%rax
18860
18861ALIGN 16
18862  DB  0,0                                 ; add           %al,(%rax)
18863  DB  0,63                                ; add           %bh,(%rdi)
18864  DB  0,0                                 ; add           %al,(%rax)
18865  DB  0,63                                ; add           %bh,(%rdi)
18866  DB  0,0                                 ; add           %al,(%rax)
18867  DB  0,63                                ; add           %bh,(%rdi)
18868  DB  0,0                                 ; add           %al,(%rax)
18869  DB  0,63                                ; add           %bh,(%rdi)
18870  DB  0,0                                 ; add           %al,(%rax)
18871  DB  128,63,0                            ; cmpb          $0x0,(%rdi)
18872  DB  0,128,63,0,0,128                    ; add           %al,-0x7fffffc1(%rax)
18873  DB  63                                  ; (bad)
18874  DB  0,0                                 ; add           %al,(%rax)
18875  DB  128                                 ; .byte         0x80
18876  DB  63                                  ; (bad)
18877ENDIF
18878END
18879