; RUN: llc < %s | FileCheck %s --check-prefix=ASM
; RUN: llc < %s -filetype=obj | llvm-readobj -codeview | FileCheck %s --check-prefix=OBJ

; Compile with -O1 as C

; struct IntPair { int x, y; };
; struct PadRight { long a; int b; };
; struct PadLeft { int a; long b; };
; struct Nested { struct PadLeft a[2]; };
;
; extern int g(int r);
; extern int i;
; extern int n;
;
; int loop_csr() {
;   struct IntPair o = {0, 0};
;   for (i = 0; i < n; i++) {
;     o.x = g(o.x);
;     o.y = g(o.y);
;   }
;   return o.x + o.y;
; }
;
; int pad_right(struct PadRight o) {
;   return o.b;
; }
;
; int pad_left(struct PadLeft o) {
;   return o.a;
; }
;
; int nested(struct Nested o) {
;   struct PadLeft p = o.a[1];
;   return p.b;
; }

; ASM-LABEL: loop_csr: # @loop_csr
; ASM:        #DEBUG_VALUE: loop_csr:o <- [DW_OP_LLVM_fragment 0 32] 0
; ASM:        #DEBUG_VALUE: loop_csr:o <- [DW_OP_LLVM_fragment 32 32] 0
; ASM: # %bb.2:                                 # %for.body.preheader
; ASM:         xorl    %edi, %edi
; ASM:         xorl    %esi, %esi
; ASM:         .p2align        4, 0x90
; ASM: .LBB0_3:                                # %for.body
; ASM: [[oy_ox_start:\.Ltmp[0-9]+]]:
; ASM:        #DEBUG_VALUE: loop_csr:o <- [DW_OP_LLVM_fragment 0 32] $edi
; ASM:        #DEBUG_VALUE: loop_csr:o <- [DW_OP_LLVM_fragment 32 32] $esi
; ASM:        .cv_loc 0 1 13 11               # t.c:13:11
; ASM:        movl    %edi, %ecx
; ASM:        callq   g
; ASM:        movl    %eax, %edi
; ASM: [[ox_start:\.Ltmp[0-9]+]]:
; ASM:         #DEBUG_VALUE: loop_csr:o <- [DW_OP_LLVM_fragment 0 32] $edi
; ASM:         .cv_loc 0 1 14 11               # t.c:14:11
; ASM:         movl    %esi, %ecx
; ASM:         callq   g
; ASM:         movl    %eax, %esi
; ASM: [[oy_start:\.Ltmp[0-9]+]]:
; ASM:         #DEBUG_VALUE: loop_csr:o <- [DW_OP_LLVM_fragment 32 32] $esi
; ASM:         cmpl    n(%rip), %eax
; ASM:         jl      .LBB0_3
; ASM: [[oy_end:\.Ltmp[0-9]+]]:
; ASM:         addl    %edi, %esi
; ASM:         movl    %esi, %eax


; ASM-LABEL: pad_right: # @pad_right
; ASM:         movq    %rcx, %rax
; ASM:         #DEBUG_VALUE: pad_right:o <- [DW_OP_LLVM_fragment 32 32] $eax
; ASM:         retq


; ASM-LABEL: pad_left: # @pad_left
; ASM:         .cv_loc 2 1 24 3                # t.c:24:3
; ASM:         movq    %rcx, %rax
; ASM:         #DEBUG_VALUE: pad_left:o <- [DW_OP_LLVM_fragment 0 32] $eax
; ASM:         retq


; ASM-LABEL: nested: # @nested
; ASM:         #DEBUG_VALUE: nested:o <- [DW_OP_deref] [$rcx+0]
; ASM:         movl    12(%rcx), %eax
; ASM: [[p_start:\.Ltmp[0-9]+]]:
; ASM:         #DEBUG_VALUE: nested:p <- [DW_OP_LLVM_fragment 32 32] $eax
; ASM:         retq

; ASM-LABEL: bitpiece_spill: # @bitpiece_spill
; ASM:         #DEBUG_VALUE: bitpiece_spill:o <- [DW_OP_LLVM_fragment 0 32] 0
; ASM:         xorl    %ecx, %ecx
; ASM:         callq   g
; ASM:         movl    %eax, [[offset_o_x:[0-9]+]](%rsp)          # 4-byte Spill
; ASM: [[spill_o_x_start:\.Ltmp[0-9]+]]:
; ASM:         #DEBUG_VALUE: bitpiece_spill:o <- [DW_OP_plus_uconst [[offset_o_x]], DW_OP_LLVM_fragment 32 32] [$rsp+0]
; ASM:         #APP
; ASM:         #NO_APP
; ASM:         movl    [[offset_o_x]](%rsp), %eax          # 4-byte Reload
; ASM: [[spill_o_x_end:\.Ltmp[0-9]+]]:
; ASM:         retq


; ASM-LABEL:  .short  4423                    # Record kind: S_GPROC32_ID
; ASM:        .asciz  "loop_csr"              # Function name
; ASM:        .short  4414                    # Record kind: S_LOCAL
; ASM:        .asciz  "o"
; ASM:        .cv_def_range    [[oy_ox_start]] [[ox_start]], "C\021\030\000\000\000\000\000\000\000"
; ASM:        .cv_def_range    [[oy_ox_start]] [[oy_start]], "C\021\027\000\000\000\004\000\000\000"
; ASM:        .cv_def_range    [[ox_start]] .Lfunc_end0, "C\021\030\000\000\000\000\000\000\000"
; ASM:        .cv_def_range    [[oy_start]] [[oy_end]], "C\021\027\000\000\000\004\000\000\000"


; OBJ-LABEL: GlobalProcIdSym {
; OBJ:         Kind: S_GPROC32_ID (0x1147)
; OBJ:         DisplayName: loop_csr
; OBJ:       }
; OBJ:       LocalSym {
; OBJ:         VarName: o
; OBJ:       }
; OBJ:       DefRangeSubfieldRegisterSym {
; OBJ:         Register: EDI (0x18)
; OBJ:         MayHaveNoName: 0
; OBJ:         OffsetInParent: 0
; OBJ:         LocalVariableAddrRange {
; OBJ:         }
; OBJ:       }
; OBJ:       DefRangeSubfieldRegisterSym {
; OBJ:         Register: ESI (0x17)
; OBJ:         MayHaveNoName: 0
; OBJ:         OffsetInParent: 4
; OBJ:         LocalVariableAddrRange {
; OBJ:         }
; OBJ:       }
; OBJ:       ProcEnd {
; OBJ:       }

; ASM-LABEL:  .short  4423                    # Record kind: S_GPROC32_ID
; ASM:        .asciz  "pad_right"             # Function name
; ASM:        .short  4414                    # Record kind: S_LOCAL
; ASM:        .asciz  "o"
; ASM:        .cv_def_range    .Ltmp8 .Ltmp8, "C\021\021\000\000\000\004\000\000\000"

; OBJ-LABEL: GlobalProcIdSym {
; OBJ:         Kind: S_GPROC32_ID (0x1147)
; OBJ:         DisplayName: pad_right
; OBJ:       }
; OBJ:       LocalSym {
; OBJ:         VarName: o
; OBJ:       }
; OBJ:       DefRangeSubfieldRegisterSym {
; OBJ:         Register: EAX (0x11)
; OBJ:         MayHaveNoName: 0
; OBJ:         OffsetInParent: 4
; OBJ:         LocalVariableAddrRange {
; OBJ:         }
; OBJ:       }
; OBJ:       ProcEnd {
; OBJ:       }

; ASM-LABEL:  .short  4423                    # Record kind: S_GPROC32_ID
; ASM:        .asciz  "pad_left"              # Function name
; ASM:        .short  4414                    # Record kind: S_LOCAL
; ASM:        .asciz  "o"
; ASM:        .cv_def_range    .Ltmp10 .Ltmp10, "C\021\021\000\000\000\000\000\000\000"

; OBJ-LABEL: GlobalProcIdSym {
; OBJ:         Kind: S_GPROC32_ID (0x1147)
; OBJ:         DisplayName: pad_left
; OBJ:       }
; OBJ:       LocalSym {
; OBJ:         VarName: o
; OBJ:       }
; OBJ:       DefRangeSubfieldRegisterSym {
; OBJ:         Register: EAX (0x11)
; OBJ:         MayHaveNoName: 0
; OBJ:         OffsetInParent: 0
; OBJ:         LocalVariableAddrRange {
; OBJ:         }
; OBJ:       }
; OBJ:       ProcEnd {
; OBJ:       }

; ASM-LABEL:  .short  4423                    # Record kind: S_GPROC32_ID
; ASM:        .asciz  "nested"                # Function name
; ASM:        .short  4414                    # Record kind: S_LOCAL
; ASM:        .asciz  "o"
; ASM:        .cv_def_range    .Lfunc_begin3 .Lfunc_end3, "E\021J\001\000\000\000\000\000\000"
; ASM:        .short  4414                    # Record kind: S_LOCAL
; ASM:        .asciz  "p"
; ASM:        .cv_def_range    [[p_start]] .Lfunc_end3, "C\021\021\000\000\000\004\000\000\000"

; OBJ-LABEL: GlobalProcIdSym {
; OBJ:         Kind: S_GPROC32_ID (0x1147)
; OBJ:         DisplayName: nested
; OBJ:       }
; OBJ:       LocalSym {
; OBJ:         Type: Nested&
; OBJ:         VarName: o
; OBJ:       }
; OBJ:       DefRangeRegisterRelSym {
; OBJ:         BaseRegister: RCX (0x14A)
; OBJ:         HasSpilledUDTMember: No
; OBJ:         OffsetInParent: 0
; OBJ:         BasePointerOffset: 0
; OBJ:         LocalVariableAddrRange {
; OBJ:         }
; OBJ:       }
; OBJ:       LocalSym {
; OBJ:         VarName: p
; OBJ:       }
; OBJ:       DefRangeSubfieldRegisterSym {
; OBJ:         Register: EAX (0x11)
; OBJ:         MayHaveNoName: 0
; OBJ:         OffsetInParent: 4
; OBJ:         LocalVariableAddrRange {
; OBJ:         }
; OBJ:       }
; OBJ:       ProcEnd {
; OBJ:       }


; ASM-LABEL:  .short  4423                    # Record kind: S_GPROC32_ID
; ASM:        .asciz  "bitpiece_spill"        # Function name
; ASM:        .short  4414                    # Record kind: S_LOCAL
; ASM:        .asciz  "o"
; ASM:        .cv_def_range    [[spill_o_x_start]] [[spill_o_x_end]], "E\021O\001A\000$\000\000\000"

; OBJ-LABEL: GlobalProcIdSym {
; OBJ:         Kind: S_GPROC32_ID (0x1147)
; OBJ:         DisplayName: bitpiece_spill
; OBJ:       }
; OBJ:       LocalSym {
; OBJ:         VarName: o
; OBJ:       }
; OBJ:       DefRangeRegisterRelSym {
; OBJ:         BaseRegister: RSP (0x14F)
; OBJ:         HasSpilledUDTMember: Yes
; OBJ:         OffsetInParent: 4
; OBJ:         BasePointerOffset: 36
; OBJ:         LocalVariableAddrRange {
; OBJ:         }
; OBJ:       }
; OBJ:       ProcEnd {
; OBJ:       }



; ModuleID = 't.c'
source_filename = "t.c"
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc19.0.24210"

%struct.IntPair = type { i32, i32 }
%struct.PadRight = type { i32, i32 }
%struct.PadLeft = type { i32, i32 }
%struct.Nested = type { [2 x %struct.PadLeft] }

@i = external local_unnamed_addr global i32, align 4
@n = external local_unnamed_addr global i32, align 4

; Function Attrs: nounwind uwtable
define i32 @loop_csr() local_unnamed_addr #0 !dbg !7 {
entry:
  tail call void @llvm.dbg.declare(metadata %struct.IntPair* undef, metadata !12, metadata !17), !dbg !18
  tail call void @llvm.dbg.value(metadata i32 0, metadata !12, metadata !19), !dbg !18
  tail call void @llvm.dbg.value(metadata i32 0, metadata !12, metadata !20), !dbg !18
  tail call void @llvm.dbg.value(metadata i32 0, metadata !12, metadata !19), !dbg !18
  tail call void @llvm.dbg.value(metadata i32 0, metadata !12, metadata !20), !dbg !18
  store i32 0, i32* @i, align 4, !dbg !21, !tbaa !24
  %0 = load i32, i32* @n, align 4, !dbg !28, !tbaa !24
  %cmp9 = icmp sgt i32 %0, 0, !dbg !29
  br i1 %cmp9, label %for.body, label %for.end, !dbg !30

for.body:                                         ; preds = %entry, %for.body
  %o.sroa.0.011 = phi i32 [ %call, %for.body ], [ 0, %entry ]
  %o.sroa.5.010 = phi i32 [ %call2, %for.body ], [ 0, %entry ]
  tail call void @llvm.dbg.value(metadata i32 %o.sroa.0.011, metadata !12, metadata !19), !dbg !18
  tail call void @llvm.dbg.value(metadata i32 %o.sroa.5.010, metadata !12, metadata !20), !dbg !18
  %call = tail call i32 @g(i32 %o.sroa.0.011) #5, !dbg !31
  tail call void @llvm.dbg.value(metadata i32 %call, metadata !12, metadata !19), !dbg !18
  %call2 = tail call i32 @g(i32 %o.sroa.5.010) #5, !dbg !33
  tail call void @llvm.dbg.value(metadata i32 %call2, metadata !12, metadata !20), !dbg !18
  %1 = load i32, i32* @i, align 4, !dbg !21, !tbaa !24
  %inc = add nsw i32 %1, 1, !dbg !21
  store i32 %inc, i32* @i, align 4, !dbg !21, !tbaa !24
  %2 = load i32, i32* @n, align 4, !dbg !28, !tbaa !24
  %cmp = icmp slt i32 %inc, %2, !dbg !29
  br i1 %cmp, label %for.body, label %for.end, !dbg !30, !llvm.loop !34

for.end:                                          ; preds = %for.body, %entry
  %o.sroa.5.0.lcssa = phi i32 [ 0, %entry ], [ %call2, %for.body ]
  %o.sroa.0.0.lcssa = phi i32 [ 0, %entry ], [ %call, %for.body ]
  %add = add nsw i32 %o.sroa.0.0.lcssa, %o.sroa.5.0.lcssa, !dbg !36
  ret i32 %add, !dbg !37
}

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

declare i32 @g(i32) local_unnamed_addr #2

; Function Attrs: nounwind readnone uwtable
define i32 @pad_right(i64 %o.coerce) local_unnamed_addr #3 !dbg !38 {
entry:
  %o.sroa.1.0.extract.shift = lshr i64 %o.coerce, 32
  %o.sroa.1.0.extract.trunc = trunc i64 %o.sroa.1.0.extract.shift to i32
  tail call void @llvm.dbg.value(metadata i32 %o.sroa.1.0.extract.trunc, metadata !47, metadata !20), !dbg !48
  tail call void @llvm.dbg.declare(metadata %struct.PadRight* undef, metadata !47, metadata !17), !dbg !48
  ret i32 %o.sroa.1.0.extract.trunc, !dbg !49
}

; Function Attrs: nounwind readnone uwtable
define i32 @pad_left(i64 %o.coerce) local_unnamed_addr #3 !dbg !50 {
entry:
  %o.sroa.0.0.extract.trunc = trunc i64 %o.coerce to i32
  tail call void @llvm.dbg.value(metadata i32 %o.sroa.0.0.extract.trunc, metadata !58, metadata !19), !dbg !59
  tail call void @llvm.dbg.declare(metadata %struct.PadLeft* undef, metadata !58, metadata !17), !dbg !59
  ret i32 %o.sroa.0.0.extract.trunc, !dbg !60
}

; Function Attrs: nounwind readonly uwtable
define i32 @nested(%struct.Nested* nocapture readonly %o) local_unnamed_addr #4 !dbg !61 {
entry:
  tail call void @llvm.dbg.declare(metadata %struct.Nested* %o, metadata !71, metadata !73), !dbg !74
  tail call void @llvm.dbg.declare(metadata %struct.PadLeft* undef, metadata !72, metadata !17), !dbg !75
  %p.sroa.3.0..sroa_idx2 = getelementptr inbounds %struct.Nested, %struct.Nested* %o, i64 0, i32 0, i64 1, i32 1, !dbg !76
  %p.sroa.3.0.copyload = load i32, i32* %p.sroa.3.0..sroa_idx2, align 4, !dbg !76
  tail call void @llvm.dbg.value(metadata i32 %p.sroa.3.0.copyload, metadata !72, metadata !20), !dbg !75
  ret i32 %p.sroa.3.0.copyload, !dbg !77
}

; Function Attrs: nounwind uwtable
define i32 @bitpiece_spill() local_unnamed_addr #0 !dbg !78 {
entry:
  tail call void @llvm.dbg.declare(metadata %struct.IntPair* undef, metadata !80, metadata !17), !dbg !81
  tail call void @llvm.dbg.value(metadata i32 0, metadata !80, metadata !19), !dbg !81
  %call = tail call i32 @g(i32 0) #5, !dbg !82
  tail call void @llvm.dbg.value(metadata i32 %call, metadata !80, metadata !20), !dbg !81
  tail call void asm sideeffect "", "~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15},~{dirflag},~{fpsr},~{flags}"() #5, !dbg !83, !srcloc !84
  ret i32 %call, !dbg !85
}

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

attributes #0 = { 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 = { "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-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 #3 = { nounwind readnone 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 #4 = { nounwind readonly 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 #5 = { nounwind }

!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4, !5}
!llvm.ident = !{!6}

!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 4.0.0 (trunk 283332) (llvm/trunk 283355)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
!1 = !DIFile(filename: "t.c", directory: "C:\5Csrc\5Cllvm\5Cbuild")
!2 = !{}
!3 = !{i32 2, !"CodeView", i32 1}
!4 = !{i32 2, !"Debug Info Version", i32 3}
!5 = !{i32 1, !"PIC Level", i32 2}
!6 = !{!"clang version 4.0.0 (trunk 283332) (llvm/trunk 283355)"}
!7 = distinct !DISubprogram(name: "loop_csr", scope: !1, file: !1, line: 10, type: !8, isLocal: false, isDefinition: true, scopeLine: 10, isOptimized: true, unit: !0, retainedNodes: !11)
!8 = !DISubroutineType(types: !9)
!9 = !{!10}
!10 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
!11 = !{!12}
!12 = !DILocalVariable(name: "o", scope: !7, file: !1, line: 11, type: !13)
!13 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "IntPair", file: !1, line: 1, size: 64, align: 32, elements: !14)
!14 = !{!15, !16}
!15 = !DIDerivedType(tag: DW_TAG_member, name: "x", scope: !13, file: !1, line: 1, baseType: !10, size: 32, align: 32)
!16 = !DIDerivedType(tag: DW_TAG_member, name: "y", scope: !13, file: !1, line: 1, baseType: !10, size: 32, align: 32, offset: 32)
!17 = !DIExpression()
!18 = !DILocation(line: 11, column: 18, scope: !7)
!19 = !DIExpression(DW_OP_LLVM_fragment, 0, 32)
!20 = !DIExpression(DW_OP_LLVM_fragment, 32, 32)
!21 = !DILocation(line: 12, column: 23, scope: !22)
!22 = distinct !DILexicalBlock(scope: !23, file: !1, line: 12, column: 3)
!23 = distinct !DILexicalBlock(scope: !7, file: !1, line: 12, column: 3)
!24 = !{!25, !25, i64 0}
!25 = !{!"int", !26, i64 0}
!26 = !{!"omnipotent char", !27, i64 0}
!27 = !{!"Simple C/C++ TBAA"}
!28 = !DILocation(line: 12, column: 19, scope: !22)
!29 = !DILocation(line: 12, column: 17, scope: !22)
!30 = !DILocation(line: 12, column: 3, scope: !23)
!31 = !DILocation(line: 13, column: 11, scope: !32)
!32 = distinct !DILexicalBlock(scope: !22, file: !1, line: 12, column: 27)
!33 = !DILocation(line: 14, column: 11, scope: !32)
!34 = distinct !{!34, !35}
!35 = !DILocation(line: 12, column: 3, scope: !7)
!36 = !DILocation(line: 16, column: 14, scope: !7)
!37 = !DILocation(line: 16, column: 3, scope: !7)
!38 = distinct !DISubprogram(name: "pad_right", scope: !1, file: !1, line: 19, type: !39, isLocal: false, isDefinition: true, scopeLine: 19, flags: DIFlagPrototyped, isOptimized: true, unit: !0, retainedNodes: !46)
!39 = !DISubroutineType(types: !40)
!40 = !{!10, !41}
!41 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "PadRight", file: !1, line: 2, size: 64, align: 32, elements: !42)
!42 = !{!43, !45}
!43 = !DIDerivedType(tag: DW_TAG_member, name: "a", scope: !41, file: !1, line: 2, baseType: !44, size: 32, align: 32)
!44 = !DIBasicType(name: "long int", size: 32, align: 32, encoding: DW_ATE_signed)
!45 = !DIDerivedType(tag: DW_TAG_member, name: "b", scope: !41, file: !1, line: 2, baseType: !10, size: 32, align: 32, offset: 32)
!46 = !{!47}
!47 = !DILocalVariable(name: "o", arg: 1, scope: !38, file: !1, line: 19, type: !41)
!48 = !DILocation(line: 19, column: 31, scope: !38)
!49 = !DILocation(line: 20, column: 3, scope: !38)
!50 = distinct !DISubprogram(name: "pad_left", scope: !1, file: !1, line: 23, type: !51, isLocal: false, isDefinition: true, scopeLine: 23, flags: DIFlagPrototyped, isOptimized: true, unit: !0, retainedNodes: !57)
!51 = !DISubroutineType(types: !52)
!52 = !{!10, !53}
!53 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "PadLeft", file: !1, line: 3, size: 64, align: 32, elements: !54)
!54 = !{!55, !56}
!55 = !DIDerivedType(tag: DW_TAG_member, name: "a", scope: !53, file: !1, line: 3, baseType: !10, size: 32, align: 32)
!56 = !DIDerivedType(tag: DW_TAG_member, name: "b", scope: !53, file: !1, line: 3, baseType: !44, size: 32, align: 32, offset: 32)
!57 = !{!58}
!58 = !DILocalVariable(name: "o", arg: 1, scope: !50, file: !1, line: 23, type: !53)
!59 = !DILocation(line: 23, column: 29, scope: !50)
!60 = !DILocation(line: 24, column: 3, scope: !50)
!61 = distinct !DISubprogram(name: "nested", scope: !1, file: !1, line: 27, type: !62, isLocal: false, isDefinition: true, scopeLine: 27, flags: DIFlagPrototyped, isOptimized: true, unit: !0, retainedNodes: !70)
!62 = !DISubroutineType(types: !63)
!63 = !{!10, !64}
!64 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Nested", file: !1, line: 4, size: 128, align: 32, elements: !65)
!65 = !{!66}
!66 = !DIDerivedType(tag: DW_TAG_member, name: "a", scope: !64, file: !1, line: 4, baseType: !67, size: 128, align: 32)
!67 = !DICompositeType(tag: DW_TAG_array_type, baseType: !53, size: 128, align: 32, elements: !68)
!68 = !{!69}
!69 = !DISubrange(count: 2)
!70 = !{!71, !72}
!71 = !DILocalVariable(name: "o", arg: 1, scope: !61, file: !1, line: 27, type: !64)
!72 = !DILocalVariable(name: "p", scope: !61, file: !1, line: 28, type: !53)
!73 = !DIExpression(DW_OP_deref)
!74 = !DILocation(line: 27, column: 26, scope: !61)
!75 = !DILocation(line: 28, column: 18, scope: !61)
!76 = !DILocation(line: 28, column: 22, scope: !61)
!77 = !DILocation(line: 29, column: 3, scope: !61)
!78 = distinct !DISubprogram(name: "bitpiece_spill", scope: !1, file: !1, line: 32, type: !8, isLocal: false, isDefinition: true, scopeLine: 32, isOptimized: true, unit: !0, retainedNodes: !79)
!79 = !{!80}
!80 = !DILocalVariable(name: "o", scope: !78, file: !1, line: 33, type: !13)
!81 = !DILocation(line: 33, column: 18, scope: !78)
!82 = !DILocation(line: 33, column: 26, scope: !78)
!83 = !DILocation(line: 35, column: 3, scope: !78)
!84 = !{i32 603}
!85 = !DILocation(line: 37, column: 3, scope: !78)
