pan/bit: Add FMA_REDUCE test
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tue, 14 Apr 2020 17:19:13 +0000 (13:19 -0400)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 17 Apr 2020 20:25:36 +0000 (16:25 -0400)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4615>

src/panfrost/bifrost/test/bi_test_pack.c

index 9d4b6fe723a6d13b337bf72662e550247652f0ac..b68d10a07c919b49ceb41a4b63e0dc873591b747 100644 (file)
@@ -302,6 +302,21 @@ bit_frexp_helper(struct panfrost_device *dev, uint32_t *input, enum bit_debug de
         }
 }
 
+static void
+bit_reduce_helper(struct panfrost_device *dev, uint32_t *input, enum bit_debug debug)
+{
+        bi_instruction ins = bit_ins(BI_REDUCE_FMA, 2, nir_type_float, 32);
+
+        for (enum bi_reduce_op op = 0; op <= BI_REDUCE_ADD_FREXPM; ++op) {
+                ins.op.reduce = op;
+
+                if (!bit_test_single(dev, &ins, input, true, debug)) {
+                        fprintf(stderr, "FAIL: reduce.%s\n",
+                                        bi_reduce_op_name(op));
+                }
+        }
+}
+
 static void
 bit_convert_helper(struct panfrost_device *dev, unsigned from_size,
                 unsigned to_size, unsigned cx, unsigned cy, bool FMA,
@@ -406,4 +421,5 @@ bit_packing(struct panfrost_device *dev, enum bit_debug debug)
         }
 
         bit_frexp_helper(dev, (uint32_t *) input32, debug);
+        bit_reduce_helper(dev, (uint32_t *) input32, debug);
 }