Lines Matching refs:cpy
27 opt_memcpy_deref_cast(nir_intrinsic_instr *cpy, nir_src *deref_src) in opt_memcpy_deref_cast() argument
29 assert(cpy->intrinsic == nir_intrinsic_memcpy_deref); in opt_memcpy_deref_cast()
49 nir_instr_rewrite_src(&cpy->instr, deref_src, in opt_memcpy_deref_cast()
58 if (!nir_src_is_const(cpy->src[2])) in opt_memcpy_deref_cast()
64 if (nir_src_as_uint(cpy->src[2]) < (uint64_t)parent_type_size) in opt_memcpy_deref_cast()
67 nir_instr_rewrite_src(&cpy->instr, deref_src, in opt_memcpy_deref_cast()
126 try_lower_memcpy(nir_builder *b, nir_intrinsic_instr *cpy) in try_lower_memcpy() argument
128 nir_deref_instr *dst = nir_src_as_deref(cpy->src[0]); in try_lower_memcpy()
129 nir_deref_instr *src = nir_src_as_deref(cpy->src[1]); in try_lower_memcpy()
133 nir_instr_remove(&cpy->instr); in try_lower_memcpy()
137 if (!nir_src_is_const(cpy->src[2])) in try_lower_memcpy()
140 uint64_t size = nir_src_as_uint(cpy->src[2]); in try_lower_memcpy()
142 nir_instr_remove(&cpy->instr); in try_lower_memcpy()
150 b->cursor = nir_instr_remove(&cpy->instr); in try_lower_memcpy()
152 nir_load_deref_with_access(b, src, nir_intrinsic_src_access(cpy)); in try_lower_memcpy()
156 nir_intrinsic_dst_access(cpy)); in try_lower_memcpy()
164 b->cursor = nir_instr_remove(&cpy->instr); in try_lower_memcpy()
166 nir_intrinsic_dst_access(cpy), in try_lower_memcpy()
167 nir_intrinsic_src_access(cpy)); in try_lower_memcpy()
187 nir_intrinsic_instr *cpy = nir_instr_as_intrinsic(instr); in opt_memcpy_impl() local
188 if (cpy->intrinsic != nir_intrinsic_memcpy_deref) in opt_memcpy_impl()
191 while (opt_memcpy_deref_cast(cpy, &cpy->src[0])) in opt_memcpy_impl()
193 while (opt_memcpy_deref_cast(cpy, &cpy->src[1])) in opt_memcpy_impl()
196 if (try_lower_memcpy(&b, cpy)) { in opt_memcpy_impl()