@@ -351,9 +351,7 @@ define void @f_h_2(ptr noalias %dst, ptr readonly %src, i32 %n) #0 {
351351; CHECK-SVE-NEXT: whilelo p1.b, x8, x9
352352; CHECK-SVE-NEXT: punpkhi p0.h, p1.b
353353; CHECK-SVE-NEXT: punpklo p1.h, p1.b
354- ; CHECK-SVE-NEXT: mov z0.h, p1/z, #1 // =0x1
355- ; CHECK-SVE-NEXT: fmov w13, s0
356- ; CHECK-SVE-NEXT: tbnz w13, #0, .LBB4_2
354+ ; CHECK-SVE-NEXT: b.mi .LBB4_2
357355; CHECK-SVE-NEXT: .LBB4_3: // %for.cond.cleanup
358356; CHECK-SVE-NEXT: ret
359357;
@@ -378,9 +376,7 @@ define void @f_h_2(ptr noalias %dst, ptr readonly %src, i32 %n) #0 {
378376; CHECK-SVE2p1-NEXT: st1h { z1.h }, p1, [x10, x8, lsl #1]
379377; CHECK-SVE2p1-NEXT: addvl x8, x8, #1
380378; CHECK-SVE2p1-NEXT: whilelo { p0.h, p1.h }, x8, x9
381- ; CHECK-SVE2p1-NEXT: mov z0.h, p0/z, #1 // =0x1
382- ; CHECK-SVE2p1-NEXT: fmov w12, s0
383- ; CHECK-SVE2p1-NEXT: tbnz w12, #0, .LBB4_2
379+ ; CHECK-SVE2p1-NEXT: b.mi .LBB4_2
384380; CHECK-SVE2p1-NEXT: .LBB4_3: // %for.cond.cleanup
385381; CHECK-SVE2p1-NEXT: ret
386382entry:
@@ -456,9 +452,7 @@ define void @f3(ptr noalias %dst, ptr readonly %src, i32 %n) #0 {
456452; CHECK-SVE-NEXT: whilelo p1.s, x8, x9
457453; CHECK-SVE-NEXT: punpkhi p0.h, p1.b
458454; CHECK-SVE-NEXT: punpklo p1.h, p1.b
459- ; CHECK-SVE-NEXT: mov z1.d, p1/z, #1 // =0x1
460- ; CHECK-SVE-NEXT: fmov x13, d1
461- ; CHECK-SVE-NEXT: tbnz w13, #0, .LBB5_2
455+ ; CHECK-SVE-NEXT: b.mi .LBB5_2
462456; CHECK-SVE-NEXT: .LBB5_3: // %for.cond.cleanup
463457; CHECK-SVE-NEXT: ret
464458;
@@ -484,9 +478,7 @@ define void @f3(ptr noalias %dst, ptr readonly %src, i32 %n) #0 {
484478; CHECK-SVE2p1-NEXT: st1d { z2.d }, p1, [x10, x8, lsl #3]
485479; CHECK-SVE2p1-NEXT: incw x8
486480; CHECK-SVE2p1-NEXT: whilelo { p0.d, p1.d }, x8, x9
487- ; CHECK-SVE2p1-NEXT: mov z1.d, p0/z, #1 // =0x1
488- ; CHECK-SVE2p1-NEXT: fmov x12, d1
489- ; CHECK-SVE2p1-NEXT: tbnz w12, #0, .LBB5_2
481+ ; CHECK-SVE2p1-NEXT: b.mi .LBB5_2
490482; CHECK-SVE2p1-NEXT: .LBB5_3: // %for.cond.cleanup
491483; CHECK-SVE2p1-NEXT: ret
492484entry:
@@ -752,15 +744,13 @@ define void @f_h_4(ptr noalias %dst, ptr %src, i32 %n) #0 {
752744; CHECK-SVE-NEXT: st1h { z2.h }, p1, [x13, x10, lsl #1]
753745; CHECK-SVE-NEXT: st1h { z3.h }, p0, [x12, x10, lsl #1]
754746; CHECK-SVE-NEXT: add x10, x9, x10
755- ; CHECK-SVE-NEXT: whilelo p1 .b, x18, x8
747+ ; CHECK-SVE-NEXT: whilelo p2 .b, x18, x8
756748; CHECK-SVE-NEXT: whilelo p3.b, x10, x8
757- ; CHECK-SVE-NEXT: punpkhi p0.h, p1 .b
758- ; CHECK-SVE-NEXT: punpklo p1.h, p1 .b
749+ ; CHECK-SVE-NEXT: punpkhi p0.h, p2 .b
750+ ; CHECK-SVE-NEXT: punpklo p1.h, p2 .b
759751; CHECK-SVE-NEXT: punpkhi p2.h, p3.b
760752; CHECK-SVE-NEXT: punpklo p3.h, p3.b
761- ; CHECK-SVE-NEXT: mov z0.h, p3/z, #1 // =0x1
762- ; CHECK-SVE-NEXT: fmov w18, s0
763- ; CHECK-SVE-NEXT: tbnz w18, #0, .LBB7_2
753+ ; CHECK-SVE-NEXT: b.mi .LBB7_2
764754; CHECK-SVE-NEXT: .LBB7_3: // %for.cond.cleanup
765755; CHECK-SVE-NEXT: ret
766756;
@@ -799,9 +789,7 @@ define void @f_h_4(ptr noalias %dst, ptr %src, i32 %n) #0 {
799789; CHECK-SVE2p1-NEXT: addvl x9, x9, #2
800790; CHECK-SVE2p1-NEXT: whilelo { p0.h, p1.h }, x16, x8
801791; CHECK-SVE2p1-NEXT: whilelo { p2.h, p3.h }, x9, x8
802- ; CHECK-SVE2p1-NEXT: mov z0.h, p2/z, #1 // =0x1
803- ; CHECK-SVE2p1-NEXT: fmov w16, s0
804- ; CHECK-SVE2p1-NEXT: tbnz w16, #0, .LBB7_2
792+ ; CHECK-SVE2p1-NEXT: b.mi .LBB7_2
805793; CHECK-SVE2p1-NEXT: .LBB7_3: // %for.cond.cleanup
806794; CHECK-SVE2p1-NEXT: ret
807795entry:
@@ -918,21 +906,19 @@ define void @f_d_4(ptr noalias %dst, ptr readonly %src, i32 %n) #0 {
918906; CHECK-SVE-NEXT: ld1d { z4.d }, p0/z, [x13, x9, lsl #3]
919907; CHECK-SVE-NEXT: fmul z2.d, z2.d, z0.d
920908; CHECK-SVE-NEXT: fmul z3.d, z3.d, z0.d
921- ; CHECK-SVE-NEXT: fmul z4.d, z4.d, z0.d
922909; CHECK-SVE-NEXT: st1d { z1.d }, p3, [x0, x9, lsl #3]
910+ ; CHECK-SVE-NEXT: fmul z1.d, z4.d, z0.d
923911; CHECK-SVE-NEXT: st1d { z2.d }, p2, [x12, x9, lsl #3]
924912; CHECK-SVE-NEXT: st1d { z3.d }, p1, [x11, x9, lsl #3]
925- ; CHECK-SVE-NEXT: st1d { z4.d }, p0, [x10, x9, lsl #3]
913+ ; CHECK-SVE-NEXT: whilelo p3.s, x18, x8
914+ ; CHECK-SVE-NEXT: st1d { z1.d }, p0, [x10, x9, lsl #3]
926915; CHECK-SVE-NEXT: add x9, x16, x9
927- ; CHECK-SVE-NEXT: whilelo p1.s, x18, x8
928- ; CHECK-SVE-NEXT: whilelo p3.s, x9, x8
929- ; CHECK-SVE-NEXT: punpkhi p0.h, p1.b
930- ; CHECK-SVE-NEXT: punpklo p1.h, p1.b
931- ; CHECK-SVE-NEXT: punpkhi p2.h, p3.b
932- ; CHECK-SVE-NEXT: punpklo p3.h, p3.b
933- ; CHECK-SVE-NEXT: mov z1.d, p3/z, #1 // =0x1
934- ; CHECK-SVE-NEXT: fmov x18, d1
935- ; CHECK-SVE-NEXT: tbnz w18, #0, .LBB8_2
916+ ; CHECK-SVE-NEXT: punpkhi p0.h, p3.b
917+ ; CHECK-SVE-NEXT: punpklo p1.h, p3.b
918+ ; CHECK-SVE-NEXT: whilelo p4.s, x9, x8
919+ ; CHECK-SVE-NEXT: punpkhi p2.h, p4.b
920+ ; CHECK-SVE-NEXT: punpklo p3.h, p4.b
921+ ; CHECK-SVE-NEXT: b.mi .LBB8_2
936922; CHECK-SVE-NEXT: .LBB8_3: // %for.cond.cleanup
937923; CHECK-SVE-NEXT: ret
938924;
@@ -968,15 +954,13 @@ define void @f_d_4(ptr noalias %dst, ptr readonly %src, i32 %n) #0 {
968954; CHECK-SVE2p1-NEXT: fmul z4.d, z4.d, z0.d
969955; CHECK-SVE2p1-NEXT: st1d { z1.d }, p2, [x0, x9, lsl #3]
970956; CHECK-SVE2p1-NEXT: st1d { z2.d }, p3, [x12, x9, lsl #3]
971- ; CHECK-SVE2p1-NEXT: whilelo { p2.d, p3.d }, x15, x8
972- ; CHECK-SVE2p1-NEXT: mov z1.d, p2/z, #1 // =0x1
973957; CHECK-SVE2p1-NEXT: st1d { z3.d }, p0, [x11, x9, lsl #3]
974958; CHECK-SVE2p1-NEXT: st1d { z4.d }, p1, [x10, x9, lsl #3]
975959; CHECK-SVE2p1-NEXT: incw x9, all, mul #3
976960; CHECK-SVE2p1-NEXT: whilelo { p0.d, p1.d }, x9, x8
961+ ; CHECK-SVE2p1-NEXT: whilelo { p2.d, p3.d }, x15, x8
977962; CHECK-SVE2p1-NEXT: mov x9, x15
978- ; CHECK-SVE2p1-NEXT: fmov x17, d1
979- ; CHECK-SVE2p1-NEXT: tbnz w17, #0, .LBB8_2
963+ ; CHECK-SVE2p1-NEXT: b.mi .LBB8_2
980964; CHECK-SVE2p1-NEXT: .LBB8_3: // %for.cond.cleanup
981965; CHECK-SVE2p1-NEXT: ret
982966entry:
0 commit comments