mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 19:31:58 +00:00
New testcase for bug found by Vikram
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2426 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
01853e8773
commit
a38ef97d0b
24
test/Transforms/LevelRaise/2002-05-02-BadCastElimination.ll
Normal file
24
test/Transforms/LevelRaise/2002-05-02-BadCastElimination.ll
Normal file
@ -0,0 +1,24 @@
|
||||
; This test contains two cast instructions that cannot be eliminated. If the
|
||||
; input of the "test" function is negative, it should be correctly converted
|
||||
; to a 32 bit version of the number with all upper 16 bits clear (ushort->uint
|
||||
; involves no sign extension). Optimizing this to a single cast is invalid!
|
||||
;
|
||||
; RUN: as < %s | opt -raise -q | lli -abort-on-exception
|
||||
;
|
||||
implementation
|
||||
|
||||
uint "test"(short %argc)
|
||||
begin
|
||||
%cast223 = cast short %argc to ushort ; <ushort> [#uses=1]
|
||||
%cast114 = cast ushort %cast223 to uint ; <uint> [#uses=1]
|
||||
ret uint %cast114
|
||||
end
|
||||
|
||||
int "main"()
|
||||
begin
|
||||
%Ret = call uint %test(short -1)
|
||||
%test = cast uint %Ret to int
|
||||
%Res = seteq int %test, -1 ; If it returns -1 as int, it's a failure
|
||||
%Res = cast bool %Res to int
|
||||
ret int %Res
|
||||
end
|
Loading…
Reference in New Issue
Block a user