Lines Matching refs:Rem

91     void simplifyIVRemainder(BinaryOperator *Rem, Value *IVOperand,
93 void replaceRemWithNumerator(BinaryOperator *Rem);
94 void replaceRemWithNumeratorOrZero(BinaryOperator *Rem);
95 void replaceSRemWithURem(BinaryOperator *Rem);
340 void SimplifyIndvar::replaceSRemWithURem(BinaryOperator *Rem) { in replaceSRemWithURem() argument
341 auto *N = Rem->getOperand(0), *D = Rem->getOperand(1); in replaceSRemWithURem()
343 Rem->getName() + ".urem", Rem); in replaceSRemWithURem()
344 Rem->replaceAllUsesWith(URem); in replaceSRemWithURem()
345 LLVM_DEBUG(dbgs() << "INDVARS: Simplified srem: " << *Rem << '\n'); in replaceSRemWithURem()
348 DeadInsts.emplace_back(Rem); in replaceSRemWithURem()
352 void SimplifyIndvar::replaceRemWithNumerator(BinaryOperator *Rem) { in replaceRemWithNumerator() argument
353 Rem->replaceAllUsesWith(Rem->getOperand(0)); in replaceRemWithNumerator()
354 LLVM_DEBUG(dbgs() << "INDVARS: Simplified rem: " << *Rem << '\n'); in replaceRemWithNumerator()
357 DeadInsts.emplace_back(Rem); in replaceRemWithNumerator()
361 void SimplifyIndvar::replaceRemWithNumeratorOrZero(BinaryOperator *Rem) { in replaceRemWithNumeratorOrZero() argument
362 auto *T = Rem->getType(); in replaceRemWithNumeratorOrZero()
363 auto *N = Rem->getOperand(0), *D = Rem->getOperand(1); in replaceRemWithNumeratorOrZero()
364 ICmpInst *ICmp = new ICmpInst(Rem, ICmpInst::ICMP_EQ, N, D); in replaceRemWithNumeratorOrZero()
366 SelectInst::Create(ICmp, ConstantInt::get(T, 0), N, "iv.rem", Rem); in replaceRemWithNumeratorOrZero()
367 Rem->replaceAllUsesWith(Sel); in replaceRemWithNumeratorOrZero()
368 LLVM_DEBUG(dbgs() << "INDVARS: Simplified rem: " << *Rem << '\n'); in replaceRemWithNumeratorOrZero()
371 DeadInsts.emplace_back(Rem); in replaceRemWithNumeratorOrZero()
376 void SimplifyIndvar::simplifyIVRemainder(BinaryOperator *Rem, Value *IVOperand, in simplifyIVRemainder() argument
378 auto *NValue = Rem->getOperand(0); in simplifyIVRemainder()
379 auto *DValue = Rem->getOperand(1); in simplifyIVRemainder()
390 const Loop *ICmpLoop = LI->getLoopFor(Rem->getParent()); in simplifyIVRemainder()
405 replaceRemWithNumerator(Rem); in simplifyIVRemainder()
409 auto *T = Rem->getType(); in simplifyIVRemainder()
412 replaceRemWithNumeratorOrZero(Rem); in simplifyIVRemainder()
422 replaceSRemWithURem(Rem); in simplifyIVRemainder()