1 /* { dg-do compile } */
2 
3 #include <arm_sve.h>
4 
5 #pragma GCC target ("arch=armv8.2-a+sve2")
6 
7 void
f1(svbool_t pg,svint8_t s8,svuint8_t u8,svint16_t s16,svuint16_t u16,svint32_t s32,svuint32_t u32,svint64_t s64,svuint64_t u64,svfloat16_t f16)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)
13 {
14   svaddlb (u16); /* { dg-error {too few arguments to function 'svaddlb'} } */
15   svaddlb (u16, u16, u16); /* { dg-error {too many arguments to function 'svaddlb'} } */
16   svaddlb (pg, pg); /* { dg-error {'svaddlb' has no form that takes 'svbool_t' arguments} } */
17   svaddlb (u8, u8);
18   svaddlb (s8, s8);
19   svaddlb (u16, u16);
20   svaddlb (s16, s16);
21   svaddlb (u32, u32);
22   svaddlb (s32, s32);
23   svaddlb (u64, u64); /* { dg-error {'svaddlb' has no form that takes 'svuint64_t' arguments} } */
24   svaddlb (s64, s64); /* { dg-error {'svaddlb' has no form that takes 'svint64_t' arguments} } */
25   svaddlb (f16, f16); /* { dg-error {'svaddlb' has no form that takes 'svfloat16_t' arguments} } */
26   svaddlb (1, u8); /* { dg-error {passing 'int' to argument 1 of 'svaddlb', which expects an SVE vector type} } */
27   svaddlb (u8, s8); /* { dg-error {passing 'svint8_t' to argument 2 of 'svaddlb', but previous arguments had type 'svuint8_t'} } */
28   svaddlb (u8, s16); /* { dg-error {passing 'svint16_t' to argument 2 of 'svaddlb', but previous arguments had type 'svuint8_t'} } */
29   svaddlb (u8, u16); /* { dg-error {passing 'svuint16_t' to argument 2 of 'svaddlb', but previous arguments had type 'svuint8_t'} } */
30   svaddlb (u16, pg); /* { dg-error {passing 'svbool_t' to argument 2 of 'svaddlb', but previous arguments had type 'svuint16_t'} } */
31   svaddlb (u8, 0);
32   svaddlb (u16, 0);
33   svaddlb (u32, 0);
34   svaddlb (u64, 0); /* { dg-error {'svaddlb' has no form that takes 'svuint64_t' arguments} } */
35   svaddlb (pg, 0); /* { dg-error {'svaddlb' has no form that takes 'svbool_t' arguments} } */
36 }
37