@@ -104,15 +104,15 @@ func.func @memref_load_i4_dynamic(%arg0: index, %arg1 : index, %arg2 : index, %a
104104 %1 = memref.load %0 [%arg2 , %arg3 ] : memref <?x?xi4 >
105105 return %1 : i4
106106}
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)>
108108// CHECK-DAG: #[[MAP1:.+]] = affine_map<()[s0, s1, s2] -> ((s2 + s0 * s1) floordiv 2)>
109109// CHECK-DAG: #[[MAP2:.+]] = affine_map<()[s0, s1, s2] -> ((s0 * s1) * 4 + s2 * 4 - ((s2 + s0 * s1) floordiv 2) * 8)>
110110// CHECK: func @memref_load_i4_dynamic(
111111// CHECK-SAME: %[[ARG0:[a-zA-Z0-9]+]]: index
112112// CHECK-SAME: %[[ARG1:[a-zA-Z0-9]+]]: index
113113// CHECK-SAME: %[[ARG2:[a-zA-Z0-9]+]]: index
114114// 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]]]
116116// CHECK: %[[ALLOC:.+]] = memref.alloc(%[[SIZE]])
117117// CHECK: %[[INDEX:.+]] = affine.apply #[[MAP1]]()[%[[ARG2]], %[[ARG1]], %[[ARG3]]]
118118// CHECK: %[[LOAD:.+]] = memref.load %[[ALLOC]][%[[INDEX]]]
@@ -122,15 +122,15 @@ func.func @memref_load_i4_dynamic(%arg0: index, %arg1 : index, %arg2 : index, %a
122122// CHECK: %[[TRUNC:.+]] = arith.trunci %[[SHIFTRT]] : i8 to i4
123123// CHECK: return %[[TRUNC]]
124124
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)>
126126// CHECK32-DAG: #[[MAP1:.+]] = affine_map<()[s0, s1, s2] -> ((s2 + s0 * s1) floordiv 8)>
127127// CHECK32-DAG: #[[MAP2:.+]] = affine_map<()[s0, s1, s2] -> ((s0 * s1) * 4 + s2 * 4 - ((s2 + s0 * s1) floordiv 8) * 32)>
128128// CHECK32: func @memref_load_i4_dynamic(
129129// CHECK32-SAME: %[[ARG0:[a-zA-Z0-9]+]]: index
130130// CHECK32-SAME: %[[ARG1:[a-zA-Z0-9]+]]: index
131131// CHECK32-SAME: %[[ARG2:[a-zA-Z0-9]+]]: index
132132// 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]]]
134134// CHECK32: %[[ALLOC:.+]] = memref.alloc(%[[SIZE]])
135135// CHECK32: %[[INDEX:.+]] = affine.apply #[[MAP1]]()[%[[ARG2]], %[[ARG1]], %[[ARG3]]]
136136// CHECK32: %[[LOAD:.+]] = memref.load %[[ALLOC]][%[[INDEX]]]
@@ -399,7 +399,7 @@ func.func @memref_store_i4_dynamic(%arg0: index, %arg1 : index, %arg2 : index, %
399399 memref.store %arg4 , %0 [%arg2 , %arg3 ] : memref <?x?xi4 >
400400 return
401401}
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)>
403403// CHECK-DAG: #[[MAP1:.+]] = affine_map<()[s0, s1, s2] -> ((s2 + s0 * s1) floordiv 2)>
404404// CHECK-DAG: #[[MAP2:.+]] = affine_map<()[s0, s1, s2] -> ((s0 * s1) * 4 + s2 * 4 - ((s2 + s0 * s1) floordiv 2) * 8)>
405405// CHECK: func @memref_store_i4_dynamic(
@@ -408,7 +408,7 @@ func.func @memref_store_i4_dynamic(%arg0: index, %arg1 : index, %arg2 : index, %
408408// CHECK-SAME: %[[ARG2:[a-zA-Z0-9]+]]: index
409409// CHECK-SAME: %[[ARG3:[a-zA-Z0-9]+]]: index
410410// 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]]]
412412// CHECK-DAG: %[[ALLOC:.+]] = memref.alloc(%[[SIZE]]) : memref<?xi8>
413413// CHECK-DAG: %[[EXTUI:.+]] = arith.extui %[[ARG4]] : i4 to i8
414414// 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, %
423423// CHECK: %[[WRITE_RMW:.+]] = memref.atomic_rmw ori %[[SHIFTED_VAL]], %[[ALLOC]][%[[INDEX]]] : (i8, memref<?xi8>) -> i8
424424// CHECK: return
425425
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)>
427427// CHECK32-DAG: #[[MAP1:.+]] = affine_map<()[s0, s1, s2] -> ((s2 + s0 * s1) floordiv 8)>
428428// CHECK32-DAG: #[[MAP2:.+]] = affine_map<()[s0, s1, s2] -> ((s0 * s1) * 4 + s2 * 4 - ((s2 + s0 * s1) floordiv 8) * 32)>
429429// CHECK32: func @memref_store_i4_dynamic(
@@ -432,7 +432,7 @@ func.func @memref_store_i4_dynamic(%arg0: index, %arg1 : index, %arg2 : index, %
432432// CHECK32-SAME: %[[ARG2:[a-zA-Z0-9]+]]: index
433433// CHECK32-SAME: %[[ARG3:[a-zA-Z0-9]+]]: index
434434// 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]]]
436436// CHECK32-DAG: %[[ALLOC:.+]] = memref.alloc(%[[SIZE]]) : memref<?xi32>
437437// CHECK32-DAG: %[[EXTUI:.+]] = arith.extui %[[ARG4]] : i4 to i32
438438// CHECK32-DAG: %[[INDEX:.+]] = affine.apply #[[MAP1]]()[%[[ARG2]], %[[ARG1]], %[[ARG3]]]
0 commit comments