Lines Matching +full:xor +full:- +full:v2
1 // SPDX-License-Identifier: GPL-2.0-only
3 * arch/arm64/lib/xor-neon.c
9 #include <linux/raid/xor.h>
11 #include <asm/neon-intrinsics.h>
19 register uint64x2_t v0, v1, v2, v3; in xor_arm64_neon_2() local
26 v2 = veorq_u64(vld1q_u64(dp1 + 4), vld1q_u64(dp2 + 4)); in xor_arm64_neon_2()
32 vst1q_u64(dp1 + 4, v2); in xor_arm64_neon_2()
37 } while (--lines > 0); in xor_arm64_neon_2()
48 register uint64x2_t v0, v1, v2, v3; in xor_arm64_neon_3() local
55 v2 = veorq_u64(vld1q_u64(dp1 + 4), vld1q_u64(dp2 + 4)); in xor_arm64_neon_3()
61 v2 = veorq_u64(v2, vld1q_u64(dp3 + 4)); in xor_arm64_neon_3()
67 vst1q_u64(dp1 + 4, v2); in xor_arm64_neon_3()
73 } while (--lines > 0); in xor_arm64_neon_3()
86 register uint64x2_t v0, v1, v2, v3; in xor_arm64_neon_4() local
93 v2 = veorq_u64(vld1q_u64(dp1 + 4), vld1q_u64(dp2 + 4)); in xor_arm64_neon_4()
99 v2 = veorq_u64(v2, vld1q_u64(dp3 + 4)); in xor_arm64_neon_4()
105 v2 = veorq_u64(v2, vld1q_u64(dp4 + 4)); in xor_arm64_neon_4()
111 vst1q_u64(dp1 + 4, v2); in xor_arm64_neon_4()
118 } while (--lines > 0); in xor_arm64_neon_4()
133 register uint64x2_t v0, v1, v2, v3; in xor_arm64_neon_5() local
140 v2 = veorq_u64(vld1q_u64(dp1 + 4), vld1q_u64(dp2 + 4)); in xor_arm64_neon_5()
146 v2 = veorq_u64(v2, vld1q_u64(dp3 + 4)); in xor_arm64_neon_5()
152 v2 = veorq_u64(v2, vld1q_u64(dp4 + 4)); in xor_arm64_neon_5()
158 v2 = veorq_u64(v2, vld1q_u64(dp5 + 4)); in xor_arm64_neon_5()
164 vst1q_u64(dp1 + 4, v2); in xor_arm64_neon_5()
172 } while (--lines > 0); in xor_arm64_neon_5()
203 register uint64x2_t v0, v1, v2, v3; in xor_arm64_eor3_3() local
212 v2 = eor3(vld1q_u64(dp1 + 4), vld1q_u64(dp2 + 4), in xor_arm64_eor3_3()
220 vst1q_u64(dp1 + 4, v2); in xor_arm64_eor3_3()
226 } while (--lines > 0); in xor_arm64_eor3_3()
240 register uint64x2_t v0, v1, v2, v3; in xor_arm64_eor3_4() local
249 v2 = eor3(vld1q_u64(dp1 + 4), vld1q_u64(dp2 + 4), in xor_arm64_eor3_4()
257 v2 = veorq_u64(v2, vld1q_u64(dp4 + 4)); in xor_arm64_eor3_4()
263 vst1q_u64(dp1 + 4, v2); in xor_arm64_eor3_4()
270 } while (--lines > 0); in xor_arm64_eor3_4()
286 register uint64x2_t v0, v1, v2, v3; in xor_arm64_eor3_5() local
295 v2 = eor3(vld1q_u64(dp1 + 4), vld1q_u64(dp2 + 4), in xor_arm64_eor3_5()
303 v2 = eor3(v2, vld1q_u64(dp4 + 4), vld1q_u64(dp5 + 4)); in xor_arm64_eor3_5()
309 vst1q_u64(dp1 + 4, v2); in xor_arm64_eor3_5()
317 } while (--lines > 0); in xor_arm64_eor3_5()
337 MODULE_DESCRIPTION("ARMv8 XOR Extensions");