nir/opt_load_store_vectorize: don't vectorize stores across demote

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Fixes: ce9205c03bd ("nir: add a load/store vectorization pass")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7163>
diff --git a/src/compiler/nir/nir_opt_load_store_vectorize.c b/src/compiler/nir/nir_opt_load_store_vectorize.c
index 593a022..6be3817 100644
--- a/src/compiler/nir/nir_opt_load_store_vectorize.c
+++ b/src/compiler/nir/nir_opt_load_store_vectorize.c
@@ -1172,6 +1172,11 @@
       case nir_intrinsic_discard:
          modes = nir_var_all;
          break;
+      case nir_intrinsic_demote_if:
+      case nir_intrinsic_demote:
+         acquire = false;
+         modes = nir_var_all;
+         break;
       case nir_intrinsic_memory_barrier_buffer:
          modes = nir_var_mem_ssbo | nir_var_mem_global;
          break;
diff --git a/src/compiler/nir/nir_schedule.c b/src/compiler/nir/nir_schedule.c
index 126c49a..36a0455 100644
--- a/src/compiler/nir/nir_schedule.c
+++ b/src/compiler/nir/nir_schedule.c
@@ -355,6 +355,8 @@
 
    case nir_intrinsic_discard:
    case nir_intrinsic_discard_if:
+   case nir_intrinsic_demote:
+   case nir_intrinsic_demote_if:
       /* We are adding two dependencies:
        *
        * * A individual one that we could use to add a read_dep while handling