# RUN: llc -start-after=livedebugvalues -mtriple=x86_64-apple-darwin -o - %s -filetype=obj \
# RUN:   -emit-call-site-info | llvm-dwarfdump - | FileCheck %s -implicit-check-not=call_site_parameter

# CHECK: DW_TAG_formal_parameter
# CHECK-NEXT: DW_AT_location (DW_OP_reg17 XMM0)

# struct S {
#   float w;
# };
# void f(long w, long b);
# void g(struct S s) {
#   int w = s.w;
#   f(w, w*4);
# }

--- |
  define void @g(float %s.coerce) local_unnamed_addr !dbg !20 {
  entry:
    ret void, !dbg !31
  }
  declare !dbg !14 void @f(i64, i64) local_unnamed_addr
  !llvm.module.flags = !{!6, !7, !8, !9}
  !llvm.dbg.cu = !{!10}
  !6 = !{i32 7, !"Dwarf Version", i32 4}
  !7 = !{i32 2, !"Debug Info Version", i32 3}
  !8 = !{i32 1, !"wchar_size", i32 4}
  !9 = !{i32 7, !"PIC Level", i32 2}
  !10 = distinct !DICompileUnit(language: DW_LANG_ObjC, file: !15, producer: "", isOptimized: true, runtimeVersion: 2, emissionKind: FullDebug, enums: !12, retainedTypes: !13, nameTableKind: None, sysroot: "/")
  !12 = !{}
  !13 = !{!14}
  !14 = !DISubprogram(name: "f", scope: !15, file: !15, line: 4, type: !16, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !12)
  !15 = !DIFile(filename: "test.m", directory: "/")
  !16 = !DISubroutineType(types: !17)
  !17 = !{null, !18, !18}
  !18 = !DIBasicType(name: "long int", size: 64, encoding: DW_ATE_signed)
  !20 = distinct !DISubprogram(name: "g", scope: !15, file: !15, line: 5, type: !21, scopeLine: 5, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !10, retainedNodes: !27)
  !21 = !DISubroutineType(types: !22)
  !22 = !{null, !23}
  !23 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !15, line: 1, size: 32, elements: !24)
  !24 = !{!25}
  !25 = !DIDerivedType(tag: DW_TAG_member, name: "w", scope: !23, file: !15, line: 2, baseType: !26, size: 32)
  !26 = !DIBasicType(name: "float", size: 32, encoding: DW_ATE_float)
  !27 = !{!28, !29}
  !28 = !DILocalVariable(name: "s", arg: 1, scope: !20, file: !15, line: 5, type: !23)
  !29 = !DILocalVariable(name: "w", scope: !20, file: !15, line: 6, type: !30)
  !30 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
  !31 = !DILocation(line: 0, scope: !20)
name:            g
callSites:
  - { bb: 0, offset: 13, fwdArgRegs: 
      - { arg: 1, reg: '$rsi' } }
body:             |
  bb.0.entry:
    DBG_VALUE $xmm0, $noreg, !28, !DIExpression(), debug-location !31
    DBG_VALUE $xmm0, $noreg, !28, !DIExpression(), debug-location !31
    frame-setup PUSH64r killed $rbp, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 16
    CFI_INSTRUCTION offset $rbp, -16
    $rbp = frame-setup MOV64rr $rsp
    CFI_INSTRUCTION def_cfa_register $rbp
    renamable $eax = nofpexcept CVTTSS2SIrr killed renamable $xmm0, implicit $mxcsr, debug-location !31
    DBG_VALUE $eax, $noreg, !29, !DIExpression(), debug-location !31
    renamable $rdi = MOVSX64rr32 killed renamable $eax, debug-location !31
    renamable $eax = LEA64_32r $noreg, 4, renamable $rdi, 0, $noreg, debug-location !31
    renamable $rsi = MOVSX64rr32 killed renamable $eax, debug-location !31
    $rbp = frame-destroy POP64r implicit-def $rsp, implicit $rsp, debug-location !31
    TAILJMPd64 @f, csr_64, implicit $rsp, implicit $ssp, implicit $rsp, implicit $ssp, implicit $rdi, implicit $rsi, debug-location !31
