summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/tgsi/tgsi_exec.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/auxiliary/tgsi/tgsi_exec.c')
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_exec.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index 0a276483c4..4d56cac64d 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -2090,6 +2090,16 @@ micro_umin(union tgsi_exec_channel *dst,
}
static void
+micro_umod(union tgsi_exec_channel *dst,
+ const union tgsi_exec_channel *src)
+{
+ dst->u[0] = src[0].u[0] % src[1].u[0];
+ dst->u[1] = src[0].u[1] % src[1].u[1];
+ dst->u[2] = src[0].u[2] % src[1].u[2];
+ dst->u[3] = src[0].u[3] % src[1].u[3];
+}
+
+static void
micro_umul(union tgsi_exec_channel *dst,
const union tgsi_exec_channel *src)
{
@@ -3491,6 +3501,10 @@ exec_instruction(
exec_vector_binary(mach, inst, micro_umin);
break;
+ case TGSI_OPCODE_UMOD:
+ exec_vector_binary(mach, inst, micro_umod);
+ break;
+
case TGSI_OPCODE_UMUL:
exec_vector_binary(mach, inst, micro_umul);
break;