Lines Matching refs:BO

137   auto *BO = dyn_cast<BinaryOperator>(Start);  in matchStridedStart()  local
138 if (!BO || (BO->getOpcode() != Instruction::Add && in matchStridedStart()
139 BO->getOpcode() != Instruction::Or && in matchStridedStart()
140 BO->getOpcode() != Instruction::Shl && in matchStridedStart()
141 BO->getOpcode() != Instruction::Mul)) in matchStridedStart()
144 if (BO->getOpcode() == Instruction::Or && in matchStridedStart()
145 !cast<PossiblyDisjointInst>(BO)->isDisjoint()) in matchStridedStart()
150 Value *Splat = getSplatValue(BO->getOperand(1)); in matchStridedStart()
151 if (!Splat && Instruction::isCommutative(BO->getOpcode())) { in matchStridedStart()
152 Splat = getSplatValue(BO->getOperand(0)); in matchStridedStart()
159 std::tie(Start, Stride) = matchStridedStart(BO->getOperand(OtherIndex), in matchStridedStart()
164 Builder.SetInsertPoint(BO); in matchStridedStart()
168 switch (BO->getOpcode()) { in matchStridedStart()
244 auto *BO = dyn_cast<BinaryOperator>(Index); in matchStridedRecurrence() local
245 if (!BO) in matchStridedRecurrence()
248 switch (BO->getOpcode()) { in matchStridedRecurrence()
253 if (!cast<PossiblyDisjointInst>(BO)->isDisjoint()) in matchStridedRecurrence()
266 if (isa<Instruction>(BO->getOperand(0)) && in matchStridedRecurrence()
267 L->contains(cast<Instruction>(BO->getOperand(0)))) { in matchStridedRecurrence()
268 Index = cast<Instruction>(BO->getOperand(0)); in matchStridedRecurrence()
269 OtherOp = BO->getOperand(1); in matchStridedRecurrence()
270 } else if (isa<Instruction>(BO->getOperand(1)) && in matchStridedRecurrence()
271 L->contains(cast<Instruction>(BO->getOperand(1))) && in matchStridedRecurrence()
272 Instruction::isCommutative(BO->getOpcode())) { in matchStridedRecurrence()
273 Index = cast<Instruction>(BO->getOperand(1)); in matchStridedRecurrence()
274 OtherOp = BO->getOperand(0); in matchStridedRecurrence()
303 switch (BO->getOpcode()) { in matchStridedRecurrence()