bifrost: Fix packing of ADD_FEXP2_FAST
authorChris Forbes <chrisforbes@google.com>
Tue, 28 Jul 2020 21:42:33 +0000 (14:42 -0700)
committerChris Forbes <chrisforbes@google.com>
Tue, 28 Jul 2020 21:46:41 +0000 (14:46 -0700)
This was being packed as 1-src and so the Src1 was not set up properly.
It only worked by accident.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6111>

src/panfrost/bifrost/bi_pack.c
src/panfrost/bifrost/bifrost.h

index 5fb8213d0a7b0ff64ad26815fcda4d1680237fa2..d4351e25aa56c470c62cedce9b8d37c6459d07da 100644 (file)
@@ -1433,7 +1433,7 @@ bi_pack_add_special(bi_instruction *ins, bi_registers *regs)
 
         } else if (ins->op.special == BI_SPECIAL_EXP2_LOW) {
                 assert(!fp16);
-                op = BIFROST_ADD_OP_FEXP2_FAST;
+                return bi_pack_add_2src(ins, regs, BIFROST_ADD_OP_FEXP2_FAST);
         } else if (ins->op.special == BI_SPECIAL_IABS) {
                 assert(ins->src_types[0] == nir_type_int32);
                 op = BIFROST_ADD_OP_IABS_32;
index 085b3296f2a5f0003f2a32eb863484b645a46f92..12fb13a2c0c432be2ffe3f3f0d0fda0ee3646c90 100644 (file)
@@ -163,7 +163,6 @@ struct bifrost_fma_mscale {
 #define BIFROST_ADD_OP_FRSQ_FAST_F16_X (0x0ce50)
 #define BIFROST_ADD_OP_FRSQ_FAST_F16_Y (0x0ce70)
 #define BIFROST_ADD_OP_LOG2_HELP  (0x0cc68)
-#define BIFROST_ADD_OP_FEXP2_FAST (0x0cd58)
 #define BIFROST_ADD_OP_IABS_32 (0x07bd4)
 
 struct bifrost_add_inst {
@@ -203,6 +202,7 @@ struct bifrost_add_discard {
 #define BIFROST_ADD_ISUB_8  (0x17a80 >> 3)
 #define BIFROST_ADD_ISUB_16 (0x17b00 >> 3)
 #define BIFROST_ADD_ISUB_32 (0x17ac0 >> 3)
+#define BIFROST_ADD_OP_FEXP2_FAST (0x0cd58 >> 3)
 
 struct bifrost_add_2src {
         unsigned src0 : 3;