49 lines · plain
1; RUN: llc -mtriple=thumbv7k-apple-watchos7.0 -o - %s | FileCheck %s2 3; Since d11 doesn't get pushed with the aligned registers, its frameindex4; shouldn't be modified to say it has been.5 6define void @foo() {7; CHECK-LABEL: foo:8; CHECK: push {r7, lr}9; CHECK: .cfi_offset r7, -810; CHECK: vpush {d11}11; CHECK: vpush {d8, d9}12; CHECK: .cfi_offset d11, -1613; CHECK: .cfi_offset d9, -2414; CHECK: .cfi_offset d8, -3215 call void asm sideeffect "", "~{d8},~{d9},~{d11}"()16 call void @bar()17 ret void18}19 20define void @variadic_foo(i8, ...) {21; CHECK-LABEL: variadic_foo:22; CHECK: sub sp, #1223; CHECK: push {r7, lr}24; CHECK: .cfi_offset r7, -2025; CHECK: sub sp, #426; CHECK: vpush {d11}27; CHECK: vpush {d8, d9}28; CHECK: .cfi_offset d11, -3229; CHECK: .cfi_offset d9, -4030; CHECK: .cfi_offset d8, -4831 call void asm sideeffect "", "~{d8},~{d9},~{d11}"()32 call void @llvm.va_start(ptr null)33 call void @bar()34 ret void35}36 37define 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, #842 call void asm sideeffect "", "~{d8},~{d9}"()43 call void @bar()44 ret void45}46 47declare void @bar()48declare void @llvm.va_start(ptr) nounwind49