[llvm] [DAG]: Created method `m_SelectLike` to match `ISD::Select` and `ISD::VSelect` (PR #164069)
via llvm-commits
llvm-commits at lists.llvm.org
Sat Oct 18 02:48:03 PDT 2025
https://github.com/kper created https://github.com/llvm/llvm-project/pull/164069
Fixes https://github.com/llvm/llvm-project/issues/150019
>From 18977756ddc9fb55e8cbd65a0410419ea9fde3b0 Mon Sep 17 00:00:00 2001
From: Kevin Per <kevin.per at protonmail.com>
Date: Sat, 18 Oct 2025 09:46:32 +0000
Subject: [PATCH] [DAG]: Created method `m_SelectLike` to match `ISD::Select`
and `ISD::VSelect`
---
llvm/include/llvm/CodeGen/SDPatternMatch.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/llvm/include/llvm/CodeGen/SDPatternMatch.h b/llvm/include/llvm/CodeGen/SDPatternMatch.h
index 201dc68de8b76..707c529d2b97c 100644
--- a/llvm/include/llvm/CodeGen/SDPatternMatch.h
+++ b/llvm/include/llvm/CodeGen/SDPatternMatch.h
@@ -558,6 +558,12 @@ m_VSelect(const T0_P &Cond, const T1_P &T, const T2_P &F) {
return TernaryOpc_match<T0_P, T1_P, T2_P>(ISD::VSELECT, Cond, T, F);
}
+template <typename T0_P, typename T1_P, typename T2_P>
+inline TernaryOpc_match<T0_P, T1_P, T2_P>
+m_SelectLike(const T0_P &Cond, const T1_P &T, const T2_P &F) {
+ return m_Select(Cond, T, F) || m_VSelect(Cond, T, F);
+}
+
template <typename T0_P, typename T1_P, typename T2_P>
inline Result_match<0, TernaryOpc_match<T0_P, T1_P, T2_P>>
m_Load(const T0_P &Ch, const T1_P &Ptr, const T2_P &Offset) {
More information about the llvm-commits
mailing list