@@ -24,15 +24,12 @@ define float @maximumnum_float(float %x, float %y) {
2424; MIPS64R2-NEXT: c.ule.s $f12, $f13
2525; MIPS64R2-NEXT: mov.s $f0, $f13
2626; 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
3027; MIPS64R2-NEXT: mfc1 $1, $f12
3128; MIPS64R2-NEXT: mov.s $f1, $f0
3229; MIPS64R2-NEXT: movz.s $f1, $f12, $1
3330; MIPS64R2-NEXT: mfc1 $1, $f13
34- ; MIPS64R2-NEXT: mtc1 $zero, $f2
3531; MIPS64R2-NEXT: movz.s $f1, $f13, $1
32+ ; MIPS64R2-NEXT: mtc1 $zero, $f2
3633; MIPS64R2-NEXT: c.eq.s $f0, $f2
3734; MIPS64R2-NEXT: jr $ra
3835; MIPS64R2-NEXT: movt.s $f0, $f1, $fcc0
@@ -56,11 +53,8 @@ define float @maximumnum_float_nsz(float %x, float %y) {
5653; MIPS64R2-NEXT: c.un.s $f13, $f13
5754; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
5855; 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
6256; MIPS64R2-NEXT: jr $ra
63- ; MIPS64R2-NEXT: movt .s $f0, $f1 , $fcc0
57+ ; MIPS64R2-NEXT: movf .s $f0, $f12 , $fcc0
6458 %z = call nsz float @llvm.maximumnum.f32 (float %x , float %y )
6559 ret float %z
6660}
@@ -107,9 +101,6 @@ define double @maximumnum_double(double %x, double %y) {
107101; MIPS64R2-NEXT: c.ule.d $f12, $f13
108102; MIPS64R2-NEXT: mov.d $f0, $f13
109103; 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
113104; MIPS64R2-NEXT: dmfc1 $1, $f12
114105; MIPS64R2-NEXT: mov.d $f1, $f0
115106; MIPS64R2-NEXT: movz.d $f1, $f12, $1
@@ -139,11 +130,8 @@ define double @maximumnum_double_nsz(double %x, double %y) {
139130; MIPS64R2-NEXT: c.un.d $f13, $f13
140131; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
141132; 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
145133; MIPS64R2-NEXT: jr $ra
146- ; MIPS64R2-NEXT: movt .d $f0, $f1 , $fcc0
134+ ; MIPS64R2-NEXT: movf .d $f0, $f12 , $fcc0
147135 %z = call nsz double @llvm.maximumnum.f64 (double %x , double %y )
148136 ret double %z
149137}
@@ -189,18 +177,15 @@ define float @minimumnum_float(float %x, float %y) {
189177; MIPS64R2-NEXT: c.olt.s $f12, $f13
190178; MIPS64R2-NEXT: mov.s $f0, $f13
191179; 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
195180; MIPS64R2-NEXT: mfc1 $1, $f12
196181; MIPS64R2-NEXT: lui $2, 32768
197182; MIPS64R2-NEXT: xor $1, $1, $2
198183; MIPS64R2-NEXT: mov.s $f1, $f0
199184; MIPS64R2-NEXT: movz.s $f1, $f12, $1
200185; MIPS64R2-NEXT: mfc1 $1, $f13
201186; MIPS64R2-NEXT: xor $1, $1, $2
202- ; MIPS64R2-NEXT: mtc1 $zero, $f2
203187; MIPS64R2-NEXT: movz.s $f1, $f13, $1
188+ ; MIPS64R2-NEXT: mtc1 $zero, $f2
204189; MIPS64R2-NEXT: c.eq.s $f0, $f2
205190; MIPS64R2-NEXT: jr $ra
206191; MIPS64R2-NEXT: movt.s $f0, $f1, $fcc0
@@ -224,11 +209,8 @@ define float @minimumnum_float_nsz(float %x, float %y) {
224209; MIPS64R2-NEXT: c.un.s $f13, $f13
225210; MIPS64R2-NEXT: movt.s $f0, $f12, $fcc0
226211; 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
230212; MIPS64R2-NEXT: jr $ra
231- ; MIPS64R2-NEXT: movt.s $f0, $f1 , $fcc0
213+ ; MIPS64R2-NEXT: movt.s $f0, $f12 , $fcc0
232214 %z = call nsz float @llvm.minimumnum.f32 (float %x , float %y )
233215 ret float %z
234216}
@@ -277,9 +259,6 @@ define double @minimumnum_double(double %x, double %y) {
277259; MIPS64R2-NEXT: c.olt.d $f12, $f13
278260; MIPS64R2-NEXT: mov.d $f0, $f13
279261; 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
283262; MIPS64R2-NEXT: dmfc1 $1, $f12
284263; MIPS64R2-NEXT: daddiu $2, $zero, 1
285264; MIPS64R2-NEXT: dsll $2, $2, 63
@@ -313,11 +292,8 @@ define double @minimumnum_double_nsz(double %x, double %y) {
313292; MIPS64R2-NEXT: c.un.d $f13, $f13
314293; MIPS64R2-NEXT: movt.d $f0, $f12, $fcc0
315294; 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
319295; MIPS64R2-NEXT: jr $ra
320- ; MIPS64R2-NEXT: movt.d $f0, $f1 , $fcc0
296+ ; MIPS64R2-NEXT: movt.d $f0, $f12 , $fcc0
321297 %z = call nsz double @llvm.minimumnum.f64 (double %x , double %y )
322298 ret double %z
323299}
0 commit comments