Skip to content

Commit c961ba3

Browse files
Use m_Result to match only the loaded value
1 parent a95c9f9 commit c961ba3

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

llvm/include/llvm/CodeGen/SDPatternMatch.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -514,9 +514,10 @@ m_VSelect(const T0_P &Cond, const T1_P &T, const T2_P &F) {
514514
}
515515

516516
template <typename T0_P, typename T1_P, typename T2_P>
517-
inline TernaryOpc_match<T0_P, T1_P, T2_P>
517+
inline Result_match<0, TernaryOpc_match<T0_P, T1_P, T2_P>>
518518
m_Load(const T0_P &Ch, const T1_P &Ptr, const T2_P &Offset) {
519-
return TernaryOpc_match<T0_P, T1_P, T2_P>(ISD::LOAD, Ch, Ptr, Offset);
519+
return m_Result<0>(
520+
TernaryOpc_match<T0_P, T1_P, T2_P>(ISD::LOAD, Ch, Ptr, Offset));
520521
}
521522

522523
template <typename T0_P, typename T1_P, typename T2_P>

llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ TEST_F(SelectionDAGPatternMatchTest, matchTernaryOp) {
240240
EXPECT_TRUE(sd_match(
241241
Load, m_Load(m_Specific(Ch), m_Specific(BasePtr), m_Specific(Offset))));
242242

243-
EXPECT_TRUE(
243+
EXPECT_FALSE(
244244
sd_match(Load.getValue(1), m_Load(m_Specific(Ch), m_Specific(BasePtr),
245245
m_Specific(Offset))));
246246
}

0 commit comments

Comments
 (0)