(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
sve/
acle/
general-c/
unary_convert_2.c
       1  #include <arm_sve.h>
       2  
       3  void
       4  test (svbool_t pg, svint8_t s8, svuint8_t u8,
       5        svint16_t s16, svuint16_t u16, svint32_t s32, svuint32_t u32,
       6        svint64_t s64, svuint64_t u64, svfloat16_t f16, svfloat32_t f32,
       7        svfloat64_t f64)
       8  {
       9    svcvt_f64_m (f64, pg); /* { dg-error {too few arguments to function 'svcvt_f64_m'} } */
      10    svcvt_f64_m (f64, pg, s32, 0); /* { dg-error {too many arguments to function 'svcvt_f64_m'} } */
      11    svcvt_f64_m (f32, pg, s32); /* { dg-error {passing 'svfloat32_t' to argument 1 of 'svcvt_f64_m', which expects 'svfloat64_t'} } */
      12    svcvt_f64_m (0, pg, s32); /* { dg-error {passing 'int' to argument 1 of 'svcvt_f64_m', which expects 'svfloat64_t'} } */
      13    svcvt_f64_m (pg, pg, s32); /* { dg-error {passing 'svbool_t' to argument 1 of 'svcvt_f64_m', which expects 'svfloat64_t'} } */
      14    svcvt_f64_m (f64, s32, s32); /* { dg-error {passing 'svint32_t' to argument 2 of 'svcvt_f64_m', which expects 'svbool_t'} } */
      15    svcvt_f64_m (f64, pg, 0); /* { dg-error {passing 'int' to argument 3 of 'svcvt_f64_m', which expects an SVE vector type} } */
      16  
      17    svcvt_f64_m (f64, pg, s8); /* { dg-error {'svcvt_f64_m' has no form that takes 'svint8_t' arguments} } */
      18    svcvt_f64_m (f64, pg, s16); /* { dg-error {'svcvt_f64_m' has no form that takes 'svint16_t' arguments} } */
      19    svcvt_f64_m (f64, pg, s32);
      20    svcvt_f64_m (f64, pg, s64);
      21    svcvt_f64_m (f64, pg, u8); /* { dg-error {'svcvt_f64_m' has no form that takes 'svuint8_t' arguments} } */
      22    svcvt_f64_m (f64, pg, u16); /* { dg-error {'svcvt_f64_m' has no form that takes 'svuint16_t' arguments} } */
      23    svcvt_f64_m (f64, pg, u32);
      24    svcvt_f64_m (f64, pg, u64);
      25    svcvt_f64_m (f64, pg, f16);
      26    svcvt_f64_m (f64, pg, f32);
      27    svcvt_f64_m (f64, pg, f64); /* { dg-error {'svcvt_f64_m' has no form that takes 'svfloat64_t' arguments} } */
      28  
      29    svcvt_f32_m (f32, pg, s8); /* { dg-error {'svcvt_f32_m' has no form that takes 'svint8_t' arguments} } */
      30    svcvt_f32_m (f32, pg, s16); /* { dg-error {'svcvt_f32_m' has no form that takes 'svint16_t' arguments} } */
      31    svcvt_f32_m (f32, pg, s32);
      32    svcvt_f32_m (f32, pg, s64);
      33    svcvt_f32_m (f32, pg, u8); /* { dg-error {'svcvt_f32_m' has no form that takes 'svuint8_t' arguments} } */
      34    svcvt_f32_m (f32, pg, u16); /* { dg-error {'svcvt_f32_m' has no form that takes 'svuint16_t' arguments} } */
      35    svcvt_f32_m (f32, pg, u32);
      36    svcvt_f32_m (f32, pg, u64);
      37    svcvt_f32_m (f32, pg, f16);
      38    svcvt_f32_m (f32, pg, f32); /* { dg-error {'svcvt_f32_m' has no form that takes 'svfloat32_t' arguments} } */
      39    svcvt_f32_m (f32, pg, f64);
      40  
      41    svcvt_f16_m (f16, pg, s8); /* { dg-error {'svcvt_f16_m' has no form that takes 'svint8_t' arguments} } */
      42    svcvt_f16_m (f16, pg, s16);
      43    svcvt_f16_m (f16, pg, s32);
      44    svcvt_f16_m (f16, pg, s64);
      45    svcvt_f16_m (f16, pg, u8); /* { dg-error {'svcvt_f16_m' has no form that takes 'svuint8_t' arguments} } */
      46    svcvt_f16_m (f16, pg, u16);
      47    svcvt_f16_m (f16, pg, u32);
      48    svcvt_f16_m (f16, pg, u64);
      49    svcvt_f16_m (f16, pg, f16); /* { dg-error {'svcvt_f16_m' has no form that takes 'svfloat16_t' arguments} } */
      50    svcvt_f16_m (f16, pg, f32);
      51    svcvt_f16_m (f16, pg, f64);
      52  
      53    svcvt_s64_m (s64, pg, f16);
      54    svcvt_s64_m (s64, pg, f32);
      55    svcvt_s64_m (s64, pg, f64);
      56  
      57    svcvt_s32_m (s32, pg, f16);
      58    svcvt_s32_m (s32, pg, f32);
      59    svcvt_s32_m (s32, pg, f64);
      60  
      61    svcvt_s16_m (s16, pg, f16);
      62    svcvt_s16_m (s16, pg, f32); /* { dg-error {'svcvt_s16_m' has no form that takes 'svfloat32_t' arguments} } */
      63    svcvt_s16_m (s16, pg, f64); /* { dg-error {'svcvt_s16_m' has no form that takes 'svfloat64_t' arguments} } */
      64  
      65    svcvt_u64_m (u64, pg, f16);
      66    svcvt_u64_m (u64, pg, f32);
      67    svcvt_u64_m (u64, pg, f64);
      68  
      69    svcvt_u32_m (u32, pg, f16);
      70    svcvt_u32_m (u32, pg, f32);
      71    svcvt_u32_m (u32, pg, f64);
      72  
      73    svcvt_u16_m (u16, pg, f16);
      74    svcvt_u16_m (u16, pg, f32); /* { dg-error {'svcvt_u16_m' has no form that takes 'svfloat32_t' arguments} } */
      75    svcvt_u16_m (u16, pg, f64); /* { dg-error {'svcvt_u16_m' has no form that takes 'svfloat64_t' arguments} } */
      76  }