Lines Matching refs:Rem

375 bool llvm::expandRemainder(BinaryOperator *Rem) {  in expandRemainder()  argument
376 assert((Rem->getOpcode() == Instruction::SRem || in expandRemainder()
377 Rem->getOpcode() == Instruction::URem) && in expandRemainder()
380 IRBuilder<> Builder(Rem); in expandRemainder()
382 assert(!Rem->getType()->isVectorTy() && "Div over vectors not supported"); in expandRemainder()
383 assert((Rem->getType()->getIntegerBitWidth() == 32 || in expandRemainder()
384 Rem->getType()->getIntegerBitWidth() == 64) && in expandRemainder()
388 if (Rem->getOpcode() == Instruction::SRem) { in expandRemainder()
389 Value *Remainder = generateSignedRemainderCode(Rem->getOperand(0), in expandRemainder()
390 Rem->getOperand(1), Builder); in expandRemainder()
393 bool IsInsertPoint = Rem->getIterator() == Builder.GetInsertPoint(); in expandRemainder()
394 Rem->replaceAllUsesWith(Remainder); in expandRemainder()
395 Rem->dropAllReferences(); in expandRemainder()
396 Rem->eraseFromParent(); in expandRemainder()
405 Rem = BO; in expandRemainder()
408 Value *Remainder = generatedUnsignedRemainderCode(Rem->getOperand(0), in expandRemainder()
409 Rem->getOperand(1), in expandRemainder()
412 Rem->replaceAllUsesWith(Remainder); in expandRemainder()
413 Rem->dropAllReferences(); in expandRemainder()
414 Rem->eraseFromParent(); in expandRemainder()
485 bool llvm::expandRemainderUpTo32Bits(BinaryOperator *Rem) { in expandRemainderUpTo32Bits() argument
486 assert((Rem->getOpcode() == Instruction::SRem || in expandRemainderUpTo32Bits()
487 Rem->getOpcode() == Instruction::URem) && in expandRemainderUpTo32Bits()
490 Type *RemTy = Rem->getType(); in expandRemainderUpTo32Bits()
499 return expandRemainder(Rem); in expandRemainderUpTo32Bits()
503 IRBuilder<> Builder(Rem); in expandRemainderUpTo32Bits()
511 if (Rem->getOpcode() == Instruction::SRem) { in expandRemainderUpTo32Bits()
512 ExtDividend = Builder.CreateSExt(Rem->getOperand(0), Int32Ty); in expandRemainderUpTo32Bits()
513 ExtDivisor = Builder.CreateSExt(Rem->getOperand(1), Int32Ty); in expandRemainderUpTo32Bits()
516 ExtDividend = Builder.CreateZExt(Rem->getOperand(0), Int32Ty); in expandRemainderUpTo32Bits()
517 ExtDivisor = Builder.CreateZExt(Rem->getOperand(1), Int32Ty); in expandRemainderUpTo32Bits()
522 Rem->replaceAllUsesWith(Trunc); in expandRemainderUpTo32Bits()
523 Rem->dropAllReferences(); in expandRemainderUpTo32Bits()
524 Rem->eraseFromParent(); in expandRemainderUpTo32Bits()
534 bool llvm::expandRemainderUpTo64Bits(BinaryOperator *Rem) { in expandRemainderUpTo64Bits() argument
535 assert((Rem->getOpcode() == Instruction::SRem || in expandRemainderUpTo64Bits()
536 Rem->getOpcode() == Instruction::URem) && in expandRemainderUpTo64Bits()
539 Type *RemTy = Rem->getType(); in expandRemainderUpTo64Bits()
547 return expandRemainder(Rem); in expandRemainderUpTo64Bits()
551 IRBuilder<> Builder(Rem); in expandRemainderUpTo64Bits()
559 if (Rem->getOpcode() == Instruction::SRem) { in expandRemainderUpTo64Bits()
560 ExtDividend = Builder.CreateSExt(Rem->getOperand(0), Int64Ty); in expandRemainderUpTo64Bits()
561 ExtDivisor = Builder.CreateSExt(Rem->getOperand(1), Int64Ty); in expandRemainderUpTo64Bits()
564 ExtDividend = Builder.CreateZExt(Rem->getOperand(0), Int64Ty); in expandRemainderUpTo64Bits()
565 ExtDivisor = Builder.CreateZExt(Rem->getOperand(1), Int64Ty); in expandRemainderUpTo64Bits()
570 Rem->replaceAllUsesWith(Trunc); in expandRemainderUpTo64Bits()
571 Rem->dropAllReferences(); in expandRemainderUpTo64Bits()
572 Rem->eraseFromParent(); in expandRemainderUpTo64Bits()