brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · 29a5f5e Raw
80 lines · plain
1// RUN: mlir-opt %s -pass-pipeline="builtin.module(func.func(test-memref-stride-calculation))" -o /dev/null | FileCheck %s2 3func.func @f(%0: index) {4// CHECK-LABEL: Testing: f5  %1 = memref.alloc() : memref<3x4x5xf32>6// CHECK: MemRefType offset: 0 strides: 20, 5, 17  %2 = memref.alloc(%0) : memref<3x4x?xf32>8// CHECK: MemRefType offset: 0 strides: ?, ?, 19  %3 = memref.alloc(%0) : memref<3x?x5xf32>10// CHECK: MemRefType offset: 0 strides: ?, 5, 111  %4 = memref.alloc(%0) : memref<?x4x5xf32>12// CHECK: MemRefType offset: 0 strides: 20, 5, 113  %5 = memref.alloc(%0, %0) : memref<?x4x?xf32>14// CHECK: MemRefType offset: 0 strides: ?, ?, 115  %6 = memref.alloc(%0, %0, %0) : memref<?x?x?xf32>16// CHECK: MemRefType offset: 0 strides: ?, ?, 117 18  %11 = memref.alloc() : memref<3x4x5xf32, affine_map<(i, j, k)->(i, j, k)>>19// CHECK: MemRefType offset: 0 strides: 20, 5, 120  %b11 = memref.alloc() : memref<3x4x5xf32, strided<[20, 5, 1], offset: 0>>21// CHECK: MemRefType offset: 0 strides: 20, 5, 122  %12 = memref.alloc(%0) : memref<3x4x?xf32, affine_map<(i, j, k)->(i, j, k)>>23// CHECK: MemRefType offset: 0 strides: ?, ?, 124  %13 = memref.alloc(%0) : memref<3x?x5xf32, affine_map<(i, j, k)->(i, j, k)>>25// CHECK: MemRefType offset: 0 strides: ?, 5, 126  %14 = memref.alloc(%0) : memref<?x4x5xf32, affine_map<(i, j, k)->(i, j, k)>>27// CHECK: MemRefType offset: 0 strides: 20, 5, 128  %15 = memref.alloc(%0, %0) : memref<?x4x?xf32, affine_map<(i, j, k)->(i, j, k)>>29// CHECK: MemRefType offset: 0 strides: ?, ?, 130  %16 = memref.alloc(%0, %0, %0) : memref<?x?x?xf32, affine_map<(i, j, k)->(i, j, k)>>31// CHECK: MemRefType offset: 0 strides: ?, ?, 132 33  %21 = memref.alloc()[%0] : memref<3x4x5xf32, affine_map<(i, j, k)[M]->(32 * i + 16 * j + M * k + 1)>>34// CHECK: MemRefType offset: 1 strides: 32, 16, ?35  %22 = memref.alloc()[%0] : memref<3x4x5xf32, affine_map<(i, j, k)[M]->(32 * i + M * j + 16 * k + 3)>>36// CHECK: MemRefType offset: 3 strides: 32, ?, 1637  %b22 = memref.alloc(%0)[%0, %0] : memref<3x4x?xf32, strided<[?, ?, 1], offset: 0>>38// CHECK: MemRefType offset: 0 strides: ?, ?, 139  %23 = memref.alloc(%0)[%0] : memref<3x?x5xf32, affine_map<(i, j, k)[M]->(M * i + 32 * j + 16 * k + 7)>>40// CHECK: MemRefType offset: 7 strides: ?, 32, 1641  %b23 = memref.alloc(%0)[%0] : memref<3x?x5xf32, strided<[?, 5, 1], offset: 0>>42// CHECK: MemRefType offset: 0 strides: ?, 5, 143  %24 = memref.alloc(%0)[%0] : memref<3x?x5xf32, affine_map<(i, j, k)[M]->(M * i + 32 * j + 16 * k + M)>>44// CHECK: MemRefType offset: ? strides: ?, 32, 1645  %b24 = memref.alloc(%0)[%0, %0] : memref<3x?x5xf32, strided<[?, 32, 16], offset: ?>>46// CHECK: MemRefType offset: ? strides: ?, 32, 1647  %25 = memref.alloc(%0, %0)[%0, %0] : memref<?x?x16xf32, affine_map<(i, j, k)[M, N]->(M * i + N * j + k + 1)>>48// CHECK: MemRefType offset: 1 strides: ?, ?, 149  %b25 = memref.alloc(%0, %0)[%0, %0] : memref<?x?x16xf32, strided<[?, ?, 1], offset: 1>>50// CHECK: MemRefType offset: 1 strides: ?, ?, 151  %26 = memref.alloc(%0)[] : memref<?xf32, affine_map<(i)[M]->(i)>>52// CHECK: MemRefType offset: 0 strides: 153  %27 = memref.alloc()[%0] : memref<5xf32, affine_map<(i)[M]->(M)>>54// CHECK: MemRefType offset: ? strides: 055  %28 = memref.alloc()[%0] : memref<5xf32, affine_map<(i)[M]->(123)>>56// CHECK: MemRefType offset: 123 strides: 057  %29 = memref.alloc()[%0] : memref<f32, affine_map<()[M]->(M)>>58// CHECK: MemRefType offset: ? strides:59  %30 = memref.alloc()[%0] : memref<f32, affine_map<()[M]->(123)>>60// CHECK: MemRefType offset: 123 strides:61 62  %101 = memref.alloc() : memref<3x4x5xf32, affine_map<(i, j, k)->(i floordiv 4 + j + k)>>63// CHECK: MemRefType memref<3x4x5xf32, affine_map<(d0, d1, d2) -> (d0 floordiv 4 + d1 + d2)>> cannot be converted to strided form64  %102 = memref.alloc() : memref<3x4x5xf32, affine_map<(i, j, k)->(i ceildiv 4 + j + k)>>65// CHECK: MemRefType memref<3x4x5xf32, affine_map<(d0, d1, d2) -> (d0 ceildiv 4 + d1 + d2)>> cannot be converted to strided form66  %103 = memref.alloc() : memref<3x4x5xf32, affine_map<(i, j, k)->(i mod 4 + j + k)>>67// CHECK: MemRefType memref<3x4x5xf32, affine_map<(d0, d1, d2) -> (d0 mod 4 + d1 + d2)>> cannot be converted to strided form68 69  %200 = memref.alloc()[%0, %0, %0] : memref<3x4x5xf32, affine_map<(i, j, k)[M, N, K]->(M * i + N * i + N * j + K * k - (M + N - 20)* i)>>70  // CHECK: MemRefType offset: 0 strides: 20, ?, ?71  %201 = memref.alloc()[%0, %0, %0] : memref<3x4x5xf32, affine_map<(i, j, k)[M, N, K]->(M * i + N * i + N * K * j + K * K * k - (M + N - 20) * (i + 1))>>72  // CHECK: MemRefType offset: ? strides: 20, ?, ?73  %202 = memref.alloc()[%0, %0, %0] : memref<3x4x5xf32, affine_map<(i, j, k)[M, N, K]->(M * (i + 1) + j + k - M)>>74  // CHECK: MemRefType offset: 0 strides: ?, 1, 175  %203 = memref.alloc()[%0, %0, %0] : memref<3x4x5xf32, affine_map<(i, j, k)[M, N, K]->(M + M * (i + N * (j + K * k)))>>76  // CHECK: MemRefType offset: ? strides: ?, ?, ?77 78  return79}80