# 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, variables: !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 _, 0, !11, !DIExpression()
    %0 = COPY %edi
    DBG_VALUE _, 0, !12, !DIExpression()
    MOV32mr %stack.0.x.addr, 1, _, 0, _, %0
    %eax = COPY %0
    RETQ %eax
...
