nir/lower_locals_to_regs: cast array index to 32 bit
local memory is too small to require 64 bit pointers, so cast the array index to a 32 bit value to save up on 64 bit operations. Signed-off-by: Karol Herbst <kherbst@redhat.com>
This commit is contained in:
committed by
Karol Herbst
parent
44d32e62fb
commit
0ccdf23a57
@@ -165,10 +165,10 @@ get_deref_reg_src(nir_deref_instr *deref, struct locals_to_regs_state *state)
|
||||
}
|
||||
|
||||
assert(src.reg.indirect->is_ssa);
|
||||
nir_ssa_def *index = nir_i2i(b, nir_ssa_for_src(b, d->arr.index, 1), 32);
|
||||
src.reg.indirect->ssa =
|
||||
nir_iadd(b, src.reg.indirect->ssa,
|
||||
nir_imul(b, nir_ssa_for_src(b, d->arr.index, 1),
|
||||
nir_imm_int(b, inner_array_size)));
|
||||
nir_imul(b, index, nir_imm_int(b, inner_array_size)));
|
||||
}
|
||||
|
||||
inner_array_size *= glsl_get_length(nir_deref_instr_parent(d)->type);
|
||||
|
||||
Reference in New Issue
Block a user