[Alignment][NFC] Use Align with TargetLowering::setMinFunctionAlignment
[llvm-core.git] / test / CodeGen / X86 / alloca-overaligned.ll
blob8ac50d8eb82f2852717a70ecd89326e487f6b07a
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
4 declare void @capture(i64*)
6 define 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
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(i64* %a)
18   ret void
21 define 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
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(i64* %a)
39   ret void
42 define 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
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(i64* %a)
54   ret void