Lines Matching refs:Instruction
34 #include "llvm/IR/Instruction.h"
48 static void getRelevantOperands(Instruction *I, SmallVectorImpl<Value *> &Ops) {
51 case Instruction::Trunc:
52 case Instruction::ZExt:
53 case Instruction::SExt:
57 case Instruction::Add:
58 case Instruction::Sub:
59 case Instruction::Mul:
60 case Instruction::And:
61 case Instruction::Or:
62 case Instruction::Xor:
63 case Instruction::Shl:
64 case Instruction::LShr:
65 case Instruction::AShr:
66 case Instruction::UDiv:
67 case Instruction::URem:
68 case Instruction::InsertElement:
72 case Instruction::ExtractElement:
75 case Instruction::Select:
79 case Instruction::PHI:
90 SmallVector<Instruction *, 8> Stack;
104 auto *I = dyn_cast<Instruction>(Curr);
128 case Instruction::Trunc:
129 case Instruction::ZExt:
130 case Instruction::SExt:
136 case Instruction::Add:
137 case Instruction::Sub:
138 case Instruction::Mul:
139 case Instruction::And:
140 case Instruction::Or:
141 case Instruction::Xor:
142 case Instruction::Shl:
143 case Instruction::LShr:
144 case Instruction::AShr:
145 case Instruction::UDiv:
146 case Instruction::URem:
147 case Instruction::InsertElement:
148 case Instruction::ExtractElement:
149 case Instruction::Select: {
155 case Instruction::PHI: {
177 SmallVector<Instruction *, 8> Stack;
189 InstInfoMap[cast<Instruction>(Src)].ValidBitWidth = TruncBitWidth;
200 auto *I = cast<Instruction>(Curr);
213 if (auto *IOp = dyn_cast<Instruction>(Operand))
228 if (auto *IOp = dyn_cast<Instruction>(Operand)) {
239 unsigned MinBitWidth = InstInfoMap.lookup(cast<Instruction>(Src)).MinBitWidth;
276 Instruction *I = Itr.first;
281 if (auto *UI = dyn_cast<Instruction>(U))
308 Instruction *I = Itr.first;
316 if (I->getOpcode() == Instruction::LShr) {
321 if (I->getOpcode() == Instruction::AShr) {
329 if (I->getOpcode() == Instruction::UDiv ||
330 I->getOpcode() == Instruction::URem) {
374 auto *I = cast<Instruction>(V);
385 Instruction *I = Itr.first;
388 assert(!NodeInfo.NewValue && "Instruction has been evaluated");
394 case Instruction::Trunc:
395 case Instruction::ZExt:
396 case Instruction::SExt: {
409 Opc == Instruction::SExt);
426 case Instruction::Add:
427 case Instruction::Sub:
428 case Instruction::Mul:
429 case Instruction::And:
430 case Instruction::Or:
431 case Instruction::Xor:
432 case Instruction::Shl:
433 case Instruction::LShr:
434 case Instruction::AShr:
435 case Instruction::UDiv:
436 case Instruction::URem: {
439 Res = Builder.CreateBinOp((Instruction::BinaryOps)Opc, LHS, RHS);
442 if (auto *ResI = dyn_cast<Instruction>(Res))
446 case Instruction::ExtractElement: {
452 case Instruction::InsertElement: {
459 case Instruction::Select: {
466 case Instruction::PHI: {
477 if (auto *ResI = dyn_cast<Instruction>(Res))
494 if (auto *ResI = dyn_cast<Instruction>(Res))
515 // it, because {SExt, ZExt}Inst Instruction might have other users that was