llvm-6502/lib/Transforms/InstCombine
Benjamin Kramer 2f7228b80c Generalize the and-icmp-select instcombine further by allowing selects of the form
(x & 2^n) ? 2^m+C : C

we can offset both arms by C to get the "(x & 2^n) ? 2^m : 0" form, optimize the
select to a shift and apply the offset afterwards.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121609 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-11 10:49:22 +00:00
..
CMakeLists.txt
InstCombine.h Rename SimplifyDistributed to the more meaningfull name SimplifyByFactorizing. 2010-11-23 20:42:39 +00:00
InstCombineAddSub.cpp Rename SimplifyDistributed to the more meaningfull name SimplifyByFactorizing. 2010-11-23 20:42:39 +00:00
InstCombineAndOrXor.cpp Rename SimplifyDistributed to the more meaningfull name SimplifyByFactorizing. 2010-11-23 20:42:39 +00:00
InstCombineCalls.cpp
InstCombineCasts.cpp
InstCombineCompares.cpp PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and 2010-12-07 08:25:19 +00:00
InstCombineLoadStoreAlloca.cpp
InstCombineMulDivRem.cpp PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and 2010-12-07 08:25:19 +00:00
InstCombinePHI.cpp
InstCombineSelect.cpp Generalize the and-icmp-select instcombine further by allowing selects of the form 2010-12-11 10:49:22 +00:00
InstCombineShifts.cpp Really check that the bits that will become zero are actually already zero 2010-12-09 02:52:17 +00:00
InstCombineSimplifyDemanded.cpp PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and 2010-12-07 08:25:19 +00:00
InstCombineVectorOps.cpp PR5207: Rename overloaded APInt methods set(), clear(), flip() to 2010-12-01 08:53:58 +00:00
InstCombineWorklist.h
InstructionCombining.cpp Transform (extractvalue (load P), ...) to (load (gep P, 0, ...)) if the load has no other uses, shrinking the load. 2010-11-29 21:56:20 +00:00
Makefile