|
3 | 3 |
|
4 | 4 | target triple = "x86_64-redhat-linux-gnu"
|
5 | 5 |
|
| 6 | +; Should not get vectorized. |
6 | 7 | define void @test(ptr %p1, i64 %arg1, i64 %arg2) {
|
7 | 8 | ; CHECK-LABEL: define void @test(
|
8 | 9 | ; CHECK-SAME: ptr [[P1:%.*]], i64 [[ARG1:%.*]], i64 [[ARG2:%.*]]) {
|
9 |
| -; CHECK-NEXT: [[ENTRY:.*]]: |
10 |
| -; CHECK-NEXT: br label %[[LOOP1:.*]] |
11 |
| -; CHECK: [[LOOP1]]: |
12 |
| -; CHECK-NEXT: [[I:%.*]] = phi ptr [ [[I21:%.*]], %[[BB20:.*]] ], [ [[P1]], %[[ENTRY]] ] |
| 10 | +; CHECK-NEXT: [[_PREHEADER48_PREHEADER_1:.*]]: |
| 11 | +; CHECK-NEXT: br label %[[_LOOPEXIT49_1:.*]] |
| 12 | +; CHECK: [[_LOOPEXIT49_1]]: |
| 13 | +; CHECK-NEXT: [[I:%.*]] = phi ptr [ [[I21:%.*]], %[[BB20:.*]] ], [ [[P1]], %[[_PREHEADER48_PREHEADER_1]] ] |
13 | 14 | ; CHECK-NEXT: br i1 false, label %[[BB22:.*]], label %[[DOTPREHEADER48_PREHEADER_1:.*]]
|
14 | 15 | ; CHECK: [[DEAD:.*]]:
|
15 | 16 | ; CHECK-NEXT: br label %[[DOTPREHEADER48_PREHEADER_1]]
|
16 |
| -; CHECK: [[_PREHEADER48_PREHEADER_1:.*:]] |
17 |
| -; CHECK-NEXT: [[I5:%.*]] = phi ptr [ [[I]], %[[DEAD]] ], [ [[I]], %[[LOOP1]] ] |
| 17 | +; CHECK: [[_PREHEADER48_PREHEADER_2:.*:]] |
| 18 | +; CHECK-NEXT: [[I5:%.*]] = phi ptr [ [[I]], %[[DEAD]] ], [ [[I]], %[[_LOOPEXIT49_1]] ] |
18 | 19 | ; CHECK-NEXT: br label %[[DOTLOOPEXIT49_1:.*]]
|
19 | 20 | ; CHECK: [[DEAD1:.*]]:
|
20 | 21 | ; CHECK-NEXT: br i1 false, label %[[DOTLOOPEXIT49_1]], label %[[BB20]]
|
21 |
| -; CHECK: [[_LOOPEXIT49_1:.*:]] |
| 22 | +; CHECK: [[_LOOPEXIT49_2:.*:]] |
22 | 23 | ; CHECK-NEXT: [[I6:%.*]] = phi ptr [ [[I5]], %[[DEAD1]] ], [ [[I5]], %[[DOTPREHEADER48_PREHEADER_1]] ]
|
23 | 24 | ; CHECK-NEXT: [[I7:%.*]] = getelementptr i8, ptr [[I6]], i64 [[ARG1]]
|
24 | 25 | ; CHECK-NEXT: br label %[[BB10:.*]]
|
25 | 26 | ; CHECK: [[DEAD2:.*]]:
|
26 | 27 | ; CHECK-NEXT: br label %[[BB10]]
|
27 | 28 | ; CHECK: [[BB10]]:
|
28 | 29 | ; CHECK-NEXT: [[I11:%.*]] = phi ptr [ [[I7]], %[[DOTLOOPEXIT49_1]] ], [ null, %[[DEAD2]] ]
|
29 |
| -; CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, ptr [[I11]], align 1 |
30 |
| -; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x i64> [[TMP0]], <2 x i64> poison, <2 x i32> <i32 1, i32 0> |
31 |
| -; CHECK-NEXT: store <2 x i64> [[TMP1]], ptr [[I6]], align 1 |
| 30 | +; CHECK-NEXT: [[I16:%.*]] = getelementptr i8, ptr [[I11]], i64 8 |
| 31 | +; CHECK-NEXT: [[I17:%.*]] = load i64, ptr [[I16]], align 1 |
| 32 | +; CHECK-NEXT: store i64 [[I17]], ptr [[I6]], align 1 |
| 33 | +; CHECK-NEXT: [[I18:%.*]] = getelementptr i8, ptr [[I6]], i64 8 |
| 34 | +; CHECK-NEXT: [[I19:%.*]] = load i64, ptr [[I11]], align 1 |
| 35 | +; CHECK-NEXT: store i64 [[I19]], ptr [[I18]], align 1 |
32 | 36 | ; CHECK-NEXT: br label %[[BB20]]
|
33 | 37 | ; CHECK: [[BB20]]:
|
34 | 38 | ; CHECK-NEXT: [[I21]] = phi ptr [ [[I5]], %[[DEAD1]] ], [ [[I6]], %[[BB10]] ]
|
35 |
| -; CHECK-NEXT: br label %[[LOOP1]] |
| 39 | +; CHECK-NEXT: br label %[[_LOOPEXIT49_1]] |
36 | 40 | ; CHECK: [[BB22]]:
|
37 | 41 | ; CHECK-NEXT: [[I23:%.*]] = getelementptr i8, ptr [[I]], i64 [[ARG2]]
|
38 | 42 | ; CHECK-NEXT: [[I25:%.*]] = getelementptr i8, ptr [[I23]], i64 8
|
|
0 commit comments