Skip to content

Commit 548dfb6

Browse files
committed
Fixes from errors in source and formats #20
1 parent 8033bc9 commit 548dfb6

File tree

6 files changed

+630
-153
lines changed

6 files changed

+630
-153
lines changed

bcsr.mlir

+156
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
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

Comments
 (0)