@@ -24,15 +24,12 @@ define float @maximumnum_float(float %x, float %y) {
24
24
; MIPS64R2-NEXT: c.ule.s $f12, $f13
25
25
; MIPS64R2-NEXT: mov.s $f0, $f13
26
26
; MIPS64R2-NEXT: movf.s $f0, $f12, $fcc0
27
- ; MIPS64R2-NEXT: add.s $f1, $f0, $f0
28
- ; MIPS64R2-NEXT: c.un.s $f0, $f0
29
- ; MIPS64R2-NEXT: movt.s $f0, $f1, $fcc0
30
27
; MIPS64R2-NEXT: mfc1 $1, $f12
31
28
; MIPS64R2-NEXT: mov.s $f1, $f0
32
29
; MIPS64R2-NEXT: movz.s $f1, $f12, $1
33
30
; MIPS64R2-NEXT: mfc1 $1, $f13
34
- ; MIPS64R2-NEXT: mtc1 $zero, $f2
35
31
; MIPS64R2-NEXT: movz.s $f1, $f13, $1
32
+ ; MIPS64R2-NEXT: mtc1 $zero, $f2
36
33
; MIPS64R2-NEXT: c.eq.s $f0, $f2
37
34
; MIPS64R2-NEXT: jr $ra
38
35
; MIPS64R2-NEXT: movt.s $f0, $f1, $fcc0
@@ -56,11 +53,8 @@ define float @maximumnum_float_nsz(float %x, float %y) {
56
53
; MIPS64R2-NEXT: c.un.s $f13, $f13
57
54
; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
58
55
; MIPS64R2-NEXT: c.ule.s $f12, $f0
59
- ; MIPS64R2-NEXT: movf.s $f0, $f12, $fcc0
60
- ; MIPS64R2-NEXT: add.s $f1, $f0, $f0
61
- ; MIPS64R2-NEXT: c.un.s $f0, $f0
62
56
; MIPS64R2-NEXT: jr $ra
63
- ; MIPS64R2-NEXT: movt .s $f0, $f1 , $fcc0
57
+ ; MIPS64R2-NEXT: movf .s $f0, $f12 , $fcc0
64
58
%z = call nsz float @llvm.maximumnum.f32 (float %x , float %y )
65
59
ret float %z
66
60
}
@@ -107,9 +101,6 @@ define double @maximumnum_double(double %x, double %y) {
107
101
; MIPS64R2-NEXT: c.ule.d $f12, $f13
108
102
; MIPS64R2-NEXT: mov.d $f0, $f13
109
103
; MIPS64R2-NEXT: movf.d $f0, $f12, $fcc0
110
- ; MIPS64R2-NEXT: add.d $f1, $f0, $f0
111
- ; MIPS64R2-NEXT: c.un.d $f0, $f0
112
- ; MIPS64R2-NEXT: movt.d $f0, $f1, $fcc0
113
104
; MIPS64R2-NEXT: dmfc1 $1, $f12
114
105
; MIPS64R2-NEXT: mov.d $f1, $f0
115
106
; MIPS64R2-NEXT: movz.d $f1, $f12, $1
@@ -139,11 +130,8 @@ define double @maximumnum_double_nsz(double %x, double %y) {
139
130
; MIPS64R2-NEXT: c.un.d $f13, $f13
140
131
; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
141
132
; MIPS64R2-NEXT: c.ule.d $f12, $f0
142
- ; MIPS64R2-NEXT: movf.d $f0, $f12, $fcc0
143
- ; MIPS64R2-NEXT: add.d $f1, $f0, $f0
144
- ; MIPS64R2-NEXT: c.un.d $f0, $f0
145
133
; MIPS64R2-NEXT: jr $ra
146
- ; MIPS64R2-NEXT: movt .d $f0, $f1 , $fcc0
134
+ ; MIPS64R2-NEXT: movf .d $f0, $f12 , $fcc0
147
135
%z = call nsz double @llvm.maximumnum.f64 (double %x , double %y )
148
136
ret double %z
149
137
}
@@ -189,18 +177,15 @@ define float @minimumnum_float(float %x, float %y) {
189
177
; MIPS64R2-NEXT: c.olt.s $f12, $f13
190
178
; MIPS64R2-NEXT: mov.s $f0, $f13
191
179
; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
192
- ; MIPS64R2-NEXT: add.s $f1, $f0, $f0
193
- ; MIPS64R2-NEXT: c.un.s $f0, $f0
194
- ; MIPS64R2-NEXT: movt.s $f0, $f1, $fcc0
195
180
; MIPS64R2-NEXT: mfc1 $1, $f12
196
181
; MIPS64R2-NEXT: lui $2, 32768
197
182
; MIPS64R2-NEXT: xor $1, $1, $2
198
183
; MIPS64R2-NEXT: mov.s $f1, $f0
199
184
; MIPS64R2-NEXT: movz.s $f1, $f12, $1
200
185
; MIPS64R2-NEXT: mfc1 $1, $f13
201
186
; MIPS64R2-NEXT: xor $1, $1, $2
202
- ; MIPS64R2-NEXT: mtc1 $zero, $f2
203
187
; MIPS64R2-NEXT: movz.s $f1, $f13, $1
188
+ ; MIPS64R2-NEXT: mtc1 $zero, $f2
204
189
; MIPS64R2-NEXT: c.eq.s $f0, $f2
205
190
; MIPS64R2-NEXT: jr $ra
206
191
; MIPS64R2-NEXT: movt.s $f0, $f1, $fcc0
@@ -224,11 +209,8 @@ define float @minimumnum_float_nsz(float %x, float %y) {
224
209
; MIPS64R2-NEXT: c.un.s $f13, $f13
225
210
; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
226
211
; MIPS64R2-NEXT: c.olt.s $f12, $f0
227
- ; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
228
- ; MIPS64R2-NEXT: add.s $f1, $f0, $f0
229
- ; MIPS64R2-NEXT: c.un.s $f0, $f0
230
212
; MIPS64R2-NEXT: jr $ra
231
- ; MIPS64R2-NEXT: movt.s $f0, $f1 , $fcc0
213
+ ; MIPS64R2-NEXT: movt.s $f0, $f12 , $fcc0
232
214
%z = call nsz float @llvm.minimumnum.f32 (float %x , float %y )
233
215
ret float %z
234
216
}
@@ -277,9 +259,6 @@ define double @minimumnum_double(double %x, double %y) {
277
259
; MIPS64R2-NEXT: c.olt.d $f12, $f13
278
260
; MIPS64R2-NEXT: mov.d $f0, $f13
279
261
; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
280
- ; MIPS64R2-NEXT: add.d $f1, $f0, $f0
281
- ; MIPS64R2-NEXT: c.un.d $f0, $f0
282
- ; MIPS64R2-NEXT: movt.d $f0, $f1, $fcc0
283
262
; MIPS64R2-NEXT: dmfc1 $1, $f12
284
263
; MIPS64R2-NEXT: daddiu $2, $zero, 1
285
264
; MIPS64R2-NEXT: dsll $2, $2, 63
@@ -313,11 +292,8 @@ define double @minimumnum_double_nsz(double %x, double %y) {
313
292
; MIPS64R2-NEXT: c.un.d $f13, $f13
314
293
; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
315
294
; MIPS64R2-NEXT: c.olt.d $f12, $f0
316
- ; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
317
- ; MIPS64R2-NEXT: add.d $f1, $f0, $f0
318
- ; MIPS64R2-NEXT: c.un.d $f0, $f0
319
295
; MIPS64R2-NEXT: jr $ra
320
- ; MIPS64R2-NEXT: movt.d $f0, $f1 , $fcc0
296
+ ; MIPS64R2-NEXT: movt.d $f0, $f12 , $fcc0
321
297
%z = call nsz double @llvm.minimumnum.f64 (double %x , double %y )
322
298
ret double %z
323
299
}
0 commit comments