Need to use bottom nibble of the 64, not the half.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4615>
bool b64 = nir_alu_type_get_type_size(ins->src_types[s]) > 32;
uint64_t cons = bi_get_immediate(ins, s);
unsigned idx = bi_lookup_constant(clause, cons, &hi, b64);
- unsigned f = bi_constant_field(idx) | (cons & 0xF);
+ unsigned lo = clause->constants[idx] & 0xF;
+ unsigned f = bi_constant_field(idx) | lo;
if (assigned && regs->uniform_constant != f)
unreachable("Mismatched uniform/const field: imm");