From 3a9e6102b4baae3f50956e5f150c9e59138f4cc0 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 17 Aug 2016 15:03:00 -0700 Subject: [PATCH] nir/search: Extend 'a@bool' to handle a couple of system values. load_front_face and load_helper_invocation produce booleans. On Broadwell: total instructions in shared programs: 11638956 -> 11638011 (-0.01%) instructions in affected programs: 115093 -> 114148 (-0.82%) helped: 628 HURT: 14 Signed-off-by: Kenneth Graunke Reviewed-by: Jason Ekstrand --- src/compiler/nir/nir_search.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/compiler/nir/nir_search.c b/src/compiler/nir/nir_search.c index bfa00c24a41..f24a7b9d07f 100644 --- a/src/compiler/nir/nir_search.c +++ b/src/compiler/nir/nir_search.c @@ -78,6 +78,13 @@ src_is_type(nir_src src, nir_alu_type type) } return nir_alu_type_get_base_type(output_type) == type; + } else if (src.ssa->parent_instr->type == nir_instr_type_intrinsic) { + nir_intrinsic_instr *intr = nir_instr_as_intrinsic(src.ssa->parent_instr); + + if (type == nir_type_bool) { + return intr->intrinsic == nir_intrinsic_load_front_face || + intr->intrinsic == nir_intrinsic_load_helper_invocation; + } } /* don't know */ -- 2.30.2