llvm-6502/lib
Chris Lattner 783ccdb5c4 Add some simplifications for demanded bits, this allows instcombine to turn:
define i64 @test(i64 %A, i32 %B) {
        %tmp12 = zext i32 %B to i64             ; <i64> [#uses=1]
        %tmp3 = shl i64 %tmp12, 32              ; <i64> [#uses=1]
        %tmp5 = add i64 %tmp3, %A               ; <i64> [#uses=1]
        %tmp6 = and i64 %tmp5, 123              ; <i64> [#uses=1]
        ret i64 %tmp6
}

into:

define i64 @test(i64 %A, i32 %B) {
        %tmp6 = and i64 %A, 123         ; <i64> [#uses=1]
        ret i64 %tmp6
}

This implements Transforms/InstCombine/add2.ll:test1


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34919 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 00:02:29 +00:00
..
Analysis Unbreak VC++ build. 2007-03-05 00:00:42 +00:00
Archive move archive-specific stuff out of bcreader into archive library. 2007-02-07 23:53:17 +00:00
AsmParser Regenerate. 2007-03-01 19:41:47 +00:00
Bytecode Use a simpler constructor for ConstantInt. 2007-03-01 20:25:31 +00:00
CodeGen Unbreak VC++ build. 2007-03-05 00:00:42 +00:00
Debugger Don't use <sstream> in Streams.h but <iosfwd> instead. 2006-12-07 23:41:45 +00:00
ExecutionEngine Remove unnecessary #include. 2007-03-03 18:29:16 +00:00
Linker For PR1195: 2007-02-15 02:26:10 +00:00
Support Unbreak VC++ build. 2007-03-05 00:00:42 +00:00
System fix typo 2007-03-04 06:36:24 +00:00
Target Unbreak VC++ build. 2007-03-05 00:00:42 +00:00
Transforms Add some simplifications for demanded bits, this allows instcombine to turn: 2007-03-05 00:02:29 +00:00
VMCore Unbreak VC++ build. 2007-03-05 00:00:42 +00:00
Makefile Changes to support making the shift instructions be true BinaryOperators. 2007-02-02 02:16:23 +00:00