1 ; RUN: llc < %s -mtriple=ve -mattr=+vpu | FileCheck %s
3 ;;; Test vector scatter intrinsic instructions
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:
13 ; CHECK-NEXT: lea %s2, 256
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)
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:
28 ; CHECK-NEXT: lea %s1, 256
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)
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:
40 ; CHECK-NEXT: lea %s1, 256
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)
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:
52 ; CHECK-NEXT: lea %s0, 256
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)
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:
64 ; CHECK-NEXT: lea %s2, 256
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)
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:
79 ; CHECK-NEXT: lea %s1, 256
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)
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:
91 ; CHECK-NEXT: lea %s1, 256
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)