"vscode:/vscode.git/clone" did not exist on "0f8fa5f82af47543a68f1d3fb8921f8f9b6b15f8"
output_alias.cpp 1.29 KB
Newer Older
Paul's avatar
Paul committed
1
2
#include <migraphx/program.hpp>
#include <migraphx/instruction.hpp>
Paul's avatar
Paul committed
3
4
5
#include <test.hpp>
#include <basic_ops.hpp>

Paul's avatar
Paul committed
6
TEST_CASE(simple_alias)
Paul's avatar
Paul committed
7
{
Paul's avatar
Paul committed
8
    migraphx::program p;
9
10
11
    auto* mm = p.get_main_module();
    auto l   = mm->add_literal(1);
    auto p1  = mm->add_instruction(pass_op{}, l);
Paul's avatar
Paul committed
12
13
    EXPECT(bool{migraphx::instruction::get_output_alias(l) == l});
    EXPECT(bool{migraphx::instruction::get_output_alias(p1) == l});
Paul's avatar
Paul committed
14
15
}

Paul's avatar
Paul committed
16
TEST_CASE(cascade_alias)
Paul's avatar
Paul committed
17
{
Paul's avatar
Paul committed
18
    migraphx::program p;
19
20
21
22
23
    auto* mm = p.get_main_module();
    auto l   = mm->add_literal(1);
    auto p1  = mm->add_instruction(pass_op{}, l);
    auto p2  = mm->add_instruction(pass_op{}, p1);
    auto p3  = mm->add_instruction(pass_op{}, p2);
Paul's avatar
Paul committed
24
25
26
27
    EXPECT(bool{migraphx::instruction::get_output_alias(l) == l});
    EXPECT(bool{migraphx::instruction::get_output_alias(p1) == l});
    EXPECT(bool{migraphx::instruction::get_output_alias(p2) == l});
    EXPECT(bool{migraphx::instruction::get_output_alias(p3) == l});
Paul's avatar
Paul committed
28
29
}

Paul's avatar
Paul committed
30
TEST_CASE(no_alias)
Paul's avatar
Paul committed
31
{
Paul's avatar
Paul committed
32
    migraphx::program p;
33
34
35
36
    auto* mm = p.get_main_module();
    auto x   = mm->add_literal(1);
    auto y   = mm->add_literal(2);
    auto sum = mm->add_instruction(sum_op{}, x, y);
Paul's avatar
Paul committed
37
    EXPECT(bool{migraphx::instruction::get_output_alias(sum) == sum});
Paul's avatar
Paul committed
38
39
}

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