[Mesa-dev] [PATCH] nir: create 32-bit bcsel for 32-bit conditions

Rhys Perry pendingchaos02 at gmail.com
Mon Dec 17 16:16:15 UTC 2018


Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
---
 src/compiler/nir/nir_opt_peephole_select.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_opt_peephole_select.c b/src/compiler/nir/nir_opt_peephole_select.c
index ad9d0abec0..241627ed99 100644
--- a/src/compiler/nir/nir_opt_peephole_select.c
+++ b/src/compiler/nir/nir_opt_peephole_select.c
@@ -205,7 +205,9 @@ nir_opt_peephole_select_block(nir_block *block, nir_shader *shader,
          break;
 
       nir_phi_instr *phi = nir_instr_as_phi(instr);
-      nir_alu_instr *sel = nir_alu_instr_create(shader, nir_op_bcsel);
+      nir_op sel_op = nir_src_bit_size(if_stmt->condition) == 1 ?
+                      nir_op_bcsel : nir_op_b32csel;
+      nir_alu_instr *sel = nir_alu_instr_create(shader, sel_op);
       nir_src_copy(&sel->src[0].src, &if_stmt->condition, sel);
       /* Splat the condition to all channels */
       memset(sel->src[0].swizzle, 0, sizeof sel->src[0].swizzle);
-- 
2.19.2



More information about the mesa-dev mailing list