llvm-6502/test/Transforms/ADCE/2003-12-19-MergeReturn.llx
Chris Lattner 7fe178681b New testcase for missed optimization
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10538 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19 09:08:15 +00:00

29 lines
732 B
Plaintext

; This testcase was failing because without merging the return blocks, ADCE
; didn't know that it could get rid of the then.0 block.
; RUN: llvm-as < %s | opt -adce | llvm-dis | not grep load
implementation ; Functions:
void %main(uint %argc, sbyte** %argv) {
entry:
call void %__main( )
%tmp.1 = setle uint %argc, 5 ; <bool> [#uses=1]
br bool %tmp.1, label %then.0, label %return
then.0: ; preds = %entry
%tmp.8 = load sbyte** %argv ; <sbyte*> [#uses=1]
%tmp.10 = load sbyte* %tmp.8 ; <sbyte> [#uses=1]
%tmp.11 = seteq sbyte %tmp.10, 98 ; <bool> [#uses=1]
br bool %tmp.11, label %then.1, label %return
then.1: ; preds = %then.0
ret void
return: ; preds = %entry, %then.0
ret void
}
declare void %__main()