brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 9974be2 Raw
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