Lines Matching defs:Opnd1
1255 // Helper function of OptimizeXor(). It tries to simplify "Opnd1 ^ ConstOpnd"
1261 bool ReassociatePass::CombineXorOpnd(BasicBlock::iterator It, XorOpnd *Opnd1,
1267 if (!Opnd1->isOrExpr() || Opnd1->getConstPart().isZero())
1270 if (!Opnd1->getValue()->hasOneUse())
1273 const APInt &C1 = Opnd1->getConstPart();
1277 Value *X = Opnd1->getSymbolicPart();
1282 if (Instruction *T = dyn_cast<Instruction>(Opnd1->getValue()))
1288 // "Opnd1 ^ Opnd2 ^ ConstOpnd" into "R ^ C", where C would be 0, and R is a
1295 bool ReassociatePass::CombineXorOpnd(BasicBlock::iterator It, XorOpnd *Opnd1,
1298 Value *X = Opnd1->getSymbolicPart();
1302 // This many instruction become dead.(At least "Opnd1 ^ Opnd2" will die.)
1304 if (Opnd1->getValue()->hasOneUse())
1315 if (Opnd1->isOrExpr() != Opnd2->isOrExpr()) {
1317 std::swap(Opnd1, Opnd2);
1319 const APInt &C1 = Opnd1->getConstPart();
1332 } else if (Opnd1->isOrExpr()) {
1335 const APInt &C1 = Opnd1->getConstPart();
1351 const APInt &C1 = Opnd1->getConstPart();
1359 if (Instruction *T = dyn_cast<Instruction>(Opnd1->getValue()))