HLSL allows float/etc types for any/all intrinsics, while the SPIR-V opcode requires bool. This adds a simple decomposition to type convert the argument. It could get a little more clever in some of the type cases if it ever had to.