ARMv8.2includes Android phones starting with Pixel 3, Galaxy S9 (Snapdragon SoC), Galaxy S10 (Exynos SoC), iOS devices with A11 or newer SoCs, all Apple Silicon Macs, and Windows ARM64 laptops based with Snapdragon 850 SoC or newer.
3 of 8
Game plan
Introduce F32.load_f16 and F32.store_f16 to support scalar scenarios via F32
SIMD F16x8 shape and vector operations
Replicate F32x4 instruction set with roundToEven semantic
No additional memory instruction needed because of i16x8 covers it
F16x8.demote_f64x2_zero because it is not composable
Move the proposal to SIMD opcode space(0xFD)
Except f32.[load|store]_f16. It could live in Numeric(0xFC) namespace
4 of 8
Hardware support and emulation
Arm64
Arm64 support via FEAT_FP16 is no trouble and straightforward
X64
Full-scale F16 instruction set only for AVX512
Deployed only on Sapphire Rapids Xeon chips and no signs of broader adoption
Looking forward on AVX10(AVX512 with fixed extension set and vector 256-bit registers)