|
|
|
@ -98,10 +98,10 @@ AnfNodePtr ValueBasedEliminate::operator()(const OptimizerPtr &, const AnfNodePt
|
|
|
|
|
PConstant zero_scalar_(node, false, 0, true);
|
|
|
|
|
|
|
|
|
|
// {prim::kPrimSelect, {prim::kPrimGreater, X, 0}, Y, Z}} -> Y when X is always greater than 0
|
|
|
|
|
MATCH_REPLACE_IF(node, PPrimitive(prim::kPrimSelect, PPrimitive(prim::kPrimGreater, x, zero_), y, z), y,
|
|
|
|
|
MATCH_REPLACE_IF(node, PPrimitive(prim::kPrimSelect, PPrimitive(prim::kPrimGreaterEqual, x, zero_), y, z), y,
|
|
|
|
|
IsCNodePositive(x.GetNode(node)));
|
|
|
|
|
|
|
|
|
|
MATCH_REPLACE_IF(node, PPrimitive(prim::kPrimSelect, PPrimitive(prim::kPrimGreater, x, zero_scalar_), y, z), y,
|
|
|
|
|
MATCH_REPLACE_IF(node, PPrimitive(prim::kPrimSelect, PPrimitive(prim::kPrimGreaterEqual, x, zero_scalar_), y, z), y,
|
|
|
|
|
IsCNodePositive(x.GetNode(node)));
|
|
|
|
|
|
|
|
|
|
// {prim::kPrimMaximum, X, LOWER_FLT_LIMIT}} -> X
|
|
|
|
|