|
109 | 109 | ret void
|
110 | 110 | }
|
111 | 111 |
|
| 112 | +@global = external addrspace(1) constant [16 x float], align 64 |
| 113 | + |
| 114 | +define float @issue160302(i1 %cond, ptr addrspace(5) %arg) { |
| 115 | +; CHECK-LABEL: define float @issue160302( |
| 116 | +; CHECK-SAME: i1 [[COND:%.*]], ptr addrspace(5) [[ARG:%.*]]) { |
| 117 | +; CHECK-NEXT: [[AGG_TMP2_I4:%.*]] = alloca [16 x float], align 64, addrspace(5) |
| 118 | +; CHECK-NEXT: [[SELECT_PTR:%.*]] = select i1 [[COND]], ptr addrspace(5) [[AGG_TMP2_I4]], ptr addrspace(5) [[ARG]] |
| 119 | +; CHECK-NEXT: [[COND_I:%.*]] = load float, ptr addrspace(5) [[SELECT_PTR]], align 4 |
| 120 | +; CHECK-NEXT: ret float [[COND_I]] |
| 121 | +; |
| 122 | + %agg.tmp2.i4 = alloca [16 x float], align 64, addrspace(5) |
| 123 | + call void @llvm.memcpy.p5.p1.i64(ptr addrspace(5) %agg.tmp2.i4, ptr addrspace(1) @global, i64 0, i1 false) |
| 124 | + %m_Data.i14.i = getelementptr [16 x float], ptr addrspace(5) %agg.tmp2.i4, i32 0, i32 0 |
| 125 | + %gep = getelementptr [16 x float], ptr addrspace(5) %arg, i32 0, i32 0 |
| 126 | + %select.ptr = select i1 %cond, ptr addrspace(5) %m_Data.i14.i, ptr addrspace(5) %gep |
| 127 | + %cond.i = load float, ptr addrspace(5) %select.ptr, align 4 |
| 128 | + ret float %cond.i |
| 129 | +} |
| 130 | + |
112 | 131 | declare void @llvm.memcpy.p5.p4.i64(ptr addrspace(5) noalias writeonly captures(none), ptr addrspace(4) noalias readonly captures(none), i64, i1 immarg) #0
|
0 commit comments