|
| 1 | +module attributes {llvm.data_layout = "", soda.bambu.container_module, soda.container_module, tf.versions = {bad_consumers = [], min_consumer = 0 : i32, producer = 1087 : i32}} { |
| 2 | + llvm.func @main_kernel(%arg0: !llvm.ptr<f32>, %arg1: !llvm.ptr<f32>, %arg2: !llvm.ptr<f32>) { |
| 3 | + %0 = llvm.mlir.undef : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 4 | + %1 = llvm.insertvalue %arg0, %0[0] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 5 | + %2 = llvm.insertvalue %arg0, %1[1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 6 | + %3 = llvm.mlir.constant(0 : index) : i64 |
| 7 | + %4 = llvm.insertvalue %3, %2[2] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 8 | + %5 = llvm.mlir.constant(1 : index) : i64 |
| 9 | + %6 = llvm.insertvalue %5, %4[3, 0] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 10 | + %7 = llvm.mlir.constant(32 : index) : i64 |
| 11 | + %8 = llvm.insertvalue %7, %6[4, 0] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 12 | + %9 = llvm.mlir.constant(4 : index) : i64 |
| 13 | + %10 = llvm.insertvalue %9, %8[3, 1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 14 | + %11 = llvm.mlir.constant(8 : index) : i64 |
| 15 | + %12 = llvm.insertvalue %11, %10[4, 1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 16 | + %13 = llvm.mlir.constant(8 : index) : i64 |
| 17 | + %14 = llvm.insertvalue %13, %12[3, 2] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 18 | + %15 = llvm.mlir.constant(1 : index) : i64 |
| 19 | + %16 = llvm.insertvalue %15, %14[4, 2] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 20 | + %17 = llvm.mlir.undef : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 21 | + %18 = llvm.insertvalue %arg1, %17[0] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 22 | + %19 = llvm.insertvalue %arg1, %18[1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 23 | + %20 = llvm.mlir.constant(0 : index) : i64 |
| 24 | + %21 = llvm.insertvalue %20, %19[2] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 25 | + %22 = llvm.mlir.constant(1 : index) : i64 |
| 26 | + %23 = llvm.insertvalue %22, %21[3, 0] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 27 | + %24 = llvm.mlir.constant(32 : index) : i64 |
| 28 | + %25 = llvm.insertvalue %24, %23[4, 0] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 29 | + %26 = llvm.mlir.constant(8 : index) : i64 |
| 30 | + %27 = llvm.insertvalue %26, %25[3, 1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 31 | + %28 = llvm.mlir.constant(4 : index) : i64 |
| 32 | + %29 = llvm.insertvalue %28, %27[4, 1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 33 | + %30 = llvm.mlir.constant(4 : index) : i64 |
| 34 | + %31 = llvm.insertvalue %30, %29[3, 2] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 35 | + %32 = llvm.mlir.constant(1 : index) : i64 |
| 36 | + %33 = llvm.insertvalue %32, %31[4, 2] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 37 | + %34 = llvm.mlir.undef : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 38 | + %35 = llvm.insertvalue %arg2, %34[0] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 39 | + %36 = llvm.insertvalue %arg2, %35[1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 40 | + %37 = llvm.mlir.constant(0 : index) : i64 |
| 41 | + %38 = llvm.insertvalue %37, %36[2] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 42 | + %39 = llvm.mlir.constant(1 : index) : i64 |
| 43 | + %40 = llvm.insertvalue %39, %38[3, 0] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 44 | + %41 = llvm.mlir.constant(16 : index) : i64 |
| 45 | + %42 = llvm.insertvalue %41, %40[4, 0] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 46 | + %43 = llvm.mlir.constant(4 : index) : i64 |
| 47 | + %44 = llvm.insertvalue %43, %42[3, 1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 48 | + %45 = llvm.mlir.constant(4 : index) : i64 |
| 49 | + %46 = llvm.insertvalue %45, %44[4, 1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 50 | + %47 = llvm.mlir.constant(4 : index) : i64 |
| 51 | + %48 = llvm.insertvalue %47, %46[3, 2] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 52 | + %49 = llvm.mlir.constant(1 : index) : i64 |
| 53 | + %50 = llvm.insertvalue %49, %48[4, 2] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 54 | + %51 = llvm.mlir.constant(8 : index) : i64 |
| 55 | + %52 = llvm.mlir.constant(4 : index) : i64 |
| 56 | + %53 = llvm.mlir.constant(1 : index) : i64 |
| 57 | + %54 = llvm.mlir.constant(0 : index) : i64 |
| 58 | + llvm.br ^bb1(%54 : i64) |
| 59 | + ^bb1(%55: i64): // 2 preds: ^bb0, ^bb6 |
| 60 | + %56 = llvm.icmp "slt" %55, %52 : i64 |
| 61 | + llvm.cond_br %56, ^bb2(%54 : i64), ^bb7 |
| 62 | + ^bb2(%57: i64): // 2 preds: ^bb1, ^bb5 |
| 63 | + %58 = llvm.icmp "slt" %57, %52 : i64 |
| 64 | + llvm.cond_br %58, ^bb3(%54 : i64), ^bb6 |
| 65 | + ^bb3(%59: i64): // 2 preds: ^bb2, ^bb4 |
| 66 | + %60 = llvm.icmp "slt" %59, %51 : i64 |
| 67 | + llvm.cond_br %60, ^bb4, ^bb5 |
| 68 | + ^bb4: // pred: ^bb3 |
| 69 | + %61 = llvm.extractvalue %16[1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 70 | + %62 = llvm.mlir.constant(32 : index) : i64 |
| 71 | + %63 = llvm.mul %54, %62 : i64 |
| 72 | + %64 = llvm.mlir.constant(8 : index) : i64 |
| 73 | + %65 = llvm.mul %55, %64 : i64 |
| 74 | + %66 = llvm.add %63, %65 : i64 |
| 75 | + %67 = llvm.add %66, %59 : i64 |
| 76 | + %68 = llvm.getelementptr %61[%67] : (!llvm.ptr<f32>, i64) -> !llvm.ptr<f32> |
| 77 | + %69 = llvm.load %68 : !llvm.ptr<f32> |
| 78 | + %70 = llvm.extractvalue %33[1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 79 | + %71 = llvm.mlir.constant(32 : index) : i64 |
| 80 | + %72 = llvm.mul %54, %71 : i64 |
| 81 | + %73 = llvm.mlir.constant(4 : index) : i64 |
| 82 | + %74 = llvm.mul %59, %73 : i64 |
| 83 | + %75 = llvm.add %72, %74 : i64 |
| 84 | + %76 = llvm.add %75, %57 : i64 |
| 85 | + %77 = llvm.getelementptr %70[%76] : (!llvm.ptr<f32>, i64) -> !llvm.ptr<f32> |
| 86 | + %78 = llvm.load %77 : !llvm.ptr<f32> |
| 87 | + %79 = llvm.extractvalue %50[1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 88 | + %80 = llvm.mlir.constant(16 : index) : i64 |
| 89 | + %81 = llvm.mul %54, %80 : i64 |
| 90 | + %82 = llvm.mlir.constant(4 : index) : i64 |
| 91 | + %83 = llvm.mul %55, %82 : i64 |
| 92 | + %84 = llvm.add %81, %83 : i64 |
| 93 | + %85 = llvm.add %84, %57 : i64 |
| 94 | + %86 = llvm.getelementptr %79[%85] : (!llvm.ptr<f32>, i64) -> !llvm.ptr<f32> |
| 95 | + %87 = llvm.load %86 : !llvm.ptr<f32> |
| 96 | + %88 = llvm.fmul %69, %78 : f32 |
| 97 | + %89 = llvm.fadd %87, %88 : f32 |
| 98 | + %90 = llvm.extractvalue %50[1] : !llvm.struct<(ptr<f32>, ptr<f32>, i64, array<3 x i64>, array<3 x i64>)> |
| 99 | + %91 = llvm.mlir.constant(16 : index) : i64 |
| 100 | + %92 = llvm.mul %54, %91 : i64 |
| 101 | + %93 = llvm.mlir.constant(4 : index) : i64 |
| 102 | + %94 = llvm.mul %55, %93 : i64 |
| 103 | + %95 = llvm.add %92, %94 : i64 |
| 104 | + %96 = llvm.add %95, %57 : i64 |
| 105 | + %97 = llvm.getelementptr %90[%96] : (!llvm.ptr<f32>, i64) -> !llvm.ptr<f32> |
| 106 | + llvm.store %89, %97 : !llvm.ptr<f32> |
| 107 | + %98 = llvm.add %59, %53 : i64 |
| 108 | + llvm.br ^bb3(%98 : i64) |
| 109 | + ^bb5: // pred: ^bb3 |
| 110 | + %99 = llvm.add %57, %53 : i64 |
| 111 | + llvm.br ^bb2(%99 : i64) |
| 112 | + ^bb6: // pred: ^bb2 |
| 113 | + %100 = llvm.add %55, %53 : i64 |
| 114 | + llvm.br ^bb1(%100 : i64) |
| 115 | + ^bb7: // pred: ^bb1 |
| 116 | + llvm.return |
| 117 | + } |
| 118 | +} |
| 119 | + |
0 commit comments