xref: /llvm-project/clang/test/Sema/aarch64-sve-vector-arith-ops.c (revision 123064dc397d478a636ba1c5960d41ad381036a0)
1 // RUN: %clang_cc1 -verify -triple aarch64-none-linux-gnu -target-feature +sve -fsyntax-only %s
2 
3 // REQUIRES: aarch64-registered-target
4 
5 #include <arm_sve.h>
6 
7 struct S {
8   int x;
9 };
10 
add(svint8_t i8,svint16_t i16,svint32_t i32,svint64_t i64,svuint8_t u8,svuint16_t u16,svuint32_t u32,svuint64_t u64,svfloat16_t f16,svfloat32_t f32,svfloat64_t f64,svbool_t b,struct S s)11 void add(svint8_t i8, svint16_t i16, svint32_t i32, svint64_t i64,
12          svuint8_t u8, svuint16_t u16, svuint32_t u32, svuint64_t u64,
13          svfloat16_t f16, svfloat32_t f32, svfloat64_t f64,
14          svbool_t b, struct S s) {
15   (void)(b + b); // expected-error{{invalid operands to binary expression}}
16 
17   (void)(i8 + b); // expected-error{{invalid operands to binary expression}}
18   (void)(i8 + i16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint16_t' (aka '__SVInt16_t'))}}
19   (void)(i8 + i32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint32_t' (aka '__SVInt32_t'))}}
20   (void)(i8 + i64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint64_t' (aka '__SVInt64_t'))}}
21   (void)(i8 + u16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
22   (void)(i8 + u32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
23   (void)(i8 + u64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
24   (void)(i8 + f16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
25   (void)(i8 + f32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
26   (void)(i8 + f64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
27 
28   (void)(u8 + b);   // expected-error{{invalid operands to binary expression}}
29   (void)(u8 + i16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint16_t' (aka '__SVInt16_t'))}}
30   (void)(u8 + i32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint32_t' (aka '__SVInt32_t'))}}
31   (void)(u8 + i64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint64_t' (aka '__SVInt64_t'))}}
32   (void)(u8 + u16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
33   (void)(u8 + u32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
34   (void)(u8 + u64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
35   (void)(u8 + f16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
36   (void)(u8 + f32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
37   (void)(u8 + f64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
38 
39   (void)(i16 + b);   // expected-error{{invalid operands to binary expression}}
40   (void)(i16 + i8);  // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
41   (void)(i16 + i32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
42   (void)(i16 + i64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
43   (void)(i16 + u8);  // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
44   (void)(i16 + u32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
45   (void)(i16 + u64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
46   (void)(i16 + f16); // expected-error{{cannot convert between vector type 'svfloat16_t' (aka '__SVFloat16_t') and vector type 'svint16_t' (aka '__SVInt16_t') as implicit conversion would cause truncation}}
47   (void)(i16 + f32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
48   (void)(i16 + f64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
49 
50   (void)(u16 + b);   // expected-error{{invalid operands to binary expression}}
51   (void)(u16 + i8);  // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
52   (void)(u16 + i32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
53   (void)(u16 + i64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
54   (void)(u16 + u8);  // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
55   (void)(u16 + u32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
56   (void)(u16 + u64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
57   (void)(u16 + f16); // expected-error{{cannot convert between vector type 'svfloat16_t' (aka '__SVFloat16_t') and vector type 'svuint16_t' (aka '__SVUint16_t') as implicit conversion would cause truncation}}
58   (void)(u16 + f32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
59   (void)(u16 + f64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
60 
61   (void)(i32 + b);   // expected-error{{invalid operands to binary expression}}
62   (void)(i32 + i8);  // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
63   (void)(i32 + i16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
64   (void)(i32 + i64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
65   (void)(i32 + u8);  // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
66   (void)(i32 + u16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
67   (void)(i32 + u64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
68   (void)(i32 + f16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
69   (void)(i32 + f32); // expected-error{{cannot convert between vector type 'svfloat32_t' (aka '__SVFloat32_t') and vector type 'svint32_t' (aka '__SVInt32_t') as implicit conversion would cause truncation}}
70   (void)(i32 + f64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
71 
72   (void)(u32 + b);   // expected-error{{invalid operands to binary expression}}
73   (void)(u32 + i8);  // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
74   (void)(u32 + i16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
75   (void)(u32 + i64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
76   (void)(u32 + u8);  // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
77   (void)(u32 + u16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
78   (void)(u32 + u64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
79   (void)(u32 + f16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
80   (void)(u32 + f32); // expected-error{{cannot convert between vector type 'svfloat32_t' (aka '__SVFloat32_t') and vector type 'svuint32_t' (aka '__SVUint32_t') as implicit conversion would cause truncation}}
81   (void)(u32 + f64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
82 
83   (void)(i64 + b);   // expected-error{{invalid operands to binary expression}}
84   (void)(i64 + i8);  // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
85   (void)(i64 + i16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
86   (void)(i64 + i32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
87   (void)(i64 + u8);  // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
88   (void)(i64 + u16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
89   (void)(i64 + u32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
90   (void)(i64 + f16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
91   (void)(i64 + f32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
92   (void)(i64 + f64); // expected-error{{cannot convert between vector type 'svfloat64_t' (aka '__SVFloat64_t') and vector type 'svint64_t' (aka '__SVInt64_t') as implicit conversion would cause truncation}}
93 
94   (void)(u64 + b);   // expected-error{{invalid operands to binary expression}}
95   (void)(u64 + i8);  // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
96   (void)(u64 + i16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
97   (void)(u64 + i32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
98   (void)(u64 + u8);  // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
99   (void)(u64 + u16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
100   (void)(u64 + u32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
101   (void)(u64 + f16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
102   (void)(u64 + f32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
103   (void)(u64 + f64); // expected-error{{cannot convert between vector type 'svfloat64_t' (aka '__SVFloat64_t') and vector type 'svuint64_t' (aka '__SVUint64_t') as implicit conversion would cause truncation}}
104 
105   (void)(f16 + b);   // expected-error{{invalid operands to binary expression}}
106   (void)(f16 + i8);  // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
107   (void)(f16 + i16); // expected-error{{cannot convert between vector type 'svint16_t' (aka '__SVInt16_t') and vector type 'svfloat16_t' (aka '__SVFloat16_t') as implicit conversion would cause truncation}}
108   (void)(f16 + i32); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
109   (void)(f16 + i64); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
110   (void)(f16 + u8);  // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
111   (void)(f16 + u32); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
112   (void)(f16 + u64); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
113   (void)(f16 + f32); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
114   (void)(f16 + f64); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
115 
116   (void)(f32 + b);   // expected-error{{invalid operands to binary expression}}
117   (void)(f32 + i8);  // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
118   (void)(f32 + i16); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
119   (void)(f32 + i32); // expected-error{{cannot convert between vector type 'svint32_t' (aka '__SVInt32_t') and vector type 'svfloat32_t' (aka '__SVFloat32_t') as implicit conversion would cause truncation}}
120   (void)(f32 + i64); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
121   (void)(f32 + u8);  // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
122   (void)(f32 + u16); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
123   (void)(f32 + u64); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
124   (void)(f32 + f16); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
125   (void)(f32 + f64); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
126 
127   (void)(f64 + b);   // expected-error{{invalid operands to binary expression}}
128   (void)(f64 + i8);  // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
129   (void)(f64 + i16); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
130   (void)(f64 + i32); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
131   (void)(f64 + i64); // expected-error{{cannot convert between vector type 'svint64_t' (aka '__SVInt64_t') and vector type 'svfloat64_t' (aka '__SVFloat64_t') as implicit conversion would cause truncation}}
132   (void)(f64 + u8);  // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
133   (void)(f64 + u16); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
134   (void)(f64 + u32); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
135   (void)(f64 + f16); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
136   (void)(f64 + f32); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
137 
138   (void)(s + i8); // expected-error{{cannot convert between vector and non-scalar values}}
139   (void)(s + i16); // expected-error{{cannot convert between vector and non-scalar values}}
140   (void)(s + i32); // expected-error{{cannot convert between vector and non-scalar values}}
141   (void)(s + i64); // expected-error{{cannot convert between vector and non-scalar values}}
142   (void)(s + u16); // expected-error{{cannot convert between vector and non-scalar values}}
143   (void)(s + u32); // expected-error{{cannot convert between vector and non-scalar values}}
144   (void)(s + u64); // expected-error{{cannot convert between vector and non-scalar values}}
145   (void)(s + f16); // expected-error{{cannot convert between vector and non-scalar values}}
146   (void)(s + f32); // expected-error{{cannot convert between vector and non-scalar values}}
147   (void)(s + f64); // expected-error{{cannot convert between vector and non-scalar values}}
148 }
149 
sub(svint8_t i8,svint16_t i16,svint32_t i32,svint64_t i64,svuint8_t u8,svuint16_t u16,svuint32_t u32,svuint64_t u64,svfloat16_t f16,svfloat32_t f32,svfloat64_t f64,svbool_t b,struct S s)150 void sub(svint8_t i8, svint16_t i16, svint32_t i32, svint64_t i64,
151          svuint8_t u8, svuint16_t u16, svuint32_t u32, svuint64_t u64,
152          svfloat16_t f16, svfloat32_t f32, svfloat64_t f64,
153          svbool_t b, struct S s) {
154   (void)(b - b); // expected-error{{invalid operands to binary expression}}
155 
156   (void)(i8 - b);   // expected-error{{invalid operands to binary expression}}
157   (void)(i8 - i16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint16_t' (aka '__SVInt16_t'))}}
158   (void)(i8 - i32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint32_t' (aka '__SVInt32_t'))}}
159   (void)(i8 - i64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint64_t' (aka '__SVInt64_t'))}}
160   (void)(i8 - u16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
161   (void)(i8 - u32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
162   (void)(i8 - u64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
163   (void)(i8 - f16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
164   (void)(i8 - f32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
165   (void)(i8 - f64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
166 
167   (void)(u8 - b);   // expected-error{{invalid operands to binary expression}}
168   (void)(u8 - i16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint16_t' (aka '__SVInt16_t'))}}
169   (void)(u8 - i32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint32_t' (aka '__SVInt32_t'))}}
170   (void)(u8 - i64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint64_t' (aka '__SVInt64_t'))}}
171   (void)(u8 - u16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
172   (void)(u8 - u32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
173   (void)(u8 - u64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
174   (void)(u8 - f16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
175   (void)(u8 - f32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
176   (void)(u8 - f64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
177 
178   (void)(i16 - b);   // expected-error{{invalid operands to binary expression}}
179   (void)(i16 - i8);  // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
180   (void)(i16 - i32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
181   (void)(i16 - i64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
182   (void)(i16 - u8);  // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
183   (void)(i16 - u32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
184   (void)(i16 - u64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
185   (void)(i16 - f16); // expected-error{{cannot convert between vector type 'svfloat16_t' (aka '__SVFloat16_t') and vector type 'svint16_t' (aka '__SVInt16_t') as implicit conversion would cause truncation}}
186   (void)(i16 - f32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
187   (void)(i16 - f64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
188 
189   (void)(u16 - b);   // expected-error{{invalid operands to binary expression}}
190   (void)(u16 - i8);  // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
191   (void)(u16 - i32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
192   (void)(u16 - i64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
193   (void)(u16 - u8);  // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
194   (void)(u16 - u32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
195   (void)(u16 - u64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
196   (void)(u16 - f16); // expected-error{{cannot convert between vector type 'svfloat16_t' (aka '__SVFloat16_t') and vector type 'svuint16_t' (aka '__SVUint16_t') as implicit conversion would cause truncation}}
197   (void)(u16 - f32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
198   (void)(u16 - f64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
199 
200   (void)(i32 - b);   // expected-error{{invalid operands to binary expression}}
201   (void)(i32 - i8);  // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
202   (void)(i32 - i16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
203   (void)(i32 - i64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
204   (void)(i32 - u8);  // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
205   (void)(i32 - u16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
206   (void)(i32 - u64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
207   (void)(i32 - f16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
208   (void)(i32 - f32); // expected-error{{cannot convert between vector type 'svfloat32_t' (aka '__SVFloat32_t') and vector type 'svint32_t' (aka '__SVInt32_t') as implicit conversion would cause truncation}}
209   (void)(i32 - f64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
210 
211   (void)(u32 - b);   // expected-error{{invalid operands to binary expression}}
212   (void)(u32 - i8);  // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
213   (void)(u32 - i16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
214   (void)(u32 - i64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
215   (void)(u32 - u8);  // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
216   (void)(u32 - u16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
217   (void)(u32 - u64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
218   (void)(u32 - f16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
219   (void)(u32 - f32); // expected-error{{cannot convert between vector type 'svfloat32_t' (aka '__SVFloat32_t') and vector type 'svuint32_t' (aka '__SVUint32_t') as implicit conversion would cause truncation}}
220   (void)(u32 - f64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
221 
222   (void)(i64 - b);   // expected-error{{invalid operands to binary expression}}
223   (void)(i64 - i8);  // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
224   (void)(i64 - i16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
225   (void)(i64 - i32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
226   (void)(i64 - u8);  // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
227   (void)(i64 - u16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
228   (void)(i64 - u32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
229   (void)(i64 - f16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
230   (void)(i64 - f32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
231   (void)(i64 - f64); // expected-error{{cannot convert between vector type 'svfloat64_t' (aka '__SVFloat64_t') and vector type 'svint64_t' (aka '__SVInt64_t') as implicit conversion would cause truncation}}
232 
233   (void)(u64 - b);   // expected-error{{invalid operands to binary expression}}
234   (void)(u64 - i8);  // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
235   (void)(u64 - i16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
236   (void)(u64 - i32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
237   (void)(u64 - u8);  // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
238   (void)(u64 - u16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
239   (void)(u64 - u32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
240   (void)(u64 - f16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
241   (void)(u64 - f32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
242   (void)(u64 - f64); // expected-error{{cannot convert between vector type 'svfloat64_t' (aka '__SVFloat64_t') and vector type 'svuint64_t' (aka '__SVUint64_t') as implicit conversion would cause truncation}}
243 
244   (void)(f16 - b);   // expected-error{{invalid operands to binary expression}}
245   (void)(f16 - i8);  // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
246   (void)(f16 - i16); // expected-error{{cannot convert between vector type 'svint16_t' (aka '__SVInt16_t') and vector type 'svfloat16_t' (aka '__SVFloat16_t') as implicit conversion would cause truncation}}
247   (void)(f16 - i32); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
248   (void)(f16 - i64); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
249   (void)(f16 - u8);  // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
250   (void)(f16 - u32); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
251   (void)(f16 - u64); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
252   (void)(f16 - f32); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
253   (void)(f16 - f64); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
254 
255   (void)(f32 - b);   // expected-error{{invalid operands to binary expression}}
256   (void)(f32 - i8);  // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
257   (void)(f32 - i16); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
258   (void)(f32 - i32); // expected-error{{cannot convert between vector type 'svint32_t' (aka '__SVInt32_t') and vector type 'svfloat32_t' (aka '__SVFloat32_t') as implicit conversion would cause truncation}}
259   (void)(f32 - i64); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
260   (void)(f32 - u8);  // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
261   (void)(f32 - u16); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
262   (void)(f32 - u64); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
263   (void)(f32 - f16); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
264   (void)(f32 - f64); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
265 
266   (void)(f64 - b);   // expected-error{{invalid operands to binary expression}}
267   (void)(f64 - i8);  // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
268   (void)(f64 - i16); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
269   (void)(f64 - i32); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
270   (void)(f64 - i64); // expected-error{{cannot convert between vector type 'svint64_t' (aka '__SVInt64_t') and vector type 'svfloat64_t' (aka '__SVFloat64_t') as implicit conversion would cause truncation}}
271   (void)(f64 - u8);  // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
272   (void)(f64 - u16); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
273   (void)(f64 - u32); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
274   (void)(f64 - f16); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
275   (void)(f64 - f32); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
276 
277   (void)(s - i8);   // expected-error{{cannot convert between vector and non-scalar values}}
278   (void)(s - i16); // expected-error{{cannot convert between vector and non-scalar values}}
279   (void)(s - i32); // expected-error{{cannot convert between vector and non-scalar values}}
280   (void)(s - i64); // expected-error{{cannot convert between vector and non-scalar values}}
281   (void)(s - u16); // expected-error{{cannot convert between vector and non-scalar values}}
282   (void)(s - u32); // expected-error{{cannot convert between vector and non-scalar values}}
283   (void)(s - u64); // expected-error{{cannot convert between vector and non-scalar values}}
284   (void)(s - f16); // expected-error{{cannot convert between vector and non-scalar values}}
285   (void)(s - f32); // expected-error{{cannot convert between vector and non-scalar values}}
286   (void)(s - f64); // expected-error{{cannot convert between vector and non-scalar values}}
287 }
288 
mul(svint8_t i8,svint16_t i16,svint32_t i32,svint64_t i64,svuint8_t u8,svuint16_t u16,svuint32_t u32,svuint64_t u64,svfloat16_t f16,svfloat32_t f32,svfloat64_t f64,svbool_t b,struct S s)289 void mul(svint8_t i8, svint16_t i16, svint32_t i32, svint64_t i64,
290          svuint8_t u8, svuint16_t u16, svuint32_t u32, svuint64_t u64,
291          svfloat16_t f16, svfloat32_t f32, svfloat64_t f64,
292          svbool_t b, struct S s) {
293   (void)(b * b); // expected-error{{invalid operands to binary expression}}
294 
295   (void)(i8 * b);   // expected-error{{invalid operands to binary expression}}
296   (void)(i8 * i16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint16_t' (aka '__SVInt16_t'))}}
297   (void)(i8 * i32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint32_t' (aka '__SVInt32_t'))}}
298   (void)(i8 * i64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint64_t' (aka '__SVInt64_t'))}}
299   (void)(i8 * u16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
300   (void)(i8 * u32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
301   (void)(i8 * u64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
302   (void)(i8 * f16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
303   (void)(i8 * f32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
304   (void)(i8 * f64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
305 
306   (void)(u8 * b);   // expected-error{{invalid operands to binary expression}}
307   (void)(u8 * i16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint16_t' (aka '__SVInt16_t'))}}
308   (void)(u8 * i32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint32_t' (aka '__SVInt32_t'))}}
309   (void)(u8 * i64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint64_t' (aka '__SVInt64_t'))}}
310   (void)(u8 * u16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
311   (void)(u8 * u32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
312   (void)(u8 * u64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
313   (void)(u8 * f16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
314   (void)(u8 * f32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
315   (void)(u8 * f64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
316 
317   (void)(i16 * b);   // expected-error{{invalid operands to binary expression}}
318   (void)(i16 * i8);  // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
319   (void)(i16 * i32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
320   (void)(i16 * i64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
321   (void)(i16 * u8);  // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
322   (void)(i16 * u32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
323   (void)(i16 * u64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
324   (void)(i16 * f16); // expected-error{{cannot convert between vector type 'svfloat16_t' (aka '__SVFloat16_t') and vector type 'svint16_t' (aka '__SVInt16_t') as implicit conversion would cause truncation}}
325   (void)(i16 * f32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
326   (void)(i16 * f64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
327 
328   (void)(u16 * b);   // expected-error{{invalid operands to binary expression}}
329   (void)(u16 * i8);  // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
330   (void)(u16 * i32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
331   (void)(u16 * i64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
332   (void)(u16 * u8);  // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
333   (void)(u16 * u32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
334   (void)(u16 * u64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
335   (void)(u16 * f16); // expected-error{{cannot convert between vector type 'svfloat16_t' (aka '__SVFloat16_t') and vector type 'svuint16_t' (aka '__SVUint16_t') as implicit conversion would cause truncation}}
336   (void)(u16 * f32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
337   (void)(u16 * f64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
338 
339   (void)(i32 * b);   // expected-error{{invalid operands to binary expression}}
340   (void)(i32 * i8);  // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
341   (void)(i32 * i16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
342   (void)(i32 * i64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
343   (void)(i32 * u8);  // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
344   (void)(i32 * u16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
345   (void)(i32 * u64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
346   (void)(i32 * f16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
347   (void)(i32 * f32); // expected-error{{cannot convert between vector type 'svfloat32_t' (aka '__SVFloat32_t') and vector type 'svint32_t' (aka '__SVInt32_t') as implicit conversion would cause truncation}}
348   (void)(i32 * f64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
349 
350   (void)(u32 * b);   // expected-error{{invalid operands to binary expression}}
351   (void)(u32 * i8);  // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
352   (void)(u32 * i16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
353   (void)(u32 * i64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
354   (void)(u32 * u8);  // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
355   (void)(u32 * u16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
356   (void)(u32 * u64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
357   (void)(u32 * f16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
358   (void)(u32 * f32); // expected-error{{cannot convert between vector type 'svfloat32_t' (aka '__SVFloat32_t') and vector type 'svuint32_t' (aka '__SVUint32_t') as implicit conversion would cause truncation}}
359   (void)(u32 * f64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
360 
361   (void)(i64 * b);   // expected-error{{invalid operands to binary expression}}
362   (void)(i64 * i8);  // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
363   (void)(i64 * i16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
364   (void)(i64 * i32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
365   (void)(i64 * u8);  // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
366   (void)(i64 * u16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
367   (void)(i64 * u32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
368   (void)(i64 * f16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
369   (void)(i64 * f32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
370   (void)(i64 * f64); // expected-error{{cannot convert between vector type 'svfloat64_t' (aka '__SVFloat64_t') and vector type 'svint64_t' (aka '__SVInt64_t') as implicit conversion would cause truncation}}
371 
372   (void)(u64 * b);   // expected-error{{invalid operands to binary expression}}
373   (void)(u64 * i8);  // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
374   (void)(u64 * i16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
375   (void)(u64 * i32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
376   (void)(u64 * u8);  // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
377   (void)(u64 * u16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
378   (void)(u64 * u32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
379   (void)(u64 * f16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
380   (void)(u64 * f32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
381   (void)(u64 * f64); // expected-error{{cannot convert between vector type 'svfloat64_t' (aka '__SVFloat64_t') and vector type 'svuint64_t' (aka '__SVUint64_t') as implicit conversion would cause truncation}}
382 
383   (void)(f16 * b);   // expected-error{{invalid operands to binary expression}}
384   (void)(f16 * i8);  // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
385   (void)(f16 * i16); // expected-error{{cannot convert between vector type 'svint16_t' (aka '__SVInt16_t') and vector type 'svfloat16_t' (aka '__SVFloat16_t') as implicit conversion would cause truncation}}
386   (void)(f16 * i32); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
387   (void)(f16 * i64); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
388   (void)(f16 * u8);  // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
389   (void)(f16 * u32); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
390   (void)(f16 * u64); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
391   (void)(f16 * f32); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
392   (void)(f16 * f64); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
393 
394   (void)(f32 * b);   // expected-error{{invalid operands to binary expression}}
395   (void)(f32 * i8);  // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
396   (void)(f32 * i16); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
397   (void)(f32 * i32); // expected-error{{cannot convert between vector type 'svint32_t' (aka '__SVInt32_t') and vector type 'svfloat32_t' (aka '__SVFloat32_t') as implicit conversion would cause truncation}}
398   (void)(f32 * i64); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
399   (void)(f32 * u8);  // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
400   (void)(f32 * u16); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
401   (void)(f32 * u64); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
402   (void)(f32 * f16); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
403   (void)(f32 * f64); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
404 
405   (void)(f64 * b);   // expected-error{{invalid operands to binary expression}}
406   (void)(f64 * i8);  // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
407   (void)(f64 * i16); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
408   (void)(f64 * i32); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
409   (void)(f64 * i64); // expected-error{{cannot convert between vector type 'svint64_t' (aka '__SVInt64_t') and vector type 'svfloat64_t' (aka '__SVFloat64_t') as implicit conversion would cause truncation}}
410   (void)(f64 * u8);  // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
411   (void)(f64 * u16); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
412   (void)(f64 * u32); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
413   (void)(f64 * f16); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
414   (void)(f64 * f32); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
415 
416   (void)(s * i8);   // expected-error{{cannot convert between vector and non-scalar values}}
417   (void)(s * i16); // expected-error{{cannot convert between vector and non-scalar values}}
418   (void)(s * i32); // expected-error{{cannot convert between vector and non-scalar values}}
419   (void)(s * i64); // expected-error{{cannot convert between vector and non-scalar values}}
420   (void)(s * u16); // expected-error{{cannot convert between vector and non-scalar values}}
421   (void)(s * u32); // expected-error{{cannot convert between vector and non-scalar values}}
422   (void)(s * u64); // expected-error{{cannot convert between vector and non-scalar values}}
423   (void)(s * f16); // expected-error{{cannot convert between vector and non-scalar values}}
424   (void)(s * f32); // expected-error{{cannot convert between vector and non-scalar values}}
425   (void)(s * f64); // expected-error{{cannot convert between vector and non-scalar values}}
426 }
427 
div(svint8_t i8,svint16_t i16,svint32_t i32,svint64_t i64,svuint8_t u8,svuint16_t u16,svuint32_t u32,svuint64_t u64,svfloat16_t f16,svfloat32_t f32,svfloat64_t f64,svbool_t b,struct S s)428 void div(svint8_t i8, svint16_t i16, svint32_t i32, svint64_t i64,
429          svuint8_t u8, svuint16_t u16, svuint32_t u32, svuint64_t u64,
430          svfloat16_t f16, svfloat32_t f32, svfloat64_t f64,
431          svbool_t b, struct S s) {
432   (void)(b / b); // expected-error{{invalid operands to binary expression}}
433 
434   (void)(i8 / b);   // expected-error{{invalid operands to binary expression}}
435   (void)(i8 / i16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint16_t' (aka '__SVInt16_t'))}}
436   (void)(i8 / i32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint32_t' (aka '__SVInt32_t'))}}
437   (void)(i8 / i64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint64_t' (aka '__SVInt64_t'))}}
438   (void)(i8 / u16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
439   (void)(i8 / u32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
440   (void)(i8 / u64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
441   (void)(i8 / f16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
442   (void)(i8 / f32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
443   (void)(i8 / f64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
444 
445   (void)(u8 / b);   // expected-error{{invalid operands to binary expression}}
446   (void)(u8 / i16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint16_t' (aka '__SVInt16_t'))}}
447   (void)(u8 / i32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint32_t' (aka '__SVInt32_t'))}}
448   (void)(u8 / i64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint64_t' (aka '__SVInt64_t'))}}
449   (void)(u8 / u16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
450   (void)(u8 / u32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
451   (void)(u8 / u64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
452   (void)(u8 / f16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
453   (void)(u8 / f32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
454   (void)(u8 / f64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
455 
456   (void)(i16 / b);   // expected-error{{invalid operands to binary expression}}
457   (void)(i16 / i8);  // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
458   (void)(i16 / i32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
459   (void)(i16 / i64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
460   (void)(i16 / u8);  // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
461   (void)(i16 / u32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
462   (void)(i16 / u64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
463   (void)(i16 / f16); // expected-error{{cannot convert between vector type 'svfloat16_t' (aka '__SVFloat16_t') and vector type 'svint16_t' (aka '__SVInt16_t') as implicit conversion would cause truncation}}
464   (void)(i16 / f32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
465   (void)(i16 / f64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
466 
467   (void)(u16 / b);   // expected-error{{invalid operands to binary expression}}
468   (void)(u16 / i8);  // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
469   (void)(u16 / i32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
470   (void)(u16 / i64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
471   (void)(u16 / u8);  // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
472   (void)(u16 / u32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
473   (void)(u16 / u64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
474   (void)(u16 / f16); // expected-error{{cannot convert between vector type 'svfloat16_t' (aka '__SVFloat16_t') and vector type 'svuint16_t' (aka '__SVUint16_t') as implicit conversion would cause truncation}}
475   (void)(u16 / f32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
476   (void)(u16 / f64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
477 
478   (void)(i32 / b);   // expected-error{{invalid operands to binary expression}}
479   (void)(i32 / i8);  // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
480   (void)(i32 / i16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
481   (void)(i32 / i64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
482   (void)(i32 / u8);  // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
483   (void)(i32 / u16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
484   (void)(i32 / u64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
485   (void)(i32 / f16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
486   (void)(i32 / f32); // expected-error{{cannot convert between vector type 'svfloat32_t' (aka '__SVFloat32_t') and vector type 'svint32_t' (aka '__SVInt32_t') as implicit conversion would cause truncation}}
487   (void)(i32 / f64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
488 
489   (void)(u32 / b);   // expected-error{{invalid operands to binary expression}}
490   (void)(u32 / i8);  // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
491   (void)(u32 / i16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
492   (void)(u32 / i64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
493   (void)(u32 / u8);  // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
494   (void)(u32 / u16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
495   (void)(u32 / u64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
496   (void)(u32 / f16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
497   (void)(u32 / f32); // expected-error{{cannot convert between vector type 'svfloat32_t' (aka '__SVFloat32_t') and vector type 'svuint32_t' (aka '__SVUint32_t') as implicit conversion would cause truncation}}
498   (void)(u32 / f64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
499 
500   (void)(i64 / b);   // expected-error{{invalid operands to binary expression}}
501   (void)(i64 / i8);  // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
502   (void)(i64 / i16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
503   (void)(i64 / i32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
504   (void)(i64 / u8);  // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
505   (void)(i64 / u16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
506   (void)(i64 / u32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
507   (void)(i64 / f16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
508   (void)(i64 / f32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
509   (void)(i64 / f64); // expected-error{{cannot convert between vector type 'svfloat64_t' (aka '__SVFloat64_t') and vector type 'svint64_t' (aka '__SVInt64_t') as implicit conversion would cause truncation}}
510 
511   (void)(u64 / b);   // expected-error{{invalid operands to binary expression}}
512   (void)(u64 / i8);  // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
513   (void)(u64 / i16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
514   (void)(u64 / i32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
515   (void)(u64 / u8);  // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
516   (void)(u64 / u16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
517   (void)(u64 / u32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
518   (void)(u64 / f16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
519   (void)(u64 / f32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
520   (void)(u64 / f64); // expected-error{{cannot convert between vector type 'svfloat64_t' (aka '__SVFloat64_t') and vector type 'svuint64_t' (aka '__SVUint64_t') as implicit conversion would cause truncation}}
521 
522   (void)(f16 / b);   // expected-error{{invalid operands to binary expression}}
523   (void)(f16 / i8);  // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
524   (void)(f16 / i16); // expected-error{{cannot convert between vector type 'svint16_t' (aka '__SVInt16_t') and vector type 'svfloat16_t' (aka '__SVFloat16_t') as implicit conversion would cause truncation}}
525   (void)(f16 / i32); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
526   (void)(f16 / i64); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
527   (void)(f16 / u8);  // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
528   (void)(f16 / u32); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
529   (void)(f16 / u64); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
530   (void)(f16 / f32); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
531   (void)(f16 / f64); // expected-error{{vector operands do not have the same number of elements ('svfloat16_t' (aka '__SVFloat16_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
532 
533   (void)(f32 / b);   // expected-error{{invalid operands to binary expression}}
534   (void)(f32 / i8);  // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
535   (void)(f32 / i16); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
536   (void)(f32 / i32); // expected-error{{cannot convert between vector type 'svint32_t' (aka '__SVInt32_t') and vector type 'svfloat32_t' (aka '__SVFloat32_t') as implicit conversion would cause truncation}}
537   (void)(f32 / i64); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
538   (void)(f32 / u8);  // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
539   (void)(f32 / u16); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
540   (void)(f32 / u64); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
541   (void)(f32 / f16); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
542   (void)(f32 / f64); // expected-error{{vector operands do not have the same number of elements ('svfloat32_t' (aka '__SVFloat32_t') and 'svfloat64_t' (aka '__SVFloat64_t'))}}
543 
544   (void)(f64 / b);   // expected-error{{invalid operands to binary expression}}
545   (void)(f64 / i8);  // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
546   (void)(f64 / i16); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
547   (void)(f64 / i32); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
548   (void)(f64 / i64); // expected-error{{cannot convert between vector type 'svint64_t' (aka '__SVInt64_t') and vector type 'svfloat64_t' (aka '__SVFloat64_t') as implicit conversion would cause truncation}}
549   (void)(f64 / u8);  // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
550   (void)(f64 / u16); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
551   (void)(f64 / u32); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
552   (void)(f64 / f16); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svfloat16_t' (aka '__SVFloat16_t'))}}
553   (void)(f64 / f32); // expected-error{{vector operands do not have the same number of elements ('svfloat64_t' (aka '__SVFloat64_t') and 'svfloat32_t' (aka '__SVFloat32_t'))}}
554 
555   (void)(s / i8);   // expected-error{{cannot convert between vector and non-scalar values}}
556   (void)(s / i16); // expected-error{{cannot convert between vector and non-scalar values}}
557   (void)(s / i32); // expected-error{{cannot convert between vector and non-scalar values}}
558   (void)(s / i64); // expected-error{{cannot convert between vector and non-scalar values}}
559   (void)(s / u16); // expected-error{{cannot convert between vector and non-scalar values}}
560   (void)(s / u32); // expected-error{{cannot convert between vector and non-scalar values}}
561   (void)(s / u64); // expected-error{{cannot convert between vector and non-scalar values}}
562   (void)(s / f16); // expected-error{{cannot convert between vector and non-scalar values}}
563   (void)(s / f32); // expected-error{{cannot convert between vector and non-scalar values}}
564   (void)(s / f64); // expected-error{{cannot convert between vector and non-scalar values}}
565 }
566 
mod(svint8_t i8,svint16_t i16,svint32_t i32,svint64_t i64,svuint8_t u8,svuint16_t u16,svuint32_t u32,svuint64_t u64,svfloat16_t f16,svfloat32_t f32,svfloat64_t f64,svbool_t b,struct S s)567 void mod(svint8_t i8, svint16_t i16, svint32_t i32, svint64_t i64,
568          svuint8_t u8, svuint16_t u16, svuint32_t u32, svuint64_t u64,
569          svfloat16_t f16, svfloat32_t f32, svfloat64_t f64,
570          svbool_t b, struct S s) {
571   (void)(b % b); // expected-error{{invalid operands to binary expression}}
572 
573   (void)(i8 % b);   // expected-error{{invalid operands to binary expression}}
574   (void)(i8 % i16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint16_t' (aka '__SVInt16_t'))}}
575   (void)(i8 % i32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint32_t' (aka '__SVInt32_t'))}}
576   (void)(i8 % i64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svint64_t' (aka '__SVInt64_t'))}}
577   (void)(i8 % u16); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
578   (void)(i8 % u32); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
579   (void)(i8 % u64); // expected-error{{vector operands do not have the same number of elements ('svint8_t' (aka '__SVInt8_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
580   (void)(i8 % f16); // expected-error{{invalid operands to binary expression}}
581   (void)(i8 % f32); // expected-error{{invalid operands to binary expression}}
582   (void)(i8 % f64); // expected-error{{invalid operands to binary expression}}
583 
584   (void)(u8 % b);   // expected-error{{invalid operands to binary expression}}
585   (void)(u8 % i16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint16_t' (aka '__SVInt16_t'))}}
586   (void)(u8 % i32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint32_t' (aka '__SVInt32_t'))}}
587   (void)(u8 % i64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svint64_t' (aka '__SVInt64_t'))}}
588   (void)(u8 % u16); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
589   (void)(u8 % u32); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
590   (void)(u8 % u64); // expected-error{{vector operands do not have the same number of elements ('svuint8_t' (aka '__SVUint8_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
591   (void)(u8 % f16); // expected-error{{invalid operands to binary expression}}
592   (void)(u8 % f32); // expected-error{{invalid operands to binary expression}}
593   (void)(u8 % f64); // expected-error{{invalid operands to binary expression}}
594 
595   (void)(i16 % b);   // expected-error{{invalid operands to binary expression}}
596   (void)(i16 % i8);  // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
597   (void)(i16 % i32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
598   (void)(i16 % i64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
599   (void)(i16 % u8);  // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
600   (void)(i16 % u32); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
601   (void)(i16 % u64); // expected-error{{vector operands do not have the same number of elements ('svint16_t' (aka '__SVInt16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
602   (void)(i16 % f16); // expected-error{{invalid operands to binary expression}}
603   (void)(i16 % f32); // expected-error{{invalid operands to binary expression}}
604   (void)(i16 % f64); // expected-error{{invalid operands to binary expression}}
605 
606   (void)(u16 % b);   // expected-error{{invalid operands to binary expression}}
607   (void)(u16 % i8);  // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint8_t' (aka '__SVInt8_t'))}}
608   (void)(u16 % i32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint32_t' (aka '__SVInt32_t'))}}
609   (void)(u16 % i64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svint64_t' (aka '__SVInt64_t'))}}
610   (void)(u16 % u8);  // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
611   (void)(u16 % u32); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
612   (void)(u16 % u64); // expected-error{{vector operands do not have the same number of elements ('svuint16_t' (aka '__SVUint16_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
613   (void)(u16 % f16); // expected-error{{invalid operands to binary expression}}
614   (void)(u16 % f32); // expected-error{{invalid operands to binary expression}}
615   (void)(u16 % f64); // expected-error{{invalid operands to binary expression}}
616 
617   (void)(i32 % b);   // expected-error{{invalid operands to binary expression}}
618   (void)(i32 % i8);  // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
619   (void)(i32 % i16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
620   (void)(i32 % i64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
621   (void)(i32 % u8);  // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
622   (void)(i32 % u16); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
623   (void)(i32 % u64); // expected-error{{vector operands do not have the same number of elements ('svint32_t' (aka '__SVInt32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
624   (void)(i32 % f16); // expected-error{{invalid operands to binary expression}}
625   (void)(i32 % f32); // expected-error{{invalid operands to binary expression}}
626   (void)(i32 % f64); // expected-error{{invalid operands to binary expression}}
627 
628   (void)(u32 % b);   // expected-error{{invalid operands to binary expression}}
629   (void)(u32 % i8);  // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint8_t' (aka '__SVInt8_t'))}}
630   (void)(u32 % i16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint16_t' (aka '__SVInt16_t'))}}
631   (void)(u32 % i64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svint64_t' (aka '__SVInt64_t'))}}
632   (void)(u32 % u8);  // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
633   (void)(u32 % u16); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
634   (void)(u32 % u64); // expected-error{{vector operands do not have the same number of elements ('svuint32_t' (aka '__SVUint32_t') and 'svuint64_t' (aka '__SVUint64_t'))}}
635   (void)(u32 % f16); // expected-error{{invalid operands to binary expression}}
636   (void)(u32 % f32); // expected-error{{invalid operands to binary expression}}
637   (void)(u32 % f64); // expected-error{{invalid operands to binary expression}}
638 
639   (void)(i64 % b);   // expected-error{{invalid operands to binary expression}}
640   (void)(i64 % i8);  // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
641   (void)(i64 % i16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
642   (void)(i64 % i32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
643   (void)(i64 % u8);  // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
644   (void)(i64 % u16); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
645   (void)(i64 % u32); // expected-error{{vector operands do not have the same number of elements ('svint64_t' (aka '__SVInt64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
646   (void)(i64 % f16); // expected-error{{invalid operands to binary expression}}
647   (void)(i64 % f32); // expected-error{{invalid operands to binary expression}}
648   (void)(i64 % f64); // expected-error{{invalid operands to binary expression}}
649 
650   (void)(u64 % b);   // expected-error{{invalid operands to binary expression}}
651   (void)(u64 % i8);  // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint8_t' (aka '__SVInt8_t'))}}
652   (void)(u64 % i16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint16_t' (aka '__SVInt16_t'))}}
653   (void)(u64 % i32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svint32_t' (aka '__SVInt32_t'))}}
654   (void)(u64 % u8);  // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint8_t' (aka '__SVUint8_t'))}}
655   (void)(u64 % u16); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint16_t' (aka '__SVUint16_t'))}}
656   (void)(u64 % u32); // expected-error{{vector operands do not have the same number of elements ('svuint64_t' (aka '__SVUint64_t') and 'svuint32_t' (aka '__SVUint32_t'))}}
657   (void)(u64 % f16); // expected-error{{invalid operands to binary expression}}
658   (void)(u64 % f32); // expected-error{{invalid operands to binary expression}}
659   (void)(u64 % f64); // expected-error{{invalid operands to binary expression}}
660 
661   (void)(f16 % b);   // expected-error{{invalid operands to binary expression}}
662   (void)(f16 % i8);  // expected-error{{invalid operands to binary expression}}
663   (void)(f16 % i16); // expected-error{{invalid operands to binary expression}}
664   (void)(f16 % i32); // expected-error{{invalid operands to binary expression}}
665   (void)(f16 % i64); // expected-error{{invalid operands to binary expression}}
666   (void)(f16 % u8);  // expected-error{{invalid operands to binary expression}}
667   (void)(f16 % u32); // expected-error{{invalid operands to binary expression}}
668   (void)(f16 % u64); // expected-error{{invalid operands to binary expression}}
669   (void)(f16 % f32); // expected-error{{invalid operands to binary expression}}
670   (void)(f16 % f64); // expected-error{{invalid operands to binary expression}}
671 
672   (void)(f32 % b);   // expected-error{{invalid operands to binary expression}}
673   (void)(f32 % i8);  // expected-error{{invalid operands to binary expression}}
674   (void)(f32 % i16); // expected-error{{invalid operands to binary expression}}
675   (void)(f32 % i32); // expected-error{{invalid operands to binary expression}}
676   (void)(f32 % i64); // expected-error{{invalid operands to binary expression}}
677   (void)(f32 % u8);  // expected-error{{invalid operands to binary expression}}
678   (void)(f32 % u16); // expected-error{{invalid operands to binary expression}}
679   (void)(f32 % u64); // expected-error{{invalid operands to binary expression}}
680   (void)(f32 % f16); // expected-error{{invalid operands to binary expression}}
681   (void)(f32 % f64); // expected-error{{invalid operands to binary expression}}
682 
683   (void)(f64 % b);   // expected-error{{invalid operands to binary expression}}
684   (void)(f64 % i8);  // expected-error{{invalid operands to binary expression}}
685   (void)(f64 % i16); // expected-error{{invalid operands to binary expression}}
686   (void)(f64 % i32); // expected-error{{invalid operands to binary expression}}
687   (void)(f64 % i64); // expected-error{{invalid operands to binary expression}}
688   (void)(f64 % u8);  // expected-error{{invalid operands to binary expression}}
689   (void)(f64 % u16); // expected-error{{invalid operands to binary expression}}
690   (void)(f64 % u32); // expected-error{{invalid operands to binary expression}}
691   (void)(f64 % f16); // expected-error{{invalid operands to binary expression}}
692   (void)(f64 % f32); // expected-error{{invalid operands to binary expression}}
693 
694   (void)(s % i8);  // expected-error{{invalid operands to binary expression}}
695   (void)(s % i16); // expected-error{{invalid operands to binary expression}}
696   (void)(s % i32); // expected-error{{invalid operands to binary expression}}
697   (void)(s % i64); // expected-error{{invalid operands to binary expression}}
698   (void)(s % u8);  // expected-error{{invalid operands to binary expression}}
699   (void)(s % u16); // expected-error{{invalid operands to binary expression}}
700   (void)(s % u32); // expected-error{{invalid operands to binary expression}}
701   (void)(s % f16); // expected-error{{invalid operands to binary expression}}
702   (void)(s % f32); // expected-error{{invalid operands to binary expression}}
703 }
704 
svi8(svint8_t a)705 svint8_t svi8(svint8_t a) {
706   return a + 256; // expected-error{{cannot convert between scalar type 'int' and vector type 'svint8_t' (aka '__SVInt8_t') as implicit conversion would cause truncation}}
707 }
708 
svi8_128(svint8_t a)709 svint8_t svi8_128(svint8_t a) {
710   return a + 128; // expected-warning{{implicit conversion from 'int' to 'svint8_t' (aka '__SVInt8_t') changes value from 128 to -128}}
711 }
712