Skip to content

Commit f4eb172

Browse files
committed
Update testcase
1 parent 9287457 commit f4eb172

File tree

2 files changed

+311
-162
lines changed

2 files changed

+311
-162
lines changed

llvm/test/CodeGen/Mips/fp-maximumnum-minimumnum.ll

Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
22
; RUN: llc --mtriple=mipsisa32r6 < %s | FileCheck %s --check-prefix=MIPS32R6
3+
; RUN: llc --mtriple=mips64 < %s | FileCheck %s --check-prefix=MIPS64R2
34

45
declare float @llvm.maximumnum.f32(float, float)
56
declare double @llvm.maximumnum.f64(double, double)
@@ -13,6 +14,25 @@ define float @maximumnum_float(float %x, float %y) {
1314
; MIPS32R6-NEXT: min.s $f1, $f12, $f12
1415
; MIPS32R6-NEXT: jr $ra
1516
; MIPS32R6-NEXT: max.s $f0, $f1, $f0
17+
;
18+
; MIPS64R2-LABEL: maximumnum_float:
19+
; MIPS64R2: # %bb.0:
20+
; MIPS64R2-NEXT: c.un.s $f12, $f12
21+
; MIPS64R2-NEXT: movt.s $f12, $f13, $fcc0
22+
; MIPS64R2-NEXT: c.un.s $f13, $f13
23+
; MIPS64R2-NEXT: movt.s $f13, $f12, $fcc0
24+
; MIPS64R2-NEXT: c.ule.s $f12, $f13
25+
; MIPS64R2-NEXT: mov.s $f0, $f13
26+
; MIPS64R2-NEXT: movf.s $f0, $f12, $fcc0
27+
; MIPS64R2-NEXT: mfc1 $1, $f12
28+
; MIPS64R2-NEXT: mov.s $f1, $f0
29+
; MIPS64R2-NEXT: movz.s $f1, $f12, $1
30+
; MIPS64R2-NEXT: mfc1 $1, $f13
31+
; MIPS64R2-NEXT: movz.s $f1, $f13, $1
32+
; MIPS64R2-NEXT: mtc1 $zero, $f2
33+
; MIPS64R2-NEXT: c.eq.s $f0, $f2
34+
; MIPS64R2-NEXT: jr $ra
35+
; MIPS64R2-NEXT: movt.s $f0, $f1, $fcc0
1636
%z = call float @llvm.maximumnum.f32(float %x, float %y)
1737
ret float %z
1838
}
@@ -24,6 +44,17 @@ define float @maximumnum_float_nsz(float %x, float %y) {
2444
; MIPS32R6-NEXT: min.s $f1, $f12, $f12
2545
; MIPS32R6-NEXT: jr $ra
2646
; MIPS32R6-NEXT: max.s $f0, $f1, $f0
47+
;
48+
; MIPS64R2-LABEL: maximumnum_float_nsz:
49+
; MIPS64R2: # %bb.0:
50+
; MIPS64R2-NEXT: mov.s $f0, $f13
51+
; MIPS64R2-NEXT: c.un.s $f12, $f12
52+
; MIPS64R2-NEXT: movt.s $f12, $f13, $fcc0
53+
; MIPS64R2-NEXT: c.un.s $f13, $f13
54+
; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
55+
; MIPS64R2-NEXT: c.ule.s $f12, $f0
56+
; MIPS64R2-NEXT: jr $ra
57+
; MIPS64R2-NEXT: movf.s $f0, $f12, $fcc0
2758
%z = call nsz float @llvm.maximumnum.f32(float %x, float %y)
2859
ret float %z
2960
}
@@ -33,6 +64,21 @@ define float @maximumnum_float_nnan(float %x, float %y) {
3364
; MIPS32R6: # %bb.0:
3465
; MIPS32R6-NEXT: jr $ra
3566
; MIPS32R6-NEXT: max.s $f0, $f12, $f14
67+
;
68+
; MIPS64R2-LABEL: maximumnum_float_nnan:
69+
; MIPS64R2: # %bb.0:
70+
; MIPS64R2-NEXT: c.ule.s $f12, $f13
71+
; MIPS64R2-NEXT: mov.s $f0, $f13
72+
; MIPS64R2-NEXT: movf.s $f0, $f12, $fcc0
73+
; MIPS64R2-NEXT: mfc1 $1, $f12
74+
; MIPS64R2-NEXT: mov.s $f1, $f0
75+
; MIPS64R2-NEXT: movz.s $f1, $f12, $1
76+
; MIPS64R2-NEXT: mfc1 $1, $f13
77+
; MIPS64R2-NEXT: movz.s $f1, $f13, $1
78+
; MIPS64R2-NEXT: mtc1 $zero, $f2
79+
; MIPS64R2-NEXT: c.eq.s $f0, $f2
80+
; MIPS64R2-NEXT: jr $ra
81+
; MIPS64R2-NEXT: movt.s $f0, $f1, $fcc0
3682
%z = call nnan float @llvm.maximumnum.f32(float %x, float %y)
3783
ret float %z
3884
}
@@ -45,6 +91,25 @@ define double @maximumnum_double(double %x, double %y) {
4591
; MIPS32R6-NEXT: min.d $f1, $f12, $f12
4692
; MIPS32R6-NEXT: jr $ra
4793
; MIPS32R6-NEXT: max.d $f0, $f1, $f0
94+
;
95+
; MIPS64R2-LABEL: maximumnum_double:
96+
; MIPS64R2: # %bb.0:
97+
; MIPS64R2-NEXT: c.un.d $f12, $f12
98+
; MIPS64R2-NEXT: movt.d $f12, $f13, $fcc0
99+
; MIPS64R2-NEXT: c.un.d $f13, $f13
100+
; MIPS64R2-NEXT: movt.d $f13, $f12, $fcc0
101+
; MIPS64R2-NEXT: c.ule.d $f12, $f13
102+
; MIPS64R2-NEXT: mov.d $f0, $f13
103+
; MIPS64R2-NEXT: movf.d $f0, $f12, $fcc0
104+
; MIPS64R2-NEXT: dmfc1 $1, $f12
105+
; MIPS64R2-NEXT: mov.d $f1, $f0
106+
; MIPS64R2-NEXT: movz.d $f1, $f12, $1
107+
; MIPS64R2-NEXT: dmfc1 $1, $f13
108+
; MIPS64R2-NEXT: movz.d $f1, $f13, $1
109+
; MIPS64R2-NEXT: dmtc1 $zero, $f2
110+
; MIPS64R2-NEXT: c.eq.d $f0, $f2
111+
; MIPS64R2-NEXT: jr $ra
112+
; MIPS64R2-NEXT: movt.d $f0, $f1, $fcc0
48113
%z = call double @llvm.maximumnum.f64(double %x, double %y)
49114
ret double %z
50115
}
@@ -56,6 +121,17 @@ define double @maximumnum_double_nsz(double %x, double %y) {
56121
; MIPS32R6-NEXT: min.d $f1, $f12, $f12
57122
; MIPS32R6-NEXT: jr $ra
58123
; MIPS32R6-NEXT: max.d $f0, $f1, $f0
124+
;
125+
; MIPS64R2-LABEL: maximumnum_double_nsz:
126+
; MIPS64R2: # %bb.0:
127+
; MIPS64R2-NEXT: mov.d $f0, $f13
128+
; MIPS64R2-NEXT: c.un.d $f12, $f12
129+
; MIPS64R2-NEXT: movt.d $f12, $f13, $fcc0
130+
; MIPS64R2-NEXT: c.un.d $f13, $f13
131+
; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
132+
; MIPS64R2-NEXT: c.ule.d $f12, $f0
133+
; MIPS64R2-NEXT: jr $ra
134+
; MIPS64R2-NEXT: movf.d $f0, $f12, $fcc0
59135
%z = call nsz double @llvm.maximumnum.f64(double %x, double %y)
60136
ret double %z
61137
}
@@ -65,6 +141,21 @@ define double @maximumnum_double_nnan(double %x, double %y) {
65141
; MIPS32R6: # %bb.0:
66142
; MIPS32R6-NEXT: jr $ra
67143
; MIPS32R6-NEXT: max.d $f0, $f12, $f14
144+
;
145+
; MIPS64R2-LABEL: maximumnum_double_nnan:
146+
; MIPS64R2: # %bb.0:
147+
; MIPS64R2-NEXT: c.ule.d $f12, $f13
148+
; MIPS64R2-NEXT: mov.d $f0, $f13
149+
; MIPS64R2-NEXT: movf.d $f0, $f12, $fcc0
150+
; MIPS64R2-NEXT: dmfc1 $1, $f12
151+
; MIPS64R2-NEXT: mov.d $f1, $f0
152+
; MIPS64R2-NEXT: movz.d $f1, $f12, $1
153+
; MIPS64R2-NEXT: dmfc1 $1, $f13
154+
; MIPS64R2-NEXT: movz.d $f1, $f13, $1
155+
; MIPS64R2-NEXT: dmtc1 $zero, $f2
156+
; MIPS64R2-NEXT: c.eq.d $f0, $f2
157+
; MIPS64R2-NEXT: jr $ra
158+
; MIPS64R2-NEXT: movt.d $f0, $f1, $fcc0
68159
%z = call nnan double @llvm.maximumnum.f64(double %x, double %y)
69160
ret double %z
70161
}
@@ -76,6 +167,28 @@ define float @minimumnum_float(float %x, float %y) {
76167
; MIPS32R6-NEXT: min.s $f1, $f12, $f12
77168
; MIPS32R6-NEXT: jr $ra
78169
; MIPS32R6-NEXT: min.s $f0, $f1, $f0
170+
;
171+
; MIPS64R2-LABEL: minimumnum_float:
172+
; MIPS64R2: # %bb.0:
173+
; MIPS64R2-NEXT: c.un.s $f12, $f12
174+
; MIPS64R2-NEXT: movt.s $f12, $f13, $fcc0
175+
; MIPS64R2-NEXT: c.un.s $f13, $f13
176+
; MIPS64R2-NEXT: movt.s $f13, $f12, $fcc0
177+
; MIPS64R2-NEXT: c.olt.s $f12, $f13
178+
; MIPS64R2-NEXT: mov.s $f0, $f13
179+
; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
180+
; MIPS64R2-NEXT: mfc1 $1, $f12
181+
; MIPS64R2-NEXT: lui $2, 32768
182+
; MIPS64R2-NEXT: xor $1, $1, $2
183+
; MIPS64R2-NEXT: mov.s $f1, $f0
184+
; MIPS64R2-NEXT: movz.s $f1, $f12, $1
185+
; MIPS64R2-NEXT: mfc1 $1, $f13
186+
; MIPS64R2-NEXT: xor $1, $1, $2
187+
; MIPS64R2-NEXT: movz.s $f1, $f13, $1
188+
; MIPS64R2-NEXT: mtc1 $zero, $f2
189+
; MIPS64R2-NEXT: c.eq.s $f0, $f2
190+
; MIPS64R2-NEXT: jr $ra
191+
; MIPS64R2-NEXT: movt.s $f0, $f1, $fcc0
79192
%z = call float @llvm.minimumnum.f32(float %x, float %y)
80193
ret float %z
81194
}
@@ -87,6 +200,17 @@ define float @minimumnum_float_nsz(float %x, float %y) {
87200
; MIPS32R6-NEXT: min.s $f1, $f12, $f12
88201
; MIPS32R6-NEXT: jr $ra
89202
; MIPS32R6-NEXT: min.s $f0, $f1, $f0
203+
;
204+
; MIPS64R2-LABEL: minimumnum_float_nsz:
205+
; MIPS64R2: # %bb.0:
206+
; MIPS64R2-NEXT: mov.s $f0, $f13
207+
; MIPS64R2-NEXT: c.un.s $f12, $f12
208+
; MIPS64R2-NEXT: movt.s $f12, $f13, $fcc0
209+
; MIPS64R2-NEXT: c.un.s $f13, $f13
210+
; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
211+
; MIPS64R2-NEXT: c.olt.s $f12, $f0
212+
; MIPS64R2-NEXT: jr $ra
213+
; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
90214
%z = call nsz float @llvm.minimumnum.f32(float %x, float %y)
91215
ret float %z
92216
}
@@ -96,6 +220,24 @@ define float @minimumnum_float_nnan(float %x, float %y) {
96220
; MIPS32R6: # %bb.0:
97221
; MIPS32R6-NEXT: jr $ra
98222
; MIPS32R6-NEXT: min.s $f0, $f12, $f14
223+
;
224+
; MIPS64R2-LABEL: minimumnum_float_nnan:
225+
; MIPS64R2: # %bb.0:
226+
; MIPS64R2-NEXT: c.olt.s $f12, $f13
227+
; MIPS64R2-NEXT: mov.s $f0, $f13
228+
; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
229+
; MIPS64R2-NEXT: mfc1 $1, $f12
230+
; MIPS64R2-NEXT: lui $2, 32768
231+
; MIPS64R2-NEXT: xor $1, $1, $2
232+
; MIPS64R2-NEXT: mov.s $f1, $f0
233+
; MIPS64R2-NEXT: movz.s $f1, $f12, $1
234+
; MIPS64R2-NEXT: mfc1 $1, $f13
235+
; MIPS64R2-NEXT: xor $1, $1, $2
236+
; MIPS64R2-NEXT: movz.s $f1, $f13, $1
237+
; MIPS64R2-NEXT: mtc1 $zero, $f2
238+
; MIPS64R2-NEXT: c.eq.s $f0, $f2
239+
; MIPS64R2-NEXT: jr $ra
240+
; MIPS64R2-NEXT: movt.s $f0, $f1, $fcc0
99241
%z = call nnan float @llvm.minimumnum.f32(float %x, float %y)
100242
ret float %z
101243
}
@@ -107,6 +249,29 @@ define double @minimumnum_double(double %x, double %y) {
107249
; MIPS32R6-NEXT: min.d $f1, $f12, $f12
108250
; MIPS32R6-NEXT: jr $ra
109251
; MIPS32R6-NEXT: min.d $f0, $f1, $f0
252+
;
253+
; MIPS64R2-LABEL: minimumnum_double:
254+
; MIPS64R2: # %bb.0:
255+
; MIPS64R2-NEXT: c.un.d $f12, $f12
256+
; MIPS64R2-NEXT: movt.d $f12, $f13, $fcc0
257+
; MIPS64R2-NEXT: c.un.d $f13, $f13
258+
; MIPS64R2-NEXT: movt.d $f13, $f12, $fcc0
259+
; MIPS64R2-NEXT: c.olt.d $f12, $f13
260+
; MIPS64R2-NEXT: mov.d $f0, $f13
261+
; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
262+
; MIPS64R2-NEXT: dmfc1 $1, $f12
263+
; MIPS64R2-NEXT: daddiu $2, $zero, 1
264+
; MIPS64R2-NEXT: dsll $2, $2, 63
265+
; MIPS64R2-NEXT: xor $1, $1, $2
266+
; MIPS64R2-NEXT: mov.d $f1, $f0
267+
; MIPS64R2-NEXT: movz.d $f1, $f12, $1
268+
; MIPS64R2-NEXT: dmfc1 $1, $f13
269+
; MIPS64R2-NEXT: xor $1, $1, $2
270+
; MIPS64R2-NEXT: movz.d $f1, $f13, $1
271+
; MIPS64R2-NEXT: dmtc1 $zero, $f2
272+
; MIPS64R2-NEXT: c.eq.d $f0, $f2
273+
; MIPS64R2-NEXT: jr $ra
274+
; MIPS64R2-NEXT: movt.d $f0, $f1, $fcc0
110275
%z = call double @llvm.minimumnum.f64(double %x, double %y)
111276
ret double %z
112277
}
@@ -118,6 +283,17 @@ define double @minimumnum_double_nsz(double %x, double %y) {
118283
; MIPS32R6-NEXT: min.d $f1, $f12, $f12
119284
; MIPS32R6-NEXT: jr $ra
120285
; MIPS32R6-NEXT: min.d $f0, $f1, $f0
286+
;
287+
; MIPS64R2-LABEL: minimumnum_double_nsz:
288+
; MIPS64R2: # %bb.0:
289+
; MIPS64R2-NEXT: mov.d $f0, $f13
290+
; MIPS64R2-NEXT: c.un.d $f12, $f12
291+
; MIPS64R2-NEXT: movt.d $f12, $f13, $fcc0
292+
; MIPS64R2-NEXT: c.un.d $f13, $f13
293+
; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
294+
; MIPS64R2-NEXT: c.olt.d $f12, $f0
295+
; MIPS64R2-NEXT: jr $ra
296+
; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
121297
%z = call nsz double @llvm.minimumnum.f64(double %x, double %y)
122298
ret double %z
123299
}
@@ -127,6 +303,25 @@ define double @minimumnum_double_nnan(double %x, double %y) {
127303
; MIPS32R6: # %bb.0:
128304
; MIPS32R6-NEXT: jr $ra
129305
; MIPS32R6-NEXT: min.d $f0, $f12, $f14
306+
;
307+
; MIPS64R2-LABEL: minimumnum_double_nnan:
308+
; MIPS64R2: # %bb.0:
309+
; MIPS64R2-NEXT: c.olt.d $f12, $f13
310+
; MIPS64R2-NEXT: mov.d $f0, $f13
311+
; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
312+
; MIPS64R2-NEXT: daddiu $1, $zero, 1
313+
; MIPS64R2-NEXT: dsll $1, $1, 63
314+
; MIPS64R2-NEXT: dmfc1 $2, $f12
315+
; MIPS64R2-NEXT: xor $2, $2, $1
316+
; MIPS64R2-NEXT: mov.d $f1, $f0
317+
; MIPS64R2-NEXT: movz.d $f1, $f12, $2
318+
; MIPS64R2-NEXT: dmfc1 $2, $f13
319+
; MIPS64R2-NEXT: xor $1, $2, $1
320+
; MIPS64R2-NEXT: movz.d $f1, $f13, $1
321+
; MIPS64R2-NEXT: dmtc1 $zero, $f2
322+
; MIPS64R2-NEXT: c.eq.d $f0, $f2
323+
; MIPS64R2-NEXT: jr $ra
324+
; MIPS64R2-NEXT: movt.d $f0, $f1, $fcc0
130325
%z = call nnan double @llvm.minimumnum.f64(double %x, double %y)
131326
ret double %z
132327
}

0 commit comments

Comments
 (0)