Lines Matching refs:Instruction

110 static Instruction::BinaryOps mapBinOpcode(unsigned Opcode) {  in mapBinOpcode()
113 case Instruction::FAdd: return Instruction::Add; in mapBinOpcode()
114 case Instruction::FSub: return Instruction::Sub; in mapBinOpcode()
115 case Instruction::FMul: return Instruction::Mul; in mapBinOpcode()
128 for (Instruction &I : BB) { in findRoots()
133 case Instruction::FPToUI: in findRoots()
134 case Instruction::FPToSI: in findRoots()
137 case Instruction::FCmp: in findRoots()
148 void Float2IntPass::seen(Instruction *I, ConstantRange R) { in seen()
185 std::deque<Instruction*> Worklist(Roots.begin(), Roots.end()); in walkBackwards()
187 Instruction *I = Worklist.back(); in walkBackwards()
201 case Instruction::UIToFP: in walkBackwards()
202 case Instruction::SIToFP: { in walkBackwards()
207 auto CastOp = (Instruction::CastOps)I->getOpcode(); in walkBackwards()
212 case Instruction::FNeg: in walkBackwards()
213 case Instruction::FAdd: in walkBackwards()
214 case Instruction::FSub: in walkBackwards()
215 case Instruction::FMul: in walkBackwards()
216 case Instruction::FPToUI: in walkBackwards()
217 case Instruction::FPToSI: in walkBackwards()
218 case Instruction::FCmp: in walkBackwards()
224 if (Instruction *OI = dyn_cast<Instruction>(O)) { in walkBackwards()
239 Optional<ConstantRange> Float2IntPass::calcRange(Instruction *I) { in calcRange()
242 if (Instruction *OI = dyn_cast<Instruction>(O)) { in calcRange()
288 case Instruction::UIToFP: in calcRange()
289 case Instruction::SIToFP: in calcRange()
292 case Instruction::FNeg: { in calcRange()
299 case Instruction::FAdd: in calcRange()
300 case Instruction::FSub: in calcRange()
301 case Instruction::FMul: { in calcRange()
303 auto BinOp = (Instruction::BinaryOps) I->getOpcode(); in calcRange()
311 case Instruction::FPToUI: in calcRange()
312 case Instruction::FPToSI: { in calcRange()
316 auto CastOp = (Instruction::CastOps)I->getOpcode(); in calcRange()
320 case Instruction::FCmp: in calcRange()
329 std::deque<Instruction *> Worklist; in walkForwards()
335 Instruction *I = Worklist.back(); in walkForwards()
358 Instruction *I = *MI; in validateAndTransform()
373 Instruction *UI = dyn_cast<Instruction>(U); in validateAndTransform()
429 Value *Float2IntPass::convert(Instruction *I, Type *ToTy) { in convert()
437 if (I->getOpcode() == Instruction::UIToFP || in convert()
438 I->getOpcode() == Instruction::SIToFP) { in convert()
440 } else if (Instruction *VI = dyn_cast<Instruction>(V)) { in convert()
460 case Instruction::FPToUI: in convert()
464 case Instruction::FPToSI: in convert()
468 case Instruction::FCmp: { in convert()
475 case Instruction::UIToFP: in convert()
479 case Instruction::SIToFP: in convert()
483 case Instruction::FNeg: in convert()
487 case Instruction::FAdd: in convert()
488 case Instruction::FSub: in convert()
489 case Instruction::FMul: in convert()
513 ECs = EquivalenceClasses<Instruction*>(); in runImpl()