|
4 | 4 | %vec_base = type { [4 x float] }
|
5 | 5 | %foo = type { %vec, %vec}
|
6 | 6 |
|
7 |
| -define void @test(i1 %tobool, ptr addrspace(1) %add.ptr.i) { |
| 7 | +define void @test(i1 %tobool, ptr addrspace(1) %add.ptr) { |
8 | 8 | entry:
|
9 | 9 | %lane.0 = alloca %foo, align 16
|
10 |
| - %lane.15 = insertelement <16 x ptr> undef, ptr %lane.0, i64 0 |
| 10 | + %lane.15 = insertelement <16 x ptr> poison, ptr %lane.0, i64 0 |
11 | 11 | %mm_vectorGEP = getelementptr inbounds %foo, <16 x ptr> %lane.15, <16 x i64> zeroinitializer, <16 x i32> splat (i32 1), <16 x i32> zeroinitializer, <16 x i32> zeroinitializer, <16 x i64> splat (i64 1)
|
12 | 12 | %mm_vectorGEP2 = getelementptr inbounds %foo, <16 x ptr> %lane.15, <16 x i64> zeroinitializer, <16 x i32> zeroinitializer, <16 x i32> zeroinitializer, <16 x i32> zeroinitializer, <16 x i64> splat (i64 1)
|
13 | 13 | br i1 %tobool, label %f1, label %f0
|
|
24 | 24 |
|
25 | 25 | merge:
|
26 | 26 | ; CHECK: merge:
|
27 |
| -; CHECK-NEXT: %vec.phi14 = phi <16 x ptr> [ %mm_vectorGEP, %f0 ], [ %mm_vectorGEP2, %f1 ] |
28 |
| - %vec.phi14 = phi <16 x ptr> [ %mm_vectorGEP, %f0], [ %mm_vectorGEP2, %f1 ] |
29 |
| - %wide.masked.gather15 = call <16 x float> @llvm.masked.gather.v16f32.v16p0(<16 x ptr> %vec.phi14, i32 4, <16 x i1> splat (i1 true), <16 x float> poison) |
30 |
| - %wide.masked.gather15.extract.15. = extractelement <16 x float> %wide.masked.gather15, i32 15 |
31 |
| - store float %wide.masked.gather15.extract.15., ptr addrspace(1) %add.ptr.i, align 4 |
| 27 | +; CHECK-NEXT: %vec.phi = phi <16 x ptr> [ %mm_vectorGEP, %f0 ], [ %mm_vectorGEP2, %f1 ] |
| 28 | + %vec.phi = phi <16 x ptr> [ %mm_vectorGEP, %f0], [ %mm_vectorGEP2, %f1 ] |
| 29 | + store <16 x ptr> %vec.phi, ptr addrspace(1) %add.ptr |
32 | 30 | ret void
|
33 | 31 | }
|
34 |
| - |
35 |
| -declare <16 x float> @llvm.masked.gather.v16f32.v16p0(<16 x ptr>, i32 immarg, <16 x i1>, <16 x float>) |
0 commit comments