nir/loop_unroll: fix is_indirect_load() with load_global

load_global only has one source.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Fixes: dfe429eb41 ("nir/loop_unroll: unroll more aggressively if it can improve load scheduling")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10186>
This commit is contained in:
Rhys Perry 2021-04-12 15:36:59 +01:00 committed by Marge Bot
parent eae264918c
commit e9dc3df868
1 changed files with 4 additions and 2 deletions

View File

@ -757,12 +757,14 @@ is_indirect_load(nir_instr *instr)
nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
if ((intrin->intrinsic == nir_intrinsic_load_ubo ||
intrin->intrinsic == nir_intrinsic_load_ssbo ||
intrin->intrinsic == nir_intrinsic_load_global) &&
intrin->intrinsic == nir_intrinsic_load_ssbo) &&
!nir_src_is_const(intrin->src[1])) {
return true;
}
if (intrin->intrinsic == nir_intrinsic_load_global)
return true;
if (intrin->intrinsic == nir_intrinsic_load_deref ||
intrin->intrinsic == nir_intrinsic_store_deref) {
nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]);