Lines Matching refs:Value
13 // runtime it is profitable to check the value of the operands, and if they are
31 Value *Dividend;
32 Value *Divisor;
34 DivOpInfo(bool InSignedOp, Value *InDividend, Value *InDivisor)
75 // value of the operands and uses a shorter-faster div/rem instruction when
86 Value *Dividend = Instr->getOperand(0);
87 Value *Divisor = Instr->getOperand(1);
106 Value *SlowQuotientV;
107 Value *SlowRemainderV;
122 Value *ShortDivisorV = FastBuilder.CreateCast(Instruction::Trunc, Divisor,
124 Value *ShortDividendV = FastBuilder.CreateCast(Instruction::Trunc, Dividend,
128 Value *ShortQuotientV = FastBuilder.CreateExactUDiv(ShortDividendV,
130 Value *ShortRemainderV = FastBuilder.CreateURem(ShortDividendV,
132 Value *FastQuotientV = FastBuilder.CreateCast(Instruction::ZExt,
135 Value *FastRemainderV = FastBuilder.CreateCast(Instruction::ZExt,
156 // Combine operands into a single value with OR for value testing below
159 Value *OrV = MainBuilder.CreateOr(Dividend, Divisor);
164 Value *AndV = MainBuilder.CreateAnd(OrV, BitMask);
167 Value *ZeroV = ConstantInt::getSigned(Dividend->getType(), 0);
168 Value *CmpV = MainBuilder.CreateICmpEQ(AndV, ZeroV);
177 DivPhiNodes Value(QuoPhi, RemPhi);
178 PerBBDivCache.insert(std::pair<DivOpInfo, DivPhiNodes>(Key, Value));
203 // Replace operation value with previously generated phi node
204 DivPhiNodes &Value = CacheI->second;
207 J->replaceAllUsesWith(Value.Quotient);
210 J->replaceAllUsesWith(Value.Remainder);