|
3 | 3 | // This file tests whether the memref type having non-trivial map layouts
|
4 | 4 | // are normalized to trivial (identity) layouts.
|
5 | 5 |
|
| 6 | +// CHECK-DAG: #[[$REDUCE_MAP1:.*]] = affine_map<(d0, d1) -> ((d0 mod 2) * 2 + d1 mod 2 + (d0 floordiv 2) * 4 + (d1 floordiv 2) * 8)> |
| 7 | +// CHECK-DAG: #[[$REDUCE_MAP2:.*]] = affine_map<(d0, d1) -> (d0 mod 2 + (d1 mod 2) * 2 + (d0 floordiv 2) * 8 + (d1 floordiv 2) * 4)> |
| 8 | +// CHECK-DAG: #[[$REDUCE_MAP3:.*]] = affine_map<(d0, d1) -> (d0 * 4 + d1)> |
| 9 | + |
6 | 10 | // CHECK-LABEL: func @permute()
|
7 | 11 | func.func @permute() {
|
8 | 12 | %A = memref.alloc() : memref<64x256xf32, affine_map<(d0, d1) -> (d1, d0)>>
|
@@ -380,13 +384,13 @@ func.func @memref_load_with_reduction_map(%arg0 : memref<4x4xf32,#map2>) -> ()
|
380 | 384 | affine.for %i = 0 to 4 {
|
381 | 385 | affine.for %j = 0 to 8 {
|
382 | 386 | affine.for %k = 0 to 8 {
|
383 |
| - // CHECK: %[[INDEX0:.*]] = affine.apply #map{{.*}}(%{{.*}}, %{{.*}}) |
| 387 | + // CHECK: %[[INDEX0:.*]] = affine.apply #[[$REDUCE_MAP1]](%{{.*}}, %{{.*}}) |
384 | 388 | // CHECK: memref.load %alloc[%[[INDEX0]]] : memref<32xf32>
|
385 | 389 | %a = memref.load %0[%i, %k] : memref<4x8xf32,#map0>
|
386 |
| - // CHECK: %[[INDEX1:.*]] = affine.apply #map{{.*}}(%{{.*}}, %{{.*}}) |
| 390 | + // CHECK: %[[INDEX1:.*]] = affine.apply #[[$REDUCE_MAP2]](%{{.*}}, %{{.*}}) |
387 | 391 | // CHECK: memref.load %alloc_0[%[[INDEX1]]] : memref<32xf32>
|
388 | 392 | %b = memref.load %1[%k, %j] :memref<8x4xf32,#map1>
|
389 |
| - // CHECK: %[[INDEX2:.*]] = affine.apply #map{{.*}}(%{{.*}}, %{{.*}}) |
| 393 | + // CHECK: %[[INDEX2:.*]] = affine.apply #[[$REDUCE_MAP3]](%{{.*}}, %{{.*}}) |
390 | 394 | // CHECK: memref.load %alloc_1[%[[INDEX2]]] : memref<16xf32>
|
391 | 395 | %c = memref.load %2[%i, %j] : memref<4x4xf32,#map2>
|
392 | 396 | %3 = arith.mulf %a, %b : f32
|
|
0 commit comments