diff --git a/src/compiler/nir/nir_opt_uniform_subgroup.c b/src/compiler/nir/nir_opt_uniform_subgroup.c index 9648b6fb88f..d2732a26c40 100644 --- a/src/compiler/nir/nir_opt_uniform_subgroup.c +++ b/src/compiler/nir/nir_opt_uniform_subgroup.c @@ -31,6 +31,7 @@ opt_uniform_subgroup_filter(const nir_instr *instr, const void *_state) case nir_intrinsic_masked_swizzle_amd: case nir_intrinsic_vote_all: case nir_intrinsic_vote_any: + case nir_intrinsic_vote_ieq: return !nir_src_is_divergent(&intrin->src[0]); case nir_intrinsic_reduce: @@ -142,6 +143,8 @@ opt_uniform_subgroup_instr(nir_builder *b, nir_instr *instr, void *_state) intrin->src[0].ssa); } } + } else if (intrin->intrinsic == nir_intrinsic_vote_ieq) { + return nir_imm_true(b); } return intrin->src[0].ssa;