reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1944 if (SI.hasOneUse()) 1945 if (auto *Select = dyn_cast<SelectInst>(SI.user_back())) 1946 if (Select->getCondition() == SI.getCondition()) 1947 if (Select->getFalseValue() == SI.getTrueValue() || 1948 Select->getTrueValue() == SI.getFalseValue()) 1952 auto *CmpXchg = isExtractFromCmpXchg(SI.getCondition(), 1); 1959 if (auto *X = isExtractFromCmpXchg(SI.getTrueValue(), 0)) 1960 if (X == CmpXchg && X->getCompareOperand() == SI.getFalseValue()) { 1961 SI.setTrueValue(SI.getFalseValue()); 1961 SI.setTrueValue(SI.getFalseValue()); 1962 return &SI; 1968 if (auto *X = isExtractFromCmpXchg(SI.getFalseValue(), 0)) 1969 if (X == CmpXchg && X->getCompareOperand() == SI.getTrueValue()) { 1970 SI.setTrueValue(SI.getFalseValue()); 1970 SI.setTrueValue(SI.getFalseValue()); 1971 return &SI;