@@ -3865,17 +3865,17 @@ static bool isKnownNonEqual(const Value *V1, const Value *V2,
3865
3865
for (BranchInst *BI : Q.DC ->conditionsFor (V1)) {
3866
3866
Value *Cond = BI->getCondition ();
3867
3867
BasicBlockEdge Edge0 (BI->getParent (), BI->getSuccessor (0 ));
3868
- if (isImpliedCondition (Cond, ICmpInst::ICMP_NE, V1, V2, Q.DL ,
3868
+ if (Q.DT ->dominates (Edge0, Q.CxtI ->getParent ()) &&
3869
+ isImpliedCondition (Cond, ICmpInst::ICMP_NE, V1, V2, Q.DL ,
3869
3870
/* LHSIsTrue=*/ true , Depth)
3870
- .value_or (false ) &&
3871
- Q.DT ->dominates (Edge0, Q.CxtI ->getParent ()))
3871
+ .value_or (false ))
3872
3872
return true ;
3873
3873
3874
3874
BasicBlockEdge Edge1 (BI->getParent (), BI->getSuccessor (1 ));
3875
- if (isImpliedCondition (Cond, ICmpInst::ICMP_NE, V1, V2, Q.DL ,
3875
+ if (Q.DT ->dominates (Edge1, Q.CxtI ->getParent ()) &&
3876
+ isImpliedCondition (Cond, ICmpInst::ICMP_NE, V1, V2, Q.DL ,
3876
3877
/* LHSIsTrue=*/ false , Depth)
3877
- .value_or (false ) &&
3878
- Q.DT ->dominates (Edge1, Q.CxtI ->getParent ()))
3878
+ .value_or (false ))
3879
3879
return true ;
3880
3880
}
3881
3881
}
0 commit comments