40 lines
1.3 KiB
MLIR
40 lines
1.3 KiB
MLIR
// RUN: scalehls-translate -emit-hlscpp %s | FileCheck %s
|
|
|
|
func @test_memref() {
|
|
%c0 = arith.constant 0 : index
|
|
%c11 = arith.constant 11 : index
|
|
%c1 = arith.constant 1 : index
|
|
%c12 = arith.constant 12 : index
|
|
|
|
// CHECK: int [[VAL_0:.*]][16][8];
|
|
%0 = memref.alloc() : memref<16x8xindex>
|
|
|
|
// CHECK: int [[VAL_1:.*]][16];
|
|
%1 = memref.alloca() : memref<16xindex>
|
|
|
|
// CHECK: int [[VAL_2:.*]] = [[VAL_0:.*]][11][0];
|
|
%2 = memref.load %0[%c11, %c0] : memref<16x8xindex>
|
|
|
|
// CHECK: int [[VAL_3:.*]] = [[VAL_1:.*]][11];
|
|
%3 = memref.load %1[%c11] : memref<16xindex>
|
|
|
|
// CHECK: int [[VAL_4:.*]] = [[VAL_0:.*]][(11 + [[VAL_2:.*]])][(0 + [[VAL_3:.*]])];
|
|
%4 = affine.load %0[%c11 + %2, %c0 + %3] : memref<16x8xindex>
|
|
|
|
// CHECK: int [[VAL_5:.*]] = [[VAL_1:.*]][(11 + [[VAL_2:.*]])];
|
|
%5 = affine.load %1[%c11 + %2] : memref<16xindex>
|
|
|
|
// CHECK: [[VAL_1:.*]][12] = [[VAL_2:.*]];
|
|
memref.store %2, %1[%c12] : memref<16xindex>
|
|
|
|
// CHECK: [[VAL_0:.*]][12][1] = [[VAL_3:.*]];
|
|
memref.store %3, %0[%c12, %c1] : memref<16x8xindex>
|
|
|
|
// CHECK: [[VAL_1:.*]][(12 + [[VAL_4:.*]])] = [[VAL_4:.*]];
|
|
affine.store %4, %1[%c12 + %4] : memref<16xindex>
|
|
|
|
// CHECK: [[VAL_0:.*]][(12 + [[VAL_4:.*]])][(1 + [[VAL_5:.*]])] = [[VAL_5:.*]];
|
|
affine.store %5, %0[%c12 + %4, %c1 + %5] : memref<16x8xindex>
|
|
return
|
|
}
|