208 lines
44 KiB
Text
208 lines
44 KiB
Text
|
module attributes {gpu.container_module} {
|
||
|
llvm.mlir.global private constant @vector_print_str_0(dense<[73, 110, 99, 111, 114, 114, 101, 99, 116, 32, 82, 101, 115, 117, 108, 116, 115, 32, 58, 10, 0]> : tensor<21xi8>) {addr_space = 0 : i32} : !llvm.array<21 x i8>
|
||
|
llvm.func @printNewline()
|
||
|
llvm.func @printI64(i64)
|
||
|
llvm.func @printString(!llvm.ptr)
|
||
|
llvm.mlir.global private constant @vector_print_str(dense<[67, 111, 114, 114, 101, 99, 116, 32, 82, 101, 115, 117, 108, 116, 115, 32, 58, 10, 0]> : tensor<19xi8>) {addr_space = 0 : i32} : !llvm.array<19 x i8>
|
||
|
llvm.func @malloc(i64) -> !llvm.ptr
|
||
|
llvm.mlir.global private @__mbarrier() {addr_space = 3 : i32, alignment = 8 : i64} : !llvm.array<2 x i64>
|
||
|
llvm.func @printMemrefF32(i64, !llvm.ptr) attributes {sym_visibility = "private"}
|
||
|
llvm.mlir.global private @dynamicShmem() {addr_space = 3 : i32, alignment = 16 : i64} : !llvm.array<0 x f16>
|
||
|
llvm.mlir.global private @accShmem() {addr_space = 3 : i32, alignment = 16 : i64} : !llvm.array<0 x f32>
|
||
|
llvm.func @main() {
|
||
|
%0 = llvm.mlir.constant(2 : index) : i64
|
||
|
%1 = llvm.mlir.constant(0 : i8) : i8
|
||
|
%2 = llvm.mlir.constant(64 : index) : i64
|
||
|
%3 = llvm.mlir.constant(65536 : i32) : i32
|
||
|
%4 = llvm.mlir.constant(16 : index) : i64
|
||
|
%5 = llvm.mlir.constant(8 : index) : i64
|
||
|
%6 = llvm.mlir.constant(0.000000e+00 : f32) : f32
|
||
|
%7 = llvm.mlir.constant(6 : i32) : i64
|
||
|
%8 = llvm.mlir.constant(5 : i32) : i64
|
||
|
%9 = llvm.mlir.constant(0 : i32) : i64
|
||
|
%10 = llvm.mlir.constant(3 : i32) : i64
|
||
|
%11 = llvm.mlir.constant(1 : i32) : i32
|
||
|
%12 = llvm.mlir.constant(0 : i32) : i32
|
||
|
%13 = llvm.mlir.constant(9.99999993E-9 : f32) : f32
|
||
|
%14 = llvm.mlir.constant(1 : index) : i64
|
||
|
%15 = llvm.mlir.constant(0 : index) : i64
|
||
|
%16 = llvm.mlir.constant(128 : index) : i64
|
||
|
%17 = llvm.mlir.zero : !llvm.ptr
|
||
|
%18 = llvm.getelementptr %17[16384] : (!llvm.ptr) -> !llvm.ptr, f16
|
||
|
%19 = llvm.ptrtoint %18 : !llvm.ptr to i64
|
||
|
%20 = llvm.call @malloc(%19) : (i64) -> !llvm.ptr
|
||
|
%21 = llvm.call @malloc(%19) : (i64) -> !llvm.ptr
|
||
|
%22 = llvm.getelementptr %17[16384] : (!llvm.ptr) -> !llvm.ptr, f32
|
||
|
%23 = llvm.ptrtoint %22 : !llvm.ptr to i64
|
||
|
%24 = llvm.call @malloc(%23) : (i64) -> !llvm.ptr
|
||
|
%25 = llvm.call @malloc(%23) : (i64) -> !llvm.ptr
|
||
|
llvm.br ^bb1(%15 : i64)
|
||
|
^bb1(%26: i64): // 2 preds: ^bb0, ^bb5
|
||
|
%27 = llvm.icmp "slt" %26, %16 : i64
|
||
|
llvm.cond_br %27, ^bb2, ^bb6
|
||
|
^bb2: // pred: ^bb1
|
||
|
llvm.br ^bb3(%15 : i64)
|
||
|
^bb3(%28: i64): // 2 preds: ^bb2, ^bb4
|
||
|
%29 = llvm.icmp "slt" %28, %16 : i64
|
||
|
llvm.cond_br %29, ^bb4, ^bb5
|
||
|
^bb4: // pred: ^bb3
|
||
|
%30 = llvm.mul %26, %16 : i64
|
||
|
%31 = llvm.add %30, %28 : i64
|
||
|
%32 = llvm.udiv %31, %5 : i64
|
||
|
%33 = llvm.urem %32, %4 : i64
|
||
|
%34 = llvm.trunc %33 : i64 to i32
|
||
|
%35 = llvm.sitofp %34 : i32 to f16
|
||
|
%36 = llvm.getelementptr %21[%31] : (!llvm.ptr, i64) -> !llvm.ptr, f16
|
||
|
llvm.store %35, %36 : f16, !llvm.ptr
|
||
|
%37 = llvm.mul %28, %2 : i64
|
||
|
%38 = llvm.add %37, %26 : i64
|
||
|
%39 = llvm.udiv %38, %5 : i64
|
||
|
%40 = llvm.urem %39, %4 : i64
|
||
|
%41 = llvm.trunc %40 : i64 to i32
|
||
|
%42 = llvm.sitofp %41 : i32 to f16
|
||
|
%43 = llvm.mul %28, %16 : i64
|
||
|
%44 = llvm.add %43, %26 : i64
|
||
|
%45 = llvm.getelementptr %20[%44] : (!llvm.ptr, i64) -> !llvm.ptr, f16
|
||
|
llvm.store %42, %45 : f16, !llvm.ptr
|
||
|
%46 = llvm.getelementptr %24[%31] : (!llvm.ptr, i64) -> !llvm.ptr, f32
|
||
|
llvm.store %6, %46 : f32, !llvm.ptr
|
||
|
%47 = llvm.getelementptr %25[%31] : (!llvm.ptr, i64) -> !llvm.ptr, f32
|
||
|
llvm.store %6, %47 : f32, !llvm.ptr
|
||
|
%48 = llvm.add %28, %14 : i64
|
||
|
llvm.br ^bb3(%48 : i64)
|
||
|
^bb5: // pred: ^bb3
|
||
|
%49 = llvm.add %26, %14 : i64
|
||
|
llvm.br ^bb1(%49 : i64)
|
||
|
^bb6: // pred: ^bb1
|
||
|
%50 = llvm.call @mgpuStreamCreate() : () -> !llvm.ptr
|
||
|
%51 = llvm.call @mgpuMemAlloc(%19, %50, %1) : (i64, !llvm.ptr, i8) -> !llvm.ptr
|
||
|
%52 = llvm.mlir.undef : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%53 = llvm.insertvalue %51, %52[0] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%54 = llvm.insertvalue %51, %53[1] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%55 = llvm.insertvalue %15, %54[2] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%56 = llvm.insertvalue %16, %55[3, 0] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%57 = llvm.insertvalue %16, %56[3, 1] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%58 = llvm.insertvalue %16, %57[4, 0] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%59 = llvm.insertvalue %14, %58[4, 1] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%60 = llvm.call @mgpuMemAlloc(%19, %50, %1) : (i64, !llvm.ptr, i8) -> !llvm.ptr
|
||
|
%61 = llvm.insertvalue %60, %52[0] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%62 = llvm.insertvalue %60, %61[1] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%63 = llvm.insertvalue %15, %62[2] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%64 = llvm.insertvalue %16, %63[3, 0] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%65 = llvm.insertvalue %16, %64[3, 1] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%66 = llvm.insertvalue %16, %65[4, 0] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%67 = llvm.insertvalue %14, %66[4, 1] : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>
|
||
|
%68 = llvm.call @mgpuMemAlloc(%23, %50, %1) : (i64, !llvm.ptr, i8) -> !llvm.ptr
|
||
|
llvm.call @mgpuMemcpy(%51, %20, %19, %50) : (!llvm.ptr, !llvm.ptr, i64, !llvm.ptr) -> ()
|
||
|
llvm.call @mgpuMemcpy(%60, %21, %19, %50) : (!llvm.ptr, !llvm.ptr, i64, !llvm.ptr) -> ()
|
||
|
%69 = llvm.alloca %14 x !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)> : (i64) -> !llvm.ptr
|
||
|
llvm.store %59, %69 : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>, !llvm.ptr
|
||
|
%70 = llvm.alloca %14 x !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)> : (i64) -> !llvm.ptr
|
||
|
llvm.store %67, %70 : !llvm.struct<(ptr, ptr, i64, array<2 x i64>, array<2 x i64>)>, !llvm.ptr
|
||
|
%71 = llvm.alloca %8 x i64 : (i64) -> !llvm.ptr
|
||
|
llvm.store %16, %71 : i64, !llvm.ptr
|
||
|
%72 = llvm.getelementptr %71[1] : (!llvm.ptr) -> !llvm.ptr, !llvm.ptr
|
||
|
llvm.store %2, %72 : i64, !llvm.ptr
|
||
|
%73 = llvm.call @mgpuTensorMapEncodeTiledMemref(%0, %69, %7, %9, %10, %9, %9, %71) : (i64, !llvm.ptr, i64, i64, i64, i64, i64, !llvm.ptr) -> !llvm.ptr
|
||
|
%74 = llvm.alloca %8 x i64 : (i64) -> !llvm.ptr
|
||
|
llvm.store %2, %74 : i64, !llvm.ptr
|
||
|
%75 = llvm.getelementptr %74[1] : (!llvm.ptr) -> !llvm.ptr, !llvm.ptr
|
||
|
llvm.store %2, %75 : i64, !llvm.ptr
|
||
|
%76 = llvm.call @mgpuTensorMapEncodeTiledMemref(%0, %70, %7, %9, %10, %9, %9, %74) : (i64, !llvm.ptr, i64, i64, i64, i64, i64, !llvm.ptr) -> !llvm.ptr
|
||
|
gpu.launch_func @main_kernel::@main_kernel blocks in (%14, %14, %14) threads in (%16, %14, %14) : i64 dynamic_shared_memory_size %3 args(%68 : !llvm.ptr, %68 : !llvm.ptr, %15 : i64, %16 : i64, %16 : i64, %16 : i64, %14 : i64, %73 : !llvm.ptr, %76 : !llvm.ptr)
|
||
|
llvm.call @mgpuMemcpy(%24, %68, %23, %50) : (!llvm.ptr, !llvm.ptr, i64, !llvm.ptr) -> ()
|
||
|
llvm.br ^bb7(%15 : i64)
|
||
|
^bb7(%77: i64): // 2 preds: ^bb6, ^bb14
|
||
|
%78 = llvm.icmp "slt" %77, %16 : i64
|
||
|
llvm.cond_br %78, ^bb8, ^bb15
|
||
|
^bb8: // pred: ^bb7
|
||
|
llvm.br ^bb9(%15 : i64)
|
||
|
^bb9(%79: i64): // 2 preds: ^bb8, ^bb13
|
||
|
%80 = llvm.icmp "slt" %79, %16 : i64
|
||
|
llvm.cond_br %80, ^bb10, ^bb14
|
||
|
^bb10: // pred: ^bb9
|
||
|
llvm.br ^bb11(%15 : i64)
|
||
|
^bb11(%81: i64): // 2 preds: ^bb10, ^bb12
|
||
|
%82 = llvm.icmp "slt" %81, %16 : i64
|
||
|
llvm.cond_br %82, ^bb12, ^bb13
|
||
|
^bb12: // pred: ^bb11
|
||
|
%83 = llvm.mul %77, %16 : i64
|
||
|
%84 = llvm.add %83, %81 : i64
|
||
|
%85 = llvm.getelementptr %20[%84] : (!llvm.ptr, i64) -> !llvm.ptr, f16
|
||
|
%86 = llvm.load %85 : !llvm.ptr -> f16
|
||
|
%87 = llvm.mul %81, %16 : i64
|
||
|
%88 = llvm.add %87, %79 : i64
|
||
|
%89 = llvm.getelementptr %21[%88] : (!llvm.ptr, i64) -> !llvm.ptr, f16
|
||
|
%90 = llvm.load %89 : !llvm.ptr -> f16
|
||
|
%91 = llvm.add %83, %79 : i64
|
||
|
%92 = llvm.getelementptr %25[%91] : (!llvm.ptr, i64) -> !llvm.ptr, f32
|
||
|
%93 = llvm.load %92 : !llvm.ptr -> f32
|
||
|
%94 = llvm.fpext %86 : f16 to f32
|
||
|
%95 = llvm.fpext %90 : f16 to f32
|
||
|
%96 = llvm.fmul %94, %95 : f32
|
||
|
%97 = llvm.fadd %93, %96 : f32
|
||
|
llvm.store %97, %92 : f32, !llvm.ptr
|
||
|
%98 = llvm.add %81, %14 : i64
|
||
|
llvm.br ^bb11(%98 : i64)
|
||
|
^bb13: // pred: ^bb11
|
||
|
%99 = llvm.add %79, %14 : i64
|
||
|
llvm.br ^bb9(%99 : i64)
|
||
|
^bb14: // pred: ^bb9
|
||
|
%100 = llvm.add %77, %14 : i64
|
||
|
llvm.br ^bb7(%100 : i64)
|
||
|
^bb15: // pred: ^bb7
|
||
|
llvm.br ^bb16(%15, %12, %12 : i64, i32, i32)
|
||
|
^bb16(%101: i64, %102: i32, %103: i32): // 2 preds: ^bb15, ^bb24
|
||
|
%104 = llvm.icmp "slt" %101, %16 : i64
|
||
|
llvm.cond_br %104, ^bb17, ^bb25
|
||
|
^bb17: // pred: ^bb16
|
||
|
llvm.br ^bb18(%15, %102, %103 : i64, i32, i32)
|
||
|
^bb18(%105: i64, %106: i32, %107: i32): // 2 preds: ^bb17, ^bb23
|
||
|
%108 = llvm.icmp "slt" %105, %16 : i64
|
||
|
llvm.cond_br %108, ^bb19, ^bb24
|
||
|
^bb19: // pred: ^bb18
|
||
|
%109 = llvm.mul %101, %16 : i64
|
||
|
%110 = llvm.add %109, %105 : i64
|
||
|
%111 = llvm.getelementptr %25[%110] : (!llvm.ptr, i64) -> !llvm.ptr, f32
|
||
|
%112 = llvm.load %111 : !llvm.ptr -> f32
|
||
|
%113 = llvm.getelementptr %24[%110] : (!llvm.ptr, i64) -> !llvm.ptr, f32
|
||
|
%114 = llvm.load %113 : !llvm.ptr -> f32
|
||
|
%115 = llvm.fsub %112, %114 : f32
|
||
|
%116 = llvm.intr.fabs(%115) : (f32) -> f32
|
||
|
%117 = llvm.fcmp "ult" %13, %116 : f32
|
||
|
llvm.cond_br %117, ^bb20, ^bb21
|
||
|
^bb20: // pred: ^bb19
|
||
|
%118 = llvm.add %106, %11 : i32
|
||
|
llvm.br ^bb22(%118, %107 : i32, i32)
|
||
|
^bb21: // pred: ^bb19
|
||
|
%119 = llvm.add %107, %11 : i32
|
||
|
llvm.br ^bb22(%106, %119 : i32, i32)
|
||
|
^bb22(%120: i32, %121: i32): // 2 preds: ^bb20, ^bb21
|
||
|
llvm.br ^bb23
|
||
|
^bb23: // pred: ^bb22
|
||
|
%122 = llvm.add %105, %14 : i64
|
||
|
llvm.br ^bb18(%122, %120, %121 : i64, i32, i32)
|
||
|
^bb24: // pred: ^bb18
|
||
|
%123 = llvm.add %101, %14 : i64
|
||
|
llvm.br ^bb16(%123, %106, %107 : i64, i32, i32)
|
||
|
^bb25: // pred: ^bb16
|
||
|
%124 = llvm.mlir.addressof @vector_print_str : !llvm.ptr
|
||
|
llvm.call @printString(%124) : (!llvm.ptr) -> ()
|
||
|
%125 = llvm.sext %103 : i32 to i64
|
||
|
llvm.call @printI64(%125) : (i64) -> ()
|
||
|
llvm.call @printNewline() : () -> ()
|
||
|
%126 = llvm.mlir.addressof @vector_print_str_0 : !llvm.ptr
|
||
|
llvm.call @printString(%126) : (!llvm.ptr) -> ()
|
||
|
%127 = llvm.sext %102 : i32 to i64
|
||
|
llvm.call @printI64(%127) : (i64) -> ()
|
||
|
llvm.call @printNewline() : () -> ()
|
||
|
llvm.return
|
||
|
}
|
||
|
gpu.binary @main_kernel [#gpu.object<#nvvm.target<O = 3, chip = "sm_90a", features = "+ptx80">, "P\EDU\BA\01\00\10\00\A83\00\00\00\00\00\00\02\00\01\01@\00\00\00p$\00\00\00\00\00\00\00\00\00\00\00\00\00\00\07\00\01\00Z\00\00\00\00\00\00\00\00\00\00\00\11\00\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\7FELF\02\01\013\07\00\00\00\00\00\00\00\02\00\BE\00{\00\00\00\00\00\00\00\00\00\00\00X#\00\00\00\00\00\00X \00\00\00\00\00\00Z\0DZ\00@\008\00\05\00@\00\0C\00\01\00\00.shstrtab\00.strtab\00.symtab\00.symtab_shndx\00.nv.uft.entry\00.nv.info\00.text.main_kernel\00.nv.info.main_kernel\00.nv.shared.main_kernel\00.rel.text.main_kernel\00.rela.text.main_kernel\00.debug_frame\00.rel.debug_frame\00.rela.debug_frame\00.nv.constant0.main_kernel\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00.shstrtab\00.strtab\00.symtab\00.symtab_shndx\00.nv.uft.entry\00.nv.info\00main_kernel\00.text.main_kernel\00.nv.info.main_kernel\00.nv.shared.main_kernel\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00.rel.text.main_kernel\00.rela.text.main_kernel\00$__dynamicShmem__31\00$____mbarrier__33\00$__accShmem__35\00.debug_frame\00.rel.debug_frame\00.rela.debug_frame\00.nv.constant0.main_kernel\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00L\00\00\00\03\00\09\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00s\00\00\00\03\00\0A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\01\00\00\03\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\12\10\09\00\00\00\00\00\00\00\00\00\80\18\00\00\00\00\00\002\01\00\00\03\00\0B\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\FF\FF\FF\FF$\00\00\00\00\00\00\00\FF\FF\FF\FF\FF\FF\FF\FF\03\00\04|\FF\FF\FF\FF\0F\0C\81\80\80(\00\08\FF\81\80(\08\81\80\80(\00\00\00\FF\FF\FF\FF,\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\18\00\00\00\00\00\00\04T\00\00\00\0C\81\80\80(\00\04\A0\05\00\00\00\00\00\00\04/\08\00\05\00\00\00\9A\00\00\00\04#\08\00\05\00\00\00\00\00\00\00\04\12\08\00\05\00\00\00\00\00\00\00\04\11\08\00\05\00\00\00\00\00\00\00\047\04\00{\00\00\00\04\17\0C\00\00\00\00\00\08\00@\00\00\F0!\00\04\17\0C\00\00\00\00\00\07\008\00\00\F0!\00\04\17\0C\00\00\00\00\00\06\000\00\00\F0!\00\04\17\0C\00\00\00\00\00\05\00(\00\00\F0!\00\04\17\0C\00\00\00\00\00\04\00 \00\00\F0!\00\04\17\0C\00\00\00\00\00\03\00\18\00\00\F0!\00\04\17\0C\00\00\00\00\00\02\00\10\00\00\F0!\00\04\17\0C\00\00\00\00\00\01\00\08\00\00\F0!\00\04\17\0C\00\00\00\00\00\00\00\00\00\00\F0!\00\03\1B\FF\00\0490\00\C0\00\00\00\FF\00\00\00\00\00\00\00\00\01\09\00\00\01\00\00\FF\00\00\00\08\00\00\00\00\01\09\00p\09\00\00\00\00\00\00\00\00\00\00\0A\01?\00\038\02\00\04\1C\0C\00@\12\00\00\80\17\00\00\D0\17\00\00\04\1E\04\00\00\00\00\00\03\19H\00\04\0A\08\00\06\00\00\00\10\02H\00\00\00\00\00D\00\00\00\00\00\00\00\02\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\82{\01\FF\00\0A\00\00\00\08\00\00\00$\0E\00\C3y\04\00\00\00\00\00\00\88\00\00\00b\0E\00\19y\06\00\00\00\00\00\00!\00\00\00\A2\0E\00\82x\08\00\00\04\00\00\00\00\00\00\00\E2\0F\00\82x\0A\00\FE\FF\1F\00\00\00\00\00\00\E2\0F\00\90x\09\08\08\00\00\00?\E0\FF\0F\00\E2\0F\00Ey\00\00\A0\04\00\00\00\00\80\03\00\E2\0F\00\82x\0B\00\00\F8\FF\7F\00\00\00\00\00\E2\0F\00\B9z\06\00\00\92\00\00\00\0A\00\00\00\E2\0F\00\B9z\0C\00\00\94\00\00\00\0A\00\00\00\E2\0F\00\96x\09\04T\06\00\00\09\00\00\08\00\E4/\00\96x\08\04T\06\00\00\08\00\00\08\00\E2\0F\00\18y\00\00\00\00\00\00\00\00\00\00\00\E2\0F\00\0Cr\00\06\FF\00\00\00pR\F0\03\00\E2O\00\C6s\00\00\00\00\00\00\00\00\00\00\00n\0E\00\B2u?\09\0A\00\00\00\00\0
|
||
|
llvm.func @mgpuTensorMapEncodeTiledMemref(i64, !llvm.ptr, i64, i64, i64, i64, i64, !llvm.ptr) -> !llvm.ptr
|
||
|
llvm.func @mgpuStreamCreate() -> !llvm.ptr
|
||
|
llvm.func @mgpuMemAlloc(i64, !llvm.ptr, i8) -> !llvm.ptr
|
||
|
llvm.func @mgpuMemcpy(!llvm.ptr, !llvm.ptr, i64, !llvm.ptr)
|
||
|
}
|
||
|
|