annotate mlir/unittests/ExecutionEngine/DynamicMemRef.cpp @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents c4bab56944e8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
1 //===- DynamicMemRef.cpp ----------------------------------------*- C++ -*-===//
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
2 //
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
3 // This file is licensed under the Apache License v2.0 with LLVM Exceptions.
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
4 // See https://llvm.org/LICENSE.txt for license information.
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
6 //
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
7 //===----------------------------------------------------------------------===//
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
8
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
9 #include "mlir/ExecutionEngine/CRunnerUtils.h"
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
10 #include "llvm/ADT/SmallVector.h"
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
11
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
12 #include "gmock/gmock.h"
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
13
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
14 using namespace ::mlir;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
15 using namespace ::testing;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
16
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
17 TEST(DynamicMemRef, rankZero) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
18 int data = 57;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
19
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
20 StridedMemRefType<int, 0> memRef;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
21 memRef.basePtr = &data;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
22 memRef.data = &data;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
23 memRef.offset = 0;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
24
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
25 DynamicMemRefType<int> dynamicMemRef(memRef);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
26
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
27 llvm::SmallVector<int, 1> values(dynamicMemRef.begin(), dynamicMemRef.end());
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
28 EXPECT_THAT(values, ElementsAre(57));
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
29 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
30
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
31 TEST(DynamicMemRef, rankOne) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
32 std::array<int, 3> data;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
33
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
34 for (size_t i = 0; i < data.size(); ++i) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
35 data[i] = i;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
36 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
37
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
38 StridedMemRefType<int, 1> memRef;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
39 memRef.basePtr = data.data();
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
40 memRef.data = data.data();
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
41 memRef.offset = 0;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
42 memRef.sizes[0] = 3;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
43 memRef.strides[0] = 1;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
44
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
45 DynamicMemRefType<int> dynamicMemRef(memRef);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
46
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
47 llvm::SmallVector<int, 3> values(dynamicMemRef.begin(), dynamicMemRef.end());
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
48 EXPECT_THAT(values, ElementsAreArray(data));
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
49
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
50 for (int64_t i = 0; i < 3; ++i) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
51 EXPECT_EQ(*dynamicMemRef[i], data[i]);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
52 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
53 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
54
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
55 TEST(DynamicMemRef, rankTwo) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
56 std::array<int, 6> data;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
57
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
58 for (size_t i = 0; i < data.size(); ++i) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
59 data[i] = i;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
60 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
61
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
62 StridedMemRefType<int, 2> memRef;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
63 memRef.basePtr = data.data();
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
64 memRef.data = data.data();
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
65 memRef.offset = 0;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
66 memRef.sizes[0] = 2;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
67 memRef.sizes[1] = 3;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
68 memRef.strides[0] = 3;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
69 memRef.strides[1] = 1;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
70
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
71 DynamicMemRefType<int> dynamicMemRef(memRef);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
72
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
73 llvm::SmallVector<int, 6> values(dynamicMemRef.begin(), dynamicMemRef.end());
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
74 EXPECT_THAT(values, ElementsAreArray(data));
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
75 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
76
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
77 TEST(DynamicMemRef, rankThree) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
78 std::array<int, 24> data;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
79
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
80 for (size_t i = 0; i < data.size(); ++i) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
81 data[i] = i;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
82 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
83
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
84 StridedMemRefType<int, 3> memRef;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
85 memRef.basePtr = data.data();
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
86 memRef.data = data.data();
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
87 memRef.offset = 0;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
88 memRef.sizes[0] = 2;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
89 memRef.sizes[1] = 3;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
90 memRef.sizes[2] = 4;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
91 memRef.strides[0] = 12;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
92 memRef.strides[1] = 4;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
93 memRef.strides[2] = 1;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
94
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
95 DynamicMemRefType<int> dynamicMemRef(memRef);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
96
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
97 llvm::SmallVector<int, 24> values(dynamicMemRef.begin(), dynamicMemRef.end());
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
98 EXPECT_THAT(values, ElementsAreArray(data));
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
99 }