|
83 | 83 |
|
84 | 84 | // CUDA: define internal void @.cuda.globals_reg(ptr %0) section ".text.startup" {
|
85 | 85 | // CUDA-NEXT: entry:
|
86 |
| -// CUDA-NEXT: %1 = icmp ne ptr @__start_cuda_offloading_entries, @__stop_cuda_offloading_entries |
87 |
| -// CUDA-NEXT: br i1 %1, label %while.entry, label %while.end |
| 86 | +// CUDA-NEXT: br i1 icmp ne (ptr @__start_cuda_offloading_entries, ptr @__stop_cuda_offloading_entries), label %while.entry, label %while.end |
88 | 87 |
|
89 | 88 | // CUDA: while.entry:
|
90 |
| -// CUDA-NEXT: %entry1 = phi ptr [ @__start_cuda_offloading_entries, %entry ], [ %12, %if.end ] |
91 |
| -// CUDA-NEXT: %2 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 0 |
92 |
| -// CUDA-NEXT: %addr = load ptr, ptr %2, align 8 |
93 |
| -// CUDA-NEXT: %3 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 1 |
94 |
| -// CUDA-NEXT: %name = load ptr, ptr %3, align 8 |
95 |
| -// CUDA-NEXT: %4 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 2 |
96 |
| -// CUDA-NEXT: %size = load i64, ptr %4, align 4 |
97 |
| -// CUDA-NEXT: %5 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 3 |
98 |
| -// CUDA-NEXT: %flags = load i32, ptr %5, align 4 |
99 |
| -// CUDA-NEXT: %6 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 4 |
100 |
| -// CUDA-NEXT: %textype = load i32, ptr %6, align 4 |
| 89 | +// CUDA-NEXT: %entry1 = phi ptr [ @__start_cuda_offloading_entries, %entry ], [ %11, %if.end ] |
| 90 | +// CUDA-NEXT: %1 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 0 |
| 91 | +// CUDA-NEXT: %addr = load ptr, ptr %1, align 8 |
| 92 | +// CUDA-NEXT: %2 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 1 |
| 93 | +// CUDA-NEXT: %name = load ptr, ptr %2, align 8 |
| 94 | +// CUDA-NEXT: %3 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 2 |
| 95 | +// CUDA-NEXT: %size = load i64, ptr %3, align 4 |
| 96 | +// CUDA-NEXT: %4 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 3 |
| 97 | +// CUDA-NEXT: %flags = load i32, ptr %4, align 4 |
| 98 | +// CUDA-NEXT: %5 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 4 |
| 99 | +// CUDA-NEXT: %textype = load i32, ptr %5, align 4 |
101 | 100 | // CUDA-NEXT: %type = and i32 %flags, 7
|
102 |
| -// CUDA-NEXT: %7 = and i32 %flags, 8 |
103 |
| -// CUDA-NEXT: %extern = lshr i32 %7, 3 |
104 |
| -// CUDA-NEXT: %8 = and i32 %flags, 16 |
105 |
| -// CUDA-NEXT: %constant = lshr i32 %8, 4 |
106 |
| -// CUDA-NEXT: %9 = and i32 %flags, 32 |
107 |
| -// CUDA-NEXT: %normalized = lshr i32 %9, 5 |
108 |
| -// CUDA-NEXT: %10 = icmp eq i64 %size, 0 |
109 |
| -// CUDA-NEXT: br i1 %10, label %if.then, label %if.else |
| 101 | +// CUDA-NEXT: %6 = and i32 %flags, 8 |
| 102 | +// CUDA-NEXT: %extern = lshr i32 %6, 3 |
| 103 | +// CUDA-NEXT: %7 = and i32 %flags, 16 |
| 104 | +// CUDA-NEXT: %constant = lshr i32 %7, 4 |
| 105 | +// CUDA-NEXT: %8 = and i32 %flags, 32 |
| 106 | +// CUDA-NEXT: %normalized = lshr i32 %8, 5 |
| 107 | +// CUDA-NEXT: %9 = icmp eq i64 %size, 0 |
| 108 | +// CUDA-NEXT: br i1 %9, label %if.then, label %if.else |
110 | 109 |
|
111 | 110 | // CUDA: if.then:
|
112 |
| -// CUDA-NEXT: %11 = call i32 @__cudaRegisterFunction(ptr %0, ptr %addr, ptr %name, ptr %name, i32 -1, ptr null, ptr null, ptr null, ptr null, ptr null) |
| 111 | +// CUDA-NEXT: %10 = call i32 @__cudaRegisterFunction(ptr %0, ptr %addr, ptr %name, ptr %name, i32 -1, ptr null, ptr null, ptr null, ptr null, ptr null) |
113 | 112 | // CUDA-NEXT: br label %if.end
|
114 | 113 |
|
115 | 114 | // CUDA: if.else:
|
|
134 | 133 | // CUDA-NEXT: br label %if.end
|
135 | 134 |
|
136 | 135 | // CUDA: if.end:
|
137 |
| -// CUDA-NEXT: %12 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 1 |
138 |
| -// CUDA-NEXT: %13 = icmp eq ptr %12, @__stop_cuda_offloading_entries |
139 |
| -// CUDA-NEXT: br i1 %13, label %while.end, label %while.entry |
| 136 | +// CUDA-NEXT: %11 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 1 |
| 137 | +// CUDA-NEXT: %12 = icmp eq ptr %11, @__stop_cuda_offloading_entries |
| 138 | +// CUDA-NEXT: br i1 %12, label %while.end, label %while.entry |
140 | 139 |
|
141 | 140 | // CUDA: while.end:
|
142 | 141 | // CUDA-NEXT: ret void
|
|
183 | 182 |
|
184 | 183 | // HIP: define internal void @.hip.globals_reg(ptr %0) section ".text.startup" {
|
185 | 184 | // HIP-NEXT: entry:
|
186 |
| -// HIP-NEXT: %1 = icmp ne ptr @__start_hip_offloading_entries, @__stop_hip_offloading_entries |
187 |
| -// HIP-NEXT: br i1 %1, label %while.entry, label %while.end |
| 185 | +// HIP-NEXT: br i1 icmp ne (ptr @__start_hip_offloading_entries, ptr @__stop_hip_offloading_entries), label %while.entry, label %while.end |
188 | 186 |
|
189 | 187 | // HIP: while.entry:
|
190 |
| -// HIP-NEXT: %entry1 = phi ptr [ @__start_hip_offloading_entries, %entry ], [ %12, %if.end ] |
191 |
| -// HIP-NEXT: %2 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 0 |
192 |
| -// HIP-NEXT: %addr = load ptr, ptr %2, align 8 |
193 |
| -// HIP-NEXT: %3 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 1 |
194 |
| -// HIP-NEXT: %name = load ptr, ptr %3, align 8 |
195 |
| -// HIP-NEXT: %4 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 2 |
196 |
| -// HIP-NEXT: %size = load i64, ptr %4, align 4 |
197 |
| -// HIP-NEXT: %5 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 3 |
198 |
| -// HIP-NEXT: %flags = load i32, ptr %5, align 4 |
199 |
| -// HIP-NEXT: %6 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 4 |
200 |
| -// HIP-NEXT: %textype = load i32, ptr %6, align 4 |
| 188 | +// HIP-NEXT: %entry1 = phi ptr [ @__start_hip_offloading_entries, %entry ], [ %11, %if.end ] |
| 189 | +// HIP-NEXT: %1 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 0 |
| 190 | +// HIP-NEXT: %addr = load ptr, ptr %1, align 8 |
| 191 | +// HIP-NEXT: %2 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 1 |
| 192 | +// HIP-NEXT: %name = load ptr, ptr %2, align 8 |
| 193 | +// HIP-NEXT: %3 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 2 |
| 194 | +// HIP-NEXT: %size = load i64, ptr %3, align 4 |
| 195 | +// HIP-NEXT: %4 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 3 |
| 196 | +// HIP-NEXT: %flags = load i32, ptr %4, align 4 |
| 197 | +// HIP-NEXT: %5 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 0, i32 4 |
| 198 | +// HIP-NEXT: %textype = load i32, ptr %5, align 4 |
201 | 199 | // HIP-NEXT: %type = and i32 %flags, 7
|
202 |
| -// HIP-NEXT: %7 = and i32 %flags, 8 |
203 |
| -// HIP-NEXT: %extern = lshr i32 %7, 3 |
204 |
| -// HIP-NEXT: %8 = and i32 %flags, 16 |
205 |
| -// HIP-NEXT: %constant = lshr i32 %8, 4 |
206 |
| -// HIP-NEXT: %9 = and i32 %flags, 32 |
207 |
| -// HIP-NEXT: %normalized = lshr i32 %9, 5 |
208 |
| -// HIP-NEXT: %10 = icmp eq i64 %size, 0 |
209 |
| -// HIP-NEXT: br i1 %10, label %if.then, label %if.else |
| 200 | +// HIP-NEXT: %6 = and i32 %flags, 8 |
| 201 | +// HIP-NEXT: %extern = lshr i32 %6, 3 |
| 202 | +// HIP-NEXT: %7 = and i32 %flags, 16 |
| 203 | +// HIP-NEXT: %constant = lshr i32 %7, 4 |
| 204 | +// HIP-NEXT: %8 = and i32 %flags, 32 |
| 205 | +// HIP-NEXT: %normalized = lshr i32 %8, 5 |
| 206 | +// HIP-NEXT: %9 = icmp eq i64 %size, 0 |
| 207 | +// HIP-NEXT: br i1 %9, label %if.then, label %if.else |
210 | 208 |
|
211 | 209 | // HIP: if.then:
|
212 |
| -// HIP-NEXT: %11 = call i32 @__hipRegisterFunction(ptr %0, ptr %addr, ptr %name, ptr %name, i32 -1, ptr null, ptr null, ptr null, ptr null, ptr null) |
| 210 | +// HIP-NEXT: %10 = call i32 @__hipRegisterFunction(ptr %0, ptr %addr, ptr %name, ptr %name, i32 -1, ptr null, ptr null, ptr null, ptr null, ptr null) |
213 | 211 | // HIP-NEXT: br label %if.end
|
214 | 212 |
|
215 | 213 | // HIP: if.else:
|
|
236 | 234 | // HIP-NEXT: br label %if.end
|
237 | 235 |
|
238 | 236 | // HIP: if.end:
|
239 |
| -// HIP-NEXT: %12 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 1 |
240 |
| -// HIP-NEXT: %13 = icmp eq ptr %12, @__stop_hip_offloading_entries |
241 |
| -// HIP-NEXT: br i1 %13, label %while.end, label %while.entry |
| 237 | +// HIP-NEXT: %11 = getelementptr inbounds %struct.__tgt_offload_entry, ptr %entry1, i64 1 |
| 238 | +// HIP-NEXT: %12 = icmp eq ptr %11, @__stop_hip_offloading_entries |
| 239 | +// HIP-NEXT: br i1 %12, label %while.end, label %while.entry |
242 | 240 |
|
243 | 241 | // HIP: while.end:
|
244 | 242 | // HIP-NEXT: ret void
|
|
0 commit comments