Lines Matching refs:Rem

376 bool llvm::expandRemainder(BinaryOperator *Rem) {  in expandRemainder()  argument
377 assert((Rem->getOpcode() == Instruction::SRem || in expandRemainder()
378 Rem->getOpcode() == Instruction::URem) && in expandRemainder()
381 IRBuilder<> Builder(Rem); in expandRemainder()
383 assert(!Rem->getType()->isVectorTy() && "Div over vectors not supported"); in expandRemainder()
384 assert((Rem->getType()->getIntegerBitWidth() == 32 || in expandRemainder()
385 Rem->getType()->getIntegerBitWidth() == 64) && in expandRemainder()
389 if (Rem->getOpcode() == Instruction::SRem) { in expandRemainder()
390 Value *Remainder = generateSignedRemainderCode(Rem->getOperand(0), in expandRemainder()
391 Rem->getOperand(1), Builder); in expandRemainder()
394 bool IsInsertPoint = Rem->getIterator() == Builder.GetInsertPoint(); in expandRemainder()
395 Rem->replaceAllUsesWith(Remainder); in expandRemainder()
396 Rem->dropAllReferences(); in expandRemainder()
397 Rem->eraseFromParent(); in expandRemainder()
406 Rem = BO; in expandRemainder()
409 Value *Remainder = generatedUnsignedRemainderCode(Rem->getOperand(0), in expandRemainder()
410 Rem->getOperand(1), in expandRemainder()
413 Rem->replaceAllUsesWith(Remainder); in expandRemainder()
414 Rem->dropAllReferences(); in expandRemainder()
415 Rem->eraseFromParent(); in expandRemainder()
486 bool llvm::expandRemainderUpTo32Bits(BinaryOperator *Rem) { in expandRemainderUpTo32Bits() argument
487 assert((Rem->getOpcode() == Instruction::SRem || in expandRemainderUpTo32Bits()
488 Rem->getOpcode() == Instruction::URem) && in expandRemainderUpTo32Bits()
491 Type *RemTy = Rem->getType(); in expandRemainderUpTo32Bits()
500 return expandRemainder(Rem); in expandRemainderUpTo32Bits()
504 IRBuilder<> Builder(Rem); in expandRemainderUpTo32Bits()
512 if (Rem->getOpcode() == Instruction::SRem) { in expandRemainderUpTo32Bits()
513 ExtDividend = Builder.CreateSExt(Rem->getOperand(0), Int32Ty); in expandRemainderUpTo32Bits()
514 ExtDivisor = Builder.CreateSExt(Rem->getOperand(1), Int32Ty); in expandRemainderUpTo32Bits()
517 ExtDividend = Builder.CreateZExt(Rem->getOperand(0), Int32Ty); in expandRemainderUpTo32Bits()
518 ExtDivisor = Builder.CreateZExt(Rem->getOperand(1), Int32Ty); in expandRemainderUpTo32Bits()
523 Rem->replaceAllUsesWith(Trunc); in expandRemainderUpTo32Bits()
524 Rem->dropAllReferences(); in expandRemainderUpTo32Bits()
525 Rem->eraseFromParent(); in expandRemainderUpTo32Bits()
535 bool llvm::expandRemainderUpTo64Bits(BinaryOperator *Rem) { in expandRemainderUpTo64Bits() argument
536 assert((Rem->getOpcode() == Instruction::SRem || in expandRemainderUpTo64Bits()
537 Rem->getOpcode() == Instruction::URem) && in expandRemainderUpTo64Bits()
540 Type *RemTy = Rem->getType(); in expandRemainderUpTo64Bits()
548 return expandRemainder(Rem); in expandRemainderUpTo64Bits()
552 IRBuilder<> Builder(Rem); in expandRemainderUpTo64Bits()
560 if (Rem->getOpcode() == Instruction::SRem) { in expandRemainderUpTo64Bits()
561 ExtDividend = Builder.CreateSExt(Rem->getOperand(0), Int64Ty); in expandRemainderUpTo64Bits()
562 ExtDivisor = Builder.CreateSExt(Rem->getOperand(1), Int64Ty); in expandRemainderUpTo64Bits()
565 ExtDividend = Builder.CreateZExt(Rem->getOperand(0), Int64Ty); in expandRemainderUpTo64Bits()
566 ExtDivisor = Builder.CreateZExt(Rem->getOperand(1), Int64Ty); in expandRemainderUpTo64Bits()
571 Rem->replaceAllUsesWith(Trunc); in expandRemainderUpTo64Bits()
572 Rem->dropAllReferences(); in expandRemainderUpTo64Bits()
573 Rem->eraseFromParent(); in expandRemainderUpTo64Bits()