+
+/// CheckChildTypeMatcherNode - This checks to see if a child node has the
+/// specified type, if not it fails to match.
+class CheckChildTypeMatcherNode : public MatcherNode {
+ unsigned ChildNo;
+ MVT::SimpleValueType Type;
+public:
+ CheckChildTypeMatcherNode(unsigned childno, MVT::SimpleValueType type)
+ : MatcherNode(CheckChildType), ChildNo(childno), Type(type) {}
+
+ unsigned getChildNo() const { return ChildNo; }
+ MVT::SimpleValueType getType() const { return Type; }
+
+ static inline bool classof(const MatcherNode *N) {
+ return N->getKind() == CheckChildType;
+ }
+
+ virtual void print(raw_ostream &OS, unsigned indent = 0) const;
+};
+