pan/bi: Lower vec* to writemasks in NIR
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Mon, 9 Mar 2020 23:56:35 +0000 (19:56 -0400)
committerMarge Bot <eric+marge@anholt.net>
Tue, 10 Mar 2020 19:25:59 +0000 (19:25 +0000)
I was hoping not to tread down this path but it seems inevitable now.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4139>

src/panfrost/bifrost/bifrost_compile.c

index 0bda7b1c9dceefa3410113a2ccac34189ef1c496..0f1922c9513f0a080f1f13463d542c6d38a312f9 100644 (file)
@@ -548,6 +548,14 @@ bi_optimize_nir(nir_shader *nir)
         /* Take us out of SSA */
         NIR_PASS(progress, nir, nir_lower_locals_to_regs);
         NIR_PASS(progress, nir, nir_convert_from_ssa, true);
+
+        /* We're a primary scalar architecture but there's enough vector that
+         * we use a vector IR so let's not also deal with scalar hacks on top
+         * of the vector hacks */
+
+        NIR_PASS(progress, nir, nir_move_vec_src_uses_to_dest);
+        NIR_PASS(progress, nir, nir_lower_vec_to_movs);
+        NIR_PASS(progress, nir, nir_opt_dce);
 }
 
 void