From cc08feb999572c8cc3dfb60417aa8c55d1df6371 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 3 Mar 2007 05:24:06 +0000 Subject: [PATCH] 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 --- test/Transforms/InstCombine/cast2.ll | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 test/Transforms/InstCombine/cast2.ll 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 +} + + + -- 2.34.1