From 9ae87a6c312502483edbf5469e7e15295b356d66 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Sun, 1 Nov 2020 16:55:25 -0600 Subject: [PATCH] nir/lower_array_deref_of_vec: Use nir_deref_mode_must_be Reviewed-by: Jesse Natalie Reviewed-by: Caio Marcelo de Oliveira Filho Part-of: --- src/compiler/nir/nir_lower_array_deref_of_vec.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir_lower_array_deref_of_vec.c b/src/compiler/nir/nir_lower_array_deref_of_vec.c index 99ed9ead73b..12a376dd654 100644 --- a/src/compiler/nir/nir_lower_array_deref_of_vec.c +++ b/src/compiler/nir/nir_lower_array_deref_of_vec.c @@ -85,7 +85,11 @@ nir_lower_array_deref_of_vec_impl(nir_function_impl *impl, continue; nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); - if (!(deref->mode & modes)) + + /* We choose to be conservative here. If the deref contains any + * modes which weren't specified, we bail and don't bother lowering. + */ + if (!nir_deref_mode_must_be(deref, modes)) continue; /* We only care about array derefs that act on vectors */