@@ -331,31 +331,35 @@ define double @maximumnum_double(double %x, double %y) {
331
331
; SPARC64-NEXT: mov %g0, %o1
332
332
; SPARC64-NEXT: fcmpd %fcc0, %f0, %f0
333
333
; SPARC64-NEXT: fmovdu %fcc0, %f2, %f0
334
- ; SPARC64-NEXT: std %f0, [%sp+2183]
334
+ ; SPARC64-NEXT: fdtos %f0, %f4
335
+ ; SPARC64-NEXT: st %f4, [%sp+2187]
335
336
; SPARC64-NEXT: fcmpd %fcc0, %f2, %f2
336
337
; SPARC64-NEXT: fmovdu %fcc0, %f0, %f2
337
- ; SPARC64-NEXT: std %f2, [%sp+2175]
338
+ ; SPARC64-NEXT: fdtos %f2, %f4
339
+ ; SPARC64-NEXT: st %f4, [%sp+2183]
338
340
; SPARC64-NEXT: fcmpd %fcc0, %f0, %f2
339
341
; SPARC64-NEXT: fmovd %f2, %f4
340
342
; SPARC64-NEXT: fmovdg %fcc0, %f0, %f4
341
- ; SPARC64-NEXT: ldx [%sp+2183 ], %o2
343
+ ; SPARC64-NEXT: ld [%sp+2187 ], %o2
342
344
; SPARC64-NEXT: faddd %f4, %f4, %f6
343
345
; SPARC64-NEXT: fcmpd %fcc0, %f4, %f4
344
346
; SPARC64-NEXT: fmovdu %fcc0, %f6, %f4
345
- ; SPARC64-NEXT: movrz %o2, 1, %o0
347
+ ; SPARC64-NEXT: cmp %o2, 0
348
+ ; SPARC64-NEXT: ld [%sp+2183], %o2
349
+ ; SPARC64-NEXT: move %icc, 1, %o0
346
350
; SPARC64-NEXT: cmp %o0, 0
347
- ; SPARC64-NEXT: ldx [%sp+2175] , %o0
348
- ; SPARC64-NEXT: sethi %h44(.LCPI3_0) , %o2
349
- ; SPARC64-NEXT: add %o2, %m44(.LCPI3_0), %o2
350
- ; SPARC64-NEXT: sllx %o2, 12, %o2
351
- ; SPARC64-NEXT: ldd [%o2+%l44 (.LCPI3_0)] , %f6
352
- ; SPARC64-NEXT: fmovd %f4, %f8
353
- ; SPARC64-NEXT: fmovdne %icc, %f0 , %f8
354
- ; SPARC64-NEXT: movrz %o0 , 1, %o1
351
+ ; SPARC64-NEXT: fmovd %f4 , %f6
352
+ ; SPARC64-NEXT: fmovdne %icc , %f0, %f6
353
+ ; SPARC64-NEXT: cmp %o2, 0
354
+ ; SPARC64-NEXT: sethi %h44(.LCPI3_0), %o0
355
+ ; SPARC64-NEXT: add %o0, %m44 (.LCPI3_0), %o0
356
+ ; SPARC64-NEXT: sllx %o0, 12, %o0
357
+ ; SPARC64-NEXT: ldd [%o0+%l44(.LCPI3_0)] , %f0
358
+ ; SPARC64-NEXT: move %icc , 1, %o1
355
359
; SPARC64-NEXT: cmp %o1, 0
356
- ; SPARC64-NEXT: fmovdne %icc, %f2, %f8
357
- ; SPARC64-NEXT: fcmpd %fcc0, %f4, %f6
358
- ; SPARC64-NEXT: fmovde %fcc0, %f8 , %f4
360
+ ; SPARC64-NEXT: fmovdne %icc, %f2, %f6
361
+ ; SPARC64-NEXT: fcmpd %fcc0, %f4, %f0
362
+ ; SPARC64-NEXT: fmovde %fcc0, %f6 , %f4
359
363
; SPARC64-NEXT: fmovd %f4, %f0
360
364
; SPARC64-NEXT: retl
361
365
; SPARC64-NEXT: add %sp, 144, %sp
@@ -554,24 +558,28 @@ define double @maximumnum_double_nnan(double %x, double %y) {
554
558
; SPARC64-NEXT: .cfi_def_cfa_register %fp
555
559
; SPARC64-NEXT: .cfi_window_save
556
560
; SPARC64-NEXT: .cfi_register %o7, %i7
557
- ; SPARC64-NEXT: std %f2, [%sp+2175]
558
- ; SPARC64-NEXT: std %f0, [%sp+2183]
559
- ; SPARC64-NEXT: ldx [%sp+2183], %o0
561
+ ; SPARC64-NEXT: fdtos %f0, %f4
562
+ ; SPARC64-NEXT: st %f4, [%sp+2187]
563
+ ; SPARC64-NEXT: fdtos %f2, %f4
564
+ ; SPARC64-NEXT: st %f4, [%sp+2183]
565
+ ; SPARC64-NEXT: ld [%sp+2187], %o0
560
566
; SPARC64-NEXT: mov %g0, %o1
561
567
; SPARC64-NEXT: mov %g0, %o2
562
- ; SPARC64-NEXT: movrz %o0, 1, %o1
563
- ; SPARC64-NEXT: ldx [%sp+2175], %o0
564
568
; SPARC64-NEXT: fcmpd %fcc0, %f0, %f2
565
569
; SPARC64-NEXT: fmovd %f2, %f4
566
570
; SPARC64-NEXT: fmovdg %fcc0, %f0, %f4
571
+ ; SPARC64-NEXT: cmp %o0, 0
572
+ ; SPARC64-NEXT: ld [%sp+2183], %o0
573
+ ; SPARC64-NEXT: move %icc, 1, %o1
567
574
; SPARC64-NEXT: cmp %o1, 0
568
575
; SPARC64-NEXT: fmovd %f4, %f6
569
576
; SPARC64-NEXT: fmovdne %icc, %f0, %f6
570
- ; SPARC64-NEXT: sethi %h44(.LCPI5_0), %o1
571
- ; SPARC64-NEXT: add %o1, %m44(.LCPI5_0), %o1
572
- ; SPARC64-NEXT: sllx %o1, 12, %o1
573
- ; SPARC64-NEXT: ldd [%o1+%l44(.LCPI5_0)], %f0
574
- ; SPARC64-NEXT: movrz %o0, 1, %o2
577
+ ; SPARC64-NEXT: cmp %o0, 0
578
+ ; SPARC64-NEXT: sethi %h44(.LCPI5_0), %o0
579
+ ; SPARC64-NEXT: add %o0, %m44(.LCPI5_0), %o0
580
+ ; SPARC64-NEXT: sllx %o0, 12, %o0
581
+ ; SPARC64-NEXT: ldd [%o0+%l44(.LCPI5_0)], %f0
582
+ ; SPARC64-NEXT: move %icc, 1, %o2
575
583
; SPARC64-NEXT: cmp %o2, 0
576
584
; SPARC64-NEXT: fmovdne %icc, %f2, %f6
577
585
; SPARC64-NEXT: fcmpd %fcc0, %f4, %f0
@@ -997,35 +1005,32 @@ define double @minimumnum_double(double %x, double %y) {
997
1005
; SPARC64-NEXT: mov %g0, %o1
998
1006
; SPARC64-NEXT: fcmpd %fcc0, %f0, %f0
999
1007
; SPARC64-NEXT: fmovdu %fcc0, %f2, %f0
1000
- ; SPARC64-NEXT: std %f0, [%sp+2183]
1008
+ ; SPARC64-NEXT: fdtos %f0, %f4
1009
+ ; SPARC64-NEXT: st %f4, [%sp+2187]
1001
1010
; SPARC64-NEXT: fcmpd %fcc0, %f2, %f2
1002
1011
; SPARC64-NEXT: fmovdu %fcc0, %f0, %f2
1003
- ; SPARC64-NEXT: std %f2, [%sp+2175]
1012
+ ; SPARC64-NEXT: fdtos %f2, %f4
1013
+ ; SPARC64-NEXT: st %f4, [%sp+2183]
1004
1014
; SPARC64-NEXT: fcmpd %fcc0, %f0, %f2
1005
1015
; SPARC64-NEXT: fmovd %f2, %f4
1006
1016
; SPARC64-NEXT: fmovdl %fcc0, %f0, %f4
1007
- ; SPARC64-NEXT: sethi 0, %o2
1008
- ; SPARC64-NEXT: or %o2, 0, %o2
1009
- ; SPARC64-NEXT: sethi 2097152, %o3
1010
- ; SPARC64-NEXT: or %o3, 0, %o3
1011
- ; SPARC64-NEXT: sllx %o3, 32, %o3
1012
- ; SPARC64-NEXT: or %o3, %o2, %o2
1013
- ; SPARC64-NEXT: ldx [%sp+2183], %o3
1014
1017
; SPARC64-NEXT: faddd %f4, %f4, %f6
1018
+ ; SPARC64-NEXT: ld [%sp+2187], %o2
1015
1019
; SPARC64-NEXT: fcmpd %fcc0, %f4, %f4
1016
1020
; SPARC64-NEXT: fmovdu %fcc0, %f6, %f4
1017
- ; SPARC64-NEXT: cmp %o3, %o2
1018
- ; SPARC64-NEXT: ldx [%sp+2175], %o3
1019
- ; SPARC64-NEXT: move %xcc, 1, %o0
1021
+ ; SPARC64-NEXT: sethi 2097152, %o3
1022
+ ; SPARC64-NEXT: cmp %o2, %o3
1023
+ ; SPARC64-NEXT: ld [%sp+2183], %o2
1024
+ ; SPARC64-NEXT: move %icc, 1, %o0
1020
1025
; SPARC64-NEXT: cmp %o0, 0
1021
1026
; SPARC64-NEXT: fmovd %f4, %f6
1022
1027
; SPARC64-NEXT: fmovdne %icc, %f0, %f6
1023
- ; SPARC64-NEXT: cmp %o3 , %o2
1028
+ ; SPARC64-NEXT: cmp %o2 , %o3
1024
1029
; SPARC64-NEXT: sethi %h44(.LCPI9_0), %o0
1025
1030
; SPARC64-NEXT: add %o0, %m44(.LCPI9_0), %o0
1026
1031
; SPARC64-NEXT: sllx %o0, 12, %o0
1027
1032
; SPARC64-NEXT: ldd [%o0+%l44(.LCPI9_0)], %f0
1028
- ; SPARC64-NEXT: move %xcc , 1, %o1
1033
+ ; SPARC64-NEXT: move %icc , 1, %o1
1029
1034
; SPARC64-NEXT: cmp %o1, 0
1030
1035
; SPARC64-NEXT: fmovdne %icc, %f2, %f6
1031
1036
; SPARC64-NEXT: fcmpd %fcc0, %f4, %f0
@@ -1237,35 +1242,32 @@ define double @minimumnum_double_nnan(double %x, double %y) {
1237
1242
; SPARC64-NEXT: .cfi_def_cfa_register %fp
1238
1243
; SPARC64-NEXT: .cfi_window_save
1239
1244
; SPARC64-NEXT: .cfi_register %o7, %i7
1240
- ; SPARC64-NEXT: mov %g0, %o0
1245
+ ; SPARC64-NEXT: fdtos %f2, %f4
1246
+ ; SPARC64-NEXT: st %f4, [%sp+2183]
1247
+ ; SPARC64-NEXT: fdtos %f0, %f4
1248
+ ; SPARC64-NEXT: st %f4, [%sp+2187]
1249
+ ; SPARC64-NEXT: ld [%sp+2183], %o0
1241
1250
; SPARC64-NEXT: mov %g0, %o1
1242
- ; SPARC64-NEXT: std %f2, [%sp+2175]
1243
- ; SPARC64-NEXT: std %f0, [%sp+2183]
1244
- ; SPARC64-NEXT: ldx [%sp+2183], %o2
1245
- ; SPARC64-NEXT: sethi 0, %o3
1246
- ; SPARC64-NEXT: or %o3, 0, %o3
1251
+ ; SPARC64-NEXT: mov %g0, %o2
1252
+ ; SPARC64-NEXT: ld [%sp+2187], %o3
1247
1253
; SPARC64-NEXT: sethi 2097152, %o4
1248
- ; SPARC64-NEXT: or %o4, 0, %o4
1249
- ; SPARC64-NEXT: sllx %o4, 32, %o4
1250
- ; SPARC64-NEXT: or %o4, %o3, %o3
1251
- ; SPARC64-NEXT: cmp %o2, %o3
1252
- ; SPARC64-NEXT: ldx [%sp+2175], %o2
1253
- ; SPARC64-NEXT: move %xcc, 1, %o0
1254
+ ; SPARC64-NEXT: cmp %o0, %o4
1255
+ ; SPARC64-NEXT: move %icc, 1, %o1
1256
+ ; SPARC64-NEXT: cmp %o3, %o4
1257
+ ; SPARC64-NEXT: move %icc, 1, %o2
1254
1258
; SPARC64-NEXT: fcmpd %fcc0, %f0, %f2
1255
1259
; SPARC64-NEXT: fmovd %f2, %f4
1256
1260
; SPARC64-NEXT: fmovdl %fcc0, %f0, %f4
1257
- ; SPARC64-NEXT: cmp %o0 , 0
1261
+ ; SPARC64-NEXT: cmp %o2 , 0
1258
1262
; SPARC64-NEXT: fmovd %f4, %f6
1259
- ; SPARC64-NEXT: fmovdne %icc, %f0, %f6
1260
- ; SPARC64-NEXT: cmp %o2, %o3
1261
1263
; SPARC64-NEXT: sethi %h44(.LCPI11_0), %o0
1262
1264
; SPARC64-NEXT: add %o0, %m44(.LCPI11_0), %o0
1263
1265
; SPARC64-NEXT: sllx %o0, 12, %o0
1264
- ; SPARC64-NEXT: ldd [%o0+%l44(.LCPI11_0)], %f0
1265
- ; SPARC64-NEXT: move %xcc, 1 , %o1
1266
+ ; SPARC64-NEXT: ldd [%o0+%l44(.LCPI11_0)], %f8
1267
+ ; SPARC64-NEXT: fmovdne %icc, %f0 , %f6
1266
1268
; SPARC64-NEXT: cmp %o1, 0
1267
1269
; SPARC64-NEXT: fmovdne %icc, %f2, %f6
1268
- ; SPARC64-NEXT: fcmpd %fcc0, %f4, %f0
1270
+ ; SPARC64-NEXT: fcmpd %fcc0, %f4, %f8
1269
1271
; SPARC64-NEXT: fmovde %fcc0, %f6, %f4
1270
1272
; SPARC64-NEXT: fmovd %f4, %f0
1271
1273
; SPARC64-NEXT: retl
0 commit comments