Files to reproduce problem
glsl_reduced.frag is a minimized GLSL shader. When compiled to SPIR-V with glslangValidator we get glsl_reduced.spv. This has been further reduced using spirv-reduce to spiv_reduced.spv.
Doing:
spirv-opt spirv_reduced.spv --scalar-replacement=100 --vector-dce --eliminate-local-single-block --redundancy-elimination --eliminate-dead-branches --merge-return --convert-local-access-chains --eliminate-dead-code-aggressive -o temp.spv
spirv-val temp.spv
should trigger the problem:
error: line 96: ID 95[%95] has not been defined
OpBranchConditional %95 %62 %64
I did not try to reduce the spirv-opt flags, in case (as with #2450) there may be an issue both with the optimizer generating invalid code and the validator not picking this up soon enough.
Found using GraphicsFuzz