@@ -351,9 +351,7 @@ define void @f_h_2(ptr noalias %dst, ptr readonly %src, i32 %n) #0 {
351
351
; CHECK-SVE-NEXT: whilelo p1.b, x8, x9
352
352
; CHECK-SVE-NEXT: punpkhi p0.h, p1.b
353
353
; 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
357
355
; CHECK-SVE-NEXT: .LBB4_3: // %for.cond.cleanup
358
356
; CHECK-SVE-NEXT: ret
359
357
;
@@ -378,9 +376,7 @@ define void @f_h_2(ptr noalias %dst, ptr readonly %src, i32 %n) #0 {
378
376
; CHECK-SVE2p1-NEXT: st1h { z1.h }, p1, [x10, x8, lsl #1]
379
377
; CHECK-SVE2p1-NEXT: addvl x8, x8, #1
380
378
; 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
384
380
; CHECK-SVE2p1-NEXT: .LBB4_3: // %for.cond.cleanup
385
381
; CHECK-SVE2p1-NEXT: ret
386
382
entry:
@@ -456,9 +452,7 @@ define void @f3(ptr noalias %dst, ptr readonly %src, i32 %n) #0 {
456
452
; CHECK-SVE-NEXT: whilelo p1.s, x8, x9
457
453
; CHECK-SVE-NEXT: punpkhi p0.h, p1.b
458
454
; 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
462
456
; CHECK-SVE-NEXT: .LBB5_3: // %for.cond.cleanup
463
457
; CHECK-SVE-NEXT: ret
464
458
;
@@ -484,9 +478,7 @@ define void @f3(ptr noalias %dst, ptr readonly %src, i32 %n) #0 {
484
478
; CHECK-SVE2p1-NEXT: st1d { z2.d }, p1, [x10, x8, lsl #3]
485
479
; CHECK-SVE2p1-NEXT: incw x8
486
480
; 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
490
482
; CHECK-SVE2p1-NEXT: .LBB5_3: // %for.cond.cleanup
491
483
; CHECK-SVE2p1-NEXT: ret
492
484
entry:
@@ -752,15 +744,13 @@ define void @f_h_4(ptr noalias %dst, ptr %src, i32 %n) #0 {
752
744
; CHECK-SVE-NEXT: st1h { z2.h }, p1, [x13, x10, lsl #1]
753
745
; CHECK-SVE-NEXT: st1h { z3.h }, p0, [x12, x10, lsl #1]
754
746
; 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
756
748
; 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
759
751
; CHECK-SVE-NEXT: punpkhi p2.h, p3.b
760
752
; 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
764
754
; CHECK-SVE-NEXT: .LBB7_3: // %for.cond.cleanup
765
755
; CHECK-SVE-NEXT: ret
766
756
;
@@ -799,9 +789,7 @@ define void @f_h_4(ptr noalias %dst, ptr %src, i32 %n) #0 {
799
789
; CHECK-SVE2p1-NEXT: addvl x9, x9, #2
800
790
; CHECK-SVE2p1-NEXT: whilelo { p0.h, p1.h }, x16, x8
801
791
; 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
805
793
; CHECK-SVE2p1-NEXT: .LBB7_3: // %for.cond.cleanup
806
794
; CHECK-SVE2p1-NEXT: ret
807
795
entry:
@@ -918,21 +906,19 @@ define void @f_d_4(ptr noalias %dst, ptr readonly %src, i32 %n) #0 {
918
906
; CHECK-SVE-NEXT: ld1d { z4.d }, p0/z, [x13, x9, lsl #3]
919
907
; CHECK-SVE-NEXT: fmul z2.d, z2.d, z0.d
920
908
; CHECK-SVE-NEXT: fmul z3.d, z3.d, z0.d
921
- ; CHECK-SVE-NEXT: fmul z4.d, z4.d, z0.d
922
909
; CHECK-SVE-NEXT: st1d { z1.d }, p3, [x0, x9, lsl #3]
910
+ ; CHECK-SVE-NEXT: fmul z1.d, z4.d, z0.d
923
911
; CHECK-SVE-NEXT: st1d { z2.d }, p2, [x12, x9, lsl #3]
924
912
; 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]
926
915
; 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
936
922
; CHECK-SVE-NEXT: .LBB8_3: // %for.cond.cleanup
937
923
; CHECK-SVE-NEXT: ret
938
924
;
@@ -968,15 +954,13 @@ define void @f_d_4(ptr noalias %dst, ptr readonly %src, i32 %n) #0 {
968
954
; CHECK-SVE2p1-NEXT: fmul z4.d, z4.d, z0.d
969
955
; CHECK-SVE2p1-NEXT: st1d { z1.d }, p2, [x0, x9, lsl #3]
970
956
; 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
973
957
; CHECK-SVE2p1-NEXT: st1d { z3.d }, p0, [x11, x9, lsl #3]
974
958
; CHECK-SVE2p1-NEXT: st1d { z4.d }, p1, [x10, x9, lsl #3]
975
959
; CHECK-SVE2p1-NEXT: incw x9, all, mul #3
976
960
; CHECK-SVE2p1-NEXT: whilelo { p0.d, p1.d }, x9, x8
961
+ ; CHECK-SVE2p1-NEXT: whilelo { p2.d, p3.d }, x15, x8
977
962
; 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
980
964
; CHECK-SVE2p1-NEXT: .LBB8_3: // %for.cond.cleanup
981
965
; CHECK-SVE2p1-NEXT: ret
982
966
entry:
0 commit comments