|
76 | 76 | ret <2 x i64> %val.sink
|
77 | 77 | }
|
78 | 78 |
|
| 79 | +; Crashed in IC PtrReplacer because an invalid select was generated with addrspace(4) and addrspace(5) |
| 80 | +; operands. |
| 81 | +define amdgpu_kernel void @select_addr4_addr5(ptr addrspace(4) byref([12 x i8]) align 16 %arg) { |
| 82 | +; CHECK-LABEL: define amdgpu_kernel void @select_addr4_addr5( |
| 83 | +; CHECK-SAME: ptr addrspace(4) byref([12 x i8]) align 16 [[ARG:%.*]]) { |
| 84 | +; CHECK-NEXT: [[BB:.*:]] |
| 85 | +; CHECK-NEXT: ret void |
| 86 | +; |
| 87 | +bb: |
| 88 | + %alloca = alloca i32, i32 0, align 8, addrspace(5) |
| 89 | + %alloca1 = alloca [12 x i8], align 16, addrspace(5) |
| 90 | + call void @llvm.memcpy.p5.p4.i64(ptr addrspace(5) %alloca1, ptr addrspace(4) %arg, i64 0, i1 false) |
| 91 | + %select = select i1 false, ptr addrspace(5) %alloca1, ptr addrspace(5) %alloca |
| 92 | + call void @llvm.memcpy.p0.p5.i64(ptr null, ptr addrspace(5) %select, i64 0, i1 false) |
| 93 | + ret void |
| 94 | +} |
| 95 | + |
| 96 | +; Same as above but with swapped operands on the select. |
| 97 | +define amdgpu_kernel void @select_addr4_addr5_swapped(ptr addrspace(4) byref([12 x i8]) align 16 %arg) { |
| 98 | +; CHECK-LABEL: define amdgpu_kernel void @select_addr4_addr5_swapped( |
| 99 | +; CHECK-SAME: ptr addrspace(4) byref([12 x i8]) align 16 [[ARG:%.*]]) { |
| 100 | +; CHECK-NEXT: [[BB:.*:]] |
| 101 | +; CHECK-NEXT: ret void |
| 102 | +; |
| 103 | +bb: |
| 104 | + %alloca = alloca i32, i32 0, align 8, addrspace(5) |
| 105 | + %alloca1 = alloca [12 x i8], align 16, addrspace(5) |
| 106 | + call void @llvm.memcpy.p5.p4.i64(ptr addrspace(5) %alloca1, ptr addrspace(4) %arg, i64 0, i1 false) |
| 107 | + %select = select i1 false, ptr addrspace(5) %alloca, ptr addrspace(5) %alloca1 |
| 108 | + call void @llvm.memcpy.p0.p5.i64(ptr null, ptr addrspace(5) %select, i64 0, i1 false) |
| 109 | + ret void |
| 110 | +} |
| 111 | + |
79 | 112 | 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