diff options
author | Jason Ekstrand <[email protected]> | 2018-12-06 14:31:20 -0600 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-12-16 21:03:02 +0000 |
commit | 3595a0abf43be3ce27d88f5939b257a74e90035b (patch) | |
tree | 943b1391c02f982c67fd7a4b707777958c3416eb /src/compiler | |
parent | 9f7bd843afd6d2e59cc5b2651576eca5f72eaa5a (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/compiler')
-rw-r--r-- | src/compiler/nir/nir_opt_constant_folding.c | 3 |
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; |