Compiler projects using llvm
; REQUIRES: x86-registered-target
; RUN: llvm-profgen --binary=%S/Inputs/symbolize.perfbin --perfscript=%s --output=%t1 --show-disassembly-only -x86-asm-syntax=intel --show-source-locations | FileCheck %s --match-full-lines
; RUN: llvm-profgen --binary=%S/Inputs/symbolize.perfbin --perfscript=%s --output=%t2 --show-disassembly-only -x86-asm-syntax=intel --show-source-locations --show-canonical-fname | FileCheck %s --match-full-lines  --check-prefix=CHECK-CANO

; CHECK: Disassembly of section .text [0x520, 0x62c]:
; CHECK:        <funcA.llvm.1000>:
; CHECK-NEXT:     5e0:	mov	eax, edi                           funcA.llvm.1000:0
; CHECK-NEXT:     5e2:	mov	edx, dword ptr [rip + 2099768]     funcLeaf:2 @ funcA.llvm.1000:1
; CHECK-NEXT:     5e8:	mov	ecx, edx                           fib:2 @ funcLeaf:2 @ funcA.llvm.1000:1
; CHECK-NEXT:     5ea:	add	ecx, 3                             fib:2 @ funcLeaf:2 @ funcA.llvm.1000:1
; CHECK-NEXT:     5ed:	cmp	edx, 3                             fib:2 @ funcLeaf:2 @ funcA.llvm.1000:1
; CHECK-NEXT:     5f0:	cmovl	ecx, edx                         fib:2 @ funcLeaf:2 @ funcA.llvm.1000:1
; CHECK-NEXT:     5f3:	sub	eax, ecx                           funcLeaf:2 @ funcA.llvm.1000:1
; CHECK-NEXT:     5f5:	ret                                    funcA.llvm.1000:2
; CHECK-CANO:        <funcA>:
; CHECK-CANO-NEXT:     5e0:	mov	eax, edi                           funcA:0
; CHECK-CANO-NEXT:     5e2:	mov	edx, dword ptr [rip + 2099768]     funcLeaf:2 @ funcA:1
; CHECK-CANO-NEXT:     5e8:	mov	ecx, edx                           fib:2 @ funcLeaf:2 @ funcA:1
; CHECK-CANO-NEXT:     5ea:	add	ecx, 3                             fib:2 @ funcLeaf:2 @ funcA:1
; CHECK-CANO-NEXT:     5ed:	cmp	edx, 3                             fib:2 @ funcLeaf:2 @ funcA:1
; CHECK-CANO-NEXT:     5f0:	cmovl	ecx, edx                         fib:2 @ funcLeaf:2 @ funcA:1
; CHECK-CANO-NEXT:     5f3:	sub	eax, ecx                           funcLeaf:2 @ funcA:1
; CHECK-CANO-NEXT:     5f5:	ret                                    funcA:2
; CHECK: <funcLeaf>:
; CHECK-NEXT:     600:	mov	eax, edi                           funcLeaf:1
; CHECK-NEXT:     602:	mov	edx, dword ptr [rip + 2099736]     funcLeaf:2
; CHECK-NEXT:     608:	mov	ecx, edx                           fib:2 @ funcLeaf:2
; CHECK-NEXT:     60a:	add	ecx, 3                             fib:2 @ funcLeaf:2
; CHECK-NEXT:     60d:	cmp	edx, 3                             fib:2 @ funcLeaf:2
; CHECK-NEXT:     610:	cmovl	ecx, edx                         fib:2 @ funcLeaf:2
; CHECK-NEXT:     613:	sub	eax, ecx                           funcLeaf:2
; CHECK-NEXT:     615:	ret                                    funcLeaf:3
; CHECK: <fib>:
; CHECK-NEXT:     620:	mov	eax, edi                           fib:2
; CHECK-NEXT:     622:	add	eax, 3                             fib:2
; CHECK-NEXT:     625:	cmp	edi, 3                             fib:2
; CHECK-NEXT:     628:	cmovl	eax, edi                         fib:2
; CHECK-NEXT:     62b:	ret                                    fib:8

; symbolize.perfbin is from the following compile commands:
; clang %S/Inputs/symbolize.ll -shared -fPIC -o %S/Inputs/symbolize.perfbin