Typically label1 and label2 would be descriptive names.
Look at the code where you have the branch/jump instruction to label1/label2 and there are typically different reasons to going to either label1 or label2.
For instance, if instruction1/2 are part of a common error handler, it is practical to list the name of each error contrition with different label names, although the error handler code is common.
If the assembler code is generated by a high level language compiler and there are for instance nested if-statements, label1 would end the innermost if, while label2 would end the outermost if-statement (or whatever control statement).
Paul