Since this is for an extension that will be BDW+ can we use the _cvtss_sh() intrinsic instead? It corresponds to an IVB+ instruction and even takes the rounding mode directly as an immediate argument.