mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-26 05:00:26 +00:00
add match support for casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45744 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a4040e9a9f
commit
4a83e963b3
@ -321,6 +321,30 @@ m_FCmp(FCmpInst::Predicate &Pred, const LHS &L, const RHS &R) {
|
||||
FCmpInst, FCmpInst::Predicate>(Pred, L, R);
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Matchers for CastInst classes
|
||||
//
|
||||
|
||||
template<typename Op_t, typename Class>
|
||||
struct CastClass_match {
|
||||
Op_t Op;
|
||||
|
||||
CastClass_match(const Op_t &OpMatch) : Op(OpMatch) {}
|
||||
|
||||
template<typename OpTy>
|
||||
bool match(OpTy *V) {
|
||||
if (Class *I = dyn_cast<Class>(V))
|
||||
return Op.match(I->getOperand(0));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
template<typename Class, typename OpTy>
|
||||
inline CastClass_match<OpTy, Class> m_Cast(const OpTy &Op) {
|
||||
return CastClass_match<OpTy, Class>(Op);
|
||||
}
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Matchers for unary operators
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user