X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fnir%2Fnir_validate.c;h=c7f2097c9124f206a24bfe3ba1663f426566b536;hb=025bdbac3e09ae9bac9eefb831e9446b9574d120;hp=2f6e312826e19c3118519b3a3472746a6f75751f;hpb=4768ea1a77ad7559004949d0cf1eb7af9a4499d9;p=mesa.git diff --git a/src/compiler/nir/nir_validate.c b/src/compiler/nir/nir_validate.c index 2f6e312826e..c7f2097c912 100644 --- a/src/compiler/nir/nir_validate.c +++ b/src/compiler/nir/nir_validate.c @@ -777,6 +777,8 @@ validate_jump_instr(nir_jump_instr *instr, validate_state *state) case nir_jump_return: validate_assert(state, block->successors[0] == state->impl->end_block); validate_assert(state, block->successors[1] == NULL); + validate_assert(state, instr->target == NULL); + validate_assert(state, instr->else_target == NULL); break; case nir_jump_break: @@ -788,6 +790,8 @@ validate_jump_instr(nir_jump_instr *instr, validate_state *state) validate_assert(state, block->successors[0] == after); } validate_assert(state, block->successors[1] == NULL); + validate_assert(state, instr->target == NULL); + validate_assert(state, instr->else_target == NULL); break; case nir_jump_continue: @@ -798,6 +802,24 @@ validate_jump_instr(nir_jump_instr *instr, validate_state *state) validate_assert(state, block->successors[0] == first); } validate_assert(state, block->successors[1] == NULL); + validate_assert(state, instr->target == NULL); + validate_assert(state, instr->else_target == NULL); + break; + + case nir_jump_goto: + validate_assert(state, !state->impl->structured); + validate_assert(state, instr->target == block->successors[0]); + validate_assert(state, instr->target != NULL); + validate_assert(state, instr->else_target == NULL); + break; + + case nir_jump_goto_if: + validate_assert(state, !state->impl->structured); + validate_assert(state, instr->target == block->successors[1]); + validate_assert(state, instr->else_target == block->successors[0]); + validate_src(&instr->condition, state, 0, 1); + validate_assert(state, instr->target != NULL); + validate_assert(state, instr->else_target != NULL); break; default: