@@ -588,7 +588,7 @@ body: |
588
588
589
589
590
590
---
591
- name : 21-ldrswpre-ldrswui-no- merge
591
+ name : 21-ldrswpre-ldrswui-merge
592
592
tracksRegLiveness : true
593
593
liveins :
594
594
- { reg: '$x0' }
@@ -599,10 +599,9 @@ machineFunctionInfo:
599
599
body : |
600
600
bb.0:
601
601
liveins: $x0, $x1, $x2
602
- ; CHECK-LABEL: name: 21-ldrswpre-ldrswui-no- merge
602
+ ; CHECK-LABEL: name: 21-ldrswpre-ldrswui-merge
603
603
; CHECK: liveins: $x0, $x1, $x2
604
- ; CHECK: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 40, implicit $w1 :: (load (s32))
605
- ; CHECK: renamable $x2 = LDRSWui renamable $x1, 1 :: (load (s32))
604
+ ; CHECK: early-clobber $x1, renamable $x0, renamable $x2 = LDPSWpre renamable $x1, 10 :: (load (s32))
606
605
; CHECK: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64))
607
606
; CHECK: RET undef $lr
608
607
early-clobber renamable $x1, renamable $x0 = LDRSWpre killed renamable $x1, 40 :: (load (s32))
@@ -614,7 +613,7 @@ body: |
614
613
615
614
616
615
---
617
- name : 22-ldrswpre-ldurswi-no- merge
616
+ name : 22-ldrswpre-ldurswi-merge
618
617
tracksRegLiveness : true
619
618
liveins :
620
619
- { reg: '$x0' }
@@ -625,10 +624,9 @@ machineFunctionInfo:
625
624
body : |
626
625
bb.0:
627
626
liveins: $x0, $x1, $x2
628
- ; CHECK-LABEL: name: 22-ldrswpre-ldurswi-no- merge
627
+ ; CHECK-LABEL: name: 22-ldrswpre-ldurswi-merge
629
628
; CHECK: liveins: $x0, $x1, $x2
630
- ; CHECK: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 40, implicit $w1 :: (load (s32))
631
- ; CHECK: renamable $x2 = LDURSWi renamable $x1, 4 :: (load (s32))
629
+ ; CHECK: early-clobber $x1, renamable $x0, renamable $x2 = LDPSWpre renamable $x1, 10 :: (load (s32))
632
630
; CHECK: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64))
633
631
; CHECK: RET undef $lr
634
632
early-clobber renamable $x1, renamable $x0 = LDRSWpre killed renamable $x1, 40 :: (load (s32))
@@ -775,3 +773,61 @@ body: |
775
773
STRXui killed renamable $x2, renamable $x1, 1 :: (store (s64))
776
774
RET undef $lr
777
775
...
776
+
777
+
778
+ ---
779
+ name : 28-ldrswpre-ldrwpre-no-merge
780
+ tracksRegLiveness : true
781
+ liveins :
782
+ - { reg: '$x11' }
783
+ - { reg: '$x13' }
784
+ machineFunctionInfo :
785
+ hasRedZone : false
786
+ body : |
787
+ bb.0:
788
+ liveins: $x11, $x13
789
+ ; CHECK-LABEL: name: 28-ldrswpre-ldrwpre-no-merge
790
+ ; CHECK: liveins: $x11, $x13
791
+ ; CHECK: early-clobber renamable $x11, dead renamable $x10 = LDRSWpre renamable $x11, 8, implicit $w11 :: (load (s32), align 8)
792
+ ; CHECK: $x14 = EORXrs renamable $x11, renamable $x13, 0
793
+ ; CHECK: early-clobber renamable $x11, dead renamable $w12 = LDRWpre renamable $x11, 4, implicit $w11 :: (load (s32))
794
+ ; CHECK: $x13 = EORXrs renamable $x11, renamable $x13, 0
795
+ ; CHECK: STPXi renamable $x13, renamable $x14, renamable $x11, 0 :: (store (s64))
796
+ ; CHECK: RET undef $lr
797
+ early-clobber renamable $x11, renamable $x10 = LDRSWpre killed renamable $x11, 8 :: (load (s32), align 8)
798
+ $x14 = EORXrs renamable $x11, renamable $x13, 0
799
+ early-clobber renamable $x11, renamable $w12 = LDRWpre killed renamable $x11, 4 :: (load (s32))
800
+ $x13 = EORXrs renamable $x11, killed renamable $x13, 0
801
+ STRXui killed renamable $x13, renamable $x11, 0 :: (store (s64))
802
+ STRXui killed renamable $x14, renamable $x11, 1 :: (store (s64))
803
+ RET undef $lr
804
+ ...
805
+
806
+
807
+ ---
808
+ name : 29-ldrwpre-ldrswpre-no-merge
809
+ tracksRegLiveness : true
810
+ liveins :
811
+ - { reg: '$x11' }
812
+ - { reg: '$x13' }
813
+ machineFunctionInfo :
814
+ hasRedZone : false
815
+ body : |
816
+ bb.0:
817
+ liveins: $x11, $x13
818
+ ; CHECK-LABEL: name: 29-ldrwpre-ldrswpre-no-merge
819
+ ; CHECK: liveins: $x11, $x13
820
+ ; CHECK: early-clobber renamable $x11, dead renamable $w12 = LDRWpre renamable $x11, 8, implicit $w11 :: (load (s32))
821
+ ; CHECK: $x14 = EORXrs renamable $x11, renamable $x13, 0
822
+ ; CHECK: early-clobber renamable $x11, dead renamable $x10 = LDRSWpre renamable $x11, 4, implicit $w11 :: (load (s32), align 8)
823
+ ; CHECK: $x13 = EORXrs renamable $x11, renamable $x13, 0
824
+ ; CHECK: STPXi renamable $x13, renamable $x14, renamable $x11, 0 :: (store (s64))
825
+ ; CHECK: RET undef $lr
826
+ early-clobber renamable $x11, renamable $w12 = LDRWpre killed renamable $x11, 8 :: (load (s32))
827
+ $x14 = EORXrs renamable $x11, renamable $x13, 0
828
+ early-clobber renamable $x11, renamable $x10 = LDRSWpre killed renamable $x11, 4 :: (load (s32), align 8)
829
+ $x13 = EORXrs renamable $x11, killed renamable $x13, 0
830
+ STRXui killed renamable $x13, renamable $x11, 0 :: (store (s64))
831
+ STRXui killed renamable $x14, renamable $x11, 1 :: (store (s64))
832
+ RET undef $lr
833
+ ...
0 commit comments