}
 }
 
+static void
+print_alu_type(nir_alu_type type, print_state *state)
+{
+   FILE *fp = state->fp;
+   unsigned size = nir_alu_type_get_type_size(type);
+   const char *name;
+
+   switch (nir_alu_type_get_base_type(type)) {
+   case nir_type_int: name = "int"; break;
+   case nir_type_uint: name = "uint"; break;
+   case nir_type_bool: name = "bool"; break;
+   case nir_type_float: name = "float"; break;
+   default: name = "invalid";
+   }
+   if (size)
+      fprintf(fp, "%s%u", name, size);
+   else
+      fprintf(fp, "%s", name);
+}
+
 static void
 print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
 {
       }
 
       case NIR_INTRINSIC_TYPE: {
-         nir_alu_type type = nir_intrinsic_type(instr);
-         unsigned size = nir_alu_type_get_type_size(type);
-         const char *name;
-         switch (nir_alu_type_get_base_type(type)) {
-         case nir_type_int: name = "int"; break;
-         case nir_type_uint: name = "uint"; break;
-         case nir_type_bool: name = "bool"; break;
-         case nir_type_float: name = "float"; break;
-         default: name = "invalid";
-         }
-         if (size)
-            fprintf(fp, " type=%s%u", name, size);
-         else
-            fprintf(fp, " type=%s", name);
+         fprintf(fp, " type=");
+         print_alu_type(nir_intrinsic_type(instr), state);
          break;
       }
 
 
    print_dest(&instr->dest, state);
 
-   fprintf(fp, " = ");
+   fprintf(fp, " = (");
+   print_alu_type(instr->dest_type, state);
+   fprintf(fp, ")");
 
    switch (instr->op) {
    case nir_texop_tex: