# RUN: llc < %s -run-pass=wasm-reg-stackify -x=mir 2>&1 | FileCheck %s

# CHECK: body:
# CHECK: bb.0:
# CHECK: %[[REG1:[0-9]+]]:i32 = CONST_I32 0,
# CHECK-NEXT: DBG_VALUE %[[REG1]],
# CHECK-NEXT: CALL @foo, %[[REG1]],
# CHECK: bb.1:
# CHECK: %[[REG2:[0-9]+]]:i32 = CONST_I32 0,
# CHECK-NEXT: DBG_VALUE %[[REG2]],
# CHECK-NEXT: CALL @foo, %[[REG2]],
# CHECK: %[[REG3:[0-9]+]]:i32 = CONST_I32 0,
# CHECK-NEXT: DBG_VALUE %[[REG3]],
# CHECK-NEXT: CALL @foo, %[[REG3]],

--- |
  target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
  target triple = "wasm32-unknown-unknown"

  declare void @foo(i32)
  declare i32 @bar()

  define void @test(i64 %arg) {
    unreachable
  }

  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!4}
  !0 = distinct !DICompileUnit(language: DW_LANG_Rust, file: !2, producer: "clang LLVM (rustc version 1.30.0-dev)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !1, globals: !1)
  !1 = !{}
  !2 = !DIFile(filename: "<unknown>", directory: "")
  !3 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "&str", file: !2, size: 64, align: 32, elements: !{}, identifier: "111094d970b097647de579f9c509ef08")
  !4 = !{i32 2, !"Debug Info Version", i32 3}
  !5 = distinct !DILexicalBlock(scope: !6, file: !2, line: 357, column: 8)
  !6 = distinct !DISubprogram(name: "testfoo", linkageName: "_testba", scope: !7, file: !2, line: 353, type: !8, isLocal: true, isDefinition: true, scopeLine: 353, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !1, retainedNodes: !9)
  !7 = !DINamespace(name: "ptr", scope: null)
  !8 = !DISubroutineType(types: !1)
  !9 = !{!10}
  !10 = !DILocalVariable(name: "val0", scope: !5, file: !2, line: 357, type: !3, align: 4)
  !11 = !DILocalVariable(name: "val1", scope: !5, file: !2, line: 358, type: !3, align: 4)
  !12 = !DILocalVariable(name: "val2", scope: !5, file: !2, line: 359, type: !3, align: 4)
  !13 = !DILocation(line: 357, column: 12, scope: !5)
  !14 = !DILocation(line: 358, column: 12, scope: !5)
  !15 = !DILocation(line: 359, column: 12, scope: !5)

---
name: test
liveins:
  - { reg: '$arguments' }
tracksRegLiveness: true
body: |
  bb.0:
    successors: %bb.1
    liveins: $arguments
    %0:i64 = ARGUMENT_i64 0, implicit $arguments
    %1:i32 = CONST_I32 0, implicit-def dead $arguments
    DBG_VALUE %1:i32, $noreg, !10, !DIExpression(), debug-location !13; <unknown>:357:12 line no:357
    CALL @foo, %1:i32, implicit-def dead $arguments, implicit $sp32, implicit $sp64

  bb.1:
    CALL @foo, %1:i32, implicit-def dead $arguments, implicit $sp32, implicit $sp64
    CALL @foo, %1:i32, implicit-def dead $arguments, implicit $sp32, implicit $sp64
    RETURN implicit-def dead $arguments

...
