@@ -242,59 +242,59 @@ define half @test_v16f16(<16 x half> %a) nounwind {
242
242
; CHECK-NOFP-SD-NEXT: fcsel s3, s5, s4, gt
243
243
; CHECK-NOFP-SD-NEXT: mov h4, v1.h[3]
244
244
; CHECK-NOFP-SD-NEXT: mov h5, v0.h[3]
245
- ; CHECK-NOFP-SD-NEXT: fcvt h2, s2
246
245
; CHECK-NOFP-SD-NEXT: fcvt h3, s3
246
+ ; CHECK-NOFP-SD-NEXT: fcvt h2, s2
247
247
; CHECK-NOFP-SD-NEXT: fcvt s4, h4
248
248
; CHECK-NOFP-SD-NEXT: fcvt s5, h5
249
- ; CHECK-NOFP-SD-NEXT: fcvt s2, h2
250
249
; CHECK-NOFP-SD-NEXT: fcvt s3, h3
250
+ ; CHECK-NOFP-SD-NEXT: fcvt s2, h2
251
251
; CHECK-NOFP-SD-NEXT: fcmp s5, s4
252
252
; CHECK-NOFP-SD-NEXT: fmaxnm s2, s2, s3
253
253
; CHECK-NOFP-SD-NEXT: fcsel s3, s5, s4, gt
254
254
; CHECK-NOFP-SD-NEXT: mov h4, v1.h[4]
255
255
; CHECK-NOFP-SD-NEXT: mov h5, v0.h[4]
256
- ; CHECK-NOFP-SD-NEXT: fcvt h2, s2
257
256
; CHECK-NOFP-SD-NEXT: fcvt h3, s3
257
+ ; CHECK-NOFP-SD-NEXT: fcvt h2, s2
258
258
; CHECK-NOFP-SD-NEXT: fcvt s4, h4
259
259
; CHECK-NOFP-SD-NEXT: fcvt s5, h5
260
- ; CHECK-NOFP-SD-NEXT: fcvt s2, h2
261
260
; CHECK-NOFP-SD-NEXT: fcvt s3, h3
261
+ ; CHECK-NOFP-SD-NEXT: fcvt s2, h2
262
262
; CHECK-NOFP-SD-NEXT: fcmp s5, s4
263
263
; CHECK-NOFP-SD-NEXT: fmaxnm s2, s2, s3
264
264
; CHECK-NOFP-SD-NEXT: fcsel s3, s5, s4, gt
265
265
; CHECK-NOFP-SD-NEXT: mov h4, v1.h[5]
266
266
; CHECK-NOFP-SD-NEXT: mov h5, v0.h[5]
267
- ; CHECK-NOFP-SD-NEXT: fcvt h2, s2
268
267
; CHECK-NOFP-SD-NEXT: fcvt h3, s3
268
+ ; CHECK-NOFP-SD-NEXT: fcvt h2, s2
269
269
; CHECK-NOFP-SD-NEXT: fcvt s4, h4
270
270
; CHECK-NOFP-SD-NEXT: fcvt s5, h5
271
- ; CHECK-NOFP-SD-NEXT: fcvt s2, h2
272
271
; CHECK-NOFP-SD-NEXT: fcvt s3, h3
272
+ ; CHECK-NOFP-SD-NEXT: fcvt s2, h2
273
273
; CHECK-NOFP-SD-NEXT: fcmp s5, s4
274
274
; CHECK-NOFP-SD-NEXT: fmaxnm s2, s2, s3
275
275
; CHECK-NOFP-SD-NEXT: fcsel s3, s5, s4, gt
276
276
; CHECK-NOFP-SD-NEXT: mov h4, v1.h[6]
277
277
; CHECK-NOFP-SD-NEXT: mov h5, v0.h[6]
278
278
; CHECK-NOFP-SD-NEXT: mov h1, v1.h[7]
279
279
; CHECK-NOFP-SD-NEXT: mov h0, v0.h[7]
280
- ; CHECK-NOFP-SD-NEXT: fcvt h2, s2
281
280
; CHECK-NOFP-SD-NEXT: fcvt h3, s3
281
+ ; CHECK-NOFP-SD-NEXT: fcvt h2, s2
282
282
; CHECK-NOFP-SD-NEXT: fcvt s4, h4
283
283
; CHECK-NOFP-SD-NEXT: fcvt s5, h5
284
284
; CHECK-NOFP-SD-NEXT: fcvt s1, h1
285
285
; CHECK-NOFP-SD-NEXT: fcvt s0, h0
286
- ; CHECK-NOFP-SD-NEXT: fcvt s2, h2
287
286
; CHECK-NOFP-SD-NEXT: fcvt s3, h3
287
+ ; CHECK-NOFP-SD-NEXT: fcvt s2, h2
288
288
; CHECK-NOFP-SD-NEXT: fcmp s5, s4
289
289
; CHECK-NOFP-SD-NEXT: fmaxnm s2, s2, s3
290
290
; CHECK-NOFP-SD-NEXT: fcsel s3, s5, s4, gt
291
291
; CHECK-NOFP-SD-NEXT: fcmp s0, s1
292
+ ; CHECK-NOFP-SD-NEXT: fcvt h3, s3
292
293
; CHECK-NOFP-SD-NEXT: fcsel s0, s0, s1, gt
293
294
; CHECK-NOFP-SD-NEXT: fcvt h2, s2
294
- ; CHECK-NOFP-SD-NEXT: fcvt h3, s3
295
295
; CHECK-NOFP-SD-NEXT: fcvt h0, s0
296
- ; CHECK-NOFP-SD-NEXT: fcvt s2, h2
297
296
; CHECK-NOFP-SD-NEXT: fcvt s3, h3
297
+ ; CHECK-NOFP-SD-NEXT: fcvt s2, h2
298
298
; CHECK-NOFP-SD-NEXT: fcvt s0, h0
299
299
; CHECK-NOFP-SD-NEXT: fmaxnm s2, s2, s3
300
300
; CHECK-NOFP-SD-NEXT: fcvt h1, s2
@@ -420,66 +420,66 @@ define half @test_v11f16(<11 x half> %a) nounwind {
420
420
; CHECK-NOFP-NEXT: fcvt s16, h16
421
421
; CHECK-NOFP-NEXT: fcvt s17, h17
422
422
; CHECK-NOFP-NEXT: fcvt s3, h3
423
+ ; CHECK-NOFP-NEXT: fcvt s4, h4
423
424
; CHECK-NOFP-NEXT: fcmp s1, s16
424
425
; CHECK-NOFP-NEXT: fcsel s1, s1, s16, gt
425
426
; CHECK-NOFP-NEXT: fcmp s0, s17
426
427
; CHECK-NOFP-NEXT: ldr h16, [sp, #16]
427
428
; CHECK-NOFP-NEXT: fcvt s16, h16
428
429
; CHECK-NOFP-NEXT: fcsel s0, s0, s17, gt
429
430
; CHECK-NOFP-NEXT: fcvt h1, s1
430
- ; CHECK-NOFP-NEXT: fcmp s2, s16
431
431
; CHECK-NOFP-NEXT: fcvt h0, s0
432
+ ; CHECK-NOFP-NEXT: fcmp s2, s16
432
433
; CHECK-NOFP-NEXT: fcvt s1, h1
433
434
; CHECK-NOFP-NEXT: fcvt s0, h0
434
435
; CHECK-NOFP-NEXT: fmaxnm s0, s0, s1
435
436
; CHECK-NOFP-NEXT: fcsel s1, s2, s16, gt
436
437
; CHECK-NOFP-NEXT: ldr h2, [x8, :lo12:.LCPI14_0]
437
438
; CHECK-NOFP-NEXT: mov w8, #-8388608 // =0xff800000
438
439
; CHECK-NOFP-NEXT: fcvt s2, h2
439
- ; CHECK-NOFP-NEXT: fmov s16, w8
440
- ; CHECK-NOFP-NEXT: fcvt h0, s0
441
440
; CHECK-NOFP-NEXT: fcvt h1, s1
441
+ ; CHECK-NOFP-NEXT: fcvt h0, s0
442
442
; CHECK-NOFP-NEXT: fcmp s3, s2
443
- ; CHECK-NOFP-NEXT: fcvt s0, h0
444
443
; CHECK-NOFP-NEXT: fcvt s1, h1
444
+ ; CHECK-NOFP-NEXT: fcvt s0, h0
445
445
; CHECK-NOFP-NEXT: fmaxnm s0, s0, s1
446
- ; CHECK-NOFP-NEXT: fcsel s1, s3, s16, gt
447
- ; CHECK-NOFP-NEXT: fcvt s3, h4
446
+ ; CHECK-NOFP-NEXT: fmov s1, w8
447
+ ; CHECK-NOFP-NEXT: fcsel s3, s3, s1, gt
448
+ ; CHECK-NOFP-NEXT: fcmp s4, s2
448
449
; CHECK-NOFP-NEXT: fcvt h0, s0
449
- ; CHECK-NOFP-NEXT: fcvt h1, s1
450
- ; CHECK-NOFP-NEXT: fcmp s3, s2
450
+ ; CHECK-NOFP-NEXT: fcvt h3, s3
451
451
; CHECK-NOFP-NEXT: fcvt s0, h0
452
- ; CHECK-NOFP-NEXT: fcvt s1, h1
453
- ; CHECK-NOFP-NEXT: fmaxnm s0, s0, s1
454
- ; CHECK-NOFP-NEXT: fcsel s1, s3, s16, gt
455
- ; CHECK-NOFP-NEXT: fcvt s3, h5
452
+ ; CHECK-NOFP-NEXT: fcvt s3, h3
453
+ ; CHECK-NOFP-NEXT: fmaxnm s0, s0, s3
454
+ ; CHECK-NOFP-NEXT: fcsel s3, s4, s1, gt
455
+ ; CHECK-NOFP-NEXT: fcvt s4, h5
456
+ ; CHECK-NOFP-NEXT: fcvt h3, s3
456
457
; CHECK-NOFP-NEXT: fcvt h0, s0
457
- ; CHECK-NOFP-NEXT: fcvt h1, s1
458
- ; CHECK-NOFP-NEXT: fcmp s3, s2
458
+ ; CHECK-NOFP-NEXT: fcmp s4, s2
459
+ ; CHECK-NOFP-NEXT: fcvt s3, h3
459
460
; CHECK-NOFP-NEXT: fcvt s0, h0
460
- ; CHECK-NOFP-NEXT: fcvt s1, h1
461
- ; CHECK-NOFP-NEXT: fmaxnm s0, s0 , s1
462
- ; CHECK-NOFP-NEXT: fcsel s1, s3, s16, gt
463
- ; CHECK-NOFP-NEXT: fcvt s3, h6
461
+ ; CHECK-NOFP-NEXT: fmaxnm s0, s0, s3
462
+ ; CHECK-NOFP-NEXT: fcsel s3, s4 , s1, gt
463
+ ; CHECK-NOFP-NEXT: fcvt s4, h6
464
+ ; CHECK-NOFP-NEXT: fcvt h3, s3
464
465
; CHECK-NOFP-NEXT: fcvt h0, s0
465
- ; CHECK-NOFP-NEXT: fcvt h1, s1
466
- ; CHECK-NOFP-NEXT: fcmp s3, s2
466
+ ; CHECK-NOFP-NEXT: fcmp s4, s2
467
+ ; CHECK-NOFP-NEXT: fcvt s3, h3
467
468
; CHECK-NOFP-NEXT: fcvt s0, h0
468
- ; CHECK-NOFP-NEXT: fcvt s1, h1
469
- ; CHECK-NOFP-NEXT: fmaxnm s0, s0 , s1
470
- ; CHECK-NOFP-NEXT: fcsel s1, s3, s16, gt
471
- ; CHECK-NOFP-NEXT: fcvt s3, h7
469
+ ; CHECK-NOFP-NEXT: fmaxnm s0, s0, s3
470
+ ; CHECK-NOFP-NEXT: fcsel s3, s4 , s1, gt
471
+ ; CHECK-NOFP-NEXT: fcvt s4, h7
472
+ ; CHECK-NOFP-NEXT: fcvt h3, s3
472
473
; CHECK-NOFP-NEXT: fcvt h0, s0
473
- ; CHECK-NOFP-NEXT: fcvt h1, s1
474
- ; CHECK-NOFP-NEXT: fcmp s3, s2
474
+ ; CHECK-NOFP-NEXT: fcmp s4, s2
475
+ ; CHECK-NOFP-NEXT: fcvt s3, h3
476
+ ; CHECK-NOFP-NEXT: fcsel s1, s4, s1, gt
475
477
; CHECK-NOFP-NEXT: fcvt s0, h0
478
+ ; CHECK-NOFP-NEXT: fcvt h1, s1
479
+ ; CHECK-NOFP-NEXT: fmaxnm s0, s0, s3
476
480
; CHECK-NOFP-NEXT: fcvt s1, h1
477
- ; CHECK-NOFP-NEXT: fmaxnm s0, s0, s1
478
- ; CHECK-NOFP-NEXT: fcsel s1, s3, s16, gt
479
481
; CHECK-NOFP-NEXT: fcvt h0, s0
480
- ; CHECK-NOFP-NEXT: fcvt h1, s1
481
482
; CHECK-NOFP-NEXT: fcvt s0, h0
482
- ; CHECK-NOFP-NEXT: fcvt s1, h1
483
483
; CHECK-NOFP-NEXT: fmaxnm s0, s0, s1
484
484
; CHECK-NOFP-NEXT: fcvt h0, s0
485
485
; CHECK-NOFP-NEXT: ret
@@ -527,15 +527,16 @@ define half @test_v11f16_ninf(<11 x half> %a) nounwind {
527
527
; CHECK-NOFP-NEXT: fcvt s16, h16
528
528
; CHECK-NOFP-NEXT: fcvt s17, h17
529
529
; CHECK-NOFP-NEXT: fcvt s3, h3
530
+ ; CHECK-NOFP-NEXT: fcvt s4, h4
530
531
; CHECK-NOFP-NEXT: fcmp s1, s16
531
532
; CHECK-NOFP-NEXT: fcsel s1, s1, s16, gt
532
533
; CHECK-NOFP-NEXT: fcmp s0, s17
533
534
; CHECK-NOFP-NEXT: ldr h16, [sp, #16]
534
535
; CHECK-NOFP-NEXT: fcvt s16, h16
535
536
; CHECK-NOFP-NEXT: fcsel s0, s0, s17, gt
536
537
; CHECK-NOFP-NEXT: fcvt h1, s1
537
- ; CHECK-NOFP-NEXT: fcmp s2, s16
538
538
; CHECK-NOFP-NEXT: fcvt h0, s0
539
+ ; CHECK-NOFP-NEXT: fcmp s2, s16
539
540
; CHECK-NOFP-NEXT: fcvt s1, h1
540
541
; CHECK-NOFP-NEXT: fcvt s0, h0
541
542
; CHECK-NOFP-NEXT: fmaxnm s0, s0, s1
@@ -544,50 +545,49 @@ define half @test_v11f16_ninf(<11 x half> %a) nounwind {
544
545
; CHECK-NOFP-NEXT: mov w8, #57344 // =0xe000
545
546
; CHECK-NOFP-NEXT: fcvt s2, h2
546
547
; CHECK-NOFP-NEXT: movk w8, #51071, lsl #16
547
- ; CHECK-NOFP-NEXT: fmov s16, w8
548
- ; CHECK-NOFP-NEXT: fcvt h0, s0
549
548
; CHECK-NOFP-NEXT: fcvt h1, s1
549
+ ; CHECK-NOFP-NEXT: fcvt h0, s0
550
550
; CHECK-NOFP-NEXT: fcmp s3, s2
551
- ; CHECK-NOFP-NEXT: fcvt s0, h0
552
551
; CHECK-NOFP-NEXT: fcvt s1, h1
552
+ ; CHECK-NOFP-NEXT: fcvt s0, h0
553
553
; CHECK-NOFP-NEXT: fmaxnm s0, s0, s1
554
- ; CHECK-NOFP-NEXT: fcsel s1, s3, s16, gt
555
- ; CHECK-NOFP-NEXT: fcvt s3, h4
554
+ ; CHECK-NOFP-NEXT: fmov s1, w8
555
+ ; CHECK-NOFP-NEXT: fcsel s3, s3, s1, gt
556
+ ; CHECK-NOFP-NEXT: fcmp s4, s2
556
557
; CHECK-NOFP-NEXT: fcvt h0, s0
557
- ; CHECK-NOFP-NEXT: fcvt h1, s1
558
- ; CHECK-NOFP-NEXT: fcmp s3, s2
558
+ ; CHECK-NOFP-NEXT: fcvt h3, s3
559
559
; CHECK-NOFP-NEXT: fcvt s0, h0
560
- ; CHECK-NOFP-NEXT: fcvt s1, h1
561
- ; CHECK-NOFP-NEXT: fmaxnm s0, s0, s1
562
- ; CHECK-NOFP-NEXT: fcsel s1, s3, s16, gt
563
- ; CHECK-NOFP-NEXT: fcvt s3, h5
560
+ ; CHECK-NOFP-NEXT: fcvt s3, h3
561
+ ; CHECK-NOFP-NEXT: fmaxnm s0, s0, s3
562
+ ; CHECK-NOFP-NEXT: fcsel s3, s4, s1, gt
563
+ ; CHECK-NOFP-NEXT: fcvt s4, h5
564
+ ; CHECK-NOFP-NEXT: fcvt h3, s3
564
565
; CHECK-NOFP-NEXT: fcvt h0, s0
565
- ; CHECK-NOFP-NEXT: fcvt h1, s1
566
- ; CHECK-NOFP-NEXT: fcmp s3, s2
566
+ ; CHECK-NOFP-NEXT: fcmp s4, s2
567
+ ; CHECK-NOFP-NEXT: fcvt s3, h3
567
568
; CHECK-NOFP-NEXT: fcvt s0, h0
568
- ; CHECK-NOFP-NEXT: fcvt s1, h1
569
- ; CHECK-NOFP-NEXT: fmaxnm s0, s0 , s1
570
- ; CHECK-NOFP-NEXT: fcsel s1, s3, s16, gt
571
- ; CHECK-NOFP-NEXT: fcvt s3, h6
569
+ ; CHECK-NOFP-NEXT: fmaxnm s0, s0, s3
570
+ ; CHECK-NOFP-NEXT: fcsel s3, s4 , s1, gt
571
+ ; CHECK-NOFP-NEXT: fcvt s4, h6
572
+ ; CHECK-NOFP-NEXT: fcvt h3, s3
572
573
; CHECK-NOFP-NEXT: fcvt h0, s0
573
- ; CHECK-NOFP-NEXT: fcvt h1, s1
574
- ; CHECK-NOFP-NEXT: fcmp s3, s2
574
+ ; CHECK-NOFP-NEXT: fcmp s4, s2
575
+ ; CHECK-NOFP-NEXT: fcvt s3, h3
575
576
; CHECK-NOFP-NEXT: fcvt s0, h0
576
- ; CHECK-NOFP-NEXT: fcvt s1, h1
577
- ; CHECK-NOFP-NEXT: fmaxnm s0, s0 , s1
578
- ; CHECK-NOFP-NEXT: fcsel s1, s3, s16, gt
579
- ; CHECK-NOFP-NEXT: fcvt s3, h7
577
+ ; CHECK-NOFP-NEXT: fmaxnm s0, s0, s3
578
+ ; CHECK-NOFP-NEXT: fcsel s3, s4 , s1, gt
579
+ ; CHECK-NOFP-NEXT: fcvt s4, h7
580
+ ; CHECK-NOFP-NEXT: fcvt h3, s3
580
581
; CHECK-NOFP-NEXT: fcvt h0, s0
581
- ; CHECK-NOFP-NEXT: fcvt h1, s1
582
- ; CHECK-NOFP-NEXT: fcmp s3, s2
582
+ ; CHECK-NOFP-NEXT: fcmp s4, s2
583
+ ; CHECK-NOFP-NEXT: fcvt s3, h3
584
+ ; CHECK-NOFP-NEXT: fcsel s1, s4, s1, gt
583
585
; CHECK-NOFP-NEXT: fcvt s0, h0
586
+ ; CHECK-NOFP-NEXT: fcvt h1, s1
587
+ ; CHECK-NOFP-NEXT: fmaxnm s0, s0, s3
584
588
; CHECK-NOFP-NEXT: fcvt s1, h1
585
- ; CHECK-NOFP-NEXT: fmaxnm s0, s0, s1
586
- ; CHECK-NOFP-NEXT: fcsel s1, s3, s16, gt
587
589
; CHECK-NOFP-NEXT: fcvt h0, s0
588
- ; CHECK-NOFP-NEXT: fcvt h1, s1
589
590
; CHECK-NOFP-NEXT: fcvt s0, h0
590
- ; CHECK-NOFP-NEXT: fcvt s1, h1
591
591
; CHECK-NOFP-NEXT: fmaxnm s0, s0, s1
592
592
; CHECK-NOFP-NEXT: fcvt h0, s0
593
593
; CHECK-NOFP-NEXT: ret
0 commit comments