From: Chris Lattner Date: Sat, 3 Mar 2007 05:24:06 +0000 (+0000) Subject: new testcase: instcombine should remove all the casts. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=cc08feb999572c8cc3dfb60417aa8c55d1df6371;p=oota-llvm.git new testcase: instcombine should remove all the casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34869 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Transforms/InstCombine/cast2.ll b/test/Transforms/InstCombine/cast2.ll new file mode 100644 index 00000000000..5151f8448c6 --- /dev/null +++ b/test/Transforms/InstCombine/cast2.ll @@ -0,0 +1,24 @@ +; Tests to make sure elimination of casts is working correctly +; RUN: llvm-as < %s | opt -instcombine -disable-output && +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast + +define i16 @test1(i16 %a) { + %tmp = zext i16 %a to i32 ; [#uses=2] + %tmp21 = lshr i32 %tmp, 8 ; [#uses=1] + %tmp5 = shl i32 %tmp, 8 ; [#uses=1] + %tmp.upgrd.32 = or i32 %tmp21, %tmp5 ; [#uses=1] + %tmp.upgrd.3 = trunc i32 %tmp.upgrd.32 to i16 ; [#uses=1] + ret i16 %tmp.upgrd.3 +} + +define i16 @test2(i16 %a) { + %tmp = zext i16 %a to i32 ; [#uses=2] + %tmp21 = lshr i32 %tmp, 9 ; [#uses=1] + %tmp5 = shl i32 %tmp, 8 ; [#uses=1] + %tmp.upgrd.32 = or i32 %tmp21, %tmp5 ; [#uses=1] + %tmp.upgrd.3 = trunc i32 %tmp.upgrd.32 to i16 ; [#uses=1] + ret i16 %tmp.upgrd.3 +} + + +