freedreno/ir3/cp: fix ldib bug
authorRob Clark <robdclark@gmail.com>
Tue, 26 Feb 2019 19:46:45 +0000 (14:46 -0500)
committerKristian H. Kristensen <hoegsberg@chromium.org>
Fri, 15 Mar 2019 17:52:11 +0000 (10:52 -0700)
Something that we didn't hit earlier because of the extra shr.b

Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@chromium.org>
src/freedreno/ir3/ir3_cp.c

index 76e13a05bf6ffc9572c938260c07997f5c66a6b2..bbc85b1219848a6d5f2d64cd48a7cf2ad11a6b29 100644 (file)
@@ -210,6 +210,12 @@ static bool valid_flags(struct ir3_instruction *instr, unsigned n,
 
                        if (is_atomic(instr->opc) && !(instr->flags & IR3_INSTR_G))
                                return false;
+
+                       /* as with atomics, ldib on a6xx can only have immediate for
+                        * SSBO slot argument
+                        */
+                       if ((instr->opc == OPC_LDIB) && (n != 0))
+                               return false;
                }
 
                break;