Lines Matching +full:3 +full:- +full:n

1 /* SPDX-License-Identifier: GPL-2.0-or-later */
6 * Optimized RAID-5 checksumming functions for SSE.
16 * High-speed RAID5 checksumming functions utilizing SSE instructions.
21 * x86-64 changes / gcc fixes from Andi Kleen.
25 * no advantages to be gotten from x86-64 here anyways.
39 #define PF0(x) " prefetchnta "PF_OFFS(x)"(%[p1]) ;\n"
40 #define LD(x, y) " movaps "OFFS(x)"(%[p1]), %%xmm"#y" ;\n"
41 #define ST(x, y) " movaps %%xmm"#y", "OFFS(x)"(%[p1]) ;\n"
42 #define PF1(x) " prefetchnta "PF_OFFS(x)"(%[p2]) ;\n"
43 #define PF2(x) " prefetchnta "PF_OFFS(x)"(%[p3]) ;\n"
44 #define PF3(x) " prefetchnta "PF_OFFS(x)"(%[p4]) ;\n"
45 #define PF4(x) " prefetchnta "PF_OFFS(x)"(%[p5]) ;\n"
46 #define XO1(x, y) " xorps "OFFS(x)"(%[p2]), %%xmm"#y" ;\n"
47 #define XO2(x, y) " xorps "OFFS(x)"(%[p3]), %%xmm"#y" ;\n"
48 #define XO3(x, y) " xorps "OFFS(x)"(%[p4]), %%xmm"#y" ;\n"
49 #define XO4(x, y) " xorps "OFFS(x)"(%[p5]), %%xmm"#y" ;\n"
57 op(i + 3, 3)
74 LD(i + 3, 3) \ in xor_sse_2()
80 XO1(i + 3, 3) \ in xor_sse_2()
84 ST(i + 3, 3) \ in xor_sse_2()
90 " .align 32 ;\n" in xor_sse_2()
91 " 1: ;\n" in xor_sse_2()
98 " add %[inc], %[p1] ;\n" in xor_sse_2()
99 " add %[inc], %[p2] ;\n" in xor_sse_2()
100 " dec %[cnt] ;\n" in xor_sse_2()
101 " jnz 1b ;\n" in xor_sse_2()
124 " .align 32 ;\n" in xor_sse_2_pf64()
125 " 1: ;\n" in xor_sse_2_pf64()
132 " add %[inc], %[p1] ;\n" in xor_sse_2_pf64()
133 " add %[inc], %[p2] ;\n" in xor_sse_2_pf64()
134 " dec %[cnt] ;\n" in xor_sse_2_pf64()
135 " jnz 1b ;\n" in xor_sse_2_pf64()
160 LD(i + 3, 3) \ in xor_sse_3()
168 XO1(i + 3, 3) \ in xor_sse_3()
172 XO2(i + 3, 3) \ in xor_sse_3()
176 ST(i + 3, 3) \ in xor_sse_3()
182 " .align 32 ;\n" in xor_sse_3()
183 " 1: ;\n" in xor_sse_3()
190 " add %[inc], %[p1] ;\n" in xor_sse_3()
191 " add %[inc], %[p2] ;\n" in xor_sse_3()
192 " add %[inc], %[p3] ;\n" in xor_sse_3()
193 " dec %[cnt] ;\n" in xor_sse_3()
194 " jnz 1b ;\n" in xor_sse_3()
219 " .align 32 ;\n" in xor_sse_3_pf64()
220 " 1: ;\n" in xor_sse_3_pf64()
227 " add %[inc], %[p1] ;\n" in xor_sse_3_pf64()
228 " add %[inc], %[p2] ;\n" in xor_sse_3_pf64()
229 " add %[inc], %[p3] ;\n" in xor_sse_3_pf64()
230 " dec %[cnt] ;\n" in xor_sse_3_pf64()
231 " jnz 1b ;\n" in xor_sse_3_pf64()
256 LD(i + 3, 3) \ in xor_sse_4()
262 XO1(i + 3, 3) \ in xor_sse_4()
270 XO2(i + 3, 3) \ in xor_sse_4()
274 XO3(i + 3, 3) \ in xor_sse_4()
278 ST(i + 3, 3) \ in xor_sse_4()
284 " .align 32 ;\n" in xor_sse_4()
285 " 1: ;\n" in xor_sse_4()
292 " add %[inc], %[p1] ;\n" in xor_sse_4()
293 " add %[inc], %[p2] ;\n" in xor_sse_4()
294 " add %[inc], %[p3] ;\n" in xor_sse_4()
295 " add %[inc], %[p4] ;\n" in xor_sse_4()
296 " dec %[cnt] ;\n" in xor_sse_4()
297 " jnz 1b ;\n" in xor_sse_4()
323 " .align 32 ;\n" in xor_sse_4_pf64()
324 " 1: ;\n" in xor_sse_4_pf64()
331 " add %[inc], %[p1] ;\n" in xor_sse_4_pf64()
332 " add %[inc], %[p2] ;\n" in xor_sse_4_pf64()
333 " add %[inc], %[p3] ;\n" in xor_sse_4_pf64()
334 " add %[inc], %[p4] ;\n" in xor_sse_4_pf64()
335 " dec %[cnt] ;\n" in xor_sse_4_pf64()
336 " jnz 1b ;\n" in xor_sse_4_pf64()
361 LD(i + 3, 3) \ in xor_sse_5()
367 XO1(i + 3, 3) \ in xor_sse_5()
373 XO2(i + 3, 3) \ in xor_sse_5()
381 XO3(i + 3, 3) \ in xor_sse_5()
385 XO4(i + 3, 3) \ in xor_sse_5()
389 ST(i + 3, 3) \ in xor_sse_5()
395 " .align 32 ;\n" in xor_sse_5()
396 " 1: ;\n" in xor_sse_5()
403 " add %[inc], %[p1] ;\n" in xor_sse_5()
404 " add %[inc], %[p2] ;\n" in xor_sse_5()
405 " add %[inc], %[p3] ;\n" in xor_sse_5()
406 " add %[inc], %[p4] ;\n" in xor_sse_5()
407 " add %[inc], %[p5] ;\n" in xor_sse_5()
408 " dec %[cnt] ;\n" in xor_sse_5()
409 " jnz 1b ;\n" in xor_sse_5()
436 " .align 32 ;\n" in xor_sse_5_pf64()
437 " 1: ;\n" in xor_sse_5_pf64()
444 " add %[inc], %[p1] ;\n" in xor_sse_5_pf64()
445 " add %[inc], %[p2] ;\n" in xor_sse_5_pf64()
446 " add %[inc], %[p3] ;\n" in xor_sse_5_pf64()
447 " add %[inc], %[p4] ;\n" in xor_sse_5_pf64()
448 " add %[inc], %[p5] ;\n" in xor_sse_5_pf64()
449 " dec %[cnt] ;\n" in xor_sse_5_pf64()
450 " jnz 1b ;\n" in xor_sse_5_pf64()
460 .name = "prefetch64-sse",