; RUN:  llvm-dis < %s.bc| FileCheck %s
; RUN:  verify-uselistorder < %s.bc

; calling-conventions.3.2.ll.bc was generated by passing this file to llvm-as-3.2.
; The test checks that LLVM does not silently misread calling conventions of
; older bitcode files.

declare ccc void @ccc()
; CHECK: declare void @ccc

declare fastcc void @fastcc()
; CHECK: declare fastcc void @fastcc

declare coldcc void @coldcc()
; CHECK: declare coldcc void @coldcc

declare cc10 void @cc10()
; CHECK: declare ghccc void @cc10

declare spir_kernel void @spir_kernel()
; CHECK: declare spir_kernel void @spir_kernel

declare spir_func void @spir_func()
; CHECK: declare spir_func void @spir_func

declare intel_ocl_bicc void @intel_ocl_bicc()
; CHECK: declare intel_ocl_bicc void @intel_ocl_bicc

declare x86_stdcallcc void @x86_stdcallcc()
; CHECK: declare x86_stdcallcc void @x86_stdcallcc 

declare x86_fastcallcc void @x86_fastcallcc()
; CHECK: declare x86_fastcallcc void @x86_fastcallcc 

declare x86_thiscallcc void @x86_thiscallcc()
; CHECK: declare x86_thiscallcc void @x86_thiscallcc

declare arm_apcscc void @arm_apcscc()
; CHECK: declare arm_apcscc void @arm_apcscc

declare arm_aapcscc void @arm_aapcscc()
; CHECK: declare arm_aapcscc void @arm_aapcscc

declare arm_aapcs_vfpcc void @arm_aapcs_vfpcc()
; CHECK: declare arm_aapcs_vfpcc void @arm_aapcs_vfpcc

declare msp430_intrcc void @msp430_intrcc()
; CHECK: declare msp430_intrcc void @msp430_intrcc

declare ptx_kernel void @ptx_kernel()
; CHECK: declare ptx_kernel void @ptx_kernel

declare ptx_device void @ptx_device()
; CHECK: declare ptx_device void @ptx_device

define void @call_ccc() { 
; CHECK: call void @ccc
  call ccc void @ccc()
  ret void
}

define void @call_fastcc() { 
; CHECK: call fastcc void @fastcc
  call fastcc void @fastcc()
  ret void
}

define void @call_coldcc() { 
; CHECK: call coldcc void @coldcc
  call coldcc void @coldcc()
  ret void
}

define void @call_cc10 () { 
; CHECK: call ghccc void @cc10
  call cc10 void @cc10 ()
  ret void
}

define void @call_spir_kernel() { 
; CHECK: call spir_kernel void @spir_kernel
  call spir_kernel void @spir_kernel()
  ret void
}

define void @call_spir_func() { 
; CHECK: call spir_func void @spir_func
  call spir_func void @spir_func()
  ret void
}

define void @call_intel_ocl_bicc() { 
; CHECK: call intel_ocl_bicc void @intel_ocl_bicc 
  call intel_ocl_bicc void @intel_ocl_bicc()
  ret void
}

define void @call_x86_stdcallcc() { 
; CHECK: call x86_stdcallcc void @x86_stdcallcc
  call x86_stdcallcc void @x86_stdcallcc()
  ret void
}

define void @call_x86_fastcallcc() { 
; CHECK: call x86_fastcallcc void @x86_fastcallcc
  call x86_fastcallcc void @x86_fastcallcc()
  ret void
}

define void @call_x86_thiscallcc() { 
; CHECK: call x86_thiscallcc void @x86_thiscallcc 
  call x86_thiscallcc void @x86_thiscallcc()
  ret void
}

define void @call_arm_apcscc() { 
; CHECK: call arm_apcscc void @arm_apcscc
  call arm_apcscc void @arm_apcscc()
  ret void
}

define void @call_arm_aapcscc() { 
; CHECK: call arm_aapcscc void @arm_aapcscc
  call arm_aapcscc void @arm_aapcscc()
  ret void
}

define void @call_arm_aapcs_vfpcc() { 
; CHECK: call arm_aapcs_vfpcc void @arm_aapcs_vfpcc
  call arm_aapcs_vfpcc void @arm_aapcs_vfpcc()
  ret void
}

define void @call_msp430_intrcc() { 
; CHECK: call msp430_intrcc void @msp430_intrcc
  call msp430_intrcc void @msp430_intrcc()
  ret void
}

define void @call_ptx_kernel() { 
; CHECK: call ptx_kernel void @ptx_kernel
  call ptx_kernel void @ptx_kernel()
  ret void
}

define void @call_ptx_device() { 
; CHECK: call ptx_device void @ptx_device
  call ptx_device void @ptx_device()
  ret void
}