[tests] Cleanup initialization of test suffixes.
[oota-llvm.git] / test / CodeGen / Mips / msa / 3rf_int_float.ll
1 ; RUN: llc -march=mips -mattr=+msa < %s | FileCheck %s
2
3 @llvm_mips_fceq_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
4 @llvm_mips_fceq_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
5 @llvm_mips_fceq_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
6
7 define void @llvm_mips_fceq_w_test() nounwind {
8 entry:
9   %0 = load <4 x float>* @llvm_mips_fceq_w_ARG1
10   %1 = load <4 x float>* @llvm_mips_fceq_w_ARG2
11   %2 = tail call <4 x i32> @llvm.mips.fceq.w(<4 x float> %0, <4 x float> %1)
12   store <4 x i32> %2, <4 x i32>* @llvm_mips_fceq_w_RES
13   ret void
14 }
15
16 declare <4 x i32> @llvm.mips.fceq.w(<4 x float>, <4 x float>) nounwind
17
18 ; CHECK: llvm_mips_fceq_w_test:
19 ; CHECK: ld.w
20 ; CHECK: ld.w
21 ; CHECK: fceq.w
22 ; CHECK: st.w
23 ; CHECK: .size llvm_mips_fceq_w_test
24 ;
25 @llvm_mips_fceq_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
26 @llvm_mips_fceq_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
27 @llvm_mips_fceq_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
28
29 define void @llvm_mips_fceq_d_test() nounwind {
30 entry:
31   %0 = load <2 x double>* @llvm_mips_fceq_d_ARG1
32   %1 = load <2 x double>* @llvm_mips_fceq_d_ARG2
33   %2 = tail call <2 x i64> @llvm.mips.fceq.d(<2 x double> %0, <2 x double> %1)
34   store <2 x i64> %2, <2 x i64>* @llvm_mips_fceq_d_RES
35   ret void
36 }
37
38 declare <2 x i64> @llvm.mips.fceq.d(<2 x double>, <2 x double>) nounwind
39
40 ; CHECK: llvm_mips_fceq_d_test:
41 ; CHECK: ld.d
42 ; CHECK: ld.d
43 ; CHECK: fceq.d
44 ; CHECK: st.d
45 ; CHECK: .size llvm_mips_fceq_d_test
46 ;
47 @llvm_mips_fcge_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
48 @llvm_mips_fcge_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
49 @llvm_mips_fcge_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
50
51 define void @llvm_mips_fcge_w_test() nounwind {
52 entry:
53   %0 = load <4 x float>* @llvm_mips_fcge_w_ARG1
54   %1 = load <4 x float>* @llvm_mips_fcge_w_ARG2
55   %2 = tail call <4 x i32> @llvm.mips.fcge.w(<4 x float> %0, <4 x float> %1)
56   store <4 x i32> %2, <4 x i32>* @llvm_mips_fcge_w_RES
57   ret void
58 }
59
60 declare <4 x i32> @llvm.mips.fcge.w(<4 x float>, <4 x float>) nounwind
61
62 ; CHECK: llvm_mips_fcge_w_test:
63 ; CHECK: ld.w
64 ; CHECK: ld.w
65 ; CHECK: fcge.w
66 ; CHECK: st.w
67 ; CHECK: .size llvm_mips_fcge_w_test
68 ;
69 @llvm_mips_fcge_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
70 @llvm_mips_fcge_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
71 @llvm_mips_fcge_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
72
73 define void @llvm_mips_fcge_d_test() nounwind {
74 entry:
75   %0 = load <2 x double>* @llvm_mips_fcge_d_ARG1
76   %1 = load <2 x double>* @llvm_mips_fcge_d_ARG2
77   %2 = tail call <2 x i64> @llvm.mips.fcge.d(<2 x double> %0, <2 x double> %1)
78   store <2 x i64> %2, <2 x i64>* @llvm_mips_fcge_d_RES
79   ret void
80 }
81
82 declare <2 x i64> @llvm.mips.fcge.d(<2 x double>, <2 x double>) nounwind
83
84 ; CHECK: llvm_mips_fcge_d_test:
85 ; CHECK: ld.d
86 ; CHECK: ld.d
87 ; CHECK: fcge.d
88 ; CHECK: st.d
89 ; CHECK: .size llvm_mips_fcge_d_test
90 ;
91 @llvm_mips_fcgt_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
92 @llvm_mips_fcgt_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
93 @llvm_mips_fcgt_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
94
95 define void @llvm_mips_fcgt_w_test() nounwind {
96 entry:
97   %0 = load <4 x float>* @llvm_mips_fcgt_w_ARG1
98   %1 = load <4 x float>* @llvm_mips_fcgt_w_ARG2
99   %2 = tail call <4 x i32> @llvm.mips.fcgt.w(<4 x float> %0, <4 x float> %1)
100   store <4 x i32> %2, <4 x i32>* @llvm_mips_fcgt_w_RES
101   ret void
102 }
103
104 declare <4 x i32> @llvm.mips.fcgt.w(<4 x float>, <4 x float>) nounwind
105
106 ; CHECK: llvm_mips_fcgt_w_test:
107 ; CHECK: ld.w
108 ; CHECK: ld.w
109 ; CHECK: fcgt.w
110 ; CHECK: st.w
111 ; CHECK: .size llvm_mips_fcgt_w_test
112 ;
113 @llvm_mips_fcgt_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
114 @llvm_mips_fcgt_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
115 @llvm_mips_fcgt_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
116
117 define void @llvm_mips_fcgt_d_test() nounwind {
118 entry:
119   %0 = load <2 x double>* @llvm_mips_fcgt_d_ARG1
120   %1 = load <2 x double>* @llvm_mips_fcgt_d_ARG2
121   %2 = tail call <2 x i64> @llvm.mips.fcgt.d(<2 x double> %0, <2 x double> %1)
122   store <2 x i64> %2, <2 x i64>* @llvm_mips_fcgt_d_RES
123   ret void
124 }
125
126 declare <2 x i64> @llvm.mips.fcgt.d(<2 x double>, <2 x double>) nounwind
127
128 ; CHECK: llvm_mips_fcgt_d_test:
129 ; CHECK: ld.d
130 ; CHECK: ld.d
131 ; CHECK: fcgt.d
132 ; CHECK: st.d
133 ; CHECK: .size llvm_mips_fcgt_d_test
134 ;
135 @llvm_mips_fcle_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
136 @llvm_mips_fcle_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
137 @llvm_mips_fcle_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
138
139 define void @llvm_mips_fcle_w_test() nounwind {
140 entry:
141   %0 = load <4 x float>* @llvm_mips_fcle_w_ARG1
142   %1 = load <4 x float>* @llvm_mips_fcle_w_ARG2
143   %2 = tail call <4 x i32> @llvm.mips.fcle.w(<4 x float> %0, <4 x float> %1)
144   store <4 x i32> %2, <4 x i32>* @llvm_mips_fcle_w_RES
145   ret void
146 }
147
148 declare <4 x i32> @llvm.mips.fcle.w(<4 x float>, <4 x float>) nounwind
149
150 ; CHECK: llvm_mips_fcle_w_test:
151 ; CHECK: ld.w
152 ; CHECK: ld.w
153 ; CHECK: fcle.w
154 ; CHECK: st.w
155 ; CHECK: .size llvm_mips_fcle_w_test
156 ;
157 @llvm_mips_fcle_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
158 @llvm_mips_fcle_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
159 @llvm_mips_fcle_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
160
161 define void @llvm_mips_fcle_d_test() nounwind {
162 entry:
163   %0 = load <2 x double>* @llvm_mips_fcle_d_ARG1
164   %1 = load <2 x double>* @llvm_mips_fcle_d_ARG2
165   %2 = tail call <2 x i64> @llvm.mips.fcle.d(<2 x double> %0, <2 x double> %1)
166   store <2 x i64> %2, <2 x i64>* @llvm_mips_fcle_d_RES
167   ret void
168 }
169
170 declare <2 x i64> @llvm.mips.fcle.d(<2 x double>, <2 x double>) nounwind
171
172 ; CHECK: llvm_mips_fcle_d_test:
173 ; CHECK: ld.d
174 ; CHECK: ld.d
175 ; CHECK: fcle.d
176 ; CHECK: st.d
177 ; CHECK: .size llvm_mips_fcle_d_test
178 ;
179 @llvm_mips_fclt_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
180 @llvm_mips_fclt_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
181 @llvm_mips_fclt_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
182
183 define void @llvm_mips_fclt_w_test() nounwind {
184 entry:
185   %0 = load <4 x float>* @llvm_mips_fclt_w_ARG1
186   %1 = load <4 x float>* @llvm_mips_fclt_w_ARG2
187   %2 = tail call <4 x i32> @llvm.mips.fclt.w(<4 x float> %0, <4 x float> %1)
188   store <4 x i32> %2, <4 x i32>* @llvm_mips_fclt_w_RES
189   ret void
190 }
191
192 declare <4 x i32> @llvm.mips.fclt.w(<4 x float>, <4 x float>) nounwind
193
194 ; CHECK: llvm_mips_fclt_w_test:
195 ; CHECK: ld.w
196 ; CHECK: ld.w
197 ; CHECK: fclt.w
198 ; CHECK: st.w
199 ; CHECK: .size llvm_mips_fclt_w_test
200 ;
201 @llvm_mips_fclt_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
202 @llvm_mips_fclt_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
203 @llvm_mips_fclt_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
204
205 define void @llvm_mips_fclt_d_test() nounwind {
206 entry:
207   %0 = load <2 x double>* @llvm_mips_fclt_d_ARG1
208   %1 = load <2 x double>* @llvm_mips_fclt_d_ARG2
209   %2 = tail call <2 x i64> @llvm.mips.fclt.d(<2 x double> %0, <2 x double> %1)
210   store <2 x i64> %2, <2 x i64>* @llvm_mips_fclt_d_RES
211   ret void
212 }
213
214 declare <2 x i64> @llvm.mips.fclt.d(<2 x double>, <2 x double>) nounwind
215
216 ; CHECK: llvm_mips_fclt_d_test:
217 ; CHECK: ld.d
218 ; CHECK: ld.d
219 ; CHECK: fclt.d
220 ; CHECK: st.d
221 ; CHECK: .size llvm_mips_fclt_d_test
222 ;
223 @llvm_mips_fcne_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
224 @llvm_mips_fcne_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
225 @llvm_mips_fcne_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
226
227 define void @llvm_mips_fcne_w_test() nounwind {
228 entry:
229   %0 = load <4 x float>* @llvm_mips_fcne_w_ARG1
230   %1 = load <4 x float>* @llvm_mips_fcne_w_ARG2
231   %2 = tail call <4 x i32> @llvm.mips.fcne.w(<4 x float> %0, <4 x float> %1)
232   store <4 x i32> %2, <4 x i32>* @llvm_mips_fcne_w_RES
233   ret void
234 }
235
236 declare <4 x i32> @llvm.mips.fcne.w(<4 x float>, <4 x float>) nounwind
237
238 ; CHECK: llvm_mips_fcne_w_test:
239 ; CHECK: ld.w
240 ; CHECK: ld.w
241 ; CHECK: fcne.w
242 ; CHECK: st.w
243 ; CHECK: .size llvm_mips_fcne_w_test
244 ;
245 @llvm_mips_fcne_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
246 @llvm_mips_fcne_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
247 @llvm_mips_fcne_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
248
249 define void @llvm_mips_fcne_d_test() nounwind {
250 entry:
251   %0 = load <2 x double>* @llvm_mips_fcne_d_ARG1
252   %1 = load <2 x double>* @llvm_mips_fcne_d_ARG2
253   %2 = tail call <2 x i64> @llvm.mips.fcne.d(<2 x double> %0, <2 x double> %1)
254   store <2 x i64> %2, <2 x i64>* @llvm_mips_fcne_d_RES
255   ret void
256 }
257
258 declare <2 x i64> @llvm.mips.fcne.d(<2 x double>, <2 x double>) nounwind
259
260 ; CHECK: llvm_mips_fcne_d_test:
261 ; CHECK: ld.d
262 ; CHECK: ld.d
263 ; CHECK: fcne.d
264 ; CHECK: st.d
265 ; CHECK: .size llvm_mips_fcne_d_test
266 ;
267 @llvm_mips_fcun_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
268 @llvm_mips_fcun_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
269 @llvm_mips_fcun_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
270
271 define void @llvm_mips_fcun_w_test() nounwind {
272 entry:
273   %0 = load <4 x float>* @llvm_mips_fcun_w_ARG1
274   %1 = load <4 x float>* @llvm_mips_fcun_w_ARG2
275   %2 = tail call <4 x i32> @llvm.mips.fcun.w(<4 x float> %0, <4 x float> %1)
276   store <4 x i32> %2, <4 x i32>* @llvm_mips_fcun_w_RES
277   ret void
278 }
279
280 declare <4 x i32> @llvm.mips.fcun.w(<4 x float>, <4 x float>) nounwind
281
282 ; CHECK: llvm_mips_fcun_w_test:
283 ; CHECK: ld.w
284 ; CHECK: ld.w
285 ; CHECK: fcun.w
286 ; CHECK: st.w
287 ; CHECK: .size llvm_mips_fcun_w_test
288 ;
289 @llvm_mips_fcun_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
290 @llvm_mips_fcun_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
291 @llvm_mips_fcun_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
292
293 define void @llvm_mips_fcun_d_test() nounwind {
294 entry:
295   %0 = load <2 x double>* @llvm_mips_fcun_d_ARG1
296   %1 = load <2 x double>* @llvm_mips_fcun_d_ARG2
297   %2 = tail call <2 x i64> @llvm.mips.fcun.d(<2 x double> %0, <2 x double> %1)
298   store <2 x i64> %2, <2 x i64>* @llvm_mips_fcun_d_RES
299   ret void
300 }
301
302 declare <2 x i64> @llvm.mips.fcun.d(<2 x double>, <2 x double>) nounwind
303
304 ; CHECK: llvm_mips_fcun_d_test:
305 ; CHECK: ld.d
306 ; CHECK: ld.d
307 ; CHECK: fcun.d
308 ; CHECK: st.d
309 ; CHECK: .size llvm_mips_fcun_d_test
310 ;
311 @llvm_mips_fseq_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
312 @llvm_mips_fseq_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
313 @llvm_mips_fseq_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
314
315 define void @llvm_mips_fseq_w_test() nounwind {
316 entry:
317   %0 = load <4 x float>* @llvm_mips_fseq_w_ARG1
318   %1 = load <4 x float>* @llvm_mips_fseq_w_ARG2
319   %2 = tail call <4 x i32> @llvm.mips.fseq.w(<4 x float> %0, <4 x float> %1)
320   store <4 x i32> %2, <4 x i32>* @llvm_mips_fseq_w_RES
321   ret void
322 }
323
324 declare <4 x i32> @llvm.mips.fseq.w(<4 x float>, <4 x float>) nounwind
325
326 ; CHECK: llvm_mips_fseq_w_test:
327 ; CHECK: ld.w
328 ; CHECK: ld.w
329 ; CHECK: fseq.w
330 ; CHECK: st.w
331 ; CHECK: .size llvm_mips_fseq_w_test
332 ;
333 @llvm_mips_fseq_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
334 @llvm_mips_fseq_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
335 @llvm_mips_fseq_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
336
337 define void @llvm_mips_fseq_d_test() nounwind {
338 entry:
339   %0 = load <2 x double>* @llvm_mips_fseq_d_ARG1
340   %1 = load <2 x double>* @llvm_mips_fseq_d_ARG2
341   %2 = tail call <2 x i64> @llvm.mips.fseq.d(<2 x double> %0, <2 x double> %1)
342   store <2 x i64> %2, <2 x i64>* @llvm_mips_fseq_d_RES
343   ret void
344 }
345
346 declare <2 x i64> @llvm.mips.fseq.d(<2 x double>, <2 x double>) nounwind
347
348 ; CHECK: llvm_mips_fseq_d_test:
349 ; CHECK: ld.d
350 ; CHECK: ld.d
351 ; CHECK: fseq.d
352 ; CHECK: st.d
353 ; CHECK: .size llvm_mips_fseq_d_test
354 ;
355 @llvm_mips_fsge_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
356 @llvm_mips_fsge_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
357 @llvm_mips_fsge_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
358
359 define void @llvm_mips_fsge_w_test() nounwind {
360 entry:
361   %0 = load <4 x float>* @llvm_mips_fsge_w_ARG1
362   %1 = load <4 x float>* @llvm_mips_fsge_w_ARG2
363   %2 = tail call <4 x i32> @llvm.mips.fsge.w(<4 x float> %0, <4 x float> %1)
364   store <4 x i32> %2, <4 x i32>* @llvm_mips_fsge_w_RES
365   ret void
366 }
367
368 declare <4 x i32> @llvm.mips.fsge.w(<4 x float>, <4 x float>) nounwind
369
370 ; CHECK: llvm_mips_fsge_w_test:
371 ; CHECK: ld.w
372 ; CHECK: ld.w
373 ; CHECK: fsge.w
374 ; CHECK: st.w
375 ; CHECK: .size llvm_mips_fsge_w_test
376 ;
377 @llvm_mips_fsge_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
378 @llvm_mips_fsge_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
379 @llvm_mips_fsge_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
380
381 define void @llvm_mips_fsge_d_test() nounwind {
382 entry:
383   %0 = load <2 x double>* @llvm_mips_fsge_d_ARG1
384   %1 = load <2 x double>* @llvm_mips_fsge_d_ARG2
385   %2 = tail call <2 x i64> @llvm.mips.fsge.d(<2 x double> %0, <2 x double> %1)
386   store <2 x i64> %2, <2 x i64>* @llvm_mips_fsge_d_RES
387   ret void
388 }
389
390 declare <2 x i64> @llvm.mips.fsge.d(<2 x double>, <2 x double>) nounwind
391
392 ; CHECK: llvm_mips_fsge_d_test:
393 ; CHECK: ld.d
394 ; CHECK: ld.d
395 ; CHECK: fsge.d
396 ; CHECK: st.d
397 ; CHECK: .size llvm_mips_fsge_d_test
398 ;
399 @llvm_mips_fsgt_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
400 @llvm_mips_fsgt_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
401 @llvm_mips_fsgt_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
402
403 define void @llvm_mips_fsgt_w_test() nounwind {
404 entry:
405   %0 = load <4 x float>* @llvm_mips_fsgt_w_ARG1
406   %1 = load <4 x float>* @llvm_mips_fsgt_w_ARG2
407   %2 = tail call <4 x i32> @llvm.mips.fsgt.w(<4 x float> %0, <4 x float> %1)
408   store <4 x i32> %2, <4 x i32>* @llvm_mips_fsgt_w_RES
409   ret void
410 }
411
412 declare <4 x i32> @llvm.mips.fsgt.w(<4 x float>, <4 x float>) nounwind
413
414 ; CHECK: llvm_mips_fsgt_w_test:
415 ; CHECK: ld.w
416 ; CHECK: ld.w
417 ; CHECK: fsgt.w
418 ; CHECK: st.w
419 ; CHECK: .size llvm_mips_fsgt_w_test
420 ;
421 @llvm_mips_fsgt_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
422 @llvm_mips_fsgt_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
423 @llvm_mips_fsgt_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
424
425 define void @llvm_mips_fsgt_d_test() nounwind {
426 entry:
427   %0 = load <2 x double>* @llvm_mips_fsgt_d_ARG1
428   %1 = load <2 x double>* @llvm_mips_fsgt_d_ARG2
429   %2 = tail call <2 x i64> @llvm.mips.fsgt.d(<2 x double> %0, <2 x double> %1)
430   store <2 x i64> %2, <2 x i64>* @llvm_mips_fsgt_d_RES
431   ret void
432 }
433
434 declare <2 x i64> @llvm.mips.fsgt.d(<2 x double>, <2 x double>) nounwind
435
436 ; CHECK: llvm_mips_fsgt_d_test:
437 ; CHECK: ld.d
438 ; CHECK: ld.d
439 ; CHECK: fsgt.d
440 ; CHECK: st.d
441 ; CHECK: .size llvm_mips_fsgt_d_test
442 ;
443 @llvm_mips_fsle_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
444 @llvm_mips_fsle_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
445 @llvm_mips_fsle_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
446
447 define void @llvm_mips_fsle_w_test() nounwind {
448 entry:
449   %0 = load <4 x float>* @llvm_mips_fsle_w_ARG1
450   %1 = load <4 x float>* @llvm_mips_fsle_w_ARG2
451   %2 = tail call <4 x i32> @llvm.mips.fsle.w(<4 x float> %0, <4 x float> %1)
452   store <4 x i32> %2, <4 x i32>* @llvm_mips_fsle_w_RES
453   ret void
454 }
455
456 declare <4 x i32> @llvm.mips.fsle.w(<4 x float>, <4 x float>) nounwind
457
458 ; CHECK: llvm_mips_fsle_w_test:
459 ; CHECK: ld.w
460 ; CHECK: ld.w
461 ; CHECK: fsle.w
462 ; CHECK: st.w
463 ; CHECK: .size llvm_mips_fsle_w_test
464 ;
465 @llvm_mips_fsle_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
466 @llvm_mips_fsle_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
467 @llvm_mips_fsle_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
468
469 define void @llvm_mips_fsle_d_test() nounwind {
470 entry:
471   %0 = load <2 x double>* @llvm_mips_fsle_d_ARG1
472   %1 = load <2 x double>* @llvm_mips_fsle_d_ARG2
473   %2 = tail call <2 x i64> @llvm.mips.fsle.d(<2 x double> %0, <2 x double> %1)
474   store <2 x i64> %2, <2 x i64>* @llvm_mips_fsle_d_RES
475   ret void
476 }
477
478 declare <2 x i64> @llvm.mips.fsle.d(<2 x double>, <2 x double>) nounwind
479
480 ; CHECK: llvm_mips_fsle_d_test:
481 ; CHECK: ld.d
482 ; CHECK: ld.d
483 ; CHECK: fsle.d
484 ; CHECK: st.d
485 ; CHECK: .size llvm_mips_fsle_d_test
486 ;
487 @llvm_mips_fslt_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
488 @llvm_mips_fslt_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
489 @llvm_mips_fslt_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
490
491 define void @llvm_mips_fslt_w_test() nounwind {
492 entry:
493   %0 = load <4 x float>* @llvm_mips_fslt_w_ARG1
494   %1 = load <4 x float>* @llvm_mips_fslt_w_ARG2
495   %2 = tail call <4 x i32> @llvm.mips.fslt.w(<4 x float> %0, <4 x float> %1)
496   store <4 x i32> %2, <4 x i32>* @llvm_mips_fslt_w_RES
497   ret void
498 }
499
500 declare <4 x i32> @llvm.mips.fslt.w(<4 x float>, <4 x float>) nounwind
501
502 ; CHECK: llvm_mips_fslt_w_test:
503 ; CHECK: ld.w
504 ; CHECK: ld.w
505 ; CHECK: fslt.w
506 ; CHECK: st.w
507 ; CHECK: .size llvm_mips_fslt_w_test
508 ;
509 @llvm_mips_fslt_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
510 @llvm_mips_fslt_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
511 @llvm_mips_fslt_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
512
513 define void @llvm_mips_fslt_d_test() nounwind {
514 entry:
515   %0 = load <2 x double>* @llvm_mips_fslt_d_ARG1
516   %1 = load <2 x double>* @llvm_mips_fslt_d_ARG2
517   %2 = tail call <2 x i64> @llvm.mips.fslt.d(<2 x double> %0, <2 x double> %1)
518   store <2 x i64> %2, <2 x i64>* @llvm_mips_fslt_d_RES
519   ret void
520 }
521
522 declare <2 x i64> @llvm.mips.fslt.d(<2 x double>, <2 x double>) nounwind
523
524 ; CHECK: llvm_mips_fslt_d_test:
525 ; CHECK: ld.d
526 ; CHECK: ld.d
527 ; CHECK: fslt.d
528 ; CHECK: st.d
529 ; CHECK: .size llvm_mips_fslt_d_test
530 ;
531 @llvm_mips_fsne_w_ARG1 = global <4 x float> <float 0.000000e+00, float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, align 16
532 @llvm_mips_fsne_w_ARG2 = global <4 x float> <float 4.000000e+00, float 5.000000e+00, float 6.000000e+00, float 7.000000e+00>, align 16
533 @llvm_mips_fsne_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
534
535 define void @llvm_mips_fsne_w_test() nounwind {
536 entry:
537   %0 = load <4 x float>* @llvm_mips_fsne_w_ARG1
538   %1 = load <4 x float>* @llvm_mips_fsne_w_ARG2
539   %2 = tail call <4 x i32> @llvm.mips.fsne.w(<4 x float> %0, <4 x float> %1)
540   store <4 x i32> %2, <4 x i32>* @llvm_mips_fsne_w_RES
541   ret void
542 }
543
544 declare <4 x i32> @llvm.mips.fsne.w(<4 x float>, <4 x float>) nounwind
545
546 ; CHECK: llvm_mips_fsne_w_test:
547 ; CHECK: ld.w
548 ; CHECK: ld.w
549 ; CHECK: fsne.w
550 ; CHECK: st.w
551 ; CHECK: .size llvm_mips_fsne_w_test
552 ;
553 @llvm_mips_fsne_d_ARG1 = global <2 x double> <double 0.000000e+00, double 1.000000e+00>, align 16
554 @llvm_mips_fsne_d_ARG2 = global <2 x double> <double 2.000000e+00, double 3.000000e+00>, align 16
555 @llvm_mips_fsne_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
556
557 define void @llvm_mips_fsne_d_test() nounwind {
558 entry:
559   %0 = load <2 x double>* @llvm_mips_fsne_d_ARG1
560   %1 = load <2 x double>* @llvm_mips_fsne_d_ARG2
561   %2 = tail call <2 x i64> @llvm.mips.fsne.d(<2 x double> %0, <2 x double> %1)
562   store <2 x i64> %2, <2 x i64>* @llvm_mips_fsne_d_RES
563   ret void
564 }
565
566 declare <2 x i64> @llvm.mips.fsne.d(<2 x double>, <2 x double>) nounwind
567
568 ; CHECK: llvm_mips_fsne_d_test:
569 ; CHECK: ld.d
570 ; CHECK: ld.d
571 ; CHECK: fsne.d
572 ; CHECK: st.d
573 ; CHECK: .size llvm_mips_fsne_d_test
574 ;