
`half` currently uses the default legalization of promoting to a `f32`; however, this implementation implements math in a way that results in incorrect rounding. Switch to the soft promote implementation, which does not have this problem. The SPARC ABI does not specify a `_Float16` type, so there is no concern with keeping interface compatibility. Fixes the SPARC part of https://github.com/llvm/llvm-project/issues/97975 Fixes the SPARC part of https://github.com/llvm/llvm-project/issues/97981