nir: In split_var_copies_block, uint, int, and bool types cannot be matrices
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 7 Sep 2016 21:35:20 +0000 (14:35 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 7 Dec 2016 01:30:38 +0000 (17:30 -0800)
Noticed while adding support for 64-bit integer types.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/compiler/nir/nir_split_var_copies.c

index f9ad49a..63a7611 100644 (file)
@@ -231,9 +231,6 @@ split_var_copies_block(nir_block *block, struct split_var_copies_state *state)
          break;
       case GLSL_TYPE_FLOAT:
       case GLSL_TYPE_DOUBLE:
-      case GLSL_TYPE_INT:
-      case GLSL_TYPE_UINT:
-      case GLSL_TYPE_BOOL:
          if (glsl_type_is_matrix(src_tail->type)) {
             split_var_copy_instr(intrinsic, dest_head, src_head,
                                  dest_tail, src_tail, state);
@@ -241,6 +238,11 @@ split_var_copies_block(nir_block *block, struct split_var_copies_state *state)
             ralloc_steal(state->dead_ctx, instr);
          }
          break;
+      case GLSL_TYPE_INT:
+      case GLSL_TYPE_UINT:
+      case GLSL_TYPE_BOOL:
+         assert(!glsl_type_is_matrix(src_tail->type));
+         break;
       default:
          unreachable("Invalid type");
          break;