miyuki added a comment. For intrinsics that are plain functions (not macros) you could just check the signatures using assignments to function pointers, e.g.:
#include <arm_neon.h> uint16_t (*fp1)(int32_t) = &vqmovuns_s32; $ clang -target=aarch64-arm-none-eabi -march=armv8-a+simd -c neon.c -fsyntax-only -Werror=incompatible-function-pointer-types neon.c:2:12: error: incompatible function pointer types initializing 'uint16_t (*)(int32_t)' (aka 'unsigned short (*)(int)') with an expression of type 'int16_t (*)(int32_t)' (aka 'short (*)(int)') [-Werror,-Wincompatible-function-pointer-types] uint16_t (*fp1)(int32_t) = &vqmovuns_s32; ^ ~~~~~~~~~~~~~ 1 error generated. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85118/new/ https://reviews.llvm.org/D85118 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits