Lines Matching refs:Rem

374 bool llvm::expandRemainder(BinaryOperator *Rem) {  in expandRemainder()  argument
375 assert((Rem->getOpcode() == Instruction::SRem || in expandRemainder()
376 Rem->getOpcode() == Instruction::URem) && in expandRemainder()
379 IRBuilder<> Builder(Rem); in expandRemainder()
381 assert(!Rem->getType()->isVectorTy() && "Div over vectors not supported"); in expandRemainder()
382 assert((Rem->getType()->getIntegerBitWidth() == 32 || in expandRemainder()
383 Rem->getType()->getIntegerBitWidth() == 64) && in expandRemainder()
387 if (Rem->getOpcode() == Instruction::SRem) { in expandRemainder()
388 Value *Remainder = generateSignedRemainderCode(Rem->getOperand(0), in expandRemainder()
389 Rem->getOperand(1), Builder); in expandRemainder()
392 bool IsInsertPoint = Rem->getIterator() == Builder.GetInsertPoint(); in expandRemainder()
393 Rem->replaceAllUsesWith(Remainder); in expandRemainder()
394 Rem->dropAllReferences(); in expandRemainder()
395 Rem->eraseFromParent(); in expandRemainder()
404 Rem = BO; in expandRemainder()
407 Value *Remainder = generatedUnsignedRemainderCode(Rem->getOperand(0), in expandRemainder()
408 Rem->getOperand(1), in expandRemainder()
411 Rem->replaceAllUsesWith(Remainder); in expandRemainder()
412 Rem->dropAllReferences(); in expandRemainder()
413 Rem->eraseFromParent(); in expandRemainder()
484 bool llvm::expandRemainderUpTo32Bits(BinaryOperator *Rem) { in expandRemainderUpTo32Bits() argument
485 assert((Rem->getOpcode() == Instruction::SRem || in expandRemainderUpTo32Bits()
486 Rem->getOpcode() == Instruction::URem) && in expandRemainderUpTo32Bits()
489 Type *RemTy = Rem->getType(); in expandRemainderUpTo32Bits()
498 return expandRemainder(Rem); in expandRemainderUpTo32Bits()
502 IRBuilder<> Builder(Rem); in expandRemainderUpTo32Bits()
510 if (Rem->getOpcode() == Instruction::SRem) { in expandRemainderUpTo32Bits()
511 ExtDividend = Builder.CreateSExt(Rem->getOperand(0), Int32Ty); in expandRemainderUpTo32Bits()
512 ExtDivisor = Builder.CreateSExt(Rem->getOperand(1), Int32Ty); in expandRemainderUpTo32Bits()
515 ExtDividend = Builder.CreateZExt(Rem->getOperand(0), Int32Ty); in expandRemainderUpTo32Bits()
516 ExtDivisor = Builder.CreateZExt(Rem->getOperand(1), Int32Ty); in expandRemainderUpTo32Bits()
521 Rem->replaceAllUsesWith(Trunc); in expandRemainderUpTo32Bits()
522 Rem->dropAllReferences(); in expandRemainderUpTo32Bits()
523 Rem->eraseFromParent(); in expandRemainderUpTo32Bits()
533 bool llvm::expandRemainderUpTo64Bits(BinaryOperator *Rem) { in expandRemainderUpTo64Bits() argument
534 assert((Rem->getOpcode() == Instruction::SRem || in expandRemainderUpTo64Bits()
535 Rem->getOpcode() == Instruction::URem) && in expandRemainderUpTo64Bits()
538 Type *RemTy = Rem->getType(); in expandRemainderUpTo64Bits()
546 return expandRemainder(Rem); in expandRemainderUpTo64Bits()
550 IRBuilder<> Builder(Rem); in expandRemainderUpTo64Bits()
558 if (Rem->getOpcode() == Instruction::SRem) { in expandRemainderUpTo64Bits()
559 ExtDividend = Builder.CreateSExt(Rem->getOperand(0), Int64Ty); in expandRemainderUpTo64Bits()
560 ExtDivisor = Builder.CreateSExt(Rem->getOperand(1), Int64Ty); in expandRemainderUpTo64Bits()
563 ExtDividend = Builder.CreateZExt(Rem->getOperand(0), Int64Ty); in expandRemainderUpTo64Bits()
564 ExtDivisor = Builder.CreateZExt(Rem->getOperand(1), Int64Ty); in expandRemainderUpTo64Bits()
569 Rem->replaceAllUsesWith(Trunc); in expandRemainderUpTo64Bits()
570 Rem->dropAllReferences(); in expandRemainderUpTo64Bits()
571 Rem->eraseFromParent(); in expandRemainderUpTo64Bits()