13786f2adSChristoph Hellwig // SPDX-License-Identifier: GPL-2.0-only 23786f2adSChristoph Hellwig /* 33786f2adSChristoph Hellwig * Authors: Jackie Liu <liuyun01@kylinos.cn> 43786f2adSChristoph Hellwig * Copyright (C) 2018,Tianjin KYLIN Information Technology Co., Ltd. 53786f2adSChristoph Hellwig */ 63786f2adSChristoph Hellwig 73786f2adSChristoph Hellwig #include <asm/simd.h> 8e20043b4SChristoph Hellwig #include "xor_impl.h" 9e20043b4SChristoph Hellwig #include "xor_arch.h" 10352ebd06SChristoph Hellwig #include "xor-neon.h" 113786f2adSChristoph Hellwig 12352ebd06SChristoph Hellwig #define XOR_TEMPLATE(_name) \ 13*80dcf0a7SChristoph Hellwig static void xor_gen_##_name(void *dest, void **srcs, unsigned int src_cnt, \ 14*80dcf0a7SChristoph Hellwig unsigned int bytes) \ 15352ebd06SChristoph Hellwig { \ 16352ebd06SChristoph Hellwig scoped_ksimd() \ 17*80dcf0a7SChristoph Hellwig xor_gen_##_name##_inner(dest, srcs, src_cnt, bytes); \ 18352ebd06SChristoph Hellwig } \ 19352ebd06SChristoph Hellwig \ 20352ebd06SChristoph Hellwig struct xor_block_template xor_block_##_name = { \ 21352ebd06SChristoph Hellwig .name = __stringify(_name), \ 22*80dcf0a7SChristoph Hellwig .xor_gen = xor_gen_##_name, \ 233786f2adSChristoph Hellwig }; 24352ebd06SChristoph Hellwig 25352ebd06SChristoph Hellwig XOR_TEMPLATE(neon); 26352ebd06SChristoph Hellwig XOR_TEMPLATE(eor3); 27