Skip to content

Commit 56efce2

Browse files
committed
Mark as noalias
1 parent 4eadfed commit 56efce2

File tree

1 file changed

+58
-96
lines changed

1 file changed

+58
-96
lines changed

llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll

Lines changed: 58 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -151,18 +151,16 @@ exit:
151151
ret void
152152
}
153153

154-
define void @test_exit_branch_cost(ptr %dst, ptr %x.ptr, ptr %y.ptr, ptr %dst.1, i1 %c.4, ptr %src, ptr %dst.3, i1 %c.3, ptr %dst.2) {
154+
define void @test_exit_branch_cost(ptr %dst, ptr noalias %x.ptr, ptr noalias %y.ptr, ptr %dst.1, i1 %c.4, ptr %src, ptr %dst.3, i1 %c.3, ptr %dst.2) {
155155
; CHECK-LABEL: define void @test_exit_branch_cost(
156-
; CHECK-SAME: ptr [[DST:%.*]], ptr [[X_PTR:%.*]], ptr [[Y_PTR:%.*]], ptr [[DST_1:%.*]], i1 [[C_4:%.*]], ptr [[SRC:%.*]], ptr [[DST_3:%.*]], i1 [[C_3:%.*]], ptr [[DST_2:%.*]]) {
156+
; CHECK-SAME: ptr [[DST:%.*]], ptr noalias [[X_PTR:%.*]], ptr noalias [[Y_PTR:%.*]], ptr [[DST_1:%.*]], i1 [[C_4:%.*]], ptr [[SRC:%.*]], ptr [[DST_3:%.*]], i1 [[C_3:%.*]], ptr [[DST_2:%.*]]) {
157157
; CHECK-NEXT: [[ENTRY:.*]]:
158158
; CHECK-NEXT: br i1 false, label %[[SCALAR_PH:.*]], label %[[VECTOR_MEMCHECK:.*]]
159159
; CHECK: [[VECTOR_MEMCHECK]]:
160160
; CHECK-NEXT: [[SCEVGEP:%.*]] = getelementptr i8, ptr [[DST_1]], i64 8
161161
; CHECK-NEXT: [[SCEVGEP1:%.*]] = getelementptr i8, ptr [[DST_3]], i64 8
162162
; CHECK-NEXT: [[SCEVGEP2:%.*]] = getelementptr i8, ptr [[DST_2]], i64 8
163163
; CHECK-NEXT: [[SCEVGEP3:%.*]] = getelementptr i8, ptr [[DST]], i64 8
164-
; CHECK-NEXT: [[SCEVGEP6:%.*]] = getelementptr i8, ptr [[X_PTR]], i64 520
165-
; CHECK-NEXT: [[SCEVGEP5:%.*]] = getelementptr i8, ptr [[Y_PTR]], i64 260
166164
; CHECK-NEXT: [[SCEVGEP4:%.*]] = getelementptr i8, ptr [[SRC]], i64 8
167165
; CHECK-NEXT: [[BOUND0:%.*]] = icmp ult ptr [[DST_1]], [[SCEVGEP1]]
168166
; CHECK-NEXT: [[BOUND1:%.*]] = icmp ult ptr [[DST_3]], [[SCEVGEP]]
@@ -174,15 +172,7 @@ define void @test_exit_branch_cost(ptr %dst, ptr %x.ptr, ptr %y.ptr, ptr %dst.1,
174172
; CHECK-NEXT: [[BOUND08:%.*]] = icmp ult ptr [[DST_1]], [[SCEVGEP3]]
175173
; CHECK-NEXT: [[BOUND19:%.*]] = icmp ult ptr [[DST]], [[SCEVGEP]]
176174
; CHECK-NEXT: [[FOUND_CONFLICT10:%.*]] = and i1 [[BOUND08]], [[BOUND19]]
177-
; CHECK-NEXT: [[CONFLICT_RDX11:%.*]] = or i1 [[CONFLICT_RDX]], [[FOUND_CONFLICT10]]
178-
; CHECK-NEXT: [[BOUND014:%.*]] = icmp ult ptr [[DST_1]], [[SCEVGEP6]]
179-
; CHECK-NEXT: [[BOUND115:%.*]] = icmp ult ptr [[X_PTR]], [[SCEVGEP]]
180-
; CHECK-NEXT: [[FOUND_CONFLICT16:%.*]] = and i1 [[BOUND014]], [[BOUND115]]
181-
; CHECK-NEXT: [[CONFLICT_RDX17:%.*]] = or i1 [[CONFLICT_RDX11]], [[FOUND_CONFLICT16]]
182-
; CHECK-NEXT: [[BOUND018:%.*]] = icmp ult ptr [[DST_1]], [[SCEVGEP5]]
183-
; CHECK-NEXT: [[BOUND119:%.*]] = icmp ult ptr [[Y_PTR]], [[SCEVGEP]]
184-
; CHECK-NEXT: [[FOUND_CONFLICT20:%.*]] = and i1 [[BOUND018]], [[BOUND119]]
185-
; CHECK-NEXT: [[CONFLICT_RDX21:%.*]] = or i1 [[CONFLICT_RDX17]], [[FOUND_CONFLICT20]]
175+
; CHECK-NEXT: [[CONFLICT_RDX21:%.*]] = or i1 [[CONFLICT_RDX]], [[FOUND_CONFLICT10]]
186176
; CHECK-NEXT: [[BOUND012:%.*]] = icmp ult ptr [[DST_1]], [[SCEVGEP4]]
187177
; CHECK-NEXT: [[BOUND113:%.*]] = icmp ult ptr [[SRC]], [[SCEVGEP]]
188178
; CHECK-NEXT: [[FOUND_CONFLICT14:%.*]] = and i1 [[BOUND012]], [[BOUND113]]
@@ -194,42 +184,18 @@ define void @test_exit_branch_cost(ptr %dst, ptr %x.ptr, ptr %y.ptr, ptr %dst.1,
194184
; CHECK-NEXT: [[BOUND020:%.*]] = icmp ult ptr [[DST_3]], [[SCEVGEP3]]
195185
; CHECK-NEXT: [[BOUND121:%.*]] = icmp ult ptr [[DST]], [[SCEVGEP1]]
196186
; CHECK-NEXT: [[FOUND_CONFLICT22:%.*]] = and i1 [[BOUND020]], [[BOUND121]]
197-
; CHECK-NEXT: [[CONFLICT_RDX23:%.*]] = or i1 [[CONFLICT_RDX19]], [[FOUND_CONFLICT22]]
198-
; CHECK-NEXT: [[BOUND034:%.*]] = icmp ult ptr [[DST_3]], [[SCEVGEP6]]
199-
; CHECK-NEXT: [[BOUND135:%.*]] = icmp ult ptr [[X_PTR]], [[SCEVGEP1]]
200-
; CHECK-NEXT: [[FOUND_CONFLICT36:%.*]] = and i1 [[BOUND034]], [[BOUND135]]
201-
; CHECK-NEXT: [[CONFLICT_RDX37:%.*]] = or i1 [[CONFLICT_RDX23]], [[FOUND_CONFLICT36]]
202-
; CHECK-NEXT: [[BOUND038:%.*]] = icmp ult ptr [[DST_3]], [[SCEVGEP5]]
203-
; CHECK-NEXT: [[BOUND139:%.*]] = icmp ult ptr [[Y_PTR]], [[SCEVGEP1]]
204-
; CHECK-NEXT: [[FOUND_CONFLICT40:%.*]] = and i1 [[BOUND038]], [[BOUND139]]
205-
; CHECK-NEXT: [[CONFLICT_RDX41:%.*]] = or i1 [[CONFLICT_RDX37]], [[FOUND_CONFLICT40]]
187+
; CHECK-NEXT: [[CONFLICT_RDX41:%.*]] = or i1 [[CONFLICT_RDX19]], [[FOUND_CONFLICT22]]
206188
; CHECK-NEXT: [[BOUND024:%.*]] = icmp ult ptr [[DST_3]], [[SCEVGEP4]]
207189
; CHECK-NEXT: [[BOUND125:%.*]] = icmp ult ptr [[SRC]], [[SCEVGEP1]]
208190
; CHECK-NEXT: [[FOUND_CONFLICT26:%.*]] = and i1 [[BOUND024]], [[BOUND125]]
209191
; CHECK-NEXT: [[CONFLICT_RDX27:%.*]] = or i1 [[CONFLICT_RDX41]], [[FOUND_CONFLICT26]]
210192
; CHECK-NEXT: [[BOUND028:%.*]] = icmp ult ptr [[DST_2]], [[SCEVGEP3]]
211193
; CHECK-NEXT: [[BOUND129:%.*]] = icmp ult ptr [[DST]], [[SCEVGEP2]]
212194
; CHECK-NEXT: [[FOUND_CONFLICT30:%.*]] = and i1 [[BOUND028]], [[BOUND129]]
213-
; CHECK-NEXT: [[CONFLICT_RDX31:%.*]] = or i1 [[CONFLICT_RDX27]], [[FOUND_CONFLICT30]]
214-
; CHECK-NEXT: [[BOUND050:%.*]] = icmp ult ptr [[DST_2]], [[SCEVGEP6]]
215-
; CHECK-NEXT: [[BOUND151:%.*]] = icmp ult ptr [[X_PTR]], [[SCEVGEP2]]
216-
; CHECK-NEXT: [[FOUND_CONFLICT52:%.*]] = and i1 [[BOUND050]], [[BOUND151]]
217-
; CHECK-NEXT: [[CONFLICT_RDX53:%.*]] = or i1 [[CONFLICT_RDX31]], [[FOUND_CONFLICT52]]
218-
; CHECK-NEXT: [[BOUND054:%.*]] = icmp ult ptr [[DST_2]], [[SCEVGEP5]]
219-
; CHECK-NEXT: [[BOUND155:%.*]] = icmp ult ptr [[Y_PTR]], [[SCEVGEP2]]
220-
; CHECK-NEXT: [[FOUND_CONFLICT56:%.*]] = and i1 [[BOUND054]], [[BOUND155]]
221-
; CHECK-NEXT: [[CONFLICT_RDX57:%.*]] = or i1 [[CONFLICT_RDX53]], [[FOUND_CONFLICT56]]
195+
; CHECK-NEXT: [[CONFLICT_RDX65:%.*]] = or i1 [[CONFLICT_RDX27]], [[FOUND_CONFLICT30]]
222196
; CHECK-NEXT: [[BOUND032:%.*]] = icmp ult ptr [[DST_2]], [[SCEVGEP4]]
223197
; CHECK-NEXT: [[BOUND133:%.*]] = icmp ult ptr [[SRC]], [[SCEVGEP2]]
224-
; CHECK-NEXT: [[FOUND_CONFLICT34:%.*]] = and i1 [[BOUND032]], [[BOUND133]]
225-
; CHECK-NEXT: [[CONFLICT_RDX61:%.*]] = or i1 [[CONFLICT_RDX57]], [[FOUND_CONFLICT34]]
226-
; CHECK-NEXT: [[BOUND062:%.*]] = icmp ult ptr [[DST]], [[SCEVGEP6]]
227-
; CHECK-NEXT: [[BOUND163:%.*]] = icmp ult ptr [[X_PTR]], [[SCEVGEP3]]
228-
; CHECK-NEXT: [[FOUND_CONFLICT64:%.*]] = and i1 [[BOUND062]], [[BOUND163]]
229-
; CHECK-NEXT: [[CONFLICT_RDX65:%.*]] = or i1 [[CONFLICT_RDX61]], [[FOUND_CONFLICT64]]
230-
; CHECK-NEXT: [[BOUND066:%.*]] = icmp ult ptr [[DST]], [[SCEVGEP5]]
231-
; CHECK-NEXT: [[BOUND167:%.*]] = icmp ult ptr [[Y_PTR]], [[SCEVGEP3]]
232-
; CHECK-NEXT: [[FOUND_CONFLICT68:%.*]] = and i1 [[BOUND066]], [[BOUND167]]
198+
; CHECK-NEXT: [[FOUND_CONFLICT68:%.*]] = and i1 [[BOUND032]], [[BOUND133]]
233199
; CHECK-NEXT: [[CONFLICT_RDX35:%.*]] = or i1 [[CONFLICT_RDX65]], [[FOUND_CONFLICT68]]
234200
; CHECK-NEXT: [[BOUND036:%.*]] = icmp ult ptr [[DST]], [[SCEVGEP4]]
235201
; CHECK-NEXT: [[BOUND137:%.*]] = icmp ult ptr [[SRC]], [[SCEVGEP3]]
@@ -246,75 +212,75 @@ define void @test_exit_branch_cost(ptr %dst, ptr %x.ptr, ptr %y.ptr, ptr %dst.1,
246212
; CHECK-NEXT: [[TMP33:%.*]] = xor <2 x i1> [[BROADCAST_SPLAT57]], splat (i1 true)
247213
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
248214
; CHECK: [[VECTOR_BODY]]:
249-
; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[PRED_STORE_CONTINUE89:.*]] ]
215+
; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[PRED_STORE_CONTINUE55:.*]] ]
250216
; CHECK-NEXT: [[TMP3:%.*]] = add i64 [[INDEX]], 0
251217
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr i64, ptr [[X_PTR]], i64 [[TMP3]]
252218
; CHECK-NEXT: [[TMP6:%.*]] = getelementptr i64, ptr [[TMP4]], i32 0
253-
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <2 x i64>, ptr [[TMP6]], align 8, !alias.scope [[META7:![0-9]+]]
219+
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <2 x i64>, ptr [[TMP6]], align 8
254220
; CHECK-NEXT: [[TMP47:%.*]] = icmp eq <2 x i64> [[WIDE_LOAD]], zeroinitializer
255221
; CHECK-NEXT: [[TMP5:%.*]] = xor <2 x i1> [[TMP47]], splat (i1 true)
256222
; CHECK-NEXT: [[TMP8:%.*]] = extractelement <2 x i1> [[TMP5]], i32 0
257223
; CHECK-NEXT: br i1 [[TMP8]], label %[[PRED_STORE_IF:.*]], label %[[PRED_STORE_CONTINUE:.*]]
258224
; CHECK: [[PRED_STORE_IF]]:
259-
; CHECK-NEXT: store i64 0, ptr [[DST_1]], align 8, !alias.scope [[META10:![0-9]+]], !noalias [[META12:![0-9]+]]
225+
; CHECK-NEXT: store i64 0, ptr [[DST_1]], align 8, !alias.scope [[META7:![0-9]+]], !noalias [[META10:![0-9]+]]
260226
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE]]
261227
; CHECK: [[PRED_STORE_CONTINUE]]:
262228
; CHECK-NEXT: [[TMP9:%.*]] = extractelement <2 x i1> [[TMP5]], i32 1
263-
; CHECK-NEXT: br i1 [[TMP9]], label %[[PRED_STORE_IF76:.*]], label %[[PRED_STORE_CONTINUE77:.*]]
264-
; CHECK: [[PRED_STORE_IF76]]:
265-
; CHECK-NEXT: store i64 0, ptr [[DST_1]], align 8, !alias.scope [[META10]], !noalias [[META12]]
266-
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE77]]
267-
; CHECK: [[PRED_STORE_CONTINUE77]]:
229+
; CHECK-NEXT: br i1 [[TMP9]], label %[[PRED_STORE_IF42:.*]], label %[[PRED_STORE_CONTINUE43:.*]]
230+
; CHECK: [[PRED_STORE_IF42]]:
231+
; CHECK-NEXT: store i64 0, ptr [[DST_1]], align 8, !alias.scope [[META7]], !noalias [[META10]]
232+
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE43]]
233+
; CHECK: [[PRED_STORE_CONTINUE43]]:
268234
; CHECK-NEXT: [[TMP13:%.*]] = select <2 x i1> [[TMP5]], <2 x i1> [[TMP11]], <2 x i1> zeroinitializer
269235
; CHECK-NEXT: [[TMP16:%.*]] = extractelement <2 x i1> [[TMP13]], i32 0
270-
; CHECK-NEXT: br i1 [[TMP16]], label %[[PRED_STORE_IF78:.*]], label %[[PRED_STORE_CONTINUE79:.*]]
271-
; CHECK: [[PRED_STORE_IF78]]:
272-
; CHECK-NEXT: store i64 0, ptr [[DST_3]], align 8, !alias.scope [[META18:![0-9]+]], !noalias [[META19:![0-9]+]]
273-
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE79]]
274-
; CHECK: [[PRED_STORE_CONTINUE79]]:
236+
; CHECK-NEXT: br i1 [[TMP16]], label %[[PRED_STORE_IF44:.*]], label %[[PRED_STORE_CONTINUE45:.*]]
237+
; CHECK: [[PRED_STORE_IF44]]:
238+
; CHECK-NEXT: store i64 0, ptr [[DST_3]], align 8, !alias.scope [[META15:![0-9]+]], !noalias [[META16:![0-9]+]]
239+
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE45]]
240+
; CHECK: [[PRED_STORE_CONTINUE45]]:
275241
; CHECK-NEXT: [[TMP17:%.*]] = extractelement <2 x i1> [[TMP13]], i32 1
276-
; CHECK-NEXT: br i1 [[TMP17]], label %[[PRED_STORE_IF80:.*]], label %[[PRED_STORE_CONTINUE81:.*]]
277-
; CHECK: [[PRED_STORE_IF80]]:
278-
; CHECK-NEXT: store i64 0, ptr [[DST_3]], align 8, !alias.scope [[META18]], !noalias [[META19]]
279-
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE81]]
280-
; CHECK: [[PRED_STORE_CONTINUE81]]:
242+
; CHECK-NEXT: br i1 [[TMP17]], label %[[PRED_STORE_IF46:.*]], label %[[PRED_STORE_CONTINUE47:.*]]
243+
; CHECK: [[PRED_STORE_IF46]]:
244+
; CHECK-NEXT: store i64 0, ptr [[DST_3]], align 8, !alias.scope [[META15]], !noalias [[META16]]
245+
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE47]]
246+
; CHECK: [[PRED_STORE_CONTINUE47]]:
281247
; CHECK-NEXT: [[TMP19:%.*]] = select <2 x i1> [[TMP5]], <2 x i1> [[BROADCAST_SPLAT41]], <2 x i1> zeroinitializer
282248
; CHECK-NEXT: [[TMP21:%.*]] = select <2 x i1> [[TMP19]], <2 x i1> [[BROADCAST_SPLAT57]], <2 x i1> zeroinitializer
283249
; CHECK-NEXT: [[TMP23:%.*]] = or <2 x i1> [[TMP47]], [[TMP21]]
284250
; CHECK-NEXT: [[PREDPHI58:%.*]] = select <2 x i1> [[TMP21]], <2 x i64> zeroinitializer, <2 x i64> splat (i64 1)
285251
; CHECK-NEXT: [[TMP28:%.*]] = extractelement <2 x i1> [[TMP23]], i32 0
286-
; CHECK-NEXT: br i1 [[TMP28]], label %[[PRED_STORE_IF82:.*]], label %[[PRED_STORE_CONTINUE83:.*]]
287-
; CHECK: [[PRED_STORE_IF82]]:
252+
; CHECK-NEXT: br i1 [[TMP28]], label %[[PRED_STORE_IF48:.*]], label %[[PRED_STORE_CONTINUE49:.*]]
253+
; CHECK: [[PRED_STORE_IF48]]:
288254
; CHECK-NEXT: [[TMP29:%.*]] = extractelement <2 x i64> [[PREDPHI58]], i32 0
289-
; CHECK-NEXT: store i64 [[TMP29]], ptr [[DST_2]], align 8, !alias.scope [[META20:![0-9]+]], !noalias [[META21:![0-9]+]]
290-
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE83]]
291-
; CHECK: [[PRED_STORE_CONTINUE83]]:
255+
; CHECK-NEXT: store i64 [[TMP29]], ptr [[DST_2]], align 8, !alias.scope [[META17:![0-9]+]], !noalias [[META18:![0-9]+]]
256+
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE49]]
257+
; CHECK: [[PRED_STORE_CONTINUE49]]:
292258
; CHECK-NEXT: [[TMP30:%.*]] = extractelement <2 x i1> [[TMP23]], i32 1
293-
; CHECK-NEXT: br i1 [[TMP30]], label %[[PRED_STORE_IF84:.*]], label %[[PRED_STORE_CONTINUE85:.*]]
294-
; CHECK: [[PRED_STORE_IF84]]:
259+
; CHECK-NEXT: br i1 [[TMP30]], label %[[PRED_STORE_IF50:.*]], label %[[PRED_STORE_CONTINUE51:.*]]
260+
; CHECK: [[PRED_STORE_IF50]]:
295261
; CHECK-NEXT: [[TMP31:%.*]] = extractelement <2 x i64> [[PREDPHI58]], i32 1
296-
; CHECK-NEXT: store i64 [[TMP31]], ptr [[DST_2]], align 8, !alias.scope [[META20]], !noalias [[META21]]
297-
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE85]]
298-
; CHECK: [[PRED_STORE_CONTINUE85]]:
262+
; CHECK-NEXT: store i64 [[TMP31]], ptr [[DST_2]], align 8, !alias.scope [[META17]], !noalias [[META18]]
263+
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE51]]
264+
; CHECK: [[PRED_STORE_CONTINUE51]]:
299265
; CHECK-NEXT: [[TMP35:%.*]] = select <2 x i1> [[TMP19]], <2 x i1> [[TMP33]], <2 x i1> zeroinitializer
300266
; CHECK-NEXT: [[TMP37:%.*]] = or <2 x i1> [[TMP23]], [[TMP35]]
301267
; CHECK-NEXT: [[TMP42:%.*]] = extractelement <2 x i1> [[TMP37]], i32 0
302-
; CHECK-NEXT: br i1 [[TMP42]], label %[[PRED_STORE_IF86:.*]], label %[[PRED_STORE_CONTINUE87:.*]]
303-
; CHECK: [[PRED_STORE_IF86]]:
304-
; CHECK-NEXT: [[TMP24:%.*]] = load i64, ptr [[SRC]], align 8, !alias.scope [[META22:![0-9]+]]
305-
; CHECK-NEXT: store i64 [[TMP24]], ptr [[DST]], align 8, !alias.scope [[META23:![0-9]+]], !noalias [[META24:![0-9]+]]
306-
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE87]]
307-
; CHECK: [[PRED_STORE_CONTINUE87]]:
268+
; CHECK-NEXT: br i1 [[TMP42]], label %[[PRED_STORE_IF52:.*]], label %[[PRED_STORE_CONTINUE53:.*]]
269+
; CHECK: [[PRED_STORE_IF52]]:
270+
; CHECK-NEXT: [[TMP24:%.*]] = load i64, ptr [[SRC]], align 8, !alias.scope [[META19:![0-9]+]]
271+
; CHECK-NEXT: store i64 [[TMP24]], ptr [[DST]], align 8, !alias.scope [[META20:![0-9]+]], !noalias [[META19]]
272+
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE53]]
273+
; CHECK: [[PRED_STORE_CONTINUE53]]:
308274
; CHECK-NEXT: [[TMP44:%.*]] = extractelement <2 x i1> [[TMP37]], i32 1
309-
; CHECK-NEXT: br i1 [[TMP44]], label %[[PRED_STORE_IF88:.*]], label %[[PRED_STORE_CONTINUE89]]
310-
; CHECK: [[PRED_STORE_IF88]]:
311-
; CHECK-NEXT: [[TMP25:%.*]] = load i64, ptr [[SRC]], align 8, !alias.scope [[META22]]
312-
; CHECK-NEXT: store i64 [[TMP25]], ptr [[DST]], align 8, !alias.scope [[META23]], !noalias [[META24]]
313-
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE89]]
314-
; CHECK: [[PRED_STORE_CONTINUE89]]:
275+
; CHECK-NEXT: br i1 [[TMP44]], label %[[PRED_STORE_IF54:.*]], label %[[PRED_STORE_CONTINUE55]]
276+
; CHECK: [[PRED_STORE_IF54]]:
277+
; CHECK-NEXT: [[TMP25:%.*]] = load i64, ptr [[SRC]], align 8, !alias.scope [[META19]]
278+
; CHECK-NEXT: store i64 [[TMP25]], ptr [[DST]], align 8, !alias.scope [[META20]], !noalias [[META19]]
279+
; CHECK-NEXT: br label %[[PRED_STORE_CONTINUE55]]
280+
; CHECK: [[PRED_STORE_CONTINUE55]]:
315281
; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 2
316282
; CHECK-NEXT: [[TMP46:%.*]] = icmp eq i64 [[INDEX_NEXT]], 64
317-
; CHECK-NEXT: br i1 [[TMP46]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP25:![0-9]+]]
283+
; CHECK-NEXT: br i1 [[TMP46]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP21:![0-9]+]]
318284
; CHECK: [[MIDDLE_BLOCK]]:
319285
; CHECK-NEXT: br i1 false, label %[[EXIT:.*]], label %[[SCALAR_PH]]
320286
; CHECK: [[SCALAR_PH]]:
@@ -355,7 +321,7 @@ define void @test_exit_branch_cost(ptr %dst, ptr %x.ptr, ptr %y.ptr, ptr %dst.1,
355321
; CHECK: [[LOOP_LATCH]]:
356322
; CHECK-NEXT: [[IV_NEXT]] = add i64 [[IV]], 1
357323
; CHECK-NEXT: [[EC:%.*]] = icmp eq i64 [[IV]], 64
358-
; CHECK-NEXT: br i1 [[EC]], label %[[EXIT]], label %[[LOOP_HEADER]], !llvm.loop [[LOOP26:![0-9]+]]
324+
; CHECK-NEXT: br i1 [[EC]], label %[[EXIT]], label %[[LOOP_HEADER]], !llvm.loop [[LOOP22:![0-9]+]]
359325
; CHECK: [[EXIT]]:
360326
; CHECK-NEXT: ret void
361327
;
@@ -424,21 +390,17 @@ declare i64 @llvm.umin.i64(i64, i64)
424390
; CHECK: [[META7]] = !{[[META8:![0-9]+]]}
425391
; CHECK: [[META8]] = distinct !{[[META8]], [[META9:![0-9]+]]}
426392
; CHECK: [[META9]] = distinct !{[[META9]], !"LVerDomain"}
427-
; CHECK: [[META10]] = !{[[META11:![0-9]+]]}
393+
; CHECK: [[META10]] = !{[[META11:![0-9]+]], [[META12:![0-9]+]], [[META13:![0-9]+]], [[META14:![0-9]+]]}
428394
; CHECK: [[META11]] = distinct !{[[META11]], [[META9]]}
429-
; CHECK: [[META12]] = !{[[META13:![0-9]+]], [[META14:![0-9]+]], [[META15:![0-9]+]], [[META8]], [[META16:![0-9]+]], [[META17:![0-9]+]]}
395+
; CHECK: [[META12]] = distinct !{[[META12]], [[META9]]}
430396
; CHECK: [[META13]] = distinct !{[[META13]], [[META9]]}
431397
; CHECK: [[META14]] = distinct !{[[META14]], [[META9]]}
432-
; CHECK: [[META15]] = distinct !{[[META15]], [[META9]]}
433-
; CHECK: [[META16]] = distinct !{[[META16]], [[META9]]}
434-
; CHECK: [[META17]] = distinct !{[[META17]], [[META9]]}
435-
; CHECK: [[META18]] = !{[[META13]]}
436-
; CHECK: [[META19]] = !{[[META14]], [[META15]], [[META8]], [[META16]], [[META17]]}
437-
; CHECK: [[META20]] = !{[[META14]]}
438-
; CHECK: [[META21]] = !{[[META15]], [[META8]], [[META16]], [[META17]]}
439-
; CHECK: [[META22]] = !{[[META17]]}
440-
; CHECK: [[META23]] = !{[[META15]]}
441-
; CHECK: [[META24]] = !{[[META8]], [[META16]], [[META17]]}
442-
; CHECK: [[LOOP25]] = distinct !{[[LOOP25]], [[META1]], [[META2]]}
443-
; CHECK: [[LOOP26]] = distinct !{[[LOOP26]], [[META1]]}
398+
; CHECK: [[META15]] = !{[[META11]]}
399+
; CHECK: [[META16]] = !{[[META12]], [[META13]], [[META14]]}
400+
; CHECK: [[META17]] = !{[[META12]]}
401+
; CHECK: [[META18]] = !{[[META13]], [[META14]]}
402+
; CHECK: [[META19]] = !{[[META14]]}
403+
; CHECK: [[META20]] = !{[[META13]]}
404+
; CHECK: [[LOOP21]] = distinct !{[[LOOP21]], [[META1]], [[META2]]}
405+
; CHECK: [[LOOP22]] = distinct !{[[LOOP22]], [[META1]]}
444406
;.

0 commit comments

Comments
 (0)