Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 8003083

Browse filesBrowse files
committed
Update testcase
1 parent a177172 commit 8003083
Copy full SHA for 8003083

File tree

2 files changed

+311
-162
lines changed
Filter options

2 files changed

+311
-162
lines changed

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

Copy file name to clipboardExpand all lines: llvm/test/CodeGen/Mips/fp-maximumnum-minimumnum.ll
+195Lines 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 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.