@@ -1003,6 +1003,227 @@ exit:
1003
1003
ret void
1004
1004
}
1005
1005
1006
+ define void @low_trip_count_fold_tail_scalarized_store (ptr %dst ) {
1007
+ ; DEFAULT-LABEL: define void @low_trip_count_fold_tail_scalarized_store(
1008
+ ; DEFAULT-SAME: ptr [[DST:%.*]]) {
1009
+ ; DEFAULT-NEXT: entry:
1010
+ ; DEFAULT-NEXT: br i1 false, label [[SCALAR_PH:%.*]], label [[VECTOR_PH:%.*]]
1011
+ ; DEFAULT: vector.ph:
1012
+ ; DEFAULT-NEXT: br label [[VECTOR_BODY:%.*]]
1013
+ ; DEFAULT: vector.body:
1014
+ ; DEFAULT-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[PRED_STORE_CONTINUE14:%.*]] ]
1015
+ ; DEFAULT-NEXT: [[VEC_IND:%.*]] = phi <8 x i64> [ <i64 0, i64 1, i64 2, i64 3, i64 4, i64 5, i64 6, i64 7>, [[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], [[PRED_STORE_CONTINUE14]] ]
1016
+ ; DEFAULT-NEXT: [[TMP0:%.*]] = trunc i64 [[INDEX]] to i8
1017
+ ; DEFAULT-NEXT: [[TMP1:%.*]] = icmp ule <8 x i64> [[VEC_IND]], <i64 6, i64 6, i64 6, i64 6, i64 6, i64 6, i64 6, i64 6>
1018
+ ; DEFAULT-NEXT: [[TMP2:%.*]] = extractelement <8 x i1> [[TMP1]], i32 0
1019
+ ; DEFAULT-NEXT: br i1 [[TMP2]], label [[PRED_STORE_IF:%.*]], label [[PRED_STORE_CONTINUE:%.*]]
1020
+ ; DEFAULT: pred.store.if:
1021
+ ; DEFAULT-NEXT: [[TMP3:%.*]] = add i64 [[INDEX]], 0
1022
+ ; DEFAULT-NEXT: [[TMP4:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP3]]
1023
+ ; DEFAULT-NEXT: [[TMP5:%.*]] = add i8 [[TMP0]], 0
1024
+ ; DEFAULT-NEXT: store i8 [[TMP5]], ptr [[TMP4]], align 1
1025
+ ; DEFAULT-NEXT: br label [[PRED_STORE_CONTINUE]]
1026
+ ; DEFAULT: pred.store.continue:
1027
+ ; DEFAULT-NEXT: [[TMP6:%.*]] = extractelement <8 x i1> [[TMP1]], i32 1
1028
+ ; DEFAULT-NEXT: br i1 [[TMP6]], label [[PRED_STORE_IF1:%.*]], label [[PRED_STORE_CONTINUE2:%.*]]
1029
+ ; DEFAULT: pred.store.if1:
1030
+ ; DEFAULT-NEXT: [[TMP7:%.*]] = add i64 [[INDEX]], 1
1031
+ ; DEFAULT-NEXT: [[TMP8:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP7]]
1032
+ ; DEFAULT-NEXT: [[TMP9:%.*]] = add i8 [[TMP0]], 1
1033
+ ; DEFAULT-NEXT: store i8 [[TMP9]], ptr [[TMP8]], align 1
1034
+ ; DEFAULT-NEXT: br label [[PRED_STORE_CONTINUE2]]
1035
+ ; DEFAULT: pred.store.continue2:
1036
+ ; DEFAULT-NEXT: [[TMP10:%.*]] = extractelement <8 x i1> [[TMP1]], i32 2
1037
+ ; DEFAULT-NEXT: br i1 [[TMP10]], label [[PRED_STORE_IF3:%.*]], label [[PRED_STORE_CONTINUE4:%.*]]
1038
+ ; DEFAULT: pred.store.if3:
1039
+ ; DEFAULT-NEXT: [[TMP11:%.*]] = add i64 [[INDEX]], 2
1040
+ ; DEFAULT-NEXT: [[TMP12:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP11]]
1041
+ ; DEFAULT-NEXT: [[TMP13:%.*]] = add i8 [[TMP0]], 2
1042
+ ; DEFAULT-NEXT: store i8 [[TMP13]], ptr [[TMP12]], align 1
1043
+ ; DEFAULT-NEXT: br label [[PRED_STORE_CONTINUE4]]
1044
+ ; DEFAULT: pred.store.continue4:
1045
+ ; DEFAULT-NEXT: [[TMP14:%.*]] = extractelement <8 x i1> [[TMP1]], i32 3
1046
+ ; DEFAULT-NEXT: br i1 [[TMP14]], label [[PRED_STORE_IF5:%.*]], label [[PRED_STORE_CONTINUE6:%.*]]
1047
+ ; DEFAULT: pred.store.if5:
1048
+ ; DEFAULT-NEXT: [[TMP15:%.*]] = add i64 [[INDEX]], 3
1049
+ ; DEFAULT-NEXT: [[TMP16:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP15]]
1050
+ ; DEFAULT-NEXT: [[TMP17:%.*]] = add i8 [[TMP0]], 3
1051
+ ; DEFAULT-NEXT: store i8 [[TMP17]], ptr [[TMP16]], align 1
1052
+ ; DEFAULT-NEXT: br label [[PRED_STORE_CONTINUE6]]
1053
+ ; DEFAULT: pred.store.continue6:
1054
+ ; DEFAULT-NEXT: [[TMP18:%.*]] = extractelement <8 x i1> [[TMP1]], i32 4
1055
+ ; DEFAULT-NEXT: br i1 [[TMP18]], label [[PRED_STORE_IF7:%.*]], label [[PRED_STORE_CONTINUE8:%.*]]
1056
+ ; DEFAULT: pred.store.if7:
1057
+ ; DEFAULT-NEXT: [[TMP19:%.*]] = add i64 [[INDEX]], 4
1058
+ ; DEFAULT-NEXT: [[TMP20:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP19]]
1059
+ ; DEFAULT-NEXT: [[TMP21:%.*]] = add i8 [[TMP0]], 4
1060
+ ; DEFAULT-NEXT: store i8 [[TMP21]], ptr [[TMP20]], align 1
1061
+ ; DEFAULT-NEXT: br label [[PRED_STORE_CONTINUE8]]
1062
+ ; DEFAULT: pred.store.continue8:
1063
+ ; DEFAULT-NEXT: [[TMP22:%.*]] = extractelement <8 x i1> [[TMP1]], i32 5
1064
+ ; DEFAULT-NEXT: br i1 [[TMP22]], label [[PRED_STORE_IF9:%.*]], label [[PRED_STORE_CONTINUE10:%.*]]
1065
+ ; DEFAULT: pred.store.if9:
1066
+ ; DEFAULT-NEXT: [[TMP23:%.*]] = add i64 [[INDEX]], 5
1067
+ ; DEFAULT-NEXT: [[TMP24:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP23]]
1068
+ ; DEFAULT-NEXT: [[TMP25:%.*]] = add i8 [[TMP0]], 5
1069
+ ; DEFAULT-NEXT: store i8 [[TMP25]], ptr [[TMP24]], align 1
1070
+ ; DEFAULT-NEXT: br label [[PRED_STORE_CONTINUE10]]
1071
+ ; DEFAULT: pred.store.continue10:
1072
+ ; DEFAULT-NEXT: [[TMP26:%.*]] = extractelement <8 x i1> [[TMP1]], i32 6
1073
+ ; DEFAULT-NEXT: br i1 [[TMP26]], label [[PRED_STORE_IF11:%.*]], label [[PRED_STORE_CONTINUE12:%.*]]
1074
+ ; DEFAULT: pred.store.if11:
1075
+ ; DEFAULT-NEXT: [[TMP27:%.*]] = add i64 [[INDEX]], 6
1076
+ ; DEFAULT-NEXT: [[TMP28:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP27]]
1077
+ ; DEFAULT-NEXT: [[TMP29:%.*]] = add i8 [[TMP0]], 6
1078
+ ; DEFAULT-NEXT: store i8 [[TMP29]], ptr [[TMP28]], align 1
1079
+ ; DEFAULT-NEXT: br label [[PRED_STORE_CONTINUE12]]
1080
+ ; DEFAULT: pred.store.continue12:
1081
+ ; DEFAULT-NEXT: [[TMP30:%.*]] = extractelement <8 x i1> [[TMP1]], i32 7
1082
+ ; DEFAULT-NEXT: br i1 [[TMP30]], label [[PRED_STORE_IF13:%.*]], label [[PRED_STORE_CONTINUE14]]
1083
+ ; DEFAULT: pred.store.if13:
1084
+ ; DEFAULT-NEXT: [[TMP31:%.*]] = add i64 [[INDEX]], 7
1085
+ ; DEFAULT-NEXT: [[TMP32:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP31]]
1086
+ ; DEFAULT-NEXT: [[TMP33:%.*]] = add i8 [[TMP0]], 7
1087
+ ; DEFAULT-NEXT: store i8 [[TMP33]], ptr [[TMP32]], align 1
1088
+ ; DEFAULT-NEXT: br label [[PRED_STORE_CONTINUE14]]
1089
+ ; DEFAULT: pred.store.continue14:
1090
+ ; DEFAULT-NEXT: [[VEC_IND_NEXT]] = add <8 x i64> [[VEC_IND]], <i64 8, i64 8, i64 8, i64 8, i64 8, i64 8, i64 8, i64 8>
1091
+ ; DEFAULT-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], 8
1092
+ ; DEFAULT-NEXT: br i1 true, label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP26:![0-9]+]]
1093
+ ; DEFAULT: middle.block:
1094
+ ; DEFAULT-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH]]
1095
+ ; DEFAULT: scalar.ph:
1096
+ ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 8, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
1097
+ ; DEFAULT-NEXT: br label [[LOOP:%.*]]
1098
+ ; DEFAULT: loop:
1099
+ ; DEFAULT-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
1100
+ ; DEFAULT-NEXT: [[IV_TRUNC:%.*]] = trunc i64 [[IV]] to i8
1101
+ ; DEFAULT-NEXT: [[GEP:%.*]] = getelementptr i8, ptr [[DST]], i64 [[IV]]
1102
+ ; DEFAULT-NEXT: store i8 [[IV_TRUNC]], ptr [[GEP]], align 1
1103
+ ; DEFAULT-NEXT: [[IV_NEXT]] = add i64 [[IV]], 1
1104
+ ; DEFAULT-NEXT: [[EC:%.*]] = icmp eq i64 [[IV_NEXT]], 7
1105
+ ; DEFAULT-NEXT: br i1 [[EC]], label [[EXIT]], label [[LOOP]], !llvm.loop [[LOOP27:![0-9]+]]
1106
+ ; DEFAULT: exit:
1107
+ ; DEFAULT-NEXT: ret void
1108
+ ;
1109
+ ; PRED-LABEL: define void @low_trip_count_fold_tail_scalarized_store(
1110
+ ; PRED-SAME: ptr [[DST:%.*]]) {
1111
+ ; PRED-NEXT: entry:
1112
+ ; PRED-NEXT: br i1 false, label [[SCALAR_PH:%.*]], label [[VECTOR_PH:%.*]]
1113
+ ; PRED: vector.ph:
1114
+ ; PRED-NEXT: br label [[VECTOR_BODY:%.*]]
1115
+ ; PRED: vector.body:
1116
+ ; PRED-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[PRED_STORE_CONTINUE14:%.*]] ]
1117
+ ; PRED-NEXT: [[VEC_IND:%.*]] = phi <8 x i64> [ <i64 0, i64 1, i64 2, i64 3, i64 4, i64 5, i64 6, i64 7>, [[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], [[PRED_STORE_CONTINUE14]] ]
1118
+ ; PRED-NEXT: [[TMP0:%.*]] = trunc i64 [[INDEX]] to i8
1119
+ ; PRED-NEXT: [[TMP1:%.*]] = icmp ule <8 x i64> [[VEC_IND]], <i64 6, i64 6, i64 6, i64 6, i64 6, i64 6, i64 6, i64 6>
1120
+ ; PRED-NEXT: [[TMP2:%.*]] = extractelement <8 x i1> [[TMP1]], i32 0
1121
+ ; PRED-NEXT: br i1 [[TMP2]], label [[PRED_STORE_IF:%.*]], label [[PRED_STORE_CONTINUE:%.*]]
1122
+ ; PRED: pred.store.if:
1123
+ ; PRED-NEXT: [[TMP3:%.*]] = add i64 [[INDEX]], 0
1124
+ ; PRED-NEXT: [[TMP4:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP3]]
1125
+ ; PRED-NEXT: [[TMP5:%.*]] = add i8 [[TMP0]], 0
1126
+ ; PRED-NEXT: store i8 [[TMP5]], ptr [[TMP4]], align 1
1127
+ ; PRED-NEXT: br label [[PRED_STORE_CONTINUE]]
1128
+ ; PRED: pred.store.continue:
1129
+ ; PRED-NEXT: [[TMP6:%.*]] = extractelement <8 x i1> [[TMP1]], i32 1
1130
+ ; PRED-NEXT: br i1 [[TMP6]], label [[PRED_STORE_IF1:%.*]], label [[PRED_STORE_CONTINUE2:%.*]]
1131
+ ; PRED: pred.store.if1:
1132
+ ; PRED-NEXT: [[TMP7:%.*]] = add i64 [[INDEX]], 1
1133
+ ; PRED-NEXT: [[TMP8:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP7]]
1134
+ ; PRED-NEXT: [[TMP9:%.*]] = add i8 [[TMP0]], 1
1135
+ ; PRED-NEXT: store i8 [[TMP9]], ptr [[TMP8]], align 1
1136
+ ; PRED-NEXT: br label [[PRED_STORE_CONTINUE2]]
1137
+ ; PRED: pred.store.continue2:
1138
+ ; PRED-NEXT: [[TMP10:%.*]] = extractelement <8 x i1> [[TMP1]], i32 2
1139
+ ; PRED-NEXT: br i1 [[TMP10]], label [[PRED_STORE_IF3:%.*]], label [[PRED_STORE_CONTINUE4:%.*]]
1140
+ ; PRED: pred.store.if3:
1141
+ ; PRED-NEXT: [[TMP11:%.*]] = add i64 [[INDEX]], 2
1142
+ ; PRED-NEXT: [[TMP12:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP11]]
1143
+ ; PRED-NEXT: [[TMP13:%.*]] = add i8 [[TMP0]], 2
1144
+ ; PRED-NEXT: store i8 [[TMP13]], ptr [[TMP12]], align 1
1145
+ ; PRED-NEXT: br label [[PRED_STORE_CONTINUE4]]
1146
+ ; PRED: pred.store.continue4:
1147
+ ; PRED-NEXT: [[TMP14:%.*]] = extractelement <8 x i1> [[TMP1]], i32 3
1148
+ ; PRED-NEXT: br i1 [[TMP14]], label [[PRED_STORE_IF5:%.*]], label [[PRED_STORE_CONTINUE6:%.*]]
1149
+ ; PRED: pred.store.if5:
1150
+ ; PRED-NEXT: [[TMP15:%.*]] = add i64 [[INDEX]], 3
1151
+ ; PRED-NEXT: [[TMP16:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP15]]
1152
+ ; PRED-NEXT: [[TMP17:%.*]] = add i8 [[TMP0]], 3
1153
+ ; PRED-NEXT: store i8 [[TMP17]], ptr [[TMP16]], align 1
1154
+ ; PRED-NEXT: br label [[PRED_STORE_CONTINUE6]]
1155
+ ; PRED: pred.store.continue6:
1156
+ ; PRED-NEXT: [[TMP18:%.*]] = extractelement <8 x i1> [[TMP1]], i32 4
1157
+ ; PRED-NEXT: br i1 [[TMP18]], label [[PRED_STORE_IF7:%.*]], label [[PRED_STORE_CONTINUE8:%.*]]
1158
+ ; PRED: pred.store.if7:
1159
+ ; PRED-NEXT: [[TMP19:%.*]] = add i64 [[INDEX]], 4
1160
+ ; PRED-NEXT: [[TMP20:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP19]]
1161
+ ; PRED-NEXT: [[TMP21:%.*]] = add i8 [[TMP0]], 4
1162
+ ; PRED-NEXT: store i8 [[TMP21]], ptr [[TMP20]], align 1
1163
+ ; PRED-NEXT: br label [[PRED_STORE_CONTINUE8]]
1164
+ ; PRED: pred.store.continue8:
1165
+ ; PRED-NEXT: [[TMP22:%.*]] = extractelement <8 x i1> [[TMP1]], i32 5
1166
+ ; PRED-NEXT: br i1 [[TMP22]], label [[PRED_STORE_IF9:%.*]], label [[PRED_STORE_CONTINUE10:%.*]]
1167
+ ; PRED: pred.store.if9:
1168
+ ; PRED-NEXT: [[TMP23:%.*]] = add i64 [[INDEX]], 5
1169
+ ; PRED-NEXT: [[TMP24:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP23]]
1170
+ ; PRED-NEXT: [[TMP25:%.*]] = add i8 [[TMP0]], 5
1171
+ ; PRED-NEXT: store i8 [[TMP25]], ptr [[TMP24]], align 1
1172
+ ; PRED-NEXT: br label [[PRED_STORE_CONTINUE10]]
1173
+ ; PRED: pred.store.continue10:
1174
+ ; PRED-NEXT: [[TMP26:%.*]] = extractelement <8 x i1> [[TMP1]], i32 6
1175
+ ; PRED-NEXT: br i1 [[TMP26]], label [[PRED_STORE_IF11:%.*]], label [[PRED_STORE_CONTINUE12:%.*]]
1176
+ ; PRED: pred.store.if11:
1177
+ ; PRED-NEXT: [[TMP27:%.*]] = add i64 [[INDEX]], 6
1178
+ ; PRED-NEXT: [[TMP28:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP27]]
1179
+ ; PRED-NEXT: [[TMP29:%.*]] = add i8 [[TMP0]], 6
1180
+ ; PRED-NEXT: store i8 [[TMP29]], ptr [[TMP28]], align 1
1181
+ ; PRED-NEXT: br label [[PRED_STORE_CONTINUE12]]
1182
+ ; PRED: pred.store.continue12:
1183
+ ; PRED-NEXT: [[TMP30:%.*]] = extractelement <8 x i1> [[TMP1]], i32 7
1184
+ ; PRED-NEXT: br i1 [[TMP30]], label [[PRED_STORE_IF13:%.*]], label [[PRED_STORE_CONTINUE14]]
1185
+ ; PRED: pred.store.if13:
1186
+ ; PRED-NEXT: [[TMP31:%.*]] = add i64 [[INDEX]], 7
1187
+ ; PRED-NEXT: [[TMP32:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP31]]
1188
+ ; PRED-NEXT: [[TMP33:%.*]] = add i8 [[TMP0]], 7
1189
+ ; PRED-NEXT: store i8 [[TMP33]], ptr [[TMP32]], align 1
1190
+ ; PRED-NEXT: br label [[PRED_STORE_CONTINUE14]]
1191
+ ; PRED: pred.store.continue14:
1192
+ ; PRED-NEXT: [[VEC_IND_NEXT]] = add <8 x i64> [[VEC_IND]], <i64 8, i64 8, i64 8, i64 8, i64 8, i64 8, i64 8, i64 8>
1193
+ ; PRED-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], 8
1194
+ ; PRED-NEXT: br i1 true, label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP23:![0-9]+]]
1195
+ ; PRED: middle.block:
1196
+ ; PRED-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH]]
1197
+ ; PRED: scalar.ph:
1198
+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 8, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
1199
+ ; PRED-NEXT: br label [[LOOP:%.*]]
1200
+ ; PRED: loop:
1201
+ ; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
1202
+ ; PRED-NEXT: [[IV_TRUNC:%.*]] = trunc i64 [[IV]] to i8
1203
+ ; PRED-NEXT: [[GEP:%.*]] = getelementptr i8, ptr [[DST]], i64 [[IV]]
1204
+ ; PRED-NEXT: store i8 [[IV_TRUNC]], ptr [[GEP]], align 1
1205
+ ; PRED-NEXT: [[IV_NEXT]] = add i64 [[IV]], 1
1206
+ ; PRED-NEXT: [[EC:%.*]] = icmp eq i64 [[IV_NEXT]], 7
1207
+ ; PRED-NEXT: br i1 [[EC]], label [[EXIT]], label [[LOOP]], !llvm.loop [[LOOP24:![0-9]+]]
1208
+ ; PRED: exit:
1209
+ ; PRED-NEXT: ret void
1210
+ ;
1211
+ entry:
1212
+ br label %loop
1213
+
1214
+ loop:
1215
+ %iv = phi i64 [ 0 , %entry ], [ %iv.next , %loop ]
1216
+ %iv.trunc = trunc i64 %iv to i8
1217
+ %gep = getelementptr i8 , ptr %dst , i64 %iv
1218
+ store i8 %iv.trunc , ptr %gep , align 1
1219
+ %iv.next = add i64 %iv , 1
1220
+ %ec = icmp eq i64 %iv.next , 7
1221
+ br i1 %ec , label %exit , label %loop
1222
+
1223
+ exit:
1224
+ ret void
1225
+ }
1226
+
1006
1227
attributes #1 = { "target-cpu" ="neoverse-512tvb" }
1007
1228
1008
1229
;.
@@ -1032,6 +1253,8 @@ attributes #1 = { "target-cpu"="neoverse-512tvb" }
1032
1253
; DEFAULT: [[LOOP23]] = distinct !{[[LOOP23]], [[META1]]}
1033
1254
; DEFAULT: [[LOOP24]] = distinct !{[[LOOP24]], [[META1]], [[META2]]}
1034
1255
; DEFAULT: [[LOOP25]] = distinct !{[[LOOP25]], [[META2]], [[META1]]}
1256
+ ; DEFAULT: [[LOOP26]] = distinct !{[[LOOP26]], [[META1]], [[META2]]}
1257
+ ; DEFAULT: [[LOOP27]] = distinct !{[[LOOP27]], [[META2]], [[META1]]}
1035
1258
;.
1036
1259
; PRED: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]], [[META2:![0-9]+]]}
1037
1260
; PRED: [[META1]] = !{!"llvm.loop.isvectorized", i32 1}
@@ -1056,4 +1279,6 @@ attributes #1 = { "target-cpu"="neoverse-512tvb" }
1056
1279
; PRED: [[LOOP20]] = distinct !{[[LOOP20]], [[META1]]}
1057
1280
; PRED: [[LOOP21]] = distinct !{[[LOOP21]], [[META1]], [[META2]]}
1058
1281
; PRED: [[LOOP22]] = distinct !{[[LOOP22]], [[META2]], [[META1]]}
1282
+ ; PRED: [[LOOP23]] = distinct !{[[LOOP23]], [[META1]], [[META2]]}
1283
+ ; PRED: [[LOOP24]] = distinct !{[[LOOP24]], [[META2]], [[META1]]}
1059
1284
;.
0 commit comments