llvm-project/llvm/lib/Transforms
Sanjay Patel 30ef70b090 [InstCombine] fold X urem C -> X < C ? X : X - C when C is big (PR28672)
We already have the udiv variant of this transform, so I think this is ok for 
InstCombine too even though there is an increase in IR instructions. As the 
tests and TODO comments show, the transform can lead to follow-on combines.

This should fix: https://llvm.org/bugs/show_bug.cgi?id=28672

Differential Revision: https://reviews.llvm.org/D24527

llvm-svn: 282209
2016-09-22 22:36:26 +00:00
..
Coroutines [Coroutines] Part13: Handle single edge PHINodes across suspends 2016-09-09 05:39:00 +00:00
Hello Add auto-exporting of symbols from tools so that plugins work on Windows 2016-05-26 11:16:43 +00:00
IPO Change the basic block weight calculation algorithm to use max instead of voting. 2016-09-21 16:26:51 +00:00
InstCombine [InstCombine] fold X urem C -> X < C ? X : X - C when C is big (PR28672) 2016-09-22 22:36:26 +00:00
Instrumentation [compiler-rt] fix typo in option description [NFC] 2016-09-22 14:57:24 +00:00
ObjCARC Address Pete's review comment and define OrigArg on its own line. 2016-09-13 23:53:43 +00:00
Scalar Revert r282168 "GVN-hoist: fix store past load dependence analysis (PR30216)" 2016-09-22 21:20:53 +00:00
Utils Reapplying r281895 (and follow-up r281964) after fixing pr30468. 2016-09-22 14:13:25 +00:00
Vectorize [LV] Don't emit unused scalars for uniform instructions 2016-09-21 16:50:24 +00:00
CMakeLists.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00
LLVMBuild.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00