// ============================================================================
// = Please keep the patterns in alphabetical order by operator name =
// ============================================================================
Pattern ConvertMfuseAclnnMatmul {
let root = op<mfuse.aclnn.matmul>(operands: ValueRange) -> (result: Type);
replace root with op<torch.aten.matmul>(convertValues(operands)) -> (convertType(result));
}
// mfuse.aclnn.mm is lowered in MfuseAclnnToTorch.cc so trans_x1/trans_x2 can be attached on torch.aten.mm.
Pattern ConvertMfuseAclnnSigmoid {
let root = op<mfuse.aclnn.sigmoid>(operands: ValueRange) -> (result: Type);
replace root with op<torch.aten.sigmoid>(convertValues(operands)) -> (convertType(result));
}
Pattern ConvertMfuseAclnnTanh {
let root = op<mfuse.aclnn.tanh>(operands: ValueRange) -> (result: Type);
replace root with op<torch.aten.tanh>(convertValues(operands)) -> (convertType(result));
}