Lines Matching refs:Opnd1
1174 // Helper function of OptimizeXor(). It tries to simplify "Opnd1 ^ ConstOpnd"
1180 bool ReassociatePass::CombineXorOpnd(Instruction *I, XorOpnd *Opnd1,
1186 if (!Opnd1->isOrExpr() || Opnd1->getConstPart().isNullValue())
1189 if (!Opnd1->getValue()->hasOneUse())
1192 const APInt &C1 = Opnd1->getConstPart();
1196 Value *X = Opnd1->getSymbolicPart();
1201 Opnd1->getValue()))
1207 // "Opnd1 ^ Opnd2 ^ ConstOpnd" into "R ^ C", where C would be 0, and R is a
1214 bool ReassociatePass::CombineXorOpnd(Instruction *I, XorOpnd *Opnd1,
1217 Value *X = Opnd1->getSymbolicPart();
1221 // This many instruction become dead.(At least "Opnd1 ^ Opnd2" will die.)
1223 if (Opnd1->getValue()->hasOneUse())
1234 if (Opnd1->isOrExpr() != Opnd2->isOrExpr()) {
1236 std::swap(Opnd1, Opnd2);
1238 const APInt &C1 = Opnd1->getConstPart();
1251 } else if (Opnd1->isOrExpr()) {
1254 const APInt &C1 = Opnd1->getConstPart();
1270 const APInt &C1 = Opnd1->getConstPart();
1278 if (Instruction *T = dyn_cast<Instruction>(Opnd1->getValue()))