llvm/bolt/test/X86/name-similarity-function-matching.test

## Tests function matching in YAMLProfileReader by name similarity.

# REQUIRES: system-linux
# RUN: split-file %s %t
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %t/main.s -o %t.o
# RUN: %clang %cflags %t.o -o %t.exe -Wl,-q -nostdlib
# RUN: llvm-bolt %t.exe -o %t.out --data %t/yaml -v=2 \
# RUN:   --print-cfg --name-similarity-function-matching-threshold=1 --funcs=main --profile-ignore-hash=0 2>&1 | FileCheck %s

# CHECK: BOLT-INFO: matched 1 functions with similar names

#--- main.s
.globl main
.type	main, @function
main:
  .cfi_startproc
.LBB00:
  pushq   %rbp
  movq    %rsp, %rbp
  subq    $16, %rsp
  testq   %rax, %rax
  js      .LBB03
.LBB01:
  jne     .LBB04
.LBB02:
  nop
.LBB03:
  xorl    %eax, %eax
  addq    $16, %rsp
  popq    %rbp
  retq
.LBB04:
  xorl    %eax, %eax
  addq    $16, %rsp
  popq    %rbp
  retq
## For relocations against .text
  .reloc 0, R_X86_64_NONE
  .cfi_endproc
  .size	main, .-main

#--- yaml
---
header:
  profile-version: 1
  binary-name:     'hashing-based-function-matching.s.tmp.exe'
  binary-build-id: '<unknown>'
  profile-flags:   [ lbr ]
  profile-origin:  branch profile reader
  profile-events:  ''
  dfs-order:       false
  hash-func:       xxh3
functions:
  - name:            main2
    fid:             0
    hash:            0x0000000000000001
    exec:            1
    nblocks:         5
    blocks:
      - bid:             1
        insns:           1
        succ:            [ { bid: 3, cnt: 1} ]
...