Lines Matching defs:deref

28 resize_deref(nir_builder *b, nir_deref_instr *deref,
31 assert(deref->dest.is_ssa);
32 if (deref->dest.ssa.num_components == num_components &&
33 deref->dest.ssa.bit_size == bit_size)
36 /* NIR requires array indices have to match the deref bit size */
37 if (deref->dest.ssa.bit_size != bit_size &&
38 (deref->deref_type == nir_deref_type_array ||
39 deref->deref_type == nir_deref_type_ptr_as_array)) {
40 b->cursor = nir_before_instr(&deref->instr);
41 assert(deref->arr.index.is_ssa);
43 if (nir_src_is_const(deref->arr.index)) {
44 idx = nir_imm_intN_t(b, nir_src_as_int(deref->arr.index), bit_size);
46 idx = nir_i2i(b, deref->arr.index.ssa, bit_size);
48 nir_instr_rewrite_src(&deref->instr, &deref->arr.index,
52 deref->dest.ssa.num_components = num_components;
53 deref->dest.ssa.bit_size = bit_size;
115 nir_deref_instr *deref = nir_instr_as_deref(instr);
116 if (nir_deref_mode_is(deref, nir_var_shader_call_data)) {
117 deref->modes = nir_var_function_temp;
118 if (deref->deref_type == nir_deref_type_var) {
119 b.cursor = nir_before_instr(&deref->instr);
123 deref->var->type, 0);
124 nir_ssa_def_rewrite_uses(&deref->dest.ssa,
126 nir_instr_remove(&deref->instr);
129 } else if (nir_deref_mode_is(deref, nir_var_ray_hit_attrib)) {
130 deref->modes = nir_var_function_temp;
131 if (deref->deref_type == nir_deref_type_var) {
132 b.cursor = nir_before_instr(&deref->instr);
136 deref->type, 0);
137 nir_ssa_def_rewrite_uses(&deref->dest.ssa,
139 nir_instr_remove(&deref->instr);
148 if (nir_deref_mode_is(deref, nir_var_function_temp) &&
149 resize_deref(&b, deref, 1, 64))
189 * nir_var_mem_global deref and all access happens through that. The