summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2018-12-06 14:31:20 -0600
committerJason Ekstrand <[email protected]>2018-12-16 21:03:02 +0000
commit3595a0abf43be3ce27d88f5939b257a74e90035b (patch)
tree943b1391c02f982c67fd7a4b707777958c3416eb /src
parent9f7bd843afd6d2e59cc5b2651576eca5f72eaa5a (diff)
nir/constant_folding: Fix source bit size logic
Instead of looking at input_sizes[i] which contains the number of components for each source, we look at the bit size of input_types[i]. This fixes a regression in the 1-bit boolean series though I have no idea how we haven't seen it before now. Fixes: 35baee5dce5 "nir/constant_folding: fix incorrect bit-size check" Fixes: 9076c4e289d "nir: update opcode definitions for different bit sizes" Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Tested-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/compiler/nir/nir_opt_constant_folding.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/nir/nir_opt_constant_folding.c b/src/compiler/nir/nir_opt_constant_folding.c
index 1fca530af24..be91a2a8fd6 100644
--- a/src/compiler/nir/nir_opt_constant_folding.c
+++ b/src/compiler/nir/nir_opt_constant_folding.c
@@ -63,7 +63,8 @@ constant_fold_alu_instr(nir_alu_instr *instr, void *mem_ctx)
if (!instr->src[i].src.is_ssa)
return false;
- if (bit_size == 0 && nir_op_infos[instr->op].input_sizes[i] == 0)
+ if (bit_size == 0 &&
+ !nir_alu_type_get_type_size(nir_op_infos[instr->op].input_types[i]))
bit_size = instr->src[i].src.ssa->bit_size;
nir_instr *src_instr = instr->src[i].src.ssa->parent_instr;