We can copy any value into a 16-bit subregister with a 3 dword v_pack_b32_f16 on GFX10 or a v_and_b32+v_or_b32 on GFX9. Because the generated code can depend on the register assignment and to improve constant propagation, Builder::copy creates a p_create_vector in the case of sub-dword literals. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7111>