--- |
  ; RUN: llc -run-pass=machinelicm -o - %s | FileCheck %s
  ; Line numbers should not be retained when loop invariant instructions are hoisted.
  ; Doing so causes poor stepping bevavior.
  ;
  ; Created from:
  ; int x;
  ; void Process(const unsigned int *p)
  ; {
  ;    while (1)
  ;      x = *p++;
  ; }
  ;
  ; with clang -emit-llvm -S -O2 -g -o t.ll t.c
  ;      llc -relocation-model=pic -stop-after=machine-combine -O2 t.ll -o t.mir
  ;
  ; We check that when the machine loop invariant pass hoists instructions
  ; out of a loop the debug information is not retained.
  ;
  ; CHECK-LABEL:  bb.0.entry:
  ; CHECK:        MOV64rm $rip, 1, $noreg, target-flags(x86-gotpcrel) @x, $noreg :: (load 8 from got)
  ; CHECK-LABEL:  bb.1.while.body:
  ;
  ; ModuleID = 'tx.ll'
  source_filename = "t.c"
  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
  target triple = "x86_64-unknown-linux-gnu"

  @x = common local_unnamed_addr global i32 0, align 4, !dbg !0

  ; Function Attrs: noreturn nounwind uwtable
  define void @Process(i32* nocapture readonly %p) local_unnamed_addr #0 !dbg !9 {
  entry:
    tail call void @llvm.dbg.value(metadata i32* %p, i64 0, metadata !16, metadata !17), !dbg !18
    br label %while.body, !dbg !19

  while.body:                                       ; preds = %while.body, %entry
    %p.addr.0 = phi i32* [ %p, %entry ], [ %incdec.ptr, %while.body ]
    tail call void @llvm.dbg.value(metadata i32* %p.addr.0, i64 0, metadata !16, metadata !17), !dbg !18
    %incdec.ptr = getelementptr inbounds i32, i32* %p.addr.0, i64 1, !dbg !20
    tail call void @llvm.dbg.value(metadata i32* %incdec.ptr, i64 0, metadata !16, metadata !17), !dbg !18
    %0 = load i32, i32* %p.addr.0, align 4, !dbg !21, !tbaa !22
    store i32 %0, i32* @x, align 4, !dbg !26, !tbaa !22
    br label %while.body, !dbg !27, !llvm.loop !29
  }

  ; Function Attrs: nounwind readnone
  declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #1

  attributes #0 = { noreturn nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
  attributes #1 = { nounwind readnone }
  attributes #2 = { nounwind }

  !llvm.dbg.cu = !{!1}
  !llvm.module.flags = !{!6, !7}
  !llvm.ident = !{!8}

  !0 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true), expr: !DIExpression())
  !1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang version 4.0.0 ", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4)
  !2 = !DIFile(filename: "t.c", directory: "/home/test")
  !3 = !{}
  !4 = !{!0}
  !5 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
  !6 = !{i32 2, !"Dwarf Version", i32 4}
  !7 = !{i32 2, !"Debug Info Version", i32 3}
  !8 = !{!"clang version 4.0.0 "}
  !9 = distinct !DISubprogram(name: "Process", scope: !2, file: !2, line: 2, type: !10, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: true, unit: !1, retainedNodes: !15)
  !10 = !DISubroutineType(types: !11)
  !11 = !{null, !12}
  !12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !13, size: 64)
  !13 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !14)
  !14 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned)
  !15 = !{!16}
  !16 = !DILocalVariable(name: "p", arg: 1, scope: !9, file: !2, line: 2, type: !12)
  !17 = !DIExpression()
  !18 = !DILocation(line: 2, column: 34, scope: !9)
  !19 = !DILocation(line: 4, column: 3, scope: !9)
  !20 = !DILocation(line: 5, column: 11, scope: !9)
  !21 = !DILocation(line: 5, column: 9, scope: !9)
  !22 = !{!23, !23, i64 0}
  !23 = !{!"int", !24, i64 0}
  !24 = !{!"omnipotent char", !25, i64 0}
  !25 = !{!"Simple C/C++ TBAA"}
  !26 = !DILocation(line: 5, column: 7, scope: !9)
  !27 = !DILocation(line: 4, column: 3, scope: !28)
  !28 = !DILexicalBlockFile(scope: !9, file: !2, discriminator: 1)
  !29 = distinct !{!29, !19, !20}

...
---
name:            Process
alignment:       4
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
registers:
  - { id: 0, class: gr64 }
  - { id: 1, class: gr64 }
  - { id: 2, class: gr64 }
  - { id: 3, class: gr32 }
  - { id: 4, class: gr64 }
liveins:
  - { reg: '$rdi', virtual-reg: '%2' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    false
  hasCalls:        false
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
body:             |
  bb.0.entry:
    successors: %bb.1.while.body(0x80000000)
    liveins: $rdi

    DBG_VALUE $rdi, _, !16, !17, debug-location !18
    %2 = COPY $rdi
    DBG_VALUE %2, _, !16, !17, debug-location !18

  bb.1.while.body:
    successors: %bb.1.while.body(0x80000000)

    %0 = PHI %2, %bb.0.entry, %1, %bb.1.while.body
    DBG_VALUE %0, _, !16, !17, debug-location !18
    %1 = ADD64ri8 %0, 4, implicit-def dead $eflags, debug-location !20
    DBG_VALUE %1, _, !16, !17, debug-location !18
    %3 = MOV32rm %0, 1, _, 0, _, debug-location !21 :: (load 4 from %ir.p.addr.0, !tbaa !22)
    %4 = MOV64rm $rip, 1, _, target-flags(x86-gotpcrel) @x, _, debug-location !26 :: (load 8 from got)
    MOV32mr killed %4, 1, _, 0, _, killed %3, debug-location !26 :: (store 4 into @x, !tbaa !22)
    JMP_1 %bb.1.while.body, debug-location !27

...
