nir/opt_vectorize: Add a callback for filtering of vectorizing.
[mesa.git] / src / panfrost / util / pan_ir.c
index fbe8f66bff410d67c3d80c6a75e6845af18ee30c..4fdb9ebabff44c73060e74785facff7246fc086a 100644 (file)
@@ -33,6 +33,10 @@ uint16_t
 pan_to_bytemask(unsigned bytes, unsigned mask)
 {
         switch (bytes) {
+        case 0:
+                assert(mask == 0);
+                return 0;
+
         case 8:
                 return mask;
 
@@ -92,3 +96,32 @@ pan_block_add_successor(pan_block *block, pan_block *successor)
 
         unreachable("Too many successors");
 }
+
+/* Prints a NIR ALU type in Bifrost-style ".f32" ".i8" etc */
+
+void
+pan_print_alu_type(nir_alu_type t, FILE *fp)
+{
+        unsigned size = nir_alu_type_get_type_size(t);
+        nir_alu_type base = nir_alu_type_get_base_type(t);
+
+        switch (base) {
+        case nir_type_int:
+                fprintf(fp, ".i");
+                break;
+        case nir_type_uint:
+                fprintf(fp, ".u");
+                break;
+        case nir_type_bool:
+                fprintf(fp, ".b");
+                break;
+        case nir_type_float:
+                fprintf(fp, ".f");
+                break;
+        default:
+                fprintf(fp, ".unknown");
+                break;
+        }
+
+        fprintf(fp, "%u", size);
+}