Conversions between one ap_float<> and another ap_float<> of different precision, ie different W or E template parameters, will instantiate a floating-point IP for rounding and/or saturation logic. It will be free only when the parameters are the same or in the situation of C floating-point data types when the equivalent parameters are used, for example, float to and from ap_float<32,8>.
Conversions between one ap_float<> and integer types or ap_fixed<> will instantiate a floating-point IP for quantization.