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
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