Computation Expansions to Float64 invalid with certain GPUs

I encountered an issue trying to use OpenCL on my Laptop with intel iGPU, using Float16 computations. The GPU does not support Float64.

The typical error message for this would be :: Reason :: unsupported use of double value.

To use the math expression ^, there are some checks for which the data is cast into Float64. I am able to bypass it by calling the pow_body function directly, but I feel that this should be informed in this forum to have better consistency (I believe I saw similar threads on metal.jl as well).

math.jl line → y == yint && return x^yint
float.jl line → ($op)(x::Union{Float16,Float32}, y::Union{Int32,UInt32}) = ($op)(Float64(x), Float64(y))