@@ -2466,13 +2466,14 @@ define void @fminnum(float %b) {
2466
2466
; MIPSR6-O32-NEXT: lui $2, %hi(_gp_disp)
2467
2467
; MIPSR6-O32-NEXT: addiu $2, $2, %lo(_gp_disp)
2468
2468
; MIPSR6-O32-NEXT: addu $1, $2, $25
2469
+ ; MIPSR6-O32-NEXT: min.s $f0, $f12, $f12
2469
2470
; MIPSR6-O32-NEXT: lw $1, %got(g)($1)
2470
2471
; MIPSR6-O32-NEXT: lh $2, 0($1)
2471
- ; MIPSR6-O32-NEXT: fill.h $w0 , $2
2472
- ; MIPSR6-O32-NEXT: fexupr.w $w0 , $w0
2473
- ; MIPSR6-O32-NEXT: copy_s.w $2, $w0 [0]
2474
- ; MIPSR6-O32-NEXT: mtc1 $2, $f0
2475
- ; MIPSR6-O32-NEXT: min.s $f0, $f0 , $f12
2472
+ ; MIPSR6-O32-NEXT: fill.h $w1 , $2
2473
+ ; MIPSR6-O32-NEXT: fexupr.w $w1 , $w1
2474
+ ; MIPSR6-O32-NEXT: copy_s.w $2, $w1 [0]
2475
+ ; MIPSR6-O32-NEXT: mtc1 $2, $f1
2476
+ ; MIPSR6-O32-NEXT: min.s $f0, $f1 , $f0
2476
2477
; MIPSR6-O32-NEXT: mfc1 $2, $f0
2477
2478
; MIPSR6-O32-NEXT: fill.w $w0, $2
2478
2479
; MIPSR6-O32-NEXT: fexdo.h $w0, $w0, $w0
@@ -2485,13 +2486,14 @@ define void @fminnum(float %b) {
2485
2486
; MIPSR6-N32-NEXT: lui $1, %hi(%neg(%gp_rel(fminnum)))
2486
2487
; MIPSR6-N32-NEXT: addu $1, $1, $25
2487
2488
; MIPSR6-N32-NEXT: addiu $1, $1, %lo(%neg(%gp_rel(fminnum)))
2489
+ ; MIPSR6-N32-NEXT: min.s $f0, $f12, $f12
2488
2490
; MIPSR6-N32-NEXT: lw $1, %got_disp(g)($1)
2489
2491
; MIPSR6-N32-NEXT: lh $2, 0($1)
2490
- ; MIPSR6-N32-NEXT: fill.h $w0 , $2
2491
- ; MIPSR6-N32-NEXT: fexupr.w $w0 , $w0
2492
- ; MIPSR6-N32-NEXT: copy_s.w $2, $w0 [0]
2493
- ; MIPSR6-N32-NEXT: mtc1 $2, $f0
2494
- ; MIPSR6-N32-NEXT: min.s $f0, $f0 , $f12
2492
+ ; MIPSR6-N32-NEXT: fill.h $w1 , $2
2493
+ ; MIPSR6-N32-NEXT: fexupr.w $w1 , $w1
2494
+ ; MIPSR6-N32-NEXT: copy_s.w $2, $w1 [0]
2495
+ ; MIPSR6-N32-NEXT: mtc1 $2, $f1
2496
+ ; MIPSR6-N32-NEXT: min.s $f0, $f1 , $f0
2495
2497
; MIPSR6-N32-NEXT: mfc1 $2, $f0
2496
2498
; MIPSR6-N32-NEXT: fill.w $w0, $2
2497
2499
; MIPSR6-N32-NEXT: fexdo.h $w0, $w0, $w0
@@ -2504,20 +2506,20 @@ define void @fminnum(float %b) {
2504
2506
; MIPSR6-N64-NEXT: lui $1, %hi(%neg(%gp_rel(fminnum)))
2505
2507
; MIPSR6-N64-NEXT: daddu $1, $1, $25
2506
2508
; MIPSR6-N64-NEXT: daddiu $1, $1, %lo(%neg(%gp_rel(fminnum)))
2509
+ ; MIPSR6-N64-NEXT: min.s $f0, $f12, $f12
2507
2510
; MIPSR6-N64-NEXT: ld $1, %got_disp(g)($1)
2508
2511
; MIPSR6-N64-NEXT: lh $2, 0($1)
2509
- ; MIPSR6-N64-NEXT: fill.h $w0 , $2
2510
- ; MIPSR6-N64-NEXT: fexupr.w $w0 , $w0
2511
- ; MIPSR6-N64-NEXT: copy_s.w $2, $w0 [0]
2512
- ; MIPSR6-N64-NEXT: mtc1 $2, $f0
2513
- ; MIPSR6-N64-NEXT: min.s $f0, $f0 , $f12
2512
+ ; MIPSR6-N64-NEXT: fill.h $w1 , $2
2513
+ ; MIPSR6-N64-NEXT: fexupr.w $w1 , $w1
2514
+ ; MIPSR6-N64-NEXT: copy_s.w $2, $w1 [0]
2515
+ ; MIPSR6-N64-NEXT: mtc1 $2, $f1
2516
+ ; MIPSR6-N64-NEXT: min.s $f0, $f1 , $f0
2514
2517
; MIPSR6-N64-NEXT: mfc1 $2, $f0
2515
2518
; MIPSR6-N64-NEXT: fill.w $w0, $2
2516
2519
; MIPSR6-N64-NEXT: fexdo.h $w0, $w0, $w0
2517
2520
; MIPSR6-N64-NEXT: copy_u.h $2, $w0[0]
2518
2521
; MIPSR6-N64-NEXT: jr $ra
2519
2522
; MIPSR6-N64-NEXT: sh $2, 0($1)
2520
- ;
2521
2523
entry:
2522
2524
%0 = load i16 , ptr @g , align 2
2523
2525
%1 = call float @llvm.convert.from.fp16.f32 (i16 %0 )
@@ -2632,17 +2634,18 @@ define void @fmaxnum(float %b) {
2632
2634
; MIPS64R5-N64-NEXT: daddiu $sp, $sp, 32
2633
2635
;
2634
2636
; MIPSR6-O32-LABEL: fmaxnum:
2635
- ; MIPSR6-O32: # %bb.0:
2637
+ ; MIPSR6-O32: # %bb.0: # %entry
2636
2638
; MIPSR6-O32-NEXT: lui $2, %hi(_gp_disp)
2637
2639
; MIPSR6-O32-NEXT: addiu $2, $2, %lo(_gp_disp)
2638
2640
; MIPSR6-O32-NEXT: addu $1, $2, $25
2641
+ ; MIPSR6-O32-NEXT: min.s $f0, $f12, $f12
2639
2642
; MIPSR6-O32-NEXT: lw $1, %got(g)($1)
2640
2643
; MIPSR6-O32-NEXT: lh $2, 0($1)
2641
- ; MIPSR6-O32-NEXT: fill.h $w0 , $2
2642
- ; MIPSR6-O32-NEXT: fexupr.w $w0 , $w0
2643
- ; MIPSR6-O32-NEXT: copy_s.w $2, $w0 [0]
2644
- ; MIPSR6-O32-NEXT: mtc1 $2, $f0
2645
- ; MIPSR6-O32-NEXT: max.s $f0, $f0 , $f12
2644
+ ; MIPSR6-O32-NEXT: fill.h $w1 , $2
2645
+ ; MIPSR6-O32-NEXT: fexupr.w $w1 , $w1
2646
+ ; MIPSR6-O32-NEXT: copy_s.w $2, $w1 [0]
2647
+ ; MIPSR6-O32-NEXT: mtc1 $2, $f1
2648
+ ; MIPSR6-O32-NEXT: max.s $f0, $f1 , $f0
2646
2649
; MIPSR6-O32-NEXT: mfc1 $2, $f0
2647
2650
; MIPSR6-O32-NEXT: fill.w $w0, $2
2648
2651
; MIPSR6-O32-NEXT: fexdo.h $w0, $w0, $w0
@@ -2651,17 +2654,18 @@ define void @fmaxnum(float %b) {
2651
2654
; MIPSR6-O32-NEXT: sh $2, 0($1)
2652
2655
;
2653
2656
; MIPSR6-N32-LABEL: fmaxnum:
2654
- ; MIPSR6-N32: # %bb.0:
2657
+ ; MIPSR6-N32: # %bb.0: # %entry
2655
2658
; MIPSR6-N32-NEXT: lui $1, %hi(%neg(%gp_rel(fmaxnum)))
2656
2659
; MIPSR6-N32-NEXT: addu $1, $1, $25
2657
2660
; MIPSR6-N32-NEXT: addiu $1, $1, %lo(%neg(%gp_rel(fmaxnum)))
2661
+ ; MIPSR6-N32-NEXT: min.s $f0, $f12, $f12
2658
2662
; MIPSR6-N32-NEXT: lw $1, %got_disp(g)($1)
2659
2663
; MIPSR6-N32-NEXT: lh $2, 0($1)
2660
- ; MIPSR6-N32-NEXT: fill.h $w0 , $2
2661
- ; MIPSR6-N32-NEXT: fexupr.w $w0 , $w0
2662
- ; MIPSR6-N32-NEXT: copy_s.w $2, $w0 [0]
2663
- ; MIPSR6-N32-NEXT: mtc1 $2, $f0
2664
- ; MIPSR6-N32-NEXT: max.s $f0, $f0 , $f12
2664
+ ; MIPSR6-N32-NEXT: fill.h $w1 , $2
2665
+ ; MIPSR6-N32-NEXT: fexupr.w $w1 , $w1
2666
+ ; MIPSR6-N32-NEXT: copy_s.w $2, $w1 [0]
2667
+ ; MIPSR6-N32-NEXT: mtc1 $2, $f1
2668
+ ; MIPSR6-N32-NEXT: max.s $f0, $f1 , $f0
2665
2669
; MIPSR6-N32-NEXT: mfc1 $2, $f0
2666
2670
; MIPSR6-N32-NEXT: fill.w $w0, $2
2667
2671
; MIPSR6-N32-NEXT: fexdo.h $w0, $w0, $w0
@@ -2670,17 +2674,18 @@ define void @fmaxnum(float %b) {
2670
2674
; MIPSR6-N32-NEXT: sh $2, 0($1)
2671
2675
;
2672
2676
; MIPSR6-N64-LABEL: fmaxnum:
2673
- ; MIPSR6-N64: # %bb.0:
2677
+ ; MIPSR6-N64: # %bb.0: # %entry
2674
2678
; MIPSR6-N64-NEXT: lui $1, %hi(%neg(%gp_rel(fmaxnum)))
2675
2679
; MIPSR6-N64-NEXT: daddu $1, $1, $25
2676
2680
; MIPSR6-N64-NEXT: daddiu $1, $1, %lo(%neg(%gp_rel(fmaxnum)))
2681
+ ; MIPSR6-N64-NEXT: min.s $f0, $f12, $f12
2677
2682
; MIPSR6-N64-NEXT: ld $1, %got_disp(g)($1)
2678
2683
; MIPSR6-N64-NEXT: lh $2, 0($1)
2679
- ; MIPSR6-N64-NEXT: fill.h $w0 , $2
2680
- ; MIPSR6-N64-NEXT: fexupr.w $w0 , $w0
2681
- ; MIPSR6-N64-NEXT: copy_s.w $2, $w0 [0]
2682
- ; MIPSR6-N64-NEXT: mtc1 $2, $f0
2683
- ; MIPSR6-N64-NEXT: max.s $f0, $f0 , $f12
2684
+ ; MIPSR6-N64-NEXT: fill.h $w1 , $2
2685
+ ; MIPSR6-N64-NEXT: fexupr.w $w1 , $w1
2686
+ ; MIPSR6-N64-NEXT: copy_s.w $2, $w1 [0]
2687
+ ; MIPSR6-N64-NEXT: mtc1 $2, $f1
2688
+ ; MIPSR6-N64-NEXT: max.s $f0, $f1 , $f0
2684
2689
; MIPSR6-N64-NEXT: mfc1 $2, $f0
2685
2690
; MIPSR6-N64-NEXT: fill.w $w0, $2
2686
2691
; MIPSR6-N64-NEXT: fexdo.h $w0, $w0, $w0
0 commit comments