}
/* We're at either the tail or the divergence point between the two deref
- * paths. Look to see if either contains a ptr_as_array deref. It it
- * does we don't know how to safely make any inferences. Hopefully,
+ * paths. Look to see if either contains cast or a ptr_as_array deref. If
+ * it does we don't know how to safely make any inferences. Hopefully,
* nir_opt_deref will clean most of these up and we can start inferring
* things again.
*
* different constant indices.
*/
for (nir_deref_instr **t_p = a_p; *t_p; t_p++) {
- if ((*t_p)->deref_type == nir_deref_type_ptr_as_array)
+ if ((*t_p)->deref_type == nir_deref_type_cast ||
+ (*t_p)->deref_type == nir_deref_type_ptr_as_array)
return nir_derefs_may_alias_bit;
}
for (nir_deref_instr **t_p = b_p; *t_p; t_p++) {
- if ((*t_p)->deref_type == nir_deref_type_ptr_as_array)
+ if ((*t_p)->deref_type == nir_deref_type_cast ||
+ (*t_p)->deref_type == nir_deref_type_ptr_as_array)
return nir_derefs_may_alias_bit;
}