From: Chris Lattner Date: Sun, 8 Sep 2002 21:37:49 +0000 (+0000) Subject: New testcase for a bug identified by Vikram X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=05eb9581b2e327032f3ace036ecc34969f17bd9f;p=oota-llvm.git New testcase for a bug identified by Vikram git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3625 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Transforms/InstCombine/2002-09-08-PointerShiftBug.ll b/test/Transforms/InstCombine/2002-09-08-PointerShiftBug.ll new file mode 100644 index 00000000000..7c84cf25939 --- /dev/null +++ b/test/Transforms/InstCombine/2002-09-08-PointerShiftBug.ll @@ -0,0 +1,20 @@ +; This tests for a bug exposed by the Olden health benchmark where a shift of a +; pointer was thrown away, causing this whole example to be "optimized" away, +; which was quite bogus. Check that this is fixed. +; +; RUN: as < %s | opt -instcombine | dis | grep reg162 + +implementation ; Functions: + +int %test(uint %cann-indvar) { + %reg189-scale = mul uint %cann-indvar, 4294967295 ; [#uses=1] + %reg189 = add uint %reg189-scale, 3 ; [#uses=1] + %cast362 = cast uint %reg189 to int ; [#uses=1] + %cast363 = cast int %cast362 to sbyte* ; [#uses=2] + %reg160 = shl sbyte* %cast363, ubyte 1 ; [#uses=1] + %reg161 = add sbyte* %reg160, %cast363 ; [#uses=1] + %reg162 = shl sbyte* %reg161, ubyte 2 ; [#uses=1] + %RV = cast sbyte* %reg162 to int ; [#uses=1] + ret int %RV +} +