1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc < %s -mtriple=x86_64-pc-linux -mcpu=skylake | FileCheck %s 3 4declare void @capture(ptr) 5 6define void @test_natural() "no-realign-stack" { 7; CHECK-LABEL: test_natural: 8; CHECK: # %bb.0: 9; CHECK-NEXT: pushq %rax 10; CHECK-NEXT: .cfi_def_cfa_offset 16 11; CHECK-NEXT: movq %rsp, %rdi 12; CHECK-NEXT: callq capture@PLT 13; CHECK-NEXT: popq %rax 14; CHECK-NEXT: .cfi_def_cfa_offset 8 15; CHECK-NEXT: retq 16 %a = alloca i64 17 call void @capture(ptr %a) 18 ret void 19} 20 21define void @test_realign() { 22; CHECK-LABEL: test_realign: 23; CHECK: # %bb.0: 24; CHECK-NEXT: pushq %rbp 25; CHECK-NEXT: .cfi_def_cfa_offset 16 26; CHECK-NEXT: .cfi_offset %rbp, -16 27; CHECK-NEXT: movq %rsp, %rbp 28; CHECK-NEXT: .cfi_def_cfa_register %rbp 29; CHECK-NEXT: andq $-64, %rsp 30; CHECK-NEXT: subq $64, %rsp 31; CHECK-NEXT: movq %rsp, %rdi 32; CHECK-NEXT: callq capture@PLT 33; CHECK-NEXT: movq %rbp, %rsp 34; CHECK-NEXT: popq %rbp 35; CHECK-NEXT: .cfi_def_cfa %rsp, 8 36; CHECK-NEXT: retq 37 %a = alloca i64, align 64 38 call void @capture(ptr %a) 39 ret void 40} 41 42define void @test_norealign() "no-realign-stack" { 43; CHECK-LABEL: test_norealign: 44; CHECK: # %bb.0: 45; CHECK-NEXT: pushq %rax 46; CHECK-NEXT: .cfi_def_cfa_offset 16 47; CHECK-NEXT: movq %rsp, %rdi 48; CHECK-NEXT: callq capture@PLT 49; CHECK-NEXT: popq %rax 50; CHECK-NEXT: .cfi_def_cfa_offset 8 51; CHECK-NEXT: retq 52 %a = alloca i64, align 64 53 call void @capture(ptr %a) 54 ret void 55} 56