Add a bunch of testcases for cast-of-casts that should be removed.

llvm-svn: 3345
This commit is contained in:
Chris Lattner 2002-08-15 16:13:29 +00:00
parent 2ba6b60374
commit 47744689d0
1 changed files with 32 additions and 0 deletions

View File

@ -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
}