#[target_feature(enable = "f16c")] #[inline] pub(super) unsafefn f16x4_to_f64x4_x86_f16c(v: &[u16; 4]) -> [f64; 4] { let array = f16x4_to_f32x4_x86_f16c(v); // Let compiler vectorize this regular cast for now. // TODO: investigate auto-detecting sse2/avx convert features
[
array[0] as f64,
array[1] as f64,
array[2] as f64,
array[3] as f64,
]
}
#[target_feature(enable = "f16c")] #[inline] pub(super) unsafefn f64x4_to_f16x4_x86_f16c(v: &[f64; 4]) -> [u16; 4] { // Let compiler vectorize this regular cast for now. // TODO: investigate auto-detecting sse2/avx convert features let v = [v[0] as f32, v[1] as f32, v[2] as f32, v[3] as f32];
f32x4_to_f16x4_x86_f16c(&v)
}
#[target_feature(enable = "f16c")] #[inline] pub(super) unsafefn f16x8_to_f64x8_x86_f16c(v: &[u16; 8]) -> [f64; 8] { let array = f16x8_to_f32x8_x86_f16c(v); // Let compiler vectorize this regular cast for now. // TODO: investigate auto-detecting sse2/avx convert features
[
array[0] as f64,
array[1] as f64,
array[2] as f64,
array[3] as f64,
array[4] as f64,
array[5] as f64,
array[6] as f64,
array[7] as f64,
]
}
#[target_feature(enable = "f16c")] #[inline] pub(super) unsafefn f64x8_to_f16x8_x86_f16c(v: &[f64; 8]) -> [u16; 8] { // Let compiler vectorize this regular cast for now. // TODO: investigate auto-detecting sse2/avx convert features let v = [
v[0] as f32,
v[1] as f32,
v[2] as f32,
v[3] as f32,
v[4] as f32,
v[5] as f32,
v[6] as f32,
v[7] as f32,
];
f32x8_to_f16x8_x86_f16c(&v)
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.2 Sekunden
(vorverarbeitet am 2026-08-25)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.