@@ -608,9 +608,8 @@ entry:
608
608
define i32 @ldrb_ri_negative (i8* %p ) {
609
609
; CHECK-T1-LABEL: ldrb_ri_negative:
610
610
; CHECK-T1: @ %bb.0: @ %entry
611
- ; CHECK-T1-NEXT: movs r1, #0
612
- ; CHECK-T1-NEXT: mvns r1, r1
613
- ; CHECK-T1-NEXT: ldrb r0, [r0, r1]
611
+ ; CHECK-T1-NEXT: subs r0, r0, #1
612
+ ; CHECK-T1-NEXT: ldrb r0, [r0]
614
613
; CHECK-T1-NEXT: bx lr
615
614
;
616
615
; CHECK-T2-LABEL: ldrb_ri_negative:
@@ -627,9 +626,8 @@ entry:
627
626
define i32 @ldrh_ri_negative (i8* %p ) {
628
627
; CHECK-T1-LABEL: ldrh_ri_negative:
629
628
; CHECK-T1: @ %bb.0: @ %entry
630
- ; CHECK-T1-NEXT: movs r1, #0
631
- ; CHECK-T1-NEXT: mvns r1, r1
632
- ; CHECK-T1-NEXT: ldrh r0, [r0, r1]
629
+ ; CHECK-T1-NEXT: subs r0, r0, #1
630
+ ; CHECK-T1-NEXT: ldrh r0, [r0]
633
631
; CHECK-T1-NEXT: bx lr
634
632
;
635
633
; CHECK-T2-LABEL: ldrh_ri_negative:
@@ -647,9 +645,8 @@ entry:
647
645
define i32 @ldr_ri_negative (i8* %p ) {
648
646
; CHECK-T1-LABEL: ldr_ri_negative:
649
647
; CHECK-T1: @ %bb.0: @ %entry
650
- ; CHECK-T1-NEXT: movs r1, #0
651
- ; CHECK-T1-NEXT: mvns r1, r1
652
- ; CHECK-T1-NEXT: ldr r0, [r0, r1]
648
+ ; CHECK-T1-NEXT: subs r0, r0, #1
649
+ ; CHECK-T1-NEXT: ldr r0, [r0]
653
650
; CHECK-T1-NEXT: bx lr
654
651
;
655
652
; CHECK-T2-LABEL: ldr_ri_negative:
@@ -666,9 +663,8 @@ entry:
666
663
define void @strb_ri_negative (i8* %p , i32 %x ) {
667
664
; CHECK-T1-LABEL: strb_ri_negative:
668
665
; CHECK-T1: @ %bb.0: @ %entry
669
- ; CHECK-T1-NEXT: movs r2, #0
670
- ; CHECK-T1-NEXT: mvns r2, r2
671
- ; CHECK-T1-NEXT: strb r1, [r0, r2]
666
+ ; CHECK-T1-NEXT: subs r0, r0, #1
667
+ ; CHECK-T1-NEXT: strb r1, [r0]
672
668
; CHECK-T1-NEXT: bx lr
673
669
;
674
670
; CHECK-T2-LABEL: strb_ri_negative:
@@ -685,9 +681,8 @@ entry:
685
681
define void @strh_ri_negative (i8* %p , i32 %x ) {
686
682
; CHECK-T1-LABEL: strh_ri_negative:
687
683
; CHECK-T1: @ %bb.0: @ %entry
688
- ; CHECK-T1-NEXT: movs r2, #0
689
- ; CHECK-T1-NEXT: mvns r2, r2
690
- ; CHECK-T1-NEXT: strh r1, [r0, r2]
684
+ ; CHECK-T1-NEXT: subs r0, r0, #1
685
+ ; CHECK-T1-NEXT: strh r1, [r0]
691
686
; CHECK-T1-NEXT: bx lr
692
687
;
693
688
; CHECK-T2-LABEL: strh_ri_negative:
@@ -705,9 +700,8 @@ entry:
705
700
define void @str_ri_negative (i8* %p , i32 %x ) {
706
701
; CHECK-T1-LABEL: str_ri_negative:
707
702
; CHECK-T1: @ %bb.0: @ %entry
708
- ; CHECK-T1-NEXT: movs r2, #0
709
- ; CHECK-T1-NEXT: mvns r2, r2
710
- ; CHECK-T1-NEXT: str r1, [r0, r2]
703
+ ; CHECK-T1-NEXT: subs r0, r0, #1
704
+ ; CHECK-T1-NEXT: str r1, [r0]
711
705
; CHECK-T1-NEXT: bx lr
712
706
;
713
707
; CHECK-T2-LABEL: str_ri_negative:
@@ -766,9 +760,8 @@ entry:
766
760
define i32 @ldrb_ri_negative255 (i8* %p ) {
767
761
; CHECK-T1-LABEL: ldrb_ri_negative255:
768
762
; CHECK-T1: @ %bb.0: @ %entry
769
- ; CHECK-T1-NEXT: movs r1, #254
770
- ; CHECK-T1-NEXT: mvns r1, r1
771
- ; CHECK-T1-NEXT: ldrb r0, [r0, r1]
763
+ ; CHECK-T1-NEXT: subs r0, #255
764
+ ; CHECK-T1-NEXT: ldrb r0, [r0]
772
765
; CHECK-T1-NEXT: bx lr
773
766
;
774
767
; CHECK-T2-LABEL: ldrb_ri_negative255:
@@ -785,9 +778,8 @@ entry:
785
778
define i32 @ldrh_ri_negative255 (i8* %p ) {
786
779
; CHECK-T1-LABEL: ldrh_ri_negative255:
787
780
; CHECK-T1: @ %bb.0: @ %entry
788
- ; CHECK-T1-NEXT: movs r1, #254
789
- ; CHECK-T1-NEXT: mvns r1, r1
790
- ; CHECK-T1-NEXT: ldrh r0, [r0, r1]
781
+ ; CHECK-T1-NEXT: subs r0, #255
782
+ ; CHECK-T1-NEXT: ldrh r0, [r0]
791
783
; CHECK-T1-NEXT: bx lr
792
784
;
793
785
; CHECK-T2-LABEL: ldrh_ri_negative255:
@@ -805,9 +797,8 @@ entry:
805
797
define i32 @ldr_ri_negative255 (i8* %p ) {
806
798
; CHECK-T1-LABEL: ldr_ri_negative255:
807
799
; CHECK-T1: @ %bb.0: @ %entry
808
- ; CHECK-T1-NEXT: movs r1, #254
809
- ; CHECK-T1-NEXT: mvns r1, r1
810
- ; CHECK-T1-NEXT: ldr r0, [r0, r1]
800
+ ; CHECK-T1-NEXT: subs r0, #255
801
+ ; CHECK-T1-NEXT: ldr r0, [r0]
811
802
; CHECK-T1-NEXT: bx lr
812
803
;
813
804
; CHECK-T2-LABEL: ldr_ri_negative255:
@@ -824,9 +815,8 @@ entry:
824
815
define void @strb_ri_negative255 (i8* %p , i32 %x ) {
825
816
; CHECK-T1-LABEL: strb_ri_negative255:
826
817
; CHECK-T1: @ %bb.0: @ %entry
827
- ; CHECK-T1-NEXT: movs r2, #254
828
- ; CHECK-T1-NEXT: mvns r2, r2
829
- ; CHECK-T1-NEXT: strb r1, [r0, r2]
818
+ ; CHECK-T1-NEXT: subs r0, #255
819
+ ; CHECK-T1-NEXT: strb r1, [r0]
830
820
; CHECK-T1-NEXT: bx lr
831
821
;
832
822
; CHECK-T2-LABEL: strb_ri_negative255:
@@ -843,9 +833,8 @@ entry:
843
833
define void @strh_ri_negative255 (i8* %p , i32 %x ) {
844
834
; CHECK-T1-LABEL: strh_ri_negative255:
845
835
; CHECK-T1: @ %bb.0: @ %entry
846
- ; CHECK-T1-NEXT: movs r2, #254
847
- ; CHECK-T1-NEXT: mvns r2, r2
848
- ; CHECK-T1-NEXT: strh r1, [r0, r2]
836
+ ; CHECK-T1-NEXT: subs r0, #255
837
+ ; CHECK-T1-NEXT: strh r1, [r0]
849
838
; CHECK-T1-NEXT: bx lr
850
839
;
851
840
; CHECK-T2-LABEL: strh_ri_negative255:
@@ -863,9 +852,8 @@ entry:
863
852
define void @str_ri_negative255 (i8* %p , i32 %x ) {
864
853
; CHECK-T1-LABEL: str_ri_negative255:
865
854
; CHECK-T1: @ %bb.0: @ %entry
866
- ; CHECK-T1-NEXT: movs r2, #254
867
- ; CHECK-T1-NEXT: mvns r2, r2
868
- ; CHECK-T1-NEXT: str r1, [r0, r2]
855
+ ; CHECK-T1-NEXT: subs r0, #255
856
+ ; CHECK-T1-NEXT: str r1, [r0]
869
857
; CHECK-T1-NEXT: bx lr
870
858
;
871
859
; CHECK-T2-LABEL: str_ri_negative255:
0 commit comments