4 .type mymemcpy, @function
12 .cfi_def_cfa_register 6
38 vmovdqu
-32(%rsi
,%rdx
), %ymm1
40 vmovdqu
%ymm1
, -32(%rdi
,%rdx
)
61 vmovdqu
-32(%rsi
,%rdx
), %ymm1
63 vmovdqu
%ymm1
, -32(%rdi
,%rdx
)
68 vmovdqu
-16(%rsi
,%rdx
), %xmm1
70 vmovdqu
%xmm1
, -16(%rdi
,%rdx
)
73 movq
-8(%rsi
,%rdx
), %rcx
75 movq
%rcx
, -8(%rdi
,%rdx
)
79 movl
-4(%rsi
,%rdx
), %ecx
81 movl
%ecx
, -4(%rdi
,%rdx
)
85 movzwl
-2(%rsi
,%rdx
), %ecx
87 movw
%cx
, -2(%rdi
,%rdx
)
96 vmovdqu
32(%rsi
), %ymm1
97 vmovdqu
(32 * 2)(%rsi
), %ymm2
98 vmovdqu
(32 * 3)(%rsi
), %ymm3
99 vmovdqu
-32(%rsi
,%rdx
), %ymm4
100 vmovdqu
-(32 * 2)(%rsi
,%rdx
), %ymm5
101 vmovdqu
-(32 * 3)(%rsi
,%rdx
), %ymm6
102 vmovdqu
-(32 * 4)(%rsi
,%rdx
), %ymm7
103 vmovdqu
%ymm0
, (%rdi
)
104 vmovdqu
%ymm1
, 32(%rdi
)
105 vmovdqu
%ymm2
, (32 * 2)(%rdi
)
106 vmovdqu
%ymm3
, (32 * 3)(%rdi
)
107 vmovdqu
%ymm4
, -32(%rdi
,%rdx
)
108 vmovdqu
%ymm5
, -(32 * 2)(%rdi
,%rdx
)
109 vmovdqu
%ymm6
, -(32 * 3)(%rdi
,%rdx
)
110 vmovdqu
%ymm7
, -(32 * 4)(%rdi
,%rdx
)
114 vmovdqu
(%rsi
), %ymm0
115 vmovdqu
32(%rsi
), %ymm1
116 vmovdqu
-32(%rsi
,%rdx
), %ymm2
117 vmovdqu
-(32 * 2)(%rsi
,%rdx
), %ymm3
118 vmovdqu
%ymm0
, (%rdi
)
119 vmovdqu
%ymm1
, 32(%rdi
)
120 vmovdqu
%ymm2
, -32(%rdi
,%rdx
)
121 vmovdqu
%ymm3
, -(32 * 2)(%rdi
,%rdx
)
127 ja more_8x_vec_backward
129 vmovdqu
(%rsi
), %ymm4
130 vmovdqu
-32(%rsi
, %rdx
), %ymm5
131 vmovdqu
-(32 * 2)(%rsi
, %rdx
), %ymm6
132 vmovdqu
-(32 * 3)(%rsi
, %rdx
), %ymm7
133 vmovdqu
-(32 * 4)(%rsi
, %rdx
), %ymm8
135 leaq
-32(%rdi
, %rdx
), %rcx
142 cmpq $
(1024*1024), %rdx
145 vmovdqu
(%rsi
), %ymm0
146 vmovdqu
32(%rsi
), %ymm1
147 vmovdqu
(32 * 2)(%rsi
), %ymm2
148 vmovdqu
(32 * 3)(%rsi
), %ymm3
151 vmovdqa
%ymm0
, (%rdi
)
152 vmovdqa
%ymm1
, 32(%rdi
)
153 vmovdqa
%ymm2
, (32 * 2)(%rdi
)
154 vmovdqa
%ymm3
, (32 * 3)(%rdi
)
157 ja loop_4x_vec_forward
158 vmovdqu
%ymm5
, (%rcx
)
159 vmovdqu
%ymm6
, -32(%rcx
)
160 vmovdqu
%ymm7
, -(32 * 2)(%rcx
)
161 vmovdqu
%ymm8
, -(32 * 3)(%rcx
)
162 vmovdqu
%ymm4
, (%r11)
165 more_8x_vec_backward
:
166 vmovdqu
(%rsi
), %ymm4
167 vmovdqu
32(%rsi
), %ymm5
168 vmovdqu
(32 * 2)(%rsi
), %ymm6
169 vmovdqu
(32 * 3)(%rsi
), %ymm7
170 vmovdqu
-32(%rsi
,%rdx
), %ymm8
171 leaq
-32(%rdi
, %rdx
), %r11
172 leaq
-32(%rsi
, %rdx
), %rcx
179 cmpq $
(1024*1024), %rdx
181 loop_4x_vec_backward
:
182 vmovdqu
(%rcx
), %ymm0
183 vmovdqu
-32(%rcx
), %ymm1
184 vmovdqu
-(32 * 2)(%rcx
), %ymm2
185 vmovdqu
-(32 * 3)(%rcx
), %ymm3
189 vmovdqa
%ymm1
, -32(%r9)
190 vmovdqa
%ymm2
, -(32 * 2)(%r9)
191 vmovdqa
%ymm3
, -(32 * 3)(%r9)
194 ja loop_4x_vec_backward
195 vmovdqu
%ymm4
, (%rdi
)
196 vmovdqu
%ymm5
, 32(%rdi
)
197 vmovdqu
%ymm6
, (32 * 2)(%rdi
)
198 vmovdqu
%ymm7
, (32 * 3)(%rdi
)
199 vmovdqu
%ymm8
, (%r11)
203 leaq
(%rdi
, %rdx
), %r10
205 jb loop_4x_vec_forward
207 prefetcht0
(32*4*2)(%rsi
)
208 prefetcht0
(32*4*2 + 64)(%rsi
)
209 prefetcht0
(32*4*3)(%rsi
)
210 prefetcht0
(32*4*3 + 64)(%rsi
)
211 vmovdqu
(%rsi
), %ymm0
212 vmovdqu
32(%rsi
), %ymm1
213 vmovdqu
(32 * 2)(%rsi
), %ymm2
214 vmovdqu
(32 * 3)(%rsi
), %ymm3
217 vmovntdq
%ymm0
, (%rdi
)
218 vmovntdq
%ymm1
, 32(%rdi
)
219 vmovntdq
%ymm2
, (32 * 2)(%rdi
)
220 vmovntdq
%ymm3
, (32 * 3)(%rdi
)
223 ja loop_large_forward
225 vmovdqu
%ymm5
, (%rcx
)
226 vmovdqu
%ymm6
, -32(%rcx
)
227 vmovdqu
%ymm7
, -(32 * 2)(%rcx
)
228 vmovdqu
%ymm8
, -(32 * 3)(%rcx
)
229 vmovdqu
%ymm4
, (%r11)
233 leaq
(%rcx
, %rdx
), %r10
235 jb loop_4x_vec_backward
237 prefetcht0
(-32 * 4 * 2)(%rcx
)
238 prefetcht0
(-32 * 4 * 2 - 64)(%rcx
)
239 prefetcht0
(-32 * 4 * 3)(%rcx
)
240 prefetcht0
(-32 * 4 * 3 - 64)(%rcx
)
241 vmovdqu
(%rcx
), %ymm0
242 vmovdqu
-32(%rcx
), %ymm1
243 vmovdqu
-(32 * 2)(%rcx
), %ymm2
244 vmovdqu
-(32 * 3)(%rcx
), %ymm3
247 vmovntdq
%ymm0
, (%r9)
248 vmovntdq
%ymm1
, -32(%r9)
249 vmovntdq
%ymm2
, -(32 * 2)(%r9)
250 vmovntdq
%ymm3
, -(32 * 3)(%r9)
253 ja loop_large_backward
255 vmovdqu
%ymm4
, (%rdi
)
256 vmovdqu
%ymm5
, 32(%rdi
)
257 vmovdqu
%ymm6
, (32 * 2)(%rdi
)
258 vmovdqu
%ymm7
, (32 * 3)(%rdi
)
259 vmovdqu
%ymm8
, (%r11)
275 .size mymemcpy, .-mymemcpy
276 .ident "GCC: (GNU) 10.3.0"
277 .section .note.GNU-stack,"",@progbits