Auto merge of #127487 - tgross35:f16-f128-simd, r=Amanieu

Add `f16` and `f128` as simd types in LLVM

`@sayantn` is working on adding SIMD for `f16` and hitting the `FloatingPointVector` error. This should fix it and unblock adding support for `simd_fma` and `simd_fabs` in stdarch.
This commit is contained in:
bors 2024-07-11 14:08:58 +00:00
commit bcf1f6db45

View File

@ -1469,8 +1469,10 @@ fn generic_simd_intrinsic<'ll, 'tcx>(
let (elem_ty_str, elem_ty) = if let ty::Float(f) = in_elem.kind() { let (elem_ty_str, elem_ty) = if let ty::Float(f) = in_elem.kind() {
let elem_ty = bx.cx.type_float_from_ty(*f); let elem_ty = bx.cx.type_float_from_ty(*f);
match f.bit_width() { match f.bit_width() {
16 => ("f16", elem_ty),
32 => ("f32", elem_ty), 32 => ("f32", elem_ty),
64 => ("f64", elem_ty), 64 => ("f64", elem_ty),
128 => ("f128", elem_ty),
_ => return_error!(InvalidMonomorphization::FloatingPointVector { _ => return_error!(InvalidMonomorphization::FloatingPointVector {
span, span,
name, name,