;;===- subzero/runtime/szrt_ll.ll - Subzero runtime source ----------------===;;
;;
;;                        The Subzero Code Generator
;;
;; This file is distributed under the University of Illinois Open Source
;; License. See LICENSE.TXT for details.
;;
;;===----------------------------------------------------------------------===;;
;;
;; This file implements wrappers for particular bitcode instructions that are
;; too uncommon and complex for a particular target to bother implementing
;; directly in Subzero target lowering.  This needs to be compiled by some
;; non-Subzero compiler.
;;
;;===----------------------------------------------------------------------===;;

define <4 x float> @__Sz_uitofp_4xi32_4xf32(<4 x i32> %a) {
entry:
  %0 = uitofp <4 x i32> %a to <4 x float>
  ret <4 x float> %0
}

define <4 x i32> @__Sz_fptoui_4xi32_f32(<4 x float> %a) {
entry:
  %0 = fptoui <4 x float> %a to <4 x i32>
  ret <4 x i32> %0
}

define i8 @__Sz_bitcast_8xi1_i8(<8 x i1> %a) {
entry:
  %0 = bitcast <8 x i1> %a to i8
  ret i8 %0
}

define i16 @__Sz_bitcast_16xi1_i16(<16 x i1> %a) {
entry:
  %0 = bitcast <16 x i1> %a to i16
  ret i16 %0
}

define <8 x i1> @__Sz_bitcast_i8_8xi1(i8 %a) {
entry:
  %0 = bitcast i8 %a to <8 x i1>
  ret <8 x i1> %0
}

define <16 x i1> @__Sz_bitcast_i16_16xi1(i16 %a) {
entry:
  %0 = bitcast i16 %a to <16 x i1>
  ret <16 x i1> %0
}
