Lines Matching defs:deref

45    /* If this pointer doesn't have a deref, bail.  This either means we're
50 if (ptr->deref == NULL)
62 copy->deref = nir_alignment_deref_cast(&b->nb, ptr->deref, alignment, 0);
316 if (base->deref) {
317 tail = base->deref;
390 /* The entire deref was consumed in finding the block index. Return
403 * final block index. Insert a descriptor load and cast to a deref to
404 * start the deref chain.
437 /* We start with a deref cast to get the stride. Hopefully, we'll be
471 ptr->deref = tail;
480 if (!ptr->deref) {
487 return ptr->deref;
491 _vtn_local_load_store(struct vtn_builder *b, bool load, nir_deref_instr *deref,
495 if (glsl_type_is_vector_or_scalar(deref->type)) {
497 inout->def = nir_load_deref_with_access(&b->nb, deref, access);
499 nir_store_deref_with_access(&b->nb, deref, inout->def, ~0, access);
501 } else if (glsl_type_is_array(deref->type) ||
502 glsl_type_is_matrix(deref->type)) {
503 unsigned elems = glsl_get_length(deref->type);
506 nir_build_deref_array_imm(&b->nb, deref, i);
510 vtn_assert(glsl_type_is_struct_or_ifc(deref->type));
511 unsigned elems = glsl_get_length(deref->type);
513 nir_deref_instr *child = nir_build_deref_struct(&b->nb, deref, i);
527 * Gets the NIR-level deref tail, which may have as a child an array deref
532 get_deref_tail(nir_deref_instr *deref)
534 if (deref->deref_type != nir_deref_type_array)
535 return deref;
538 nir_instr_as_deref(deref->parent.ssa->parent_instr);
543 return deref;
591 vtn_assert(ptr->deref == NULL && ptr->block_index != NULL);
641 nir_deref_instr *deref = vtn_pointer_to_deref(b, ptr);
650 * deref.
653 (*inout)->def = nir_load_deref_with_access(&b->nb, deref,
656 nir_store_deref_with_access(&b->nb, deref, (*inout)->def, ~0,
661 *inout = vtn_local_load(b, deref, ptr->type->access | access);
663 vtn_local_store(b, *inout, deref, ptr->type->access | access);
1698 * deref.
1713 vtn_assert(!ptr->deref);
1735 vtn_type_without_array(ptr_type->deref);
1740 ptr->type = ptr_type->deref;
1744 vtn_type_get_nir_type(b, ptr_type->deref, ptr->mode);
1747 ptr->deref = nir_build_deref_cast(&b->nb, ssa, nir_mode,
1770 ptr->deref = nir_build_deref_cast(&b->nb, ssa, nir_mode,
1772 ptr->deref->dest.ssa.num_components =
1774 ptr->deref->dest.ssa.bit_size = glsl_get_bit_size(ptr_type->type);
1848 struct vtn_type *type = ptr_type->deref;
1850 struct vtn_type *without_array = vtn_type_without_array(ptr_type->deref);
2422 ptr_type->deref = sampler_type;
2486 vtn_assert_types_equal(b, opcode, dest_val->type->deref,
2487 src_val->type->deref);
2550 vtn_assert_types_equal(b, opcode, res_type, src_val->type->deref);
2592 vtn_assert_types_equal(b, opcode, dest_val->type->deref, src_val->type);
2712 src_type->deref->id != dst_type->deref->id,
2731 vtn_storage_class_to_mode(b, storage_class, dst_type->deref, &nir_mode);