Open gnzlbg opened 6 years ago
FWIW I think we've got basically no trans/language support for f16
right now, so I'd just leave them out
The PowerPC 64 architecture also supports a vector _Float16
type, with 16 16-bit floats.
f16
and f128
are now unstably available, so these can be added. This extends to platforms beyond Arm, see https://github.com/rust-lang/rust/issues/125440 for my primitive list
I was implementing the
v{min,max}v
ARM and AArch64 intrinsics and ran into a couple of them that require passing<4 x half>
vectors to llvm and returninghalf
types:pub unsafe fn vmaxv_f16 (a: f16x4_t a) -> f16
pub unsafe fn vmaxvq_f16 (a: f6x8_t a) -> f16
pub unsafe fn vminv_f16 (a: f16x4_t a) -> f16
pub unsafe fn vminvq_f16 (a: f16x8_t a) -> f16
For example,
vmaxv_f16
should map to:call half @llvm.aarch64.neon.fminv.f16.v4f16(<4 x half>)