Lines Matching defs:Opnd1
1257 // Helper function of OptimizeXor(). It tries to simplify "Opnd1 ^ ConstOpnd"
1263 bool ReassociatePass::CombineXorOpnd(BasicBlock::iterator It, XorOpnd *Opnd1,
1269 if (!Opnd1->isOrExpr() || Opnd1->getConstPart().isZero())
1272 if (!Opnd1->getValue()->hasOneUse())
1275 const APInt &C1 = Opnd1->getConstPart();
1279 Value *X = Opnd1->getSymbolicPart();
1284 if (Instruction *T = dyn_cast<Instruction>(Opnd1->getValue()))
1290 // "Opnd1 ^ Opnd2 ^ ConstOpnd" into "R ^ C", where C would be 0, and R is a
1297 bool ReassociatePass::CombineXorOpnd(BasicBlock::iterator It, XorOpnd *Opnd1,
1300 Value *X = Opnd1->getSymbolicPart();
1304 // This many instruction become dead.(At least "Opnd1 ^ Opnd2" will die.)
1306 if (Opnd1->getValue()->hasOneUse())
1317 if (Opnd1->isOrExpr() != Opnd2->isOrExpr()) {
1319 std::swap(Opnd1, Opnd2);
1321 const APInt &C1 = Opnd1->getConstPart();
1334 } else if (Opnd1->isOrExpr()) {
1337 const APInt &C1 = Opnd1->getConstPart();
1353 const APInt &C1 = Opnd1->getConstPart();
1361 if (Instruction *T = dyn_cast<Instruction>(Opnd1->getValue()))