Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
MIGraphX
Commits
b36f6e5c
"include/ck/utility/get_id.hpp" did not exist on "7a89684f92cc39afbb13ad970c1a3282e60b9180"
Commit
b36f6e5c
authored
Oct 16, 2018
by
Paul
Browse files
Add initial tests
parent
a4178130
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
138 additions
and
0 deletions
+138
-0
test/simplify_algebra_test.cpp
test/simplify_algebra_test.cpp
+138
-0
No files found.
test/simplify_algebra_test.cpp
0 → 100644
View file @
b36f6e5c
#include <migraph/simplify_algebra.hpp>
#include <migraph/dead_code_elimination.hpp>
#include <migraph/operators.hpp>
#include <basic_ops.hpp>
#include <test.hpp>
struct
simplify_algebra_target
{
std
::
string
name
()
const
{
return
"simplify_algebra"
;
}
std
::
vector
<
migraph
::
pass
>
get_passes
(
migraph
::
context
&
)
const
{
return
{
migraph
::
simplify_algebra
{},
migraph
::
dead_code_elimination
{}};
}
migraph
::
context
get_context
()
const
{
return
{};
}
};
void
simplify_add1
()
{
migraph
::
program
p1
;
{
auto
x
=
p1
.
add_parameter
(
"x"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
y
=
p1
.
add_parameter
(
"y"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
one
=
p1
.
add_literal
(
1
);
auto
two
=
p1
.
add_literal
(
2
);
auto
sum1
=
p1
.
add_instruction
(
migraph
::
op
::
add
{},
x
,
one
);
auto
sum2
=
p1
.
add_instruction
(
migraph
::
op
::
add
{},
y
,
two
);
auto
sum3
=
p1
.
add_instruction
(
migraph
::
op
::
add
{},
sum1
,
sum2
);
p1
.
add_instruction
(
pass_op
{},
sum3
);
}
p1
.
compile
(
simplify_algebra_target
{});
migraph
::
program
p2
;
{
auto
x
=
p2
.
add_parameter
(
"x"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
y
=
p2
.
add_parameter
(
"y"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
one
=
p2
.
add_literal
(
1
);
auto
two
=
p2
.
add_literal
(
2
);
auto
sum1
=
p2
.
add_instruction
(
migraph
::
op
::
add
{},
one
,
two
);
auto
sum2
=
p2
.
add_instruction
(
migraph
::
op
::
add
{},
x
,
y
);
auto
sum3
=
p2
.
add_instruction
(
migraph
::
op
::
add
{},
sum2
,
sum1
);
p2
.
add_instruction
(
pass_op
{},
sum3
);
}
EXPECT
(
p1
==
p2
);
}
void
simplify_add2
()
{
migraph
::
program
p1
;
{
auto
x
=
p1
.
add_parameter
(
"x"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
y
=
p1
.
add_parameter
(
"y"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
one
=
p1
.
add_literal
(
1
);
auto
two
=
p1
.
add_literal
(
2
);
auto
sum1
=
p1
.
add_instruction
(
migraph
::
op
::
add
{},
one
,
x
);
auto
sum2
=
p1
.
add_instruction
(
migraph
::
op
::
add
{},
two
,
y
);
auto
sum3
=
p1
.
add_instruction
(
migraph
::
op
::
add
{},
sum1
,
sum2
);
p1
.
add_instruction
(
pass_op
{},
sum3
);
}
p1
.
compile
(
simplify_algebra_target
{});
migraph
::
program
p2
;
{
auto
x
=
p2
.
add_parameter
(
"x"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
y
=
p2
.
add_parameter
(
"y"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
one
=
p2
.
add_literal
(
1
);
auto
two
=
p2
.
add_literal
(
2
);
auto
sum1
=
p2
.
add_instruction
(
migraph
::
op
::
add
{},
one
,
two
);
auto
sum2
=
p2
.
add_instruction
(
migraph
::
op
::
add
{},
x
,
y
);
auto
sum3
=
p2
.
add_instruction
(
migraph
::
op
::
add
{},
sum2
,
sum1
);
p2
.
add_instruction
(
pass_op
{},
sum3
);
}
EXPECT
(
p1
==
p2
);
}
void
simplify_add3
()
{
migraph
::
program
p1
;
{
auto
x
=
p1
.
add_parameter
(
"x"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
one
=
p1
.
add_literal
(
1
);
auto
two
=
p1
.
add_literal
(
2
);
auto
sum1
=
p1
.
add_instruction
(
migraph
::
op
::
add
{},
one
,
x
);
auto
sum2
=
p1
.
add_instruction
(
migraph
::
op
::
add
{},
one
,
two
);
auto
sum3
=
p1
.
add_instruction
(
migraph
::
op
::
add
{},
sum1
,
sum2
);
p1
.
add_instruction
(
pass_op
{},
sum3
);
}
p1
.
compile
(
simplify_algebra_target
{});
migraph
::
program
p2
;
{
auto
x
=
p2
.
add_parameter
(
"x"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
one
=
p2
.
add_literal
(
1
);
auto
two
=
p2
.
add_literal
(
2
);
auto
sum1
=
p2
.
add_instruction
(
migraph
::
op
::
add
{},
one
,
x
);
auto
sum2
=
p2
.
add_instruction
(
migraph
::
op
::
add
{},
one
,
two
);
auto
sum3
=
p2
.
add_instruction
(
migraph
::
op
::
add
{},
sum1
,
sum2
);
p2
.
add_instruction
(
pass_op
{},
sum3
);
}
EXPECT
(
p1
==
p2
);
}
void
simplify_add4
()
{
migraph
::
program
p1
;
{
auto
x
=
p1
.
add_parameter
(
"x"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
y
=
p1
.
add_parameter
(
"y"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
one
=
p1
.
add_literal
(
1
);
auto
two
=
p1
.
add_literal
(
2
);
auto
sum1
=
p1
.
add_instruction
(
migraph
::
op
::
add
{},
one
,
x
);
auto
sum2
=
p1
.
add_instruction
(
migraph
::
op
::
add
{},
sum1
,
y
);
auto
sum3
=
p1
.
add_instruction
(
migraph
::
op
::
add
{},
sum2
,
two
);
p1
.
add_instruction
(
pass_op
{},
sum3
);
}
p1
.
compile
(
simplify_algebra_target
{});
migraph
::
program
p2
;
{
auto
x
=
p2
.
add_parameter
(
"x"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
y
=
p2
.
add_parameter
(
"y"
,
{
migraph
::
shape
::
int32_type
,
{
1
}});
auto
one
=
p2
.
add_literal
(
1
);
auto
two
=
p2
.
add_literal
(
2
);
auto
sum1
=
p2
.
add_instruction
(
migraph
::
op
::
add
{},
one
,
two
);
auto
sum2
=
p2
.
add_instruction
(
migraph
::
op
::
add
{},
x
,
y
);
auto
sum3
=
p2
.
add_instruction
(
migraph
::
op
::
add
{},
sum2
,
sum1
);
p2
.
add_instruction
(
pass_op
{},
sum3
);
}
EXPECT
(
p1
==
p2
);
}
int
main
()
{
simplify_add1
();
simplify_add2
();
simplify_add3
();
// simplify_add4();
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment