nir: Handle memcpy in copy_prop_vars and combine_stores

Fixes: b2899f7265 "nir: Add a new memcpy intrinsic"
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6871>
This commit is contained in:
Jason Ekstrand
2020-09-25 23:42:08 -05:00
committed by Marge Bot
parent 100a5ace63
commit e363da3bdd
2 changed files with 5 additions and 2 deletions

View File

@@ -356,7 +356,8 @@ combine_stores_block(struct combine_stores_state *state, nir_block *block)
break; break;
} }
case nir_intrinsic_copy_deref: { case nir_intrinsic_copy_deref:
case nir_intrinsic_memcpy_deref: {
nir_deref_instr *dst = nir_src_as_deref(intrin->src[0]); nir_deref_instr *dst = nir_src_as_deref(intrin->src[0]);
nir_deref_instr *src = nir_src_as_deref(intrin->src[1]); nir_deref_instr *src = nir_src_as_deref(intrin->src[1]);
combine_stores_with_deref(state, dst); combine_stores_with_deref(state, dst);

View File

@@ -195,7 +195,8 @@ gather_vars_written(struct copy_prop_var_state *state,
case nir_intrinsic_deref_atomic_exchange: case nir_intrinsic_deref_atomic_exchange:
case nir_intrinsic_deref_atomic_comp_swap: case nir_intrinsic_deref_atomic_comp_swap:
case nir_intrinsic_store_deref: case nir_intrinsic_store_deref:
case nir_intrinsic_copy_deref: { case nir_intrinsic_copy_deref:
case nir_intrinsic_memcpy_deref: {
/* Destination in all of store_deref, copy_deref and the atomics is src[0]. */ /* Destination in all of store_deref, copy_deref and the atomics is src[0]. */
nir_deref_instr *dst = nir_src_as_deref(intrin->src[0]); nir_deref_instr *dst = nir_src_as_deref(intrin->src[0]);
@@ -1056,6 +1057,7 @@ copy_prop_vars_block(struct copy_prop_var_state *state,
break; break;
} }
case nir_intrinsic_memcpy_deref:
case nir_intrinsic_deref_atomic_add: case nir_intrinsic_deref_atomic_add:
case nir_intrinsic_deref_atomic_imin: case nir_intrinsic_deref_atomic_imin:
case nir_intrinsic_deref_atomic_umin: case nir_intrinsic_deref_atomic_umin: