Compiler projects using llvm
; RUN: llc -mtriple x86_64-linux-gnu -function-sections %s -o - | FileCheck %s --check-prefix=ELF
; RUN: llc -mtriple x86_64-linux-gnu -unique-section-names=0 -function-sections %s -o - | FileCheck %s --check-prefix=ELF-NOUNIQ
; RUN: llc -mtriple x86_64-windows-msvc -function-sections %s -o - | FileCheck %s --check-prefix=COFF-MSVC
; RUN: llc -mtriple x86_64-windows-gnu -function-sections %s -o - | FileCheck %s --check-prefix=COFF-GNU

define void @foo1(i1 zeroext %0) nounwind !section_prefix !0 {
;; Check hot section name
; ELF:        .section  .text.hot.foo1,"ax",@progbits
; ELF-NOUNIQ: .section  .text.hot.,"ax",@progbits,unique,1
; COFF-MSVC:  .section  .text$hot,"xr",one_only,foo1
; COFF-GNU:   .section  .text$hot$foo1,"xr",one_only,foo1
  ret void
}

define void @foo2(i1 zeroext %0) nounwind !section_prefix !1 {
;; Check unlikely section name
; ELF:        .section  .text.unlikely.foo2,"ax",@progbits
; ELF-NOUNIQ: .section  .text.unlikely.,"ax",@progbits,unique,2
; COFF-MSVC:  .section  .text$unlikely,"xr",one_only,foo2
; COFF-GNU:   .section  .text$unlikely$foo2,"xr",one_only,foo2
  ret void
}

!0 = !{!"function_section_prefix", !"hot"}
!1 = !{!"function_section_prefix", !"unlikely"}