MLIR PDL example?

Hi all, I wonder if there is an example of the step-by-step tutorial about how to use the .pdll file. I know that pdll → pdlmodule → pdl-interpreter pipeline, but how does this work? from https://github.com/llvm/llvm-project/blob/main/mlir/test/lib/Rewrite/TestPDLByteCode.cpp I cannot see when to parse .pdll, and how the pdlmodule is loaded. Could anyone please give an example? Thanks so much!!!