pan/bi: Add isub op
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tue, 10 Mar 2020 12:03:20 +0000 (08:03 -0400)
committerMarge Bot <eric+marge@anholt.net>
Tue, 10 Mar 2020 19:25:59 +0000 (19:25 +0000)
Can't be a regular ADD since there's no negate modifier for integers
(it's a different opcode entirely).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4139>

src/panfrost/bifrost/bi_print.c
src/panfrost/bifrost/bi_tables.c
src/panfrost/bifrost/bifrost_compile.c
src/panfrost/bifrost/compiler.h

index daccf91..06b4a03 100644 (file)
@@ -120,6 +120,7 @@ bi_class_name(enum bi_class cl)
         case BI_DISCARD: return "discard";
         case BI_FMA: return "fma";
         case BI_FREXP: return "frexp";
+        case BI_ISUB: return "isub";
         case BI_LOAD: return "load";
         case BI_LOAD_UNIFORM: return "load_uniform";
         case BI_LOAD_ATTR: return "load_attr";
index 06430d0..e33b89a 100644 (file)
@@ -38,6 +38,7 @@ unsigned bi_class_props[BI_NUM_CLASSES] = {
         [BI_DISCARD]           = BI_SCHED_HI_LATENCY,
         [BI_FMA]               = BI_ROUNDMODE | BI_SCHED_FMA,
         [BI_FREXP]             = BI_SCHED_ALL,
+        [BI_ISUB]              = BI_GENERIC | BI_SCHED_ALL,
         [BI_LOAD]              = BI_SCHED_HI_LATENCY,
         [BI_LOAD_UNIFORM]      = BI_SCHED_HI_LATENCY,
         [BI_LOAD_ATTR]                 = BI_SCHED_HI_LATENCY,
index 6fa982e..97ef069 100644 (file)
@@ -233,6 +233,8 @@ bi_class_for_nir_alu(nir_op op)
         case nir_op_fadd:
         case nir_op_fsub:
                 return BI_ADD;
+        case nir_op_isub:
+                return BI_ISUB;
 
         case nir_op_i2i8:
         case nir_op_i2i16:
index c1c8d69..ec1a6f3 100644 (file)
@@ -58,6 +58,7 @@ enum bi_class {
         BI_DISCARD,
         BI_FMA,
         BI_FREXP,
+        BI_ISUB,
         BI_LOAD,
         BI_LOAD_UNIFORM,
         BI_LOAD_ATTR,