xor_simd.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * Copyright (C) 2023 WANG Xuerui <git@xen0n.name>
  4. */
  5. #ifndef _ASM_LOONGARCH_XOR_SIMD_H
  6. #define _ASM_LOONGARCH_XOR_SIMD_H
  7. #ifdef CONFIG_CPU_HAS_LSX
  8. void xor_lsx_2(unsigned long bytes, unsigned long * __restrict p1,
  9. const unsigned long * __restrict p2);
  10. void xor_lsx_3(unsigned long bytes, unsigned long * __restrict p1,
  11. const unsigned long * __restrict p2, const unsigned long * __restrict p3);
  12. void xor_lsx_4(unsigned long bytes, unsigned long * __restrict p1,
  13. const unsigned long * __restrict p2, const unsigned long * __restrict p3,
  14. const unsigned long * __restrict p4);
  15. void xor_lsx_5(unsigned long bytes, unsigned long * __restrict p1,
  16. const unsigned long * __restrict p2, const unsigned long * __restrict p3,
  17. const unsigned long * __restrict p4, const unsigned long * __restrict p5);
  18. #endif /* CONFIG_CPU_HAS_LSX */
  19. #ifdef CONFIG_CPU_HAS_LASX
  20. void xor_lasx_2(unsigned long bytes, unsigned long * __restrict p1,
  21. const unsigned long * __restrict p2);
  22. void xor_lasx_3(unsigned long bytes, unsigned long * __restrict p1,
  23. const unsigned long * __restrict p2, const unsigned long * __restrict p3);
  24. void xor_lasx_4(unsigned long bytes, unsigned long * __restrict p1,
  25. const unsigned long * __restrict p2, const unsigned long * __restrict p3,
  26. const unsigned long * __restrict p4);
  27. void xor_lasx_5(unsigned long bytes, unsigned long * __restrict p1,
  28. const unsigned long * __restrict p2, const unsigned long * __restrict p3,
  29. const unsigned long * __restrict p4, const unsigned long * __restrict p5);
  30. #endif /* CONFIG_CPU_HAS_LASX */
  31. #endif /* _ASM_LOONGARCH_XOR_SIMD_H */