Skip to content

Commit e26c923

Browse files
committed
[PatternMatch]: Add m_Interleave and m_Deinterleave matchers.
Change-Id: Id94189e601ed70c5ea922f9adbee63cf8b80829a
1 parent 393ec7f commit e26c923

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

llvm/include/llvm/IR/PatternMatch.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2856,6 +2856,17 @@ inline VScaleVal_match m_VScale() {
28562856
return VScaleVal_match();
28572857
}
28582858

2859+
template <typename Opnd0, typename Opnd1>
2860+
inline typename m_Intrinsic_Ty<Opnd0, Opnd1>::Ty
2861+
m_Interleave2(const Opnd0 &Op0, const Opnd1 &Op1) {
2862+
return m_Intrinsic<Intrinsic::vector_interleave2>(Op0, Op1);
2863+
}
2864+
2865+
template <typename Opnd>
2866+
inline typename m_Intrinsic_Ty<Opnd>::Ty m_Deinterleave2(const Opnd &Op) {
2867+
return m_Intrinsic<Intrinsic::vector_deinterleave2>(Op);
2868+
}
2869+
28592870
template <typename LHS, typename RHS, unsigned Opcode, bool Commutable = false>
28602871
struct LogicalOp_match {
28612872
LHS L;

0 commit comments

Comments
 (0)