"fmaf64" => "llvm.fma.f64",
"fabsf32" => "llvm.fabs.f32",
"fabsf64" => "llvm.fabs.f64",
+ "minnumf32" => "llvm.minnum.f32",
+ "minnumf64" => "llvm.minnum.f64",
+ "maxnumf32" => "llvm.maxnum.f32",
+ "maxnumf64" => "llvm.maxnum.f64",
"copysignf32" => "llvm.copysign.f32",
"copysignf64" => "llvm.copysign.f64",
"floorf32" => "llvm.floor.f32",
// FIXME: use:
// https://github.com/llvm-mirror/llvm/blob/master/include/llvm/IR/Function.h#L182
// https://github.com/llvm-mirror/llvm/blob/master/include/llvm/IR/Intrinsics.h#L81
- fn llvm_vector_str(elem_ty: ty::Ty<'_>, vec_len: usize, no_pointers: usize) -> String {
+ fn llvm_vector_str(elem_ty: Ty<'_>, vec_len: usize, no_pointers: usize) -> String {
let p0s: String = "p0".repeat(no_pointers);
match elem_ty.sty {
ty::Int(v) => format!("v{}{}i{}", vec_len, p0s, v.bit_width().unwrap()),
}
}
- fn llvm_vector_ty(cx: &CodegenCx<'ll, '_>, elem_ty: ty::Ty<'_>, vec_len: usize,
+ fn llvm_vector_ty(cx: &CodegenCx<'ll, '_>, elem_ty: Ty<'_>, vec_len: usize,
mut no_pointers: usize) -> &'ll Type {
// FIXME: use cx.layout_of(ty).llvm_type() ?
let mut elem_ty = match elem_ty.sty {
in_ty, ret_ty);
// This counts how many pointers
- fn ptr_count(t: ty::Ty<'_>) -> usize {
+ fn ptr_count(t: Ty<'_>) -> usize {
match t.sty {
ty::RawPtr(p) => 1 + ptr_count(p.ty),
_ => 0,
}
// Non-ptr type
- fn non_ptr(t: ty::Ty<'_>) -> ty::Ty<'_> {
+ fn non_ptr(t: Ty<'_>) -> Ty<'_> {
match t.sty {
ty::RawPtr(p) => non_ptr(p.ty),
_ => t,
arg_tys[2].simd_size(tcx));
// This counts how many pointers
- fn ptr_count(t: ty::Ty<'_>) -> usize {
+ fn ptr_count(t: Ty<'_>) -> usize {
match t.sty {
ty::RawPtr(p) => 1 + ptr_count(p.ty),
_ => 0,
}
// Non-ptr type
- fn non_ptr(t: ty::Ty<'_>) -> ty::Ty<'_> {
+ fn non_ptr(t: Ty<'_>) -> Ty<'_> {
match t.sty {
ty::RawPtr(p) => non_ptr(p.ty),
_ => t,