@@ -104,15 +104,15 @@ func.func @memref_load_i4_dynamic(%arg0: index, %arg1 : index, %arg2 : index, %a
104
104
%1 = memref.load %0 [%arg2 , %arg3 ] : memref <?x?xi4 >
105
105
return %1 : i4
106
106
}
107
- // CHECK-DAG: #[[MAP0:.+]] = affine_map<()[s0, s1] -> ((s0 * s1) floordiv 2)>
107
+ // CHECK-DAG: #[[MAP0:.+]] = affine_map<()[s0, s1, s2 ] -> ((s0 * s1) floordiv 2, s2 floordiv 2)>
108
108
// CHECK-DAG: #[[MAP1:.+]] = affine_map<()[s0, s1, s2] -> ((s2 + s0 * s1) floordiv 2)>
109
109
// CHECK-DAG: #[[MAP2:.+]] = affine_map<()[s0, s1, s2] -> ((s0 * s1) * 4 + s2 * 4 - ((s2 + s0 * s1) floordiv 2) * 8)>
110
110
// CHECK: func @memref_load_i4_dynamic(
111
111
// CHECK-SAME: %[[ARG0:[a-zA-Z0-9]+]]: index
112
112
// CHECK-SAME: %[[ARG1:[a-zA-Z0-9]+]]: index
113
113
// CHECK-SAME: %[[ARG2:[a-zA-Z0-9]+]]: index
114
114
// CHECK-SAME: %[[ARG3:[a-zA-Z0-9]+]]: index
115
- // CHECK: %[[SIZE:.+]] = affine.apply #[[MAP0]]()[%[[ARG0]], %[[ARG1]]]
115
+ // CHECK: %[[SIZE:.+]] = affine.max #[[MAP0]]()[%[[ARG1]], %[[ARG0]], %[[ARG1]]]
116
116
// CHECK: %[[ALLOC:.+]] = memref.alloc(%[[SIZE]])
117
117
// CHECK: %[[INDEX:.+]] = affine.apply #[[MAP1]]()[%[[ARG2]], %[[ARG1]], %[[ARG3]]]
118
118
// CHECK: %[[LOAD:.+]] = memref.load %[[ALLOC]][%[[INDEX]]]
@@ -122,15 +122,15 @@ func.func @memref_load_i4_dynamic(%arg0: index, %arg1 : index, %arg2 : index, %a
122
122
// CHECK: %[[TRUNC:.+]] = arith.trunci %[[SHIFTRT]] : i8 to i4
123
123
// CHECK: return %[[TRUNC]]
124
124
125
- // CHECK32-DAG: #[[MAP0:.+]] = affine_map<()[s0, s1] -> ((s0 * s1) floordiv 8)>
125
+ // CHECK32-DAG: #[[MAP0:.+]] = affine_map<()[s0, s1, s2 ] -> ((s0 * s1) floordiv 8, s2 floordiv 8)>
126
126
// CHECK32-DAG: #[[MAP1:.+]] = affine_map<()[s0, s1, s2] -> ((s2 + s0 * s1) floordiv 8)>
127
127
// CHECK32-DAG: #[[MAP2:.+]] = affine_map<()[s0, s1, s2] -> ((s0 * s1) * 4 + s2 * 4 - ((s2 + s0 * s1) floordiv 8) * 32)>
128
128
// CHECK32: func @memref_load_i4_dynamic(
129
129
// CHECK32-SAME: %[[ARG0:[a-zA-Z0-9]+]]: index
130
130
// CHECK32-SAME: %[[ARG1:[a-zA-Z0-9]+]]: index
131
131
// CHECK32-SAME: %[[ARG2:[a-zA-Z0-9]+]]: index
132
132
// CHECK32-SAME: %[[ARG3:[a-zA-Z0-9]+]]: index
133
- // CHECK32: %[[SIZE:.+]] = affine.apply #[[MAP0]]()[%[[ARG0]], %[[ARG1]]]
133
+ // CHECK32: %[[SIZE:.+]] = affine.max #[[MAP0]]()[%[[ARG1]], %[[ARG0]], %[[ARG1]]]
134
134
// CHECK32: %[[ALLOC:.+]] = memref.alloc(%[[SIZE]])
135
135
// CHECK32: %[[INDEX:.+]] = affine.apply #[[MAP1]]()[%[[ARG2]], %[[ARG1]], %[[ARG3]]]
136
136
// CHECK32: %[[LOAD:.+]] = memref.load %[[ALLOC]][%[[INDEX]]]
@@ -399,7 +399,7 @@ func.func @memref_store_i4_dynamic(%arg0: index, %arg1 : index, %arg2 : index, %
399
399
memref.store %arg4 , %0 [%arg2 , %arg3 ] : memref <?x?xi4 >
400
400
return
401
401
}
402
- // CHECK-DAG: #[[MAP0:.+]] = affine_map<()[s0, s1] -> ((s0 * s1) floordiv 2)>
402
+ // CHECK-DAG: #[[MAP0:.+]] = affine_map<()[s0, s1, s2 ] -> ((s0 * s1) floordiv 2, s2 floordiv 2)>
403
403
// CHECK-DAG: #[[MAP1:.+]] = affine_map<()[s0, s1, s2] -> ((s2 + s0 * s1) floordiv 2)>
404
404
// CHECK-DAG: #[[MAP2:.+]] = affine_map<()[s0, s1, s2] -> ((s0 * s1) * 4 + s2 * 4 - ((s2 + s0 * s1) floordiv 2) * 8)>
405
405
// CHECK: func @memref_store_i4_dynamic(
@@ -408,7 +408,7 @@ func.func @memref_store_i4_dynamic(%arg0: index, %arg1 : index, %arg2 : index, %
408
408
// CHECK-SAME: %[[ARG2:[a-zA-Z0-9]+]]: index
409
409
// CHECK-SAME: %[[ARG3:[a-zA-Z0-9]+]]: index
410
410
// CHECK-SAME: %[[ARG4:[a-zA-Z0-9]+]]: i4
411
- // CHECK-DAG: %[[SIZE:.+]] = affine.apply #[[MAP0]]()[%[[ARG0]], %[[ARG1]]]
411
+ // CHECK-DAG: %[[SIZE:.+]] = affine.max #[[MAP0]]()[%[[ARG1]], %[[ARG0]], %[[ARG1]]]
412
412
// CHECK-DAG: %[[ALLOC:.+]] = memref.alloc(%[[SIZE]]) : memref<?xi8>
413
413
// CHECK-DAG: %[[EXTUI:.+]] = arith.extui %[[ARG4]] : i4 to i8
414
414
// CHECK-DAG: %[[INDEX:.+]] = affine.apply #[[MAP1]]()[%[[ARG2]], %[[ARG1]], %[[ARG3]]]
@@ -423,7 +423,7 @@ func.func @memref_store_i4_dynamic(%arg0: index, %arg1 : index, %arg2 : index, %
423
423
// CHECK: %[[WRITE_RMW:.+]] = memref.atomic_rmw ori %[[SHIFTED_VAL]], %[[ALLOC]][%[[INDEX]]] : (i8, memref<?xi8>) -> i8
424
424
// CHECK: return
425
425
426
- // CHECK32-DAG: #[[MAP0:.+]] = affine_map<()[s0, s1] -> ((s0 * s1) floordiv 8)>
426
+ // CHECK32-DAG: #[[MAP0:.+]] = affine_map<()[s0, s1, s2 ] -> ((s0 * s1) floordiv 8, s2 floordiv 8)>
427
427
// CHECK32-DAG: #[[MAP1:.+]] = affine_map<()[s0, s1, s2] -> ((s2 + s0 * s1) floordiv 8)>
428
428
// CHECK32-DAG: #[[MAP2:.+]] = affine_map<()[s0, s1, s2] -> ((s0 * s1) * 4 + s2 * 4 - ((s2 + s0 * s1) floordiv 8) * 32)>
429
429
// CHECK32: func @memref_store_i4_dynamic(
@@ -432,7 +432,7 @@ func.func @memref_store_i4_dynamic(%arg0: index, %arg1 : index, %arg2 : index, %
432
432
// CHECK32-SAME: %[[ARG2:[a-zA-Z0-9]+]]: index
433
433
// CHECK32-SAME: %[[ARG3:[a-zA-Z0-9]+]]: index
434
434
// CHECK32-SAME: %[[ARG4:[a-zA-Z0-9]+]]: i4
435
- // CHECK32-DAG: %[[SIZE:.+]] = affine.apply #[[MAP0]]()[%[[ARG0]], %[[ARG1]]]
435
+ // CHECK32-DAG: %[[SIZE:.+]] = affine.max #[[MAP0]]()[%[[ARG1]], %[[ARG0]], %[[ARG1]]]
436
436
// CHECK32-DAG: %[[ALLOC:.+]] = memref.alloc(%[[SIZE]]) : memref<?xi32>
437
437
// CHECK32-DAG: %[[EXTUI:.+]] = arith.extui %[[ARG4]] : i4 to i32
438
438
// CHECK32-DAG: %[[INDEX:.+]] = affine.apply #[[MAP1]]()[%[[ARG2]], %[[ARG1]], %[[ARG3]]]
0 commit comments