llvm/llvm/test/MC/ELF/layout-interdependency2.s

## Contrived .zero directive example, simplified from the Linux kernel use case,
## which requires multiple iterations to converge.
## https://github.com/llvm/llvm-project/issues/100283
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t
# RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s

# CHECK:       80: jne 0x0 <.text>
# CHECK-EMPTY:

	.text
.Ltmp0:
.Ltmp1:
	cli
	popq	%rdi
text1:
	.zero	(.Ltmp2-.Ltmp3)
	.section	"","ax",@progbits
.Ltmp3:
	movq	$0, %rax
.Ltmp4:
.Ltmp5:
	.section	.discard.intra_function_calls,"ax",@progbits
	.long	.Ltmp5
	.section	"","ax",@progbits
	callq	.Ltmp6
	int3
.Ltmp7:
.Ltmp8:
	.section	.discard.intra_function_calls,"ax",@progbits
	.long	.Ltmp8
	.section	"","ax",@progbits
	callq	.Ltmp6
	int3
.Ltmp6:
	addq	$0, %rsp
	decq	%rax
	jne	.Ltmp4
	lfence
	movq	$-1, %gs:pcpu_hot+6

.Ltmp2:
	.text
text2:

	.zero	(.Ltmp9-.Ltmp10)
	.section	"","ax",@progbits
.Ltmp10:
	jmp	.Ltmp11
.Ltmp9:
	.text
text3:

.Ltmp12:
	.zero	(.Ltmp13-.Ltmp14)
	.section	"","ax",@progbits
.Ltmp14:
	callq	entry_untrain_ret
.Ltmp13:
	.text

	.zero	(.Ltmp15-.Ltmp16)
	.section	"","ax",@progbits
.Ltmp16:
	xorl	%eax, %eax
	btsq	$63, %rax
	movq	%rax, %gs:pcpu_hot+6

.Ltmp15:
	.text

	popq	%r12
	popq	rbp
	jmp	__x86_return_thunk
	movl	936(%rdi), %eax
	cmpl	%gs:x86_spec_ctrl_current, %eax
	je	.Ltmp0
	movl	edx, %edx
	wrmsr
	jmp	.Ltmp0
.Ltmp11:
	movl	$72, %ecx
	jmp	.Ltmp12
	cmpb	$0, kvm_rebooting
	jne	.Ltmp1