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

Reply via email to