Skip to content

Instantly share code, notes, and snippets.

@AkhilJ99
Created June 29, 2020 07:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AkhilJ99/c1bd64e4262a488cd5296694161606a1 to your computer and use it in GitHub Desktop.
Save AkhilJ99/c1bd64e4262a488cd5296694161606a1 to your computer and use it in GitHub Desktop.
module {
llvm.func @getStrides(!llvm<"i8*">) -> !llvm<"i64*">
llvm.func @getSizes(!llvm<"i8*">) -> !llvm<"i64*">
llvm.func @setDynMemRef(!llvm<"i8*">, !llvm.i32, !llvm<"i8*">)
llvm.func @getDynMemRef(!llvm<"i8*">, !llvm.i32) -> !llvm<"i8*">
llvm.func @setData(!llvm<"i8*">, !llvm<"i8*">)
llvm.func @getData(!llvm<"i8*">) -> !llvm<"i8*">
llvm.func @createDynMemRef(!llvm.i32) -> !llvm<"i8*">
llvm.func @createOrderedDynMemRefDict() -> !llvm<"i8*">
llvm.func @free(!llvm<"i8*">)
llvm.func @malloc(!llvm.i64) -> !llvm<"i8*">
llvm.mlir.global external constant @constPackFilePath("/tmp/packed_const-b61ed8.tmp")
llvm.mlir.global external constant @constPackFilePathStrLen(28 : i64) : !llvm.i64
llvm.mlir.global external constant @constPackFileName("packed_const-b61ed8.tmp")
llvm.mlir.global external constant @constPackFileNameStrLen(23 : i64) : !llvm.i64
llvm.mlir.global external constant @constPackIsLE(1 : i8) : !llvm.i8
llvm.func @getEmbeddedConstPool(!llvm.i64) -> !llvm<"i8*">
llvm.mlir.global internal @packedConst() : !llvm<"i8*">
llvm.func @main_graph(%arg0: !llvm<"float*">, %arg1: !llvm<"float*">, %arg2: !llvm.i64, %arg3: !llvm.i64, %arg4: !llvm.i64, %arg5: !llvm.i64, %arg6: !llvm.i64, %arg7: !llvm<"float*">, %arg8: !llvm<"float*">, %arg9: !llvm.i64, %arg10: !llvm.i64, %arg11: !llvm.i64, %arg12: !llvm.i64, %arg13: !llvm.i64, %arg14: !llvm<"float*">, %arg15: !llvm<"float*">, %arg16: !llvm.i64, %arg17: !llvm.i64, %arg18: !llvm.i64, %arg19: !llvm.i64, %arg20: !llvm.i64) -> !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }"> {
%0 = llvm.mlir.undef : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%1 = llvm.insertvalue %arg0, %0[0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%2 = llvm.insertvalue %arg1, %1[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%3 = llvm.insertvalue %arg2, %2[2] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%4 = llvm.insertvalue %arg3, %3[3, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%5 = llvm.insertvalue %arg5, %4[4, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%6 = llvm.insertvalue %arg4, %5[3, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%7 = llvm.mlir.undef : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%8 = llvm.insertvalue %arg7, %7[0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%9 = llvm.insertvalue %arg8, %8[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%10 = llvm.insertvalue %arg9, %9[2] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%11 = llvm.insertvalue %arg10, %10[3, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%12 = llvm.insertvalue %arg12, %11[4, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%13 = llvm.insertvalue %arg11, %12[3, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%14 = llvm.mlir.undef : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%15 = llvm.insertvalue %arg14, %14[0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%16 = llvm.insertvalue %arg15, %15[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%17 = llvm.insertvalue %arg16, %16[2] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%18 = llvm.insertvalue %arg17, %17[3, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%19 = llvm.insertvalue %arg19, %18[4, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%20 = llvm.insertvalue %arg18, %19[3, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%21 = llvm.insertvalue %arg20, %20[4, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%22 = llvm.mlir.addressof @packedConst : !llvm<"i8**">
%23 = llvm.mlir.constant(0 : i64) : !llvm.i64
%24 = llvm.call @getEmbeddedConstPool(%23) : (!llvm.i64) -> !llvm<"i8*">
llvm.store %24, %22 : !llvm<"i8**">
%25 = llvm.mlir.constant(0.000000e+00 : f32) : !llvm.float
%26 = llvm.mlir.constant(0 : i64) : !llvm.i64
%27 = llvm.mlir.constant(1 : index) : !llvm.i64
%28 = llvm.mlir.constant(1 : index) : !llvm.i64
%29 = llvm.mul %27, %28 : !llvm.i64
%30 = llvm.mlir.null : !llvm<"float*">
%31 = llvm.mlir.constant(1 : index) : !llvm.i64
%32 = llvm.getelementptr %30[%31] : (!llvm<"float*">, !llvm.i64) -> !llvm<"float*">
%33 = llvm.ptrtoint %32 : !llvm<"float*"> to !llvm.i64
%34 = llvm.mul %29, %33 : !llvm.i64
%35 = llvm.call @malloc(%34) : (!llvm.i64) -> !llvm<"i8*">
%36 = llvm.bitcast %35 : !llvm<"i8*"> to !llvm<"float*">
%37 = llvm.mlir.undef : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%38 = llvm.insertvalue %36, %37[0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%39 = llvm.insertvalue %36, %38[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%40 = llvm.mlir.constant(0 : index) : !llvm.i64
%41 = llvm.insertvalue %40, %39[2] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%42 = llvm.mlir.constant(1 : index) : !llvm.i64
%43 = llvm.mlir.constant(1 : index) : !llvm.i64
%44 = llvm.insertvalue %27, %41[3, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%45 = llvm.insertvalue %43, %44[4, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%46 = llvm.insertvalue %28, %45[3, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%47 = llvm.insertvalue %42, %46[4, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%48 = llvm.mlir.constant(4 : index) : !llvm.i64
%49 = llvm.mlir.null : !llvm<"i8*">
%50 = llvm.mlir.constant(1 : index) : !llvm.i64
%51 = llvm.getelementptr %49[%50] : (!llvm<"i8*">, !llvm.i64) -> !llvm<"i8*">
%52 = llvm.ptrtoint %51 : !llvm<"i8*"> to !llvm.i64
%53 = llvm.mul %48, %52 : !llvm.i64
%54 = llvm.call @malloc(%53) : (!llvm.i64) -> !llvm<"i8*">
%55 = llvm.bitcast %54 : !llvm<"i8*"> to !llvm<"i8*">
%56 = llvm.mlir.undef : !llvm<"{ i8*, i8*, i64, [1 x i64], [1 x i64] }">
%57 = llvm.insertvalue %55, %56[0] : !llvm<"{ i8*, i8*, i64, [1 x i64], [1 x i64] }">
%58 = llvm.insertvalue %55, %57[1] : !llvm<"{ i8*, i8*, i64, [1 x i64], [1 x i64] }">
%59 = llvm.mlir.constant(0 : index) : !llvm.i64
%60 = llvm.insertvalue %59, %58[2] : !llvm<"{ i8*, i8*, i64, [1 x i64], [1 x i64] }">
%61 = llvm.mlir.constant(1 : index) : !llvm.i64
%62 = llvm.insertvalue %48, %60[3, 0] : !llvm<"{ i8*, i8*, i64, [1 x i64], [1 x i64] }">
%63 = llvm.insertvalue %61, %62[4, 0] : !llvm<"{ i8*, i8*, i64, [1 x i64], [1 x i64] }">
%64 = llvm.extractvalue %63[1] : !llvm<"{ i8*, i8*, i64, [1 x i64], [1 x i64] }">
%65 = llvm.getelementptr %64[%26] : (!llvm<"i8*">, !llvm.i64) -> !llvm<"i8*">
%66 = llvm.bitcast %65 : !llvm<"i8*"> to !llvm<"float*">
%67 = llvm.mlir.undef : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%68 = llvm.insertvalue %66, %67[0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%69 = llvm.insertvalue %66, %68[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%70 = llvm.mlir.constant(0 : index) : !llvm.i64
%71 = llvm.insertvalue %70, %69[2] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%72 = llvm.mlir.constant(1 : index) : !llvm.i64
%73 = llvm.insertvalue %72, %71[3, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%74 = llvm.mlir.constant(1 : index) : !llvm.i64
%75 = llvm.insertvalue %74, %73[4, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%76 = llvm.mlir.constant(1 : index) : !llvm.i64
%77 = llvm.insertvalue %76, %75[3, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%78 = llvm.mlir.constant(1 : index) : !llvm.i64
%79 = llvm.insertvalue %78, %77[4, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%80 = llvm.mlir.constant(0 : index) : !llvm.i64
%81 = llvm.mlir.constant(1 : index) : !llvm.i64
%82 = llvm.mlir.constant(1 : index) : !llvm.i64
llvm.br ^bb1(%80 : !llvm.i64)
^bb1(%83: !llvm.i64): // 2 preds: ^bb0, ^bb8
%84 = llvm.icmp "slt" %83, %81 : !llvm.i64
llvm.cond_br %84, ^bb2, ^bb9
^bb2: // pred: ^bb1
%85 = llvm.mlir.constant(0 : index) : !llvm.i64
%86 = llvm.mlir.constant(1 : index) : !llvm.i64
%87 = llvm.mlir.constant(1 : index) : !llvm.i64
llvm.br ^bb3(%85 : !llvm.i64)
^bb3(%88: !llvm.i64): // 2 preds: ^bb2, ^bb7
%89 = llvm.icmp "slt" %88, %86 : !llvm.i64
llvm.cond_br %89, ^bb4, ^bb8
^bb4: // pred: ^bb3
%90 = llvm.extractvalue %79[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%91 = llvm.mlir.constant(0 : index) : !llvm.i64
%92 = llvm.mlir.constant(1 : index) : !llvm.i64
%93 = llvm.mul %83, %92 : !llvm.i64
%94 = llvm.add %91, %93 : !llvm.i64
%95 = llvm.mlir.constant(1 : index) : !llvm.i64
%96 = llvm.mul %88, %95 : !llvm.i64
%97 = llvm.add %94, %96 : !llvm.i64
%98 = llvm.getelementptr %90[%97] : (!llvm<"float*">, !llvm.i64) -> !llvm<"float*">
llvm.store %25, %98 : !llvm<"float*">
%99 = llvm.mlir.constant(0 : index) : !llvm.i64
%100 = llvm.mlir.constant(1 : index) : !llvm.i64
%101 = llvm.mlir.constant(1 : index) : !llvm.i64
llvm.br ^bb5(%99 : !llvm.i64)
^bb5(%102: !llvm.i64): // 2 preds: ^bb4, ^bb6
%103 = llvm.icmp "slt" %102, %100 : !llvm.i64
llvm.cond_br %103, ^bb6, ^bb7
^bb6: // pred: ^bb5
%104 = llvm.extractvalue %21[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%105 = llvm.mlir.constant(0 : index) : !llvm.i64
%106 = llvm.mlir.constant(1 : index) : !llvm.i64
%107 = llvm.mul %83, %106 : !llvm.i64
%108 = llvm.add %105, %107 : !llvm.i64
%109 = llvm.mlir.constant(1 : index) : !llvm.i64
%110 = llvm.mul %102, %109 : !llvm.i64
%111 = llvm.add %108, %110 : !llvm.i64
%112 = llvm.getelementptr %104[%111] : (!llvm<"float*">, !llvm.i64) -> !llvm<"float*">
%113 = llvm.load %112 : !llvm<"float*">
%114 = llvm.extractvalue %21[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%115 = llvm.mlir.constant(0 : index) : !llvm.i64
%116 = llvm.mlir.constant(1 : index) : !llvm.i64
%117 = llvm.mul %102, %116 : !llvm.i64
%118 = llvm.add %115, %117 : !llvm.i64
%119 = llvm.mlir.constant(1 : index) : !llvm.i64
%120 = llvm.mul %88, %119 : !llvm.i64
%121 = llvm.add %118, %120 : !llvm.i64
%122 = llvm.getelementptr %114[%121] : (!llvm<"float*">, !llvm.i64) -> !llvm<"float*">
%123 = llvm.load %122 : !llvm<"float*">
%124 = llvm.extractvalue %79[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%125 = llvm.mlir.constant(0 : index) : !llvm.i64
%126 = llvm.mlir.constant(1 : index) : !llvm.i64
%127 = llvm.mul %83, %126 : !llvm.i64
%128 = llvm.add %125, %127 : !llvm.i64
%129 = llvm.mlir.constant(1 : index) : !llvm.i64
%130 = llvm.mul %88, %129 : !llvm.i64
%131 = llvm.add %128, %130 : !llvm.i64
%132 = llvm.getelementptr %124[%131] : (!llvm<"float*">, !llvm.i64) -> !llvm<"float*">
%133 = llvm.load %132 : !llvm<"float*">
%134 = llvm.fmul %113, %123 : !llvm.float
%135 = llvm.fadd %133, %134 : !llvm.float
%136 = llvm.extractvalue %79[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%137 = llvm.mlir.constant(0 : index) : !llvm.i64
%138 = llvm.mlir.constant(1 : index) : !llvm.i64
%139 = llvm.mul %83, %138 : !llvm.i64
%140 = llvm.add %137, %139 : !llvm.i64
%141 = llvm.mlir.constant(1 : index) : !llvm.i64
%142 = llvm.mul %88, %141 : !llvm.i64
%143 = llvm.add %140, %142 : !llvm.i64
%144 = llvm.getelementptr %136[%143] : (!llvm<"float*">, !llvm.i64) -> !llvm<"float*">
llvm.store %135, %144 : !llvm<"float*">
%145 = llvm.add %102, %101 : !llvm.i64
llvm.br ^bb5(%145 : !llvm.i64)
^bb7: // pred: ^bb5
%146 = llvm.add %88, %87 : !llvm.i64
llvm.br ^bb3(%146 : !llvm.i64)
^bb8: // pred: ^bb3
%147 = llvm.add %83, %82 : !llvm.i64
llvm.br ^bb1(%147 : !llvm.i64)
^bb9: // pred: ^bb1
%148 = llvm.mlir.constant(0 : index) : !llvm.i64
%149 = llvm.mlir.constant(1 : index) : !llvm.i64
%150 = llvm.mlir.constant(1 : index) : !llvm.i64
llvm.br ^bb10(%148 : !llvm.i64)
^bb10(%151: !llvm.i64): // 2 preds: ^bb9, ^bb14
%152 = llvm.icmp "slt" %151, %149 : !llvm.i64
llvm.cond_br %152, ^bb11, ^bb15
^bb11: // pred: ^bb10
%153 = llvm.mlir.constant(0 : index) : !llvm.i64
%154 = llvm.mlir.constant(1 : index) : !llvm.i64
%155 = llvm.mlir.constant(1 : index) : !llvm.i64
llvm.br ^bb12(%153 : !llvm.i64)
^bb12(%156: !llvm.i64): // 2 preds: ^bb11, ^bb13
%157 = llvm.icmp "slt" %156, %154 : !llvm.i64
llvm.cond_br %157, ^bb13, ^bb14
^bb13: // pred: ^bb12
%158 = llvm.extractvalue %79[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%159 = llvm.mlir.constant(0 : index) : !llvm.i64
%160 = llvm.mlir.constant(1 : index) : !llvm.i64
%161 = llvm.mul %151, %160 : !llvm.i64
%162 = llvm.add %159, %161 : !llvm.i64
%163 = llvm.mlir.constant(1 : index) : !llvm.i64
%164 = llvm.mul %156, %163 : !llvm.i64
%165 = llvm.add %162, %164 : !llvm.i64
%166 = llvm.getelementptr %158[%165] : (!llvm<"float*">, !llvm.i64) -> !llvm<"float*">
%167 = llvm.load %166 : !llvm<"float*">
%168 = llvm.fcmp "olt" %167, %25 : !llvm.float
%169 = llvm.select %168, %25, %167 : !llvm.i1, !llvm.float
%170 = llvm.extractvalue %47[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%171 = llvm.mlir.constant(0 : index) : !llvm.i64
%172 = llvm.mlir.constant(1 : index) : !llvm.i64
%173 = llvm.mul %151, %172 : !llvm.i64
%174 = llvm.add %171, %173 : !llvm.i64
%175 = llvm.mlir.constant(1 : index) : !llvm.i64
%176 = llvm.mul %156, %175 : !llvm.i64
%177 = llvm.add %174, %176 : !llvm.i64
%178 = llvm.getelementptr %170[%177] : (!llvm<"float*">, !llvm.i64) -> !llvm<"float*">
llvm.store %169, %178 : !llvm<"float*">
%179 = llvm.add %156, %155 : !llvm.i64
llvm.br ^bb12(%179 : !llvm.i64)
^bb14: // pred: ^bb12
%180 = llvm.add %151, %150 : !llvm.i64
llvm.br ^bb10(%180 : !llvm.i64)
^bb15: // pred: ^bb10
%181 = llvm.extractvalue %63[0] : !llvm<"{ i8*, i8*, i64, [1 x i64], [1 x i64] }">
%182 = llvm.bitcast %181 : !llvm<"i8*"> to !llvm<"i8*">
llvm.call @free(%182) : (!llvm<"i8*">) -> ()
llvm.return %47 : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
}
llvm.func @_mlir_ciface_main_graph(%arg0: !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">, %arg1: !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">, %arg2: !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">) -> !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }"> {
%0 = llvm.load %arg0 : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%1 = llvm.extractvalue %0[0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%2 = llvm.extractvalue %0[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%3 = llvm.extractvalue %0[2] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%4 = llvm.extractvalue %0[3, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%5 = llvm.extractvalue %0[3, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%6 = llvm.extractvalue %0[4, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%7 = llvm.extractvalue %0[4, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%8 = llvm.load %arg1 : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%9 = llvm.extractvalue %8[0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%10 = llvm.extractvalue %8[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%11 = llvm.extractvalue %8[2] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%12 = llvm.extractvalue %8[3, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%13 = llvm.extractvalue %8[3, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%14 = llvm.extractvalue %8[4, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%15 = llvm.extractvalue %8[4, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%16 = llvm.load %arg2 : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%17 = llvm.extractvalue %16[0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%18 = llvm.extractvalue %16[1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%19 = llvm.extractvalue %16[2] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%20 = llvm.extractvalue %16[3, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%21 = llvm.extractvalue %16[3, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%22 = llvm.extractvalue %16[4, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%23 = llvm.extractvalue %16[4, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%24 = llvm.call @main_graph(%1, %2, %3, %4, %5, %6, %7, %9, %10, %11, %12, %13, %14, %15, %17, %18, %19, %20, %21, %22, %23) : (!llvm<"float*">, !llvm<"float*">, !llvm.i64, !llvm.i64, !llvm.i64, !llvm.i64, !llvm.i64, !llvm<"float*">, !llvm<"float*">, !llvm.i64, !llvm.i64, !llvm.i64, !llvm.i64, !llvm.i64, !llvm<"float*">, !llvm<"float*">, !llvm.i64, !llvm.i64, !llvm.i64, !llvm.i64, !llvm.i64) -> !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
llvm.return %24 : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
}
llvm.func @_dyn_entry_point_main_graph(%arg0: !llvm<"i8*">) -> !llvm<"i8*"> {
%0 = llvm.mlir.constant(0 : i32) : !llvm.i32
%1 = llvm.call @getDynMemRef(%arg0, %0) : (!llvm<"i8*">, !llvm.i32) -> !llvm<"i8*">
%2 = llvm.mlir.constant(1 : i32) : !llvm.i32
%3 = llvm.alloca %2 x !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }"> : (!llvm.i32) -> !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%4 = llvm.load %3 : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%5 = llvm.call @getData(%1) : (!llvm<"i8*">) -> !llvm<"i8*">
%6 = llvm.bitcast %5 : !llvm<"i8*"> to !llvm<"float*">
%7 = llvm.insertvalue %6, %4[0 : i32] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%8 = llvm.insertvalue %6, %7[1 : i32] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%9 = llvm.mlir.constant(0 : i64) : !llvm.i64
%10 = llvm.insertvalue %9, %8[2 : i32] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%11 = llvm.call @getSizes(%1) : (!llvm<"i8*">) -> !llvm<"i64*">
%12 = llvm.call @getStrides(%1) : (!llvm<"i8*">) -> !llvm<"i64*">
%13 = llvm.mlir.constant(0 : i64) : !llvm.i64
%14 = llvm.getelementptr %11[%13] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
%15 = llvm.load %14 : !llvm<"i64*">
%16 = llvm.insertvalue %15, %10[3, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%17 = llvm.getelementptr %11[%13] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
%18 = llvm.load %17 : !llvm<"i64*">
%19 = llvm.insertvalue %18, %16[4, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%20 = llvm.mlir.constant(1 : i64) : !llvm.i64
%21 = llvm.getelementptr %11[%20] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
%22 = llvm.load %21 : !llvm<"i64*">
%23 = llvm.insertvalue %22, %19[3, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%24 = llvm.getelementptr %11[%20] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
%25 = llvm.load %24 : !llvm<"i64*">
%26 = llvm.insertvalue %25, %23[4, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
llvm.store %26, %3 : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%27 = llvm.mlir.constant(1 : i32) : !llvm.i32
%28 = llvm.call @getDynMemRef(%arg0, %27) : (!llvm<"i8*">, !llvm.i32) -> !llvm<"i8*">
%29 = llvm.mlir.constant(1 : i32) : !llvm.i32
%30 = llvm.alloca %29 x !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }"> : (!llvm.i32) -> !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%31 = llvm.load %30 : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%32 = llvm.call @getData(%28) : (!llvm<"i8*">) -> !llvm<"i8*">
%33 = llvm.bitcast %32 : !llvm<"i8*"> to !llvm<"float*">
%34 = llvm.insertvalue %33, %31[0 : i32] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%35 = llvm.insertvalue %33, %34[1 : i32] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%36 = llvm.mlir.constant(0 : i64) : !llvm.i64
%37 = llvm.insertvalue %36, %35[2 : i32] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%38 = llvm.call @getSizes(%28) : (!llvm<"i8*">) -> !llvm<"i64*">
%39 = llvm.call @getStrides(%28) : (!llvm<"i8*">) -> !llvm<"i64*">
%40 = llvm.mlir.constant(0 : i64) : !llvm.i64
%41 = llvm.getelementptr %38[%40] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
%42 = llvm.load %41 : !llvm<"i64*">
%43 = llvm.insertvalue %42, %37[3, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%44 = llvm.getelementptr %38[%40] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
%45 = llvm.load %44 : !llvm<"i64*">
%46 = llvm.insertvalue %45, %43[4, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%47 = llvm.mlir.constant(1 : i64) : !llvm.i64
%48 = llvm.getelementptr %38[%47] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
%49 = llvm.load %48 : !llvm<"i64*">
%50 = llvm.insertvalue %49, %46[3, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%51 = llvm.getelementptr %38[%47] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
%52 = llvm.load %51 : !llvm<"i64*">
%53 = llvm.insertvalue %52, %50[4, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
llvm.store %53, %30 : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%54 = llvm.mlir.constant(2 : i32) : !llvm.i32
%55 = llvm.call @getDynMemRef(%arg0, %54) : (!llvm<"i8*">, !llvm.i32) -> !llvm<"i8*">
%56 = llvm.mlir.constant(1 : i32) : !llvm.i32
%57 = llvm.alloca %56 x !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }"> : (!llvm.i32) -> !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%58 = llvm.load %57 : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%59 = llvm.call @getData(%55) : (!llvm<"i8*">) -> !llvm<"i8*">
%60 = llvm.bitcast %59 : !llvm<"i8*"> to !llvm<"float*">
%61 = llvm.insertvalue %60, %58[0 : i32] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%62 = llvm.insertvalue %60, %61[1 : i32] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%63 = llvm.mlir.constant(0 : i64) : !llvm.i64
%64 = llvm.insertvalue %63, %62[2 : i32] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%65 = llvm.call @getSizes(%55) : (!llvm<"i8*">) -> !llvm<"i64*">
%66 = llvm.call @getStrides(%55) : (!llvm<"i8*">) -> !llvm<"i64*">
%67 = llvm.mlir.constant(0 : i64) : !llvm.i64
%68 = llvm.getelementptr %65[%67] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
%69 = llvm.load %68 : !llvm<"i64*">
%70 = llvm.insertvalue %69, %64[3, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%71 = llvm.getelementptr %65[%67] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
%72 = llvm.load %71 : !llvm<"i64*">
%73 = llvm.insertvalue %72, %70[4, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%74 = llvm.mlir.constant(1 : i64) : !llvm.i64
%75 = llvm.getelementptr %65[%74] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
%76 = llvm.load %75 : !llvm<"i64*">
%77 = llvm.insertvalue %76, %73[3, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%78 = llvm.getelementptr %65[%74] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
%79 = llvm.load %78 : !llvm<"i64*">
%80 = llvm.insertvalue %79, %77[4, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
llvm.store %80, %57 : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">
%81 = llvm.call @_mlir_ciface_main_graph(%3, %30, %57) : (!llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">, !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">, !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }*">) -> !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%82 = llvm.call @createOrderedDynMemRefDict() : () -> !llvm<"i8*">
%83 = llvm.mlir.constant(2 : i32) : !llvm.i32
%84 = llvm.call @createDynMemRef(%83) : (!llvm.i32) -> !llvm<"i8*">
%85 = llvm.extractvalue %81[0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%86 = llvm.bitcast %85 : !llvm<"float*"> to !llvm<"i8*">
%87 = llvm.call @setData(%84, %86) : (!llvm<"i8*">, !llvm<"i8*">) -> !llvm.void
%88 = llvm.call @getSizes(%84) : (!llvm<"i8*">) -> !llvm<"i64*">
%89 = llvm.call @getStrides(%84) : (!llvm<"i8*">) -> !llvm<"i64*">
%90 = llvm.mlir.constant(0 : i64) : !llvm.i64
%91 = llvm.extractvalue %81[3, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%92 = llvm.getelementptr %88[%90] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
llvm.store %91, %92 : !llvm<"i64*">
%93 = llvm.extractvalue %81[4, 0] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%94 = llvm.getelementptr %89[%90] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
llvm.store %93, %94 : !llvm<"i64*">
%95 = llvm.mlir.constant(1 : i64) : !llvm.i64
%96 = llvm.extractvalue %81[3, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%97 = llvm.getelementptr %88[%95] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
llvm.store %96, %97 : !llvm<"i64*">
%98 = llvm.extractvalue %81[4, 1] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">
%99 = llvm.getelementptr %89[%95] : (!llvm<"i64*">, !llvm.i64) -> !llvm<"i64*">
llvm.store %98, %99 : !llvm<"i64*">
%100 = llvm.mlir.constant(0 : i32) : !llvm.i32
%101 = llvm.call @setDynMemRef(%82, %100, %84) : (!llvm<"i8*">, !llvm.i32, !llvm<"i8*">) -> !llvm.void
llvm.return %82 : !llvm<"i8*">
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment