Mesa (master): nir/vtn: Support OpOrdered and OpUnordered opcodes
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Aug 18 00:34:33 UTC 2020
Module: Mesa
Branch: master
Commit: 80163bbec3a3c0a9d566b4a562b720639fbdcf96
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=80163bbec3a3c0a9d566b4a562b720639fbdcf96
Author: Jesse Natalie <jenatali at microsoft.com>
Date: Wed Jun 24 10:58:36 2020 -0700
nir/vtn: Support OpOrdered and OpUnordered opcodes
Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Reviewed-by: Karol Herbst <kherbst at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6355>
---
src/compiler/spirv/vtn_alu.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/compiler/spirv/vtn_alu.c b/src/compiler/spirv/vtn_alu.c
index 41be1a18dc8..e92a48f24a6 100644
--- a/src/compiler/spirv/vtn_alu.c
+++ b/src/compiler/spirv/vtn_alu.c
@@ -516,6 +516,16 @@ vtn_handle_alu(struct vtn_builder *b, SpvOp opcode,
dest->def = nir_fne(&b->nb, src[0], src[0]);
break;
+ case SpvOpOrdered:
+ dest->def = nir_iand(&b->nb, nir_feq(&b->nb, src[0], src[0]),
+ nir_feq(&b->nb, src[1], src[1]));
+ break;
+
+ case SpvOpUnordered:
+ dest->def = nir_ior(&b->nb, nir_fne(&b->nb, src[0], src[0]),
+ nir_fne(&b->nb, src[1], src[1]));
+ break;
+
case SpvOpIsInf: {
nir_ssa_def *inf = nir_imm_floatN_t(&b->nb, INFINITY, src[0]->bit_size);
dest->def = nir_ieq(&b->nb, nir_fabs(&b->nb, src[0]), inf);
More information about the mesa-commit
mailing list