1; RUN: not --crash llc -march=mips -mattr=+msa,+fp64,+mips32r2 -relocation-model=pic < %s 2> %t1
2; RUN: FileCheck %s < %t1
3
4; Test that the immediate intrinsics with out of range values trigger an error.
5
6
7define void @binsli_b(<16 x i8> * %ptr) {
8entry:
9  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
10  %r = call <16 x i8> @llvm.mips.binsli.b(<16 x i8> %a, <16 x i8> %a, i32 65)
11  store <16 x i8> %r, <16 x i8> * %ptr, align 16
12  ret void
13}
14; CHECK: LLVM ERROR: Immediate out of range
15
16define void @binsri_b(<16 x i8> * %ptr) {
17entry:
18  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
19  %r = call <16 x i8> @llvm.mips.binsri.b(<16 x i8> %a, <16 x i8> %a, i32 5)
20  store <16 x i8> %r, <16 x i8> * %ptr, align 16
21  ret void
22}
23
24define void @bmnzi_b(<16 x i8> * %ptr) {
25entry:
26  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
27  %r = call <16 x i8> @llvm.mips.bmnzi.b(<16 x i8> %a, <16 x i8> %a, i32 63)
28  store <16 x i8> %r, <16 x i8> * %ptr, align 16
29  ret void
30}
31
32define void @bmzi_b(<16 x i8> * %ptr) {
33entry:
34  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
35  %r = call <16 x i8> @llvm.mips.bmzi.b(<16 x i8> %a, <16 x i8> %a, i32 63)
36  store <16 x i8> %r, <16 x i8> * %ptr, align 16
37  ret void
38}
39
40define void @bnegi_b(<16 x i8> * %ptr) {
41entry:
42  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
43  %r = call <16 x i8> @llvm.mips.bnegi.b(<16 x i8> %a, i32 6)
44  store <16 x i8> %r, <16 x i8> * %ptr, align 16
45  ret void
46}
47
48define void @bseli_b(<16 x i8> * %ptr) {
49entry:
50  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
51  %r = call <16 x i8> @llvm.mips.bseli.b(<16 x i8> %a, <16 x i8> %a, i32 63)
52  store <16 x i8> %r, <16 x i8> * %ptr, align 16
53  ret void
54}
55
56define void @bseti_b(<16 x i8> * %ptr) {
57entry:
58  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
59  %r = call <16 x i8> @llvm.mips.bseti.b(<16 x i8> %a, i32 9)
60  store <16 x i8> %r, <16 x i8> * %ptr, align 16
61  ret void
62}
63
64define void @clei_s_b(<16 x i8> * %ptr) {
65entry:
66  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
67  %r = call <16 x i8> @llvm.mips.clei.s.b(<16 x i8> %a, i32 152)
68  store <16 x i8> %r, <16 x i8> * %ptr, align 16
69  ret void
70}
71
72define void @clei_u_b(<16 x i8> * %ptr) {
73entry:
74  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
75  %r = call <16 x i8> @llvm.mips.clei.u.b(<16 x i8> %a, i32 163)
76  store <16 x i8> %r, <16 x i8> * %ptr, align 16
77  ret void
78}
79
80define void @clti_s_b(<16 x i8> * %ptr) {
81entry:
82  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
83  %r = call <16 x i8> @llvm.mips.clti.s.b(<16 x i8> %a, i32 129)
84  store <16 x i8> %r, <16 x i8> * %ptr, align 16
85  ret void
86}
87
88define void @clti_u_b(<16 x i8> * %ptr) {
89entry:
90  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
91  %r = call <16 x i8> @llvm.mips.clti.u.b(<16 x i8> %a, i32 163)
92  store <16 x i8> %r, <16 x i8> * %ptr, align 16
93  ret void
94}
95
96define void @ldi_b(<16 x i8> * %ptr) {
97entry:
98  %r = call <16 x i8> @llvm.mips.ldi.b(i32 1025)
99  store <16 x i8> %r, <16 x i8> * %ptr, align 16
100  ret void
101}
102
103define void @maxi_s_b(<16 x i8> * %ptr) {
104entry:
105  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
106  %r = call <16 x i8> @llvm.mips.maxi.s.b(<16 x i8> %a, i32 163)
107  store <16 x i8> %r, <16 x i8> * %ptr, align 16
108  ret void
109}
110
111define void @maxi_u_b(<16 x i8> * %ptr) {
112entry:
113  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
114  %r = call <16 x i8> @llvm.mips.maxi.u.b(<16 x i8> %a, i32 163)
115  store <16 x i8> %r, <16 x i8> * %ptr, align 16
116  ret void
117}
118
119define void @mini_s_b(<16 x i8> * %ptr) {
120entry:
121  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
122  %r = call <16 x i8> @llvm.mips.mini.s.b(<16 x i8> %a, i32 163)
123  store <16 x i8> %r, <16 x i8> * %ptr, align 16
124  ret void
125}
126
127define void @mini_u_b(<16 x i8> * %ptr) {
128entry:
129  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
130  %r = call <16 x i8> @llvm.mips.mini.u.b(<16 x i8> %a, i32 163)
131  store <16 x i8> %r, <16 x i8> * %ptr, align 16
132  ret void
133}
134
135define void @nori_b(<16 x i8> * %ptr) {
136entry:
137  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
138  %r = call <16 x i8> @llvm.mips.nori.b(<16 x i8> %a, i32 63)
139  store <16 x i8> %r, <16 x i8> * %ptr, align 16
140  ret void
141}
142
143define void @ori_b(<16 x i8> * %ptr) {
144entry:
145  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
146  %r = call <16 x i8> @llvm.mips.ori.b(<16 x i8> %a, i32 63)
147  store <16 x i8> %r, <16 x i8> * %ptr, align 16
148  ret void
149}
150
151define void @sldi_b(<16 x i8> * %ptr) {
152entry:
153  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
154  %r = call <16 x i8> @llvm.mips.sldi.b(<16 x i8> %a, <16 x i8> %a, i32 7)
155  store <16 x i8> %r, <16 x i8> * %ptr, align 16
156  ret void
157}
158
159define void @slli_b(<16 x i8> * %ptr) {
160entry:
161  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
162  %r = call <16 x i8> @llvm.mips.slli.b(<16 x i8> %a, i32 65)
163  store <16 x i8> %r, <16 x i8> * %ptr, align 16
164  ret void
165}
166
167define void @splati_b(<16 x i8> * %ptr) {
168entry:
169  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
170  %r = call <16 x i8> @llvm.mips.splati.b(<16 x i8> %a, i32 65)
171  store <16 x i8> %r, <16 x i8> * %ptr, align 16
172  ret void
173}
174
175define void @srai_b(<16 x i8> * %ptr) {
176entry:
177  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
178  %r = call <16 x i8> @llvm.mips.srai.b(<16 x i8> %a, i32 65)
179  store <16 x i8> %r, <16 x i8> * %ptr, align 16
180  ret void
181}
182
183define void @srari_b(<16 x i8> * %ptr) {
184entry:
185  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
186  %r = call <16 x i8> @llvm.mips.srari.b(<16 x i8> %a, i32 65)
187  store <16 x i8> %r, <16 x i8> * %ptr, align 16
188  ret void
189}
190
191define void @srli_b(<16 x i8> * %ptr) {
192entry:
193  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
194  %r = call <16 x i8> @llvm.mips.srli.b(<16 x i8> %a, i32 65)
195  store <16 x i8> %r, <16 x i8> * %ptr, align 16
196  ret void
197}
198
199define void @srlri_b(<16 x i8> * %ptr) {
200entry:
201  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
202  %r = call <16 x i8> @llvm.mips.srlri.b(<16 x i8> %a, i32 65)
203  store <16 x i8> %r, <16 x i8> * %ptr, align 16
204  ret void
205}
206
207define void @addvi_w(<4 x i32> * %ptr) {
208entry:
209  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
210  %r = call <4 x i32> @llvm.mips.addvi.w(<4 x i32> %a, i32 63)
211  store <4 x i32> %r, <4 x i32> * %ptr, align 16
212  ret void
213}
214
215define void @bclri_w(<4 x i32> * %ptr) {
216entry:
217  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
218  %r = call <4 x i32> @llvm.mips.bclri.w(<4 x i32> %a, i32 63)
219  store <4 x i32> %r, <4 x i32> * %ptr, align 16
220  ret void
221}
222
223define void @binsli_w(<4 x i32> * %ptr) {
224entry:
225  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
226  %r = call <4 x i32> @llvm.mips.binsli.w(<4 x i32> %a, <4 x i32> %a, i32 63)
227  store <4 x i32> %r, <4 x i32> * %ptr, align 16
228  ret void
229}
230
231define void @binsri_w(<4 x i32> * %ptr) {
232entry:
233  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
234  %r = call <4 x i32> @llvm.mips.binsri.w(<4 x i32> %a, <4 x i32> %a, i32 63)
235  store <4 x i32> %r, <4 x i32> * %ptr, align 16
236  ret void
237}
238
239define void @bnegi_w(<4 x i32> * %ptr) {
240entry:
241  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
242  %r = call <4 x i32> @llvm.mips.bnegi.w(<4 x i32> %a, i32 63)
243  store <4 x i32> %r, <4 x i32> * %ptr, align 16
244  ret void
245}
246
247define void @bseti_w(<4 x i32> * %ptr) {
248entry:
249  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
250  %r = call <4 x i32> @llvm.mips.bseti.w(<4 x i32> %a, i32 63)
251  store <4 x i32> %r, <4 x i32> * %ptr, align 16
252  ret void
253}
254
255define void @clei_s_w(<4 x i32> * %ptr) {
256entry:
257  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
258  %r = call <4 x i32> @llvm.mips.clei.s.w(<4 x i32> %a, i32 63)
259  store <4 x i32> %r, <4 x i32> * %ptr, align 16
260  ret void
261}
262
263define void @clei_u_w(<4 x i32> * %ptr) {
264entry:
265  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
266  %r = call <4 x i32> @llvm.mips.clei.u.w(<4 x i32> %a, i32 63)
267  store <4 x i32> %r, <4 x i32> * %ptr, align 16
268  ret void
269}
270
271define void @clti_s_w(<4 x i32> * %ptr) {
272entry:
273  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
274  %r = call <4 x i32> @llvm.mips.clti.s.w(<4 x i32> %a, i32 63)
275  store <4 x i32> %r, <4 x i32> * %ptr, align 16
276  ret void
277}
278
279define void @clti_u_w(<4 x i32> * %ptr) {
280entry:
281  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
282  %r = call <4 x i32> @llvm.mips.clti.u.w(<4 x i32> %a, i32 63)
283  store <4 x i32> %r, <4 x i32> * %ptr, align 16
284  ret void
285}
286
287define void @maxi_s_w(<4 x i32> * %ptr) {
288entry:
289  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
290  %r = call <4 x i32> @llvm.mips.maxi.s.w(<4 x i32> %a, i32 63)
291  store <4 x i32> %r, <4 x i32> * %ptr, align 16
292  ret void
293}
294
295define void @maxi_u_w(<4 x i32> * %ptr) {
296entry:
297  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
298  %r = call <4 x i32> @llvm.mips.maxi.u.w(<4 x i32> %a, i32 63)
299  store <4 x i32> %r, <4 x i32> * %ptr, align 16
300  ret void
301}
302
303define void @mini_s_w(<4 x i32> * %ptr) {
304entry:
305  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
306  %r = call <4 x i32> @llvm.mips.mini.s.w(<4 x i32> %a, i32 63)
307  store <4 x i32> %r, <4 x i32> * %ptr, align 16
308  ret void
309}
310
311define void @mini_u_w(<4 x i32> * %ptr) {
312entry:
313  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
314  %r = call <4 x i32> @llvm.mips.mini.u.w(<4 x i32> %a, i32 63)
315  store <4 x i32> %r, <4 x i32> * %ptr, align 16
316  ret void
317}
318
319define void @ldi_w(<4 x i32> * %ptr) {
320entry:
321  %r = call <4 x i32> @llvm.mips.ldi.w(i32 1024)
322  store <4 x i32> %r, <4 x i32> * %ptr, align 16
323  ret void
324}
325
326define void @sldi_w(<4 x i32> * %ptr) {
327entry:
328  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
329  %r = call <4 x i32> @llvm.mips.sldi.w(<4 x i32> %a, <4 x i32> %a, i32 63)
330  store <4 x i32> %r, <4 x i32> * %ptr, align 16
331  ret void
332}
333
334define void @slli_w(<4 x i32> * %ptr) {
335entry:
336  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
337  %r = call <4 x i32> @llvm.mips.slli.w(<4 x i32> %a, i32 65)
338  store <4 x i32> %r, <4 x i32> * %ptr, align 16
339  ret void
340}
341
342define void @splati_w(<4 x i32> * %ptr) {
343entry:
344  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
345  %r = call <4 x i32> @llvm.mips.splati.w(<4 x i32> %a, i32 65)
346  store <4 x i32> %r, <4 x i32> * %ptr, align 16
347  ret void
348}
349
350define void @srai_w(<4 x i32> * %ptr) {
351entry:
352  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
353  %r = call <4 x i32> @llvm.mips.srai.w(<4 x i32> %a, i32 65)
354  store <4 x i32> %r, <4 x i32> * %ptr, align 16
355  ret void
356}
357
358define void @srari_w(<4 x i32> * %ptr) {
359entry:
360  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
361  %r = call <4 x i32> @llvm.mips.srari.w(<4 x i32> %a, i32 65)
362  store <4 x i32> %r, <4 x i32> * %ptr, align 16
363  ret void
364}
365
366define void @srli_w(<4 x i32> * %ptr) {
367entry:
368  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
369  %r = call <4 x i32> @llvm.mips.srli.w(<4 x i32> %a, i32 65)
370  store <4 x i32> %r, <4 x i32> * %ptr, align 16
371  ret void
372}
373
374define void @srlri_w(<4 x i32> * %ptr) {
375entry:
376  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
377  %r = call <4 x i32> @llvm.mips.srlri.w(<4 x i32> %a, i32 65)
378  store <4 x i32> %r, <4 x i32> * %ptr, align 16
379  ret void
380}
381
382define void @addvi_h(<8 x i16> * %ptr) {
383entry:
384  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
385  %r = call <8 x i16> @llvm.mips.addvi.h(<8 x i16> %a, i32 65)
386  store <8 x i16> %r, <8 x i16> * %ptr, align 16
387  ret void
388}
389
390define void @bclri_h(<8 x i16> * %ptr) {
391entry:
392  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
393  %r = call <8 x i16> @llvm.mips.bclri.h(<8 x i16> %a, i32 16)
394  store <8 x i16> %r, <8 x i16> * %ptr, align 16
395  ret void
396}
397
398define void @binsli_h(<8 x i16> * %ptr) {
399entry:
400  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
401  %r = call <8 x i16> @llvm.mips.binsli.h(<8 x i16> %a, <8 x i16> %a, i32 17)
402  store <8 x i16> %r, <8 x i16> * %ptr, align 16
403  ret void
404}
405
406define void @binsri_h(<8 x i16> * %ptr) {
407entry:
408  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
409  %r = call <8 x i16> @llvm.mips.binsri.h(<8 x i16> %a, <8 x i16> %a, i32 19)
410  store <8 x i16> %r, <8 x i16> * %ptr, align 16
411  ret void
412}
413
414define void @bnegi_h(<8 x i16> * %ptr) {
415entry:
416  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
417  %r = call <8 x i16> @llvm.mips.bnegi.h(<8 x i16> %a, i32 19)
418  store <8 x i16> %r, <8 x i16> * %ptr, align 16
419  ret void
420}
421
422define void @bseti_h(<8 x i16> * %ptr) {
423entry:
424  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
425  %r = call <8 x i16> @llvm.mips.bseti.h(<8 x i16> %a, i32 19)
426  store <8 x i16> %r, <8 x i16> * %ptr, align 16
427  ret void
428}
429
430define void @clei_s_h(<8 x i16> * %ptr) {
431entry:
432  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
433  %r = call <8 x i16> @llvm.mips.clei.s.h(<8 x i16> %a, i32 63)
434  store <8 x i16> %r, <8 x i16> * %ptr, align 16
435  ret void
436}
437
438define void @clei_u_h(<8 x i16> * %ptr) {
439entry:
440  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
441  %r = call <8 x i16> @llvm.mips.clei.u.h(<8 x i16> %a, i32 130)
442  store <8 x i16> %r, <8 x i16> * %ptr, align 16
443  ret void
444}
445
446define void @clti_s_h(<8 x i16> * %ptr) {
447entry:
448  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
449  %r = call <8 x i16> @llvm.mips.clti.s.h(<8 x i16> %a, i32 63)
450  store <8 x i16> %r, <8 x i16> * %ptr, align 16
451  ret void
452}
453
454define void @clti_u_h(<8 x i16> * %ptr) {
455entry:
456  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
457  %r = call <8 x i16> @llvm.mips.clti.u.h(<8 x i16> %a, i32 63)
458  store <8 x i16> %r, <8 x i16> * %ptr, align 16
459  ret void
460}
461
462define void @maxi_s_h(<8 x i16> * %ptr) {
463entry:
464  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
465  %r = call <8 x i16> @llvm.mips.maxi.s.h(<8 x i16> %a, i32 63)
466  store <8 x i16> %r, <8 x i16> * %ptr, align 16
467  ret void
468}
469
470define void @maxi_u_h(<8 x i16> * %ptr) {
471entry:
472  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
473  %r = call <8 x i16> @llvm.mips.maxi.u.h(<8 x i16> %a, i32 130)
474  store <8 x i16> %r, <8 x i16> * %ptr, align 16
475  ret void
476}
477
478define void @mini_s_h(<8 x i16> * %ptr) {
479entry:
480  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
481  %r = call <8 x i16> @llvm.mips.mini.s.h(<8 x i16> %a, i32 63)
482  store <8 x i16> %r, <8 x i16> * %ptr, align 16
483  ret void
484}
485
486define void @mini_u_h(<8 x i16> * %ptr) {
487entry:
488  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
489  %r = call <8 x i16> @llvm.mips.mini.u.h(<8 x i16> %a, i32 130)
490  store <8 x i16> %r, <8 x i16> * %ptr, align 16
491  ret void
492}
493
494define void @ldi_h(<8 x i16> * %ptr) {
495entry:
496  %r = call <8 x i16> @llvm.mips.ldi.h(i32 1024)
497  store <8 x i16> %r, <8 x i16> * %ptr, align 16
498  ret void
499}
500
501define void @sldi_h(<8 x i16> * %ptr) {
502entry:
503  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
504  %r = call <8 x i16> @llvm.mips.sldi.h(<8 x i16> %a, <8 x i16> %a, i32 65)
505  store <8 x i16> %r, <8 x i16> * %ptr, align 16
506  ret void
507}
508
509define void @slli_h(<8 x i16> * %ptr) {
510entry:
511  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
512  %r = call <8 x i16> @llvm.mips.slli.h(<8 x i16> %a, i32 65)
513  store <8 x i16> %r, <8 x i16> * %ptr, align 16
514  ret void
515}
516
517define void @splati_h(<8 x i16> * %ptr) {
518entry:
519  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
520  %r = call <8 x i16> @llvm.mips.splati.h(<8 x i16> %a, i32 65)
521  store <8 x i16> %r, <8 x i16> * %ptr, align 16
522  ret void
523}
524
525define void @srai_h(<8 x i16> * %ptr) {
526entry:
527  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
528  %r = call <8 x i16> @llvm.mips.srai.h(<8 x i16> %a, i32 65)
529  store <8 x i16> %r, <8 x i16> * %ptr, align 16
530  ret void
531}
532
533define void @srari_h(<8 x i16> * %ptr) {
534entry:
535  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
536  %r = call <8 x i16> @llvm.mips.srari.h(<8 x i16> %a, i32 65)
537  store <8 x i16> %r, <8 x i16> * %ptr, align 16
538  ret void
539}
540
541define void @srli_h(<8 x i16> * %ptr) {
542entry:
543  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
544  %r = call <8 x i16> @llvm.mips.srli.h(<8 x i16> %a, i32 65)
545  store <8 x i16> %r, <8 x i16> * %ptr, align 16
546  ret void
547}
548
549define void @srlri_h(<8 x i16> * %ptr) {
550entry:
551  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
552  %r = call <8 x i16> @llvm.mips.srlri.h(<8 x i16> %a, i32 65)
553  store <8 x i16> %r, <8 x i16> * %ptr, align 16
554  ret void
555}
556
557define i32 @copy_s_b(<16 x i8> * %ptr) {
558entry:
559  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
560  %r = call i32 @llvm.mips.copy.s.b(<16 x i8> %a, i32 17)
561  ret i32 %r
562}
563
564
565define i32 @copy_s_h(<8 x i16> * %ptr) {
566entry:
567  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
568  %r = call i32 @llvm.mips.copy.s.h(<8 x i16> %a, i32 9)
569  ret i32 %r
570}
571
572
573define i32 @copy_s_w(<4 x i32> * %ptr) {
574entry:
575  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
576  %r = call i32 @llvm.mips.copy.s.w(<4 x i32> %a, i32 5)
577  ret i32 %r
578}
579
580
581define i32 @copy_u_b(<16 x i8> * %ptr) {
582entry:
583  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
584  %r = call i32 @llvm.mips.copy.u.b(<16 x i8> %a, i32 16)
585  ret i32 %r
586}
587
588
589define i32 @copy_u_h(<8 x i16> * %ptr) {
590entry:
591  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
592  %r = call i32 @llvm.mips.copy.u.h(<8 x i16> %a, i32 9)
593  ret i32 %r
594}
595
596
597define i32 @copy_u_w(<4 x i32> * %ptr) {
598entry:
599  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
600  %r = call i32 @llvm.mips.copy.u.w(<4 x i32> %a, i32 5)
601  ret i32 %r
602}
603
604define i64 @copy_s_d(<2 x i64> * %ptr) {
605entry:  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
606  %r = call i64 @llvm.mips.copy.s.d(<2 x i64> %a, i32 3)
607  ret i64 %r
608}
609
610define i64 @copy_u_d(<2 x i64> * %ptr) {
611entry:  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
612  %r = call i64 @llvm.mips.copy.u.d(<2 x i64> %a, i32 3)
613  ret i64 %r
614}
615
616define void @addvi_d(<2 x i64> * %ptr) {
617entry:
618  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
619  %r = call <2 x i64> @llvm.mips.addvi.d(<2 x i64> %a, i32 65)
620  store <2 x i64> %r, <2 x i64> * %ptr, align 16
621  ret void
622}
623
624define void @bclri_d(<2 x i64> * %ptr) {
625entry:
626  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
627  %r = call <2 x i64> @llvm.mips.bclri.d(<2 x i64> %a, i32 64)
628  store <2 x i64> %r, <2 x i64> * %ptr, align 16
629  ret void
630}
631
632define void @binsli_d(<2 x i64> * %ptr) {
633entry:
634  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
635  %r = call <2 x i64> @llvm.mips.binsli.d(<2 x i64> %a, <2 x i64> %a, i32 65)
636  store <2 x i64> %r, <2 x i64> * %ptr, align 16
637  ret void
638}
639
640define void @binsri_d(<2 x i64> * %ptr) {
641entry:
642  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
643  %r = call <2 x i64> @llvm.mips.binsri.d(<2 x i64> %a, <2 x i64> %a, i32 65)
644  store <2 x i64> %r, <2 x i64> * %ptr, align 16
645  ret void
646}
647
648define void @bnegi_d(<2 x i64> * %ptr) {
649entry:
650  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
651  %r = call <2 x i64> @llvm.mips.bnegi.d(<2 x i64> %a, i32 65)
652  store <2 x i64> %r, <2 x i64> * %ptr, align 16
653  ret void
654}
655
656define void @bseti_d(<2 x i64> * %ptr) {
657entry:
658  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
659  %r = call <2 x i64> @llvm.mips.bseti.d(<2 x i64> %a, i32 65)
660  store <2 x i64> %r, <2 x i64> * %ptr, align 16
661  ret void
662}
663
664define void @clei_s_d(<2 x i64> * %ptr) {
665entry:
666  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
667  %r = call <2 x i64> @llvm.mips.clei.s.d(<2 x i64> %a, i32 63)
668  store <2 x i64> %r, <2 x i64> * %ptr, align 16
669  ret void
670}
671
672define void @clei_u_d(<2 x i64> * %ptr) {
673entry:
674  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
675  %r = call <2 x i64> @llvm.mips.clei.u.d(<2 x i64> %a, i32 63)
676  store <2 x i64> %r, <2 x i64> * %ptr, align 16
677  ret void
678}
679
680define void @clti_s_d(<2 x i64> * %ptr) {
681entry:
682  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
683  %r = call <2 x i64> @llvm.mips.clti.s.d(<2 x i64> %a, i32 63)
684  store <2 x i64> %r, <2 x i64> * %ptr, align 16
685  ret void
686}
687
688define void @clti_u_d(<2 x i64> * %ptr) {
689entry:
690  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
691  %r = call <2 x i64> @llvm.mips.clti.u.d(<2 x i64> %a, i32 63)
692  store <2 x i64> %r, <2 x i64> * %ptr, align 16
693  ret void
694}
695
696define void @ldi_d(<2 x i64> * %ptr) {
697entry:
698  %r = call <2 x i64> @llvm.mips.ldi.d(i32 1024)
699  store <2 x i64> %r, <2 x i64> * %ptr, align 16
700  ret void
701}
702
703define void @maxi_s_d(<2 x i64> * %ptr) {
704entry:
705  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
706  %r = call <2 x i64> @llvm.mips.maxi.s.d(<2 x i64> %a, i32 63)
707  store <2 x i64> %r, <2 x i64> * %ptr, align 16
708  ret void
709}
710
711define void @maxi_u_d(<2 x i64> * %ptr) {
712entry:
713  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
714  %r = call <2 x i64> @llvm.mips.maxi.u.d(<2 x i64> %a, i32 63)
715  store <2 x i64> %r, <2 x i64> * %ptr, align 16
716  ret void
717}
718
719define void @mini_s_d(<2 x i64> * %ptr) {
720entry:
721  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
722  %r = call <2 x i64> @llvm.mips.mini.s.d(<2 x i64> %a, i32 63)
723  store <2 x i64> %r, <2 x i64> * %ptr, align 16
724  ret void
725}
726
727define void @mini_u_d(<2 x i64> * %ptr) {
728entry:
729  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
730  %r = call <2 x i64> @llvm.mips.mini.u.d(<2 x i64> %a, i32 63)
731  store <2 x i64> %r, <2 x i64> * %ptr, align 16
732  ret void
733}
734
735define void @sldi_d(<2 x i64> * %ptr) {
736entry:
737  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
738  %r = call <2 x i64> @llvm.mips.sldi.d(<2 x i64> %a, <2 x i64> %a, i32 1)
739  store <2 x i64> %r, <2 x i64> * %ptr, align 16
740  ret void
741}
742
743define void @slli_d(<2 x i64> * %ptr) {
744entry:
745  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
746  %r = call <2 x i64> @llvm.mips.slli.d(<2 x i64> %a, i32 65)
747  store <2 x i64> %r, <2 x i64> * %ptr, align 16
748  ret void
749}
750
751define void @srai_d(<2 x i64> * %ptr) {
752entry:
753  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
754  %r = call <2 x i64> @llvm.mips.srai.d(<2 x i64> %a, i32 65)
755  store <2 x i64> %r, <2 x i64> * %ptr, align 16
756  ret void
757}
758
759define void @srari_d(<2 x i64> * %ptr) {
760entry:
761  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
762  %r = call <2 x i64> @llvm.mips.srari.d(<2 x i64> %a, i32 65)
763  store <2 x i64> %r, <2 x i64> * %ptr, align 16
764  ret void
765}
766
767define void @srli_d(<2 x i64> * %ptr) {
768entry:
769  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
770  %r = call <2 x i64> @llvm.mips.srli.d(<2 x i64> %a, i32 65)
771  store <2 x i64> %r, <2 x i64> * %ptr, align 16
772  ret void
773}
774
775define void @srlri_d(<2 x i64> * %ptr) {
776entry:
777  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
778  %r = call <2 x i64> @llvm.mips.srlri.d(<2 x i64> %a, i32 65)
779  store <2 x i64> %r, <2 x i64> * %ptr, align 16
780  ret void
781}; Negative numbers
782
783
784define void @neg_addvi_b(<16 x i8> * %ptr) {
785entry:
786  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
787  %r = call <16 x i8> @llvm.mips.addvi.b(<16 x i8> %a, i32 -25)
788  store <16 x i8> %r, <16 x i8> * %ptr, align 16
789  ret void
790}
791
792define void @neg_andi_b(<16 x i8> * %ptr) {
793entry:
794  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
795  %r = call <16 x i8> @llvm.mips.andi.b(<16 x i8> %a, i32 -25)
796  store <16 x i8> %r, <16 x i8> * %ptr, align 16
797  ret void
798}
799
800define void @neg_bclri_b(<16 x i8> * %ptr) {
801entry:
802  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
803  %r = call <16 x i8> @llvm.mips.bclri.b(<16 x i8> %a, i32 -3)
804  store <16 x i8> %r, <16 x i8> * %ptr, align 16
805  ret void
806}
807
808define void @neg_binsli_b(<16 x i8> * %ptr) {
809entry:
810  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
811  %r = call <16 x i8> @llvm.mips.binsli.b(<16 x i8> %a, <16 x i8> %a, i32 -3)
812  store <16 x i8> %r, <16 x i8> * %ptr, align 16
813  ret void
814}
815
816define void @neg_binsri_b(<16 x i8> * %ptr) {
817entry:
818  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
819  %r = call <16 x i8> @llvm.mips.binsri.b(<16 x i8> %a, <16 x i8> %a, i32 5)
820  store <16 x i8> %r, <16 x i8> * %ptr, align 16
821  ret void
822}
823
824define void @neg_bmnzi_b(<16 x i8> * %ptr) {
825entry:
826  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
827  %r = call <16 x i8> @llvm.mips.bmnzi.b(<16 x i8> %a, <16 x i8> %a, i32 -25)
828  store <16 x i8> %r, <16 x i8> * %ptr, align 16
829  ret void
830}
831
832define void @neg_bmzi_b(<16 x i8> * %ptr) {
833entry:
834  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
835  %r = call <16 x i8> @llvm.mips.bmzi.b(<16 x i8> %a, <16 x i8> %a, i32 -25)
836  store <16 x i8> %r, <16 x i8> * %ptr, align 16
837  ret void
838}
839
840define void @neg_bnegi_b(<16 x i8> * %ptr) {
841entry:
842  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
843  %r = call <16 x i8> @llvm.mips.bnegi.b(<16 x i8> %a, i32 6)
844  store <16 x i8> %r, <16 x i8> * %ptr, align 16
845  ret void
846}
847
848define void @neg_bseli_b(<16 x i8> * %ptr) {
849entry:
850  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
851  %r = call <16 x i8> @llvm.mips.bseli.b(<16 x i8> %a, <16 x i8> %a, i32 -25)
852  store <16 x i8> %r, <16 x i8> * %ptr, align 16
853  ret void
854}
855
856define void @neg_bseti_b(<16 x i8> * %ptr) {
857entry:
858  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
859  %r = call <16 x i8> @llvm.mips.bseti.b(<16 x i8> %a, i32 -5)
860  store <16 x i8> %r, <16 x i8> * %ptr, align 16
861  ret void
862}
863
864define void @neg_clei_s_b(<16 x i8> * %ptr) {
865entry:
866  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
867  %r = call <16 x i8> @llvm.mips.clei.s.b(<16 x i8> %a, i32 -120)
868  store <16 x i8> %r, <16 x i8> * %ptr, align 16
869  ret void
870}
871
872define void @neg_clei_u_b(<16 x i8> * %ptr) {
873entry:
874  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
875  %r = call <16 x i8> @llvm.mips.clei.u.b(<16 x i8> %a, i32 -25)
876  store <16 x i8> %r, <16 x i8> * %ptr, align 16
877  ret void
878}
879
880define void @neg_clti_s_b(<16 x i8> * %ptr) {
881entry:
882  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
883  %r = call <16 x i8> @llvm.mips.clti.s.b(<16 x i8> %a, i32 -35)
884  store <16 x i8> %r, <16 x i8> * %ptr, align 16
885  ret void
886}
887
888define void @neg_clti_u_b(<16 x i8> * %ptr) {
889entry:
890  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
891  %r = call <16 x i8> @llvm.mips.clti.u.b(<16 x i8> %a, i32 -25)
892  store <16 x i8> %r, <16 x i8> * %ptr, align 16
893  ret void
894}
895
896define void @neg_ldi_b(<16 x i8> * %ptr) {
897entry:
898  %r = call <16 x i8> @llvm.mips.ldi.b(i32 -3)
899  store <16 x i8> %r, <16 x i8> * %ptr, align 16
900  ret void
901}
902
903define void @neg_maxi_s_b(<16 x i8> * %ptr) {
904entry:
905  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
906  %r = call <16 x i8> @llvm.mips.maxi.s.b(<16 x i8> %a, i32 2)
907  store <16 x i8> %r, <16 x i8> * %ptr, align 16
908  ret void
909}
910
911define void @neg_maxi_u_b(<16 x i8> * %ptr) {
912entry:
913  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
914  %r = call <16 x i8> @llvm.mips.maxi.u.b(<16 x i8> %a, i32 2)
915  store <16 x i8> %r, <16 x i8> * %ptr, align 16
916  ret void
917}
918
919define void @neg_mini_s_b(<16 x i8> * %ptr) {
920entry:
921  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
922  %r = call <16 x i8> @llvm.mips.mini.s.b(<16 x i8> %a, i32 2)
923  store <16 x i8> %r, <16 x i8> * %ptr, align 16
924  ret void
925}
926
927define void @neg_mini_u_b(<16 x i8> * %ptr) {
928entry:
929  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
930  %r = call <16 x i8> @llvm.mips.mini.u.b(<16 x i8> %a, i32 2)
931  store <16 x i8> %r, <16 x i8> * %ptr, align 16
932  ret void
933}
934
935define void @neg_nori_b(<16 x i8> * %ptr) {
936entry:
937  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
938  %r = call <16 x i8> @llvm.mips.nori.b(<16 x i8> %a, i32 -25)
939  store <16 x i8> %r, <16 x i8> * %ptr, align 16
940  ret void
941}
942
943define void @neg_ori_b(<16 x i8> * %ptr) {
944entry:
945  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
946  %r = call <16 x i8> @llvm.mips.ori.b(<16 x i8> %a, i32 -25)
947  store <16 x i8> %r, <16 x i8> * %ptr, align 16
948  ret void
949}
950
951define void @neg_sldi_b(<16 x i8> * %ptr) {
952entry:
953  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
954  %r = call <16 x i8> @llvm.mips.sldi.b(<16 x i8> %a, <16 x i8> %a, i32 -7)
955  store <16 x i8> %r, <16 x i8> * %ptr, align 16
956  ret void
957}
958
959define void @neg_slli_b(<16 x i8> * %ptr) {
960entry:
961  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
962  %r = call <16 x i8> @llvm.mips.slli.b(<16 x i8> %a, i32 -3)
963  store <16 x i8> %r, <16 x i8> * %ptr, align 16
964  ret void
965}
966
967define void @neg_splati_b(<16 x i8> * %ptr) {
968entry:
969  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
970  %r = call <16 x i8> @llvm.mips.splati.b(<16 x i8> %a, i32 -3)
971  store <16 x i8> %r, <16 x i8> * %ptr, align 16
972  ret void
973}
974
975define void @neg_srai_b(<16 x i8> * %ptr) {
976entry:
977  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
978  %r = call <16 x i8> @llvm.mips.srai.b(<16 x i8> %a, i32 -3)
979  store <16 x i8> %r, <16 x i8> * %ptr, align 16
980  ret void
981}
982
983define void @neg_srari_b(<16 x i8> * %ptr) {
984entry:
985  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
986  %r = call <16 x i8> @llvm.mips.srari.b(<16 x i8> %a, i32 -3)
987  store <16 x i8> %r, <16 x i8> * %ptr, align 16
988  ret void
989}
990
991define void @neg_srli_b(<16 x i8> * %ptr) {
992entry:
993  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
994  %r = call <16 x i8> @llvm.mips.srli.b(<16 x i8> %a, i32 -3)
995  store <16 x i8> %r, <16 x i8> * %ptr, align 16
996  ret void
997}
998
999define void @neg_srlri_b(<16 x i8> * %ptr) {
1000entry:
1001  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
1002  %r = call <16 x i8> @llvm.mips.srlri.b(<16 x i8> %a, i32 -3)
1003  store <16 x i8> %r, <16 x i8> * %ptr, align 16
1004  ret void
1005}
1006
1007define void @neg_addvi_w(<4 x i32> * %ptr) {
1008entry:
1009  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1010  %r = call <4 x i32> @llvm.mips.addvi.w(<4 x i32> %a, i32 -25)
1011  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1012  ret void
1013}
1014
1015define void @neg_bclri_w(<4 x i32> * %ptr) {
1016entry:
1017  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1018  %r = call <4 x i32> @llvm.mips.bclri.w(<4 x i32> %a, i32 -25)
1019  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1020  ret void
1021}
1022
1023define void @neg_binsli_w(<4 x i32> * %ptr) {
1024entry:
1025  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1026  %r = call <4 x i32> @llvm.mips.binsli.w(<4 x i32> %a, <4 x i32> %a, i32 -25)
1027  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1028  ret void
1029}
1030
1031define void @neg_binsri_w(<4 x i32> * %ptr) {
1032entry:
1033  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1034  %r = call <4 x i32> @llvm.mips.binsri.w(<4 x i32> %a, <4 x i32> %a, i32 -25)
1035  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1036  ret void
1037}
1038
1039define void @neg_bnegi_w(<4 x i32> * %ptr) {
1040entry:
1041  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1042  %r = call <4 x i32> @llvm.mips.bnegi.w(<4 x i32> %a, i32 -25)
1043  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1044  ret void
1045}
1046
1047define void @neg_bseti_w(<4 x i32> * %ptr) {
1048entry:
1049  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1050  %r = call <4 x i32> @llvm.mips.bseti.w(<4 x i32> %a, i32 -25)
1051  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1052  ret void
1053}
1054
1055define void @neg_clei_s_w(<4 x i32> * %ptr) {
1056entry:
1057  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1058  %r = call <4 x i32> @llvm.mips.clei.s.w(<4 x i32> %a, i32 -140)
1059  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1060  ret void
1061}
1062
1063define void @neg_clei_u_w(<4 x i32> * %ptr) {
1064entry:
1065  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1066  %r = call <4 x i32> @llvm.mips.clei.u.w(<4 x i32> %a, i32 -25)
1067  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1068  ret void
1069}
1070
1071define void @neg_clti_s_w(<4 x i32> * %ptr) {
1072entry:
1073  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1074  %r = call <4 x i32> @llvm.mips.clti.s.w(<4 x i32> %a, i32 -150)
1075  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1076  ret void
1077}
1078
1079define void @neg_clti_u_w(<4 x i32> * %ptr) {
1080entry:
1081  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1082  %r = call <4 x i32> @llvm.mips.clti.u.w(<4 x i32> %a, i32 -25)
1083  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1084  ret void
1085}
1086
1087define void @neg_maxi_s_w(<4 x i32> * %ptr) {
1088entry:
1089  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1090  %r = call <4 x i32> @llvm.mips.maxi.s.w(<4 x i32> %a, i32 -200)
1091  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1092  ret void
1093}
1094
1095define void @neg_maxi_u_w(<4 x i32> * %ptr) {
1096entry:
1097  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1098  %r = call <4 x i32> @llvm.mips.maxi.u.w(<4 x i32> %a, i32 -200)
1099  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1100  ret void
1101}
1102
1103define void @neg_mini_s_w(<4 x i32> * %ptr) {
1104entry:
1105  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1106  %r = call <4 x i32> @llvm.mips.mini.s.w(<4 x i32> %a, i32 -200)
1107  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1108  ret void
1109}
1110
1111define void @neg_mini_u_w(<4 x i32> * %ptr) {
1112entry:
1113  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1114  %r = call <4 x i32> @llvm.mips.mini.u.w(<4 x i32> %a, i32 -200)
1115  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1116  ret void
1117}
1118
1119define void @neg_ldi_w(<4 x i32> * %ptr) {
1120entry:
1121  %r = call <4 x i32> @llvm.mips.ldi.w(i32 -300)
1122  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1123  ret void
1124}
1125
1126define void @neg_sldi_w(<4 x i32> * %ptr) {
1127entry:
1128  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1129  %r = call <4 x i32> @llvm.mips.sldi.w(<4 x i32> %a, <4 x i32> %a, i32 -20)
1130  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1131  ret void
1132}
1133
1134define void @neg_slli_w(<4 x i32> * %ptr) {
1135entry:
1136  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1137  %r = call <4 x i32> @llvm.mips.slli.w(<4 x i32> %a, i32 -3)
1138  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1139  ret void
1140}
1141
1142define void @neg_splati_w(<4 x i32> * %ptr) {
1143entry:
1144  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1145  %r = call <4 x i32> @llvm.mips.splati.w(<4 x i32> %a, i32 -3)
1146  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1147  ret void
1148}
1149
1150define void @neg_srai_w(<4 x i32> * %ptr) {
1151entry:
1152  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1153  %r = call <4 x i32> @llvm.mips.srai.w(<4 x i32> %a, i32 -3)
1154  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1155  ret void
1156}
1157
1158define void @neg_srari_w(<4 x i32> * %ptr) {
1159entry:
1160  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1161  %r = call <4 x i32> @llvm.mips.srari.w(<4 x i32> %a, i32 -3)
1162  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1163  ret void
1164}
1165
1166define void @neg_srli_w(<4 x i32> * %ptr) {
1167entry:
1168  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1169  %r = call <4 x i32> @llvm.mips.srli.w(<4 x i32> %a, i32 -3)
1170  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1171  ret void
1172}
1173
1174define void @neg_srlri_w(<4 x i32> * %ptr) {
1175entry:
1176  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1177  %r = call <4 x i32> @llvm.mips.srlri.w(<4 x i32> %a, i32 -3)
1178  store <4 x i32> %r, <4 x i32> * %ptr, align 16
1179  ret void
1180}
1181
1182define void @neg_addvi_h(<8 x i16> * %ptr) {
1183entry:
1184  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1185  %r = call <8 x i16> @llvm.mips.addvi.h(<8 x i16> %a, i32 -25)
1186  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1187  ret void
1188}
1189
1190define void @neg_bclri_h(<8 x i16> * %ptr) {
1191entry:
1192  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1193  %r = call <8 x i16> @llvm.mips.bclri.h(<8 x i16> %a, i32 -8)
1194  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1195  ret void
1196}
1197
1198define void @neg_binsli_h(<8 x i16> * %ptr) {
1199entry:
1200  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1201  %r = call <8 x i16> @llvm.mips.binsli.h(<8 x i16> %a, <8 x i16> %a, i32 -8)
1202  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1203  ret void
1204}
1205
1206define void @neg_binsri_h(<8 x i16> * %ptr) {
1207entry:
1208  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1209  %r = call <8 x i16> @llvm.mips.binsri.h(<8 x i16> %a, <8 x i16> %a, i32 -15)
1210  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1211  ret void
1212}
1213
1214define void @neg_bnegi_h(<8 x i16> * %ptr) {
1215entry:
1216  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1217  %r = call <8 x i16> @llvm.mips.bnegi.h(<8 x i16> %a, i32 -14)
1218  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1219  ret void
1220}
1221
1222define void @neg_bseti_h(<8 x i16> * %ptr) {
1223entry:
1224  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1225  %r = call <8 x i16> @llvm.mips.bseti.h(<8 x i16> %a, i32 -15)
1226  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1227  ret void
1228}
1229
1230define void @neg_clei_s_h(<8 x i16> * %ptr) {
1231entry:
1232  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1233  %r = call <8 x i16> @llvm.mips.clei.s.h(<8 x i16> %a, i32 -25)
1234  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1235  ret void
1236}
1237
1238define void @neg_clei_u_h(<8 x i16> * %ptr) {
1239entry:
1240  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1241  %r = call <8 x i16> @llvm.mips.clei.u.h(<8 x i16> %a, i32 -25)
1242  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1243  ret void
1244}
1245
1246define void @neg_clti_s_h(<8 x i16> * %ptr) {
1247entry:
1248  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1249  %r = call <8 x i16> @llvm.mips.clti.s.h(<8 x i16> %a, i32 -150)
1250  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1251  ret void
1252}
1253
1254define void @neg_clti_u_h(<8 x i16> * %ptr) {
1255entry:
1256  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1257  %r = call <8 x i16> @llvm.mips.clti.u.h(<8 x i16> %a, i32 -25)
1258  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1259  ret void
1260}
1261
1262define void @neg_maxi_s_h(<8 x i16> * %ptr) {
1263entry:
1264  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1265  %r = call <8 x i16> @llvm.mips.maxi.s.h(<8 x i16> %a, i32 -200)
1266  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1267  ret void
1268}
1269
1270define void @neg_maxi_u_h(<8 x i16> * %ptr) {
1271entry:
1272  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1273  %r = call <8 x i16> @llvm.mips.maxi.u.h(<8 x i16> %a, i32 -200)
1274  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1275  ret void
1276}
1277
1278define void @neg_mini_s_h(<8 x i16> * %ptr) {
1279entry:
1280  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1281  %r = call <8 x i16> @llvm.mips.mini.s.h(<8 x i16> %a, i32 -200)
1282  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1283  ret void
1284}
1285
1286define void @neg_mini_u_h(<8 x i16> * %ptr) {
1287entry:
1288  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1289  %r = call <8 x i16> @llvm.mips.mini.u.h(<8 x i16> %a, i32 -2)
1290  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1291  ret void
1292}
1293
1294define void @neg_ldi_h(<8 x i16> * %ptr) {
1295entry:
1296  %r = call <8 x i16> @llvm.mips.ldi.h(i32 -300)
1297  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1298  ret void
1299}
1300
1301define void @neg_sldi_h(<8 x i16> * %ptr) {
1302entry:
1303  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1304  %r = call <8 x i16> @llvm.mips.sldi.h(<8 x i16> %a, <8 x i16> %a, i32 -3)
1305  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1306  ret void
1307}
1308
1309define void @neg_slli_h(<8 x i16> * %ptr) {
1310entry:
1311  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1312  %r = call <8 x i16> @llvm.mips.slli.h(<8 x i16> %a, i32 -3)
1313  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1314  ret void
1315}
1316
1317define void @neg_splati_h(<8 x i16> * %ptr) {
1318entry:
1319  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1320  %r = call <8 x i16> @llvm.mips.splati.h(<8 x i16> %a, i32 -3)
1321  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1322  ret void
1323}
1324
1325define void @neg_srai_h(<8 x i16> * %ptr) {
1326entry:
1327  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1328  %r = call <8 x i16> @llvm.mips.srai.h(<8 x i16> %a, i32 -3)
1329  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1330  ret void
1331}
1332
1333define void @neg_srari_h(<8 x i16> * %ptr) {
1334entry:
1335  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1336  %r = call <8 x i16> @llvm.mips.srari.h(<8 x i16> %a, i32 -3)
1337  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1338  ret void
1339}
1340
1341define void @neg_srli_h(<8 x i16> * %ptr) {
1342entry:
1343  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1344  %r = call <8 x i16> @llvm.mips.srli.h(<8 x i16> %a, i32 -3)
1345  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1346  ret void
1347}
1348
1349define void @neg_srlri_h(<8 x i16> * %ptr) {
1350entry:
1351  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1352  %r = call <8 x i16> @llvm.mips.srlri.h(<8 x i16> %a, i32 -3)
1353  store <8 x i16> %r, <8 x i16> * %ptr, align 16
1354  ret void
1355}
1356
1357define i32 @neg_copy_s_b(<16 x i8> * %ptr) {
1358entry:
1359  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
1360  %r = call i32 @llvm.mips.copy.s.b(<16 x i8> %a, i32 -1)
1361  ret i32 %r
1362}
1363
1364define i32 @neg_copy_s_h(<8 x i16> * %ptr) {
1365entry:
1366  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1367  %r = call i32 @llvm.mips.copy.s.h(<8 x i16> %a, i32 -1)
1368  ret i32 %r
1369}
1370
1371define i32 @neg_copy_s_w(<4 x i32> * %ptr) {
1372entry:
1373  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1374  %r = call i32 @llvm.mips.copy.s.w(<4 x i32> %a, i32 -1)
1375  ret i32 %r
1376}
1377
1378define i32 @neg_copy_u_b(<16 x i8> * %ptr) {
1379entry:
1380  %a = load <16 x i8>, <16 x i8> * %ptr, align 16
1381  %r = call i32 @llvm.mips.copy.u.b(<16 x i8> %a, i32 -1)
1382  ret i32 %r
1383}
1384
1385
1386define i32 @neg_copy_u_h(<8 x i16> * %ptr) {
1387entry:
1388  %a = load <8 x i16>, <8 x i16> * %ptr, align 16
1389  %r = call i32 @llvm.mips.copy.u.h(<8 x i16> %a, i32 -1)
1390  ret i32 %r
1391}
1392
1393
1394define i32 @neg_copy_u_w(<4 x i32> * %ptr) {
1395entry:
1396  %a = load <4 x i32>, <4 x i32> * %ptr, align 16
1397  %r = call i32 @llvm.mips.copy.u.w(<4 x i32> %a, i32 -1)
1398  ret i32 %r
1399}
1400
1401define i64 @neg_copy_s_d(<2 x i64> * %ptr) {
1402entry:  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1403  %r = call i64 @llvm.mips.copy.s.d(<2 x i64> %a, i32 -1)
1404  ret i64 %r
1405}
1406
1407define i64 @neg_copy_u_d(<2 x i64> * %ptr) {
1408entry:  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1409  %r = call i64 @llvm.mips.copy.u.d(<2 x i64> %a, i32 -1)
1410  ret i64 %r
1411}
1412
1413define void @neg_addvi_d(<2 x i64> * %ptr) {
1414entry:
1415  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1416  %r = call <2 x i64> @llvm.mips.addvi.d(<2 x i64> %a, i32 -25)
1417  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1418  ret void
1419}
1420
1421define void @neg_bclri_d(<2 x i64> * %ptr) {
1422entry:
1423  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1424  %r = call <2 x i64> @llvm.mips.bclri.d(<2 x i64> %a, i32 -25)
1425  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1426  ret void
1427}
1428
1429define void @neg_binsli_d(<2 x i64> * %ptr) {
1430entry:
1431  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1432  %r = call <2 x i64> @llvm.mips.binsli.d(<2 x i64> %a, <2 x i64> %a, i32 -25)
1433  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1434  ret void
1435}
1436
1437define void @neg_binsri_d(<2 x i64> * %ptr) {
1438entry:
1439  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1440  %r = call <2 x i64> @llvm.mips.binsri.d(<2 x i64> %a, <2 x i64> %a, i32 -25)
1441  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1442  ret void
1443}
1444
1445define void @neg_bnegi_d(<2 x i64> * %ptr) {
1446entry:
1447  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1448  %r = call <2 x i64> @llvm.mips.bnegi.d(<2 x i64> %a, i32 -25)
1449  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1450  ret void
1451}
1452
1453define void @neg_bseti_d(<2 x i64> * %ptr) {
1454entry:
1455  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1456  %r = call <2 x i64> @llvm.mips.bseti.d(<2 x i64> %a, i32 -25)
1457  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1458  ret void
1459}
1460
1461define void @neg_clei_s_d(<2 x i64> * %ptr) {
1462entry:
1463  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1464  %r = call <2 x i64> @llvm.mips.clei.s.d(<2 x i64> %a, i32 -45)
1465  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1466  ret void
1467}
1468
1469define void @neg_clei_u_d(<2 x i64> * %ptr) {
1470entry:
1471  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1472  %r = call <2 x i64> @llvm.mips.clei.u.d(<2 x i64> %a, i32 -25)
1473  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1474  ret void
1475}
1476
1477define void @neg_clti_s_d(<2 x i64> * %ptr) {
1478entry:
1479  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1480  %r = call <2 x i64> @llvm.mips.clti.s.d(<2 x i64> %a, i32 -32)
1481  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1482  ret void
1483}
1484
1485define void @neg_clti_u_d(<2 x i64> * %ptr) {
1486entry:
1487  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1488  %r = call <2 x i64> @llvm.mips.clti.u.d(<2 x i64> %a, i32 -25)
1489  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1490  ret void
1491}
1492
1493define void @neg_ldi_d(<2 x i64> * %ptr) {
1494entry:
1495  %r = call <2 x i64> @llvm.mips.ldi.d(i32 -3)
1496  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1497  ret void
1498}
1499
1500define void @neg_maxi_s_d(<2 x i64> * %ptr) {
1501entry:
1502  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1503  %r = call <2 x i64> @llvm.mips.maxi.s.d(<2 x i64> %a, i32 -202)
1504  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1505  ret void
1506}
1507
1508define void @neg_maxi_u_d(<2 x i64> * %ptr) {
1509entry:
1510  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1511  %r = call <2 x i64> @llvm.mips.maxi.u.d(<2 x i64> %a, i32 -2)
1512  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1513  ret void
1514}
1515
1516define void @neg_mini_s_d(<2 x i64> * %ptr) {
1517entry:
1518  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1519  %r = call <2 x i64> @llvm.mips.mini.s.d(<2 x i64> %a, i32 -202)
1520  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1521  ret void
1522}
1523
1524define void @neg_mini_u_d(<2 x i64> * %ptr) {
1525entry:
1526  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1527  %r = call <2 x i64> @llvm.mips.mini.u.d(<2 x i64> %a, i32 -2)
1528  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1529  ret void
1530}
1531
1532define void @neg_sldi_d(<2 x i64> * %ptr) {
1533entry:
1534  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1535  %r = call <2 x i64> @llvm.mips.sldi.d(<2 x i64> %a, <2 x i64> %a, i32 -1)
1536  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1537  ret void
1538}
1539
1540define void @neg_slli_d(<2 x i64> * %ptr) {
1541entry:
1542  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1543  %r = call <2 x i64> @llvm.mips.slli.d(<2 x i64> %a, i32 -3)
1544  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1545  ret void
1546}
1547
1548define void @neg_srai_d(<2 x i64> * %ptr) {
1549entry:
1550  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1551  %r = call <2 x i64> @llvm.mips.srai.d(<2 x i64> %a, i32 -3)
1552  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1553  ret void
1554}
1555
1556define void @neg_srari_d(<2 x i64> * %ptr) {
1557entry:
1558  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1559  %r = call <2 x i64> @llvm.mips.srari.d(<2 x i64> %a, i32 -3)
1560  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1561  ret void
1562}
1563
1564define void @neg_srli_d(<2 x i64> * %ptr) {
1565entry:
1566  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1567  %r = call <2 x i64> @llvm.mips.srli.d(<2 x i64> %a, i32 -3)
1568  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1569  ret void
1570}
1571
1572define void @neg_srlri_d(<2 x i64> * %ptr) {
1573entry:
1574  %a = load <2 x i64>, <2 x i64> * %ptr, align 16
1575  %r = call <2 x i64> @llvm.mips.srlri.d(<2 x i64> %a, i32 -3)
1576  store <2 x i64> %r, <2 x i64> * %ptr, align 16
1577  ret void
1578}
1579
1580declare <8 x i16> @llvm.mips.ldi.h(i32)
1581declare <8 x i16> @llvm.mips.addvi.h(<8 x i16>, i32)
1582declare <8 x i16> @llvm.mips.bclri.h(<8 x i16>, i32)
1583declare <8 x i16> @llvm.mips.binsli.h(<8 x i16>, <8 x i16>, i32)
1584declare <8 x i16> @llvm.mips.binsri.h(<8 x i16>, <8 x i16>, i32)
1585declare <8 x i16> @llvm.mips.bnegi.h(<8 x i16>, i32)
1586declare <8 x i16> @llvm.mips.bseti.h(<8 x i16>, i32)
1587declare <8 x i16> @llvm.mips.clei.s.h(<8 x i16>, i32)
1588declare <8 x i16> @llvm.mips.clei.u.h(<8 x i16>, i32)
1589declare <8 x i16> @llvm.mips.clti.s.h(<8 x i16>, i32)
1590declare <8 x i16> @llvm.mips.clti.u.h(<8 x i16>, i32)
1591declare <8 x i16> @llvm.mips.maxi.s.h(<8 x i16>, i32)
1592declare <8 x i16> @llvm.mips.maxi.u.h(<8 x i16>, i32)
1593declare <8 x i16> @llvm.mips.mini.s.h(<8 x i16>, i32)
1594declare <8 x i16> @llvm.mips.mini.u.h(<8 x i16>, i32)
1595declare <8 x i16> @llvm.mips.sldi.h(<8 x i16>, <8 x i16>, i32)
1596declare <8 x i16> @llvm.mips.slli.h(<8 x i16>, i32)
1597declare <8 x i16> @llvm.mips.splati.h(<8 x i16>, i32)
1598declare <8 x i16> @llvm.mips.srai.h(<8 x i16>, i32)
1599declare <8 x i16> @llvm.mips.srari.h(<8 x i16>, i32)
1600declare <8 x i16> @llvm.mips.srli.h(<8 x i16>, i32)
1601declare <8 x i16> @llvm.mips.srlri.h(<8 x i16>, i32)
1602declare <4 x i32> @llvm.mips.addvi.w(<4 x i32>, i32)
1603declare <4 x i32> @llvm.mips.bclri.w(<4 x i32>, i32)
1604declare <4 x i32> @llvm.mips.binsli.w(<4 x i32>, <4 x i32>, i32)
1605declare <4 x i32> @llvm.mips.binsri.w(<4 x i32>, <4 x i32>, i32)
1606declare <4 x i32> @llvm.mips.bnegi.w(<4 x i32>, i32)
1607declare <4 x i32> @llvm.mips.bseti.w(<4 x i32>, i32)
1608declare <4 x i32> @llvm.mips.ldi.w(i32)
1609declare <4 x i32> @llvm.mips.clei.s.w(<4 x i32>, i32)
1610declare <4 x i32> @llvm.mips.clei.u.w(<4 x i32>, i32)
1611declare <4 x i32> @llvm.mips.clti.s.w(<4 x i32>, i32)
1612declare <4 x i32> @llvm.mips.clti.u.w(<4 x i32>, i32)
1613declare <4 x i32> @llvm.mips.maxi.s.w(<4 x i32>, i32)
1614declare <4 x i32> @llvm.mips.maxi.u.w(<4 x i32>, i32)
1615declare <4 x i32> @llvm.mips.mini.s.w(<4 x i32>, i32)
1616declare <4 x i32> @llvm.mips.mini.u.w(<4 x i32>, i32)
1617declare <4 x i32> @llvm.mips.sldi.w(<4 x i32>, <4 x i32>, i32)
1618declare <4 x i32> @llvm.mips.slli.w(<4 x i32>, i32)
1619declare <4 x i32> @llvm.mips.splati.w(<4 x i32>, i32)
1620declare <4 x i32> @llvm.mips.srai.w(<4 x i32>, i32)
1621declare <4 x i32> @llvm.mips.srari.w(<4 x i32>, i32)
1622declare <4 x i32> @llvm.mips.srli.w(<4 x i32>, i32)
1623declare <4 x i32> @llvm.mips.srlri.w(<4 x i32>, i32)
1624declare <2 x i64> @llvm.mips.ldi.d(i32)
1625declare <2 x i64> @llvm.mips.addvi.d(<2 x i64>, i32)
1626declare <2 x i64> @llvm.mips.bclri.d(<2 x i64>, i32)
1627declare <2 x i64> @llvm.mips.binsli.d(<2 x i64>, <2 x i64>, i32)
1628declare <2 x i64> @llvm.mips.binsri.d(<2 x i64>, <2 x i64>, i32)
1629declare <2 x i64> @llvm.mips.bnegi.d(<2 x i64>, i32)
1630declare <2 x i64> @llvm.mips.bseti.d(<2 x i64>, i32)
1631declare <2 x i64> @llvm.mips.clei.s.d(<2 x i64>, i32)
1632declare <2 x i64> @llvm.mips.clei.u.d(<2 x i64>, i32)
1633declare <2 x i64> @llvm.mips.clti.s.d(<2 x i64>, i32)
1634declare <2 x i64> @llvm.mips.clti.u.d(<2 x i64>, i32)
1635declare <2 x i64> @llvm.mips.maxi.s.d(<2 x i64>, i32)
1636declare <2 x i64> @llvm.mips.maxi.u.d(<2 x i64>, i32)
1637declare <2 x i64> @llvm.mips.mini.s.d(<2 x i64>, i32)
1638declare <2 x i64> @llvm.mips.mini.u.d(<2 x i64>, i32)
1639declare <2 x i64> @llvm.mips.sldi.d(<2 x i64>, <2 x i64>, i32)
1640declare <2 x i64> @llvm.mips.slli.d(<2 x i64>, i32)
1641declare <2 x i64> @llvm.mips.splati.d(<2 x i64>, i32)
1642declare <2 x i64> @llvm.mips.srai.d(<2 x i64>, i32)
1643declare <2 x i64> @llvm.mips.srari.d(<2 x i64>, i32)
1644declare <2 x i64> @llvm.mips.srli.d(<2 x i64>, i32)
1645declare <2 x i64> @llvm.mips.srlri.d(<2 x i64>, i32)
1646declare <16 x i8> @llvm.mips.ldi.b(i32)
1647declare <16 x i8> @llvm.mips.addvi.b(<16 x i8>, i32)
1648declare <16 x i8> @llvm.mips.andi.b(<16 x i8>, i32)
1649declare <16 x i8> @llvm.mips.bclri.b(<16 x i8>, i32)
1650declare <16 x i8> @llvm.mips.binsli.b(<16 x i8>, <16 x i8>, i32)
1651declare <16 x i8> @llvm.mips.binsri.b(<16 x i8>, <16 x i8>, i32)
1652declare <16 x i8> @llvm.mips.bmnzi.b(<16 x i8>, <16 x i8>, i32)
1653declare <16 x i8> @llvm.mips.bnegi.b(<16 x i8>, i32)
1654declare <16 x i8> @llvm.mips.bseli.b(<16 x i8>, <16 x i8>, i32)
1655declare <16 x i8> @llvm.mips.bseti.b(<16 x i8>, i32)
1656declare <16 x i8> @llvm.mips.clei.s.b(<16 x i8>, i32)
1657declare <16 x i8> @llvm.mips.clei.u.b(<16 x i8>, i32)
1658declare <16 x i8> @llvm.mips.clti.s.b(<16 x i8>, i32)
1659declare <16 x i8> @llvm.mips.clti.u.b(<16 x i8>, i32)
1660declare <16 x i8> @llvm.mips.maxi.s.b(<16 x i8>, i32)
1661declare <16 x i8> @llvm.mips.maxi.u.b(<16 x i8>, i32)
1662declare <16 x i8> @llvm.mips.mini.s.b(<16 x i8>, i32)
1663declare <16 x i8> @llvm.mips.mini.u.b(<16 x i8>, i32)
1664declare <16 x i8> @llvm.mips.nori.b(<16 x i8>, i32)
1665declare <16 x i8> @llvm.mips.ori.b(<16 x i8>, i32)
1666declare <16 x i8> @llvm.mips.sldi.b(<16 x i8>, <16 x i8>, i32)
1667declare <16 x i8> @llvm.mips.slli.b(<16 x i8>, i32)
1668declare <16 x i8> @llvm.mips.splati.b(<16 x i8>, i32)
1669declare <16 x i8> @llvm.mips.srai.b(<16 x i8>, i32)
1670declare <16 x i8> @llvm.mips.srari.b(<16 x i8>, i32)
1671declare <16 x i8> @llvm.mips.srli.b(<16 x i8>, i32)
1672declare <16 x i8> @llvm.mips.srlri.b(<16 x i8>, i32)
1673declare i32 @llvm.mips.copy.s.h(<8 x i16>, i32)
1674declare i32 @llvm.mips.copy.u.h(<8 x i16>, i32)
1675declare i32 @llvm.mips.copy.s.w(<4 x i32>, i32)
1676declare i32 @llvm.mips.copy.u.w(<4 x i32>, i32)
1677declare i64 @llvm.mips.copy.s.d(<2 x i64>, i32)
1678declare i64 @llvm.mips.copy.u.d(<2 x i64>, i32)
1679declare i32 @llvm.mips.copy.s.b(<16 x i8>, i32)
1680declare i32 @llvm.mips.copy.u.b(<16 x i8>, i32)
1681declare <16 x i8> @llvm.mips.bmzi.b(<16 x i8>, <16 x i8>, i32)
1682