Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / VE / VELIntrinsics / vsc.ll
blob8e02bb241df3fe78dd7c7834791cf10437f0b307
1 ; RUN: llc < %s -mtriple=ve -mattr=+vpu | FileCheck %s
3 ;;; Test vector scatter intrinsic instructions
4 ;;;
5 ;;; Note:
6 ;;;   We test VSC*vrrvl, VSC*vrzvl, VSC*virvl, VSC*vizvl, VSC*vrrvml,
7 ;;;   VSC*vrzvml, VSC*virvml, and VSC*vizvml instructions.
9 ; Function Attrs: nounwind writeonly
10 define fastcc void @vsc_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) {
11 ; CHECK-LABEL: vsc_vvssl:
12 ; CHECK:       # %bb.0:
13 ; CHECK-NEXT:    lea %s2, 256
14 ; CHECK-NEXT:    lvl %s2
15 ; CHECK-NEXT:    vsc %v0, %v1, %s0, %s1
16 ; CHECK-NEXT:    b.l.t (, %s10)
17   tail call void @llvm.ve.vl.vsc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256)
18   ret void
21 ; Function Attrs: nounwind writeonly
22 declare void @llvm.ve.vl.vsc.vvssl(<256 x double>, <256 x double>, i64, i64, i32)
24 ; Function Attrs: nounwind writeonly
25 define fastcc void @vsc_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
26 ; CHECK-LABEL: vsc_vvssl_imm_1:
27 ; CHECK:       # %bb.0:
28 ; CHECK-NEXT:    lea %s1, 256
29 ; CHECK-NEXT:    lvl %s1
30 ; CHECK-NEXT:    vsc %v0, %v1, %s0, 0
31 ; CHECK-NEXT:    b.l.t (, %s10)
32   tail call void @llvm.ve.vl.vsc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256)
33   ret void
36 ; Function Attrs: nounwind writeonly
37 define fastcc void @vsc_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) {
38 ; CHECK-LABEL: vsc_vvssl_imm_2:
39 ; CHECK:       # %bb.0:
40 ; CHECK-NEXT:    lea %s1, 256
41 ; CHECK-NEXT:    lvl %s1
42 ; CHECK-NEXT:    vsc %v0, %v1, 8, %s0
43 ; CHECK-NEXT:    b.l.t (, %s10)
44   tail call void @llvm.ve.vl.vsc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256)
45   ret void
48 ; Function Attrs: nounwind writeonly
49 define fastcc void @vsc_vvssl_imm_3(<256 x double> %0, <256 x double> %1) {
50 ; CHECK-LABEL: vsc_vvssl_imm_3:
51 ; CHECK:       # %bb.0:
52 ; CHECK-NEXT:    lea %s0, 256
53 ; CHECK-NEXT:    lvl %s0
54 ; CHECK-NEXT:    vsc %v0, %v1, 8, 0
55 ; CHECK-NEXT:    b.l.t (, %s10)
56   tail call void @llvm.ve.vl.vsc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256)
57   ret void
60 ; Function Attrs: nounwind writeonly
61 define fastcc void @vsc_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) {
62 ; CHECK-LABEL: vsc_vvssml:
63 ; CHECK:       # %bb.0:
64 ; CHECK-NEXT:    lea %s2, 256
65 ; CHECK-NEXT:    lvl %s2
66 ; CHECK-NEXT:    vsc %v0, %v1, %s0, %s1, %vm1
67 ; CHECK-NEXT:    b.l.t (, %s10)
68   tail call void @llvm.ve.vl.vsc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256)
69   ret void
72 ; Function Attrs: nounwind writeonly
73 declare void @llvm.ve.vl.vsc.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32)
75 ; Function Attrs: nounwind writeonly
76 define fastcc void @vsc_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
77 ; CHECK-LABEL: vsc_vvssml_imm_1:
78 ; CHECK:       # %bb.0:
79 ; CHECK-NEXT:    lea %s1, 256
80 ; CHECK-NEXT:    lvl %s1
81 ; CHECK-NEXT:    vsc %v0, %v1, %s0, 0, %vm1
82 ; CHECK-NEXT:    b.l.t (, %s10)
83   tail call void @llvm.ve.vl.vsc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256)
84   ret void
87 ; Function Attrs: nounwind writeonly
88 define fastcc void @vsc_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
89 ; CHECK-LABEL: vsc_vvssml_imm_2:
90 ; CHECK:       # %bb.0:
91 ; CHECK-NEXT:    lea %s1, 256
92 ; CHECK-NEXT:    lvl %s1
93 ; CHECK-NEXT:    vsc %v0, %v1, 8, %s0, %vm1
94 ; CHECK-NEXT:    b.l.t (, %s10)
95   tail call void @llvm.ve.vl.vsc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256)
96   ret void
99 ; Function Attrs: nounwind writeonly
100 define fastcc void @vsc_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) {
101 ; CHECK-LABEL: vsc_vvssml_imm_3:
102 ; CHECK:       # %bb.0:
103 ; CHECK-NEXT:    lea %s0, 256
104 ; CHECK-NEXT:    lvl %s0
105 ; CHECK-NEXT:    vsc %v0, %v1, 8, 0, %vm1
106 ; CHECK-NEXT:    b.l.t (, %s10)
107   tail call void @llvm.ve.vl.vsc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256)
108   ret void
111 ; Function Attrs: nounwind writeonly
112 define fastcc void @vsc_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
113 ; CHECK-LABEL: vsc_vvssl_no_imm_1:
114 ; CHECK:       # %bb.0:
115 ; CHECK-NEXT:    lea %s1, 256
116 ; CHECK-NEXT:    or %s2, 8, (0)1
117 ; CHECK-NEXT:    lvl %s1
118 ; CHECK-NEXT:    vsc %v0, %v1, %s0, %s2
119 ; CHECK-NEXT:    b.l.t (, %s10)
120   tail call void @llvm.ve.vl.vsc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256)
121   ret void
124 ; Function Attrs: nounwind writeonly
125 define fastcc void @vscnc_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) {
126 ; CHECK-LABEL: vscnc_vvssl:
127 ; CHECK:       # %bb.0:
128 ; CHECK-NEXT:    lea %s2, 256
129 ; CHECK-NEXT:    lvl %s2
130 ; CHECK-NEXT:    vsc.nc %v0, %v1, %s0, %s1
131 ; CHECK-NEXT:    b.l.t (, %s10)
132   tail call void @llvm.ve.vl.vscnc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256)
133   ret void
136 ; Function Attrs: nounwind writeonly
137 declare void @llvm.ve.vl.vscnc.vvssl(<256 x double>, <256 x double>, i64, i64, i32)
139 ; Function Attrs: nounwind writeonly
140 define fastcc void @vscnc_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
141 ; CHECK-LABEL: vscnc_vvssl_imm_1:
142 ; CHECK:       # %bb.0:
143 ; CHECK-NEXT:    lea %s1, 256
144 ; CHECK-NEXT:    lvl %s1
145 ; CHECK-NEXT:    vsc.nc %v0, %v1, %s0, 0
146 ; CHECK-NEXT:    b.l.t (, %s10)
147   tail call void @llvm.ve.vl.vscnc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256)
148   ret void
151 ; Function Attrs: nounwind writeonly
152 define fastcc void @vscnc_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) {
153 ; CHECK-LABEL: vscnc_vvssl_imm_2:
154 ; CHECK:       # %bb.0:
155 ; CHECK-NEXT:    lea %s1, 256
156 ; CHECK-NEXT:    lvl %s1
157 ; CHECK-NEXT:    vsc.nc %v0, %v1, 8, %s0
158 ; CHECK-NEXT:    b.l.t (, %s10)
159   tail call void @llvm.ve.vl.vscnc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256)
160   ret void
163 ; Function Attrs: nounwind writeonly
164 define fastcc void @vscnc_vvssl_imm_3(<256 x double> %0, <256 x double> %1) {
165 ; CHECK-LABEL: vscnc_vvssl_imm_3:
166 ; CHECK:       # %bb.0:
167 ; CHECK-NEXT:    lea %s0, 256
168 ; CHECK-NEXT:    lvl %s0
169 ; CHECK-NEXT:    vsc.nc %v0, %v1, 8, 0
170 ; CHECK-NEXT:    b.l.t (, %s10)
171   tail call void @llvm.ve.vl.vscnc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256)
172   ret void
175 ; Function Attrs: nounwind writeonly
176 define fastcc void @vscnc_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) {
177 ; CHECK-LABEL: vscnc_vvssml:
178 ; CHECK:       # %bb.0:
179 ; CHECK-NEXT:    lea %s2, 256
180 ; CHECK-NEXT:    lvl %s2
181 ; CHECK-NEXT:    vsc.nc %v0, %v1, %s0, %s1, %vm1
182 ; CHECK-NEXT:    b.l.t (, %s10)
183   tail call void @llvm.ve.vl.vscnc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256)
184   ret void
187 ; Function Attrs: nounwind writeonly
188 declare void @llvm.ve.vl.vscnc.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32)
190 ; Function Attrs: nounwind writeonly
191 define fastcc void @vscnc_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
192 ; CHECK-LABEL: vscnc_vvssml_imm_1:
193 ; CHECK:       # %bb.0:
194 ; CHECK-NEXT:    lea %s1, 256
195 ; CHECK-NEXT:    lvl %s1
196 ; CHECK-NEXT:    vsc.nc %v0, %v1, %s0, 0, %vm1
197 ; CHECK-NEXT:    b.l.t (, %s10)
198   tail call void @llvm.ve.vl.vscnc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256)
199   ret void
202 ; Function Attrs: nounwind writeonly
203 define fastcc void @vscnc_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
204 ; CHECK-LABEL: vscnc_vvssml_imm_2:
205 ; CHECK:       # %bb.0:
206 ; CHECK-NEXT:    lea %s1, 256
207 ; CHECK-NEXT:    lvl %s1
208 ; CHECK-NEXT:    vsc.nc %v0, %v1, 8, %s0, %vm1
209 ; CHECK-NEXT:    b.l.t (, %s10)
210   tail call void @llvm.ve.vl.vscnc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256)
211   ret void
214 ; Function Attrs: nounwind writeonly
215 define fastcc void @vscnc_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) {
216 ; CHECK-LABEL: vscnc_vvssml_imm_3:
217 ; CHECK:       # %bb.0:
218 ; CHECK-NEXT:    lea %s0, 256
219 ; CHECK-NEXT:    lvl %s0
220 ; CHECK-NEXT:    vsc.nc %v0, %v1, 8, 0, %vm1
221 ; CHECK-NEXT:    b.l.t (, %s10)
222   tail call void @llvm.ve.vl.vscnc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256)
223   ret void
226 ; Function Attrs: nounwind writeonly
227 define fastcc void @vscnc_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
228 ; CHECK-LABEL: vscnc_vvssl_no_imm_1:
229 ; CHECK:       # %bb.0:
230 ; CHECK-NEXT:    lea %s1, 256
231 ; CHECK-NEXT:    or %s2, 8, (0)1
232 ; CHECK-NEXT:    lvl %s1
233 ; CHECK-NEXT:    vsc.nc %v0, %v1, %s0, %s2
234 ; CHECK-NEXT:    b.l.t (, %s10)
235   tail call void @llvm.ve.vl.vscnc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256)
236   ret void
239 ; Function Attrs: nounwind writeonly
240 define fastcc void @vscot_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) {
241 ; CHECK-LABEL: vscot_vvssl:
242 ; CHECK:       # %bb.0:
243 ; CHECK-NEXT:    lea %s2, 256
244 ; CHECK-NEXT:    lvl %s2
245 ; CHECK-NEXT:    vsc.ot %v0, %v1, %s0, %s1
246 ; CHECK-NEXT:    b.l.t (, %s10)
247   tail call void @llvm.ve.vl.vscot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256)
248   ret void
251 ; Function Attrs: nounwind writeonly
252 declare void @llvm.ve.vl.vscot.vvssl(<256 x double>, <256 x double>, i64, i64, i32)
254 ; Function Attrs: nounwind writeonly
255 define fastcc void @vscot_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
256 ; CHECK-LABEL: vscot_vvssl_imm_1:
257 ; CHECK:       # %bb.0:
258 ; CHECK-NEXT:    lea %s1, 256
259 ; CHECK-NEXT:    lvl %s1
260 ; CHECK-NEXT:    vsc.ot %v0, %v1, %s0, 0
261 ; CHECK-NEXT:    b.l.t (, %s10)
262   tail call void @llvm.ve.vl.vscot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256)
263   ret void
266 ; Function Attrs: nounwind writeonly
267 define fastcc void @vscot_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) {
268 ; CHECK-LABEL: vscot_vvssl_imm_2:
269 ; CHECK:       # %bb.0:
270 ; CHECK-NEXT:    lea %s1, 256
271 ; CHECK-NEXT:    lvl %s1
272 ; CHECK-NEXT:    vsc.ot %v0, %v1, 8, %s0
273 ; CHECK-NEXT:    b.l.t (, %s10)
274   tail call void @llvm.ve.vl.vscot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256)
275   ret void
278 ; Function Attrs: nounwind writeonly
279 define fastcc void @vscot_vvssl_imm_3(<256 x double> %0, <256 x double> %1) {
280 ; CHECK-LABEL: vscot_vvssl_imm_3:
281 ; CHECK:       # %bb.0:
282 ; CHECK-NEXT:    lea %s0, 256
283 ; CHECK-NEXT:    lvl %s0
284 ; CHECK-NEXT:    vsc.ot %v0, %v1, 8, 0
285 ; CHECK-NEXT:    b.l.t (, %s10)
286   tail call void @llvm.ve.vl.vscot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256)
287   ret void
290 ; Function Attrs: nounwind writeonly
291 define fastcc void @vscot_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) {
292 ; CHECK-LABEL: vscot_vvssml:
293 ; CHECK:       # %bb.0:
294 ; CHECK-NEXT:    lea %s2, 256
295 ; CHECK-NEXT:    lvl %s2
296 ; CHECK-NEXT:    vsc.ot %v0, %v1, %s0, %s1, %vm1
297 ; CHECK-NEXT:    b.l.t (, %s10)
298   tail call void @llvm.ve.vl.vscot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256)
299   ret void
302 ; Function Attrs: nounwind writeonly
303 declare void @llvm.ve.vl.vscot.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32)
305 ; Function Attrs: nounwind writeonly
306 define fastcc void @vscot_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
307 ; CHECK-LABEL: vscot_vvssml_imm_1:
308 ; CHECK:       # %bb.0:
309 ; CHECK-NEXT:    lea %s1, 256
310 ; CHECK-NEXT:    lvl %s1
311 ; CHECK-NEXT:    vsc.ot %v0, %v1, %s0, 0, %vm1
312 ; CHECK-NEXT:    b.l.t (, %s10)
313   tail call void @llvm.ve.vl.vscot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256)
314   ret void
317 ; Function Attrs: nounwind writeonly
318 define fastcc void @vscot_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
319 ; CHECK-LABEL: vscot_vvssml_imm_2:
320 ; CHECK:       # %bb.0:
321 ; CHECK-NEXT:    lea %s1, 256
322 ; CHECK-NEXT:    lvl %s1
323 ; CHECK-NEXT:    vsc.ot %v0, %v1, 8, %s0, %vm1
324 ; CHECK-NEXT:    b.l.t (, %s10)
325   tail call void @llvm.ve.vl.vscot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256)
326   ret void
329 ; Function Attrs: nounwind writeonly
330 define fastcc void @vscot_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) {
331 ; CHECK-LABEL: vscot_vvssml_imm_3:
332 ; CHECK:       # %bb.0:
333 ; CHECK-NEXT:    lea %s0, 256
334 ; CHECK-NEXT:    lvl %s0
335 ; CHECK-NEXT:    vsc.ot %v0, %v1, 8, 0, %vm1
336 ; CHECK-NEXT:    b.l.t (, %s10)
337   tail call void @llvm.ve.vl.vscot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256)
338   ret void
341 ; Function Attrs: nounwind writeonly
342 define fastcc void @vscot_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
343 ; CHECK-LABEL: vscot_vvssl_no_imm_1:
344 ; CHECK:       # %bb.0:
345 ; CHECK-NEXT:    lea %s1, 256
346 ; CHECK-NEXT:    or %s2, 8, (0)1
347 ; CHECK-NEXT:    lvl %s1
348 ; CHECK-NEXT:    vsc.ot %v0, %v1, %s0, %s2
349 ; CHECK-NEXT:    b.l.t (, %s10)
350   tail call void @llvm.ve.vl.vscot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256)
351   ret void
354 ; Function Attrs: nounwind writeonly
355 define fastcc void @vscncot_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) {
356 ; CHECK-LABEL: vscncot_vvssl:
357 ; CHECK:       # %bb.0:
358 ; CHECK-NEXT:    lea %s2, 256
359 ; CHECK-NEXT:    lvl %s2
360 ; CHECK-NEXT:    vsc.nc.ot %v0, %v1, %s0, %s1
361 ; CHECK-NEXT:    b.l.t (, %s10)
362   tail call void @llvm.ve.vl.vscncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256)
363   ret void
366 ; Function Attrs: nounwind writeonly
367 declare void @llvm.ve.vl.vscncot.vvssl(<256 x double>, <256 x double>, i64, i64, i32)
369 ; Function Attrs: nounwind writeonly
370 define fastcc void @vscncot_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
371 ; CHECK-LABEL: vscncot_vvssl_imm_1:
372 ; CHECK:       # %bb.0:
373 ; CHECK-NEXT:    lea %s1, 256
374 ; CHECK-NEXT:    lvl %s1
375 ; CHECK-NEXT:    vsc.nc.ot %v0, %v1, %s0, 0
376 ; CHECK-NEXT:    b.l.t (, %s10)
377   tail call void @llvm.ve.vl.vscncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256)
378   ret void
381 ; Function Attrs: nounwind writeonly
382 define fastcc void @vscncot_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) {
383 ; CHECK-LABEL: vscncot_vvssl_imm_2:
384 ; CHECK:       # %bb.0:
385 ; CHECK-NEXT:    lea %s1, 256
386 ; CHECK-NEXT:    lvl %s1
387 ; CHECK-NEXT:    vsc.nc.ot %v0, %v1, 8, %s0
388 ; CHECK-NEXT:    b.l.t (, %s10)
389   tail call void @llvm.ve.vl.vscncot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256)
390   ret void
393 ; Function Attrs: nounwind writeonly
394 define fastcc void @vscncot_vvssl_imm_3(<256 x double> %0, <256 x double> %1) {
395 ; CHECK-LABEL: vscncot_vvssl_imm_3:
396 ; CHECK:       # %bb.0:
397 ; CHECK-NEXT:    lea %s0, 256
398 ; CHECK-NEXT:    lvl %s0
399 ; CHECK-NEXT:    vsc.nc.ot %v0, %v1, 8, 0
400 ; CHECK-NEXT:    b.l.t (, %s10)
401   tail call void @llvm.ve.vl.vscncot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256)
402   ret void
405 ; Function Attrs: nounwind writeonly
406 define fastcc void @vscncot_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) {
407 ; CHECK-LABEL: vscncot_vvssml:
408 ; CHECK:       # %bb.0:
409 ; CHECK-NEXT:    lea %s2, 256
410 ; CHECK-NEXT:    lvl %s2
411 ; CHECK-NEXT:    vsc.nc.ot %v0, %v1, %s0, %s1, %vm1
412 ; CHECK-NEXT:    b.l.t (, %s10)
413   tail call void @llvm.ve.vl.vscncot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256)
414   ret void
417 ; Function Attrs: nounwind writeonly
418 declare void @llvm.ve.vl.vscncot.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32)
420 ; Function Attrs: nounwind writeonly
421 define fastcc void @vscncot_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
422 ; CHECK-LABEL: vscncot_vvssml_imm_1:
423 ; CHECK:       # %bb.0:
424 ; CHECK-NEXT:    lea %s1, 256
425 ; CHECK-NEXT:    lvl %s1
426 ; CHECK-NEXT:    vsc.nc.ot %v0, %v1, %s0, 0, %vm1
427 ; CHECK-NEXT:    b.l.t (, %s10)
428   tail call void @llvm.ve.vl.vscncot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256)
429   ret void
432 ; Function Attrs: nounwind writeonly
433 define fastcc void @vscncot_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
434 ; CHECK-LABEL: vscncot_vvssml_imm_2:
435 ; CHECK:       # %bb.0:
436 ; CHECK-NEXT:    lea %s1, 256
437 ; CHECK-NEXT:    lvl %s1
438 ; CHECK-NEXT:    vsc.nc.ot %v0, %v1, 8, %s0, %vm1
439 ; CHECK-NEXT:    b.l.t (, %s10)
440   tail call void @llvm.ve.vl.vscncot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256)
441   ret void
444 ; Function Attrs: nounwind writeonly
445 define fastcc void @vscncot_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) {
446 ; CHECK-LABEL: vscncot_vvssml_imm_3:
447 ; CHECK:       # %bb.0:
448 ; CHECK-NEXT:    lea %s0, 256
449 ; CHECK-NEXT:    lvl %s0
450 ; CHECK-NEXT:    vsc.nc.ot %v0, %v1, 8, 0, %vm1
451 ; CHECK-NEXT:    b.l.t (, %s10)
452   tail call void @llvm.ve.vl.vscncot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256)
453   ret void
456 ; Function Attrs: nounwind writeonly
457 define fastcc void @vscncot_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
458 ; CHECK-LABEL: vscncot_vvssl_no_imm_1:
459 ; CHECK:       # %bb.0:
460 ; CHECK-NEXT:    lea %s1, 256
461 ; CHECK-NEXT:    or %s2, 8, (0)1
462 ; CHECK-NEXT:    lvl %s1
463 ; CHECK-NEXT:    vsc.nc.ot %v0, %v1, %s0, %s2
464 ; CHECK-NEXT:    b.l.t (, %s10)
465   tail call void @llvm.ve.vl.vscncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256)
466   ret void
469 ; Function Attrs: nounwind writeonly
470 define fastcc void @vscu_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) {
471 ; CHECK-LABEL: vscu_vvssl:
472 ; CHECK:       # %bb.0:
473 ; CHECK-NEXT:    lea %s2, 256
474 ; CHECK-NEXT:    lvl %s2
475 ; CHECK-NEXT:    vscu %v0, %v1, %s0, %s1
476 ; CHECK-NEXT:    b.l.t (, %s10)
477   tail call void @llvm.ve.vl.vscu.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256)
478   ret void
481 ; Function Attrs: nounwind writeonly
482 declare void @llvm.ve.vl.vscu.vvssl(<256 x double>, <256 x double>, i64, i64, i32)
484 ; Function Attrs: nounwind writeonly
485 define fastcc void @vscu_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
486 ; CHECK-LABEL: vscu_vvssl_imm_1:
487 ; CHECK:       # %bb.0:
488 ; CHECK-NEXT:    lea %s1, 256
489 ; CHECK-NEXT:    lvl %s1
490 ; CHECK-NEXT:    vscu %v0, %v1, %s0, 0
491 ; CHECK-NEXT:    b.l.t (, %s10)
492   tail call void @llvm.ve.vl.vscu.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256)
493   ret void
496 ; Function Attrs: nounwind writeonly
497 define fastcc void @vscu_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) {
498 ; CHECK-LABEL: vscu_vvssl_imm_2:
499 ; CHECK:       # %bb.0:
500 ; CHECK-NEXT:    lea %s1, 256
501 ; CHECK-NEXT:    lvl %s1
502 ; CHECK-NEXT:    vscu %v0, %v1, 8, %s0
503 ; CHECK-NEXT:    b.l.t (, %s10)
504   tail call void @llvm.ve.vl.vscu.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256)
505   ret void
508 ; Function Attrs: nounwind writeonly
509 define fastcc void @vscu_vvssl_imm_3(<256 x double> %0, <256 x double> %1) {
510 ; CHECK-LABEL: vscu_vvssl_imm_3:
511 ; CHECK:       # %bb.0:
512 ; CHECK-NEXT:    lea %s0, 256
513 ; CHECK-NEXT:    lvl %s0
514 ; CHECK-NEXT:    vscu %v0, %v1, 8, 0
515 ; CHECK-NEXT:    b.l.t (, %s10)
516   tail call void @llvm.ve.vl.vscu.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256)
517   ret void
520 ; Function Attrs: nounwind writeonly
521 define fastcc void @vscu_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) {
522 ; CHECK-LABEL: vscu_vvssml:
523 ; CHECK:       # %bb.0:
524 ; CHECK-NEXT:    lea %s2, 256
525 ; CHECK-NEXT:    lvl %s2
526 ; CHECK-NEXT:    vscu %v0, %v1, %s0, %s1, %vm1
527 ; CHECK-NEXT:    b.l.t (, %s10)
528   tail call void @llvm.ve.vl.vscu.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256)
529   ret void
532 ; Function Attrs: nounwind writeonly
533 declare void @llvm.ve.vl.vscu.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32)
535 ; Function Attrs: nounwind writeonly
536 define fastcc void @vscu_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
537 ; CHECK-LABEL: vscu_vvssml_imm_1:
538 ; CHECK:       # %bb.0:
539 ; CHECK-NEXT:    lea %s1, 256
540 ; CHECK-NEXT:    lvl %s1
541 ; CHECK-NEXT:    vscu %v0, %v1, %s0, 0, %vm1
542 ; CHECK-NEXT:    b.l.t (, %s10)
543   tail call void @llvm.ve.vl.vscu.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256)
544   ret void
547 ; Function Attrs: nounwind writeonly
548 define fastcc void @vscu_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
549 ; CHECK-LABEL: vscu_vvssml_imm_2:
550 ; CHECK:       # %bb.0:
551 ; CHECK-NEXT:    lea %s1, 256
552 ; CHECK-NEXT:    lvl %s1
553 ; CHECK-NEXT:    vscu %v0, %v1, 8, %s0, %vm1
554 ; CHECK-NEXT:    b.l.t (, %s10)
555   tail call void @llvm.ve.vl.vscu.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256)
556   ret void
559 ; Function Attrs: nounwind writeonly
560 define fastcc void @vscu_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) {
561 ; CHECK-LABEL: vscu_vvssml_imm_3:
562 ; CHECK:       # %bb.0:
563 ; CHECK-NEXT:    lea %s0, 256
564 ; CHECK-NEXT:    lvl %s0
565 ; CHECK-NEXT:    vscu %v0, %v1, 8, 0, %vm1
566 ; CHECK-NEXT:    b.l.t (, %s10)
567   tail call void @llvm.ve.vl.vscu.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256)
568   ret void
571 ; Function Attrs: nounwind writeonly
572 define fastcc void @vscu_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
573 ; CHECK-LABEL: vscu_vvssl_no_imm_1:
574 ; CHECK:       # %bb.0:
575 ; CHECK-NEXT:    lea %s1, 256
576 ; CHECK-NEXT:    or %s2, 8, (0)1
577 ; CHECK-NEXT:    lvl %s1
578 ; CHECK-NEXT:    vscu %v0, %v1, %s0, %s2
579 ; CHECK-NEXT:    b.l.t (, %s10)
580   tail call void @llvm.ve.vl.vscu.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256)
581   ret void
584 ; Function Attrs: nounwind writeonly
585 define fastcc void @vscunc_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) {
586 ; CHECK-LABEL: vscunc_vvssl:
587 ; CHECK:       # %bb.0:
588 ; CHECK-NEXT:    lea %s2, 256
589 ; CHECK-NEXT:    lvl %s2
590 ; CHECK-NEXT:    vscu.nc %v0, %v1, %s0, %s1
591 ; CHECK-NEXT:    b.l.t (, %s10)
592   tail call void @llvm.ve.vl.vscunc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256)
593   ret void
596 ; Function Attrs: nounwind writeonly
597 declare void @llvm.ve.vl.vscunc.vvssl(<256 x double>, <256 x double>, i64, i64, i32)
599 ; Function Attrs: nounwind writeonly
600 define fastcc void @vscunc_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
601 ; CHECK-LABEL: vscunc_vvssl_imm_1:
602 ; CHECK:       # %bb.0:
603 ; CHECK-NEXT:    lea %s1, 256
604 ; CHECK-NEXT:    lvl %s1
605 ; CHECK-NEXT:    vscu.nc %v0, %v1, %s0, 0
606 ; CHECK-NEXT:    b.l.t (, %s10)
607   tail call void @llvm.ve.vl.vscunc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256)
608   ret void
611 ; Function Attrs: nounwind writeonly
612 define fastcc void @vscunc_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) {
613 ; CHECK-LABEL: vscunc_vvssl_imm_2:
614 ; CHECK:       # %bb.0:
615 ; CHECK-NEXT:    lea %s1, 256
616 ; CHECK-NEXT:    lvl %s1
617 ; CHECK-NEXT:    vscu.nc %v0, %v1, 8, %s0
618 ; CHECK-NEXT:    b.l.t (, %s10)
619   tail call void @llvm.ve.vl.vscunc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256)
620   ret void
623 ; Function Attrs: nounwind writeonly
624 define fastcc void @vscunc_vvssl_imm_3(<256 x double> %0, <256 x double> %1) {
625 ; CHECK-LABEL: vscunc_vvssl_imm_3:
626 ; CHECK:       # %bb.0:
627 ; CHECK-NEXT:    lea %s0, 256
628 ; CHECK-NEXT:    lvl %s0
629 ; CHECK-NEXT:    vscu.nc %v0, %v1, 8, 0
630 ; CHECK-NEXT:    b.l.t (, %s10)
631   tail call void @llvm.ve.vl.vscunc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256)
632   ret void
635 ; Function Attrs: nounwind writeonly
636 define fastcc void @vscunc_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) {
637 ; CHECK-LABEL: vscunc_vvssml:
638 ; CHECK:       # %bb.0:
639 ; CHECK-NEXT:    lea %s2, 256
640 ; CHECK-NEXT:    lvl %s2
641 ; CHECK-NEXT:    vscu.nc %v0, %v1, %s0, %s1, %vm1
642 ; CHECK-NEXT:    b.l.t (, %s10)
643   tail call void @llvm.ve.vl.vscunc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256)
644   ret void
647 ; Function Attrs: nounwind writeonly
648 declare void @llvm.ve.vl.vscunc.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32)
650 ; Function Attrs: nounwind writeonly
651 define fastcc void @vscunc_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
652 ; CHECK-LABEL: vscunc_vvssml_imm_1:
653 ; CHECK:       # %bb.0:
654 ; CHECK-NEXT:    lea %s1, 256
655 ; CHECK-NEXT:    lvl %s1
656 ; CHECK-NEXT:    vscu.nc %v0, %v1, %s0, 0, %vm1
657 ; CHECK-NEXT:    b.l.t (, %s10)
658   tail call void @llvm.ve.vl.vscunc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256)
659   ret void
662 ; Function Attrs: nounwind writeonly
663 define fastcc void @vscunc_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
664 ; CHECK-LABEL: vscunc_vvssml_imm_2:
665 ; CHECK:       # %bb.0:
666 ; CHECK-NEXT:    lea %s1, 256
667 ; CHECK-NEXT:    lvl %s1
668 ; CHECK-NEXT:    vscu.nc %v0, %v1, 8, %s0, %vm1
669 ; CHECK-NEXT:    b.l.t (, %s10)
670   tail call void @llvm.ve.vl.vscunc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256)
671   ret void
674 ; Function Attrs: nounwind writeonly
675 define fastcc void @vscunc_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) {
676 ; CHECK-LABEL: vscunc_vvssml_imm_3:
677 ; CHECK:       # %bb.0:
678 ; CHECK-NEXT:    lea %s0, 256
679 ; CHECK-NEXT:    lvl %s0
680 ; CHECK-NEXT:    vscu.nc %v0, %v1, 8, 0, %vm1
681 ; CHECK-NEXT:    b.l.t (, %s10)
682   tail call void @llvm.ve.vl.vscunc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256)
683   ret void
686 ; Function Attrs: nounwind writeonly
687 define fastcc void @vscunc_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
688 ; CHECK-LABEL: vscunc_vvssl_no_imm_1:
689 ; CHECK:       # %bb.0:
690 ; CHECK-NEXT:    lea %s1, 256
691 ; CHECK-NEXT:    or %s2, 8, (0)1
692 ; CHECK-NEXT:    lvl %s1
693 ; CHECK-NEXT:    vscu.nc %v0, %v1, %s0, %s2
694 ; CHECK-NEXT:    b.l.t (, %s10)
695   tail call void @llvm.ve.vl.vscunc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256)
696   ret void
699 ; Function Attrs: nounwind writeonly
700 define fastcc void @vscuot_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) {
701 ; CHECK-LABEL: vscuot_vvssl:
702 ; CHECK:       # %bb.0:
703 ; CHECK-NEXT:    lea %s2, 256
704 ; CHECK-NEXT:    lvl %s2
705 ; CHECK-NEXT:    vscu.ot %v0, %v1, %s0, %s1
706 ; CHECK-NEXT:    b.l.t (, %s10)
707   tail call void @llvm.ve.vl.vscuot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256)
708   ret void
711 ; Function Attrs: nounwind writeonly
712 declare void @llvm.ve.vl.vscuot.vvssl(<256 x double>, <256 x double>, i64, i64, i32)
714 ; Function Attrs: nounwind writeonly
715 define fastcc void @vscuot_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
716 ; CHECK-LABEL: vscuot_vvssl_imm_1:
717 ; CHECK:       # %bb.0:
718 ; CHECK-NEXT:    lea %s1, 256
719 ; CHECK-NEXT:    lvl %s1
720 ; CHECK-NEXT:    vscu.ot %v0, %v1, %s0, 0
721 ; CHECK-NEXT:    b.l.t (, %s10)
722   tail call void @llvm.ve.vl.vscuot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256)
723   ret void
726 ; Function Attrs: nounwind writeonly
727 define fastcc void @vscuot_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) {
728 ; CHECK-LABEL: vscuot_vvssl_imm_2:
729 ; CHECK:       # %bb.0:
730 ; CHECK-NEXT:    lea %s1, 256
731 ; CHECK-NEXT:    lvl %s1
732 ; CHECK-NEXT:    vscu.ot %v0, %v1, 8, %s0
733 ; CHECK-NEXT:    b.l.t (, %s10)
734   tail call void @llvm.ve.vl.vscuot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256)
735   ret void
738 ; Function Attrs: nounwind writeonly
739 define fastcc void @vscuot_vvssl_imm_3(<256 x double> %0, <256 x double> %1) {
740 ; CHECK-LABEL: vscuot_vvssl_imm_3:
741 ; CHECK:       # %bb.0:
742 ; CHECK-NEXT:    lea %s0, 256
743 ; CHECK-NEXT:    lvl %s0
744 ; CHECK-NEXT:    vscu.ot %v0, %v1, 8, 0
745 ; CHECK-NEXT:    b.l.t (, %s10)
746   tail call void @llvm.ve.vl.vscuot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256)
747   ret void
750 ; Function Attrs: nounwind writeonly
751 define fastcc void @vscuot_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) {
752 ; CHECK-LABEL: vscuot_vvssml:
753 ; CHECK:       # %bb.0:
754 ; CHECK-NEXT:    lea %s2, 256
755 ; CHECK-NEXT:    lvl %s2
756 ; CHECK-NEXT:    vscu.ot %v0, %v1, %s0, %s1, %vm1
757 ; CHECK-NEXT:    b.l.t (, %s10)
758   tail call void @llvm.ve.vl.vscuot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256)
759   ret void
762 ; Function Attrs: nounwind writeonly
763 declare void @llvm.ve.vl.vscuot.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32)
765 ; Function Attrs: nounwind writeonly
766 define fastcc void @vscuot_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
767 ; CHECK-LABEL: vscuot_vvssml_imm_1:
768 ; CHECK:       # %bb.0:
769 ; CHECK-NEXT:    lea %s1, 256
770 ; CHECK-NEXT:    lvl %s1
771 ; CHECK-NEXT:    vscu.ot %v0, %v1, %s0, 0, %vm1
772 ; CHECK-NEXT:    b.l.t (, %s10)
773   tail call void @llvm.ve.vl.vscuot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256)
774   ret void
777 ; Function Attrs: nounwind writeonly
778 define fastcc void @vscuot_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
779 ; CHECK-LABEL: vscuot_vvssml_imm_2:
780 ; CHECK:       # %bb.0:
781 ; CHECK-NEXT:    lea %s1, 256
782 ; CHECK-NEXT:    lvl %s1
783 ; CHECK-NEXT:    vscu.ot %v0, %v1, 8, %s0, %vm1
784 ; CHECK-NEXT:    b.l.t (, %s10)
785   tail call void @llvm.ve.vl.vscuot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256)
786   ret void
789 ; Function Attrs: nounwind writeonly
790 define fastcc void @vscuot_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) {
791 ; CHECK-LABEL: vscuot_vvssml_imm_3:
792 ; CHECK:       # %bb.0:
793 ; CHECK-NEXT:    lea %s0, 256
794 ; CHECK-NEXT:    lvl %s0
795 ; CHECK-NEXT:    vscu.ot %v0, %v1, 8, 0, %vm1
796 ; CHECK-NEXT:    b.l.t (, %s10)
797   tail call void @llvm.ve.vl.vscuot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256)
798   ret void
801 ; Function Attrs: nounwind writeonly
802 define fastcc void @vscuot_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
803 ; CHECK-LABEL: vscuot_vvssl_no_imm_1:
804 ; CHECK:       # %bb.0:
805 ; CHECK-NEXT:    lea %s1, 256
806 ; CHECK-NEXT:    or %s2, 8, (0)1
807 ; CHECK-NEXT:    lvl %s1
808 ; CHECK-NEXT:    vscu.ot %v0, %v1, %s0, %s2
809 ; CHECK-NEXT:    b.l.t (, %s10)
810   tail call void @llvm.ve.vl.vscuot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256)
811   ret void
814 ; Function Attrs: nounwind writeonly
815 define fastcc void @vscuncot_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) {
816 ; CHECK-LABEL: vscuncot_vvssl:
817 ; CHECK:       # %bb.0:
818 ; CHECK-NEXT:    lea %s2, 256
819 ; CHECK-NEXT:    lvl %s2
820 ; CHECK-NEXT:    vscu.nc.ot %v0, %v1, %s0, %s1
821 ; CHECK-NEXT:    b.l.t (, %s10)
822   tail call void @llvm.ve.vl.vscuncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256)
823   ret void
826 ; Function Attrs: nounwind writeonly
827 declare void @llvm.ve.vl.vscuncot.vvssl(<256 x double>, <256 x double>, i64, i64, i32)
829 ; Function Attrs: nounwind writeonly
830 define fastcc void @vscuncot_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
831 ; CHECK-LABEL: vscuncot_vvssl_imm_1:
832 ; CHECK:       # %bb.0:
833 ; CHECK-NEXT:    lea %s1, 256
834 ; CHECK-NEXT:    lvl %s1
835 ; CHECK-NEXT:    vscu.nc.ot %v0, %v1, %s0, 0
836 ; CHECK-NEXT:    b.l.t (, %s10)
837   tail call void @llvm.ve.vl.vscuncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256)
838   ret void
841 ; Function Attrs: nounwind writeonly
842 define fastcc void @vscuncot_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) {
843 ; CHECK-LABEL: vscuncot_vvssl_imm_2:
844 ; CHECK:       # %bb.0:
845 ; CHECK-NEXT:    lea %s1, 256
846 ; CHECK-NEXT:    lvl %s1
847 ; CHECK-NEXT:    vscu.nc.ot %v0, %v1, 8, %s0
848 ; CHECK-NEXT:    b.l.t (, %s10)
849   tail call void @llvm.ve.vl.vscuncot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256)
850   ret void
853 ; Function Attrs: nounwind writeonly
854 define fastcc void @vscuncot_vvssl_imm_3(<256 x double> %0, <256 x double> %1) {
855 ; CHECK-LABEL: vscuncot_vvssl_imm_3:
856 ; CHECK:       # %bb.0:
857 ; CHECK-NEXT:    lea %s0, 256
858 ; CHECK-NEXT:    lvl %s0
859 ; CHECK-NEXT:    vscu.nc.ot %v0, %v1, 8, 0
860 ; CHECK-NEXT:    b.l.t (, %s10)
861   tail call void @llvm.ve.vl.vscuncot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256)
862   ret void
865 ; Function Attrs: nounwind writeonly
866 define fastcc void @vscuncot_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) {
867 ; CHECK-LABEL: vscuncot_vvssml:
868 ; CHECK:       # %bb.0:
869 ; CHECK-NEXT:    lea %s2, 256
870 ; CHECK-NEXT:    lvl %s2
871 ; CHECK-NEXT:    vscu.nc.ot %v0, %v1, %s0, %s1, %vm1
872 ; CHECK-NEXT:    b.l.t (, %s10)
873   tail call void @llvm.ve.vl.vscuncot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256)
874   ret void
877 ; Function Attrs: nounwind writeonly
878 declare void @llvm.ve.vl.vscuncot.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32)
880 ; Function Attrs: nounwind writeonly
881 define fastcc void @vscuncot_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
882 ; CHECK-LABEL: vscuncot_vvssml_imm_1:
883 ; CHECK:       # %bb.0:
884 ; CHECK-NEXT:    lea %s1, 256
885 ; CHECK-NEXT:    lvl %s1
886 ; CHECK-NEXT:    vscu.nc.ot %v0, %v1, %s0, 0, %vm1
887 ; CHECK-NEXT:    b.l.t (, %s10)
888   tail call void @llvm.ve.vl.vscuncot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256)
889   ret void
892 ; Function Attrs: nounwind writeonly
893 define fastcc void @vscuncot_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
894 ; CHECK-LABEL: vscuncot_vvssml_imm_2:
895 ; CHECK:       # %bb.0:
896 ; CHECK-NEXT:    lea %s1, 256
897 ; CHECK-NEXT:    lvl %s1
898 ; CHECK-NEXT:    vscu.nc.ot %v0, %v1, 8, %s0, %vm1
899 ; CHECK-NEXT:    b.l.t (, %s10)
900   tail call void @llvm.ve.vl.vscuncot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256)
901   ret void
904 ; Function Attrs: nounwind writeonly
905 define fastcc void @vscuncot_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) {
906 ; CHECK-LABEL: vscuncot_vvssml_imm_3:
907 ; CHECK:       # %bb.0:
908 ; CHECK-NEXT:    lea %s0, 256
909 ; CHECK-NEXT:    lvl %s0
910 ; CHECK-NEXT:    vscu.nc.ot %v0, %v1, 8, 0, %vm1
911 ; CHECK-NEXT:    b.l.t (, %s10)
912   tail call void @llvm.ve.vl.vscuncot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256)
913   ret void
916 ; Function Attrs: nounwind writeonly
917 define fastcc void @vscuncot_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
918 ; CHECK-LABEL: vscuncot_vvssl_no_imm_1:
919 ; CHECK:       # %bb.0:
920 ; CHECK-NEXT:    lea %s1, 256
921 ; CHECK-NEXT:    or %s2, 8, (0)1
922 ; CHECK-NEXT:    lvl %s1
923 ; CHECK-NEXT:    vscu.nc.ot %v0, %v1, %s0, %s2
924 ; CHECK-NEXT:    b.l.t (, %s10)
925   tail call void @llvm.ve.vl.vscuncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256)
926   ret void
929 ; Function Attrs: nounwind writeonly
930 define fastcc void @vscl_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) {
931 ; CHECK-LABEL: vscl_vvssl:
932 ; CHECK:       # %bb.0:
933 ; CHECK-NEXT:    lea %s2, 256
934 ; CHECK-NEXT:    lvl %s2
935 ; CHECK-NEXT:    vscl %v0, %v1, %s0, %s1
936 ; CHECK-NEXT:    b.l.t (, %s10)
937   tail call void @llvm.ve.vl.vscl.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256)
938   ret void
941 ; Function Attrs: nounwind writeonly
942 declare void @llvm.ve.vl.vscl.vvssl(<256 x double>, <256 x double>, i64, i64, i32)
944 ; Function Attrs: nounwind writeonly
945 define fastcc void @vscl_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
946 ; CHECK-LABEL: vscl_vvssl_imm_1:
947 ; CHECK:       # %bb.0:
948 ; CHECK-NEXT:    lea %s1, 256
949 ; CHECK-NEXT:    lvl %s1
950 ; CHECK-NEXT:    vscl %v0, %v1, %s0, 0
951 ; CHECK-NEXT:    b.l.t (, %s10)
952   tail call void @llvm.ve.vl.vscl.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256)
953   ret void
956 ; Function Attrs: nounwind writeonly
957 define fastcc void @vscl_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) {
958 ; CHECK-LABEL: vscl_vvssl_imm_2:
959 ; CHECK:       # %bb.0:
960 ; CHECK-NEXT:    lea %s1, 256
961 ; CHECK-NEXT:    lvl %s1
962 ; CHECK-NEXT:    vscl %v0, %v1, 8, %s0
963 ; CHECK-NEXT:    b.l.t (, %s10)
964   tail call void @llvm.ve.vl.vscl.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256)
965   ret void
968 ; Function Attrs: nounwind writeonly
969 define fastcc void @vscl_vvssl_imm_3(<256 x double> %0, <256 x double> %1) {
970 ; CHECK-LABEL: vscl_vvssl_imm_3:
971 ; CHECK:       # %bb.0:
972 ; CHECK-NEXT:    lea %s0, 256
973 ; CHECK-NEXT:    lvl %s0
974 ; CHECK-NEXT:    vscl %v0, %v1, 8, 0
975 ; CHECK-NEXT:    b.l.t (, %s10)
976   tail call void @llvm.ve.vl.vscl.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256)
977   ret void
980 ; Function Attrs: nounwind writeonly
981 define fastcc void @vscl_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) {
982 ; CHECK-LABEL: vscl_vvssml:
983 ; CHECK:       # %bb.0:
984 ; CHECK-NEXT:    lea %s2, 256
985 ; CHECK-NEXT:    lvl %s2
986 ; CHECK-NEXT:    vscl %v0, %v1, %s0, %s1, %vm1
987 ; CHECK-NEXT:    b.l.t (, %s10)
988   tail call void @llvm.ve.vl.vscl.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256)
989   ret void
992 ; Function Attrs: nounwind writeonly
993 declare void @llvm.ve.vl.vscl.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32)
995 ; Function Attrs: nounwind writeonly
996 define fastcc void @vscl_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
997 ; CHECK-LABEL: vscl_vvssml_imm_1:
998 ; CHECK:       # %bb.0:
999 ; CHECK-NEXT:    lea %s1, 256
1000 ; CHECK-NEXT:    lvl %s1
1001 ; CHECK-NEXT:    vscl %v0, %v1, %s0, 0, %vm1
1002 ; CHECK-NEXT:    b.l.t (, %s10)
1003   tail call void @llvm.ve.vl.vscl.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256)
1004   ret void
1007 ; Function Attrs: nounwind writeonly
1008 define fastcc void @vscl_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
1009 ; CHECK-LABEL: vscl_vvssml_imm_2:
1010 ; CHECK:       # %bb.0:
1011 ; CHECK-NEXT:    lea %s1, 256
1012 ; CHECK-NEXT:    lvl %s1
1013 ; CHECK-NEXT:    vscl %v0, %v1, 8, %s0, %vm1
1014 ; CHECK-NEXT:    b.l.t (, %s10)
1015   tail call void @llvm.ve.vl.vscl.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256)
1016   ret void
1019 ; Function Attrs: nounwind writeonly
1020 define fastcc void @vscl_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) {
1021 ; CHECK-LABEL: vscl_vvssml_imm_3:
1022 ; CHECK:       # %bb.0:
1023 ; CHECK-NEXT:    lea %s0, 256
1024 ; CHECK-NEXT:    lvl %s0
1025 ; CHECK-NEXT:    vscl %v0, %v1, 8, 0, %vm1
1026 ; CHECK-NEXT:    b.l.t (, %s10)
1027   tail call void @llvm.ve.vl.vscl.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256)
1028   ret void
1031 ; Function Attrs: nounwind writeonly
1032 define fastcc void @vscl_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
1033 ; CHECK-LABEL: vscl_vvssl_no_imm_1:
1034 ; CHECK:       # %bb.0:
1035 ; CHECK-NEXT:    lea %s1, 256
1036 ; CHECK-NEXT:    or %s2, 8, (0)1
1037 ; CHECK-NEXT:    lvl %s1
1038 ; CHECK-NEXT:    vscl %v0, %v1, %s0, %s2
1039 ; CHECK-NEXT:    b.l.t (, %s10)
1040   tail call void @llvm.ve.vl.vscl.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256)
1041   ret void
1044 ; Function Attrs: nounwind writeonly
1045 define fastcc void @vsclnc_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) {
1046 ; CHECK-LABEL: vsclnc_vvssl:
1047 ; CHECK:       # %bb.0:
1048 ; CHECK-NEXT:    lea %s2, 256
1049 ; CHECK-NEXT:    lvl %s2
1050 ; CHECK-NEXT:    vscl.nc %v0, %v1, %s0, %s1
1051 ; CHECK-NEXT:    b.l.t (, %s10)
1052   tail call void @llvm.ve.vl.vsclnc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256)
1053   ret void
1056 ; Function Attrs: nounwind writeonly
1057 declare void @llvm.ve.vl.vsclnc.vvssl(<256 x double>, <256 x double>, i64, i64, i32)
1059 ; Function Attrs: nounwind writeonly
1060 define fastcc void @vsclnc_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
1061 ; CHECK-LABEL: vsclnc_vvssl_imm_1:
1062 ; CHECK:       # %bb.0:
1063 ; CHECK-NEXT:    lea %s1, 256
1064 ; CHECK-NEXT:    lvl %s1
1065 ; CHECK-NEXT:    vscl.nc %v0, %v1, %s0, 0
1066 ; CHECK-NEXT:    b.l.t (, %s10)
1067   tail call void @llvm.ve.vl.vsclnc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256)
1068   ret void
1071 ; Function Attrs: nounwind writeonly
1072 define fastcc void @vsclnc_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) {
1073 ; CHECK-LABEL: vsclnc_vvssl_imm_2:
1074 ; CHECK:       # %bb.0:
1075 ; CHECK-NEXT:    lea %s1, 256
1076 ; CHECK-NEXT:    lvl %s1
1077 ; CHECK-NEXT:    vscl.nc %v0, %v1, 8, %s0
1078 ; CHECK-NEXT:    b.l.t (, %s10)
1079   tail call void @llvm.ve.vl.vsclnc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256)
1080   ret void
1083 ; Function Attrs: nounwind writeonly
1084 define fastcc void @vsclnc_vvssl_imm_3(<256 x double> %0, <256 x double> %1) {
1085 ; CHECK-LABEL: vsclnc_vvssl_imm_3:
1086 ; CHECK:       # %bb.0:
1087 ; CHECK-NEXT:    lea %s0, 256
1088 ; CHECK-NEXT:    lvl %s0
1089 ; CHECK-NEXT:    vscl.nc %v0, %v1, 8, 0
1090 ; CHECK-NEXT:    b.l.t (, %s10)
1091   tail call void @llvm.ve.vl.vsclnc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256)
1092   ret void
1095 ; Function Attrs: nounwind writeonly
1096 define fastcc void @vsclnc_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) {
1097 ; CHECK-LABEL: vsclnc_vvssml:
1098 ; CHECK:       # %bb.0:
1099 ; CHECK-NEXT:    lea %s2, 256
1100 ; CHECK-NEXT:    lvl %s2
1101 ; CHECK-NEXT:    vscl.nc %v0, %v1, %s0, %s1, %vm1
1102 ; CHECK-NEXT:    b.l.t (, %s10)
1103   tail call void @llvm.ve.vl.vsclnc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256)
1104   ret void
1107 ; Function Attrs: nounwind writeonly
1108 declare void @llvm.ve.vl.vsclnc.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32)
1110 ; Function Attrs: nounwind writeonly
1111 define fastcc void @vsclnc_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
1112 ; CHECK-LABEL: vsclnc_vvssml_imm_1:
1113 ; CHECK:       # %bb.0:
1114 ; CHECK-NEXT:    lea %s1, 256
1115 ; CHECK-NEXT:    lvl %s1
1116 ; CHECK-NEXT:    vscl.nc %v0, %v1, %s0, 0, %vm1
1117 ; CHECK-NEXT:    b.l.t (, %s10)
1118   tail call void @llvm.ve.vl.vsclnc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256)
1119   ret void
1122 ; Function Attrs: nounwind writeonly
1123 define fastcc void @vsclnc_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
1124 ; CHECK-LABEL: vsclnc_vvssml_imm_2:
1125 ; CHECK:       # %bb.0:
1126 ; CHECK-NEXT:    lea %s1, 256
1127 ; CHECK-NEXT:    lvl %s1
1128 ; CHECK-NEXT:    vscl.nc %v0, %v1, 8, %s0, %vm1
1129 ; CHECK-NEXT:    b.l.t (, %s10)
1130   tail call void @llvm.ve.vl.vsclnc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256)
1131   ret void
1134 ; Function Attrs: nounwind writeonly
1135 define fastcc void @vsclnc_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) {
1136 ; CHECK-LABEL: vsclnc_vvssml_imm_3:
1137 ; CHECK:       # %bb.0:
1138 ; CHECK-NEXT:    lea %s0, 256
1139 ; CHECK-NEXT:    lvl %s0
1140 ; CHECK-NEXT:    vscl.nc %v0, %v1, 8, 0, %vm1
1141 ; CHECK-NEXT:    b.l.t (, %s10)
1142   tail call void @llvm.ve.vl.vsclnc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256)
1143   ret void
1146 ; Function Attrs: nounwind writeonly
1147 define fastcc void @vsclnc_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
1148 ; CHECK-LABEL: vsclnc_vvssl_no_imm_1:
1149 ; CHECK:       # %bb.0:
1150 ; CHECK-NEXT:    lea %s1, 256
1151 ; CHECK-NEXT:    or %s2, 8, (0)1
1152 ; CHECK-NEXT:    lvl %s1
1153 ; CHECK-NEXT:    vscl.nc %v0, %v1, %s0, %s2
1154 ; CHECK-NEXT:    b.l.t (, %s10)
1155   tail call void @llvm.ve.vl.vsclnc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256)
1156   ret void
1159 ; Function Attrs: nounwind writeonly
1160 define fastcc void @vsclot_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) {
1161 ; CHECK-LABEL: vsclot_vvssl:
1162 ; CHECK:       # %bb.0:
1163 ; CHECK-NEXT:    lea %s2, 256
1164 ; CHECK-NEXT:    lvl %s2
1165 ; CHECK-NEXT:    vscl.ot %v0, %v1, %s0, %s1
1166 ; CHECK-NEXT:    b.l.t (, %s10)
1167   tail call void @llvm.ve.vl.vsclot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256)
1168   ret void
1171 ; Function Attrs: nounwind writeonly
1172 declare void @llvm.ve.vl.vsclot.vvssl(<256 x double>, <256 x double>, i64, i64, i32)
1174 ; Function Attrs: nounwind writeonly
1175 define fastcc void @vsclot_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
1176 ; CHECK-LABEL: vsclot_vvssl_imm_1:
1177 ; CHECK:       # %bb.0:
1178 ; CHECK-NEXT:    lea %s1, 256
1179 ; CHECK-NEXT:    lvl %s1
1180 ; CHECK-NEXT:    vscl.ot %v0, %v1, %s0, 0
1181 ; CHECK-NEXT:    b.l.t (, %s10)
1182   tail call void @llvm.ve.vl.vsclot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256)
1183   ret void
1186 ; Function Attrs: nounwind writeonly
1187 define fastcc void @vsclot_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) {
1188 ; CHECK-LABEL: vsclot_vvssl_imm_2:
1189 ; CHECK:       # %bb.0:
1190 ; CHECK-NEXT:    lea %s1, 256
1191 ; CHECK-NEXT:    lvl %s1
1192 ; CHECK-NEXT:    vscl.ot %v0, %v1, 8, %s0
1193 ; CHECK-NEXT:    b.l.t (, %s10)
1194   tail call void @llvm.ve.vl.vsclot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256)
1195   ret void
1198 ; Function Attrs: nounwind writeonly
1199 define fastcc void @vsclot_vvssl_imm_3(<256 x double> %0, <256 x double> %1) {
1200 ; CHECK-LABEL: vsclot_vvssl_imm_3:
1201 ; CHECK:       # %bb.0:
1202 ; CHECK-NEXT:    lea %s0, 256
1203 ; CHECK-NEXT:    lvl %s0
1204 ; CHECK-NEXT:    vscl.ot %v0, %v1, 8, 0
1205 ; CHECK-NEXT:    b.l.t (, %s10)
1206   tail call void @llvm.ve.vl.vsclot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256)
1207   ret void
1210 ; Function Attrs: nounwind writeonly
1211 define fastcc void @vsclot_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) {
1212 ; CHECK-LABEL: vsclot_vvssml:
1213 ; CHECK:       # %bb.0:
1214 ; CHECK-NEXT:    lea %s2, 256
1215 ; CHECK-NEXT:    lvl %s2
1216 ; CHECK-NEXT:    vscl.ot %v0, %v1, %s0, %s1, %vm1
1217 ; CHECK-NEXT:    b.l.t (, %s10)
1218   tail call void @llvm.ve.vl.vsclot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256)
1219   ret void
1222 ; Function Attrs: nounwind writeonly
1223 declare void @llvm.ve.vl.vsclot.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32)
1225 ; Function Attrs: nounwind writeonly
1226 define fastcc void @vsclot_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
1227 ; CHECK-LABEL: vsclot_vvssml_imm_1:
1228 ; CHECK:       # %bb.0:
1229 ; CHECK-NEXT:    lea %s1, 256
1230 ; CHECK-NEXT:    lvl %s1
1231 ; CHECK-NEXT:    vscl.ot %v0, %v1, %s0, 0, %vm1
1232 ; CHECK-NEXT:    b.l.t (, %s10)
1233   tail call void @llvm.ve.vl.vsclot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256)
1234   ret void
1237 ; Function Attrs: nounwind writeonly
1238 define fastcc void @vsclot_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
1239 ; CHECK-LABEL: vsclot_vvssml_imm_2:
1240 ; CHECK:       # %bb.0:
1241 ; CHECK-NEXT:    lea %s1, 256
1242 ; CHECK-NEXT:    lvl %s1
1243 ; CHECK-NEXT:    vscl.ot %v0, %v1, 8, %s0, %vm1
1244 ; CHECK-NEXT:    b.l.t (, %s10)
1245   tail call void @llvm.ve.vl.vsclot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256)
1246   ret void
1249 ; Function Attrs: nounwind writeonly
1250 define fastcc void @vsclot_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) {
1251 ; CHECK-LABEL: vsclot_vvssml_imm_3:
1252 ; CHECK:       # %bb.0:
1253 ; CHECK-NEXT:    lea %s0, 256
1254 ; CHECK-NEXT:    lvl %s0
1255 ; CHECK-NEXT:    vscl.ot %v0, %v1, 8, 0, %vm1
1256 ; CHECK-NEXT:    b.l.t (, %s10)
1257   tail call void @llvm.ve.vl.vsclot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256)
1258   ret void
1261 ; Function Attrs: nounwind writeonly
1262 define fastcc void @vsclot_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
1263 ; CHECK-LABEL: vsclot_vvssl_no_imm_1:
1264 ; CHECK:       # %bb.0:
1265 ; CHECK-NEXT:    lea %s1, 256
1266 ; CHECK-NEXT:    or %s2, 8, (0)1
1267 ; CHECK-NEXT:    lvl %s1
1268 ; CHECK-NEXT:    vscl.ot %v0, %v1, %s0, %s2
1269 ; CHECK-NEXT:    b.l.t (, %s10)
1270   tail call void @llvm.ve.vl.vsclot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256)
1271   ret void
1274 ; Function Attrs: nounwind writeonly
1275 define fastcc void @vsclncot_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) {
1276 ; CHECK-LABEL: vsclncot_vvssl:
1277 ; CHECK:       # %bb.0:
1278 ; CHECK-NEXT:    lea %s2, 256
1279 ; CHECK-NEXT:    lvl %s2
1280 ; CHECK-NEXT:    vscl.nc.ot %v0, %v1, %s0, %s1
1281 ; CHECK-NEXT:    b.l.t (, %s10)
1282   tail call void @llvm.ve.vl.vsclncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256)
1283   ret void
1286 ; Function Attrs: nounwind writeonly
1287 declare void @llvm.ve.vl.vsclncot.vvssl(<256 x double>, <256 x double>, i64, i64, i32)
1289 ; Function Attrs: nounwind writeonly
1290 define fastcc void @vsclncot_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
1291 ; CHECK-LABEL: vsclncot_vvssl_imm_1:
1292 ; CHECK:       # %bb.0:
1293 ; CHECK-NEXT:    lea %s1, 256
1294 ; CHECK-NEXT:    lvl %s1
1295 ; CHECK-NEXT:    vscl.nc.ot %v0, %v1, %s0, 0
1296 ; CHECK-NEXT:    b.l.t (, %s10)
1297   tail call void @llvm.ve.vl.vsclncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256)
1298   ret void
1301 ; Function Attrs: nounwind writeonly
1302 define fastcc void @vsclncot_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) {
1303 ; CHECK-LABEL: vsclncot_vvssl_imm_2:
1304 ; CHECK:       # %bb.0:
1305 ; CHECK-NEXT:    lea %s1, 256
1306 ; CHECK-NEXT:    lvl %s1
1307 ; CHECK-NEXT:    vscl.nc.ot %v0, %v1, 8, %s0
1308 ; CHECK-NEXT:    b.l.t (, %s10)
1309   tail call void @llvm.ve.vl.vsclncot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256)
1310   ret void
1313 ; Function Attrs: nounwind writeonly
1314 define fastcc void @vsclncot_vvssl_imm_3(<256 x double> %0, <256 x double> %1) {
1315 ; CHECK-LABEL: vsclncot_vvssl_imm_3:
1316 ; CHECK:       # %bb.0:
1317 ; CHECK-NEXT:    lea %s0, 256
1318 ; CHECK-NEXT:    lvl %s0
1319 ; CHECK-NEXT:    vscl.nc.ot %v0, %v1, 8, 0
1320 ; CHECK-NEXT:    b.l.t (, %s10)
1321   tail call void @llvm.ve.vl.vsclncot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256)
1322   ret void
1325 ; Function Attrs: nounwind writeonly
1326 define fastcc void @vsclncot_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) {
1327 ; CHECK-LABEL: vsclncot_vvssml:
1328 ; CHECK:       # %bb.0:
1329 ; CHECK-NEXT:    lea %s2, 256
1330 ; CHECK-NEXT:    lvl %s2
1331 ; CHECK-NEXT:    vscl.nc.ot %v0, %v1, %s0, %s1, %vm1
1332 ; CHECK-NEXT:    b.l.t (, %s10)
1333   tail call void @llvm.ve.vl.vsclncot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256)
1334   ret void
1337 ; Function Attrs: nounwind writeonly
1338 declare void @llvm.ve.vl.vsclncot.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32)
1340 ; Function Attrs: nounwind writeonly
1341 define fastcc void @vsclncot_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
1342 ; CHECK-LABEL: vsclncot_vvssml_imm_1:
1343 ; CHECK:       # %bb.0:
1344 ; CHECK-NEXT:    lea %s1, 256
1345 ; CHECK-NEXT:    lvl %s1
1346 ; CHECK-NEXT:    vscl.nc.ot %v0, %v1, %s0, 0, %vm1
1347 ; CHECK-NEXT:    b.l.t (, %s10)
1348   tail call void @llvm.ve.vl.vsclncot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256)
1349   ret void
1352 ; Function Attrs: nounwind writeonly
1353 define fastcc void @vsclncot_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) {
1354 ; CHECK-LABEL: vsclncot_vvssml_imm_2:
1355 ; CHECK:       # %bb.0:
1356 ; CHECK-NEXT:    lea %s1, 256
1357 ; CHECK-NEXT:    lvl %s1
1358 ; CHECK-NEXT:    vscl.nc.ot %v0, %v1, 8, %s0, %vm1
1359 ; CHECK-NEXT:    b.l.t (, %s10)
1360   tail call void @llvm.ve.vl.vsclncot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256)
1361   ret void
1364 ; Function Attrs: nounwind writeonly
1365 define fastcc void @vsclncot_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) {
1366 ; CHECK-LABEL: vsclncot_vvssml_imm_3:
1367 ; CHECK:       # %bb.0:
1368 ; CHECK-NEXT:    lea %s0, 256
1369 ; CHECK-NEXT:    lvl %s0
1370 ; CHECK-NEXT:    vscl.nc.ot %v0, %v1, 8, 0, %vm1
1371 ; CHECK-NEXT:    b.l.t (, %s10)
1372   tail call void @llvm.ve.vl.vsclncot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256)
1373   ret void
1376 ; Function Attrs: nounwind writeonly
1377 define fastcc void @vsclncot_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) {
1378 ; CHECK-LABEL: vsclncot_vvssl_no_imm_1:
1379 ; CHECK:       # %bb.0:
1380 ; CHECK-NEXT:    lea %s1, 256
1381 ; CHECK-NEXT:    or %s2, 8, (0)1
1382 ; CHECK-NEXT:    lvl %s1
1383 ; CHECK-NEXT:    vscl.nc.ot %v0, %v1, %s0, %s2
1384 ; CHECK-NEXT:    b.l.t (, %s10)
1385   tail call void @llvm.ve.vl.vsclncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256)
1386   ret void