aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/X86/X86ISelDAGToDAG.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Target/X86/X86ISelDAGToDAG.cpp b/lib/Target/X86/X86ISelDAGToDAG.cpp
index 1ca1e31144..8286cd05a0 100644
--- a/lib/Target/X86/X86ISelDAGToDAG.cpp
+++ b/lib/Target/X86/X86ISelDAGToDAG.cpp
@@ -255,11 +255,12 @@ static void findNonImmUse(SDNode *Use, SDNode* Def, SDNode *ImmedUse,
continue;
if (N == Def) {
if (Use == ImmedUse)
- continue; // We are not looking for immediate use.
+ continue; // We are not looking for immediate use.
if (Use == Root) {
+ // Must be a chain reading node where it is possible to reach its own
+ // chain operand through a path started from another operand.
assert(Use->getOpcode() == ISD::STORE ||
Use->getOpcode() == X86ISD::CMP ||
- Use->getOpcode() == ISD::INTRINSIC_WO_CHAIN ||
Use->getOpcode() == ISD::INTRINSIC_W_CHAIN ||
Use->getOpcode() == ISD::INTRINSIC_VOID);
continue;