@@ -454,9 +454,8 @@ define <vscale x 2 x i64> @fcvtzu_d_nxv2f64(<vscale x 2 x double> %a) {
454
454
define <vscale x 2 x half > @scvtf_h_nxv2i1 (<vscale x 2 x i1 > %a ) {
455
455
; CHECK-LABEL: scvtf_h_nxv2i1:
456
456
; CHECK: // %bb.0:
457
- ; CHECK-NEXT: mov z0.d, p0/z, #-1 // =0xffffffffffffffff
458
- ; CHECK-NEXT: ptrue p0.d
459
- ; CHECK-NEXT: scvtf z0.h, p0/m, z0.d
457
+ ; CHECK-NEXT: mov z0.h, #0 // =0x0
458
+ ; CHECK-NEXT: fmov z0.h, p0/m, #-1.00000000
460
459
; CHECK-NEXT: ret
461
460
%res = sitofp <vscale x 2 x i1 > %a to <vscale x 2 x half >
462
461
ret <vscale x 2 x half > %res
@@ -495,9 +494,8 @@ define <vscale x 2 x half> @scvtf_h_nxv2i64(<vscale x 2 x i64> %a) {
495
494
define <vscale x 3 x half > @scvtf_h_nxv3i1 (<vscale x 3 x i1 > %a ) {
496
495
; CHECK-LABEL: scvtf_h_nxv3i1:
497
496
; CHECK: // %bb.0:
498
- ; CHECK-NEXT: mov z0.s, p0/z, #-1 // =0xffffffffffffffff
499
- ; CHECK-NEXT: ptrue p0.s
500
- ; CHECK-NEXT: scvtf z0.h, p0/m, z0.s
497
+ ; CHECK-NEXT: mov z0.h, #0 // =0x0
498
+ ; CHECK-NEXT: fmov z0.h, p0/m, #-1.00000000
501
499
; CHECK-NEXT: ret
502
500
%res = sitofp <vscale x 3 x i1 > %a to <vscale x 3 x half >
503
501
ret <vscale x 3 x half > %res
@@ -516,9 +514,8 @@ define <vscale x 3 x half> @scvtf_h_nxv3i16(<vscale x 3 x i16> %a) {
516
514
define <vscale x 4 x half > @scvtf_h_nxv4i1 (<vscale x 4 x i1 > %a ) {
517
515
; CHECK-LABEL: scvtf_h_nxv4i1:
518
516
; CHECK: // %bb.0:
519
- ; CHECK-NEXT: mov z0.s, p0/z, #-1 // =0xffffffffffffffff
520
- ; CHECK-NEXT: ptrue p0.s
521
- ; CHECK-NEXT: scvtf z0.h, p0/m, z0.s
517
+ ; CHECK-NEXT: mov z0.h, #0 // =0x0
518
+ ; CHECK-NEXT: fmov z0.h, p0/m, #-1.00000000
522
519
; CHECK-NEXT: ret
523
520
%res = sitofp <vscale x 4 x i1 > %a to <vscale x 4 x half >
524
521
ret <vscale x 4 x half > %res
@@ -547,9 +544,8 @@ define <vscale x 4 x half> @scvtf_h_nxv4i32(<vscale x 4 x i32> %a) {
547
544
define <vscale x 7 x half > @scvtf_h_nxv7i1 (<vscale x 7 x i1 > %a ) {
548
545
; CHECK-LABEL: scvtf_h_nxv7i1:
549
546
; CHECK: // %bb.0:
550
- ; CHECK-NEXT: mov z0.h, p0/z, #-1 // =0xffffffffffffffff
551
- ; CHECK-NEXT: ptrue p0.h
552
- ; CHECK-NEXT: scvtf z0.h, p0/m, z0.h
547
+ ; CHECK-NEXT: mov z0.h, #0 // =0x0
548
+ ; CHECK-NEXT: fmov z0.h, p0/m, #-1.00000000
553
549
; CHECK-NEXT: ret
554
550
%res = sitofp <vscale x 7 x i1 > %a to <vscale x 7 x half >
555
551
ret <vscale x 7 x half > %res
@@ -568,9 +564,8 @@ define <vscale x 7 x half> @scvtf_h_nxv7i16(<vscale x 7 x i16> %a) {
568
564
define <vscale x 8 x half > @scvtf_h_nxv8i1 (<vscale x 8 x i1 > %a ) {
569
565
; CHECK-LABEL: scvtf_h_nxv8i1:
570
566
; CHECK: // %bb.0:
571
- ; CHECK-NEXT: mov z0.h, p0/z, #-1 // =0xffffffffffffffff
572
- ; CHECK-NEXT: ptrue p0.h
573
- ; CHECK-NEXT: scvtf z0.h, p0/m, z0.h
567
+ ; CHECK-NEXT: mov z0.h, #0 // =0x0
568
+ ; CHECK-NEXT: fmov z0.h, p0/m, #-1.00000000
574
569
; CHECK-NEXT: ret
575
570
%res = sitofp <vscale x 8 x i1 > %a to <vscale x 8 x half >
576
571
ret <vscale x 8 x half > %res
@@ -589,9 +584,8 @@ define <vscale x 8 x half> @scvtf_h_nxv8i16(<vscale x 8 x i16> %a) {
589
584
define <vscale x 2 x float > @scvtf_s_nxv2i1 (<vscale x 2 x i1 > %a ) {
590
585
; CHECK-LABEL: scvtf_s_nxv2i1:
591
586
; CHECK: // %bb.0:
592
- ; CHECK-NEXT: mov z0.d, p0/z, #-1 // =0xffffffffffffffff
593
- ; CHECK-NEXT: ptrue p0.d
594
- ; CHECK-NEXT: scvtf z0.s, p0/m, z0.d
587
+ ; CHECK-NEXT: mov z0.s, #0 // =0x0
588
+ ; CHECK-NEXT: fmov z0.s, p0/m, #-1.00000000
595
589
; CHECK-NEXT: ret
596
590
%res = sitofp <vscale x 2 x i1 > %a to <vscale x 2 x float >
597
591
ret <vscale x 2 x float > %res
@@ -620,9 +614,8 @@ define <vscale x 2 x float> @scvtf_s_nxv2i64(<vscale x 2 x i64> %a) {
620
614
define <vscale x 3 x float > @scvtf_s_nxv3i1 (<vscale x 3 x i1 > %a ) {
621
615
; CHECK-LABEL: scvtf_s_nxv3i1:
622
616
; CHECK: // %bb.0:
623
- ; CHECK-NEXT: mov z0.s, p0/z, #-1 // =0xffffffffffffffff
624
- ; CHECK-NEXT: ptrue p0.s
625
- ; CHECK-NEXT: scvtf z0.s, p0/m, z0.s
617
+ ; CHECK-NEXT: mov z0.s, #0 // =0x0
618
+ ; CHECK-NEXT: fmov z0.s, p0/m, #-1.00000000
626
619
; CHECK-NEXT: ret
627
620
%res = sitofp <vscale x 3 x i1 > %a to <vscale x 3 x float >
628
621
ret <vscale x 3 x float > %res
@@ -641,9 +634,8 @@ define <vscale x 3 x float> @scvtf_s_nxv3i32(<vscale x 3 x i32> %a) {
641
634
define <vscale x 4 x float > @scvtf_s_nxv4i1 (<vscale x 4 x i1 > %a ) {
642
635
; CHECK-LABEL: scvtf_s_nxv4i1:
643
636
; CHECK: // %bb.0:
644
- ; CHECK-NEXT: mov z0.s, p0/z, #-1 // =0xffffffffffffffff
645
- ; CHECK-NEXT: ptrue p0.s
646
- ; CHECK-NEXT: scvtf z0.s, p0/m, z0.s
637
+ ; CHECK-NEXT: mov z0.s, #0 // =0x0
638
+ ; CHECK-NEXT: fmov z0.s, p0/m, #-1.00000000
647
639
; CHECK-NEXT: ret
648
640
%res = sitofp <vscale x 4 x i1 > %a to <vscale x 4 x float >
649
641
ret <vscale x 4 x float > %res
@@ -662,9 +654,8 @@ define <vscale x 4 x float> @scvtf_s_nxv4i32(<vscale x 4 x i32> %a) {
662
654
define <vscale x 2 x double > @scvtf_d_nxv2i1 (<vscale x 2 x i1 > %a ) {
663
655
; CHECK-LABEL: scvtf_d_nxv2i1:
664
656
; CHECK: // %bb.0:
665
- ; CHECK-NEXT: mov z0.d, p0/z, #-1 // =0xffffffffffffffff
666
- ; CHECK-NEXT: ptrue p0.d
667
- ; CHECK-NEXT: scvtf z0.d, p0/m, z0.d
657
+ ; CHECK-NEXT: mov z0.d, #0 // =0x0
658
+ ; CHECK-NEXT: fmov z0.d, p0/m, #-1.00000000
668
659
; CHECK-NEXT: ret
669
660
%res = sitofp <vscale x 2 x i1 > %a to <vscale x 2 x double >
670
661
ret <vscale x 2 x double > %res
@@ -695,9 +686,8 @@ define <vscale x 2 x double> @scvtf_d_nxv2i64(<vscale x 2 x i64> %a) {
695
686
define <vscale x 2 x half > @ucvtf_h_nxv2i1 (<vscale x 2 x i1 > %a ) {
696
687
; CHECK-LABEL: ucvtf_h_nxv2i1:
697
688
; CHECK: // %bb.0:
698
- ; CHECK-NEXT: mov z0.d, p0/z, #1 // =0x1
699
- ; CHECK-NEXT: ptrue p0.d
700
- ; CHECK-NEXT: ucvtf z0.h, p0/m, z0.d
689
+ ; CHECK-NEXT: mov z0.h, #0 // =0x0
690
+ ; CHECK-NEXT: fmov z0.h, p0/m, #1.00000000
701
691
; CHECK-NEXT: ret
702
692
%res = uitofp <vscale x 2 x i1 > %a to <vscale x 2 x half >
703
693
ret <vscale x 2 x half > %res
@@ -736,9 +726,8 @@ define <vscale x 2 x half> @ucvtf_h_nxv2i64(<vscale x 2 x i64> %a) {
736
726
define <vscale x 3 x half > @ucvtf_h_nxv3i1 (<vscale x 3 x i1 > %a ) {
737
727
; CHECK-LABEL: ucvtf_h_nxv3i1:
738
728
; CHECK: // %bb.0:
739
- ; CHECK-NEXT: mov z0.s, p0/z, #1 // =0x1
740
- ; CHECK-NEXT: ptrue p0.s
741
- ; CHECK-NEXT: ucvtf z0.h, p0/m, z0.s
729
+ ; CHECK-NEXT: mov z0.h, #0 // =0x0
730
+ ; CHECK-NEXT: fmov z0.h, p0/m, #1.00000000
742
731
; CHECK-NEXT: ret
743
732
%res = uitofp <vscale x 3 x i1 > %a to <vscale x 3 x half >
744
733
ret <vscale x 3 x half > %res
@@ -767,9 +756,8 @@ define <vscale x 3 x half> @ucvtf_h_nxv3i32(<vscale x 3 x i32> %a) {
767
756
define <vscale x 4 x half > @ucvtf_h_nxv4i1 (<vscale x 4 x i1 > %a ) {
768
757
; CHECK-LABEL: ucvtf_h_nxv4i1:
769
758
; CHECK: // %bb.0:
770
- ; CHECK-NEXT: mov z0.s, p0/z, #1 // =0x1
771
- ; CHECK-NEXT: ptrue p0.s
772
- ; CHECK-NEXT: ucvtf z0.h, p0/m, z0.s
759
+ ; CHECK-NEXT: mov z0.h, #0 // =0x0
760
+ ; CHECK-NEXT: fmov z0.h, p0/m, #1.00000000
773
761
; CHECK-NEXT: ret
774
762
%res = uitofp <vscale x 4 x i1 > %a to <vscale x 4 x half >
775
763
ret <vscale x 4 x half > %res
@@ -798,9 +786,8 @@ define <vscale x 4 x half> @ucvtf_h_nxv4i32(<vscale x 4 x i32> %a) {
798
786
define <vscale x 8 x half > @ucvtf_h_nxv8i1 (<vscale x 8 x i1 > %a ) {
799
787
; CHECK-LABEL: ucvtf_h_nxv8i1:
800
788
; CHECK: // %bb.0:
801
- ; CHECK-NEXT: mov z0.h, p0/z, #1 // =0x1
802
- ; CHECK-NEXT: ptrue p0.h
803
- ; CHECK-NEXT: ucvtf z0.h, p0/m, z0.h
789
+ ; CHECK-NEXT: mov z0.h, #0 // =0x0
790
+ ; CHECK-NEXT: fmov z0.h, p0/m, #1.00000000
804
791
; CHECK-NEXT: ret
805
792
%res = uitofp <vscale x 8 x i1 > %a to <vscale x 8 x half >
806
793
ret <vscale x 8 x half > %res
@@ -819,9 +806,8 @@ define <vscale x 8 x half> @ucvtf_h_nxv8i16(<vscale x 8 x i16> %a) {
819
806
define <vscale x 2 x float > @ucvtf_s_nxv2i1 (<vscale x 2 x i1 > %a ) {
820
807
; CHECK-LABEL: ucvtf_s_nxv2i1:
821
808
; CHECK: // %bb.0:
822
- ; CHECK-NEXT: mov z0.d, p0/z, #1 // =0x1
823
- ; CHECK-NEXT: ptrue p0.d
824
- ; CHECK-NEXT: ucvtf z0.s, p0/m, z0.d
809
+ ; CHECK-NEXT: mov z0.s, #0 // =0x0
810
+ ; CHECK-NEXT: fmov z0.s, p0/m, #1.00000000
825
811
; CHECK-NEXT: ret
826
812
%res = uitofp <vscale x 2 x i1 > %a to <vscale x 2 x float >
827
813
ret <vscale x 2 x float > %res
@@ -850,9 +836,8 @@ define <vscale x 2 x float> @ucvtf_s_nxv2i64(<vscale x 2 x i64> %a) {
850
836
define <vscale x 4 x float > @ucvtf_s_nxv4i1 (<vscale x 4 x i1 > %a ) {
851
837
; CHECK-LABEL: ucvtf_s_nxv4i1:
852
838
; CHECK: // %bb.0:
853
- ; CHECK-NEXT: mov z0.s, p0/z, #1 // =0x1
854
- ; CHECK-NEXT: ptrue p0.s
855
- ; CHECK-NEXT: ucvtf z0.s, p0/m, z0.s
839
+ ; CHECK-NEXT: mov z0.s, #0 // =0x0
840
+ ; CHECK-NEXT: fmov z0.s, p0/m, #1.00000000
856
841
; CHECK-NEXT: ret
857
842
%res = uitofp <vscale x 4 x i1 > %a to <vscale x 4 x float >
858
843
ret <vscale x 4 x float > %res
@@ -871,9 +856,8 @@ define <vscale x 4 x float> @ucvtf_s_nxv4i32(<vscale x 4 x i32> %a) {
871
856
define <vscale x 2 x double > @ucvtf_d_nxv2i1 (<vscale x 2 x i1 > %a ) {
872
857
; CHECK-LABEL: ucvtf_d_nxv2i1:
873
858
; CHECK: // %bb.0:
874
- ; CHECK-NEXT: mov z0.d, p0/z, #1 // =0x1
875
- ; CHECK-NEXT: ptrue p0.d
876
- ; CHECK-NEXT: ucvtf z0.d, p0/m, z0.d
859
+ ; CHECK-NEXT: mov z0.d, #0 // =0x0
860
+ ; CHECK-NEXT: fmov z0.d, p0/m, #1.00000000
877
861
; CHECK-NEXT: ret
878
862
%res = uitofp <vscale x 2 x i1 > %a to <vscale x 2 x double >
879
863
ret <vscale x 2 x double > %res
0 commit comments