lima/gpir: fix alu check miss last store slot
authorQiang Yu <yuq825@gmail.com>
Fri, 12 Apr 2019 03:35:34 +0000 (11:35 +0800)
committerQiang Yu <yuq825@gmail.com>
Sun, 14 Apr 2019 04:10:23 +0000 (12:10 +0800)
Fixes: 92d7ca4b1cd "gallium: add lima driver"
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
src/gallium/drivers/lima/ir/gp/instr.c

index 0ff7e7eabc24786dae00ec66ef1c5cfbfed77c13..158a9a93fd45223a2eb0ec72987248a00de1184b 100644 (file)
@@ -90,7 +90,7 @@ static bool gpir_instr_insert_alu_check(gpir_instr *instr, gpir_node *node)
     * complex1 won't be any of this instr's store node's child,
     * because it has two instr latency before store can use it.
     */
-   for (int i = GPIR_INSTR_SLOT_STORE0; i < GPIR_INSTR_SLOT_STORE3; i++) {
+   for (int i = GPIR_INSTR_SLOT_STORE0; i <= GPIR_INSTR_SLOT_STORE3; i++) {
       gpir_store_node *s = gpir_node_to_store(instr->slots[i]);
       if (s && s->child == node) {
          /* acc node may consume 2 slots, so even it's the child of a
@@ -119,7 +119,7 @@ static void gpir_instr_remove_alu(gpir_instr *instr, gpir_node *node)
 {
    int consume_slot = gpir_instr_get_consume_slot(instr, node);
 
-   for (int i = GPIR_INSTR_SLOT_STORE0; i < GPIR_INSTR_SLOT_STORE3; i++) {
+   for (int i = GPIR_INSTR_SLOT_STORE0; i <= GPIR_INSTR_SLOT_STORE3; i++) {
       gpir_store_node *s = gpir_node_to_store(instr->slots[i]);
       if (s && s->child == node) {
          instr->alu_num_slot_needed_by_store++;