pan/bi: Remove hacks for 1-bit booleans in IR
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Sat, 21 Mar 2020 21:41:34 +0000 (17:41 -0400)
committerMarge Bot <eric+marge@anholt.net>
Sun, 22 Mar 2020 03:32:35 +0000 (03:32 +0000)
Now that we lower them away, a bunch of special cases disappear.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276>

src/panfrost/bifrost/bi_print.c
src/panfrost/bifrost/bi_ra.c
src/panfrost/bifrost/bifrost_compile.c
src/panfrost/bifrost/bir.c

index f06cff849d394934736fd88d011d979ae02790f2..73de74381cccf9389a7ea245af4afda194a93de2 100644 (file)
@@ -227,7 +227,7 @@ bi_print_alu_type(nir_alu_type t, FILE *fp)
 static void
 bi_print_swizzle(bi_instruction *ins, unsigned src, FILE *fp)
 {
-        unsigned size = MAX2(nir_alu_type_get_type_size(ins->dest_type), 8);
+        unsigned size = nir_alu_type_get_type_size(ins->dest_type);
         unsigned count = (size == 64) ? 1 : (32 / size);
 
         fprintf(fp, ".");
@@ -303,7 +303,7 @@ bi_print_writemask(bi_instruction *ins, FILE *fp)
 {
         unsigned bits_per_comp = nir_alu_type_get_type_size(ins->dest_type);
         assert(bits_per_comp);
-        unsigned bytes_per_comp = MAX2(bits_per_comp / 8, 1);
+        unsigned bytes_per_comp = bits_per_comp / 8;
         unsigned comps = 16 / bytes_per_comp;
         unsigned smask = (1 << bytes_per_comp) - 1;
         fprintf(fp, ".");
index a047932ae71ae66ab66d7f52c6d05f3ca9fc0f7c..f7feec222bd9a4551c158fe6d74ff38889cf10a9 100644 (file)
@@ -123,8 +123,8 @@ bi_adjust_src_ra(bi_instruction *ins, struct lcra_state *l, unsigned src)
                 /* Use the swizzle as component select */
                 nir_alu_type T = ins->src_types[src];
                 unsigned size = nir_alu_type_get_type_size(T);
-                unsigned bytes = (MAX2(size, 8) / 8);
-                unsigned comps_per_reg = 4 / bytes;
+                assert(size <= 32); /* TODO: 64-bit */
+                unsigned comps_per_reg = 32 / size;
                 unsigned components = bi_get_component_count(ins, src);
 
                 for (unsigned i = 0; i < components; ++i) {
@@ -159,7 +159,7 @@ bi_adjust_dest_ra(bi_instruction *ins, struct lcra_state *l)
 
                 unsigned tz = __builtin_ctz(ins->writemask);
 
-                /* Recall writemask is one bit per byte, so tz is in bytes */
+                /* Recall writemask is one bit per byte, so tz is in eytes */
                 unsigned regs = tz / 4;
                 offset = regs * 4;
 
index 1b08e7b433c22794086f276c9c36d31852ddd582..43b44314fece2d93a1e49a49a40c9237b40f7af9 100644 (file)
@@ -455,7 +455,7 @@ emit_alu(bi_context *ctx, nir_alu_instr *instr)
                 unsigned comps = instr->dest.dest.ssa.num_components;
                 assert(comps == 1);
                 unsigned bits = bits_per_comp * comps;
-                unsigned bytes = MAX2(bits / 8, 1);
+                unsigned bytes = bits / 8;
                 alu.writemask = (1 << bytes) - 1;
         } else {
                 unsigned comp_mask = instr->dest.write_mask;
index c385cfe7587c71f3fe2c515e6a2165068b2aea06..f110564aa642e49a5520730814edad0341afd9b6 100644 (file)
@@ -100,7 +100,7 @@ bi_get_component_count(bi_instruction *ins, unsigned src)
         } else {
                 /* Stores imply VECTOR */
                 assert(ins->dest_type);
-                unsigned bytes = MAX2(nir_alu_type_get_type_size(ins->dest_type), 8);
+                unsigned bytes = nir_alu_type_get_type_size(ins->dest_type);
                 return 32 / bytes;
         }
 }
@@ -125,7 +125,7 @@ bi_bytemask_of_read_components(bi_instruction *ins, unsigned node)
                 unsigned component_count = bi_get_component_count(ins, s);
                 nir_alu_type T = ins->src_types[s];
                 unsigned size = nir_alu_type_get_type_size(T);
-                unsigned bytes = (MAX2(size, 8) / 8);
+                unsigned bytes = size / 8;
                 unsigned cmask = (1 << bytes) - 1;
 
                 for (unsigned i = 0; i < component_count; ++i) {