blob: 56636947ac9251a93aea52d07f84f3b26e4294f1 [file] [log] [blame]
Jack Carterbabdcc82013-08-15 12:24:57 +00001; RUN: llc -march=mips -mattr=+msa < %s | FileCheck %s
2
3@llvm_mips_ceq_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
4@llvm_mips_ceq_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
5@llvm_mips_ceq_b_RES = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
6
7define void @llvm_mips_ceq_b_test() nounwind {
8entry:
9 %0 = load <16 x i8>* @llvm_mips_ceq_b_ARG1
10 %1 = load <16 x i8>* @llvm_mips_ceq_b_ARG2
11 %2 = tail call <16 x i8> @llvm.mips.ceq.b(<16 x i8> %0, <16 x i8> %1)
12 store <16 x i8> %2, <16 x i8>* @llvm_mips_ceq_b_RES
13 ret void
14}
15
16declare <16 x i8> @llvm.mips.ceq.b(<16 x i8>, <16 x i8>) nounwind
17
18; CHECK: llvm_mips_ceq_b_test:
19; CHECK: ld.b
20; CHECK: ld.b
21; CHECK: ceq.b
22; CHECK: st.b
23; CHECK: .size llvm_mips_ceq_b_test
24;
25@llvm_mips_ceq_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
26@llvm_mips_ceq_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
27@llvm_mips_ceq_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
28
29define void @llvm_mips_ceq_h_test() nounwind {
30entry:
31 %0 = load <8 x i16>* @llvm_mips_ceq_h_ARG1
32 %1 = load <8 x i16>* @llvm_mips_ceq_h_ARG2
33 %2 = tail call <8 x i16> @llvm.mips.ceq.h(<8 x i16> %0, <8 x i16> %1)
34 store <8 x i16> %2, <8 x i16>* @llvm_mips_ceq_h_RES
35 ret void
36}
37
38declare <8 x i16> @llvm.mips.ceq.h(<8 x i16>, <8 x i16>) nounwind
39
40; CHECK: llvm_mips_ceq_h_test:
41; CHECK: ld.h
42; CHECK: ld.h
43; CHECK: ceq.h
44; CHECK: st.h
45; CHECK: .size llvm_mips_ceq_h_test
46;
47@llvm_mips_ceq_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
48@llvm_mips_ceq_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
49@llvm_mips_ceq_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
50
51define void @llvm_mips_ceq_w_test() nounwind {
52entry:
53 %0 = load <4 x i32>* @llvm_mips_ceq_w_ARG1
54 %1 = load <4 x i32>* @llvm_mips_ceq_w_ARG2
55 %2 = tail call <4 x i32> @llvm.mips.ceq.w(<4 x i32> %0, <4 x i32> %1)
56 store <4 x i32> %2, <4 x i32>* @llvm_mips_ceq_w_RES
57 ret void
58}
59
60declare <4 x i32> @llvm.mips.ceq.w(<4 x i32>, <4 x i32>) nounwind
61
62; CHECK: llvm_mips_ceq_w_test:
63; CHECK: ld.w
64; CHECK: ld.w
65; CHECK: ceq.w
66; CHECK: st.w
67; CHECK: .size llvm_mips_ceq_w_test
68;
69@llvm_mips_ceq_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
70@llvm_mips_ceq_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
71@llvm_mips_ceq_d_RES = global <2 x i64> <i64 0, i64 0>, align 16
72
73define void @llvm_mips_ceq_d_test() nounwind {
74entry:
75 %0 = load <2 x i64>* @llvm_mips_ceq_d_ARG1
76 %1 = load <2 x i64>* @llvm_mips_ceq_d_ARG2
77 %2 = tail call <2 x i64> @llvm.mips.ceq.d(<2 x i64> %0, <2 x i64> %1)
78 store <2 x i64> %2, <2 x i64>* @llvm_mips_ceq_d_RES
79 ret void
80}
81
82declare <2 x i64> @llvm.mips.ceq.d(<2 x i64>, <2 x i64>) nounwind
83
84; CHECK: llvm_mips_ceq_d_test:
85; CHECK: ld.d
86; CHECK: ld.d
87; CHECK: ceq.d
88; CHECK: st.d
89; CHECK: .size llvm_mips_ceq_d_test
90;
91@llvm_mips_cle_s_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
92@llvm_mips_cle_s_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
93@llvm_mips_cle_s_b_RES = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
94
95define void @llvm_mips_cle_s_b_test() nounwind {
96entry:
97 %0 = load <16 x i8>* @llvm_mips_cle_s_b_ARG1
98 %1 = load <16 x i8>* @llvm_mips_cle_s_b_ARG2
99 %2 = tail call <16 x i8> @llvm.mips.cle.s.b(<16 x i8> %0, <16 x i8> %1)
100 store <16 x i8> %2, <16 x i8>* @llvm_mips_cle_s_b_RES
101 ret void
102}
103
104declare <16 x i8> @llvm.mips.cle.s.b(<16 x i8>, <16 x i8>) nounwind
105
106; CHECK: llvm_mips_cle_s_b_test:
107; CHECK: ld.b
108; CHECK: ld.b
109; CHECK: cle_s.b
110; CHECK: st.b
111; CHECK: .size llvm_mips_cle_s_b_test
112;
113@llvm_mips_cle_s_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
114@llvm_mips_cle_s_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
115@llvm_mips_cle_s_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
116
117define void @llvm_mips_cle_s_h_test() nounwind {
118entry:
119 %0 = load <8 x i16>* @llvm_mips_cle_s_h_ARG1
120 %1 = load <8 x i16>* @llvm_mips_cle_s_h_ARG2
121 %2 = tail call <8 x i16> @llvm.mips.cle.s.h(<8 x i16> %0, <8 x i16> %1)
122 store <8 x i16> %2, <8 x i16>* @llvm_mips_cle_s_h_RES
123 ret void
124}
125
126declare <8 x i16> @llvm.mips.cle.s.h(<8 x i16>, <8 x i16>) nounwind
127
128; CHECK: llvm_mips_cle_s_h_test:
129; CHECK: ld.h
130; CHECK: ld.h
131; CHECK: cle_s.h
132; CHECK: st.h
133; CHECK: .size llvm_mips_cle_s_h_test
134;
135@llvm_mips_cle_s_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
136@llvm_mips_cle_s_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
137@llvm_mips_cle_s_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
138
139define void @llvm_mips_cle_s_w_test() nounwind {
140entry:
141 %0 = load <4 x i32>* @llvm_mips_cle_s_w_ARG1
142 %1 = load <4 x i32>* @llvm_mips_cle_s_w_ARG2
143 %2 = tail call <4 x i32> @llvm.mips.cle.s.w(<4 x i32> %0, <4 x i32> %1)
144 store <4 x i32> %2, <4 x i32>* @llvm_mips_cle_s_w_RES
145 ret void
146}
147
148declare <4 x i32> @llvm.mips.cle.s.w(<4 x i32>, <4 x i32>) nounwind
149
150; CHECK: llvm_mips_cle_s_w_test:
151; CHECK: ld.w
152; CHECK: ld.w
153; CHECK: cle_s.w
154; CHECK: st.w
155; CHECK: .size llvm_mips_cle_s_w_test
156;
157@llvm_mips_cle_s_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
158@llvm_mips_cle_s_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
159@llvm_mips_cle_s_d_RES = global <2 x i64> <i64 0, i64 0>, align 16
160
161define void @llvm_mips_cle_s_d_test() nounwind {
162entry:
163 %0 = load <2 x i64>* @llvm_mips_cle_s_d_ARG1
164 %1 = load <2 x i64>* @llvm_mips_cle_s_d_ARG2
165 %2 = tail call <2 x i64> @llvm.mips.cle.s.d(<2 x i64> %0, <2 x i64> %1)
166 store <2 x i64> %2, <2 x i64>* @llvm_mips_cle_s_d_RES
167 ret void
168}
169
170declare <2 x i64> @llvm.mips.cle.s.d(<2 x i64>, <2 x i64>) nounwind
171
172; CHECK: llvm_mips_cle_s_d_test:
173; CHECK: ld.d
174; CHECK: ld.d
175; CHECK: cle_s.d
176; CHECK: st.d
177; CHECK: .size llvm_mips_cle_s_d_test
178;
179@llvm_mips_cle_u_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
180@llvm_mips_cle_u_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
181@llvm_mips_cle_u_b_RES = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
182
183define void @llvm_mips_cle_u_b_test() nounwind {
184entry:
185 %0 = load <16 x i8>* @llvm_mips_cle_u_b_ARG1
186 %1 = load <16 x i8>* @llvm_mips_cle_u_b_ARG2
187 %2 = tail call <16 x i8> @llvm.mips.cle.u.b(<16 x i8> %0, <16 x i8> %1)
188 store <16 x i8> %2, <16 x i8>* @llvm_mips_cle_u_b_RES
189 ret void
190}
191
192declare <16 x i8> @llvm.mips.cle.u.b(<16 x i8>, <16 x i8>) nounwind
193
194; CHECK: llvm_mips_cle_u_b_test:
195; CHECK: ld.b
196; CHECK: ld.b
197; CHECK: cle_u.b
198; CHECK: st.b
199; CHECK: .size llvm_mips_cle_u_b_test
200;
201@llvm_mips_cle_u_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
202@llvm_mips_cle_u_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
203@llvm_mips_cle_u_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
204
205define void @llvm_mips_cle_u_h_test() nounwind {
206entry:
207 %0 = load <8 x i16>* @llvm_mips_cle_u_h_ARG1
208 %1 = load <8 x i16>* @llvm_mips_cle_u_h_ARG2
209 %2 = tail call <8 x i16> @llvm.mips.cle.u.h(<8 x i16> %0, <8 x i16> %1)
210 store <8 x i16> %2, <8 x i16>* @llvm_mips_cle_u_h_RES
211 ret void
212}
213
214declare <8 x i16> @llvm.mips.cle.u.h(<8 x i16>, <8 x i16>) nounwind
215
216; CHECK: llvm_mips_cle_u_h_test:
217; CHECK: ld.h
218; CHECK: ld.h
219; CHECK: cle_u.h
220; CHECK: st.h
221; CHECK: .size llvm_mips_cle_u_h_test
222;
223@llvm_mips_cle_u_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
224@llvm_mips_cle_u_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
225@llvm_mips_cle_u_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
226
227define void @llvm_mips_cle_u_w_test() nounwind {
228entry:
229 %0 = load <4 x i32>* @llvm_mips_cle_u_w_ARG1
230 %1 = load <4 x i32>* @llvm_mips_cle_u_w_ARG2
231 %2 = tail call <4 x i32> @llvm.mips.cle.u.w(<4 x i32> %0, <4 x i32> %1)
232 store <4 x i32> %2, <4 x i32>* @llvm_mips_cle_u_w_RES
233 ret void
234}
235
236declare <4 x i32> @llvm.mips.cle.u.w(<4 x i32>, <4 x i32>) nounwind
237
238; CHECK: llvm_mips_cle_u_w_test:
239; CHECK: ld.w
240; CHECK: ld.w
241; CHECK: cle_u.w
242; CHECK: st.w
243; CHECK: .size llvm_mips_cle_u_w_test
244;
245@llvm_mips_cle_u_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
246@llvm_mips_cle_u_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
247@llvm_mips_cle_u_d_RES = global <2 x i64> <i64 0, i64 0>, align 16
248
249define void @llvm_mips_cle_u_d_test() nounwind {
250entry:
251 %0 = load <2 x i64>* @llvm_mips_cle_u_d_ARG1
252 %1 = load <2 x i64>* @llvm_mips_cle_u_d_ARG2
253 %2 = tail call <2 x i64> @llvm.mips.cle.u.d(<2 x i64> %0, <2 x i64> %1)
254 store <2 x i64> %2, <2 x i64>* @llvm_mips_cle_u_d_RES
255 ret void
256}
257
258declare <2 x i64> @llvm.mips.cle.u.d(<2 x i64>, <2 x i64>) nounwind
259
260; CHECK: llvm_mips_cle_u_d_test:
261; CHECK: ld.d
262; CHECK: ld.d
263; CHECK: cle_u.d
264; CHECK: st.d
265; CHECK: .size llvm_mips_cle_u_d_test
266;
267@llvm_mips_clt_s_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
268@llvm_mips_clt_s_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
269@llvm_mips_clt_s_b_RES = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
270
271define void @llvm_mips_clt_s_b_test() nounwind {
272entry:
273 %0 = load <16 x i8>* @llvm_mips_clt_s_b_ARG1
274 %1 = load <16 x i8>* @llvm_mips_clt_s_b_ARG2
275 %2 = tail call <16 x i8> @llvm.mips.clt.s.b(<16 x i8> %0, <16 x i8> %1)
276 store <16 x i8> %2, <16 x i8>* @llvm_mips_clt_s_b_RES
277 ret void
278}
279
280declare <16 x i8> @llvm.mips.clt.s.b(<16 x i8>, <16 x i8>) nounwind
281
282; CHECK: llvm_mips_clt_s_b_test:
283; CHECK: ld.b
284; CHECK: ld.b
285; CHECK: clt_s.b
286; CHECK: st.b
287; CHECK: .size llvm_mips_clt_s_b_test
288;
289@llvm_mips_clt_s_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
290@llvm_mips_clt_s_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
291@llvm_mips_clt_s_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
292
293define void @llvm_mips_clt_s_h_test() nounwind {
294entry:
295 %0 = load <8 x i16>* @llvm_mips_clt_s_h_ARG1
296 %1 = load <8 x i16>* @llvm_mips_clt_s_h_ARG2
297 %2 = tail call <8 x i16> @llvm.mips.clt.s.h(<8 x i16> %0, <8 x i16> %1)
298 store <8 x i16> %2, <8 x i16>* @llvm_mips_clt_s_h_RES
299 ret void
300}
301
302declare <8 x i16> @llvm.mips.clt.s.h(<8 x i16>, <8 x i16>) nounwind
303
304; CHECK: llvm_mips_clt_s_h_test:
305; CHECK: ld.h
306; CHECK: ld.h
307; CHECK: clt_s.h
308; CHECK: st.h
309; CHECK: .size llvm_mips_clt_s_h_test
310;
311@llvm_mips_clt_s_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
312@llvm_mips_clt_s_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
313@llvm_mips_clt_s_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
314
315define void @llvm_mips_clt_s_w_test() nounwind {
316entry:
317 %0 = load <4 x i32>* @llvm_mips_clt_s_w_ARG1
318 %1 = load <4 x i32>* @llvm_mips_clt_s_w_ARG2
319 %2 = tail call <4 x i32> @llvm.mips.clt.s.w(<4 x i32> %0, <4 x i32> %1)
320 store <4 x i32> %2, <4 x i32>* @llvm_mips_clt_s_w_RES
321 ret void
322}
323
324declare <4 x i32> @llvm.mips.clt.s.w(<4 x i32>, <4 x i32>) nounwind
325
326; CHECK: llvm_mips_clt_s_w_test:
327; CHECK: ld.w
328; CHECK: ld.w
329; CHECK: clt_s.w
330; CHECK: st.w
331; CHECK: .size llvm_mips_clt_s_w_test
332;
333@llvm_mips_clt_s_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
334@llvm_mips_clt_s_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
335@llvm_mips_clt_s_d_RES = global <2 x i64> <i64 0, i64 0>, align 16
336
337define void @llvm_mips_clt_s_d_test() nounwind {
338entry:
339 %0 = load <2 x i64>* @llvm_mips_clt_s_d_ARG1
340 %1 = load <2 x i64>* @llvm_mips_clt_s_d_ARG2
341 %2 = tail call <2 x i64> @llvm.mips.clt.s.d(<2 x i64> %0, <2 x i64> %1)
342 store <2 x i64> %2, <2 x i64>* @llvm_mips_clt_s_d_RES
343 ret void
344}
345
346declare <2 x i64> @llvm.mips.clt.s.d(<2 x i64>, <2 x i64>) nounwind
347
348; CHECK: llvm_mips_clt_s_d_test:
349; CHECK: ld.d
350; CHECK: ld.d
351; CHECK: clt_s.d
352; CHECK: st.d
353; CHECK: .size llvm_mips_clt_s_d_test
354;
355@llvm_mips_clt_u_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
356@llvm_mips_clt_u_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
357@llvm_mips_clt_u_b_RES = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
358
359define void @llvm_mips_clt_u_b_test() nounwind {
360entry:
361 %0 = load <16 x i8>* @llvm_mips_clt_u_b_ARG1
362 %1 = load <16 x i8>* @llvm_mips_clt_u_b_ARG2
363 %2 = tail call <16 x i8> @llvm.mips.clt.u.b(<16 x i8> %0, <16 x i8> %1)
364 store <16 x i8> %2, <16 x i8>* @llvm_mips_clt_u_b_RES
365 ret void
366}
367
368declare <16 x i8> @llvm.mips.clt.u.b(<16 x i8>, <16 x i8>) nounwind
369
370; CHECK: llvm_mips_clt_u_b_test:
371; CHECK: ld.b
372; CHECK: ld.b
373; CHECK: clt_u.b
374; CHECK: st.b
375; CHECK: .size llvm_mips_clt_u_b_test
376;
377@llvm_mips_clt_u_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
378@llvm_mips_clt_u_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
379@llvm_mips_clt_u_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
380
381define void @llvm_mips_clt_u_h_test() nounwind {
382entry:
383 %0 = load <8 x i16>* @llvm_mips_clt_u_h_ARG1
384 %1 = load <8 x i16>* @llvm_mips_clt_u_h_ARG2
385 %2 = tail call <8 x i16> @llvm.mips.clt.u.h(<8 x i16> %0, <8 x i16> %1)
386 store <8 x i16> %2, <8 x i16>* @llvm_mips_clt_u_h_RES
387 ret void
388}
389
390declare <8 x i16> @llvm.mips.clt.u.h(<8 x i16>, <8 x i16>) nounwind
391
392; CHECK: llvm_mips_clt_u_h_test:
393; CHECK: ld.h
394; CHECK: ld.h
395; CHECK: clt_u.h
396; CHECK: st.h
397; CHECK: .size llvm_mips_clt_u_h_test
398;
399@llvm_mips_clt_u_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
400@llvm_mips_clt_u_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
401@llvm_mips_clt_u_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
402
403define void @llvm_mips_clt_u_w_test() nounwind {
404entry:
405 %0 = load <4 x i32>* @llvm_mips_clt_u_w_ARG1
406 %1 = load <4 x i32>* @llvm_mips_clt_u_w_ARG2
407 %2 = tail call <4 x i32> @llvm.mips.clt.u.w(<4 x i32> %0, <4 x i32> %1)
408 store <4 x i32> %2, <4 x i32>* @llvm_mips_clt_u_w_RES
409 ret void
410}
411
412declare <4 x i32> @llvm.mips.clt.u.w(<4 x i32>, <4 x i32>) nounwind
413
414; CHECK: llvm_mips_clt_u_w_test:
415; CHECK: ld.w
416; CHECK: ld.w
417; CHECK: clt_u.w
418; CHECK: st.w
419; CHECK: .size llvm_mips_clt_u_w_test
420;
421@llvm_mips_clt_u_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
422@llvm_mips_clt_u_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
423@llvm_mips_clt_u_d_RES = global <2 x i64> <i64 0, i64 0>, align 16
424
425define void @llvm_mips_clt_u_d_test() nounwind {
426entry:
427 %0 = load <2 x i64>* @llvm_mips_clt_u_d_ARG1
428 %1 = load <2 x i64>* @llvm_mips_clt_u_d_ARG2
429 %2 = tail call <2 x i64> @llvm.mips.clt.u.d(<2 x i64> %0, <2 x i64> %1)
430 store <2 x i64> %2, <2 x i64>* @llvm_mips_clt_u_d_RES
431 ret void
432}
433
434declare <2 x i64> @llvm.mips.clt.u.d(<2 x i64>, <2 x i64>) nounwind
435
436; CHECK: llvm_mips_clt_u_d_test:
437; CHECK: ld.d
438; CHECK: ld.d
439; CHECK: clt_u.d
440; CHECK: st.d
441; CHECK: .size llvm_mips_clt_u_d_test
442;