@@ -295,18 +295,12 @@ define <4 x i16> @fptoui_i16(<4 x half> %a) #0 {
295
295
296
296
define <4 x i1 > @test_fcmp_une (<4 x half > %a , <4 x half > %b ) #0 {
297
297
; CHECK-CVT-LABEL: test_fcmp_une:
298
- ; CHECK-CVT-DAG: fcvt
299
- ; CHECK-CVT-DAG: fcvt
300
- ; CHECK-CVT-DAG: fcvt
301
- ; CHECK-CVT-DAG: fcvt
302
- ; CHECK-CVT-DAG: fcvt
303
- ; CHECK-CVT-DAG: fcvt
304
- ; CHECK-CVT-DAG: fcvt
305
- ; CHECK-CVT-DAG: fcvt
306
- ; CHECK-CVT-DAG: csetm {{.*}}, ne
307
- ; CHECK-CVT-DAG: csetm {{.*}}, ne
308
- ; CHECK-CVT-DAG: csetm {{.*}}, ne
309
- ; CHECK-CVT-DAG: csetm {{.*}}, ne
298
+ ; CHECK-CVT: fcvtl
299
+ ; CHECK-CVT: fcvtl
300
+ ; CHECK-CVT: fcmeq
301
+ ; CHECK-CVT: mvn
302
+ ; CHECK-CVT: xtn
303
+ ; CHECK-CVT: ret
310
304
311
305
; CHECK-FP16-LABEL: test_fcmp_une:
312
306
; CHECK-FP16-NOT: fcvt
@@ -325,22 +319,14 @@ define <4 x i1> @test_fcmp_une(<4 x half> %a, <4 x half> %b) #0 {
325
319
326
320
define <4 x i1 > @test_fcmp_ueq (<4 x half > %a , <4 x half > %b ) #0 {
327
321
; CHECK-CVT-LABEL: test_fcmp_ueq:
328
- ; CHECK-CVT-DAG: fcvt
329
- ; CHECK-CVT-DAG: fcvt
330
- ; CHECK-CVT-DAG: fcvt
331
- ; CHECK-CVT-DAG: fcvt
332
- ; CHECK-CVT-DAG: fcvt
333
- ; CHECK-CVT-DAG: fcvt
334
- ; CHECK-CVT-DAG: fcvt
335
- ; CHECK-CVT-DAG: fcvt
336
- ; CHECK-CVT-DAG: csetm [[REG1:w[0-9]+]], eq
337
- ; CHECK-CVT-DAG: csetm [[REG2:w[0-9]+]], eq
338
- ; CHECK-CVT-DAG: csetm [[REG3:w[0-9]+]], eq
339
- ; CHECK-CVT-DAG: csetm [[REG4:w[0-9]+]], eq
340
- ; CHECK-CVT-DAG: csinv {{.*}}, [[REG1]], wzr, vc
341
- ; CHECK-CVT-DAG: csinv {{.*}}, [[REG2]], wzr, vc
342
- ; CHECK-CVT-DAG: csinv {{.*}}, [[REG3]], wzr, vc
343
- ; CHECK-CVT-DAG: csinv {{.*}}, [[REG4]], wzr, vc
322
+ ; CHECK-CVT: fcvtl
323
+ ; CHECK-CVT: fcvtl
324
+ ; CHECK-CVT: fcmgt
325
+ ; CHECK-CVT: fcmgt
326
+ ; CHECK-CVT: orr
327
+ ; CHECK-CVT: xtn
328
+ ; CHECK-CVT: mvn
329
+ ; CHECK-CVT: ret
344
330
345
331
; CHECK-FP16-LABEL: test_fcmp_ueq:
346
332
; CHECK-FP16-NOT: fcvt
@@ -359,18 +345,12 @@ define <4 x i1> @test_fcmp_ueq(<4 x half> %a, <4 x half> %b) #0 {
359
345
360
346
define <4 x i1 > @test_fcmp_ugt (<4 x half > %a , <4 x half > %b ) #0 {
361
347
; CHECK-CVT-LABEL: test_fcmp_ugt:
362
- ; CHECK-CVT-DAG: fcvt
363
- ; CHECK-CVT-DAG: fcvt
364
- ; CHECK-CVT-DAG: fcvt
365
- ; CHECK-CVT-DAG: fcvt
366
- ; CHECK-CVT-DAG: fcvt
367
- ; CHECK-CVT-DAG: fcvt
368
- ; CHECK-CVT-DAG: fcvt
369
- ; CHECK-CVT-DAG: fcvt
370
- ; CHECK-CVT-DAG: csetm {{.*}}, hi
371
- ; CHECK-CVT-DAG: csetm {{.*}}, hi
372
- ; CHECK-CVT-DAG: csetm {{.*}}, hi
373
- ; CHECK-CVT-DAG: csetm {{.*}}, hi
348
+ ; CHECK-CVT: fcvtl
349
+ ; CHECK-CVT: fcvtl
350
+ ; CHECK-CVT: fcmge
351
+ ; CHECK-CVT: xtn
352
+ ; CHECK-CVT: mvn
353
+ ; CHECK-CVT: ret
374
354
375
355
; CHECK-FP16-LABEL: test_fcmp_ugt:
376
356
; CHECK-FP16-NOT: fcvt
@@ -389,18 +369,12 @@ define <4 x i1> @test_fcmp_ugt(<4 x half> %a, <4 x half> %b) #0 {
389
369
390
370
define <4 x i1 > @test_fcmp_uge (<4 x half > %a , <4 x half > %b ) #0 {
391
371
; CHECK-CVT-LABEL: test_fcmp_uge:
392
- ; CHECK-CVT-DAG: fcvt
393
- ; CHECK-CVT-DAG: fcvt
394
- ; CHECK-CVT-DAG: fcvt
395
- ; CHECK-CVT-DAG: fcvt
396
- ; CHECK-CVT-DAG: fcvt
397
- ; CHECK-CVT-DAG: fcvt
398
- ; CHECK-CVT-DAG: fcvt
399
- ; CHECK-CVT-DAG: fcvt
400
- ; CHECK-CVT-DAG: csetm {{.*}}, pl
401
- ; CHECK-CVT-DAG: csetm {{.*}}, pl
402
- ; CHECK-CVT-DAG: csetm {{.*}}, pl
403
- ; CHECK-CVT-DAG: csetm {{.*}}, pl
372
+ ; CHECK-CVT: fcvtl
373
+ ; CHECK-CVT: fcvtl
374
+ ; CHECK-CVT: fcmgt
375
+ ; CHECK-CVT: xtn
376
+ ; CHECK-CVT: mvn
377
+ ; CHECK-CVT: ret
404
378
405
379
; CHECK-FP16-LABEL: test_fcmp_uge:
406
380
; CHECK-FP16-NOT: fcvt
@@ -419,18 +393,12 @@ define <4 x i1> @test_fcmp_uge(<4 x half> %a, <4 x half> %b) #0 {
419
393
420
394
define <4 x i1 > @test_fcmp_ult (<4 x half > %a , <4 x half > %b ) #0 {
421
395
; CHECK-CVT-LABEL: test_fcmp_ult:
422
- ; CHECK-CVT-DAG: fcvt
423
- ; CHECK-CVT-DAG: fcvt
424
- ; CHECK-CVT-DAG: fcvt
425
- ; CHECK-CVT-DAG: fcvt
426
- ; CHECK-CVT-DAG: fcvt
427
- ; CHECK-CVT-DAG: fcvt
428
- ; CHECK-CVT-DAG: fcvt
429
- ; CHECK-CVT-DAG: fcvt
430
- ; CHECK-CVT-DAG: csetm {{.*}}, lt
431
- ; CHECK-CVT-DAG: csetm {{.*}}, lt
432
- ; CHECK-CVT-DAG: csetm {{.*}}, lt
433
- ; CHECK-CVT-DAG: csetm {{.*}}, lt
396
+ ; CHECK-CVT: fcvtl
397
+ ; CHECK-CVT: fcvtl
398
+ ; CHECK-CVT: fcmge
399
+ ; CHECK-CVT: xtn
400
+ ; CHECK-CVT: mvn
401
+ ; CHECK-CVT: ret
434
402
435
403
; CHECK-FP16-LABEL: test_fcmp_ult:
436
404
; CHECK-FP16-NOT: fcvt
@@ -449,18 +417,12 @@ define <4 x i1> @test_fcmp_ult(<4 x half> %a, <4 x half> %b) #0 {
449
417
450
418
define <4 x i1 > @test_fcmp_ule (<4 x half > %a , <4 x half > %b ) #0 {
451
419
; CHECK-CVT-LABEL: test_fcmp_ule:
452
- ; CHECK-CVT-DAG: fcvt
453
- ; CHECK-CVT-DAG: fcvt
454
- ; CHECK-CVT-DAG: fcvt
455
- ; CHECK-CVT-DAG: fcvt
456
- ; CHECK-CVT-DAG: fcvt
457
- ; CHECK-CVT-DAG: fcvt
458
- ; CHECK-CVT-DAG: fcvt
459
- ; CHECK-CVT-DAG: fcvt
460
- ; CHECK-CVT-DAG: csetm {{.*}}, le
461
- ; CHECK-CVT-DAG: csetm {{.*}}, le
462
- ; CHECK-CVT-DAG: csetm {{.*}}, le
463
- ; CHECK-CVT-DAG: csetm {{.*}}, le
420
+ ; CHECK-CVT: fcvtl
421
+ ; CHECK-CVT: fcvtl
422
+ ; CHECK-CVT: fcmgt
423
+ ; CHECK-CVT: xtn
424
+ ; CHECK-CVT: mvn
425
+ ; CHECK-CVT: ret
464
426
465
427
; CHECK-FP16-LABEL: test_fcmp_ule:
466
428
; CHECK-FP16-NOT: fcvt
@@ -479,18 +441,14 @@ define <4 x i1> @test_fcmp_ule(<4 x half> %a, <4 x half> %b) #0 {
479
441
480
442
define <4 x i1 > @test_fcmp_uno (<4 x half > %a , <4 x half > %b ) #0 {
481
443
; CHECK-CVT-LABEL: test_fcmp_uno:
482
- ; CHECK-CVT-DAG: fcvt
483
- ; CHECK-CVT-DAG: fcvt
484
- ; CHECK-CVT-DAG: fcvt
485
- ; CHECK-CVT-DAG: fcvt
486
- ; CHECK-CVT-DAG: fcvt
487
- ; CHECK-CVT-DAG: fcvt
488
- ; CHECK-CVT-DAG: fcvt
489
- ; CHECK-CVT-DAG: fcvt
490
- ; CHECK-CVT-DAG: csetm {{.*}}, vs
491
- ; CHECK-CVT-DAG: csetm {{.*}}, vs
492
- ; CHECK-CVT-DAG: csetm {{.*}}, vs
493
- ; CHECK-CVT-DAG: csetm {{.*}}, vs
444
+ ; CHECK-CVT: fcvtl
445
+ ; CHECK-CVT: fcvtl
446
+ ; CHECK-CVT: fcmge
447
+ ; CHECK-CVT: fcmgt
448
+ ; CHECK-CVT: orr
449
+ ; CHECK-CVT: xtn
450
+ ; CHECK-CVT: mvn
451
+ ; CHECK-CVT: ret
494
452
495
453
; CHECK-FP16-LABEL: test_fcmp_uno:
496
454
; CHECK-FP16-NOT: fcvt
@@ -509,22 +467,13 @@ define <4 x i1> @test_fcmp_uno(<4 x half> %a, <4 x half> %b) #0 {
509
467
510
468
define <4 x i1 > @test_fcmp_one (<4 x half > %a , <4 x half > %b ) #0 {
511
469
; CHECK-CVT-LABEL: test_fcmp_one:
512
- ; CHECK-CVT-DAG: fcvt
513
- ; CHECK-CVT-DAG: fcvt
514
- ; CHECK-CVT-DAG: fcvt
515
- ; CHECK-CVT-DAG: fcvt
516
- ; CHECK-CVT-DAG: fcvt
517
- ; CHECK-CVT-DAG: fcvt
518
- ; CHECK-CVT-DAG: fcvt
519
- ; CHECK-CVT-DAG: fcvt
520
- ; CHECK-CVT-DAG: csetm [[REG1:w[0-9]+]], mi
521
- ; CHECK-CVT-DAG: csetm [[REG2:w[0-9]+]], mi
522
- ; CHECK-CVT-DAG: csetm [[REG3:w[0-9]+]], mi
523
- ; CHECK-CVT-DAG: csetm [[REG4:w[0-9]+]], mi
524
- ; CHECK-CVT-DAG: csinv {{.*}}, [[REG1]], wzr, le
525
- ; CHECK-CVT-DAG: csinv {{.*}}, [[REG2]], wzr, le
526
- ; CHECK-CVT-DAG: csinv {{.*}}, [[REG3]], wzr, le
527
- ; CHECK-CVT-DAG: csinv {{.*}}, [[REG4]], wzr, le
470
+ ; CHECK-CVT: fcvtl
471
+ ; CHECK-CVT: fcvtl
472
+ ; CHECK-CVT: fcmgt
473
+ ; CHECK-CVT: fcmgt
474
+ ; CHECK-CVT: orr
475
+ ; CHECK-CVT: xtn
476
+ ; CHECK-CVT: ret
528
477
529
478
; CHECK-FP16-LABEL: test_fcmp_one:
530
479
; CHECK-FP16-NOT: fcvt
@@ -543,18 +492,11 @@ define <4 x i1> @test_fcmp_one(<4 x half> %a, <4 x half> %b) #0 {
543
492
544
493
define <4 x i1 > @test_fcmp_oeq (<4 x half > %a , <4 x half > %b ) #0 {
545
494
; CHECK-CVT-LABEL: test_fcmp_oeq:
546
- ; CHECK-CVT-DAG: fcvt
547
- ; CHECK-CVT-DAG: fcvt
548
- ; CHECK-CVT-DAG: fcvt
549
- ; CHECK-CVT-DAG: fcvt
550
- ; CHECK-CVT-DAG: fcvt
551
- ; CHECK-CVT-DAG: fcvt
552
- ; CHECK-CVT-DAG: fcvt
553
- ; CHECK-CVT-DAG: fcvt
554
- ; CHECK-CVT-DAG: csetm {{.*}}, eq
555
- ; CHECK-CVT-DAG: csetm {{.*}}, eq
556
- ; CHECK-CVT-DAG: csetm {{.*}}, eq
557
- ; CHECK-CVT-DAG: csetm {{.*}}, eq
495
+ ; CHECK-CVT: fcvtl
496
+ ; CHECK-CVT: fcvtl
497
+ ; CHECK-CVT: fcmeq
498
+ ; CHECK-CVT: xtn
499
+ ; CHECK-CVT: ret
558
500
559
501
; CHECK-FP16-LABEL: test_fcmp_oeq:
560
502
; CHECK-FP16-NOT: fcvt
@@ -573,18 +515,11 @@ define <4 x i1> @test_fcmp_oeq(<4 x half> %a, <4 x half> %b) #0 {
573
515
574
516
define <4 x i1 > @test_fcmp_ogt (<4 x half > %a , <4 x half > %b ) #0 {
575
517
; CHECK-CVT-LABEL: test_fcmp_ogt:
576
- ; CHECK-CVT-DAG: fcvt
577
- ; CHECK-CVT-DAG: fcvt
578
- ; CHECK-CVT-DAG: fcvt
579
- ; CHECK-CVT-DAG: fcvt
580
- ; CHECK-CVT-DAG: fcvt
581
- ; CHECK-CVT-DAG: fcvt
582
- ; CHECK-CVT-DAG: fcvt
583
- ; CHECK-CVT-DAG: fcvt
584
- ; CHECK-CVT-DAG: csetm {{.*}}, gt
585
- ; CHECK-CVT-DAG: csetm {{.*}}, gt
586
- ; CHECK-CVT-DAG: csetm {{.*}}, gt
587
- ; CHECK-CVT-DAG: csetm {{.*}}, gt
518
+ ; CHECK-CVT: fcvtl
519
+ ; CHECK-CVT: fcvtl
520
+ ; CHECK-CVT: fcmgt
521
+ ; CHECK-CVT: xtn
522
+ ; CHECK-CVT: ret
588
523
589
524
; CHECK-FP16-LABEL: test_fcmp_ogt:
590
525
; CHECK-FP16-NOT: fcvt
@@ -603,18 +538,11 @@ define <4 x i1> @test_fcmp_ogt(<4 x half> %a, <4 x half> %b) #0 {
603
538
604
539
define <4 x i1 > @test_fcmp_oge (<4 x half > %a , <4 x half > %b ) #0 {
605
540
; CHECK-CVT-LABEL: test_fcmp_oge:
606
- ; CHECK-CVT-DAG: fcvt
607
- ; CHECK-CVT-DAG: fcvt
608
- ; CHECK-CVT-DAG: fcvt
609
- ; CHECK-CVT-DAG: fcvt
610
- ; CHECK-CVT-DAG: fcvt
611
- ; CHECK-CVT-DAG: fcvt
612
- ; CHECK-CVT-DAG: fcvt
613
- ; CHECK-CVT-DAG: fcvt
614
- ; CHECK-CVT-DAG: csetm {{.*}}, ge
615
- ; CHECK-CVT-DAG: csetm {{.*}}, ge
616
- ; CHECK-CVT-DAG: csetm {{.*}}, ge
617
- ; CHECK-CVT-DAG: csetm {{.*}}, ge
541
+ ; CHECK-CVT: fcvtl
542
+ ; CHECK-CVT: fcvtl
543
+ ; CHECK-CVT: fcmge
544
+ ; CHECK-CVT: xtn
545
+ ; CHECK-CVT: ret
618
546
619
547
; CHECK-FP16-LABEL: test_fcmp_oge:
620
548
; CHECK-FP16-NOT: fcvt
@@ -633,18 +561,11 @@ define <4 x i1> @test_fcmp_oge(<4 x half> %a, <4 x half> %b) #0 {
633
561
634
562
define <4 x i1 > @test_fcmp_olt (<4 x half > %a , <4 x half > %b ) #0 {
635
563
; CHECK-CVT-LABEL: test_fcmp_olt:
636
- ; CHECK-CVT-DAG: fcvt
637
- ; CHECK-CVT-DAG: fcvt
638
- ; CHECK-CVT-DAG: fcvt
639
- ; CHECK-CVT-DAG: fcvt
640
- ; CHECK-CVT-DAG: fcvt
641
- ; CHECK-CVT-DAG: fcvt
642
- ; CHECK-CVT-DAG: fcvt
643
- ; CHECK-CVT-DAG: fcvt
644
- ; CHECK-CVT-DAG: csetm {{.*}}, mi
645
- ; CHECK-CVT-DAG: csetm {{.*}}, mi
646
- ; CHECK-CVT-DAG: csetm {{.*}}, mi
647
- ; CHECK-CVT-DAG: csetm {{.*}}, mi
564
+ ; CHECK-CVT: fcvtl
565
+ ; CHECK-CVT: fcvtl
566
+ ; CHECK-CVT: fcmgt
567
+ ; CHECK-CVT: xtn
568
+ ; CHECK-CVT: ret
648
569
649
570
; CHECK-FP16-LABEL: test_fcmp_olt:
650
571
; CHECK-FP16-NOT: fcvt
@@ -663,18 +584,11 @@ define <4 x i1> @test_fcmp_olt(<4 x half> %a, <4 x half> %b) #0 {
663
584
664
585
define <4 x i1 > @test_fcmp_ole (<4 x half > %a , <4 x half > %b ) #0 {
665
586
; CHECK-CVT-LABEL: test_fcmp_ole:
666
- ; CHECK-CVT-DAG: fcvt
667
- ; CHECK-CVT-DAG: fcvt
668
- ; CHECK-CVT-DAG: fcvt
669
- ; CHECK-CVT-DAG: fcvt
670
- ; CHECK-CVT-DAG: fcvt
671
- ; CHECK-CVT-DAG: fcvt
672
- ; CHECK-CVT-DAG: fcvt
673
- ; CHECK-CVT-DAG: fcvt
674
- ; CHECK-CVT-DAG: csetm {{.*}}, ls
675
- ; CHECK-CVT-DAG: csetm {{.*}}, ls
676
- ; CHECK-CVT-DAG: csetm {{.*}}, ls
677
- ; CHECK-CVT-DAG: csetm {{.*}}, ls
587
+ ; CHECK-CVT: fcvtl
588
+ ; CHECK-CVT: fcvtl
589
+ ; CHECK-CVT: fcmge
590
+ ; CHECK-CVT: xtn
591
+ ; CHECK-CVT: ret
678
592
679
593
; CHECK-FP16-LABEL: test_fcmp_ole:
680
594
; CHECK-FP16-NOT: fcvt
@@ -693,18 +607,13 @@ define <4 x i1> @test_fcmp_ole(<4 x half> %a, <4 x half> %b) #0 {
693
607
694
608
define <4 x i1 > @test_fcmp_ord (<4 x half > %a , <4 x half > %b ) #0 {
695
609
; CHECK-CVT-LABEL: test_fcmp_ord:
696
- ; CHECK-CVT-DAG: fcvt
697
- ; CHECK-CVT-DAG: fcvt
698
- ; CHECK-CVT-DAG: fcvt
699
- ; CHECK-CVT-DAG: fcvt
700
- ; CHECK-CVT-DAG: fcvt
701
- ; CHECK-CVT-DAG: fcvt
702
- ; CHECK-CVT-DAG: fcvt
703
- ; CHECK-CVT-DAG: fcvt
704
- ; CHECK-CVT-DAG: csetm {{.*}}, vc
705
- ; CHECK-CVT-DAG: csetm {{.*}}, vc
706
- ; CHECK-CVT-DAG: csetm {{.*}}, vc
707
- ; CHECK-CVT-DAG: csetm {{.*}}, vc
610
+ ; CHECK-CVT: fcvtl
611
+ ; CHECK-CVT: fcvtl
612
+ ; CHECK-CVT: fcmge
613
+ ; CHECK-CVT: fcmgt
614
+ ; CHECK-CVT: orr
615
+ ; CHECK-CVT: xtn
616
+ ; CHECK-CVT: ret
708
617
709
618
; CHECK-FP16-LABEL: test_fcmp_ord:
710
619
; CHECK-FP16-NOT: fcvt
0 commit comments