|
| 1 | +; RUN: opt -enable-new-pm=0 -load libjulia-codegen%shlibext -AllocOpt -S %s | FileCheck %s |
| 2 | + |
| 3 | +source_filename = "text" |
| 4 | +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128-ni:10:11:12:13" |
| 5 | +target triple = "x86_64-linux-gnu" |
| 6 | + |
| 7 | +declare {}*** @julia.get_pgcstack() |
| 8 | + |
| 9 | +declare {} addrspace(10)* @julia.gc_alloc_obj({}**, i64, {} addrspace(10)*) |
| 10 | + |
| 11 | +declare void @julia.write_barrier({} addrspace(10)*, ...) |
| 12 | + |
| 13 | +define void @diffejulia_objective__1864_inner_1wrap({} addrspace(10)* %arg, i64 %iv.i) { |
| 14 | +entry: |
| 15 | + %i5 = call {}*** @julia.get_pgcstack() |
| 16 | + %i13 = bitcast {}*** %i5 to {}** |
| 17 | + %i14 = getelementptr inbounds {}*, {}** %i13, i64 -12 |
| 18 | + %i18 = call noalias nonnull dereferenceable(8000) dereferenceable_or_null(8000) {} addrspace(10)* @julia.gc_alloc_obj({}** %i14, i64 8000, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 139756155247504 to {}*) to {} addrspace(10)*)) |
| 19 | + %_malloccache.i = bitcast {} addrspace(10)* %i18 to {} addrspace(10)* addrspace(10)* |
| 20 | + %i23 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(10)* %_malloccache.i, i64 %iv.i |
| 21 | + store {} addrspace(10)* %arg, {} addrspace(10)* addrspace(10)* %i23, align 8 |
| 22 | + %i24 = bitcast {} addrspace(10)* addrspace(10)* %_malloccache.i to {} addrspace(10)* |
| 23 | + call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* %i24, {} addrspace(10)* %arg) |
| 24 | + %l = load {} addrspace(10)*, {} addrspace(10)* addrspace(10)* %i23 |
| 25 | + ret void |
| 26 | +} |
| 27 | + |
| 28 | +; CHECK: %[[i0:.+]] = alloca {} addrspace(10)*, i64 1000, align 16 |
| 29 | +; CHECK: %[[i1:.+]] = bitcast {} addrspace(10)** %[[i0]] to i8* |
| 30 | +; CHECK: %i18 = bitcast i8* %[[i1]] to {}* |
| 31 | +; CHECK: %_malloccache.i = bitcast {}* %i18 to {} addrspace(10)** |
| 32 | +; CHECK: %i23 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)** %_malloccache.i, i64 %iv.i |
| 33 | +; CHECK: store {} addrspace(10)* %arg, {} addrspace(10)** %i23, align 8 |
| 34 | +; CHECK: %i24 = bitcast {} addrspace(10)** %_malloccache.i to {}* |
| 35 | +; CHECK: %l = load {} addrspace(10)*, {} addrspace(10)** %i23, align 8 |
0 commit comments