1 ; RUN: llc -mtriple=thumbv7k-apple-watchos7.0 -o - %s | FileCheck %s 2 3 ; Since d11 doesn't get pushed with the aligned registers, its frameindex 4 ; shouldn't be modified to say it has been. 5 6 define void @foo() { 7 ; CHECK-LABEL: foo: 8 ; CHECK: push {r7, lr} 9 ; CHECK: .cfi_offset r7, -8 10 ; CHECK: vpush {d11} 11 ; CHECK: vpush {d8, d9} 12 ; CHECK: .cfi_offset d11, -16 13 ; CHECK: .cfi_offset d9, -24 14 ; CHECK: .cfi_offset d8, -32 15 call void asm sideeffect "", "~{d8},~{d9},~{d11}"() 16 call void @bar() 17 ret void 18 } 19 20 define void @variadic_foo(i8, ...) { 21 ; CHECK-LABEL: variadic_foo: 22 ; CHECK: sub sp, #12 23 ; CHECK: push {r7, lr} 24 ; CHECK: .cfi_offset r7, -20 25 ; CHECK: sub sp, #4 26 ; CHECK: vpush {d11} 27 ; CHECK: vpush {d8, d9} 28 ; CHECK: .cfi_offset d11, -32 29 ; CHECK: .cfi_offset d9, -40 30 ; CHECK: .cfi_offset d8, -48 31 call void asm sideeffect "", "~{d8},~{d9},~{d11}"() 32 call void @llvm.va_start(i8* null) 33 call void @bar() 34 ret void 35 } 36 37 define void @test_maintain_stack_align() { 38 ; CHECK-LABEL: test_maintain_stack_align: 39 ; CHECK: push {r7, lr} 40 ; CHECK: vpush {d8, d9} 41 ; CHECK: sub sp, #8 42 call void asm sideeffect "", "~{d8},~{d9}"() 43 call void @bar() 44 ret void 45 } 46 47 declare void @bar() 48 declare void @llvm.va_start(i8*) nounwind 49