(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
sve/
acle/
general-c/
unary_narrowt_1.c
       1  /* { dg-do compile } */
       2  
       3  #include <arm_sve.h>
       4  
       5  #pragma GCC target ("arch=armv8.2-a+sve2")
       6  
       7  void
       8  f1 (svbool_t pg, svint8_t s8, svuint8_t u8,
       9      svint16_t s16, svuint16_t u16,
      10      svint32_t s32, svuint32_t u32,
      11      svint64_t s64, svuint64_t u64,
      12      svfloat16_t f16, svfloat32_t f32)
      13  {
      14    svqxtnt (u32); /* { dg-error {too few arguments to function 'svqxtnt'} } */
      15    svqxtnt (u32, u16, u16); /* { dg-error {too many arguments to function 'svqxtnt'} } */
      16    svqxtnt (pg, pg); /* { dg-error {'svqxtnt' has no form that takes 'svbool_t' arguments} } */
      17    svqxtnt (u8, u8); /* { dg-error {'svqxtnt' has no form that takes 'svuint8_t' arguments} } */
      18    svqxtnt (s8, s8); /* { dg-error {'svqxtnt' has no form that takes 'svint8_t' arguments} } */
      19    svqxtnt (u16, u16); /* { dg-error {passing 'svuint16_t' instead of the expected 'svuint8_t' to argument 1 of 'svqxtnt', after passing 'svuint16_t' to argument 2} } */
      20    svqxtnt (s8, u16); /* { dg-error {arguments 1 and 2 of 'svqxtnt' must have the same signedness, but the values passed here have type 'svint8_t' and 'svuint16_t' respectively} } */
      21    svqxtnt (pg, u16); /* { dg-error {passing 'svbool_t' instead of the expected 'svuint8_t' to argument 1 of 'svqxtnt', after passing 'svuint16_t' to argument 2} } */
      22    svqxtnt (u8, u16);
      23    svqxtnt (s8, s16);
      24    svqxtnt (u16, u32);
      25    svqxtnt (s16, s32);
      26    svqxtnt (u32, u64);
      27    svqxtnt (s32, s64);
      28    svqxtnt (f16, f32); /* { dg-error {'svqxtnt' has no form that takes 'svfloat32_t' arguments} } */
      29    svqxtnt (1, u16); /* { dg-error {passing 'int' to argument 1 of 'svqxtnt', which expects an SVE vector type} } */
      30    svqxtnt (u8, 1); /* { dg-error {passing 'int' to argument 2 of 'svqxtnt', which expects an SVE vector type} } */
      31  }