# RUN: llc -march=x86-64 -run-pass none -o - %s | FileCheck %s
# This test ensures that the MIR parser parses the metadata machine operands
# correctly.

--- |

  define i32 @test(i32 %x) #0 !dbg !4 {
  entry:
    %x.addr = alloca i32, align 4
    store i32 %x, i32* %x.addr, align 4
    call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !12, metadata !DIExpression()), !dbg !13
    %0 = load i32, i32* %x.addr, align 4, !dbg !14
    ret i32 %0, !dbg !14
  }

  declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

  attributes #0 = { nounwind "no-frame-pointer-elim"="false" }
  attributes #1 = { nounwind readnone }

  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!9, !10}
  !llvm.ident = !{!11}

  !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
  !1 = !DIFile(filename: "test.ll", directory: "")
  !2 = !{}
  !4 = distinct !DISubprogram(name: "test", scope: !5, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2)
  !5 = !DIFile(filename: "test.c", directory: "")
  !6 = !DISubroutineType(types: !7)
  !7 = !{!8, !8}
  !8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
  !9 = !{i32 2, !"Dwarf Version", i32 4}
  !10 = !{i32 2, !"Debug Info Version", i32 3}
  !11 = !{!"clang version 3.7.0"}
  !12 = !DILocalVariable(name: "x", arg: 1, scope: !4, file: !5, line: 4, type: !8)
  !13 = !DILocation(line: 4, scope: !4)
  !14 = !DILocation(line: 8, scope: !4)

...
---
name:            test
tracksRegLiveness: true
registers:
  - { id: 0, class: gr32 }
frameInfo:
  maxAlignment:  4
stack:
  - { id: 0, name: x.addr, size: 4, alignment: 4 }
body: |
  bb.0.entry:
    liveins: $edi
    ; CHECK:      %0:gr32 = COPY $edi
    ; CHECK-NEXT: DBG_VALUE $noreg, 0, !11, !DIExpression()
    %0 = COPY $edi
    DBG_VALUE _, 0, !12, !DIExpression()
    MOV32mr %stack.0.x.addr, 1, _, 0, _, %0
    $eax = COPY %0
    RETQ $eax
...
