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