; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 -O0 -verify-machineinstrs < %s | FileCheck %s

; Test that source locations (.loc directives) are not added to the code within the prologue.

; Function Attrs: convergent mustprogress nounwind
define hidden void @_ZL3barv() #0 !dbg !1644 {
; CHECK-LABEL: _ZL3barv:
; CHECK:       .Lfunc_begin0:
; CHECK-NEXT:    .file 0 "/tmp" "lane-info.cpp" md5 0x4ab9b75a30baffdf0f6f536a80e3e382
; CHECK-NEXT:    .loc 0 30 0 ; lane-info.cpp:30:0
; CHECK-NEXT:    .cfi_sections .debug_frame
; CHECK-NEXT:    .cfi_startproc
; CHECK-NEXT:  ; %bb.0: ; %entry
; CHECK-NEXT:    .cfi_llvm_def_aspace_cfa 64, 0, 6
; CHECK-NEXT:    .cfi_escape 0x10, 0x10, 0x08, 0x90, 0x3e, 0x93, 0x04, 0x90, 0x3f, 0x93, 0x04 ;
; CHECK-NEXT:    .cfi_undefined 2560
; CHECK-NEXT:    .cfi_undefined 2561
; CHECK-NEXT:    .cfi_undefined 2562
; CHECK-NEXT:    .cfi_undefined 2563
; CHECK-NEXT:    .cfi_undefined 2564
; CHECK-NEXT:    .cfi_undefined 2565
; CHECK-NEXT:    .cfi_undefined 2566
; CHECK-NEXT:    .cfi_undefined 2567
; CHECK-NEXT:    .cfi_undefined 2568
; CHECK-NEXT:    .cfi_undefined 2569
; CHECK-NEXT:    .cfi_undefined 2570
; CHECK-NEXT:    .cfi_undefined 2571
; CHECK-NEXT:    .cfi_undefined 2572
; CHECK-NEXT:    .cfi_undefined 2573
; CHECK-NEXT:    .cfi_undefined 2574
; CHECK-NEXT:    .cfi_undefined 2575
; CHECK-NEXT:    .cfi_undefined 2576
; CHECK-NEXT:    .cfi_undefined 2577
; CHECK-NEXT:    .cfi_undefined 2578
; CHECK-NEXT:    .cfi_undefined 2579
; CHECK-NEXT:    .cfi_undefined 2580
; CHECK-NEXT:    .cfi_undefined 2581
; CHECK-NEXT:    .cfi_undefined 2582
; CHECK-NEXT:    .cfi_undefined 2583
; CHECK-NEXT:    .cfi_undefined 2584
; CHECK-NEXT:    .cfi_undefined 2585
; CHECK-NEXT:    .cfi_undefined 2586
; CHECK-NEXT:    .cfi_undefined 2587
; CHECK-NEXT:    .cfi_undefined 2588
; CHECK-NEXT:    .cfi_undefined 2589
; CHECK-NEXT:    .cfi_undefined 2590
; CHECK-NEXT:    .cfi_undefined 2591
; CHECK-NEXT:    .cfi_undefined 2592
; CHECK-NEXT:    .cfi_undefined 2593
; CHECK-NEXT:    .cfi_undefined 2594
; CHECK-NEXT:    .cfi_undefined 2595
; CHECK-NEXT:    .cfi_undefined 2596
; CHECK-NEXT:    .cfi_undefined 2597
; CHECK-NEXT:    .cfi_undefined 2598
; CHECK-NEXT:    .cfi_undefined 2599
; CHECK-NEXT:    .cfi_undefined 2608
; CHECK-NEXT:    .cfi_undefined 2609
; CHECK-NEXT:    .cfi_undefined 2610
; CHECK-NEXT:    .cfi_undefined 2611
; CHECK-NEXT:    .cfi_undefined 2612
; CHECK-NEXT:    .cfi_undefined 2613
; CHECK-NEXT:    .cfi_undefined 2614
; CHECK-NEXT:    .cfi_undefined 2615
; CHECK-NEXT:    .cfi_undefined 2624
; CHECK-NEXT:    .cfi_undefined 2625
; CHECK-NEXT:    .cfi_undefined 2626
; CHECK-NEXT:    .cfi_undefined 2627
; CHECK-NEXT:    .cfi_undefined 2628
; CHECK-NEXT:    .cfi_undefined 2629
; CHECK-NEXT:    .cfi_undefined 2630
; CHECK-NEXT:    .cfi_undefined 2631
; CHECK-NEXT:    .cfi_undefined 2640
; CHECK-NEXT:    .cfi_undefined 2641
; CHECK-NEXT:    .cfi_undefined 2642
; CHECK-NEXT:    .cfi_undefined 2643
; CHECK-NEXT:    .cfi_undefined 2644
; CHECK-NEXT:    .cfi_undefined 2645
; CHECK-NEXT:    .cfi_undefined 2646
; CHECK-NEXT:    .cfi_undefined 2647
; CHECK-NEXT:    .cfi_undefined 2656
; CHECK-NEXT:    .cfi_undefined 2657
; CHECK-NEXT:    .cfi_undefined 2658
; CHECK-NEXT:    .cfi_undefined 2659
; CHECK-NEXT:    .cfi_undefined 2660
; CHECK-NEXT:    .cfi_undefined 2661
; CHECK-NEXT:    .cfi_undefined 2662
; CHECK-NEXT:    .cfi_undefined 2663
; CHECK-NEXT:    .cfi_undefined 2672
; CHECK-NEXT:    .cfi_undefined 2673
; CHECK-NEXT:    .cfi_undefined 2674
; CHECK-NEXT:    .cfi_undefined 2675
; CHECK-NEXT:    .cfi_undefined 2676
; CHECK-NEXT:    .cfi_undefined 2677
; CHECK-NEXT:    .cfi_undefined 2678
; CHECK-NEXT:    .cfi_undefined 2679
; CHECK-NEXT:    .cfi_undefined 2688
; CHECK-NEXT:    .cfi_undefined 2689
; CHECK-NEXT:    .cfi_undefined 2690
; CHECK-NEXT:    .cfi_undefined 2691
; CHECK-NEXT:    .cfi_undefined 2692
; CHECK-NEXT:    .cfi_undefined 2693
; CHECK-NEXT:    .cfi_undefined 2694
; CHECK-NEXT:    .cfi_undefined 2695
; CHECK-NEXT:    .cfi_undefined 2704
; CHECK-NEXT:    .cfi_undefined 2705
; CHECK-NEXT:    .cfi_undefined 2706
; CHECK-NEXT:    .cfi_undefined 2707
; CHECK-NEXT:    .cfi_undefined 2708
; CHECK-NEXT:    .cfi_undefined 2709
; CHECK-NEXT:    .cfi_undefined 2710
; CHECK-NEXT:    .cfi_undefined 2711
; CHECK-NEXT:    .cfi_undefined 2720
; CHECK-NEXT:    .cfi_undefined 2721
; CHECK-NEXT:    .cfi_undefined 2722
; CHECK-NEXT:    .cfi_undefined 2723
; CHECK-NEXT:    .cfi_undefined 2724
; CHECK-NEXT:    .cfi_undefined 2725
; CHECK-NEXT:    .cfi_undefined 2726
; CHECK-NEXT:    .cfi_undefined 2727
; CHECK-NEXT:    .cfi_undefined 2736
; CHECK-NEXT:    .cfi_undefined 2737
; CHECK-NEXT:    .cfi_undefined 2738
; CHECK-NEXT:    .cfi_undefined 2739
; CHECK-NEXT:    .cfi_undefined 2740
; CHECK-NEXT:    .cfi_undefined 2741
; CHECK-NEXT:    .cfi_undefined 2742
; CHECK-NEXT:    .cfi_undefined 2743
; CHECK-NEXT:    .cfi_undefined 2752
; CHECK-NEXT:    .cfi_undefined 2753
; CHECK-NEXT:    .cfi_undefined 2754
; CHECK-NEXT:    .cfi_undefined 2755
; CHECK-NEXT:    .cfi_undefined 2756
; CHECK-NEXT:    .cfi_undefined 2757
; CHECK-NEXT:    .cfi_undefined 2758
; CHECK-NEXT:    .cfi_undefined 2759
; CHECK-NEXT:    .cfi_undefined 2768
; CHECK-NEXT:    .cfi_undefined 2769
; CHECK-NEXT:    .cfi_undefined 2770
; CHECK-NEXT:    .cfi_undefined 2771
; CHECK-NEXT:    .cfi_undefined 2772
; CHECK-NEXT:    .cfi_undefined 2773
; CHECK-NEXT:    .cfi_undefined 2774
; CHECK-NEXT:    .cfi_undefined 2775
; CHECK-NEXT:    .cfi_undefined 2784
; CHECK-NEXT:    .cfi_undefined 2785
; CHECK-NEXT:    .cfi_undefined 2786
; CHECK-NEXT:    .cfi_undefined 2787
; CHECK-NEXT:    .cfi_undefined 2788
; CHECK-NEXT:    .cfi_undefined 2789
; CHECK-NEXT:    .cfi_undefined 2790
; CHECK-NEXT:    .cfi_undefined 2791
; CHECK-NEXT:    .cfi_undefined 2800
; CHECK-NEXT:    .cfi_undefined 2801
; CHECK-NEXT:    .cfi_undefined 2802
; CHECK-NEXT:    .cfi_undefined 2803
; CHECK-NEXT:    .cfi_undefined 2804
; CHECK-NEXT:    .cfi_undefined 2805
; CHECK-NEXT:    .cfi_undefined 2806
; CHECK-NEXT:    .cfi_undefined 2807
; CHECK-NEXT:    .cfi_undefined 32
; CHECK-NEXT:    .cfi_undefined 33
; CHECK-NEXT:    .cfi_undefined 34
; CHECK-NEXT:    .cfi_undefined 35
; CHECK-NEXT:    .cfi_undefined 36
; CHECK-NEXT:    .cfi_undefined 37
; CHECK-NEXT:    .cfi_undefined 38
; CHECK-NEXT:    .cfi_undefined 39
; CHECK-NEXT:    .cfi_undefined 40
; CHECK-NEXT:    .cfi_undefined 41
; CHECK-NEXT:    .cfi_undefined 42
; CHECK-NEXT:    .cfi_undefined 43
; CHECK-NEXT:    .cfi_undefined 44
; CHECK-NEXT:    .cfi_undefined 45
; CHECK-NEXT:    .cfi_undefined 46
; CHECK-NEXT:    .cfi_undefined 47
; CHECK-NEXT:    .cfi_undefined 48
; CHECK-NEXT:    .cfi_undefined 49
; CHECK-NEXT:    .cfi_undefined 50
; CHECK-NEXT:    .cfi_undefined 51
; CHECK-NEXT:    .cfi_undefined 52
; CHECK-NEXT:    .cfi_undefined 53
; CHECK-NEXT:    .cfi_undefined 54
; CHECK-NEXT:    .cfi_undefined 55
; CHECK-NEXT:    .cfi_undefined 56
; CHECK-NEXT:    .cfi_undefined 57
; CHECK-NEXT:    .cfi_undefined 58
; CHECK-NEXT:    .cfi_undefined 59
; CHECK-NEXT:    .cfi_undefined 60
; CHECK-NEXT:    .cfi_undefined 61
; CHECK-NEXT:    .cfi_undefined 62
; CHECK-NEXT:    .cfi_undefined 63
; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; CHECK-NEXT:    s_or_saveexec_b64 s[16:17], -1
; CHECK-NEXT:    buffer_store_dword v40, off, s[0:3], s32 ; 4-byte Folded Spill
; CHECK-NEXT:    .cfi_offset 2600, 0
; CHECK-NEXT:    s_mov_b64 exec, s[16:17]
; CHECK-NEXT:    v_writelane_b32 v40, s33, 2
; CHECK-NEXT:    .cfi_escape 0x10, 0x41, 0x05, 0x90, 0xa8, 0x14, 0xe4, 0x08 ;
; CHECK-NEXT:    s_mov_b32 s33, s32
; CHECK-NEXT:    .cfi_def_cfa_register 65
; CHECK-NEXT:    s_add_i32 s32, s32, 0x400
; CHECK-NEXT:    v_writelane_b32 v40, s30, 0
; CHECK-NEXT:    v_writelane_b32 v40, s31, 1
; CHECK-NEXT:  .Ltmp0:
; CHECK-NEXT:    .loc 0 31 3 prologue_end ; lane-info.cpp:31:3
; CHECK-NEXT:    s_getpc_b64 s[16:17]
; CHECK-NEXT:    s_add_u32 s16, s16, _ZL13sleep_foreverv@gotpcrel32@lo+4
; CHECK-NEXT:    s_addc_u32 s17, s17, _ZL13sleep_foreverv@gotpcrel32@hi+12
; CHECK-NEXT:    s_load_dwordx2 s[16:17], s[16:17], 0x0
; CHECK-NEXT:    s_mov_b64 s[22:23], s[2:3]
; CHECK-NEXT:    s_mov_b64 s[20:21], s[0:1]
; CHECK-NEXT:    s_mov_b64 s[0:1], s[20:21]
; CHECK-NEXT:    s_mov_b64 s[2:3], s[22:23]
; CHECK-NEXT:    s_waitcnt lgkmcnt(0)
; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]
; CHECK-NEXT:  .Ltmp1:
; CHECK-NEXT:    v_readlane_b32 s30, v40, 0
; CHECK-NEXT:    v_readlane_b32 s31, v40, 1
; CHECK-NEXT:    .loc 0 32 1 ; lane-info.cpp:32:1
; CHECK-NEXT:    s_add_i32 s32, s32, 0xfffffc00
; CHECK-NEXT:    v_readlane_b32 s33, v40, 2
; CHECK-NEXT:    .cfi_def_cfa_register 64
; CHECK-NEXT:    s_or_saveexec_b64 s[4:5], -1
; CHECK-NEXT:    buffer_load_dword v40, off, s[0:3], s32 ; 4-byte Folded Reload
; CHECK-NEXT:    s_mov_b64 exec, s[4:5]
; CHECK-NEXT:    s_waitcnt vmcnt(0)
; CHECK-NEXT:    s_setpc_b64 s[30:31]
; CHECK-NEXT:  .Ltmp2:
entry:
  call void @_ZL13sleep_foreverv(), !dbg !1646
  ret void, !dbg !1647
}

; Function Attrs: convergent nounwind
declare void @_ZL13sleep_foreverv() #0

attributes #0 = { nounwind "frame-pointer"="all" }

!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!1638, !1639, !1640, !1641}
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_11, file: !1, producer: "clang version 13.0.0)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
!1 = !DIFile(filename: "lane-info.cpp", directory: "/tmp", checksumkind: CSK_MD5, checksum: "4ab9b75a30baffdf0f6f536a80e3e382")
!371 = !DISubroutineType(types: !372)
!372 = !{null}
!1638 = !{i32 7, !"Dwarf Version", i32 5}
!1639 = !{i32 2, !"Debug Info Version", i32 3}
!1640 = !{i32 1, !"wchar_size", i32 4}
!1641 = !{i32 7, !"PIC Level", i32 1}
!1644 = distinct !DISubprogram(name: "bar", linkageName: "_ZL3barv", scope: !1, file: !1, line: 29, type: !371, scopeLine: 30, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !1645)
!1645 = !{}
!1646 = !DILocation(line: 31, column: 3, scope: !1644)
!1647 = !DILocation(line: 32, column: 1, scope: !1644)
