r600/sfn: lower bool to int32 only after common optimizations

Fixes: f79b7fcf7c7f5db626efdb63f27e8bc64d0aed77
   r600/sfn: use 32 bit bools

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7714>
(cherry picked from commit 335c48ab330a5e3d7cc2bdd905eba44a3a80e982)
diff --git a/.pick_status.json b/.pick_status.json
index 1f6f869..4e8041c 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -310,7 +310,7 @@
         "description": "r600/sfn: lower bool to int32 only after common optimizations",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "master_sha": null,
         "because_sha": "f79b7fcf7c7f5db626efdb63f27e8bc64d0aed77"
     },
diff --git a/src/gallium/drivers/r600/sfn/sfn_nir.cpp b/src/gallium/drivers/r600/sfn/sfn_nir.cpp
index db7cf2f..4676c52 100644
--- a/src/gallium/drivers/r600/sfn/sfn_nir.cpp
+++ b/src/gallium/drivers/r600/sfn/sfn_nir.cpp
@@ -830,11 +830,10 @@
               40,
               r600_get_natural_size_align_bytes);
 
-   NIR_PASS_V(sel->nir, nir_lower_bool_to_int32);
-
    while (optimize_once(sel->nir, true));
 
    auto sh = nir_shader_clone(sel->nir, sel->nir);
+   NIR_PASS_V(sel->nir, nir_lower_bool_to_int32);
    NIR_PASS_V(sh, nir_opt_algebraic_late);
 
    if (sel->nir->info.stage == MESA_SHADER_FRAGMENT)