From: Chris Lattner Date: Thu, 15 Aug 2002 16:13:29 +0000 (+0000) Subject: Add a bunch of testcases for cast-of-casts that should be removed. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8decbcbbfe0587826d2adae04f83fea2e2575832;p=oota-llvm.git Add a bunch of testcases for cast-of-casts that should be removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3345 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Transforms/InstCombine/cast.ll b/test/Transforms/InstCombine/cast.ll index 5aa6368bdb1..a809fc4136f 100644 --- a/test/Transforms/InstCombine/cast.ll +++ b/test/Transforms/InstCombine/cast.ll @@ -25,3 +25,35 @@ ulong %test3(ulong %A) { ; This function should just use bitwise AND %c2 = cast ubyte %c1 to ulong ret ulong %c2 } + +uint %test4(int %A, int %B) { + %COND = setlt int %A, %B + %c = cast bool %COND to ubyte ; Booleans are unsigned integrals + %result = cast ubyte %c to uint ; for the cast elim purpose + ret uint %result +} + +int %test5(bool %B) { + %c = cast bool %B to ubyte ; This cast should get folded into + %result = cast ubyte %c to int ; this cast + ret int %result +} + +int %test6(ulong %A) { + %c1 = cast ulong %A to uint + %res = cast uint %c1 to int + ret int %res +} + +long %test7(bool %A) { + %c1 = cast bool %A to int + %res = cast int %c1 to long + ret long %res +} + +long %test8(sbyte %A) { + %c1 = cast sbyte %A to ulong + %res = cast ulong %c1 to long + ret long %res +} +