From: Chris Lattner Date: Sat, 1 Jan 2005 16:13:43 +0000 (+0000) Subject: Add a bunch of tests for cases that should be eliminated. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=296fcbaf2c0079916f10c10b53effbba6db3096c;p=oota-llvm.git Add a bunch of tests for cases that should be eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19217 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Transforms/InstCombine/cast.ll b/test/Transforms/InstCombine/cast.ll index f0b99568f48..bf7d405059f 100644 --- a/test/Transforms/InstCombine/cast.ll +++ b/test/Transforms/InstCombine/cast.ll @@ -128,3 +128,30 @@ bool %test20(bool %B) { %D = setlt int %C, -1 ret bool %D ;; false } + +uint %test21(uint %X) { + %Y = cast uint %X to sbyte + %Z = cast sbyte %Y to uint ;; sext -> zext -> and -> nop + %RV = and uint %Z, 255 + ret uint %RV +} + +uint %test22(uint %X) { + %Y = cast uint %X to sbyte + %Z = cast sbyte %Y to uint ;; sext -> zext -> and -> nop + %RV = shl uint %Z, ubyte 24 + ret uint %RV +} + +int %test23(int %X) { + %Y = cast int %X to ushort ;; Turn into an AND even though X + %Z = cast ushort %Y to int ;; and Z are signed. + ret int %Z +} + +bool %test24(bool %C) { + %X = select bool %C, uint 14, uint 1234 + %Y = cast uint %X to bool ;; Fold cast into select + ret bool %Y +} +