xref: /llvm-project/bolt/test/X86/tail-duplication-prop-bug.s (revision 11791ae7b0b05b8bd8d806331ff51da618912cf8)
1*11791ae7SSayhaan Siddiqui## This reproduces a bug in aggressive tail duplication/copy propagation.
202145d20SAmir Ayupov
302145d20SAmir Ayupov# REQUIRES: system-linux
402145d20SAmir Ayupov# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o
502145d20SAmir Ayupov# RUN: link_fdata %s %t.o %t.fdata
602145d20SAmir Ayupov# RUN: llvm-strip --strip-unneeded %t.o
708dcbed9SAmir Ayupov# RUN: ld.lld %t.o -o %t.exe -q -nostdlib
8d648aa1bSMaksim Panchenko# RUN: llvm-bolt %t.exe -o %t.out --data %t.fdata --relocs \
9d648aa1bSMaksim Panchenko# RUN:   --tail-duplication=aggressive \
10d648aa1bSMaksim Panchenko# RUN:   --tail-duplication-const-copy-propagation=1
1102145d20SAmir Ayupov
1208dcbed9SAmir Ayupov  .text
1308dcbed9SAmir Ayupov  .type a, %function
1402145d20SAmir Ayupov  .globl a
1502145d20SAmir Ayupova:
1602145d20SAmir Ayupov	.cfi_startproc
1702145d20SAmir Ayupov	jmpq	*JT(,%rcx,8)
1802145d20SAmir Ayupovb:
1902145d20SAmir Ayupov	jb	d
2002145d20SAmir Ayupov# FDATA: 1 a #b# 1 a #d# 6 60
2102145d20SAmir Ayupove:
2202145d20SAmir Ayupov	cmpl	%eax, %ebx
2302145d20SAmir Ayupovf:
2402145d20SAmir Ayupov	jmp	g
2502145d20SAmir Ayupov# FDATA: 1 a #f# 1 a #g# 0 8
2602145d20SAmir Ayupovd:
2702145d20SAmir Ayupov	movl	$0x1, %ebx
2802145d20SAmir Ayupov	jmp	e
2902145d20SAmir Ayupov	jmp	g
3002145d20SAmir Ayupovh:
3102145d20SAmir Ayupov	jmp	h
3202145d20SAmir Ayupovi:
3302145d20SAmir Ayupov	jne	j
3402145d20SAmir Ayupovg:
3502145d20SAmir Ayupov	jmp	g
3602145d20SAmir Ayupovj:
3708dcbed9SAmir Ayupov    ud2
3802145d20SAmir Ayupov	.cfi_endproc
3908dcbed9SAmir Ayupov.size a, .-a
4008dcbed9SAmir Ayupov
4102145d20SAmir Ayupov.rodata
4202145d20SAmir AyupovJT:
4302145d20SAmir Ayupov	.quad	b
4402145d20SAmir Ayupov	.quad	i
45