forked from OSchip/llvm-project
53 lines
2.2 KiB
LLVM
53 lines
2.2 KiB
LLVM
; RUN: llc < %s | FileCheck %s
|
|
; CHECK: .long .Ltmp6-.Ltmp12 # Call between .Ltmp12 and .Ltmp6
|
|
|
|
; We used to crash in filetype=obj when computing a negative value.
|
|
; RUN: llc -filetype=obj < %s
|
|
|
|
target triple = "powerpc--netbsd"
|
|
@_ZTI1I = external constant { i8*, i8* }
|
|
define void @f(i8 %foo, i32 %bar) personality i8* bitcast (void ()* @g to i8*) {
|
|
invoke void @g()
|
|
to label %try.cont unwind label %lpad
|
|
lpad: ; preds = %0
|
|
%tmp = landingpad { i8*, i32 }
|
|
catch i8* bitcast ({ i8*, i8* }* @_ZTI1I to i8*)
|
|
br i1 undef, label %catch10, label %catch
|
|
catch10: ; preds = %lpad
|
|
%tmp8 = load i32, i32* undef, align 4
|
|
%conv.i.i = zext i8 %foo to i32
|
|
%cond.i.i = select i1 undef, i32 %conv.i.i, i32 %tmp8
|
|
invoke void @_Z24__put_character_sequenceIccEvR1AIT_T0_Ej(i32 %cond.i.i)
|
|
to label %invoke.cont20 unwind label %lpad15
|
|
invoke.cont20: ; preds = %catch10
|
|
ret void
|
|
try.cont: ; preds = %0
|
|
ret void
|
|
catch: ; preds = %lpad
|
|
%tmp14 = load i32, i32* undef, align 4
|
|
%conv.i.i34 = zext i8 %foo to i32
|
|
%cond.i.i35 = select i1 undef, i32 %conv.i.i34, i32 %tmp14
|
|
invoke void @_Z24__put_character_sequenceIccEvR1AIT_T0_Ej(i32 %cond.i.i35)
|
|
to label %invoke.cont8 unwind label %lpad3
|
|
invoke.cont8: ; preds = %call2.i.i.noexc36
|
|
ret void
|
|
lpad3: ; preds = %call2.i.i.noexc36, %catch
|
|
%tmp16 = landingpad { i8*, i32 }
|
|
cleanup
|
|
invoke void @g()
|
|
to label %eh.resume unwind label %terminate.lpad
|
|
lpad15: ; preds = %catch10
|
|
%tmp19 = landingpad { i8*, i32 }
|
|
cleanup
|
|
invoke void @g()
|
|
to label %eh.resume unwind label %terminate.lpad
|
|
eh.resume: ; preds = %lpad15, %lpad3
|
|
ret void
|
|
terminate.lpad: ; preds = %lpad15, %lpad3
|
|
%tmp22 = landingpad { i8*, i32 }
|
|
catch i8* null
|
|
ret void
|
|
}
|
|
declare void @g()
|
|
declare void @_Z24__put_character_sequenceIccEvR1AIT_T0_Ej(i32)
|