|
| 1 | +module { |
| 2 | + func.func @main() { |
| 3 | + %cst = arith.constant 1.000000e+00 : f64 |
| 4 | + %cst_0 = arith.constant 0.000000e+00 : f64 |
| 5 | + %c10 = arith.constant 10 : index |
| 6 | + %c9 = arith.constant 9 : index |
| 7 | + %c8 = arith.constant 8 : index |
| 8 | + %c7 = arith.constant 7 : index |
| 9 | + %c6 = arith.constant 6 : index |
| 10 | + %c5 = arith.constant 5 : index |
| 11 | + %c1_i32 = arith.constant 1 : i32 |
| 12 | + %c0_i32 = arith.constant 0 : i32 |
| 13 | + %c3 = arith.constant 3 : index |
| 14 | + %c2 = arith.constant 2 : index |
| 15 | + %c0 = arith.constant 0 : index |
| 16 | + %c1 = arith.constant 1 : index |
| 17 | + %c4 = arith.constant 4 : index |
| 18 | + %alloc = memref.alloc() : memref<13xindex> |
| 19 | + %cast = memref.cast %alloc : memref<13xindex> to memref<*xindex> |
| 20 | + call @read_input_sizes_2D_f64(%c0_i32, %c0, %c0, %c2, %c0, %cast, %c1_i32) {filename = "SPARSE_FILE_NAME0"} : (i32, index, index, index, index, memref<*xindex>, i32) -> () |
| 21 | + %0 = memref.load %alloc[%c0] : memref<13xindex> |
| 22 | + %1 = memref.load %alloc[%c1] : memref<13xindex> |
| 23 | + %2 = memref.load %alloc[%c2] : memref<13xindex> |
| 24 | + %3 = memref.load %alloc[%c3] : memref<13xindex> |
| 25 | + %4 = memref.load %alloc[%c4] : memref<13xindex> |
| 26 | + %5 = memref.load %alloc[%c5] : memref<13xindex> |
| 27 | + %6 = memref.load %alloc[%c6] : memref<13xindex> |
| 28 | + %7 = memref.load %alloc[%c7] : memref<13xindex> |
| 29 | + %8 = memref.load %alloc[%c8] : memref<13xindex> |
| 30 | + %9 = memref.load %alloc[%c9] : memref<13xindex> |
| 31 | + %10 = memref.load %alloc[%c10] : memref<13xindex> |
| 32 | + %alloc_1 = memref.alloc(%0) : memref<?xindex> |
| 33 | + scf.for %arg0 = %c0 to %0 step %c1 { |
| 34 | + memref.store %c0, %alloc_1[%arg0] : memref<?xindex> |
| 35 | + } |
| 36 | + %cast_2 = memref.cast %alloc_1 : memref<?xindex> to memref<*xindex> |
| 37 | + %alloc_3 = memref.alloc(%1) : memref<?xindex> |
| 38 | + scf.for %arg0 = %c0 to %1 step %c1 { |
| 39 | + memref.store %c0, %alloc_3[%arg0] : memref<?xindex> |
| 40 | + } |
| 41 | + %cast_4 = memref.cast %alloc_3 : memref<?xindex> to memref<*xindex> |
| 42 | + %alloc_5 = memref.alloc(%2) : memref<?xindex> |
| 43 | + scf.for %arg0 = %c0 to %2 step %c1 { |
| 44 | + memref.store %c0, %alloc_5[%arg0] : memref<?xindex> |
| 45 | + } |
| 46 | + %cast_6 = memref.cast %alloc_5 : memref<?xindex> to memref<*xindex> |
| 47 | + %alloc_7 = memref.alloc(%3) : memref<?xindex> |
| 48 | + scf.for %arg0 = %c0 to %3 step %c1 { |
| 49 | + memref.store %c0, %alloc_7[%arg0] : memref<?xindex> |
| 50 | + } |
| 51 | + %cast_8 = memref.cast %alloc_7 : memref<?xindex> to memref<*xindex> |
| 52 | + %alloc_9 = memref.alloc(%4) : memref<?xindex> |
| 53 | + scf.for %arg0 = %c0 to %4 step %c1 { |
| 54 | + memref.store %c0, %alloc_9[%arg0] : memref<?xindex> |
| 55 | + } |
| 56 | + %cast_10 = memref.cast %alloc_9 : memref<?xindex> to memref<*xindex> |
| 57 | + %alloc_11 = memref.alloc(%5) : memref<?xindex> |
| 58 | + scf.for %arg0 = %c0 to %5 step %c1 { |
| 59 | + memref.store %c0, %alloc_11[%arg0] : memref<?xindex> |
| 60 | + } |
| 61 | + %cast_12 = memref.cast %alloc_11 : memref<?xindex> to memref<*xindex> |
| 62 | + %alloc_13 = memref.alloc(%6) : memref<?xindex> |
| 63 | + scf.for %arg0 = %c0 to %6 step %c1 { |
| 64 | + memref.store %c0, %alloc_13[%arg0] : memref<?xindex> |
| 65 | + } |
| 66 | + %cast_14 = memref.cast %alloc_13 : memref<?xindex> to memref<*xindex> |
| 67 | + %alloc_15 = memref.alloc(%7) : memref<?xindex> |
| 68 | + scf.for %arg0 = %c0 to %7 step %c1 { |
| 69 | + memref.store %c0, %alloc_15[%arg0] : memref<?xindex> |
| 70 | + } |
| 71 | + %cast_16 = memref.cast %alloc_15 : memref<?xindex> to memref<*xindex> |
| 72 | + %alloc_17 = memref.alloc(%8) : memref<?xf64> |
| 73 | + scf.for %arg0 = %c0 to %8 step %c1 { |
| 74 | + memref.store %cst_0, %alloc_17[%arg0] : memref<?xf64> |
| 75 | + } |
| 76 | + %cast_18 = memref.cast %alloc_17 : memref<?xf64> to memref<*xf64> |
| 77 | + call @read_input_2D_f64(%c0_i32, %c0, %c0, %c2, %c0, %cast_2, %cast_4, %cast_6, %cast_8, %cast_10, %cast_12, %cast_14, %cast_16, %cast_18, %c1_i32) {filename = "SPARSE_FILE_NAME0"} : (i32, index, index, index, index, memref<*xindex>, memref<*xindex>, memref<*xindex>, memref<*xindex>, memref<*xindex>, memref<*xindex>, memref<*xindex>, memref<*xindex>, memref<*xf64>, i32) -> () |
| 78 | + %alloc_19 = memref.alloc(%9) {alignment = 32 : i64} : memref<4x?xf64> |
| 79 | + %alloc_20 = memref.alloc(%10) {alignment = 32 : i64} : memref<4x?xf64> |
| 80 | + linalg.fill ins(%cst : f64) outs(%alloc_19 : memref<4x?xf64>) |
| 81 | + linalg.fill ins(%cst_0 : f64) outs(%alloc_20 : memref<4x?xf64>) |
| 82 | + |
| 83 | + //;scf.for %arg0 = %c0 to %c4 step %c1 { |
| 84 | + //; scf.for %arg1 = %c0 to %9 step %c1 { |
| 85 | + //; %11 = memref.load %alloc_9[%c0] : memref<?xindex> |
| 86 | + //; %12 = memref.load %alloc_9[%c1] : memref<?xindex> |
| 87 | + //; scf.for %arg2 = %11 to %12 step %c1 { |
| 88 | + //; %13 = memref.load %alloc_11[%arg2] : memref<?xindex> |
| 89 | + //; %14 = memref.load %alloc_19[%arg0, %arg1] : memref<4x?xf64> |
| 90 | + //; %15 = memref.load %alloc_17[%arg2] : memref<?xf64> |
| 91 | + //; %16 = memref.load %alloc_20[%arg0, %13] : memref<4x?xf64> |
| 92 | + //; %17 = arith.mulf %14, %15 : f64 |
| 93 | + //; %18 = arith.addf %16, %17 : f64 |
| 94 | + //; memref.store %18, %alloc_20[%arg0, %13] : memref<4x?xf64> |
| 95 | + //; } |
| 96 | + //; } |
| 97 | + //;} |
| 98 | + |
| 99 | + %c_A1_pos = memref.load %alloc_1[%c0] : memref<?xindex> |
| 100 | + %c_A1_block = memref.load %alloc_5[%c0] : memref<?xindex> |
| 101 | + %c_A2_block = memref.load %alloc_13[%c0] : memref<?xindex> |
| 102 | + |
| 103 | + scf.for %n1 = %c0 to %c_A1_pos step %c1 { |
| 104 | + scf.for %bi = %c0 to %c_A1_block step %c1 { |
| 105 | + %n1_next = arith.addi %n1, %c1 : index |
| 106 | + %11 = memref.load %alloc_9[%n1] : memref<?xindex> |
| 107 | + %12 = memref.load %alloc_9[%n1_next] : memref<?xindex> |
| 108 | + scf.for %n2 = %11 to %12 step %c1 { |
| 109 | + scf.for %bj = %c0 to %c_A2_block step %c1 { |
| 110 | + %i1 = arith.muli %n1, %c_A1_block : index |
| 111 | + %i = arith.addi %i1, %bi : index |
| 112 | + |
| 113 | + %13 = memref.load %alloc_11[%n2] : memref<?xindex> |
| 114 | + %j1 = arith.muli %13, %c_A2_block : index |
| 115 | + %j = arith.addi %j1, %bj : index |
| 116 | + |
| 117 | + %p1 = arith.muli %c_A1_block, %c_A2_block : index |
| 118 | + %p2 = arith.muli %p1, %n2 : index |
| 119 | + %p3 = arith.muli %bi, %c_A2_block : index |
| 120 | + %p4 = arith.addi %p2, %p3 : index |
| 121 | + %p = arith.addi %p4, %bj : index |
| 122 | + |
| 123 | + scf.for %k = %c0 to %c6 step %c1 { |
| 124 | + %14 = memref.load %alloc_19[%j, %k] : memref<4x?xf64> |
| 125 | + %15 = memref.load %alloc_17[%p] : memref<?xf64> |
| 126 | + %16 = memref.load %alloc_20[%i, %k] : memref<4x?xf64> |
| 127 | + %17 = arith.mulf %14, %15 : f64 |
| 128 | + %18 = arith.addf %16, %17 : f64 |
| 129 | + memref.store %18, %alloc_20[%i, %k] : memref<4x?xf64> |
| 130 | + } |
| 131 | + } |
| 132 | + } |
| 133 | + } |
| 134 | + } |
| 135 | + |
| 136 | + %cast_21 = memref.cast %alloc_19 : memref<4x?xf64> to memref<*xf64> |
| 137 | + call @comet_print_memref_f64(%cast_21) : (memref<*xf64>) -> () |
| 138 | + call @comet_print_memref_i64(%cast_2) : (memref<*xindex>) -> () |
| 139 | + call @comet_print_memref_i64(%cast_4) : (memref<*xindex>) -> () |
| 140 | + call @comet_print_memref_i64(%cast_6) : (memref<*xindex>) -> () |
| 141 | + call @comet_print_memref_i64(%cast_8) : (memref<*xindex>) -> () |
| 142 | + call @comet_print_memref_i64(%cast_10) : (memref<*xindex>) -> () |
| 143 | + call @comet_print_memref_i64(%cast_12) : (memref<*xindex>) -> () |
| 144 | + call @comet_print_memref_i64(%cast_14) : (memref<*xindex>) -> () |
| 145 | + call @comet_print_memref_i64(%cast_16) : (memref<*xindex>) -> () |
| 146 | + call @comet_print_memref_f64(%cast_18) : (memref<*xf64>) -> () |
| 147 | + %cast_22 = memref.cast %alloc_20 : memref<4x?xf64> to memref<*xf64> |
| 148 | + call @comet_print_memref_f64(%cast_22) : (memref<*xf64>) -> () |
| 149 | + return |
| 150 | + } |
| 151 | + func.func private @read_input_2D_f64(i32, index, index, index, index, memref<*xindex>, memref<*xindex>, memref<*xindex>, memref<*xindex>, memref<*xindex>, memref<*xindex>, memref<*xindex>, memref<*xindex>, memref<*xf64>, i32) |
| 152 | + func.func private @read_input_sizes_2D_f64(i32, index, index, index, index, memref<*xindex>, i32) |
| 153 | + func.func private @comet_sort_index(memref<*xindex>, index, index) |
| 154 | + func.func private @comet_print_memref_f64(memref<*xf64>) |
| 155 | + func.func private @comet_print_memref_i64(memref<*xindex>) |
| 156 | +} |
0 commit comments