Compiler projects using llvm
; REQUIRES: x86_64-linux
; RUN: llc < %s -mcpu=generic -mtriple=x86_64-- -O3 | FileCheck %s

define float @foo(float %x) #0 {
  %tmp1 = fmul float %x, 3.000000e+00
  %tmp3 = fmul float %x, 5.000000e+00
  %tmp5 = fmul float %x, 7.000000e+00
  %tmp7 = fmul float %x, 1.100000e+01
  call void @llvm.pseudoprobe(i64 6699318081062747564, i64 1, i32 0, i64 -1)
  %tmp10 = fadd float %tmp1, %tmp3
  %tmp12 = fadd float %tmp10, %tmp5
  %tmp14 = fadd float %tmp12, %tmp7
  ret float %tmp14
; CHECK: mulss
; CHECK: mulss
; CHECK: addss
; CHECK: mulss
; CHECK: addss
; CHECK: mulss
; CHECK: addss
; CHECK: ret
}

; Function Attrs: inaccessiblememonly nounwind willreturn
declare void @llvm.pseudoprobe(i64, i64, i32, i64) #1

attributes #0 = { nounwind }
attributes #1 = { inaccessiblememonly nounwind willreturn }

!llvm.pseudo_probe_desc = !{!0}

!0 = !{i64 6699318081062747564, i64 4294967295, !"foo", null}