We should be able to address issues with transcendental functions by just providing our own correct libm implementation, which would be consistent across platforms. Not particularly high on the priority list, but there isn’t any particular reason we’re using the system libm other than laziness. (IIRC, IEEE 754 says most transcendental functions are supposed to be within 1 ULP, in deference to the table-maker’s dilemma.)
target_float seems sort of useless; as a user, I don’t really care what instructions floating-point arithmetic uses, but rather whether I can expect correct results. I mean, sure, neon implies denormals are flushed, but whether vfp does depends on the target ABI, so that isn’t really useful.
We could provide CFG flags for specifically float_80_bit and float_flush_subnormals, but except in obscure cases I’m not sure what we would actually expect the user to do about them. We can’t safely allow the user to actually manipulate the floating-point environment (to, for example, turn flushing subnormals on or off) until LLVM gains support for it.