xref: /llvm-project/clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_n.cpp (revision 875e91131847e3133d414c11c8ad721b52a287ee)
1 // REQUIRES: aarch64-registered-target
2 
3 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +sve2 -fsyntax-only -verify %s
4 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +sve2 -fsyntax-only -verify %s
5 
6 #ifdef SVE_OVERLOADED_FORMS
7 // A simple used,unused... macro, long enough to represent any SVE builtin.
8 #define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
9 #else
10 #define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
11 #endif
12 
13 #include <arm_sve.h>
14 
test_range_0_7(svbool_t pg)15 void test_range_0_7(svbool_t pg)
16 {
17   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
18   SVE_ACLE_FUNC(svqshlu,_n_s8,_x,)(pg, svundef_s8(), -1);
19   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
20   SVE_ACLE_FUNC(svqshlu,_n_s8,_z,)(pg, svundef_s8(), -1);
21   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
22   SVE_ACLE_FUNC(svqshlu,_n_s8,_m,)(pg, svundef_s8(), -1);
23   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
24   SVE_ACLE_FUNC(svshllb,_n_s16,,)(svundef_s8(), -1);
25   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
26   SVE_ACLE_FUNC(svshllb,_n_u16,,)(svundef_u8(), -1);
27   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
28   SVE_ACLE_FUNC(svshllt,_n_s16,,)(svundef_s8(), -1);
29   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
30   SVE_ACLE_FUNC(svshllt,_n_u16,,)(svundef_u8(), -1);
31   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
32   SVE_ACLE_FUNC(svsli,_n_s8,,)(svundef_s8(), svundef_s8(), -1);
33   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
34   SVE_ACLE_FUNC(svsli,_n_u8,,)(svundef_u8(), svundef_u8(), -1);
35 }
36 
test_range_1_8(svbool_t pg)37 void test_range_1_8(svbool_t pg)
38 {
39   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
40   SVE_ACLE_FUNC(svqrshrnb,_n_s16,,)(svundef_s16(), 0);
41   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
42   SVE_ACLE_FUNC(svqrshrnb,_n_u16,,)(svundef_u16(), 0);
43   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
44   SVE_ACLE_FUNC(svqrshrnt,_n_s16,,)(svundef_s8(), svundef_s16(), 0);
45   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
46   SVE_ACLE_FUNC(svqrshrnt,_n_u16,,)(svundef_u8(), svundef_u16(), 0);
47   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
48   SVE_ACLE_FUNC(svqrshrunb,_n_s16,,)(svundef_s16(), 0);
49   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
50   SVE_ACLE_FUNC(svqrshrunt,_n_s16,,)(svundef_u8(), svundef_s16(), 0);
51   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
52   SVE_ACLE_FUNC(svqshrnb,_n_s16,,)(svundef_s16(), 0);
53   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
54   SVE_ACLE_FUNC(svqshrnb,_n_u16,,)(svundef_u16(), 0);
55   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
56   SVE_ACLE_FUNC(svqshrnt,_n_s16,,)(svundef_s8(), svundef_s16(), 0);
57   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
58   SVE_ACLE_FUNC(svqshrnt,_n_u16,,)(svundef_u8(), svundef_u16(), 0);
59   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
60   SVE_ACLE_FUNC(svqshrunb,_n_s16,,)(svundef_s16(), 0);
61   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
62   SVE_ACLE_FUNC(svqshrunt,_n_s16,,)(svundef_u8(), svundef_s16(), 0);
63   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
64   SVE_ACLE_FUNC(svrshr,_n_s8,_x,)(pg, svundef_s8(), 0);
65   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
66   SVE_ACLE_FUNC(svrshr,_n_s8,_z,)(pg, svundef_s8(), 0);
67   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
68   SVE_ACLE_FUNC(svrshr,_n_s8,_m,)(pg, svundef_s8(), 0);
69   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
70   SVE_ACLE_FUNC(svrshr,_n_u8,_x,)(pg, svundef_u8(), 0);
71   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
72   SVE_ACLE_FUNC(svrshr,_n_u8,_z,)(pg, svundef_u8(), 0);
73   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
74   SVE_ACLE_FUNC(svrshr,_n_u8,_m,)(pg, svundef_u8(), 0);
75   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
76   SVE_ACLE_FUNC(svrshrnb,_n_s16,,)(svundef_s16(), 0);
77   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
78   SVE_ACLE_FUNC(svrshrnb,_n_u16,,)(svundef_u16(), 0);
79   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
80   SVE_ACLE_FUNC(svrshrnt,_n_s16,,)(svundef_s8(), svundef_s16(), 0);
81   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
82   SVE_ACLE_FUNC(svrshrnt,_n_u16,,)(svundef_u8(), svundef_u16(), 0);
83   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
84   SVE_ACLE_FUNC(svrsra,_n_s8,,)(svundef_s8(), svundef_s8(), 0);
85   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
86   SVE_ACLE_FUNC(svrsra,_n_u8,,)(svundef_u8(), svundef_u8(), 0);
87   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
88   SVE_ACLE_FUNC(svshrnb,_n_s16,,)(svundef_s16(), 0);
89   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
90   SVE_ACLE_FUNC(svshrnb,_n_u16,,)(svundef_u16(), 0);
91   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
92   SVE_ACLE_FUNC(svshrnt,_n_s16,,)(svundef_s8(), svundef_s16(), 0);
93   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
94   SVE_ACLE_FUNC(svshrnt,_n_u16,,)(svundef_u8(), svundef_u16(), 0);
95   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
96   SVE_ACLE_FUNC(svsra,_n_s8,,)(svundef_s8(), svundef_s8(), 0);
97   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
98   SVE_ACLE_FUNC(svsra,_n_u8,,)(svundef_u8(), svundef_u8(), 0);
99   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
100   SVE_ACLE_FUNC(svsri,_n_s8,,)(svundef_s8(), svundef_s8(), 0);
101   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
102   SVE_ACLE_FUNC(svsri,_n_u8,,)(svundef_u8(), svundef_u8(), 0);
103   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
104   SVE_ACLE_FUNC(svxar,_n_s8,,)(svundef_s8(), svundef_s8(), 0);
105   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
106   SVE_ACLE_FUNC(svxar,_n_u8,,)(svundef_u8(), svundef_u8(), 0);
107 }
108 
test_range_0_15(svbool_t pg)109 void test_range_0_15(svbool_t pg)
110 {
111   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
112   SVE_ACLE_FUNC(svqshlu,_n_s16,_x,)(pg, svundef_s16(), -1);
113   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
114   SVE_ACLE_FUNC(svqshlu,_n_s16,_z,)(pg, svundef_s16(), -1);
115   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
116   SVE_ACLE_FUNC(svqshlu,_n_s16,_m,)(pg, svundef_s16(), -1);
117   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
118   SVE_ACLE_FUNC(svshllb,_n_s32,,)(svundef_s16(), -1);
119   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
120   SVE_ACLE_FUNC(svshllb,_n_u32,,)(svundef_u16(), -1);
121   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
122   SVE_ACLE_FUNC(svshllt,_n_s32,,)(svundef_s16(), -1);
123   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
124   SVE_ACLE_FUNC(svshllt,_n_u32,,)(svundef_u16(), -1);
125   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
126   SVE_ACLE_FUNC(svsli,_n_s16,,)(svundef_s16(), svundef_s16(), -1);
127   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
128   SVE_ACLE_FUNC(svsli,_n_u16,,)(svundef_u16(), svundef_u16(), -1);
129 }
130 
test_range_1_16(svbool_t pg)131 void test_range_1_16(svbool_t pg)
132 {
133   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
134   SVE_ACLE_FUNC(svqrshrnb,_n_s32,,)(svundef_s32(), 0);
135   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
136   SVE_ACLE_FUNC(svqrshrnb,_n_u32,,)(svundef_u32(), 0);
137   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
138   SVE_ACLE_FUNC(svqrshrnt,_n_s32,,)(svundef_s16(), svundef_s32(), 0);
139   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
140   SVE_ACLE_FUNC(svqrshrnt,_n_u32,,)(svundef_u16(), svundef_u32(), 0);
141   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
142   SVE_ACLE_FUNC(svqrshrunb,_n_s32,,)(svundef_s32(), 0);
143   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
144   SVE_ACLE_FUNC(svqrshrunt,_n_s32,,)(svundef_u16(), svundef_s32(), 0);
145   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
146   SVE_ACLE_FUNC(svqshrnb,_n_s32,,)(svundef_s32(), 0);
147   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
148   SVE_ACLE_FUNC(svqshrnb,_n_u32,,)(svundef_u32(), 0);
149   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
150   SVE_ACLE_FUNC(svqshrnt,_n_s32,,)(svundef_s16(), svundef_s32(), 0);
151   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
152   SVE_ACLE_FUNC(svqshrnt,_n_u32,,)(svundef_u16(), svundef_u32(), 0);
153   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
154   SVE_ACLE_FUNC(svqshrunb,_n_s32,,)(svundef_s32(), 0);
155   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
156   SVE_ACLE_FUNC(svqshrunt,_n_s32,,)(svundef_u16(), svundef_s32(), 0);
157   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
158   SVE_ACLE_FUNC(svrshr,_n_s16,_x,)(pg, svundef_s16(), 0);
159   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
160   SVE_ACLE_FUNC(svrshr,_n_s16,_z,)(pg, svundef_s16(), 0);
161   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
162   SVE_ACLE_FUNC(svrshr,_n_s16,_m,)(pg, svundef_s16(), 0);
163   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
164   SVE_ACLE_FUNC(svrshr,_n_u16,_x,)(pg, svundef_u16(), 0);
165   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
166   SVE_ACLE_FUNC(svrshr,_n_u16,_z,)(pg, svundef_u16(), 0);
167   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
168   SVE_ACLE_FUNC(svrshr,_n_u16,_m,)(pg, svundef_u16(), 0);
169   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
170   SVE_ACLE_FUNC(svrshrnb,_n_s32,,)(svundef_s32(), 0);
171   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
172   SVE_ACLE_FUNC(svrshrnb,_n_u32,,)(svundef_u32(), 0);
173   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
174   SVE_ACLE_FUNC(svrshrnt,_n_s32,,)(svundef_s16(), svundef_s32(), 0);
175   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
176   SVE_ACLE_FUNC(svrshrnt,_n_u32,,)(svundef_u16(), svundef_u32(), 0);
177   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
178   SVE_ACLE_FUNC(svrsra,_n_s16,,)(svundef_s16(), svundef_s16(), 0);
179   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
180   SVE_ACLE_FUNC(svrsra,_n_u16,,)(svundef_u16(), svundef_u16(), 0);
181   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
182   SVE_ACLE_FUNC(svshrnb,_n_s32,,)(svundef_s32(), 0);
183   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
184   SVE_ACLE_FUNC(svshrnb,_n_u32,,)(svundef_u32(), 0);
185   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
186   SVE_ACLE_FUNC(svshrnt,_n_s32,,)(svundef_s16(), svundef_s32(), 0);
187   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
188   SVE_ACLE_FUNC(svshrnt,_n_u32,,)(svundef_u16(), svundef_u32(), 0);
189   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
190   SVE_ACLE_FUNC(svsra,_n_s16,,)(svundef_s16(), svundef_s16(), 0);
191   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
192   SVE_ACLE_FUNC(svsra,_n_u16,,)(svundef_u16(), svundef_u16(), 0);
193   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
194   SVE_ACLE_FUNC(svsri,_n_s16,,)(svundef_s16(), svundef_s16(), 0);
195   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
196   SVE_ACLE_FUNC(svsri,_n_u16,,)(svundef_u16(), svundef_u16(), 0);
197   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
198   SVE_ACLE_FUNC(svxar,_n_s16,,)(svundef_s16(), svundef_s16(), 0);
199   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
200   SVE_ACLE_FUNC(svxar,_n_u16,,)(svundef_u16(), svundef_u16(), 0);
201 }
202 
test_range_0_31(svbool_t pg)203 void test_range_0_31(svbool_t pg)
204 {
205   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
206   SVE_ACLE_FUNC(svqshlu,_n_s32,_x,)(pg, svundef_s32(), -1);
207   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
208   SVE_ACLE_FUNC(svqshlu,_n_s32,_z,)(pg, svundef_s32(), -1);
209   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
210   SVE_ACLE_FUNC(svqshlu,_n_s32,_m,)(pg, svundef_s32(), -1);
211   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
212   SVE_ACLE_FUNC(svshllb,_n_s64,,)(svundef_s32(), -1);
213   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
214   SVE_ACLE_FUNC(svshllb,_n_u64,,)(svundef_u32(), -1);
215   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
216   SVE_ACLE_FUNC(svshllt,_n_s64,,)(svundef_s32(), -1);
217   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
218   SVE_ACLE_FUNC(svshllt,_n_u64,,)(svundef_u32(), -1);
219   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
220   SVE_ACLE_FUNC(svsli,_n_s32,,)(svundef_s32(), svundef_s32(), -1);
221   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
222   SVE_ACLE_FUNC(svsli,_n_u32,,)(svundef_u32(), svundef_u32(), -1);
223 }
224 
test_range_1_32(svbool_t pg)225 void test_range_1_32(svbool_t pg)
226 {
227   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
228   SVE_ACLE_FUNC(svqrshrnb,_n_s64,,)(svundef_s64(), 0);
229   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
230   SVE_ACLE_FUNC(svqrshrnb,_n_u64,,)(svundef_u64(), 0);
231   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
232   SVE_ACLE_FUNC(svqrshrnt,_n_s64,,)(svundef_s32(), svundef_s64(), 0);
233   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
234   SVE_ACLE_FUNC(svqrshrnt,_n_u64,,)(svundef_u32(), svundef_u64(), 0);
235   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
236   SVE_ACLE_FUNC(svqrshrunb,_n_s64,,)(svundef_s64(), 0);
237   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
238   SVE_ACLE_FUNC(svqrshrunt,_n_s64,,)(svundef_u32(), svundef_s64(), 0);
239   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
240   SVE_ACLE_FUNC(svqshrnb,_n_s64,,)(svundef_s64(), 0);
241   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
242   SVE_ACLE_FUNC(svqshrnb,_n_u64,,)(svundef_u64(), 0);
243   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
244   SVE_ACLE_FUNC(svqshrnt,_n_s64,,)(svundef_s32(), svundef_s64(), 0);
245   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
246   SVE_ACLE_FUNC(svqshrnt,_n_u64,,)(svundef_u32(), svundef_u64(), 0);
247   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
248   SVE_ACLE_FUNC(svqshrunb,_n_s64,,)(svundef_s64(), 0);
249   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
250   SVE_ACLE_FUNC(svqshrunt,_n_s64,,)(svundef_u32(), svundef_s64(), 0);
251   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
252   SVE_ACLE_FUNC(svrshr,_n_s32,_x,)(pg, svundef_s32(), 0);
253   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
254   SVE_ACLE_FUNC(svrshr,_n_s32,_z,)(pg, svundef_s32(), 0);
255   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
256   SVE_ACLE_FUNC(svrshr,_n_s32,_m,)(pg, svundef_s32(), 0);
257   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
258   SVE_ACLE_FUNC(svrshr,_n_u32,_x,)(pg, svundef_u32(), 0);
259   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
260   SVE_ACLE_FUNC(svrshr,_n_u32,_z,)(pg, svundef_u32(), 0);
261   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
262   SVE_ACLE_FUNC(svrshr,_n_u32,_m,)(pg, svundef_u32(), 0);
263   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
264   SVE_ACLE_FUNC(svrshrnb,_n_s64,,)(svundef_s64(), 0);
265   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
266   SVE_ACLE_FUNC(svrshrnb,_n_u64,,)(svundef_u64(), 0);
267   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
268   SVE_ACLE_FUNC(svrshrnt,_n_s64,,)(svundef_s32(), svundef_s64(), 0);
269   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
270   SVE_ACLE_FUNC(svrshrnt,_n_u64,,)(svundef_u32(), svundef_u64(), 0);
271   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
272   SVE_ACLE_FUNC(svrsra,_n_s32,,)(svundef_s32(), svundef_s32(), 0);
273   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
274   SVE_ACLE_FUNC(svrsra,_n_u32,,)(svundef_u32(), svundef_u32(), 0);
275   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
276   SVE_ACLE_FUNC(svshrnb,_n_s64,,)(svundef_s64(), 0);
277   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
278   SVE_ACLE_FUNC(svshrnb,_n_u64,,)(svundef_u64(), 0);
279   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
280   SVE_ACLE_FUNC(svshrnt,_n_s64,,)(svundef_s32(), svundef_s64(), 0);
281   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
282   SVE_ACLE_FUNC(svshrnt,_n_u64,,)(svundef_u32(), svundef_u64(), 0);
283   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
284   SVE_ACLE_FUNC(svsra,_n_s32,,)(svundef_s32(), svundef_s32(), 0);
285   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
286   SVE_ACLE_FUNC(svsra,_n_u32,,)(svundef_u32(), svundef_u32(), 0);
287   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
288   SVE_ACLE_FUNC(svsri,_n_s32,,)(svundef_s32(), svundef_s32(), 0);
289   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
290   SVE_ACLE_FUNC(svsri,_n_u32,,)(svundef_u32(), svundef_u32(), 0);
291   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
292   SVE_ACLE_FUNC(svxar,_n_s32,,)(svundef_s32(), svundef_s32(), 0);
293   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
294   SVE_ACLE_FUNC(svxar,_n_u32,,)(svundef_u32(), svundef_u32(), 0);
295 }
296 
test_range_0_63(svbool_t pg)297 void test_range_0_63(svbool_t pg)
298 {
299   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
300   SVE_ACLE_FUNC(svqshlu,_n_s64,_x,)(pg, svundef_s64(), -1);
301   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
302   SVE_ACLE_FUNC(svqshlu,_n_s64,_z,)(pg, svundef_s64(), -1);
303   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
304   SVE_ACLE_FUNC(svqshlu,_n_s64,_m,)(pg, svundef_s64(), -1);
305   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
306   SVE_ACLE_FUNC(svsli,_n_s64,,)(svundef_s64(), svundef_s64(), -1);
307   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
308   SVE_ACLE_FUNC(svsli,_n_u64,,)(svundef_u64(), svundef_u64(), -1);
309 }
310 
test_range_1_64(svbool_t pg)311 void test_range_1_64(svbool_t pg)
312 {
313   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
314   SVE_ACLE_FUNC(svrshr,_n_s64,_x,)(pg, svundef_s64(), 0);
315   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
316   SVE_ACLE_FUNC(svrshr,_n_s64,_z,)(pg, svundef_s64(), 0);
317   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
318   SVE_ACLE_FUNC(svrshr,_n_s64,_m,)(pg, svundef_s64(), 0);
319   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
320   SVE_ACLE_FUNC(svrshr,_n_u64,_x,)(pg, svundef_u64(), 0);
321   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
322   SVE_ACLE_FUNC(svrshr,_n_u64,_z,)(pg, svundef_u64(), 0);
323   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
324   SVE_ACLE_FUNC(svrshr,_n_u64,_m,)(pg, svundef_u64(), 0);
325   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
326   SVE_ACLE_FUNC(svrsra,_n_s64,,)(svundef_s64(), svundef_s64(), 0);
327   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
328   SVE_ACLE_FUNC(svrsra,_n_u64,,)(svundef_u64(), svundef_u64(), 0);
329   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
330   SVE_ACLE_FUNC(svsra,_n_s64,,)(svundef_s64(), svundef_s64(), 0);
331   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
332   SVE_ACLE_FUNC(svsra,_n_u64,,)(svundef_u64(), svundef_u64(), 0);
333   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
334   SVE_ACLE_FUNC(svsri,_n_s64,,)(svundef_s64(), svundef_s64(), 0);
335   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
336   SVE_ACLE_FUNC(svsri,_n_u64,,)(svundef_u64(), svundef_u64(), 0);
337   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
338   SVE_ACLE_FUNC(svxar,_n_s64,,)(svundef_s64(), svundef_s64(), 0);
339   // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
340   SVE_ACLE_FUNC(svxar,_n_u64,,)(svundef_u64(), svundef_u64(), 0);
341 }
342