@@ -63,41 +63,6 @@ func.func @fold_one_loop2(%arg0: memref<?xi32>, %arg1: index, %arg2: index) {
6363// CHECK: %[[I6:.*]] = arith.muli %[[I5]], %[[I5]] : i32
6464// CHECK: memref.store %[[I6]], %[[ARG0]]{{\[}}%[[I]]
6565
66- func.func @fold_one_loop3 (%arg0: memref <?xi32 >, %arg1: index , %arg2: index ) {
67- %c0 = arith.constant 0 : index
68- %c1 = arith.constant 1 : index
69- %c4 = arith.constant 4 : index
70- %c10 = arith.constant 10 : index
71- scf.for %j = %c0 to %c10 step %c1 {
72- scf.for %i = %c1 to %arg1 step %c1 {
73- %0 = arith.addi %arg2 , %i : index
74- %1 = arith.muli %0 , %c4 : index
75- %2 = memref.load %arg0 [%1 ] : memref <?xi32 >
76- %3 = arith.muli %2 , %2 : i32
77- memref.store %3 , %arg0 [%1 ] : memref <?xi32 >
78- }
79- }
80- return
81- }
82-
83- // CHECK-LABEL: func @fold_one_loop3
84- // CHECK-SAME: (%[[ARG0:.*]]: {{.*}}, %[[ARG1:.*]]: {{.*}}, %[[ARG2:.*]]: {{.*}}
85- // CHECK: %[[C0:.*]] = arith.constant 0 : index
86- // CHECK: %[[C1:.*]] = arith.constant 1 : index
87- // CHECK: %[[C4:.*]] = arith.constant 4 : index
88- // CHECK: %[[C10:.*]] = arith.constant 10 : index
89- // CHECK: scf.for %[[J:.*]] = %[[C0]] to %[[C10]] step %[[C1]] {
90- // CHECK: %[[I0:.*]] = arith.addi %[[ARG2]], %[[C1]] : index
91- // CHECK: %[[I1:.*]] = arith.addi %[[ARG2]], %[[ARG1]] : index
92- // CHECK: %[[I2:.*]] = arith.muli %[[I0]], %[[C4]] : index
93- // CHECK: %[[I3:.*]] = arith.muli %[[I1]], %[[C4]] : index
94- // CHECK: %[[I4:.*]] = arith.muli %[[C1]], %[[C4]] : index
95- // CHECK: scf.for %[[I:.*]] = %[[I2]] to %[[I3]] step %[[I4]] {
96- // CHECK: %[[I5:.*]] = memref.load %[[ARG0]]{{\[}}%[[I]]
97- // CHECK: %[[I6:.*]] = arith.muli %[[I5]], %[[I5]] : i32
98- // CHECK: memref.store %[[I6]], %[[ARG0]]{{\[}}%[[I]]
99-
100-
10166func.func @fold_two_loops (%arg0: memref <?xi32 >, %arg1: index , %arg2: index ) {
10267 %c0 = arith.constant 0 : index
10368 %c1 = arith.constant 1 : index
0 commit comments