__int_as_float in kernel loop region

!$cuf kernel do <<< *, * >>>
DO I1=2,KK1M2
  E0(I1,1)=__int_as_float(iand(__float_as_int(E0(I1,1)),__float_as_int(X0(I1,1))))
END DO

I’m trying to use __int_as_float function in kernel loop region. Comiler says:

error S0155 : Kernel region ignored; see -Minfo messages
fldbnc:
104, Accelerator restriction: function/procedure calls are not supported
105, Accelerator restriction: unsupported call to ‘__int_as_float’

module cudadevice is included in subroutine. Why does this functions is not allowed in kernel loop region, but allowed in device subroutines?

Why does this functions is not allowed in kernel loop region, but allowed in device subroutines?

In order to support these in kernel loop, host and other device versions would needed to be developed since kernels can target multiple devices as well as the host.

  • Mat