"src/onnx/parse_transpose.cpp" did not exist on "69d2e38f8fe7f1d7bdf0869218fd8f3c03912545"
eliminate_common_subexpression_test.cpp 4.82 KB
Newer Older
Paul's avatar
Paul committed
1
#include <migraphx/eliminate_common_subexpression.hpp>
2
#include <migraphx/pass_manager.hpp>
Paul's avatar
Paul committed
3
#include <migraphx/dead_code_elimination.hpp>
Paul's avatar
Paul committed
4
#include <basic_ops.hpp>
5
6
#include <migraphx/make_op.hpp>

Paul's avatar
Paul committed
7
8
#include <test.hpp>

Paul Fultz II's avatar
Paul Fultz II committed
9
void run_pass(migraphx::module& m)
Paul's avatar
Paul committed
10
{
11
    migraphx::run_passes(
Paul Fultz II's avatar
Paul Fultz II committed
12
        m, {migraphx::eliminate_common_subexpression{}, migraphx::dead_code_elimination{}});
13
}
Paul's avatar
Paul committed
14

Paul's avatar
Paul committed
15
TEST_CASE(cse_test1)
Paul's avatar
Paul committed
16
{
Paul Fultz II's avatar
Paul Fultz II committed
17
    migraphx::module m1;
Paul's avatar
Paul committed
18
    {
Paul Fultz II's avatar
Paul Fultz II committed
19
20
21
22
23
24
        auto one  = m1.add_literal(1);
        auto two  = m1.add_literal(2);
        auto sum1 = m1.add_instruction(migraphx::make_op("add"), one, two);
        auto sum2 = m1.add_instruction(migraphx::make_op("add"), one, two);
        auto sum3 = m1.add_instruction(migraphx::make_op("add"), sum1, sum2);
        m1.add_instruction(pass_op{}, sum3);
Paul's avatar
Paul committed
25
    }
Paul Fultz II's avatar
Paul Fultz II committed
26
    run_pass(m1);
Paul's avatar
Paul committed
27

Paul Fultz II's avatar
Paul Fultz II committed
28
    migraphx::module m2;
Paul's avatar
Paul committed
29
    {
Paul Fultz II's avatar
Paul Fultz II committed
30
31
32
33
34
        auto one  = m2.add_literal(1);
        auto two  = m2.add_literal(2);
        auto sum1 = m2.add_instruction(migraphx::make_op("add"), one, two);
        auto sum3 = m2.add_instruction(migraphx::make_op("add"), sum1, sum1);
        m2.add_instruction(pass_op{}, sum3);
Paul's avatar
Paul committed
35
    }
Paul Fultz II's avatar
Paul Fultz II committed
36
    EXPECT(m1 == m2);
Paul's avatar
Paul committed
37
38
}

Paul's avatar
Paul committed
39
TEST_CASE(cse_test2)
Paul's avatar
Paul committed
40
{
Paul Fultz II's avatar
Paul Fultz II committed
41
    migraphx::module m1;
Paul's avatar
Paul committed
42
    {
Paul Fultz II's avatar
Paul Fultz II committed
43
44
45
46
47
48
        auto one  = m1.add_literal(1);
        auto two  = m1.add_literal(2);
        auto sum1 = m1.add_instruction(migraphx::make_op("add"), one, two);
        auto sum2 = m1.add_instruction(migraphx::make_op("add"), two, one);
        auto sum3 = m1.add_instruction(migraphx::make_op("add"), sum1, sum2);
        m1.add_instruction(pass_op{}, sum3);
Paul's avatar
Paul committed
49
    }
Paul Fultz II's avatar
Paul Fultz II committed
50
    run_pass(m1);
Paul's avatar
Paul committed
51

Paul Fultz II's avatar
Paul Fultz II committed
52
    migraphx::module m2;
Paul's avatar
Paul committed
53
    {
Paul Fultz II's avatar
Paul Fultz II committed
54
55
56
57
58
59
        auto one  = m2.add_literal(1);
        auto two  = m2.add_literal(2);
        auto sum1 = m2.add_instruction(migraphx::make_op("add"), one, two);
        auto sum2 = m2.add_instruction(migraphx::make_op("add"), two, one);
        auto sum3 = m2.add_instruction(migraphx::make_op("add"), sum1, sum2);
        m2.add_instruction(pass_op{}, sum3);
Paul's avatar
Paul committed
60
    }
Paul Fultz II's avatar
Paul Fultz II committed
61
    EXPECT(m1 == m2);
Paul's avatar
Paul committed
62
63
}

Paul's avatar
Paul committed
64
TEST_CASE(cse_test3)
Paul's avatar
Paul committed
65
{
Paul Fultz II's avatar
Paul Fultz II committed
66
    migraphx::module m1;
Paul's avatar
Paul committed
67
    {
Paul Fultz II's avatar
Paul Fultz II committed
68
69
70
71
72
73
        auto one  = m1.add_literal(1);
        auto two  = m1.add_literal(1);
        auto sum1 = m1.add_instruction(migraphx::make_op("add"), one, two);
        auto sum2 = m1.add_instruction(migraphx::make_op("add"), two, one);
        auto sum3 = m1.add_instruction(migraphx::make_op("add"), sum1, sum2);
        m1.add_instruction(pass_op{}, sum3);
Paul's avatar
Paul committed
74
    }
Paul Fultz II's avatar
Paul Fultz II committed
75
    run_pass(m1);
Paul's avatar
Paul committed
76

Paul Fultz II's avatar
Paul Fultz II committed
77
    migraphx::module m2;
Paul's avatar
Paul committed
78
    {
Paul Fultz II's avatar
Paul Fultz II committed
79
80
81
82
        auto one  = m2.add_literal(1);
        auto sum1 = m2.add_instruction(migraphx::make_op("add"), one, one);
        auto sum3 = m2.add_instruction(migraphx::make_op("add"), sum1, sum1);
        m2.add_instruction(pass_op{}, sum3);
Paul's avatar
Paul committed
83
    }
Paul Fultz II's avatar
Paul Fultz II committed
84
    EXPECT(m1 == m2);
Paul's avatar
Paul committed
85
86
}

Paul's avatar
Paul committed
87
TEST_CASE(cse_test4)
Paul's avatar
Paul committed
88
{
Paul Fultz II's avatar
Paul Fultz II committed
89
    migraphx::module m1;
Paul's avatar
Paul committed
90
    {
Paul Fultz II's avatar
Paul Fultz II committed
91
92
93
94
95
96
97
98
        auto one  = m1.add_literal(1);
        auto two  = m1.add_literal(1);
        auto sum1 = m1.add_instruction(migraphx::make_op("add"), one, two);
        auto sum2 = m1.add_instruction(migraphx::make_op("add"), two, one);
        auto sum3 = m1.add_instruction(migraphx::make_op("add"), sum1, one);
        auto sum4 = m1.add_instruction(migraphx::make_op("add"), sum2, two);
        auto sum5 = m1.add_instruction(migraphx::make_op("add"), sum4, sum3);
        m1.add_instruction(pass_op{}, sum5);
Paul's avatar
Paul committed
99
    }
Paul Fultz II's avatar
Paul Fultz II committed
100
    run_pass(m1);
Paul's avatar
Paul committed
101

Paul Fultz II's avatar
Paul Fultz II committed
102
    migraphx::module m2;
Paul's avatar
Paul committed
103
    {
Paul Fultz II's avatar
Paul Fultz II committed
104
105
106
107
108
        auto one  = m2.add_literal(1);
        auto sum1 = m2.add_instruction(migraphx::make_op("add"), one, one);
        auto sum3 = m2.add_instruction(migraphx::make_op("add"), sum1, one);
        auto sum5 = m2.add_instruction(migraphx::make_op("add"), sum3, sum3);
        m2.add_instruction(pass_op{}, sum5);
Paul's avatar
Paul committed
109
    }
Paul Fultz II's avatar
Paul Fultz II committed
110
    EXPECT(m1 == m2);
Paul's avatar
Paul committed
111
112
}

kahmed10's avatar
kahmed10 committed
113
114
TEST_CASE(cse_test_literal)
{
Paul Fultz II's avatar
Paul Fultz II committed
115
    migraphx::module m1;
kahmed10's avatar
kahmed10 committed
116
    {
Paul Fultz II's avatar
Paul Fultz II committed
117
118
119
120
121
122
        auto six1  = m1.add_literal(6);
        auto zero1 = m1.add_literal(0);
        auto six2  = m1.add_literal(6);
        auto zero2 = m1.add_literal(0);
        auto six3  = m1.add_literal(6);
        auto zero3 = m1.add_literal(0);
kahmed10's avatar
kahmed10 committed
123

Paul Fultz II's avatar
Paul Fultz II committed
124
125
126
127
128
129
        auto sum1 = m1.add_instruction(migraphx::make_op("add"), six1, zero1);
        auto sum2 = m1.add_instruction(migraphx::make_op("add"), six2, zero2);
        auto sum3 = m1.add_instruction(migraphx::make_op("add"), six3, zero3);
        auto sum4 = m1.add_instruction(migraphx::make_op("add"), sum1, sum2);
        auto sum5 = m1.add_instruction(migraphx::make_op("add"), sum3, sum4);
        m1.add_instruction(pass_op{}, sum5);
kahmed10's avatar
kahmed10 committed
130
    }
Paul Fultz II's avatar
Paul Fultz II committed
131
    run_pass(m1);
kahmed10's avatar
kahmed10 committed
132

Paul Fultz II's avatar
Paul Fultz II committed
133
    migraphx::module m2;
kahmed10's avatar
kahmed10 committed
134
    {
Paul Fultz II's avatar
Paul Fultz II committed
135
136
137
138
139
140
        auto six  = m2.add_literal(6);
        auto zero = m2.add_literal(0);
        auto sum1 = m2.add_instruction(migraphx::make_op("add"), six, zero);
        auto sum2 = m2.add_instruction(migraphx::make_op("add"), sum1, sum1);
        auto sum3 = m2.add_instruction(migraphx::make_op("add"), sum1, sum2);
        m2.add_instruction(pass_op{}, sum3);
kahmed10's avatar
kahmed10 committed
141
    }
Paul Fultz II's avatar
Paul Fultz II committed
142
    EXPECT(m1 == m2);
kahmed10's avatar
kahmed10 committed
143
144
}

Paul's avatar
Paul committed
145
int main(int argc, const char* argv[]) { test::run(argc, argv); }