1 //===- StridedMemRef.cpp ----------------------------------------*- C++ -*-===//
3 // This file is licensed under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #include "mlir/ExecutionEngine/CRunnerUtils.h"
10 #include "llvm/ADT/SmallVector.h"
12 #include "gmock/gmock.h"
14 using namespace ::mlir
;
15 using namespace ::testing
;
17 TEST(StridedMemRef
, rankOneWithOffset
) {
18 std::array
<int, 15> data
;
20 for (size_t i
= 0; i
< data
.size(); ++i
) {
24 StridedMemRefType
<int, 1> memRefA
;
25 memRefA
.basePtr
= data
.data();
26 memRefA
.data
= data
.data();
28 memRefA
.sizes
[0] = 10;
29 memRefA
.strides
[0] = 1;
31 StridedMemRefType
<int, 1> memRefB
= memRefA
;
34 llvm::SmallVector
<int, 10> valuesA(memRefA
.begin(), memRefA
.end());
35 llvm::SmallVector
<int, 10> valuesB(memRefB
.begin(), memRefB
.end());
37 for (int64_t i
= 0; i
< 10; ++i
) {
38 EXPECT_EQ(valuesA
[i
], i
);
39 EXPECT_EQ(valuesA
[i
] + 5, valuesB
[i
]);