@@ -17,18 +17,16 @@ define float @maximumnum_float(float %x, float %y) {
17
17
;
18
18
; MIPS64R2-LABEL: maximumnum_float:
19
19
; MIPS64R2: # %bb.0:
20
+ ; MIPS64R2-NEXT: mov.s $f0, $f13
20
21
; MIPS64R2-NEXT: c.un.s $f12, $f12
21
22
; MIPS64R2-NEXT: movt.s $f12, $f13, $fcc0
22
23
; 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
24
+ ; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
27
25
; MIPS64R2-NEXT: mfc1 $1, $f12
28
26
; MIPS64R2-NEXT: mov.s $f1, $f0
29
27
; MIPS64R2-NEXT: movz.s $f1, $f12, $1
30
- ; MIPS64R2-NEXT: mfc1 $1 , $f13
31
- ; MIPS64R2-NEXT: movz .s $f1 , $f13 , $1
28
+ ; MIPS64R2-NEXT: c.ule.s $f12 , $f0
29
+ ; MIPS64R2-NEXT: movf .s $f0 , $f12 , $fcc0
32
30
; MIPS64R2-NEXT: mtc1 $zero, $f2
33
31
; MIPS64R2-NEXT: c.eq.s $f0, $f2
34
32
; MIPS64R2-NEXT: jr $ra
@@ -67,14 +65,12 @@ define float @maximumnum_float_nnan(float %x, float %y) {
67
65
;
68
66
; MIPS64R2-LABEL: maximumnum_float_nnan:
69
67
; MIPS64R2: # %bb.0:
70
- ; MIPS64R2-NEXT: c.ule.s $f12, $f13
71
68
; MIPS64R2-NEXT: mov.s $f0, $f13
72
- ; MIPS64R2-NEXT: movf.s $f0, $f12, $fcc0
73
69
; MIPS64R2-NEXT: mfc1 $1, $f12
74
- ; MIPS64R2-NEXT: mov.s $f1, $f0
70
+ ; MIPS64R2-NEXT: mov.s $f1, $f13
75
71
; MIPS64R2-NEXT: movz.s $f1, $f12, $1
76
- ; MIPS64R2-NEXT: mfc1 $1 , $f13
77
- ; MIPS64R2-NEXT: movz .s $f1 , $f13 , $1
72
+ ; MIPS64R2-NEXT: c.ule.s $f12 , $f13
73
+ ; MIPS64R2-NEXT: movf .s $f0 , $f12 , $fcc0
78
74
; MIPS64R2-NEXT: mtc1 $zero, $f2
79
75
; MIPS64R2-NEXT: c.eq.s $f0, $f2
80
76
; MIPS64R2-NEXT: jr $ra
@@ -94,18 +90,16 @@ define double @maximumnum_double(double %x, double %y) {
94
90
;
95
91
; MIPS64R2-LABEL: maximumnum_double:
96
92
; MIPS64R2: # %bb.0:
93
+ ; MIPS64R2-NEXT: mov.d $f0, $f13
97
94
; MIPS64R2-NEXT: c.un.d $f12, $f12
98
95
; MIPS64R2-NEXT: movt.d $f12, $f13, $fcc0
99
96
; 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
97
+ ; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
104
98
; MIPS64R2-NEXT: dmfc1 $1, $f12
105
99
; MIPS64R2-NEXT: mov.d $f1, $f0
106
100
; MIPS64R2-NEXT: movz.d $f1, $f12, $1
107
- ; MIPS64R2-NEXT: dmfc1 $1 , $f13
108
- ; MIPS64R2-NEXT: movz .d $f1 , $f13 , $1
101
+ ; MIPS64R2-NEXT: c.ule.d $f12 , $f0
102
+ ; MIPS64R2-NEXT: movf .d $f0 , $f12 , $fcc0
109
103
; MIPS64R2-NEXT: dmtc1 $zero, $f2
110
104
; MIPS64R2-NEXT: c.eq.d $f0, $f2
111
105
; MIPS64R2-NEXT: jr $ra
@@ -144,14 +138,12 @@ define double @maximumnum_double_nnan(double %x, double %y) {
144
138
;
145
139
; MIPS64R2-LABEL: maximumnum_double_nnan:
146
140
; MIPS64R2: # %bb.0:
147
- ; MIPS64R2-NEXT: c.ule.d $f12, $f13
148
141
; MIPS64R2-NEXT: mov.d $f0, $f13
149
- ; MIPS64R2-NEXT: movf.d $f0, $f12, $fcc0
150
142
; MIPS64R2-NEXT: dmfc1 $1, $f12
151
- ; MIPS64R2-NEXT: mov.d $f1, $f0
143
+ ; MIPS64R2-NEXT: mov.d $f1, $f13
152
144
; MIPS64R2-NEXT: movz.d $f1, $f12, $1
153
- ; MIPS64R2-NEXT: dmfc1 $1 , $f13
154
- ; MIPS64R2-NEXT: movz .d $f1 , $f13 , $1
145
+ ; MIPS64R2-NEXT: c.ule.d $f12 , $f13
146
+ ; MIPS64R2-NEXT: movf .d $f0 , $f12 , $fcc0
155
147
; MIPS64R2-NEXT: dmtc1 $zero, $f2
156
148
; MIPS64R2-NEXT: c.eq.d $f0, $f2
157
149
; MIPS64R2-NEXT: jr $ra
@@ -170,21 +162,16 @@ define float @minimumnum_float(float %x, float %y) {
170
162
;
171
163
; MIPS64R2-LABEL: minimumnum_float:
172
164
; MIPS64R2: # %bb.0:
165
+ ; MIPS64R2-NEXT: mov.s $f0, $f13
173
166
; MIPS64R2-NEXT: c.un.s $f12, $f12
174
167
; MIPS64R2-NEXT: movt.s $f12, $f13, $fcc0
175
168
; 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
169
; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
180
170
; MIPS64R2-NEXT: mfc1 $1, $f12
181
- ; MIPS64R2-NEXT: lui $2, 32768
182
- ; MIPS64R2-NEXT: xor $1, $1, $2
183
171
; 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
172
+ ; MIPS64R2-NEXT: movn.s $f1, $f12, $1
173
+ ; MIPS64R2-NEXT: c.olt.s $f12, $f0
174
+ ; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
188
175
; MIPS64R2-NEXT: mtc1 $zero, $f2
189
176
; MIPS64R2-NEXT: c.eq.s $f0, $f2
190
177
; MIPS64R2-NEXT: jr $ra
@@ -223,17 +210,12 @@ define float @minimumnum_float_nnan(float %x, float %y) {
223
210
;
224
211
; MIPS64R2-LABEL: minimumnum_float_nnan:
225
212
; MIPS64R2: # %bb.0:
226
- ; MIPS64R2-NEXT: c.olt.s $f12, $f13
227
213
; MIPS64R2-NEXT: mov.s $f0, $f13
228
- ; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
229
214
; 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
215
+ ; MIPS64R2-NEXT: mov.s $f1, $f13
216
+ ; MIPS64R2-NEXT: movn.s $f1, $f12, $1
217
+ ; MIPS64R2-NEXT: c.olt.s $f12, $f13
218
+ ; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
237
219
; MIPS64R2-NEXT: mtc1 $zero, $f2
238
220
; MIPS64R2-NEXT: c.eq.s $f0, $f2
239
221
; MIPS64R2-NEXT: jr $ra
@@ -252,22 +234,16 @@ define double @minimumnum_double(double %x, double %y) {
252
234
;
253
235
; MIPS64R2-LABEL: minimumnum_double:
254
236
; MIPS64R2: # %bb.0:
237
+ ; MIPS64R2-NEXT: mov.d $f0, $f13
255
238
; MIPS64R2-NEXT: c.un.d $f12, $f12
256
239
; MIPS64R2-NEXT: movt.d $f12, $f13, $fcc0
257
240
; 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
241
; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
262
242
; 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
243
; 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
244
+ ; MIPS64R2-NEXT: movn.d $f1, $f12, $1
245
+ ; MIPS64R2-NEXT: c.olt.d $f12, $f0
246
+ ; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
271
247
; MIPS64R2-NEXT: dmtc1 $zero, $f2
272
248
; MIPS64R2-NEXT: c.eq.d $f0, $f2
273
249
; MIPS64R2-NEXT: jr $ra
@@ -306,18 +282,12 @@ define double @minimumnum_double_nnan(double %x, double %y) {
306
282
;
307
283
; MIPS64R2-LABEL: minimumnum_double_nnan:
308
284
; MIPS64R2: # %bb.0:
309
- ; MIPS64R2-NEXT: c.olt.d $f12, $f13
310
285
; MIPS64R2-NEXT: mov.d $f0, $f13
286
+ ; MIPS64R2-NEXT: dmfc1 $1, $f12
287
+ ; MIPS64R2-NEXT: mov.d $f1, $f13
288
+ ; MIPS64R2-NEXT: movn.d $f1, $f12, $1
289
+ ; MIPS64R2-NEXT: c.olt.d $f12, $f13
311
290
; 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
291
; MIPS64R2-NEXT: dmtc1 $zero, $f2
322
292
; MIPS64R2-NEXT: c.eq.d $f0, $f2
323
293
; MIPS64R2-NEXT: jr $ra
0 commit comments