|  | ; RUN: llvm-as < %s | llvm-dis > %t1.ll | 
|  | ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll | 
|  | ; RUN: diff %t1.ll %t2.ll | 
|  |  | 
|  | define fastcc void @foo() { | 
|  | ret void | 
|  | } | 
|  |  | 
|  | define coldcc void @bar() { | 
|  | call fastcc void @foo( ) | 
|  | ret void | 
|  | } | 
|  |  | 
|  | define void @structret({ i8 }* sret  %P) { | 
|  | call void @structret( { i8 }* sret  %P ) | 
|  | ret void | 
|  | } | 
|  |  | 
|  | define void @foo2() { | 
|  | ret void | 
|  | } | 
|  |  | 
|  | define coldcc void @bar2() { | 
|  | call fastcc void @foo( ) | 
|  | ret void | 
|  | } | 
|  |  | 
|  | define cc42 void @bar3() personality i32 (...)* @__gxx_personality_v0 { | 
|  | invoke fastcc void @foo( ) | 
|  | to label %Ok unwind label %U | 
|  |  | 
|  | Ok: | 
|  | ret void | 
|  |  | 
|  | U: | 
|  | %exn = landingpad {i8*, i32} | 
|  | cleanup | 
|  | resume { i8*, i32 } %exn | 
|  | } | 
|  |  | 
|  | define void @bar4() personality i32 (...)* @__gxx_personality_v0 { | 
|  | call cc42 void @bar( ) | 
|  | invoke cc42 void @bar3( ) | 
|  | to label %Ok unwind label %U | 
|  |  | 
|  | Ok: | 
|  | ret void | 
|  |  | 
|  | U: | 
|  | %exn = landingpad {i8*, i32} | 
|  | cleanup | 
|  | resume { i8*, i32 } %exn | 
|  | } | 
|  |  | 
|  | declare ghccc void @ghc_callee() | 
|  |  | 
|  | define void @ghc_caller() { | 
|  | call ghccc void @ghc_callee() | 
|  | ret void | 
|  | } | 
|  |  | 
|  | declare hhvm_ccc void @hhvm_c_callee() | 
|  |  | 
|  | define hhvmcc void @hhvm_caller() { | 
|  | call hhvm_ccc void @hhvm_c_callee() | 
|  | ret void | 
|  | } | 
|  |  | 
|  | declare i32 @__gxx_personality_v0(...) |