nir/opt_uniform_subgroup: Handle vote_ieq

No shader-db changes here, but it does improve some cts shaders, eg. the
vertex shader in
dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_i64vec4_vertex
goes from 80 to 56 instructions with NAK

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35778>
This commit is contained in:
Mel Henning
2025-06-26 17:57:12 -04:00
committed by Marge Bot
parent ff0a69efd7
commit 70fccc59fc
@@ -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;