Commit 5dc3afb4 authored by Umang Yadav's avatar Umang Yadav
Browse files

add expected programs

parent 1ff6c73e
......@@ -73,7 +73,54 @@ TEST_CASE(fork_case)
}
migraphx::generate_root_modules(p1, tass);
p1.debug_print();
migraphx::program p2;
{
migraphx::module_ref mm = p2.get_main_module();
auto y_param = mm->add_parameter("y", migraphx::shape{migraphx::shape::float_type, {8}});
auto x_param = mm->add_parameter("x", migraphx::shape{migraphx::shape::float_type, {8}});
migraphx::module_ref target_mod_0_0 = p2.create_module("target_mod_0_0");
auto target_mod_0_0_param_1 = target_mod_0_0->add_parameter(
"param:1", migraphx::shape{migraphx::shape::float_type, {8}});
auto target_mod_0_0_param_0 = target_mod_0_0->add_parameter(
"param:0", migraphx::shape{migraphx::shape::float_type, {8}});
auto target_mod_0_0_add = target_mod_0_0->add_instruction(
migraphx::make_op("add"), target_mod_0_0_param_1, target_mod_0_0_param_0);
target_mod_0_0->add_return({target_mod_0_0_add});
auto x_2 = mm->add_instruction(migraphx::make_op("run_on_target", {{"target_id", 0}}),
{y_param, x_param},
{target_mod_0_0});
auto x_3 = mm->add_instruction(migraphx::make_op("get_tuple_elem", {{"index", 0}}), x_2);
auto z_param = mm->add_parameter("z", migraphx::shape{migraphx::shape::float_type, {8}});
migraphx::module_ref target_mod_1_0 = p2.create_module("target_mod_1_0");
auto target_mod_1_0_param_0 = target_mod_1_0->add_parameter(
"param:0", migraphx::shape{migraphx::shape::float_type, {8}});
auto target_mod_1_0_identity =
target_mod_1_0->add_instruction(migraphx::make_op("identity"), target_mod_1_0_param_0);
target_mod_1_0->add_return({target_mod_1_0_identity});
auto x_5 = mm->add_instruction(
migraphx::make_op("run_on_target", {{"target_id", 1}}), {x_3}, {target_mod_1_0});
auto x_6 = mm->add_instruction(migraphx::make_op("get_tuple_elem", {{"index", 0}}), x_5);
migraphx::module_ref target_mod_0_1 = p2.create_module("target_mod_0_1");
auto target_mod_0_1_param_1 = target_mod_0_1->add_parameter(
"param:1", migraphx::shape{migraphx::shape::float_type, {8}});
auto target_mod_0_1_param_0 = target_mod_0_1->add_parameter(
"param:0", migraphx::shape{migraphx::shape::float_type, {8}});
auto target_mod_0_1_mul = target_mod_0_1->add_instruction(
migraphx::make_op("mul"), target_mod_0_1_param_1, target_mod_0_1_param_0);
target_mod_0_1->add_return({target_mod_0_1_mul});
auto x_7 = mm->add_instruction(migraphx::make_op("run_on_target", {{"target_id", 0}}),
{z_param, x_3},
{target_mod_0_1});
auto x_8 = mm->add_instruction(migraphx::make_op("get_tuple_elem", {{"index", 0}}), x_7);
mm->add_return({x_8, x_6});
}
EXPECT(p1.sort() == p2.sort());
};
TEST_CASE(merge_case)
......@@ -104,7 +151,52 @@ TEST_CASE(merge_case)
tass.insert(tass.begin(), std::make_pair(identity_ins, 1));
}
migraphx::generate_root_modules(p1, tass);
p1.debug_print();
migraphx::program p2;
{
migraphx::module_ref mm = p2.get_main_module();
auto z = mm->add_parameter("z", migraphx::shape{migraphx::shape::float_type, {8}});
auto y = mm->add_parameter("y", migraphx::shape{migraphx::shape::float_type, {8}});
auto x = mm->add_parameter("x", migraphx::shape{migraphx::shape::float_type, {8}});
migraphx::module_ref target_mod_1_0 = p2.create_module("target_mod_1_0");
auto target_mod_1_0_param_0 = target_mod_1_0->add_parameter(
"param:0", migraphx::shape{migraphx::shape::float_type, {8}});
auto x_target_mod_1_0_1 =
target_mod_1_0->add_instruction(migraphx::make_op("identity"), target_mod_1_0_param_0);
target_mod_1_0->add_return({x_target_mod_1_0_1});
auto x_3 = mm->add_instruction(
migraphx::make_op("run_on_target", {{"target_id", 1}}), {z}, {target_mod_1_0});
auto x_4 = mm->add_instruction(migraphx::make_op("get_tuple_elem", {{"index", 0}}), x_3);
migraphx::module_ref target_mod_0_0 = p2.create_module("target_mod_0_0");
auto target_mod_0_0_param_1 = target_mod_0_0->add_parameter(
"param:1", migraphx::shape{migraphx::shape::float_type, {8}});
auto target_mod_0_0_param_0 = target_mod_0_0->add_parameter(
"param:0", migraphx::shape{migraphx::shape::float_type, {8}});
auto x_target_mod_0_0_2 = target_mod_0_0->add_instruction(
migraphx::make_op("add"), target_mod_0_0_param_1, target_mod_0_0_param_0);
target_mod_0_0->add_return({x_target_mod_0_0_2});
auto x_5 = mm->add_instruction(
migraphx::make_op("run_on_target", {{"target_id", 0}}), {y, x}, {target_mod_0_0});
auto x_6 = mm->add_instruction(migraphx::make_op("get_tuple_elem", {{"index", 0}}), x_5);
migraphx::module_ref target_mod_0_1 = p2.create_module("target_mod_0_1");
auto target_mod_0_1_param_1 = target_mod_0_1->add_parameter(
"param:1", migraphx::shape{migraphx::shape::float_type, {8}});
auto target_mod_0_1_param_0 = target_mod_0_1->add_parameter(
"param:0", migraphx::shape{migraphx::shape::float_type, {8}});
auto x_target_mod_0_1_2 = target_mod_0_1->add_instruction(
migraphx::make_op("mul"), target_mod_0_1_param_1, target_mod_0_1_param_0);
target_mod_0_1->add_return({x_target_mod_0_1_2});
auto x_7 = mm->add_instruction(
migraphx::make_op("run_on_target", {{"target_id", 0}}), {x_4, x_6}, {target_mod_0_1});
auto x_8 = mm->add_instruction(migraphx::make_op("get_tuple_elem", {{"index", 0}}), x_7);
mm->add_return({x_8});
}
EXPECT(p1.sort() == p2.sort());
};
TEST_CASE(fork_and_merge_case)
......@@ -143,7 +235,66 @@ TEST_CASE(fork_and_merge_case)
mm->add_return({merge_ins});
}
migraphx::generate_root_modules(p1, tass);
p1.debug_print();
migraphx::program p2;
{
migraphx::module_ref main = p2.get_main_module();
auto z = main->add_parameter("z", migraphx::shape{migraphx::shape::float_type, {8}});
auto y = main->add_parameter("y", migraphx::shape{migraphx::shape::float_type, {8}});
auto x = main->add_parameter("x", migraphx::shape{migraphx::shape::float_type, {8}});
migraphx::module_ref target_mod_0_0 = p2.create_module("target_mod_0_0");
auto target_mod_0_0_param_1 = target_mod_0_0->add_parameter(
"param:1", migraphx::shape{migraphx::shape::float_type, {8}});
auto target_mod_0_0_param_0 = target_mod_0_0->add_parameter(
"param:0", migraphx::shape{migraphx::shape::float_type, {8}});
auto x_target_mod_0_0_2 = target_mod_0_0->add_instruction(
migraphx::make_op("add"), target_mod_0_0_param_1, target_mod_0_0_param_0);
target_mod_0_0->add_return({x_target_mod_0_0_2});
auto x_3 = main->add_instruction(
migraphx::make_op("run_on_target", {{"target_id", 0}}), {y, x}, {target_mod_0_0});
auto x_4 = main->add_instruction(migraphx::make_op("get_tuple_elem", {{"index", 0}}), x_3);
migraphx::module_ref target_mod_0_1 = p2.create_module("target_mod_0_1");
auto target_mod_0_1_param_1 = target_mod_0_1->add_parameter(
"param:1", migraphx::shape{migraphx::shape::float_type, {8}});
auto target_mod_0_1_param_0 = target_mod_0_1->add_parameter(
"param:0", migraphx::shape{migraphx::shape::float_type, {8}});
auto x_target_mod_0_1_2 = target_mod_0_1->add_instruction(
migraphx::make_op("mul"), target_mod_0_1_param_1, target_mod_0_1_param_0);
target_mod_0_1->add_return({x_target_mod_0_1_2});
auto x_5 = main->add_instruction(
migraphx::make_op("run_on_target", {{"target_id", 0}}), {z, x_4}, {target_mod_0_1});
auto x_6 = main->add_instruction(migraphx::make_op("get_tuple_elem", {{"index", 0}}), x_5);
migraphx::module_ref target_mod_1_0 = p2.create_module("target_mod_1_0");
auto target_mod_1_0_param_0 = target_mod_1_0->add_parameter(
"param:0", migraphx::shape{migraphx::shape::float_type, {8}});
auto x_target_mod_1_0_1 =
target_mod_1_0->add_instruction(migraphx::make_op("identity"), target_mod_1_0_param_0);
target_mod_1_0->add_return({x_target_mod_1_0_1});
auto x_7 = main->add_instruction(
migraphx::make_op("run_on_target", {{"target_id", 1}}), {x_4}, {target_mod_1_0});
auto x_8 = main->add_instruction(migraphx::make_op("get_tuple_elem", {{"index", 0}}), x_7);
migraphx::module_ref target_mod_0_2 = p2.create_module("target_mod_0_2");
auto target_mod_0_2_param_1 = target_mod_0_2->add_parameter(
"param:1", migraphx::shape{migraphx::shape::float_type, {8}});
auto target_mod_0_2_param_0 = target_mod_0_2->add_parameter(
"param:0", migraphx::shape{migraphx::shape::float_type, {8}});
auto x_target_mod_0_2_2 = target_mod_0_2->add_instruction(
migraphx::make_op("sub"), target_mod_0_2_param_1, target_mod_0_2_param_0);
target_mod_0_2->add_return({x_target_mod_0_2_2});
auto x_9 = main->add_instruction(
migraphx::make_op("run_on_target", {{"target_id", 0}}), {x_6, x_8}, {target_mod_0_2});
auto x_10 = main->add_instruction(migraphx::make_op("get_tuple_elem", {{"index", 0}}), x_9);
main->add_return({x_10});
}
EXPECT(p1.sort() == p2.sort());
};
int main(int argc, const char* argv[]) { test::run(argc, argv); }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment