diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/spirv/vtn_cfg.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/src/compiler/spirv/vtn_cfg.c b/src/compiler/spirv/vtn_cfg.c index 9c4cbe2e6a4..8582c4f0e94 100644 --- a/src/compiler/spirv/vtn_cfg.c +++ b/src/compiler/spirv/vtn_cfg.c @@ -513,14 +513,13 @@ vtn_cfg_walk_blocks(struct vtn_builder *b, struct list_head *cf_list, "Selector of OpSelect must have a type of OpTypeInt"); bool is_default = true; - const uint bitsize = nir_alu_type_get_type_size(cond_type); for (const uint32_t *w = block->branch + 2; w < branch_end;) { uint64_t literal = 0; if (!is_default) { - if (bitsize <= 32) { + if (nir_alu_type_get_type_size(cond_type) <= 32) { literal = *(w++); } else { - assert(bitsize == 64); + assert(nir_alu_type_get_type_size(cond_type) == 64); literal = vtn_u64_literal(w); w += 2; } @@ -545,7 +544,7 @@ vtn_cfg_walk_blocks(struct vtn_builder *b, struct list_head *cf_list, /* Finally, we walk over all of the cases one more time and put * them in fall-through order. */ - for (const uint32_t *w = block->branch + 2; w < branch_end;) { + for (const uint32_t *w = block->branch + 2; w < branch_end; w += 2) { struct vtn_block *case_block = vtn_value(b, *w, vtn_value_type_block)->block; @@ -555,13 +554,6 @@ vtn_cfg_walk_blocks(struct vtn_builder *b, struct list_head *cf_list, vtn_assert(case_block->switch_case); vtn_order_case(swtch, case_block->switch_case); - - if (bitsize <= 32) { - w += 2; - } else { - assert(bitsize == 64); - w += 3; - } } enum vtn_branch_type branch_type = |