This change exposes the sqrt library function for HLSL scalar types,
excluding long and long long doubles. Sqrt is supported for all scalar, vector,
and matrix types. This patch only adds a subset of scalar type support.
Long and long long double support is missing in this patch because that type
doesn't exist in HLSL.
The full documentation of the HLSL asin function is available here:
https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-sqrt
The -fnative-half-type suggests that you're readying this for when 16-bit types are available. That's fine, but in the spirit of starting as early as possible as we tend to do with these, you might want to target shadermodel6.2 instead since that's where they were introduced and sqrt is as old as HLSL 1.0 AFAIK.