Lines Matching refs:Value
33 static Value *generateSignedRemainderCode(Value *Dividend, Value *Divisor, in generateSignedRemainderCode()
57 Value *DividendSign = Builder.CreateAShr(Dividend, Shift); in generateSignedRemainderCode()
58 Value *DivisorSign = Builder.CreateAShr(Divisor, Shift); in generateSignedRemainderCode()
59 Value *DvdXor = Builder.CreateXor(Dividend, DividendSign); in generateSignedRemainderCode()
60 Value *DvsXor = Builder.CreateXor(Divisor, DivisorSign); in generateSignedRemainderCode()
61 Value *UDividend = Builder.CreateSub(DvdXor, DividendSign); in generateSignedRemainderCode()
62 Value *UDivisor = Builder.CreateSub(DvsXor, DivisorSign); in generateSignedRemainderCode()
63 Value *URem = Builder.CreateURem(UDividend, UDivisor); in generateSignedRemainderCode()
64 Value *Xored = Builder.CreateXor(URem, DividendSign); in generateSignedRemainderCode()
65 Value *SRem = Builder.CreateSub(Xored, DividendSign); in generateSignedRemainderCode()
79 static Value *generatedUnsignedRemainderCode(Value *Dividend, Value *Divisor, in generatedUnsignedRemainderCode()
88 Value *Quotient = Builder.CreateUDiv(Dividend, Divisor); in generatedUnsignedRemainderCode()
89 Value *Product = Builder.CreateMul(Divisor, Quotient); in generatedUnsignedRemainderCode()
90 Value *Remainder = Builder.CreateSub(Dividend, Product); in generatedUnsignedRemainderCode()
103 static Value *generateSignedDivisionCode(Value *Dividend, Value *Divisor, in generateSignedDivisionCode()
130 Value *Tmp = Builder.CreateAShr(Dividend, Shift); in generateSignedDivisionCode()
131 Value *Tmp1 = Builder.CreateAShr(Divisor, Shift); in generateSignedDivisionCode()
132 Value *Tmp2 = Builder.CreateXor(Tmp, Dividend); in generateSignedDivisionCode()
133 Value *U_Dvnd = Builder.CreateSub(Tmp2, Tmp); in generateSignedDivisionCode()
134 Value *Tmp3 = Builder.CreateXor(Tmp1, Divisor); in generateSignedDivisionCode()
135 Value *U_Dvsr = Builder.CreateSub(Tmp3, Tmp1); in generateSignedDivisionCode()
136 Value *Q_Sgn = Builder.CreateXor(Tmp1, Tmp); in generateSignedDivisionCode()
137 Value *Q_Mag = Builder.CreateUDiv(U_Dvnd, U_Dvsr); in generateSignedDivisionCode()
138 Value *Tmp4 = Builder.CreateXor(Q_Mag, Q_Sgn); in generateSignedDivisionCode()
139 Value *Q = Builder.CreateSub(Tmp4, Q_Sgn); in generateSignedDivisionCode()
150 static Value *generateUnsignedDivisionCode(Value *Dividend, Value *Divisor, in generateUnsignedDivisionCode()
251 Value *Ret0_1 = Builder.CreateICmpEQ(Divisor, Zero); in generateUnsignedDivisionCode()
252 Value *Ret0_2 = Builder.CreateICmpEQ(Dividend, Zero); in generateUnsignedDivisionCode()
253 Value *Ret0_3 = Builder.CreateOr(Ret0_1, Ret0_2); in generateUnsignedDivisionCode()
254 Value *Tmp0 = Builder.CreateCall(CTLZ, {Divisor, True}); in generateUnsignedDivisionCode()
255 Value *Tmp1 = Builder.CreateCall(CTLZ, {Dividend, True}); in generateUnsignedDivisionCode()
256 Value *SR = Builder.CreateSub(Tmp0, Tmp1); in generateUnsignedDivisionCode()
257 Value *Ret0_4 = Builder.CreateICmpUGT(SR, MSB); in generateUnsignedDivisionCode()
258 Value *Ret0 = Builder.CreateOr(Ret0_3, Ret0_4); in generateUnsignedDivisionCode()
259 Value *RetDividend = Builder.CreateICmpEQ(SR, MSB); in generateUnsignedDivisionCode()
260 Value *RetVal = Builder.CreateSelect(Ret0, Zero, Dividend); in generateUnsignedDivisionCode()
261 Value *EarlyRet = Builder.CreateOr(Ret0, RetDividend); in generateUnsignedDivisionCode()
271 Value *SR_1 = Builder.CreateAdd(SR, One); in generateUnsignedDivisionCode()
272 Value *Tmp2 = Builder.CreateSub(MSB, SR); in generateUnsignedDivisionCode()
273 Value *Q = Builder.CreateShl(Dividend, Tmp2); in generateUnsignedDivisionCode()
274 Value *SkipLoop = Builder.CreateICmpEQ(SR_1, Zero); in generateUnsignedDivisionCode()
282 Value *Tmp3 = Builder.CreateLShr(Dividend, SR_1); in generateUnsignedDivisionCode()
283 Value *Tmp4 = Builder.CreateAdd(Divisor, NegOne); in generateUnsignedDivisionCode()
309 Value *Tmp5 = Builder.CreateShl(R_1, One); in generateUnsignedDivisionCode()
310 Value *Tmp6 = Builder.CreateLShr(Q_2, MSB); in generateUnsignedDivisionCode()
311 Value *Tmp7 = Builder.CreateOr(Tmp5, Tmp6); in generateUnsignedDivisionCode()
312 Value *Tmp8 = Builder.CreateShl(Q_2, One); in generateUnsignedDivisionCode()
313 Value *Q_1 = Builder.CreateOr(Carry_1, Tmp8); in generateUnsignedDivisionCode()
314 Value *Tmp9 = Builder.CreateSub(Tmp4, Tmp7); in generateUnsignedDivisionCode()
315 Value *Tmp10 = Builder.CreateAShr(Tmp9, MSB); in generateUnsignedDivisionCode()
316 Value *Carry = Builder.CreateAnd(Tmp10, One); in generateUnsignedDivisionCode()
317 Value *Tmp11 = Builder.CreateAnd(Tmp10, Divisor); in generateUnsignedDivisionCode()
318 Value *R = Builder.CreateSub(Tmp7, Tmp11); in generateUnsignedDivisionCode()
319 Value *SR_2 = Builder.CreateAdd(SR_3, NegOne); in generateUnsignedDivisionCode()
320 Value *Tmp12 = Builder.CreateICmpEQ(SR_2, Zero); in generateUnsignedDivisionCode()
332 Value *Tmp13 = Builder.CreateShl(Q_3, One); in generateUnsignedDivisionCode()
333 Value *Q_4 = Builder.CreateOr(Carry_2, Tmp13); in generateUnsignedDivisionCode()
389 Value *Remainder = generateSignedRemainderCode(Rem->getOperand(0), in expandRemainder()
408 Value *Remainder = generatedUnsignedRemainderCode(Rem->getOperand(0), in expandRemainder()
448 Value *Quotient = generateSignedDivisionCode(Div->getOperand(0), in expandDivision()
468 Value *Quotient = generateUnsignedDivisionCode(Div->getOperand(0), in expandDivision()
505 Value *ExtDividend; in expandRemainderUpTo32Bits()
506 Value *ExtDivisor; in expandRemainderUpTo32Bits()
507 Value *ExtRem; in expandRemainderUpTo32Bits()
508 Value *Trunc; in expandRemainderUpTo32Bits()
553 Value *ExtDividend; in expandRemainderUpTo64Bits()
554 Value *ExtDivisor; in expandRemainderUpTo64Bits()
555 Value *ExtRem; in expandRemainderUpTo64Bits()
556 Value *Trunc; in expandRemainderUpTo64Bits()
602 Value *ExtDividend; in expandDivisionUpTo32Bits()
603 Value *ExtDivisor; in expandDivisionUpTo32Bits()
604 Value *ExtDiv; in expandDivisionUpTo32Bits()
605 Value *Trunc; in expandDivisionUpTo32Bits()
651 Value *ExtDividend; in expandDivisionUpTo64Bits()
652 Value *ExtDivisor; in expandDivisionUpTo64Bits()
653 Value *ExtDiv; in expandDivisionUpTo64Bits()
654 Value *Trunc; in expandDivisionUpTo64Bits()