Lines Matching refs:Instruction

78 static Instruction::BinaryOps mapBinOpcode(unsigned Opcode) {  in mapBinOpcode()
81 case Instruction::FAdd: return Instruction::Add; in mapBinOpcode()
82 case Instruction::FSub: return Instruction::Sub; in mapBinOpcode()
83 case Instruction::FMul: return Instruction::Mul; in mapBinOpcode()
96 for (Instruction &I : BB) { in findRoots()
101 case Instruction::FPToUI: in findRoots()
102 case Instruction::FPToSI: in findRoots()
105 case Instruction::FCmp: in findRoots()
116 void Float2IntPass::seen(Instruction *I, ConstantRange R) { in seen()
153 std::deque<Instruction*> Worklist(Roots.begin(), Roots.end()); in walkBackwards()
155 Instruction *I = Worklist.back(); in walkBackwards()
169 case Instruction::UIToFP: in walkBackwards()
170 case Instruction::SIToFP: { in walkBackwards()
175 auto CastOp = (Instruction::CastOps)I->getOpcode(); in walkBackwards()
180 case Instruction::FNeg: in walkBackwards()
181 case Instruction::FAdd: in walkBackwards()
182 case Instruction::FSub: in walkBackwards()
183 case Instruction::FMul: in walkBackwards()
184 case Instruction::FPToUI: in walkBackwards()
185 case Instruction::FPToSI: in walkBackwards()
186 case Instruction::FCmp: in walkBackwards()
192 if (Instruction *OI = dyn_cast<Instruction>(O)) { in walkBackwards()
207 std::optional<ConstantRange> Float2IntPass::calcRange(Instruction *I) { in calcRange()
210 if (Instruction *OI = dyn_cast<Instruction>(O)) { in calcRange()
256 case Instruction::UIToFP: in calcRange()
257 case Instruction::SIToFP: in calcRange()
260 case Instruction::FNeg: { in calcRange()
267 case Instruction::FAdd: in calcRange()
268 case Instruction::FSub: in calcRange()
269 case Instruction::FMul: { in calcRange()
271 auto BinOp = (Instruction::BinaryOps) I->getOpcode(); in calcRange()
279 case Instruction::FPToUI: in calcRange()
280 case Instruction::FPToSI: { in calcRange()
284 auto CastOp = (Instruction::CastOps)I->getOpcode(); in calcRange()
288 case Instruction::FCmp: in calcRange()
297 std::deque<Instruction *> Worklist; in walkForwards()
303 Instruction *I = Worklist.back(); in walkForwards()
326 Instruction *I = *MI; in validateAndTransform()
341 Instruction *UI = dyn_cast<Instruction>(U); in validateAndTransform()
404 Value *Float2IntPass::convert(Instruction *I, Type *ToTy) { in convert()
412 if (I->getOpcode() == Instruction::UIToFP || in convert()
413 I->getOpcode() == Instruction::SIToFP) { in convert()
415 } else if (Instruction *VI = dyn_cast<Instruction>(V)) { in convert()
435 case Instruction::FPToUI: in convert()
439 case Instruction::FPToSI: in convert()
443 case Instruction::FCmp: { in convert()
450 case Instruction::UIToFP: in convert()
454 case Instruction::SIToFP: in convert()
458 case Instruction::FNeg: in convert()
462 case Instruction::FAdd: in convert()
463 case Instruction::FSub: in convert()
464 case Instruction::FMul: in convert()
488 ECs = EquivalenceClasses<Instruction*>(); in runImpl()