|
4 | 4 | define void @test(ptr %a, ptr %b, ptr %r) {
|
5 | 5 | ; CHECK-LABEL: define void @test(
|
6 | 6 | ; CHECK-SAME: ptr [[A:%.*]], ptr [[B:%.*]], ptr [[R:%.*]]) #[[ATTR0:[0-9]+]] {
|
7 |
| -; CHECK-NEXT: [[TMP1:%.*]] = load <4 x float>, ptr [[A]], align 4 |
8 |
| -; CHECK-NEXT: [[TMP2:%.*]] = load <4 x float>, ptr [[B]], align 4 |
9 |
| -; CHECK-NEXT: [[TMP3:%.*]] = fadd <4 x float> [[TMP1]], [[TMP2]] |
10 |
| -; CHECK-NEXT: store <4 x float> [[TMP3]], ptr [[R]], align 4 |
| 7 | +; CHECK-NEXT: [[V_A_0:%.*]] = load float, ptr [[A]], align 4 |
| 8 | +; CHECK-NEXT: [[A_1:%.*]] = getelementptr i8, ptr [[A]], i64 4 |
| 9 | +; CHECK-NEXT: [[V_A_1:%.*]] = load float, ptr [[A_1]], align 4 |
| 10 | +; CHECK-NEXT: [[A_2:%.*]] = getelementptr i8, ptr [[A]], i64 8 |
| 11 | +; CHECK-NEXT: [[V_A_2:%.*]] = load float, ptr [[A_2]], align 4 |
| 12 | +; CHECK-NEXT: [[A_3:%.*]] = getelementptr i8, ptr [[A]], i64 12 |
| 13 | +; CHECK-NEXT: [[V_A_3:%.*]] = load float, ptr [[A_3]], align 4 |
| 14 | +; CHECK-NEXT: [[V_B_0:%.*]] = load float, ptr [[B]], align 4 |
| 15 | +; CHECK-NEXT: [[B_1:%.*]] = getelementptr i8, ptr [[B]], i64 4 |
| 16 | +; CHECK-NEXT: [[V_B_1:%.*]] = load float, ptr [[B_1]], align 4 |
| 17 | +; CHECK-NEXT: [[B_2:%.*]] = getelementptr i8, ptr [[B]], i64 8 |
| 18 | +; CHECK-NEXT: [[V_B_2:%.*]] = load float, ptr [[B_2]], align 4 |
| 19 | +; CHECK-NEXT: [[B_3:%.*]] = getelementptr i8, ptr [[B]], i64 12 |
| 20 | +; CHECK-NEXT: [[V_B_3:%.*]] = load float, ptr [[B_3]], align 4 |
| 21 | +; CHECK-NEXT: [[V_R_0:%.*]] = fadd float [[V_A_0]], [[V_B_0]] |
| 22 | +; CHECK-NEXT: [[V_R_1:%.*]] = fadd float [[V_A_1]], [[V_B_1]] |
| 23 | +; CHECK-NEXT: [[V_R_2:%.*]] = fadd float [[V_A_2]], [[V_B_2]] |
| 24 | +; CHECK-NEXT: [[V_R_3:%.*]] = fadd float [[V_A_3]], [[V_B_3]] |
| 25 | +; CHECK-NEXT: store float [[V_R_0]], ptr [[R]], align 4 |
| 26 | +; CHECK-NEXT: [[R_1:%.*]] = getelementptr i8, ptr [[R]], i64 4 |
| 27 | +; CHECK-NEXT: store float [[V_R_1]], ptr [[R_1]], align 4 |
| 28 | +; CHECK-NEXT: [[R_2:%.*]] = getelementptr i8, ptr [[R]], i64 8 |
| 29 | +; CHECK-NEXT: store float [[V_R_2]], ptr [[R_2]], align 4 |
| 30 | +; CHECK-NEXT: [[R_3:%.*]] = getelementptr i8, ptr [[R]], i64 12 |
| 31 | +; CHECK-NEXT: store float [[V_R_3]], ptr [[R_3]], align 4 |
11 | 32 | ; CHECK-NEXT: ret void
|
12 | 33 | ;
|
13 | 34 | %v.a.0 = load float, ptr %a
|
|
0 commit comments