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

; PR38857

; This test case is identical to the fpo-realign-vframe.ll test, except it uses
; two callee-saved registers.

; Match the prologue for the .cv_fpo* directives.
; ASM-LABEL: _realign_with_csrs:
; ASM:         .cv_fpo_proc    _realign_with_csrs 0
; ASM: # %bb.0:                                # %entry
; ASM:         pushl   %ebp
; ASM:         .cv_fpo_pushreg %ebp
; ASM:         movl    %esp, %ebp
; ASM:         .cv_fpo_setframe        %ebp
; ASM:         andl    $-8, %esp
; ASM:         .cv_fpo_stackalign      8
; FIXME: Why 24 bytes? We only need 12 bytes of data.
; ASM:         subl    $24, %esp
; ASM:         .cv_fpo_stackalloc      24
; ASM:         .cv_fpo_endprologue

; 'x' should be EBP-relative, 'a' and 'force_alignment' ESP relative.
; ASM:         calll   _getval
; ASM-DAG:     leal    8(%esp), %[[LEA_DBL:[^ ]*]]
; ASM-DAG:     leal    4(%esp), %[[LEA_A:[^ ]*]]
; ASM:         pushl   %[[LEA_DBL]]
; ASM:         pushl   %[[LEA_A]]
; ASM:         pushl   %[[LEA_A]]
; ASM:         calll   _usevals
; ASM:         addl    $12, %esp

; OBJ: Subsection [
; OBJ:   SubSectionType: Symbols (0xF1)
; OBJ: ]
; OBJ: Subsection [
; OBJ:   SubSectionType: FrameData (0xF5)
;   	Really, the only important FrameFunc is the last one.
; OBJ:   FrameData {
; OBJ:   }
; OBJ:   FrameData {
; OBJ:   }
; OBJ:   FrameData {
; OBJ:   }
; OBJ:   FrameData {
; OBJ:   }
; OBJ:   FrameData {
; OBJ:     FrameFunc [
; OBJ-NEXT:   $T1 $ebp 4 + =
; OBJ-NEXT:   $T0 $T1 8 - 8 @ =
; OBJ-NEXT:   $eip $T1 ^ =
; OBJ-NEXT:   $esp $T1 4 + =
; OBJ-NEXT:   $ebp $T1 4 - ^ =
; OBJ-NEXT:   $esi $T1 8 - ^ =
; OBJ-NEXT: ]
; OBJ:   }
; OBJ: ]
; OBJ: Subsection [
; OBJ:   SubSectionType: Symbols (0xF1)
; OBJ:   GlobalProcIdSym {
; OBJ:     Kind: S_GPROC32_ID (0x1147)
; OBJ:     DisplayName: realign_with_csrs
; OBJ:     LinkageName: _realign_with_csrs
; OBJ:   }
; 	The frame register for locals should be VFRAME, and EBP for parameters.
; OBJ:   FrameProcSym {
; OBJ:     Kind: S_FRAMEPROC (0x1012)
; OBJ:     TotalFrameBytes: 0x18
; OBJ:     LocalFramePtrReg: VFRAME (0x7536)
; OBJ:     ParamFramePtrReg: EBP (0x16)
; OBJ:   }
; 	ESP is VFRAME - 24, ESP offset of 'a' is 4, so -20.
; OBJ:   LocalSym {
; OBJ:     Kind: S_LOCAL (0x113E)
; OBJ:     Type: int (0x74)
; OBJ:     Flags [ (0x0)
; OBJ:     ]
; OBJ:     VarName: a
; OBJ:   }
; OBJ:   DefRangeFramePointerRelSym {
; OBJ:     Kind: S_DEFRANGE_FRAMEPOINTER_REL (0x1142)
; OBJ:     Offset: -20
; OBJ:   }
; 	ESP is VFRAME - 16, ESP offset of 'force_alignment' is 8, so -8.
; OBJ:   LocalSym {
; OBJ:     Kind: S_LOCAL (0x113E)
; OBJ:     Type: double (0x41)
; OBJ:     Flags [ (0x0)
; OBJ:     ]
; OBJ:     VarName: force_alignment
; OBJ:   }
; OBJ:   DefRangeFramePointerRelSym {
; OBJ:     Kind: S_DEFRANGE_FRAMEPOINTER_REL (0x1142)
; OBJ:     Offset: -16
; OBJ:   }
; OBJ:   ProcEnd {
; OBJ:     Kind: S_PROC_ID_END (0x114F)
; OBJ:   }
; OBJ: ]

; ModuleID = 't.c'
source_filename = "t.c"
target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"
target triple = "i386-pc-windows-msvc19.14.26433"

; Function Attrs: nounwind
define dso_local i32 @realign_with_csrs() local_unnamed_addr #0 !dbg !8 {
entry:
  %a = alloca i32, align 4
  %force_alignment = alloca double, align 8
  %0 = bitcast i32* %a to i8*, !dbg !22
  call void @llvm.dbg.declare(metadata i32* %a, metadata !14, metadata !DIExpression()), !dbg !22
  %csr1 = tail call i32 @getval() #4
  %call = tail call i32 @getval() #4, !dbg !22
  store i32 %call, i32* %a, align 4, !dbg !22, !tbaa !17
  %1 = bitcast double* %force_alignment to i8*, !dbg !23
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1) #4, !dbg !23
  call void @llvm.dbg.declare(metadata double* %force_alignment, metadata !15, metadata !DIExpression()), !dbg !23
  store double 4.200000e-01, double* %force_alignment, align 8, !dbg !23, !tbaa !24
  call void @usevals(i32* nonnull %a, i32* nonnull %a, double* nonnull %force_alignment) #4, !dbg !26
  call void @usecsrs(i32 %csr1, i32 %csr1)
  ret i32 0
}

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

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2

declare dso_local i32 @getval() local_unnamed_addr #3

declare dso_local void @usevals(i32*, i32*, double*) local_unnamed_addr #3

declare dso_local void @usecsrs(i32, i32) local_unnamed_addr #3

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2

attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "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"="pentium4" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone speculatable }
attributes #2 = { argmemonly nounwind }
attributes #3 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "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"="pentium4" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #4 = { nounwind }

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

!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 8.0.0 ", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, nameTableKind: None)
!1 = !DIFile(filename: "t.c", directory: "C:\5Csrc\5Cllvm-project\5Cbuild", checksumkind: CSK_MD5, checksum: "a646950309d5d01d8087fc10fea33941")
!2 = !{}
!3 = !{i32 1, !"NumRegisterParameters", i32 0}
!4 = !{i32 2, !"CodeView", i32 1}
!5 = !{i32 2, !"Debug Info Version", i32 3}
!6 = !{i32 1, !"wchar_size", i32 2}
!7 = !{!"clang version 8.0.0 "}
!8 = distinct !DISubprogram(name: "realign_with_csrs", scope: !1, file: !1, line: 3, type: !9, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: true, unit: !0, retainedNodes: !12)
!9 = !DISubroutineType(types: !10)
!10 = !{!11, !11}
!11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
!12 = !{!13, !14, !15}
!13 = !DILocalVariable(name: "x", arg: 1, scope: !8, file: !1, line: 3, type: !11)
!14 = !DILocalVariable(name: "a", scope: !8, file: !1, line: 4, type: !11)
!15 = !DILocalVariable(name: "force_alignment", scope: !8, file: !1, line: 5, type: !16, align: 64)
!16 = !DIBasicType(name: "double", size: 64, encoding: DW_ATE_float)
!17 = !{!18, !18, i64 0}
!18 = !{!"int", !19, i64 0}
!19 = !{!"omnipotent char", !20, i64 0}
!20 = !{!"Simple C/C++ TBAA"}
!21 = !DILocation(line: 3, scope: !8)
!22 = !DILocation(line: 4, scope: !8)
!23 = !DILocation(line: 5, scope: !8)
!24 = !{!25, !25, i64 0}
!25 = !{!"double", !19, i64 0}
!26 = !DILocation(line: 6, scope: !8)
!27 = !DILocation(line: 7, scope: !8)
!28 = !DILocation(line: 8, scope: !8)
