xref: /llvm-project/clang/test/Sema/aarch64-sve-vector-shift-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 
lshift(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)7 void lshift(svint8_t i8, svint16_t i16, svint32_t i32, svint64_t i64,
8             svuint8_t u8, svuint16_t u16, svuint32_t u32, svuint64_t u64,
9             svfloat16_t f16, svfloat32_t f32, svfloat64_t f64,
10             svbool_t b) {
11   (void)(b << b); // expected-error{{invalid operands to binary expression}}
12 
13   (void)(i8 << b);   // expected-error{{invalid operands to binary expression}}
14   (void)(i8 << i16); // expected-error{{invalid operands to binary expression}}
15   (void)(i8 << i32); // expected-error{{invalid operands to binary expression}}
16   (void)(i8 << i64); // expected-error{{invalid operands to binary expression}}
17   (void)(i8 << u16); // expected-error{{invalid operands to binary expression}}
18   (void)(i8 << u32); // expected-error{{invalid operands to binary expression}}
19   (void)(i8 << u64); // expected-error{{invalid operands to binary expression}}
20   (void)(i8 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
21   (void)(i8 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
22   (void)(i8 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
23   (void)(i8 << 0.f); // expected-error{{used type 'float' where integer is required}}
24   (void)(i8 << 0.);  // expected-error{{used type 'double' where integer is required}}
25 
26   (void)(u8 << b);   // expected-error{{invalid operands to binary expression}}
27   (void)(u8 << i16); // expected-error{{invalid operands to binary expression}}
28   (void)(u8 << i32); // expected-error{{invalid operands to binary expression}}
29   (void)(u8 << i64); // expected-error{{invalid operands to binary expression}}
30   (void)(u8 << u16); // expected-error{{invalid operands to binary expression}}
31   (void)(u8 << u32); // expected-error{{invalid operands to binary expression}}
32   (void)(u8 << u64); // expected-error{{invalid operands to binary expression}}
33   (void)(u8 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
34   (void)(u8 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
35   (void)(u8 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
36   (void)(u8 << 0.f); // expected-error{{used type 'float' where integer is required}}
37   (void)(u8 << 0.);  // expected-error{{used type 'double' where integer is required}}
38 
39   (void)(i16 << b);   // expected-error{{invalid operands to binary expression}}
40   (void)(i16 << i8);  // expected-error{{invalid operands to binary expression}}
41   (void)(i16 << i32); // expected-error{{invalid operands to binary expression}}
42   (void)(i16 << i64); // expected-error{{invalid operands to binary expression}}
43   (void)(i16 << u8);  // expected-error{{invalid operands to binary expression}}
44   (void)(i16 << u32); // expected-error{{invalid operands to binary expression}}
45   (void)(i16 << u64); // expected-error{{invalid operands to binary expression}}
46   (void)(i16 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
47   (void)(i16 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
48   (void)(i16 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
49   (void)(i16 << 0.f); // expected-error{{used type 'float' where integer is required}}
50   (void)(i16 << 0.);  // expected-error{{used type 'double' where integer is required}}
51 
52   (void)(u16 << b);   // expected-error{{invalid operands to binary expression}}
53   (void)(u16 << i8);  // expected-error{{invalid operands to binary expression}}
54   (void)(u16 << i32); // expected-error{{invalid operands to binary expression}}
55   (void)(u16 << i64); // expected-error{{invalid operands to binary expression}}
56   (void)(u16 << u8);  // expected-error{{invalid operands to binary expression}}
57   (void)(u16 << u32); // expected-error{{invalid operands to binary expression}}
58   (void)(u16 << u64); // expected-error{{invalid operands to binary expression}}
59   (void)(u16 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
60   (void)(u16 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
61   (void)(u16 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
62   (void)(u16 << 0.f); // expected-error{{used type 'float' where integer is required}}
63   (void)(u16 << 0.);  // expected-error{{used type 'double' where integer is required}}
64 
65   (void)(i32 << b);   // expected-error{{invalid operands to binary expression}}
66   (void)(i32 << i8);  // expected-error{{invalid operands to binary expression}}
67   (void)(i32 << i16); // expected-error{{invalid operands to binary expression}}
68   (void)(i32 << i64); // expected-error{{invalid operands to binary expression}}
69   (void)(i32 << u8);  // expected-error{{invalid operands to binary expression}}
70   (void)(i32 << u16); // expected-error{{invalid operands to binary expression}}
71   (void)(i32 << u64); // expected-error{{invalid operands to binary expression}}
72   (void)(i32 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
73   (void)(i32 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
74   (void)(i32 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
75   (void)(i32 << 0.f); // expected-error{{used type 'float' where integer is required}}
76   (void)(i32 << 0.);  // expected-error{{used type 'double' where integer is required}}
77 
78   (void)(u32 << b);   // expected-error{{invalid operands to binary expression}}
79   (void)(u32 << i8);  // expected-error{{invalid operands to binary expression}}
80   (void)(u32 << i16); // expected-error{{invalid operands to binary expression}}
81   (void)(u32 << i64); // expected-error{{invalid operands to binary expression}}
82   (void)(u32 << u8);  // expected-error{{invalid operands to binary expression}}
83   (void)(u32 << u16); // expected-error{{invalid operands to binary expression}}
84   (void)(u32 << u64); // expected-error{{invalid operands to binary expression}}
85   (void)(u32 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
86   (void)(u32 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
87   (void)(u32 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
88   (void)(u32 << 0.f); // expected-error{{used type 'float' where integer is required}}
89   (void)(u32 << 0.);  // expected-error{{used type 'double' where integer is required}}
90 
91   (void)(i64 << b);   // expected-error{{invalid operands to binary expression}}
92   (void)(i64 << i8);  // expected-error{{invalid operands to binary expression}}
93   (void)(i64 << i16); // expected-error{{invalid operands to binary expression}}
94   (void)(i64 << i32); // expected-error{{invalid operands to binary expression}}
95   (void)(i64 << u8);  // expected-error{{invalid operands to binary expression}}
96   (void)(i64 << u16); // expected-error{{invalid operands to binary expression}}
97   (void)(i64 << u32); // expected-error{{invalid operands to binary expression}}
98   (void)(i64 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
99   (void)(i64 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
100   (void)(i64 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
101   (void)(i64 << 0.f); // expected-error{{used type 'float' where integer is required}}
102   (void)(i64 << 0.);  // expected-error{{used type 'double' where integer is required}}
103 
104   (void)(u64 << b);   // expected-error{{invalid operands to binary expression}}
105   (void)(u64 << i8);  // expected-error{{invalid operands to binary expression}}
106   (void)(u64 << i16); // expected-error{{invalid operands to binary expression}}
107   (void)(u64 << i32); // expected-error{{invalid operands to binary expression}}
108   (void)(u64 << u8);  // expected-error{{invalid operands to binary expression}}
109   (void)(u64 << u16); // expected-error{{invalid operands to binary expression}}
110   (void)(u64 << u32); // expected-error{{invalid operands to binary expression}}
111   (void)(u64 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
112   (void)(u64 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
113   (void)(u64 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
114   (void)(u64 << 0.f); // expected-error{{used type 'float' where integer is required}}
115   (void)(u64 << 0.);  // expected-error{{used type 'double' where integer is required}}
116 
117   (void)(f16 << b);   // expected-error{{invalid operands to binary expression}}
118   (void)(f16 << i8);  // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
119   (void)(f16 << i16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
120   (void)(f16 << i32); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
121   (void)(f16 << i64); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
122   (void)(f16 << u8);  // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
123   (void)(f16 << u32); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
124   (void)(f16 << u64); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
125   (void)(f16 << f32); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
126   (void)(f16 << f64); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
127   (void)(f16 << 0.f); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
128   (void)(f16 << 0.);  // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
129 
130   (void)(f32 << b);   // expected-error{{invalid operands to binary expression}}
131   (void)(f32 << i8);  // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
132   (void)(f32 << i16); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
133   (void)(f32 << i32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
134   (void)(f32 << i64); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
135   (void)(f32 << u8);  // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
136   (void)(f32 << u16); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
137   (void)(f32 << u64); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
138   (void)(f32 << f16); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
139   (void)(f32 << f64); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
140   (void)(f32 << 0.);  // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
141 
142   (void)(f64 << b);   // expected-error{{invalid operands to binary expression}}
143   (void)(f64 << i8);  // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
144   (void)(f64 << i16); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
145   (void)(f64 << i32); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
146   (void)(f64 << i64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
147   (void)(f64 << u8);  // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
148   (void)(f64 << u16); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
149   (void)(f64 << u32); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
150   (void)(f64 << f16); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
151   (void)(f64 << f32); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
152   (void)(f64 << 0.f); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
153 
154   (void)(b << i8);   // expected-error{{invalid operands to binary expression}}
155   (void)(i16 << i8); // expected-error{{invalid operands to binary expression}}
156   (void)(i32 << i8); // expected-error{{invalid operands to binary expression}}
157   (void)(i64 << i8); // expected-error{{invalid operands to binary expression}}
158   (void)(u16 << i8); // expected-error{{invalid operands to binary expression}}
159   (void)(u32 << i8); // expected-error{{invalid operands to binary expression}}
160   (void)(u64 << i8); // expected-error{{invalid operands to binary expression}}
161   (void)(f16 << i8); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
162   (void)(f32 << i8); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
163   (void)(f64 << i8); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
164   (void)(0.f << i8); // expected-error{{used type 'float' where integer is required}}
165   (void)(0. << i8);  // expected-error{{used type 'double' where integer is required}}
166 
167   (void)(b << u8);   // expected-error{{invalid operands to binary expression}}
168   (void)(i16 << u8); // expected-error{{invalid operands to binary expression}}
169   (void)(i32 << u8); // expected-error{{invalid operands to binary expression}}
170   (void)(i64 << u8); // expected-error{{invalid operands to binary expression}}
171   (void)(u16 << u8); // expected-error{{invalid operands to binary expression}}
172   (void)(u32 << u8); // expected-error{{invalid operands to binary expression}}
173   (void)(u64 << u8); // expected-error{{invalid operands to binary expression}}
174   (void)(f16 << u8); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
175   (void)(f32 << u8); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
176   (void)(f64 << u8); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
177   (void)(0.f << u8); // expected-error{{used type 'float' where integer is required}}
178   (void)(0. << u8);  // expected-error{{used type 'double' where integer is required}}
179 
180   (void)(b << i16);   // expected-error{{invalid operands to binary expression}}
181   (void)(i8 << i16);  // expected-error{{invalid operands to binary expression}}
182   (void)(i32 << i16); // expected-error{{invalid operands to binary expression}}
183   (void)(i64 << i16); // expected-error{{invalid operands to binary expression}}
184   (void)(u8 << i16);  // expected-error{{invalid operands to binary expression}}
185   (void)(u32 << i16); // expected-error{{invalid operands to binary expression}}
186   (void)(u64 << i16); // expected-error{{invalid operands to binary expression}}
187   (void)(f16 << i16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
188   (void)(f32 << i16); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
189   (void)(f64 << i16); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
190   (void)(0.f << i16); // expected-error{{used type 'float' where integer is required}}
191   (void)(0. << i16);  // expected-error{{used type 'double' where integer is required}}
192 
193   (void)(b << u16);   // expected-error{{invalid operands to binary expression}}
194   (void)(i8 << u16);  // expected-error{{invalid operands to binary expression}}
195   (void)(i32 << u16); // expected-error{{invalid operands to binary expression}}
196   (void)(i64 << u16); // expected-error{{invalid operands to binary expression}}
197   (void)(u8 << u16);  // expected-error{{invalid operands to binary expression}}
198   (void)(u32 << u16); // expected-error{{invalid operands to binary expression}}
199   (void)(u64 << u16); // expected-error{{invalid operands to binary expression}}
200   (void)(f16 << u16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
201   (void)(f32 << u16); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
202   (void)(f64 << u16); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
203   (void)(0.f << u16); // expected-error{{used type 'float' where integer is required}}
204   (void)(0. << u16);  // expected-error{{used type 'double' where integer is required}}
205 
206   (void)(b << i32);   // expected-error{{invalid operands to binary expression}}
207   (void)(i8 << i32);  // expected-error{{invalid operands to binary expression}}
208   (void)(i16 << i32); // expected-error{{invalid operands to binary expression}}
209   (void)(i64 << i32); // expected-error{{invalid operands to binary expression}}
210   (void)(u8 << i32);  // expected-error{{invalid operands to binary expression}}
211   (void)(u16 << i32); // expected-error{{invalid operands to binary expression}}
212   (void)(u64 << i32); // expected-error{{invalid operands to binary expression}}
213   (void)(f16 << i32); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
214   (void)(f32 << i32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
215   (void)(f64 << i32); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
216   (void)(0.f << i32); // expected-error{{used type 'float' where integer is required}}
217   (void)(0. << i32);  // expected-error{{used type 'double' where integer is required}}
218 
219   (void)(b << u32);   // expected-error{{invalid operands to binary expression}}
220   (void)(i8 << u32);  // expected-error{{invalid operands to binary expression}}
221   (void)(i16 << u32); // expected-error{{invalid operands to binary expression}}
222   (void)(i64 << u32); // expected-error{{invalid operands to binary expression}}
223   (void)(u8 << u32);  // expected-error{{invalid operands to binary expression}}
224   (void)(u16 << u32); // expected-error{{invalid operands to binary expression}}
225   (void)(u64 << u32); // expected-error{{invalid operands to binary expression}}
226   (void)(f16 << u32); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
227   (void)(f32 << u32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
228   (void)(f64 << u32); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
229   (void)(0.f << u32); // expected-error{{used type 'float' where integer is required}}
230   (void)(0. << u32);  // expected-error{{used type 'double' where integer is required}}
231 
232   (void)(b << i64);   // expected-error{{invalid operands to binary expression}}
233   (void)(i8 << i64);  // expected-error{{invalid operands to binary expression}}
234   (void)(i16 << i64); // expected-error{{invalid operands to binary expression}}
235   (void)(i32 << i64); // expected-error{{invalid operands to binary expression}}
236   (void)(u8 << i64);  // expected-error{{invalid operands to binary expression}}
237   (void)(u16 << i64); // expected-error{{invalid operands to binary expression}}
238   (void)(u32 << i64); // expected-error{{invalid operands to binary expression}}
239   (void)(f16 << i64); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
240   (void)(f32 << i64); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
241   (void)(f64 << i64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
242   (void)(0.f << i64); // expected-error{{used type 'float' where integer is required}}
243   (void)(0. << i64);  // expected-error{{used type 'double' where integer is required}}
244 
245   (void)(b << u64);   // expected-error{{invalid operands to binary expression}}
246   (void)(i8 << u64);  // expected-error{{invalid operands to binary expression}}
247   (void)(i16 << u64); // expected-error{{invalid operands to binary expression}}
248   (void)(i32 << u64); // expected-error{{invalid operands to binary expression}}
249   (void)(u8 << u64);  // expected-error{{invalid operands to binary expression}}
250   (void)(u16 << u64); // expected-error{{invalid operands to binary expression}}
251   (void)(u32 << u64); // expected-error{{invalid operands to binary expression}}
252   (void)(f16 << u64); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
253   (void)(f32 << u64); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
254   (void)(f64 << u64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
255   (void)(0.f << u64); // expected-error{{used type 'float' where integer is required}}
256   (void)(0. << u64);  // expected-error{{used type 'double' where integer is required}}
257 
258   (void)(b << f16);   // expected-error{{invalid operands to binary expression}}
259   (void)(i8 << f16);  // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
260   (void)(i16 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
261   (void)(i32 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
262   (void)(i64 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
263   (void)(u8 << f16);  // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
264   (void)(u32 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
265   (void)(u64 << f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
266   (void)(f32 << f16); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
267   (void)(f64 << f16); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
268   (void)(0.f << f16); // expected-error{{used type 'float' where integer is required}}
269   (void)(0. << f16);  // expected-error{{used type 'double' where integer is required}}
270 
271   (void)(b << f32);   // expected-error{{invalid operands to binary expression}}
272   (void)(i8 << f32);  // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
273   (void)(i16 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
274   (void)(i32 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
275   (void)(i64 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
276   (void)(u8 << f32);  // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
277   (void)(u16 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
278   (void)(u64 << f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
279   (void)(f16 << f32); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
280   (void)(f64 << f32); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
281   (void)(0. << f32);  // expected-error{{used type 'double' where integer is required}}
282 
283   (void)(b << f64);   // expected-error{{invalid operands to binary expression}}
284   (void)(i8 << f64);  // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
285   (void)(i16 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
286   (void)(i32 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
287   (void)(i64 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
288   (void)(u8 << f64);  // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
289   (void)(u16 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
290   (void)(u32 << f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
291   (void)(f16 << f64); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
292   (void)(f32 << f64); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
293   (void)(0.f << f64); // expected-error{{used type 'float' where integer is required}}
294 }
295 
rshift(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)296 void rshift(svint8_t i8, svint16_t i16, svint32_t i32, svint64_t i64,
297             svuint8_t u8, svuint16_t u16, svuint32_t u32, svuint64_t u64,
298             svfloat16_t f16, svfloat32_t f32, svfloat64_t f64,
299             svbool_t b) {
300   (void)(b >> b); // expected-error{{invalid operands to binary expression}}
301 
302   (void)(i8 >> b);   // expected-error{{invalid operands to binary expression}}
303   (void)(i8 >> i16); // expected-error{{invalid operands to binary expression}}
304   (void)(i8 >> i32); // expected-error{{invalid operands to binary expression}}
305   (void)(i8 >> i64); // expected-error{{invalid operands to binary expression}}
306   (void)(i8 >> u16); // expected-error{{invalid operands to binary expression}}
307   (void)(i8 >> u32); // expected-error{{invalid operands to binary expression}}
308   (void)(i8 >> u64); // expected-error{{invalid operands to binary expression}}
309   (void)(i8 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
310   (void)(i8 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
311   (void)(i8 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
312   (void)(i8 >> 0.f); // expected-error{{used type 'float' where integer is required}}
313   (void)(i8 >> 0.);  // expected-error{{used type 'double' where integer is required}}
314 
315   (void)(u8 >> b);   // expected-error{{invalid operands to binary expression}}
316   (void)(u8 >> i16); // expected-error{{invalid operands to binary expression}}
317   (void)(u8 >> i32); // expected-error{{invalid operands to binary expression}}
318   (void)(u8 >> i64); // expected-error{{invalid operands to binary expression}}
319   (void)(u8 >> u16); // expected-error{{invalid operands to binary expression}}
320   (void)(u8 >> u32); // expected-error{{invalid operands to binary expression}}
321   (void)(u8 >> u64); // expected-error{{invalid operands to binary expression}}
322   (void)(u8 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
323   (void)(u8 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
324   (void)(u8 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
325   (void)(u8 >> 0.f); // expected-error{{used type 'float' where integer is required}}
326   (void)(u8 >> 0.);  // expected-error{{used type 'double' where integer is required}}
327 
328   (void)(i16 >> b);   // expected-error{{invalid operands to binary expression}}
329   (void)(i16 >> i8);  // expected-error{{invalid operands to binary expression}}
330   (void)(i16 >> i32); // expected-error{{invalid operands to binary expression}}
331   (void)(i16 >> i64); // expected-error{{invalid operands to binary expression}}
332   (void)(i16 >> u8);  // expected-error{{invalid operands to binary expression}}
333   (void)(i16 >> u32); // expected-error{{invalid operands to binary expression}}
334   (void)(i16 >> u64); // expected-error{{invalid operands to binary expression}}
335   (void)(i16 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
336   (void)(i16 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
337   (void)(i16 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
338   (void)(i16 >> 0.f); // expected-error{{used type 'float' where integer is required}}
339   (void)(i16 >> 0.);  // expected-error{{used type 'double' where integer is required}}
340 
341   (void)(u16 >> b);   // expected-error{{invalid operands to binary expression}}
342   (void)(u16 >> i8);  // expected-error{{invalid operands to binary expression}}
343   (void)(u16 >> i32); // expected-error{{invalid operands to binary expression}}
344   (void)(u16 >> i64); // expected-error{{invalid operands to binary expression}}
345   (void)(u16 >> u8);  // expected-error{{invalid operands to binary expression}}
346   (void)(u16 >> u32); // expected-error{{invalid operands to binary expression}}
347   (void)(u16 >> u64); // expected-error{{invalid operands to binary expression}}
348   (void)(u16 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
349   (void)(u16 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
350   (void)(u16 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
351   (void)(u16 >> 0.f); // expected-error{{used type 'float' where integer is required}}
352   (void)(u16 >> 0.);  // expected-error{{used type 'double' where integer is required}}
353 
354   (void)(i32 >> b);   // expected-error{{invalid operands to binary expression}}
355   (void)(i32 >> i8);  // expected-error{{invalid operands to binary expression}}
356   (void)(i32 >> i16); // expected-error{{invalid operands to binary expression}}
357   (void)(i32 >> i64); // expected-error{{invalid operands to binary expression}}
358   (void)(i32 >> u8);  // expected-error{{invalid operands to binary expression}}
359   (void)(i32 >> u16); // expected-error{{invalid operands to binary expression}}
360   (void)(i32 >> u64); // expected-error{{invalid operands to binary expression}}
361   (void)(i32 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
362   (void)(i32 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
363   (void)(i32 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
364   (void)(i32 >> 0.f); // expected-error{{used type 'float' where integer is required}}
365   (void)(i32 >> 0.);  // expected-error{{used type 'double' where integer is required}}
366 
367   (void)(u32 >> b);   // expected-error{{invalid operands to binary expression}}
368   (void)(u32 >> i8);  // expected-error{{invalid operands to binary expression}}
369   (void)(u32 >> i16); // expected-error{{invalid operands to binary expression}}
370   (void)(u32 >> i64); // expected-error{{invalid operands to binary expression}}
371   (void)(u32 >> u8);  // expected-error{{invalid operands to binary expression}}
372   (void)(u32 >> u16); // expected-error{{invalid operands to binary expression}}
373   (void)(u32 >> u64); // expected-error{{invalid operands to binary expression}}
374   (void)(u32 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
375   (void)(u32 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
376   (void)(u32 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
377   (void)(u32 >> 0.f); // expected-error{{used type 'float' where integer is required}}
378   (void)(u32 >> 0.);  // expected-error{{used type 'double' where integer is required}}
379 
380   (void)(i64 >> b);   // expected-error{{invalid operands to binary expression}}
381   (void)(i64 >> i8);  // expected-error{{invalid operands to binary expression}}
382   (void)(i64 >> i16); // expected-error{{invalid operands to binary expression}}
383   (void)(i64 >> i32); // expected-error{{invalid operands to binary expression}}
384   (void)(i64 >> u8);  // expected-error{{invalid operands to binary expression}}
385   (void)(i64 >> u16); // expected-error{{invalid operands to binary expression}}
386   (void)(i64 >> u32); // expected-error{{invalid operands to binary expression}}
387   (void)(i64 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
388   (void)(i64 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
389   (void)(i64 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
390   (void)(i64 >> 0.f); // expected-error{{used type 'float' where integer is required}}
391   (void)(i64 >> 0.);  // expected-error{{used type 'double' where integer is required}}
392 
393   (void)(u64 >> b);   // expected-error{{invalid operands to binary expression}}
394   (void)(u64 >> i8);  // expected-error{{invalid operands to binary expression}}
395   (void)(u64 >> i16); // expected-error{{invalid operands to binary expression}}
396   (void)(u64 >> i32); // expected-error{{invalid operands to binary expression}}
397   (void)(u64 >> u8);  // expected-error{{invalid operands to binary expression}}
398   (void)(u64 >> u16); // expected-error{{invalid operands to binary expression}}
399   (void)(u64 >> u32); // expected-error{{invalid operands to binary expression}}
400   (void)(u64 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
401   (void)(u64 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
402   (void)(u64 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
403   (void)(u64 >> 0.f); // expected-error{{used type 'float' where integer is required}}
404   (void)(u64 >> 0.);  // expected-error{{used type 'double' where integer is required}}
405 
406   (void)(f16 >> b);   // expected-error{{invalid operands to binary expression}}
407   (void)(f16 >> i8);  // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
408   (void)(f16 >> i16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
409   (void)(f16 >> i32); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
410   (void)(f16 >> i64); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
411   (void)(f16 >> u8);  // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
412   (void)(f16 >> u32); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
413   (void)(f16 >> u64); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
414   (void)(f16 >> f32); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
415   (void)(f16 >> f64); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
416   (void)(f16 >> 0.f); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
417   (void)(f16 >> 0.);  // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
418 
419   (void)(f32 >> b);   // expected-error{{invalid operands to binary expression}}
420   (void)(f32 >> i8);  // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
421   (void)(f32 >> i16); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
422   (void)(f32 >> i32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
423   (void)(f32 >> i64); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
424   (void)(f32 >> u8);  // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
425   (void)(f32 >> u16); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
426   (void)(f32 >> u64); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
427   (void)(f32 >> f16); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
428   (void)(f32 >> f64); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
429   (void)(f32 >> 0.);  // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
430 
431   (void)(f64 >> b);   // expected-error{{invalid operands to binary expression}}
432   (void)(f64 >> i8);  // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
433   (void)(f64 >> i16); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
434   (void)(f64 >> i32); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
435   (void)(f64 >> i64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
436   (void)(f64 >> u8);  // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
437   (void)(f64 >> u16); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
438   (void)(f64 >> u32); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
439   (void)(f64 >> f16); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
440   (void)(f64 >> f32); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
441   (void)(f64 >> 0.f); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
442 
443   (void)(b >> i8);   // expected-error{{invalid operands to binary expression}}
444   (void)(i16 >> i8); // expected-error{{invalid operands to binary expression}}
445   (void)(i32 >> i8); // expected-error{{invalid operands to binary expression}}
446   (void)(i64 >> i8); // expected-error{{invalid operands to binary expression}}
447   (void)(u16 >> i8); // expected-error{{invalid operands to binary expression}}
448   (void)(u32 >> i8); // expected-error{{invalid operands to binary expression}}
449   (void)(u64 >> i8); // expected-error{{invalid operands to binary expression}}
450   (void)(f16 >> i8); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
451   (void)(f32 >> i8); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
452   (void)(f64 >> i8); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
453   (void)(0.f >> i8); // expected-error{{used type 'float' where integer is required}}
454   (void)(0. >> i8);  // expected-error{{used type 'double' where integer is required}}
455 
456   (void)(b >> u8);   // expected-error{{invalid operands to binary expression}}
457   (void)(i16 >> u8); // expected-error{{invalid operands to binary expression}}
458   (void)(i32 >> u8); // expected-error{{invalid operands to binary expression}}
459   (void)(i64 >> u8); // expected-error{{invalid operands to binary expression}}
460   (void)(u16 >> u8); // expected-error{{invalid operands to binary expression}}
461   (void)(u32 >> u8); // expected-error{{invalid operands to binary expression}}
462   (void)(u64 >> u8); // expected-error{{invalid operands to binary expression}}
463   (void)(f16 >> u8); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
464   (void)(f32 >> u8); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
465   (void)(f64 >> u8); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
466   (void)(0.f >> u8); // expected-error{{used type 'float' where integer is required}}
467   (void)(0. >> u8);  // expected-error{{used type 'double' where integer is required}}
468 
469   (void)(b >> i16);   // expected-error{{invalid operands to binary expression}}
470   (void)(i8 >> i16);  // expected-error{{invalid operands to binary expression}}
471   (void)(i32 >> i16); // expected-error{{invalid operands to binary expression}}
472   (void)(i64 >> i16); // expected-error{{invalid operands to binary expression}}
473   (void)(u8 >> i16);  // expected-error{{invalid operands to binary expression}}
474   (void)(u32 >> i16); // expected-error{{invalid operands to binary expression}}
475   (void)(u64 >> i16); // expected-error{{invalid operands to binary expression}}
476   (void)(f16 >> i16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
477   (void)(f32 >> i16); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
478   (void)(f64 >> i16); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
479   (void)(0.f >> i16); // expected-error{{used type 'float' where integer is required}}
480   (void)(0. >> i16);  // expected-error{{used type 'double' where integer is required}}
481 
482   (void)(b >> u16);   // expected-error{{invalid operands to binary expression}}
483   (void)(i8 >> u16);  // expected-error{{invalid operands to binary expression}}
484   (void)(i32 >> u16); // expected-error{{invalid operands to binary expression}}
485   (void)(i64 >> u16); // expected-error{{invalid operands to binary expression}}
486   (void)(u8 >> u16);  // expected-error{{invalid operands to binary expression}}
487   (void)(u32 >> u16); // expected-error{{invalid operands to binary expression}}
488   (void)(u64 >> u16); // expected-error{{invalid operands to binary expression}}
489   (void)(f16 >> u16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
490   (void)(f32 >> u16); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
491   (void)(f64 >> u16); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
492   (void)(0.f >> u16); // expected-error{{used type 'float' where integer is required}}
493   (void)(0. >> u16);  // expected-error{{used type 'double' where integer is required}}
494 
495   (void)(b >> i32);   // expected-error{{invalid operands to binary expression}}
496   (void)(i8 >> i32);  // expected-error{{invalid operands to binary expression}}
497   (void)(i16 >> i32); // expected-error{{invalid operands to binary expression}}
498   (void)(i64 >> i32); // expected-error{{invalid operands to binary expression}}
499   (void)(u8 >> i32);  // expected-error{{invalid operands to binary expression}}
500   (void)(u16 >> i32); // expected-error{{invalid operands to binary expression}}
501   (void)(u64 >> i32); // expected-error{{invalid operands to binary expression}}
502   (void)(f16 >> i32); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
503   (void)(f32 >> i32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
504   (void)(f64 >> i32); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
505   (void)(0.f >> i32); // expected-error{{used type 'float' where integer is required}}
506   (void)(0. >> i32);  // expected-error{{used type 'double' where integer is required}}
507 
508   (void)(b >> u32);   // expected-error{{invalid operands to binary expression}}
509   (void)(i8 >> u32);  // expected-error{{invalid operands to binary expression}}
510   (void)(i16 >> u32); // expected-error{{invalid operands to binary expression}}
511   (void)(i64 >> u32); // expected-error{{invalid operands to binary expression}}
512   (void)(u8 >> u32);  // expected-error{{invalid operands to binary expression}}
513   (void)(u16 >> u32); // expected-error{{invalid operands to binary expression}}
514   (void)(u64 >> u32); // expected-error{{invalid operands to binary expression}}
515   (void)(f16 >> u32); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
516   (void)(f32 >> u32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
517   (void)(f64 >> u32); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
518   (void)(0.f >> u32); // expected-error{{used type 'float' where integer is required}}
519   (void)(0. >> u32);  // expected-error{{used type 'double' where integer is required}}
520 
521   (void)(b >> i64);   // expected-error{{invalid operands to binary expression}}
522   (void)(i8 >> i64);  // expected-error{{invalid operands to binary expression}}
523   (void)(i16 >> i64); // expected-error{{invalid operands to binary expression}}
524   (void)(i32 >> i64); // expected-error{{invalid operands to binary expression}}
525   (void)(u8 >> i64);  // expected-error{{invalid operands to binary expression}}
526   (void)(u16 >> i64); // expected-error{{invalid operands to binary expression}}
527   (void)(u32 >> i64); // expected-error{{invalid operands to binary expression}}
528   (void)(f16 >> i64); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
529   (void)(f32 >> i64); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
530   (void)(f64 >> i64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
531   (void)(0.f >> i64); // expected-error{{used type 'float' where integer is required}}
532   (void)(0. >> i64);  // expected-error{{used type 'double' where integer is required}}
533 
534   (void)(b >> u64);   // expected-error{{invalid operands to binary expression}}
535   (void)(i8 >> u64);  // expected-error{{invalid operands to binary expression}}
536   (void)(i16 >> u64); // expected-error{{invalid operands to binary expression}}
537   (void)(i32 >> u64); // expected-error{{invalid operands to binary expression}}
538   (void)(u8 >> u64);  // expected-error{{invalid operands to binary expression}}
539   (void)(u16 >> u64); // expected-error{{invalid operands to binary expression}}
540   (void)(u32 >> u64); // expected-error{{invalid operands to binary expression}}
541   (void)(f16 >> u64); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
542   (void)(f32 >> u64); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
543   (void)(f64 >> u64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
544   (void)(0.f >> u64); // expected-error{{used type 'float' where integer is required}}
545   (void)(0. >> u64);  // expected-error{{used type 'double' where integer is required}}
546 
547   (void)(b >> f16);   // expected-error{{invalid operands to binary expression}}
548   (void)(i8 >> f16);  // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
549   (void)(i16 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
550   (void)(i32 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
551   (void)(i64 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
552   (void)(u8 >> f16);  // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
553   (void)(u32 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
554   (void)(u64 >> f16); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
555   (void)(f32 >> f16); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
556   (void)(f64 >> f16); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
557   (void)(0.f >> f16); // expected-error{{used type 'float' where integer is required}}
558   (void)(0. >> f16);  // expected-error{{used type 'double' where integer is required}}
559 
560   (void)(b >> f32);   // expected-error{{invalid operands to binary expression}}
561   (void)(i8 >> f32);  // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
562   (void)(i16 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
563   (void)(i32 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
564   (void)(i64 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
565   (void)(u8 >> f32);  // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
566   (void)(u16 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
567   (void)(u64 >> f32); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
568   (void)(f16 >> f32); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
569   (void)(f64 >> f32); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
570   (void)(0. >> f32);  // expected-error{{used type 'double' where integer is required}}
571 
572   (void)(b >> f64);   // expected-error{{invalid operands to binary expression}}
573   (void)(i8 >> f64);  // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
574   (void)(i16 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
575   (void)(i32 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
576   (void)(i64 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
577   (void)(u8 >> f64);  // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
578   (void)(u16 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
579   (void)(u32 >> f64); // expected-error{{used type 'svfloat64_t' (aka '__SVFloat64_t') where integer is required}}
580   (void)(f16 >> f64); // expected-error{{used type 'svfloat16_t' (aka '__SVFloat16_t') where integer is required}}
581   (void)(f32 >> f64); // expected-error{{used type 'svfloat32_t' (aka '__SVFloat32_t') where integer is required}}
582   (void)(0.f >> f64); // expected-error{{used type 'float' where integer is required}}
583 }
584