intel/fs: Use HF as destination type for F32TOF16 in fquantize2f16
Having an integer destination type instead of a float destination type
confuses the SWSB code. This causes problems on some Intel GPUs. Fix
this by using the correct type in the destination of the F32TOF16
opcode.
Gfx7 doesn't have the HF
type, so continue to emit W
on that platform.
The assertions in brw_F32TO16
(brw_eu_emit.c) are updated to reflect
this. In scalar mode, UD
is never emitted as a destination type for
this opcode, so remove it from the allowed types in the assertion.
I also condidered doing something like de55fd35 ("intel/fs/xehp: Teach SWSB pass about the exec pipeline of FS_OPCODE_PACK_HALF_2x16_SPLIT."), but Curro recommended that just using the correct types is a better fix. I agree.