1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2018 Linaro, Ltd. <ard.biesheuvel@linaro.org> 4 */ 5 6 #ifndef __ASM_NEON_INTRINSICS_H 7 #define __ASM_NEON_INTRINSICS_H 8 9 #include <asm-generic/int-ll64.h> 10 11 /* 12 * In the kernel, u64/s64 are [un]signed long long, not [un]signed long. 13 * So by redefining these macros to the former, we can force gcc-stdint.h 14 * to define uint64_t / in64_t in a compatible manner. 15 */ 16 17 #ifdef __INT64_TYPE__ 18 #undef __INT64_TYPE__ 19 #define __INT64_TYPE__ long long 20 #endif 21 22 #ifdef __UINT64_TYPE__ 23 #undef __UINT64_TYPE__ 24 #define __UINT64_TYPE__ unsigned long long 25 #endif 26 27 /* 28 * genksyms chokes on the ARM NEON instrinsics system header, but we 29 * don't export anything it defines anyway, so just disregard when 30 * genksyms execute. 31 */ 32 #ifndef __GENKSYMS__ 33 #include <arm_neon.h> 34 #endif 35 36 #ifdef CONFIG_CC_IS_CLANG 37 #pragma clang diagnostic ignored "-Wincompatible-pointer-types" 38 #endif 39 40 #endif /* __ASM_NEON_INTRINSICS_H */ 41