LLVM Bugzilla is read-only and represents the historical archive of all LLVM issues filled before November 26, 2021. Use github to submit LLVM bugs

Bug 1473 - dagcombine miscompilation of shifts
Summary: dagcombine miscompilation of shifts
Status: RESOLVED FIXED
Alias: None
Product: libraries
Classification: Unclassified
Component: Common Code Generator Code (show other bugs)
Version: trunk
Hardware: All All
: P normal
Assignee: Unassigned LLVM Bugs
URL:
Keywords: miscompilation
Depends on:
Blocks:
 
Reported: 2007-05-30 11:16 PDT by Chris Lattner
Modified: 2010-02-22 12:54 PST (History)
1 user (show)

See Also:
Fixed By Commit(s):


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Lattner 2007-05-30 11:16:34 PDT
dag combine is miscompiling this on ppc:
define i8 @foo(i16 zext  %a) zext  {
entry:
        %tmp2 = lshr i16 %a, 10         ; <i16> [#uses=1]
        %tmp23 = trunc i16 %tmp2 to i8          ; <i8> [#uses=1]
        %tmp4 = shl i8 %tmp23, 1                ; <i8> [#uses=1]
        %tmp5 = and i8 %tmp4, 2         ; <i8> [#uses=1]
        ret i8 %tmp5
}

-Chris
Comment 1 Chris Lattner 2007-05-30 11:30:48 PDT
Fixed.  Patch here:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070528/050089.html

Testcase here:  CodeGen/PowerPC/2007-05-30-dagcombine-miscomp.ll

-Chris