@@ -3844,17 +3844,17 @@ static bool isKnownNonEqual(const Value *V1, const Value *V2,
3844
3844
for (BranchInst *BI : Q.DC ->conditionsFor (V1)) {
3845
3845
Value *Cond = BI->getCondition ();
3846
3846
BasicBlockEdge Edge0 (BI->getParent (), BI->getSuccessor (0 ));
3847
- if (isImpliedCondition (Cond, ICmpInst::ICMP_NE, V1, V2, Q.DL ,
3847
+ if (Q.DT ->dominates (Edge0, Q.CxtI ->getParent ()) &&
3848
+ isImpliedCondition (Cond, ICmpInst::ICMP_NE, V1, V2, Q.DL ,
3848
3849
/* LHSIsTrue=*/ true , Depth)
3849
- .value_or (false ) &&
3850
- Q.DT ->dominates (Edge0, Q.CxtI ->getParent ()))
3850
+ .value_or (false ))
3851
3851
return true ;
3852
3852
3853
3853
BasicBlockEdge Edge1 (BI->getParent (), BI->getSuccessor (1 ));
3854
- if (isImpliedCondition (Cond, ICmpInst::ICMP_NE, V1, V2, Q.DL ,
3854
+ if (Q.DT ->dominates (Edge1, Q.CxtI ->getParent ()) &&
3855
+ isImpliedCondition (Cond, ICmpInst::ICMP_NE, V1, V2, Q.DL ,
3855
3856
/* LHSIsTrue=*/ false , Depth)
3856
- .value_or (false ) &&
3857
- Q.DT ->dominates (Edge1, Q.CxtI ->getParent ()))
3857
+ .value_or (false ))
3858
3858
return true ;
3859
3859
}
3860
3860
}
0 commit comments