@@ -454,9 +454,8 @@ define <vscale x 2 x i64> @fcvtzu_d_nxv2f64(<vscale x 2 x double> %a) {
454454define <vscale x 2 x half > @scvtf_h_nxv2i1 (<vscale x 2 x i1 > %a ) {
455455; CHECK-LABEL: scvtf_h_nxv2i1:
456456; 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
460459; CHECK-NEXT: ret
461460 %res = sitofp <vscale x 2 x i1 > %a to <vscale x 2 x half >
462461 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) {
495494define <vscale x 3 x half > @scvtf_h_nxv3i1 (<vscale x 3 x i1 > %a ) {
496495; CHECK-LABEL: scvtf_h_nxv3i1:
497496; 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
501499; CHECK-NEXT: ret
502500 %res = sitofp <vscale x 3 x i1 > %a to <vscale x 3 x half >
503501 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) {
516514define <vscale x 4 x half > @scvtf_h_nxv4i1 (<vscale x 4 x i1 > %a ) {
517515; CHECK-LABEL: scvtf_h_nxv4i1:
518516; 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
522519; CHECK-NEXT: ret
523520 %res = sitofp <vscale x 4 x i1 > %a to <vscale x 4 x half >
524521 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) {
547544define <vscale x 7 x half > @scvtf_h_nxv7i1 (<vscale x 7 x i1 > %a ) {
548545; CHECK-LABEL: scvtf_h_nxv7i1:
549546; 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
553549; CHECK-NEXT: ret
554550 %res = sitofp <vscale x 7 x i1 > %a to <vscale x 7 x half >
555551 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) {
568564define <vscale x 8 x half > @scvtf_h_nxv8i1 (<vscale x 8 x i1 > %a ) {
569565; CHECK-LABEL: scvtf_h_nxv8i1:
570566; 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
574569; CHECK-NEXT: ret
575570 %res = sitofp <vscale x 8 x i1 > %a to <vscale x 8 x half >
576571 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) {
589584define <vscale x 2 x float > @scvtf_s_nxv2i1 (<vscale x 2 x i1 > %a ) {
590585; CHECK-LABEL: scvtf_s_nxv2i1:
591586; 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
595589; CHECK-NEXT: ret
596590 %res = sitofp <vscale x 2 x i1 > %a to <vscale x 2 x float >
597591 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) {
620614define <vscale x 3 x float > @scvtf_s_nxv3i1 (<vscale x 3 x i1 > %a ) {
621615; CHECK-LABEL: scvtf_s_nxv3i1:
622616; 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
626619; CHECK-NEXT: ret
627620 %res = sitofp <vscale x 3 x i1 > %a to <vscale x 3 x float >
628621 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) {
641634define <vscale x 4 x float > @scvtf_s_nxv4i1 (<vscale x 4 x i1 > %a ) {
642635; CHECK-LABEL: scvtf_s_nxv4i1:
643636; 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
647639; CHECK-NEXT: ret
648640 %res = sitofp <vscale x 4 x i1 > %a to <vscale x 4 x float >
649641 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) {
662654define <vscale x 2 x double > @scvtf_d_nxv2i1 (<vscale x 2 x i1 > %a ) {
663655; CHECK-LABEL: scvtf_d_nxv2i1:
664656; 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
668659; CHECK-NEXT: ret
669660 %res = sitofp <vscale x 2 x i1 > %a to <vscale x 2 x double >
670661 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) {
695686define <vscale x 2 x half > @ucvtf_h_nxv2i1 (<vscale x 2 x i1 > %a ) {
696687; CHECK-LABEL: ucvtf_h_nxv2i1:
697688; 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
701691; CHECK-NEXT: ret
702692 %res = uitofp <vscale x 2 x i1 > %a to <vscale x 2 x half >
703693 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) {
736726define <vscale x 3 x half > @ucvtf_h_nxv3i1 (<vscale x 3 x i1 > %a ) {
737727; CHECK-LABEL: ucvtf_h_nxv3i1:
738728; 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
742731; CHECK-NEXT: ret
743732 %res = uitofp <vscale x 3 x i1 > %a to <vscale x 3 x half >
744733 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) {
767756define <vscale x 4 x half > @ucvtf_h_nxv4i1 (<vscale x 4 x i1 > %a ) {
768757; CHECK-LABEL: ucvtf_h_nxv4i1:
769758; 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
773761; CHECK-NEXT: ret
774762 %res = uitofp <vscale x 4 x i1 > %a to <vscale x 4 x half >
775763 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) {
798786define <vscale x 8 x half > @ucvtf_h_nxv8i1 (<vscale x 8 x i1 > %a ) {
799787; CHECK-LABEL: ucvtf_h_nxv8i1:
800788; 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
804791; CHECK-NEXT: ret
805792 %res = uitofp <vscale x 8 x i1 > %a to <vscale x 8 x half >
806793 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) {
819806define <vscale x 2 x float > @ucvtf_s_nxv2i1 (<vscale x 2 x i1 > %a ) {
820807; CHECK-LABEL: ucvtf_s_nxv2i1:
821808; 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
825811; CHECK-NEXT: ret
826812 %res = uitofp <vscale x 2 x i1 > %a to <vscale x 2 x float >
827813 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) {
850836define <vscale x 4 x float > @ucvtf_s_nxv4i1 (<vscale x 4 x i1 > %a ) {
851837; CHECK-LABEL: ucvtf_s_nxv4i1:
852838; 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
856841; CHECK-NEXT: ret
857842 %res = uitofp <vscale x 4 x i1 > %a to <vscale x 4 x float >
858843 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) {
871856define <vscale x 2 x double > @ucvtf_d_nxv2i1 (<vscale x 2 x i1 > %a ) {
872857; CHECK-LABEL: ucvtf_d_nxv2i1:
873858; 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
877861; CHECK-NEXT: ret
878862 %res = uitofp <vscale x 2 x i1 > %a to <vscale x 2 x double >
879863 ret <vscale x 2 x double > %res
0 commit comments