Skip to content

Commit 6dc11d9

Browse files
committed
Rebase
1 parent aaa2b58 commit 6dc11d9

File tree

2 files changed

+117
-155
lines changed

2 files changed

+117
-155
lines changed

llvm/test/CodeGen/AArch64/alias_mask.ll

Lines changed: 44 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -105,12 +105,11 @@ define <4 x i1> @whilewr_32(ptr %a, ptr %b) {
105105
;
106106
; CHECK-NOSVE-LABEL: whilewr_32:
107107
; CHECK-NOSVE: // %bb.0: // %entry
108-
; CHECK-NOSVE-NEXT: sub x9, x1, x0
108+
; CHECK-NOSVE-NEXT: subs x9, x1, x0
109109
; CHECK-NOSVE-NEXT: adrp x8, .LCPI2_0
110110
; CHECK-NOSVE-NEXT: add x10, x9, #3
111-
; CHECK-NOSVE-NEXT: cmp x9, #0
112111
; CHECK-NOSVE-NEXT: ldr q1, [x8, :lo12:.LCPI2_0]
113-
; CHECK-NOSVE-NEXT: csel x9, x10, x9, lt
112+
; CHECK-NOSVE-NEXT: csel x9, x10, x9, mi
114113
; CHECK-NOSVE-NEXT: adrp x10, .LCPI2_1
115114
; CHECK-NOSVE-NEXT: asr x9, x9, #2
116115
; CHECK-NOSVE-NEXT: ldr q2, [x10, :lo12:.LCPI2_1]
@@ -139,12 +138,11 @@ define <2 x i1> @whilewr_64(ptr %a, ptr %b) {
139138
;
140139
; CHECK-NOSVE-LABEL: whilewr_64:
141140
; CHECK-NOSVE: // %bb.0: // %entry
142-
; CHECK-NOSVE-NEXT: sub x9, x1, x0
141+
; CHECK-NOSVE-NEXT: subs x9, x1, x0
143142
; CHECK-NOSVE-NEXT: adrp x8, .LCPI3_0
144143
; CHECK-NOSVE-NEXT: add x10, x9, #7
145-
; CHECK-NOSVE-NEXT: cmp x9, #0
146144
; CHECK-NOSVE-NEXT: ldr q1, [x8, :lo12:.LCPI3_0]
147-
; CHECK-NOSVE-NEXT: csel x9, x10, x9, lt
145+
; CHECK-NOSVE-NEXT: csel x9, x10, x9, mi
148146
; CHECK-NOSVE-NEXT: asr x9, x9, #3
149147
; CHECK-NOSVE-NEXT: dup v0.2d, x9
150148
; CHECK-NOSVE-NEXT: cmp x9, #1
@@ -270,7 +268,7 @@ define <4 x i1> @whilerw_32(ptr %a, ptr %b) {
270268
; CHECK-NOSVE-NEXT: ldr q1, [x8, :lo12:.LCPI6_0]
271269
; CHECK-NOSVE-NEXT: add x10, x9, #3
272270
; CHECK-NOSVE-NEXT: cmp x9, #0
273-
; CHECK-NOSVE-NEXT: csel x9, x10, x9, lt
271+
; CHECK-NOSVE-NEXT: csel x9, x10, x9, mi
274272
; CHECK-NOSVE-NEXT: adrp x10, .LCPI6_1
275273
; CHECK-NOSVE-NEXT: asr x9, x9, #2
276274
; CHECK-NOSVE-NEXT: ldr q2, [x10, :lo12:.LCPI6_1]
@@ -305,7 +303,7 @@ define <2 x i1> @whilerw_64(ptr %a, ptr %b) {
305303
; CHECK-NOSVE-NEXT: ldr q1, [x8, :lo12:.LCPI7_0]
306304
; CHECK-NOSVE-NEXT: add x10, x9, #7
307305
; CHECK-NOSVE-NEXT: cmp x9, #0
308-
; CHECK-NOSVE-NEXT: csel x9, x10, x9, lt
306+
; CHECK-NOSVE-NEXT: csel x9, x10, x9, mi
309307
; CHECK-NOSVE-NEXT: asr x9, x9, #3
310308
; CHECK-NOSVE-NEXT: dup v0.2d, x9
311309
; CHECK-NOSVE-NEXT: cmp x9, #0
@@ -712,10 +710,9 @@ define <8 x i1> @whilewr_32_split(ptr %a, ptr %b) {
712710
; CHECK-SVE-LABEL: whilewr_32_split:
713711
; CHECK-SVE: // %bb.0: // %entry
714712
; CHECK-SVE-NEXT: index z0.d, #0, #1
715-
; CHECK-SVE-NEXT: sub x8, x1, x0
713+
; CHECK-SVE-NEXT: subs x8, x1, x0
716714
; CHECK-SVE-NEXT: add x9, x8, #3
717-
; CHECK-SVE-NEXT: cmp x8, #0
718-
; CHECK-SVE-NEXT: csel x8, x9, x8, lt
715+
; CHECK-SVE-NEXT: csel x8, x9, x8, mi
719716
; CHECK-SVE-NEXT: asr x8, x8, #2
720717
; CHECK-SVE-NEXT: mov z2.d, z0.d
721718
; CHECK-SVE-NEXT: mov z3.d, z0.d
@@ -740,15 +737,14 @@ define <8 x i1> @whilewr_32_split(ptr %a, ptr %b) {
740737
;
741738
; CHECK-NOSVE-LABEL: whilewr_32_split:
742739
; CHECK-NOSVE: // %bb.0: // %entry
743-
; CHECK-NOSVE-NEXT: sub x8, x1, x0
740+
; CHECK-NOSVE-NEXT: subs x8, x1, x0
744741
; CHECK-NOSVE-NEXT: adrp x10, .LCPI12_1
745742
; CHECK-NOSVE-NEXT: adrp x11, .LCPI12_2
746743
; CHECK-NOSVE-NEXT: add x9, x8, #3
747-
; CHECK-NOSVE-NEXT: cmp x8, #0
748744
; CHECK-NOSVE-NEXT: ldr q2, [x10, :lo12:.LCPI12_1]
749-
; CHECK-NOSVE-NEXT: csel x8, x9, x8, lt
750-
; CHECK-NOSVE-NEXT: adrp x9, .LCPI12_0
751745
; CHECK-NOSVE-NEXT: ldr q3, [x11, :lo12:.LCPI12_2]
746+
; CHECK-NOSVE-NEXT: csel x8, x9, x8, mi
747+
; CHECK-NOSVE-NEXT: adrp x9, .LCPI12_0
752748
; CHECK-NOSVE-NEXT: asr x8, x8, #2
753749
; CHECK-NOSVE-NEXT: ldr q1, [x9, :lo12:.LCPI12_0]
754750
; CHECK-NOSVE-NEXT: adrp x9, .LCPI12_3
@@ -776,10 +772,9 @@ define <16 x i1> @whilewr_32_split2(ptr %a, ptr %b) {
776772
; CHECK-SVE-LABEL: whilewr_32_split2:
777773
; CHECK-SVE: // %bb.0: // %entry
778774
; CHECK-SVE-NEXT: index z0.d, #0, #1
779-
; CHECK-SVE-NEXT: sub x8, x1, x0
775+
; CHECK-SVE-NEXT: subs x8, x1, x0
780776
; CHECK-SVE-NEXT: add x9, x8, #3
781-
; CHECK-SVE-NEXT: cmp x8, #0
782-
; CHECK-SVE-NEXT: csel x8, x9, x8, lt
777+
; CHECK-SVE-NEXT: csel x8, x9, x8, mi
783778
; CHECK-SVE-NEXT: asr x8, x8, #2
784779
; CHECK-SVE-NEXT: mov z1.d, z0.d
785780
; CHECK-SVE-NEXT: mov z2.d, z0.d
@@ -819,16 +814,15 @@ define <16 x i1> @whilewr_32_split2(ptr %a, ptr %b) {
819814
;
820815
; CHECK-NOSVE-LABEL: whilewr_32_split2:
821816
; CHECK-NOSVE: // %bb.0: // %entry
822-
; CHECK-NOSVE-NEXT: sub x9, x1, x0
817+
; CHECK-NOSVE-NEXT: subs x9, x1, x0
823818
; CHECK-NOSVE-NEXT: adrp x8, .LCPI13_0
824819
; CHECK-NOSVE-NEXT: add x10, x9, #3
825-
; CHECK-NOSVE-NEXT: cmp x9, #0
826820
; CHECK-NOSVE-NEXT: ldr q0, [x8, :lo12:.LCPI13_0]
827-
; CHECK-NOSVE-NEXT: csel x9, x10, x9, lt
828821
; CHECK-NOSVE-NEXT: adrp x8, .LCPI13_2
822+
; CHECK-NOSVE-NEXT: csel x9, x10, x9, mi
829823
; CHECK-NOSVE-NEXT: adrp x10, .LCPI13_1
830-
; CHECK-NOSVE-NEXT: asr x9, x9, #2
831824
; CHECK-NOSVE-NEXT: ldr q2, [x8, :lo12:.LCPI13_2]
825+
; CHECK-NOSVE-NEXT: asr x9, x9, #2
832826
; CHECK-NOSVE-NEXT: adrp x8, .LCPI13_4
833827
; CHECK-NOSVE-NEXT: ldr q1, [x10, :lo12:.LCPI13_1]
834828
; CHECK-NOSVE-NEXT: adrp x10, .LCPI13_3
@@ -870,10 +864,9 @@ define <32 x i1> @whilewr_32_split3(ptr %a, ptr %b) {
870864
; CHECK-SVE-LABEL: whilewr_32_split3:
871865
; CHECK-SVE: // %bb.0: // %entry
872866
; CHECK-SVE-NEXT: index z0.d, #0, #1
873-
; CHECK-SVE-NEXT: sub x9, x1, x0
867+
; CHECK-SVE-NEXT: subs x9, x1, x0
874868
; CHECK-SVE-NEXT: add x10, x9, #3
875-
; CHECK-SVE-NEXT: cmp x9, #0
876-
; CHECK-SVE-NEXT: csel x9, x10, x9, lt
869+
; CHECK-SVE-NEXT: csel x9, x10, x9, mi
877870
; CHECK-SVE-NEXT: asr x9, x9, #2
878871
; CHECK-SVE-NEXT: mov z1.d, z0.d
879872
; CHECK-SVE-NEXT: mov z2.d, z0.d
@@ -923,18 +916,17 @@ define <32 x i1> @whilewr_32_split3(ptr %a, ptr %b) {
923916
;
924917
; CHECK-NOSVE-LABEL: whilewr_32_split3:
925918
; CHECK-NOSVE: // %bb.0: // %entry
926-
; CHECK-NOSVE-NEXT: sub x9, x1, x0
919+
; CHECK-NOSVE-NEXT: subs x9, x1, x0
927920
; CHECK-NOSVE-NEXT: adrp x11, .LCPI14_0
928921
; CHECK-NOSVE-NEXT: add x10, x9, #3
929-
; CHECK-NOSVE-NEXT: cmp x9, #0
930922
; CHECK-NOSVE-NEXT: ldr q0, [x11, :lo12:.LCPI14_0]
931-
; CHECK-NOSVE-NEXT: csel x9, x10, x9, lt
932-
; CHECK-NOSVE-NEXT: adrp x10, .LCPI14_1
933923
; CHECK-NOSVE-NEXT: adrp x11, .LCPI14_2
924+
; CHECK-NOSVE-NEXT: csel x9, x10, x9, mi
925+
; CHECK-NOSVE-NEXT: adrp x10, .LCPI14_1
926+
; CHECK-NOSVE-NEXT: ldr q2, [x11, :lo12:.LCPI14_2]
934927
; CHECK-NOSVE-NEXT: asr x9, x9, #2
935928
; CHECK-NOSVE-NEXT: ldr q1, [x10, :lo12:.LCPI14_1]
936929
; CHECK-NOSVE-NEXT: adrp x10, .LCPI14_3
937-
; CHECK-NOSVE-NEXT: ldr q2, [x11, :lo12:.LCPI14_2]
938930
; CHECK-NOSVE-NEXT: adrp x11, .LCPI14_4
939931
; CHECK-NOSVE-NEXT: ldr q3, [x10, :lo12:.LCPI14_3]
940932
; CHECK-NOSVE-NEXT: adrp x10, .LCPI14_5
@@ -984,10 +976,9 @@ define <4 x i1> @whilewr_64_split(ptr %a, ptr %b) {
984976
; CHECK-SVE-LABEL: whilewr_64_split:
985977
; CHECK-SVE: // %bb.0: // %entry
986978
; CHECK-SVE-NEXT: index z0.d, #0, #1
987-
; CHECK-SVE-NEXT: sub x8, x1, x0
979+
; CHECK-SVE-NEXT: subs x8, x1, x0
988980
; CHECK-SVE-NEXT: add x9, x8, #7
989-
; CHECK-SVE-NEXT: cmp x8, #0
990-
; CHECK-SVE-NEXT: csel x8, x9, x8, lt
981+
; CHECK-SVE-NEXT: csel x8, x9, x8, mi
991982
; CHECK-SVE-NEXT: asr x8, x8, #3
992983
; CHECK-SVE-NEXT: mov z1.d, z0.d
993984
; CHECK-SVE-NEXT: dup v2.2d, x8
@@ -1004,12 +995,11 @@ define <4 x i1> @whilewr_64_split(ptr %a, ptr %b) {
1004995
;
1005996
; CHECK-NOSVE-LABEL: whilewr_64_split:
1006997
; CHECK-NOSVE: // %bb.0: // %entry
1007-
; CHECK-NOSVE-NEXT: sub x9, x1, x0
998+
; CHECK-NOSVE-NEXT: subs x9, x1, x0
1008999
; CHECK-NOSVE-NEXT: adrp x8, .LCPI15_0
10091000
; CHECK-NOSVE-NEXT: add x10, x9, #7
1010-
; CHECK-NOSVE-NEXT: cmp x9, #0
10111001
; CHECK-NOSVE-NEXT: ldr q1, [x8, :lo12:.LCPI15_0]
1012-
; CHECK-NOSVE-NEXT: csel x9, x10, x9, lt
1002+
; CHECK-NOSVE-NEXT: csel x9, x10, x9, mi
10131003
; CHECK-NOSVE-NEXT: adrp x10, .LCPI15_1
10141004
; CHECK-NOSVE-NEXT: asr x9, x9, #3
10151005
; CHECK-NOSVE-NEXT: ldr q2, [x10, :lo12:.LCPI15_1]
@@ -1032,10 +1022,9 @@ define <8 x i1> @whilewr_64_split2(ptr %a, ptr %b) {
10321022
; CHECK-SVE-LABEL: whilewr_64_split2:
10331023
; CHECK-SVE: // %bb.0: // %entry
10341024
; CHECK-SVE-NEXT: index z0.d, #0, #1
1035-
; CHECK-SVE-NEXT: sub x8, x1, x0
1025+
; CHECK-SVE-NEXT: subs x8, x1, x0
10361026
; CHECK-SVE-NEXT: add x9, x8, #7
1037-
; CHECK-SVE-NEXT: cmp x8, #0
1038-
; CHECK-SVE-NEXT: csel x8, x9, x8, lt
1027+
; CHECK-SVE-NEXT: csel x8, x9, x8, mi
10391028
; CHECK-SVE-NEXT: asr x8, x8, #3
10401029
; CHECK-SVE-NEXT: mov z2.d, z0.d
10411030
; CHECK-SVE-NEXT: mov z3.d, z0.d
@@ -1060,15 +1049,14 @@ define <8 x i1> @whilewr_64_split2(ptr %a, ptr %b) {
10601049
;
10611050
; CHECK-NOSVE-LABEL: whilewr_64_split2:
10621051
; CHECK-NOSVE: // %bb.0: // %entry
1063-
; CHECK-NOSVE-NEXT: sub x8, x1, x0
1052+
; CHECK-NOSVE-NEXT: subs x8, x1, x0
10641053
; CHECK-NOSVE-NEXT: adrp x10, .LCPI16_1
10651054
; CHECK-NOSVE-NEXT: adrp x11, .LCPI16_2
10661055
; CHECK-NOSVE-NEXT: add x9, x8, #7
1067-
; CHECK-NOSVE-NEXT: cmp x8, #0
10681056
; CHECK-NOSVE-NEXT: ldr q2, [x10, :lo12:.LCPI16_1]
1069-
; CHECK-NOSVE-NEXT: csel x8, x9, x8, lt
1070-
; CHECK-NOSVE-NEXT: adrp x9, .LCPI16_0
10711057
; CHECK-NOSVE-NEXT: ldr q3, [x11, :lo12:.LCPI16_2]
1058+
; CHECK-NOSVE-NEXT: csel x8, x9, x8, mi
1059+
; CHECK-NOSVE-NEXT: adrp x9, .LCPI16_0
10721060
; CHECK-NOSVE-NEXT: asr x8, x8, #3
10731061
; CHECK-NOSVE-NEXT: ldr q1, [x9, :lo12:.LCPI16_0]
10741062
; CHECK-NOSVE-NEXT: adrp x9, .LCPI16_3
@@ -1096,10 +1084,9 @@ define <16 x i1> @whilewr_64_split3(ptr %a, ptr %b) {
10961084
; CHECK-SVE-LABEL: whilewr_64_split3:
10971085
; CHECK-SVE: // %bb.0: // %entry
10981086
; CHECK-SVE-NEXT: index z0.d, #0, #1
1099-
; CHECK-SVE-NEXT: sub x8, x1, x0
1087+
; CHECK-SVE-NEXT: subs x8, x1, x0
11001088
; CHECK-SVE-NEXT: add x9, x8, #7
1101-
; CHECK-SVE-NEXT: cmp x8, #0
1102-
; CHECK-SVE-NEXT: csel x8, x9, x8, lt
1089+
; CHECK-SVE-NEXT: csel x8, x9, x8, mi
11031090
; CHECK-SVE-NEXT: asr x8, x8, #3
11041091
; CHECK-SVE-NEXT: mov z1.d, z0.d
11051092
; CHECK-SVE-NEXT: mov z2.d, z0.d
@@ -1139,16 +1126,15 @@ define <16 x i1> @whilewr_64_split3(ptr %a, ptr %b) {
11391126
;
11401127
; CHECK-NOSVE-LABEL: whilewr_64_split3:
11411128
; CHECK-NOSVE: // %bb.0: // %entry
1142-
; CHECK-NOSVE-NEXT: sub x9, x1, x0
1129+
; CHECK-NOSVE-NEXT: subs x9, x1, x0
11431130
; CHECK-NOSVE-NEXT: adrp x8, .LCPI17_0
11441131
; CHECK-NOSVE-NEXT: add x10, x9, #7
1145-
; CHECK-NOSVE-NEXT: cmp x9, #0
11461132
; CHECK-NOSVE-NEXT: ldr q0, [x8, :lo12:.LCPI17_0]
1147-
; CHECK-NOSVE-NEXT: csel x9, x10, x9, lt
11481133
; CHECK-NOSVE-NEXT: adrp x8, .LCPI17_2
1134+
; CHECK-NOSVE-NEXT: csel x9, x10, x9, mi
11491135
; CHECK-NOSVE-NEXT: adrp x10, .LCPI17_1
1150-
; CHECK-NOSVE-NEXT: asr x9, x9, #3
11511136
; CHECK-NOSVE-NEXT: ldr q2, [x8, :lo12:.LCPI17_2]
1137+
; CHECK-NOSVE-NEXT: asr x9, x9, #3
11521138
; CHECK-NOSVE-NEXT: adrp x8, .LCPI17_4
11531139
; CHECK-NOSVE-NEXT: ldr q1, [x10, :lo12:.LCPI17_1]
11541140
; CHECK-NOSVE-NEXT: adrp x10, .LCPI17_3
@@ -1190,10 +1176,9 @@ define <32 x i1> @whilewr_64_split4(ptr %a, ptr %b) {
11901176
; CHECK-SVE-LABEL: whilewr_64_split4:
11911177
; CHECK-SVE: // %bb.0: // %entry
11921178
; CHECK-SVE-NEXT: index z0.d, #0, #1
1193-
; CHECK-SVE-NEXT: sub x9, x1, x0
1179+
; CHECK-SVE-NEXT: subs x9, x1, x0
11941180
; CHECK-SVE-NEXT: add x10, x9, #7
1195-
; CHECK-SVE-NEXT: cmp x9, #0
1196-
; CHECK-SVE-NEXT: csel x9, x10, x9, lt
1181+
; CHECK-SVE-NEXT: csel x9, x10, x9, mi
11971182
; CHECK-SVE-NEXT: asr x9, x9, #3
11981183
; CHECK-SVE-NEXT: mov z1.d, z0.d
11991184
; CHECK-SVE-NEXT: mov z2.d, z0.d
@@ -1243,18 +1228,17 @@ define <32 x i1> @whilewr_64_split4(ptr %a, ptr %b) {
12431228
;
12441229
; CHECK-NOSVE-LABEL: whilewr_64_split4:
12451230
; CHECK-NOSVE: // %bb.0: // %entry
1246-
; CHECK-NOSVE-NEXT: sub x9, x1, x0
1231+
; CHECK-NOSVE-NEXT: subs x9, x1, x0
12471232
; CHECK-NOSVE-NEXT: adrp x11, .LCPI18_0
12481233
; CHECK-NOSVE-NEXT: add x10, x9, #7
1249-
; CHECK-NOSVE-NEXT: cmp x9, #0
12501234
; CHECK-NOSVE-NEXT: ldr q0, [x11, :lo12:.LCPI18_0]
1251-
; CHECK-NOSVE-NEXT: csel x9, x10, x9, lt
1252-
; CHECK-NOSVE-NEXT: adrp x10, .LCPI18_1
12531235
; CHECK-NOSVE-NEXT: adrp x11, .LCPI18_2
1236+
; CHECK-NOSVE-NEXT: csel x9, x10, x9, mi
1237+
; CHECK-NOSVE-NEXT: adrp x10, .LCPI18_1
1238+
; CHECK-NOSVE-NEXT: ldr q2, [x11, :lo12:.LCPI18_2]
12541239
; CHECK-NOSVE-NEXT: asr x9, x9, #3
12551240
; CHECK-NOSVE-NEXT: ldr q1, [x10, :lo12:.LCPI18_1]
12561241
; CHECK-NOSVE-NEXT: adrp x10, .LCPI18_3
1257-
; CHECK-NOSVE-NEXT: ldr q2, [x11, :lo12:.LCPI18_2]
12581242
; CHECK-NOSVE-NEXT: adrp x11, .LCPI18_4
12591243
; CHECK-NOSVE-NEXT: ldr q3, [x10, :lo12:.LCPI18_3]
12601244
; CHECK-NOSVE-NEXT: adrp x10, .LCPI18_5
@@ -1451,12 +1435,11 @@ define <3 x i1> @whilewr_32_widen(ptr %a, ptr %b) {
14511435
;
14521436
; CHECK-NOSVE-LABEL: whilewr_32_widen:
14531437
; CHECK-NOSVE: // %bb.0: // %entry
1454-
; CHECK-NOSVE-NEXT: sub x9, x1, x0
1438+
; CHECK-NOSVE-NEXT: subs x9, x1, x0
14551439
; CHECK-NOSVE-NEXT: adrp x8, .LCPI21_0
14561440
; CHECK-NOSVE-NEXT: add x10, x9, #3
1457-
; CHECK-NOSVE-NEXT: cmp x9, #0
14581441
; CHECK-NOSVE-NEXT: ldr q1, [x8, :lo12:.LCPI21_0]
1459-
; CHECK-NOSVE-NEXT: csel x9, x10, x9, lt
1442+
; CHECK-NOSVE-NEXT: csel x9, x10, x9, mi
14601443
; CHECK-NOSVE-NEXT: adrp x10, .LCPI21_1
14611444
; CHECK-NOSVE-NEXT: asr x9, x9, #2
14621445
; CHECK-NOSVE-NEXT: ldr q2, [x10, :lo12:.LCPI21_1]

0 commit comments

Comments
 (0)