# RUN: llc -mtriple=i686-windows --run-pass="x86-cf-opt" %s -o - | FileCheck %s

# PR34903
--- |
  target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"
  target triple = "i686--windows-msvc"

  %struct.s = type { i64 }

  declare void @good(i32, i32, i32, i32)

  declare void @struct(%struct.s* byval, i32, i32, i32)

  ; Function Attrs: optsize
  define void @test9() #0 {
  entry:
    %p = alloca i32, align 4
    %q = alloca i32, align 4
    %s = alloca %struct.s, align 4
    call void @good(i32 1, i32 2, i32 3, i32 4)
    %pv = ptrtoint i32* %p to i32
    %qv = ptrtoint i32* %q to i32
    call void @struct(%struct.s* byval %s, i32 6, i32 %qv, i32 %pv)
    ret void
  }

  ; Function Attrs: nounwind
  declare void @llvm.stackprotector(i8*, i8**) #1

  attributes #0 = { optsize }
  attributes #1 = { nounwind }

...
---
# CHECK-LABEL: test9
# CHECK:      ADJCALLSTACKDOWN32 16, 0, 16, implicit-def dead $esp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $esp, implicit $ssp
# CHECK-NEXT: PUSH32i8 4, implicit-def $esp, implicit $esp
# CHECK-NEXT: PUSH32i8 3, implicit-def $esp, implicit $esp
# CHECK-NEXT: PUSH32i8 2, implicit-def $esp, implicit $esp
# CHECK-NEXT: PUSH32i8 1, implicit-def $esp, implicit $esp
# CHECK-NEXT: CALLpcrel32 @good, csr_32, implicit $esp, implicit $ssp, implicit-def $esp, implicit-def $ssp
# CHECK-NEXT: ADJCALLSTACKUP32 16, 0, implicit-def dead $esp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $esp, implicit $ssp
# CHECK-NEXT: ADJCALLSTACKDOWN32 20, 0, 20, implicit-def dead $esp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $esp, implicit $ssp
# CHECK-NEXT: %1:gr32 = MOV32rm %stack.2.s, 1, $noreg, 0, $noreg :: (load 4 from %stack.2.s, align 8)
# CHECK-NEXT: %2:gr32 = MOV32rm %stack.2.s, 1, $noreg, 4, $noreg :: (load 4 from %stack.2.s + 4)
# CHECK-NEXT: %4:gr32 = LEA32r %stack.0.p, 1, $noreg, 0, $noreg
# CHECK-NEXT: %5:gr32 = LEA32r %stack.1.q, 1, $noreg, 0, $noreg
# CHECK-NEXT: PUSH32r %4, implicit-def $esp, implicit $esp
# CHECK-NEXT: PUSH32r %5, implicit-def $esp, implicit $esp
# CHECK-NEXT: PUSH32i8 6, implicit-def $esp, implicit $esp
# CHECK-NEXT: PUSH32r %2, implicit-def $esp, implicit $esp
# CHECK-NEXT: PUSH32r %1, implicit-def $esp, implicit $esp
# CHECK-NEXT: CALLpcrel32 @struct, csr_32, implicit $esp, implicit $ssp, implicit-def $esp, implicit-def $ssp
# CHECK-NEXT: ADJCALLSTACKUP32 20, 0, implicit-def dead $esp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $esp, implicit $ssp
# CHECK-NEXT: RET 0
name:            test9
alignment:       0
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
registers:
  - { id: 0, class: gr32, preferred-register: '' }
  - { id: 1, class: gr32, preferred-register: '' }
  - { id: 2, class: gr32, preferred-register: '' }
  - { id: 3, class: gr32, preferred-register: '' }
  - { id: 4, class: gr32, preferred-register: '' }
  - { id: 5, class: gr32, preferred-register: '' }
liveins:
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    8
  adjustsStack:    false
  hasCalls:        true
  stackProtector:  ''
  maxCallFrameSize: 4294967295
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  savePoint:       ''
  restorePoint:    ''
fixedStack:
stack:
  - { id: 0, name: p, type: default, offset: 0, size: 4, alignment: 4,
      stack-id: 0, callee-saved-register: '', callee-saved-restored: true,
      debug-info-variable: '', debug-info-expression: '',
      debug-info-location: '' }
  - { id: 1, name: q, type: default, offset: 0, size: 4, alignment: 4,
      stack-id: 0, callee-saved-register: '', callee-saved-restored: true,
      debug-info-variable: '', debug-info-expression: '',
      debug-info-location: '' }
  - { id: 2, name: s, type: default, offset: 0, size: 8, alignment: 8,
      stack-id: 0, callee-saved-register: '', callee-saved-restored: true,
      debug-info-variable: '', debug-info-expression: '',
      debug-info-location: '' }
constants:
body:             |
  bb.0.entry:
    ADJCALLSTACKDOWN32 16, 0, 0, implicit-def dead $esp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $esp, implicit $ssp
    %0 = COPY $esp
    MOV32mi %0, 1, $noreg, 12, $noreg, 4 :: (store 4 into stack + 12)
    MOV32mi %0, 1, $noreg, 8, $noreg, 3 :: (store 4 into stack + 8)
    MOV32mi %0, 1, $noreg, 4, $noreg, 2 :: (store 4 into stack + 4)
    MOV32mi %0, 1, $noreg, 0, $noreg, 1 :: (store 4 into stack)
    CALLpcrel32 @good, csr_32, implicit $esp, implicit $ssp, implicit-def $esp, implicit-def $ssp
    ADJCALLSTACKUP32 16, 0, implicit-def dead $esp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $esp, implicit $ssp
    ADJCALLSTACKDOWN32 20, 0, 0, implicit-def dead $esp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $esp, implicit $ssp
    %1 = MOV32rm %stack.2.s, 1, $noreg, 0, $noreg :: (load 4 from %stack.2.s, align 8)
    %2 = MOV32rm %stack.2.s, 1, $noreg, 4, $noreg :: (load 4 from %stack.2.s + 4)
    %3 = COPY $esp
    MOV32mr %3, 1, $noreg, 4, $noreg, killed %2 :: (store 4)
    MOV32mr %3, 1, $noreg, 0, $noreg, killed %1 :: (store 4)
    %4 = LEA32r %stack.0.p, 1, $noreg, 0, $noreg
    MOV32mr %3, 1, $noreg, 16, $noreg, killed %4 :: (store 4 into stack + 16)
    %5 = LEA32r %stack.1.q, 1, $noreg, 0, $noreg
    MOV32mr %3, 1, $noreg, 12, $noreg, killed %5 :: (store 4 into stack + 12)
    MOV32mi %3, 1, $noreg, 8, $noreg, 6 :: (store 4 into stack + 8)
    CALLpcrel32 @struct, csr_32, implicit $esp, implicit $ssp, implicit-def $esp, implicit-def $ssp,
    ADJCALLSTACKUP32 20, 0, implicit-def dead $esp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $esp, implicit $ssp
    RET 0

...
