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
86e31c07
Commit
86e31c07
authored
Sep 23, 2018
by
Paul
Browse files
Add tests for combiner matchers
parent
75ff4513
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
43 additions
and
12 deletions
+43
-12
src/include/migraph/matcher.hpp
src/include/migraph/matcher.hpp
+0
-12
test/matcher.cpp
test/matcher.cpp
+43
-0
No files found.
src/include/migraph/matcher.hpp
View file @
86e31c07
...
...
@@ -184,18 +184,6 @@ matcher_result match_instruction(program& p, instruction_ref ins, M&& m)
return
result
;
}
template
<
class
T
,
class
...
Ts
>
std
::
array
<
T
,
sizeof
...(
Ts
)
+
1
>
make_array
(
T
x
,
Ts
...
xs
)
{
return
{
x
,
xs
...};
}
template
<
class
...
Ts
>
bool
all_of_eager
(
Ts
...
xs
)
{
return
make_array
((
xs
,
true
)...)
==
make_array
(
static_cast
<
bool
>
(
xs
)...);
}
namespace
matchers
{
template
<
class
...
Ts
>
...
...
test/matcher.cpp
View file @
86e31c07
...
...
@@ -250,6 +250,45 @@ void match_args7()
EXPECT
(
bool
{
r
.
result
==
pass
});
}
void
match_all_of
()
{
migraph
::
program
p
;
auto
one
=
p
.
add_literal
(
1
);
auto
two
=
p
.
add_literal
(
2
);
auto
sum
=
p
.
add_instruction
(
sum_op
{},
one
,
two
);
p
.
add_instruction
(
pass_op
{},
sum
);
auto
m
=
matchers
::
name
(
"sum"
)(
matchers
::
all_of
(
matchers
::
arg
(
0
)(
matchers
::
name
(
"@literal"
)),
matchers
::
arg
(
1
)(
matchers
::
name
(
"@literal"
))));
auto
r
=
find_match
(
p
,
m
);
EXPECT
(
bool
{
r
.
result
==
sum
});
}
void
match_any_of
()
{
migraph
::
program
p
;
auto
one
=
p
.
add_literal
(
1
);
auto
two
=
p
.
add_literal
(
2
);
auto
sum
=
p
.
add_instruction
(
sum_op
{},
one
,
two
);
p
.
add_instruction
(
pass_op
{},
sum
);
auto
m
=
matchers
::
name
(
"sum"
)(
matchers
::
any_of
(
matchers
::
arg
(
0
)(
matchers
::
name
(
"sum"
)),
matchers
::
arg
(
1
)(
matchers
::
name
(
"@literal"
))));
auto
r
=
find_match
(
p
,
m
);
EXPECT
(
bool
{
r
.
result
==
sum
});
}
void
match_none_of
()
{
migraph
::
program
p
;
auto
one
=
p
.
add_literal
(
1
);
auto
two
=
p
.
add_literal
(
2
);
auto
sum
=
p
.
add_instruction
(
sum_op
{},
one
,
two
);
p
.
add_instruction
(
pass_op
{},
sum
);
auto
m
=
matchers
::
name
(
"sum"
)(
matchers
::
none_of
(
matchers
::
arg
(
0
)(
matchers
::
name
(
"sum"
)),
matchers
::
arg
(
1
)(
matchers
::
name
(
"sum"
))));
auto
r
=
find_match
(
p
,
m
);
EXPECT
(
bool
{
r
.
result
==
sum
});
}
void
match_bind1
()
{
migraph
::
program
p
;
...
...
@@ -295,5 +334,9 @@ int main()
match_args6
();
match_args7
();
match_all_of
();
match_any_of
();
match_none_of
();
match_bind1
();
}
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