This doesn't actually assume the top 32 bits of the source value are
zero. Instead, it does (src >> shift) & UINT32_MAX regardless of what
the top bits of src are.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9116>
struct gen_mi_value src, uint32_t shift)
{
/* We right-shift by left-shifting by 32 - shift and taking the top 32 bits
- * of the result. This assumes the top 32 bits are zero.
+ * of the result.
*/
if (shift > 64)
return gen_mi_imm(0);