brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · e86c04e Raw
40 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc -global-isel=1 -mtriple=x86_64-linux-gnu -o - %s | FileCheck %s3 4declare void @use_addr(ptr)5declare ptr @llvm.stacksave.p0()6declare void @llvm.stackrestore.p0(ptr)7 8define void @test_scoped_alloca(i64 %n) {9; CHECK-LABEL: test_scoped_alloca:10; CHECK:       # %bb.0:11; CHECK-NEXT:    pushq %rbp12; CHECK-NEXT:    .cfi_def_cfa_offset 1613; CHECK-NEXT:    .cfi_offset %rbp, -1614; CHECK-NEXT:    movq %rsp, %rbp15; CHECK-NEXT:    .cfi_def_cfa_register %rbp16; CHECK-NEXT:    pushq %rbx17; CHECK-NEXT:    pushq %rax18; CHECK-NEXT:    .cfi_offset %rbx, -2419; CHECK-NEXT:    movq %rsp, %rbx20; CHECK-NEXT:    movq %rsp, %rax21; CHECK-NEXT:    imulq $1, %rdi, %rcx22; CHECK-NEXT:    addq $15, %rcx23; CHECK-NEXT:    andq $-16, %rcx24; CHECK-NEXT:    subq %rcx, %rax25; CHECK-NEXT:    movq %rax, %rsp26; CHECK-NEXT:    movq %rax, %rdi27; CHECK-NEXT:    callq use_addr28; CHECK-NEXT:    movq %rbx, %rsp29; CHECK-NEXT:    leaq -8(%rbp), %rsp30; CHECK-NEXT:    popq %rbx31; CHECK-NEXT:    popq %rbp32; CHECK-NEXT:    .cfi_def_cfa %rsp, 833; CHECK-NEXT:    retq34  %sp = call ptr @llvm.stacksave.p0()35  %addr = alloca i8, i64 %n36  call void @use_addr(ptr %addr)37  call void @llvm.stackrestore.p0(ptr %sp)38  ret void39}40