|
4 | 4 | ; Check that we correctly handle the use of %start2 in the exit block, and do
|
5 | 5 | ; not crash.
|
6 | 6 |
|
7 |
| -define i64 @foo(i64 %start, i64 %end) { |
| 7 | +define i64 @foo(ptr %p1, ptr %p2, i64 %start, i64 %end) { |
8 | 8 | ; CHECK-LABEL: define i64 @foo(
|
9 |
| -; CHECK-SAME: i64 [[START:%.*]], i64 [[END:%.*]]) { |
| 9 | +; CHECK-SAME: ptr [[P1:%.*]], ptr [[P2:%.*]], i64 [[START:%.*]], i64 [[END:%.*]]) { |
10 | 10 | ; CHECK-NEXT: [[ENTRY:.*]]:
|
11 |
| -; CHECK-NEXT: [[P1:%.*]] = alloca [1024 x i32], align 4 |
12 |
| -; CHECK-NEXT: [[P2:%.*]] = alloca [1024 x i32], align 4 |
13 |
| -; CHECK-NEXT: call void @init_mem(ptr [[P1]], i64 1024) |
14 |
| -; CHECK-NEXT: call void @init_mem(ptr [[P2]], i64 1024) |
15 | 11 | ; CHECK-NEXT: [[START2:%.*]] = and i64 [[START]], 12345
|
16 | 12 | ; CHECK-NEXT: [[TMP0:%.*]] = sub i64 [[END]], [[START2]]
|
17 | 13 | ; CHECK-NEXT: [[MIN_ITERS_CHECK:%.*]] = icmp ult i64 [[TMP0]], 4
|
@@ -52,10 +48,6 @@ define i64 @foo(i64 %start, i64 %end) {
|
52 | 48 | ; CHECK-NEXT: ret i64 [[USE]]
|
53 | 49 | ;
|
54 | 50 | entry:
|
55 |
| - %p1 = alloca [1024 x i32] |
56 |
| - %p2 = alloca [1024 x i32] |
57 |
| - call void @init_mem(ptr %p1, i64 1024) |
58 |
| - call void @init_mem(ptr %p2, i64 1024) |
59 | 51 | %start2 = and i64 %start, 12345
|
60 | 52 | br label %for.body
|
61 | 53 |
|
|
74 | 66 | ret i64 %use
|
75 | 67 | }
|
76 | 68 |
|
77 |
| -declare void @init_mem(ptr, i64) |
78 |
| - |
79 | 69 | ;.
|
80 | 70 | ; CHECK: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]], [[META2:![0-9]+]]}
|
81 | 71 | ; CHECK: [[META1]] = !{!"llvm.loop.isvectorized", i32 1}
|
|
0 commit comments